Compare commits

..

No commits in common. "master" and "gh-pages" have entirely different histories.

262 changed files with 444 additions and 140680 deletions

View File

@ -1,15 +0,0 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.agc]
indent_style = tab
tab_width = 8
[*.md]
indent_style = space
indent_size = 2

View File

@ -1,5 +0,0 @@
---
name: Discussion & Questions
about: Discussion about the Apollo 11 source code is highly welcomed.
labels: "Type: Discussion"
---

View File

@ -1,5 +0,0 @@
---
name: Humour / Jokes
about: Humourous issues are allowed, but please follow GitHub's Acceptable Use policies
labels: "Type: Humour"
---

View File

@ -1,15 +0,0 @@
---
name: Proof Comanche055
about: Template for Comanche055 Proof issues
title: "Proof "
---
Proof read transcribed code of [](//github.com/chrislgarry/Apollo-11/blob/master/Comanche055/.agc) against scans
**Multiple PRs for a few pages at a time are recommended!**
Lines:
Page: — ()
Reduced quality scans can be found [here][1]
[1]://ibiblio.org/apollo/ScansForConversion/Comanche055

View File

@ -1,15 +0,0 @@
---
name: Proof Luminary099
about: Template for Luminary099 Proof issues
title: "Proof "
---
Proof read transcribed code of [](//github.com/chrislgarry/Apollo-11/blob/master/Luminary099/.agc) against scans
**Multiple PRs for a few pages at a time are recommended!**
Lines:
Page: — ()
Reduced quality scans can be found [here][1]
[1]://ibiblio.org/apollo/ScansForConversion/Luminary099

View File

@ -1,9 +0,0 @@
<!-- Proofing PRs:
1. Title should follow "Proof [FILE NAME] #[PROOF ISSUE]", e.g:
"Proof ALARM_AND_ABORT #564"
2. Mention pages checked if you have not proofed the entire file
--><!-- New README/CONTRIBUTING PRs:
1. Title should follow "Add [LANGUAGE] [README|CONTRIBUTING]", e.g:
"Add Dutch README"
-->

6
.github/labeler.yml vendored
View File

@ -1,6 +0,0 @@
"Type: Proof":
- "**/*.agc"
"Type: Meta":
- "**/MAIN.agc"
- "**/*.md"
- "*.md"

View File

@ -1,13 +0,0 @@
name: Pull Request Labeler
on:
schedule:
- cron: '0 */3 * * *'
jobs:
labeler:
runs-on: ubuntu-latest
steps:
- uses: paulfantom/periodic-labeler@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
LABEL_MAPPINGS_FILE: .github/labeler.yml

View File

@ -1,14 +0,0 @@
name: markdownlint
on: [push, pull_request]
jobs:
delivery:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Lint markdown
uses: DavidAnson/markdownlint-cli2-action@v19
with:
config: .markdownlint.yml
globs: '*.md,translations/*.md,Comanche055/*.md,Luminary099/*.md'
separator: ','

1
.gitignore vendored
View File

@ -1,2 +1 @@
yaYUL.exe yaYUL.exe
node_modules

View File

@ -1,11 +0,0 @@
default: true
MD007: false
MD010: false
MD013: false
MD026: false
MD033: false
MD034: false
MD036: false
MD041: false
MD050: false
MD053: false

View File

@ -1,174 +0,0 @@
# Contributing
🌐
[Azerbaijani][AZ],
[bahasa Indonesia][ID],
[Català][CA]،
[Čeština][CZ],
[Dansk][DA],
[Deutsch][DE],
[English][EN],
[Español][ES],
[Français][FR],
[Galego][GL],
[Italiano][IT],
[Kurdi][KU],
[Kurdî][KU],
[Lietuvių][LT],
[Mongolia][MN],
[Nederlands][NL],
[Norsk][NO],
[Polski][PL],
[Português][PT_BR],
[tiếng Việt][VI],
[Türkçe][TR],
[Ελληνικά][GR],
[Українська][UK]،
[العربية][AR],
[हिन्दी][HI_IN],
[한국어][KO_KR],
[日本語][JA],
[正體中文][ZH_TW],
[简体中文][ZH_CN]
[AR]:Translations/CONTRIBUTING.ar.md
[AZ]:Translations/CONTRIBUTING.az.md
[CA]:Translations/CONTRIBUTING.ca.md
[CZ]:Translations/CONTRIBUTING.cz.md
[DA]:Translations/CONTRIBUTING.da.md
[DE]:Translations/CONTRIBUTING.de.md
[EN]:CONTRIBUTING.md
[ES]:Translations/CONTRIBUTING.es.md
[FR]:Translations/CONTRIBUTING.fr.md
[GL]:Translations/CONTRIBUTING.gl.md
[GR]:Translations/CONTRIBUTING.gr.md
[HI_IN]:Translations/CONTRIBUTING.hi_in.md
[ID]:Translations/CONTRIBUTING.id.md
[IT]:Translations/CONTRIBUTING.it.md
[JA]:Translations/CONTRIBUTING.ja.md
[KO_KR]:Translations/CONTRIBUTING.ko_kr.md
[KU]:Translations/CONTRIBUTING.ku.md
[LT]:Translations/CONTRIBUTING.lt.md
[MN]:Translations/CONTRIBUTING.mn.md
[NL]:Translations/CONTRIBUTING.nl.md
[NO]:Translations/CONTRIBUTING.no.md
[PL]:Translations/CONTRIBUTING.pl.md
[PT_BR]:Translations/CONTRIBUTING.pt_br.md
[TR]:Translations/CONTRIBUTING.tr.md
[UK]:Translations/CONTRIBUTING.uk.md
[VI]:Translations/CONTRIBUTING.vi.md
[ZH_CN]:Translations/CONTRIBUTING.zh_cn.md
[ZH_TW]:Translations/CONTRIBUTING.zh_tw.md
The source code in this repository was digitized manually from paper printouts, so typos and other discrepancies have been introduced accidentally. The code shall be modified to be made consistent with the following scanned printouts:
- [AGC printouts for Comanche][8]
- [AGC printouts for Luminary][9]
The following website can be used to easily navigate around the scanned printouts for both Comanche and Luminary: https://28gpc.csb.app/
## Useful Extensions
GitHub has syntax support for the AGC assembly language built-in. Unfortunately your code editor will not, however there are AGC language extensions that provides syntax highlighting for the following editors:
- [Atom][Atom]†
- [CodeBlocks][CodeBlocks]
- [Eclipse][Eclipse]
- [Kate][Kate]
- [ProgrammersNotepad][ProgrammersNotepad]
- [Sublime Text 3][Sublime Text]†
- [TextPad][TextPad]
- [Vim][Vim]
- [Visual Studio Code][VisualStudioCode]†
- [jEdit][jEdit]
† Supports automatic formatting
[Atom]:https://github.com/Alhadis/language-agc
[CodeBlocks]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/CodeBlocks
[Eclipse]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/Eclipse
[Kate]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/Kate
[ProgrammersNotepad]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/ProgrammersNotepad
[Sublime Text]:https://github.com/jimlawton/AGC-Assembly
[TextPad]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/TextPad
[Vim]:https://github.com/wsdjeg/vim-assembly
[VisualStudioCode]:https://github.com/wopian/agc-assembly
[jEdit]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/jEdit
## Formatting
**Note:** GitHub and extensions marked above will ensure you're using the correct formatting automatically.
- Use tab indentation
- Use tab width of 8
- Trim trailing whitespace
## What do I check?
Any discrepancies between the scans and the source code in this repository.
### Comments
Comments in the transcribed code **MUST** match the scans **exactly**.
Common issues you should look out for while proofing include, but not limited to:
#### Typographic Errors
In some places, the original developers made typographic errors while writing comments. Some of these were mistakenly corrected during the initial digitisation, however the digitisation has also introduced typographic errors that were not present in the scans.
For example, if the digitised comments contained `SPACECRAFT`, but `SPAECRAFT` was printed in the scans, then the digitisation **MUST** be corrected to `SPAECRAFT` (missing `C`).
Likewise, if a word has a typo in the digitisation but is spelt correctly in the scans then the typo **MUST** be corrected.
#### Spaces
Spaces between two characters in comments **SHOULD** match the scans. In most cases (see the discussion in [#316][10]), this is:
- Single space for new words.
- Double space for new sentences.
- Triple space for indentations.
Not all pages in the scans follow this generalisation, if the scans only have a single space instead of a double space, use a single space.
### Line breaks
- Line breaks *with* `R0000` in column 1 should match the scans exactly.
- Line breaks *with**__out__* `R0000` in column 1 should contain only 1 or 2 blank lines in a row.
- If there are more than 2 blank lines breaks, strip the extra line breaks.
- Lines with `R0000` in column 1 do not count towards this.
- In the source images, these were created by an unprinted digit in column 8. A 2 there forced a double space (single blank line) and a 3 forced a triple space (double blank line). Values 4-8 were defined but never used. Read more about it in [#159][7]
For example the following:
```plain
R0819 SUBROUTINE TO SKIP...
R0820
0821 LAMPTEST CS IMODES33
```
Should become:
```plain
R0819 SUBROUTINE TO SKIP...
R0820
0820 LAMPTEST CS IMODES33
```
## Note
Before you make a PR, please make sure your changes are consistent with the scans!
[0]:https://github.com/chrislgarry/Apollo-11/pull/new/master
[1]:http://www.ibiblio.org/apollo/ScansForConversion/Luminary099/
[2]:http://www.ibiblio.org/apollo/ScansForConversion/Comanche055/
[6]:https://github.com/wopian/agc-assembly#user-settings
[7]:https://github.com/chrislgarry/Apollo-11/issues/159
[8]:http://www.ibiblio.org/apollo/ScansForConversion/Comanche055/
[9]:http://www.ibiblio.org/apollo/ScansForConversion/Luminary099/
[10]:https://github.com/chrislgarry/Apollo-11/pull/316#pullrequestreview-102892741

View File

@ -1,513 +0,0 @@
# Copyright: Public domain.
# Filename: AGC_BLOCK_TWO_SELF-CHECK.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1394-1403
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
# from the Colossus249/ file of the same
# name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1394
# PROGRAM DESCRIPTION DATE 20 DECEMBER 1967
# PROGRAM NAME - SELF-CHECK LOG SECTION AGC BLOCK TWO SELF-CHECK
# MOD NO - 1 ASSEMBLY SUBROUTINE UTILITYM REV 25
# MOD BY - GAUNTT
#
#
# FUNCTIONAL DESCRIPTION
#
# PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
# PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
# STARTING VERB.
# THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
# THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK , ONE AT A TIME.
# IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
# FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
# THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
# A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
# OCTAL, TO LOAD INTO SMODE.
# +-4 ERASABLE MEMORY
# +-5 FIXED MEMORY
# +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5.
# -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED.
# +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
#
#
# WARNINGS
# USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
# SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
#
#
# CALLING SEQUENCE
#
# TO CALL SELF-CHECK KEY IN
# V 21 N 27 E OPTION NUMBER E
# TO CALL SHOW-BANKSUM KEY IN
# V 91 E DISPLAYS FIRST BANK
# V 33 E PROCEED, DISPLAYS NEXT BANK
#
#
# EXIT MODES, NORMAL AND ALARM
#
# SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
# COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
# THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
# SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP
#
#
#
# OUTPUT
# Page 1395
# SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
# TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
# INFORMATION HE MAY KEY IN V 05 N 08 E, THE DSKY DISPLAY IN R1 WILL BE ADDRESS+1 OF WHERE THE ERROR WAS DETECTED,
# IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
# INITIATED FRESH START (SLAP1).
# SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
# THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
#
#
# ERASABLE INITIALIZATION REQUIRED
# ACCOMPLISHED BY FRESH START
# SMODE SET TO +0
#
# DEBRIS
# ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
# EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
# E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
BANK 25
SETLOC SELFCHEC
BANK
COUNT 43/SELF
SBIT1 EQUALS BIT1
SBIT2 EQUALS BIT2
SBIT3 EQUALS BIT3
SBIT4 EQUALS BIT4
SBIT5 EQUALS BIT5
SBIT6 EQUALS BIT6
SBIT7 EQUALS BIT7
SBIT8 EQUALS BIT8
SBIT9 EQUALS BIT9
SBIT10 EQUALS BIT10
SBIT11 EQUALS BIT11
SBIT12 EQUALS BIT12
SBIT13 EQUALS BIT13
SBIT14 EQUALS BIT14
SBIT15 EQUALS BIT15
S+ZERO EQUALS ZERO
S+1 EQUALS BIT1
S+2 EQUALS BIT2
S+3 EQUALS THREE
S+4 EQUALS FOUR
S+5 EQUALS FIVE
# Page 1396
S+6 EQUALS SIX
S+7 EQUALS SEVEN
S8BITS EQUALS LOW8 # 00377
CNTRCON = OCT50 # USED IN CNTRCHK
ERASCON1 OCTAL 00061 # USED IN ERASCHK
ERASCON2 OCTAL 01373 # USED IN ERASCHK
ERASCON6 = OCT1400 # USED IN ERASCHK
ERASCON3 OCTAL 01461 # USED IN ERASCHK
ERASCON4 OCTAL 01773 # USED IN ERASCHK
S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK
SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK
-MAXADRS = HI5 # FOR ROPECHK
SIXTY OCTAL 00060
SUPRCON OCTAL 60017 # USED IN ROPECHK
S13BITS OCTAL 17777
CONC+S1 OCTAL 25252 # USED IN CYCLSHFT
CONC+S2 OCTAL 52400 # USED IN CYCLSHFT
ERASCON5 OCTAL 76777
S-7 = OCT77770
S-4 EQUALS NEG4
S-3 EQUALS NEG3
S-2 EQUALS NEG2
S-1 EQUALS NEGONE
S-ZERO EQUALS NEG0
EBANK= LST1
ADRS1 ADRES SKEEP1
SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT
# IN SELFRET WHEN GOING FROM SELFCHK TO
# SHOWSUM AND PUT IN SKEEP1 WHEN GOING
# FROM SHOWSUM TO SELF-CHECK.
PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE
EXTEND
BZF ERRORS # NO
EXTEND
DCA SKEEP5
INDEX SKEEP7
DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS
CA S+ZERO
TS ERESTORE
ERRORS INHINT
CA Q
TS SFAIL # SAVE Q FOR FAILURE LOCATION
TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT
INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
TCALARM2 TC ALARM2
OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR
CCS SMODE
SIDLOOP CA S+ZERO
# Page 1397
TS SMODE
TC SELFCHK # GO TO IDLE LOOP
TC SFAIL # CONTINUE WITH SELF-CHECK
-1CHK CCS A
TCF PRERRORS
TCF PRERRORS
CCS A
TCF PRERRORS
TC Q
SMODECHK EXTEND
QXCH SKEEP1
TC CHECKNJ # CHECK FOR NEW JOB
CCS SMODE
TC SOPTIONS
TC SMODECHK +2 # TO BACKUP IDLE LOOP
TC SOPTIONS
INCR SCOUNT
TC SKEEP1 # CONTINUE WITH SELF-CHECK
SOPTIONS AD S-7
EXTEND
BZMF +2 # FOR OPTIONS BELOW NINE.
BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP.
INCR SCOUNT # FOR OPTIONS BELOW NINE.
AD S+7
INDEX A
TC SOPTION1
SOPTION1 TC SKEEP1 # WAS TC+TCF
SOPTION2 TC SKEEP1 # WAS IN:OUT1
SOPTION3 TC SKEEP1 # WAS COUNTCHK
SOPTION4 TC ERASCHK
SOPTION5 TC ROPECHK
SOPTION6 TC SKEEP1
SOPTION7 TC SKEEP1
SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK
CHECKNJ EXTEND
QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB
TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
CADR ADVAN
SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE
# SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
# SKEEP6 HOLDS B(X+1).
# SKEEP5 HOLDS B(X).
# SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ.
# Page 1398
# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
# SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
# ERASCHK TAKES APPROXMATELY 7 SECONDS
ERASCHK CA S+1
TS SKEEP2
0EBANK CA S+ZERO
TS EBANK
CA ERASCON3 # 01461
TS SKEEP7 # STARTING ADDRESS
CA S10BITS # 01777
TS SKEEP3 # LAST ADDRESS CHECKED
TC ERASLOOP
E134567B CA ERASCON6 # 01400
TS SKEEP7 # STARTING ADDRESS
CA S10BITS # 01777
TS SKEEP3 # LAST ADDRESS CHECKED
TC ERASLOOP
2EBANK CA ERASCON6 # 01400
TS SKEEP7 # STARTING ADDRESS
CA ERASCON4 # 01773
TS SKEEP3 # LAST ADDRESS CHECKED
TC ERASLOOP
NOEBANK TS SKEEP2 # +0
CA ERASCON1 # 00061
TS SKEEP7 # STARTING ADDRESS
CA ERASCON2 # 01373
TS SKEEP3 # LAST ADDRESS CHECKED
ERASLOOP INHINT
CA EBANK # STORES C(EBANK)
TS SKEEP4
EXTEND
NDX SKEEP7
DCA 0000
DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
CA SKEEP7
TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1)
TS L
INCR L
NDX A
DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1
NDX SKEEP7
CS 0001 # CS X+1
NDX SKEEP7
AD 0000 # AD X
TC -1CHK
CA ERESTORE # HAS ERASABLE BEEN RESTORED
# Page 1399
EXTEND
BZF ELOOPFIN # YES, EXIT ERASLOOP.
EXTEND
NDX SKEEP7
DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1
NDX SKEEP7
DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1
NDX SKEEP7
CS 0000 # CS X
NDX SKEEP7
AD 0001 # AD X+1
TC -1CHK
CA ERESTORE # HAS ERASABLE BEEN RESTORED
EXTEND
BZF ELOOPFIN # YES, EXIT ERASLOOP.
EXTEND
DCA SKEEP5
NDX SKEEP7
DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1
CA S+ZERO
TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1)
ELOOPFIN RELINT
TC CHECKNJ # CHECK FOR NEW JOB
CA SKEEP4 # REPLACES B(EBANK)
TS EBANK
INCR SKEEP7
CS SKEEP7
AD SKEEP3
EXTEND
BZF +2
TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK
CCS SKEEP2
TC NOEBANK
INCR SKEEP2 # PUT +1 IN SKEEP2.
CA EBANK
AD SBIT9
TS EBANK
AD ERASCON5 # 76777, CHECK FOR BANK E2
EXTEND
BZF 2EBANK
CCS EBANK
TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7
CA ERASCON6 # END OF ERASCHK
TS EBANK
# CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
# INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
CNTRCHK CA CNTRCON # 00050
CNTRLOOP TS SKEEP2
AD SBIT4 # +10 OCTAL
INDEX A
# Page 1400
CS 0000
CCS SKEEP2
TC CNTRLOOP
# CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
CYCLSHFT CA CONC+S1 # 25252
TS CYR # C(CYR) = 12525
TS CYL # C(CYL) = 52524
TS SR # C(SR) = 12525
TS EDOP # C(EDOP) = 00125
AD CYR # 37777 C(CYR) = 45252
AD CYL # 00-12524 C(CYL) = 25251
AD SR # 00-25251 C(SR) = 05252
AD EDOP # 00-25376 C(EDOP) = +0
AD CONC+S2 # C(CONC+S2) = 52400
TC -1CHK
AD CYR # 45252
AD CYL # 72523
AD SR # 77775
AD EDOP # 77775
AD S+1 # 77776
TC -1CHK
INCR SCOUNT +1
TC SMODECHK
# SKEEP1 HOLDS SUM
# SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
# SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
# SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
# (04000 TO 07777 IN FXFX BANKS)
# SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
# SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
# SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
# SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
# SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
ROPECHK CA S-ZERO # *
TS SKEEP6 # * -0 FOR ROPECHK.
STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK
TS SKEEP4 # BANK NUMBER
CA S+1
COMMFX TS SKEEP7
CA S+ZERO
TS SKEEP1
TS SKEEP3
CA S+1
TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
COMADRS CA SKEEP4
TS L # TO SET SUPER BANK
# Page 1401
MASK HI5
AD SKEEP3
TC SUPDACAL # SUPER DATA CALL
TC ADSUM
AD SBIT11 # 02000
TC ADRSCHK
FXFX CS A
TS SKEEP7
EXTEND
BZF +3
CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02
TC +2
CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03
TS SKEEP3
CA S+ZERO
TS SKEEP1
CA S+1
TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
FXADRS INDEX SKEEP3
CA 0000
TC ADSUM
TC ADRSCHK
ADSUM TS SKEEP2
AD SKEEP1
TS SKEEP1
CAF S+ZERO
AD SKEEP1
TS SKEEP1
CS SKEEP2
AD SKEEP3
TC Q
ADRSCHK LXCH A
CA SKEEP3
MASK LOW10 # RELATIVE ADDRESS
AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777.
EXTEND
BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS.
CCS SKEEP5 # IS CHECKSUM FINISHED
TC +3 # NO
TC +2 # NO
TC SOPTION # GO TO ROPECHK SHOWSUM OPTION
CCS L # -0 MEANS A TC SELF WORD.
TC CONTINU
TC CONTINU
TC CONTINU
CCS SKEEP5
TC CONTINU +1
# Page 1402
CA S-1
TC CONTINU +1 # AD IN THE BUGGER WORD
CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
TS SKEEP5
CCS SKEEP6 # *
CCS NEWJOB # * +1, SHOWSUM
TC CHANG1 # *
TC +2 # *
TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK
ADRS+1 INCR SKEEP3
CCS SKEEP7
TC COMADRS
TC COMADRS
TC FXADRS
TC FXADRS
NXTBNK CS SKEEP4
AD LSTBNKCH # LAST BANK TO BE CHECKED
EXTEND
BZF ENDSUMS # END OF SUMMING OF BANKS.
CA SKEEP4
AD SBIT11
TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
TC CHKSUPR
17TO20 CA SBIT15
ADS SKEEP4 # SET FOR BANK 20
TC GONXTBNK
CHKSUPR MASK HI5
EXTEND
BZF NXTSUPR # INCREMENT SUPER BANK
27TO30 AD S13BITS
EXTEND
BZF +2 # BANK SET FOR 30
TC GONXTBNK
CA SIXTY # FIRST SUPER BANK
ADS SKEEP4
TC GONXTBNK
NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL
ADS SKEEP4 # ERC BIT OF THE 37 TO 40 ADVANCE.
GONXTBNK CCS SKEEP7
TC COMMFX
CA S+1
TC FXFX
CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS.
TC COMMFX
SOPTION CA SKEEP4
MASK HI5 # = BANK BITS
TC LEFT5
# Page 1403
TS L # BANK NUMBER BEFORE SUPER BANK
CA SKEEP4
MASK S8BITS # = SUPER BANK BITS
EXTEND
BZF SOPT # BEFORE SUPER BANK
TS SR # SUPER BANK NECESSARY
CA L
MASK SEVEN
AD SR
TS L # BANK NUMBER WITH SUPER BANK
SOPT CA SKEEP6 # *
EXTEND # *
BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK.
TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM.
CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE.
TC +2
TC +2
AD S+1
TS SKEEP1
BNKCHK CS L # = - BANK NUMBER
AD SKEEP1
AD S-1
TC -1CHK # CHECK SUM
TC NXTBNK
EBANK= NEWJOB
LSTBNKCH BBCON* # * CONSTANT, LAST BANK.
SBANK= LOWSUPER

View File

@ -1,230 +0,0 @@
# Copyright: Public domain.
# Filename: ALARM_AND_ABORT.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1493-1496
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-07 RSB Adapted from Colossus249 file of the same
# name, and page images. Corrected various
# typos in the transcription of program
# comments, and these should be back-ported
# to Colossus249.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1493
# THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
# EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
#
# CALLING SEQUENCE IS AS FOLLOWS:
#
# TC ALARM
# OCT NNNNN
# # (RETURNS HERE)
BLOCK 02
SETLOC FFTAG7
BANK
EBANK= FAILREG
COUNT 02/ALARM
# ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
ALARM INHINT
CA Q
ALARM2 TS ALMCADR
INDEX Q
CA 0
BORTENT TS L
PRIOENT CA BBANK
+1 EXTEND
ROR SUPERBNK # ADD SUPER BITS.
TS ALMCADR +1
LARMENT CA Q # STORE RETURN FOR ALARM
TS ITEMP1
CA LOC
TS LOCALARM
CA BANKSET
TS BANKALRM
CHKFAIL1 CCS FAILREG # IS ANYTHING IN FAILREG
TCF CHKFAIL2 # YES TRY NEXT REG
LXCH FAILREG
TCF PROGLARM # TURN ALARM LIGHT ON FOR FIRST ALARM
CHKFAIL2 CCS FAILREG +1
TCF FAIL3
LXCH FAILREG +1
TCF MULTEXIT
FAIL3 CA FAILREG +2
# Page 1494
MASK POSMAX
CCS A
TCF MULTFAIL
LXCH FAILREG +2
TCF MULTEXIT
PROGLARM CS DSPTAB +11D
MASK OCT40400
ADS DSPTAB +11D
MULTEXIT XCH ITEMP1 # OBTAIN RETURN ADDRESS IN A
RELINT
INDEX A
TC 1
MULTFAIL CA L
AD BIT15
TS FAILREG +2
TCF MULTEXIT
# PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
# AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS,
# CAF OCTXX # ALARM CODE
# TC BANKCALL
# CADR PRIOLARM
#
# ... ...
# ... ...
# ... ... # ASTRONAUT RETURN
# TC PHASCHNG # IMMEDIATE RETURN TO USER. RESTART
# OCT X.1 # PHASE CHANGE FOR PRIO DISPLAY
BANK 10
SETLOC DISPLAYS
BANK
COUNT 10/DSPLA
PRIOLARM INHINT # * * * KEEP IN DISPLAY ROUTINES BANK
TS L # SAVE ALARM CODE
CA BUF2 # 2 CADR OF PRIOLARM USER
TS ALMCADR
CA BUF2 +1
TC PRIOENT +1 # * LEAVE L ALONE
-2SEC DEC -200 # *** DONT MOVE
CAF V05N09
TCF PRIODSPR
# Page 1495
BLOCK 02
SETLOC FFTAG13
BANK
COUNT 02/ALARM
BAILOUT INHINT
CA Q
TS ALMCADR
TC BANKCALL
CADR VAC5STOR
INDEX ALMCADR
CAF 0
TC BORTENT
OCT40400 OCT 40400
INHINT
WHIMPER CA TWO
AD Z
TS BRUPT
RESUME
TC POSTJUMP # RESUME SENDS CONTROL HERE
CADR ENEMA
SETLOC FFTAG7
BANK
POODOO INHINT
CA Q
TS ALMCADR
TC BANKCALL
CADR VAC5STOR # STORE ERASABLES FOR DEBUGGING PURPOSES.
INDEX ALMCADR
CAF 0
ABORT2 TC BORTENT
OCT77770 OCT 77770 # DONT MOVE
CA V37FLBIT # IS AVERAGE G ON
MASK FLAGWRD7
CCS A
TC WHIMPER -1 # YES. DONT DO POODOO. DO BAILOUT.
TC DOWNFLAG
ADRES STATEFLG
TC DOWNFLAG
# Page 1496
ADRES REINTFLG
TC DOWNFLAG
ADRES NODOFLAG
TC BANKCALL
CADR MR.KLEAN
TC WHIMPER
CCSHOLE INHINT
CA Q
TS ALMCADR
TC BANKCALL
CADR VAC5STOR
CA OCT1103
TC ABORT2
OCT1103 OCT 1103
CURTAINS INHINT
CA Q
TC ALARM2
OCT217 OCT 00217
TC ALMCADR # RETURN TO USER
DOALARM EQUALS ENDOFJOB
# CALLING SEQUENCE FOR VARALARM
#
# CAF (ALARM)
# TC VARALARM
#
# VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
VARALARM INHINT
TS L # SAVE USERS ALARM CODE
CA Q # SAVE USERS Q
TS ALMCADR
TC PRIOENT
OCT14 OCT 14 # DONT MOVE
TC ALMCADR # RETURN TO USER
ABORT EQUALS BAILOUT # *** TEMPORARY UNTIL ABORT CALLS OUT

View File

@ -1,626 +0,0 @@
# Copyright: Public domain.
# Filename: ANGLFIND.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 399-411
# Mod history: 2009-05-09 RSB Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
# 2009-05-22 RSB In NOGOM2, TC ZEROEROR corrected to
# CADR ZEROEROR.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 399
BANK 15
SETLOC KALCMON1
BANK
EBANK= BCDU
COUNT 22/KALC
KALCMAN3 TC INTPRET
RTB
READCDUK # PICK UP CURRENT CDU ANGLES
STORE BCDU # STORE THE INITIAL S/C ANGLES
AXC,2 TLOAD # COMPUTE THE TRANSFORMATION FROM
MIS # INITIAL S/C AXES TO STABLE MEMBER AXES
BCDU # (MIS)
CALL
CDUTODCM
AXC,2 TLOAD # COMPUTE THE TRANSFORMATION FROM
MFS # FINAL S/C AXES TO STABLE MEMBER AXES
CPHI # (MFS)
CALL
CDUTODCM
SECAD AXC,1 CALL # MIS AND MFS ARRAYS CALCULATED $2
MIS
TRANSPOS
VLOAD
STADR
STOVL TMIS +12D
STADR
STOVL TMIS +6
STADR
STORE TMIS # TMIS = TRANSPOSE(MIS) SCALED BY 2
AXC,1 AXC,2
TMIS
MFS
CALL
MXM3
VLOAD STADR
STOVL MFI +12D
STADR
STOVL MFI +6
STADR
STORE MFI # MFI = TMIS MFS (SCALED BY 4)
SETPD CALL # TRANSPOSE MFI IN PD LIST
18D
TRNSPSPD
VLOAD STADR
STOVL TMFI +12D
STADR
STOVL TMFI +6
# Page 400
STADR
STORE TMFI # TMFI = TRANSPOSE (MFI) SCALED BY 4
# CALCULATE COFSKEW AND MFISYM
DLOAD DSU
TMFI +2
MFI +2
PDDL DSU # CALCULATE COF SCALED BY 2/SIN(AM)
MFI +4
TMFI +4
PDDL DSU
TMFI +10D
MFI +10D
VDEF
STORE COFSKEW # EQUALS MFISKEW
# CALCULATE AM AND PROCEED ACCORDING TO ITS MAGNITUDE
DLOAD DAD
MFI
MFI +16D
DSU DAD
DP1/4TH
MFI +8D
STORE CAM # CAM = (MFI0+MFI4+MFI8-1)/2 HALF SCALE
ARCCOS
STORE AM # AM=ARCCOS(CAM) (AM SCALED BY 2)
DSU BPL
MINANG
CHECKMAX
EXIT # MANEUVER LESS THAN 0.25 DEG
INHINT # GO DIRECTLY INTO ATTITUDE HOLD
CS ONE # ABOUT COMMANDED ANGLES
TS HOLDFLAG # NOGO WILL STOP ANY RATE AND SET UP FOR A
TC LOADCDUD # GOOD RETURN
TCF NOGO
CHECKMAX DLOAD DSU
AM
MAXANG
BPL VLOAD
ALTCALC # UNIT
COFSKEW # COFSKEW
UNIT
STORE COF # COF IS THE MANEUVER AXIS
GOTO # SEE IF MANEUVER GOES THRU GIMBAL LOCK
LOCSKIRT
ALTCALC VLOAD VAD # IF AM GREATER THAN 170 DEGREES
MFI
# Page 401
TMFI
VSR1
STOVL MFISYM
MFI +6
VAD VSR1
TMFI +6
STOVL MFISYM +6
MFI +12D
VAD VSR1
TMFI +12D
STORE MFISYM +12D # MFISYM=(MFI+TMFI)/2 SCALED BY 4
# CALCULATE COF
DLOAD SR1
CAM
PDDL DSU # PD0 CAM $4
DPHALF
CAM
BOVB PDDL # PD2 1 - CAM $2
SIGNMPAC
MFISYM +16D
DSU DDV
0
2
SQRT PDDL # COFZ = SQRT(MFISYM8-CAM)/(1-CAM)
MFISYM +8D # $ ROOT 2
DSU DDV
0
2
SQRT PDDL # COFY = SQRT(MFISYM4-CAM)/(1-CAM) $ROOT2
MFISYM
DSU DDV
0
2
SQRT VDEF # COFX = SQRT(MFISYM-CAM)/(1-CAM) $ROOT 2
UNIT
STORE COF
# DETERMINE LARGEST COF AND ADJUST ACCORDINGLY
COFMAXGO DLOAD DSU
COF
COF +2
BMN DLOAD # COFY G COFX
COMP12
COF
DSU BMN
COF +4
# Page 402
METHOD3 # COFZ G COFX OR COFY
GOTO
METHOD1 # COFX G COFY OR COFZ
COMP12 DLOAD DSU
COF +2
COF +4
BMN
METHOD3 # COFZ G COFY OR COFX
METHOD2 DLOAD BPL # COFY MAX
COFSKEW +2 # UY
U2POS
VLOAD VCOMP
COF
STORE COF
U2POS DLOAD BPL
MFISYM +2 # UX UY
OKU21
DLOAD DCOMP # SIGN OF UX OPPOSITE TO UY
COF
STORE COF
OKU21 DLOAD BPL
MFISYM +10D # UY UZ
LOCSKIRT
DLOAD DCOMP # SIGN OF UZ OPPOSITE TO UY
COF +4
STORE COF +4
GOTO
LOCSKIRT
METHOD1 DLOAD BPL # COFX MAX
COFSKEW # UX
U1POS
VLOAD VCOMP
COF
STORE COF
U1POS DLOAD BPL
MFISYM +2 # UX UY
OKU12
DLOAD DCOMP
COF +2 # SIGN OF UY OPPOSITE TO UX
STORE COF +2
OKU12 DLOAD BPL
MFISYM +4 # UX UZ
LOCSKIRT
DLOAD DCOMP # SIGN OF UZ OPPOSITE TO UY
COF +4
STORE COF +4
GOTO
LOCSKIRT
METHOD3 DLOAD BPL # COFZ MAX
# Page 403
COFSKEW +4 # UZ
U3POS
VLOAD VCOMP
COF
STORE COF
U3POS DLOAD BPL
MFISYM +4 # UX UZ
OKU31
DLOAD DCOMP
COF # SIGN OF UX OPPOSITE TO UZ
STORE COF
OKU31 DLOAD BPL
MFISYM +10D # UY UZ
LOCSKIRT
DLOAD DCOMP
COF +2 # SIGN OF UY OPPOSITE TO UZ
STORE COF +2
GOTO
LOCSKIRT
# Page 404
# MATRIX OPERATIONS
MXM3 SETPD # MXM3 MULTIPLIES 2 3X3 MATRICES
0 # AND LEAVES RESULT IN PD LIST
DLOAD* PDDL* # ADDRESS OF 1ST MATRIX IN XR1
12D,2 # ADDRESS OF 2ND MATRIX IN XR2
6,2
PDDL* VDEF # DEFINE VECTOR M2(COL 1)
0,2
MXV* PDDL* # M1XM2(COL 1) IN PD
0,1
14D,2
PDDL* PDDL*
8D,2
2,2
VDEF MXV* # DEFINE VECTOR M2(COL 2)
0,1
PDDL* PDDL* # M1XM2(COL 2) IN PD
16D,2
10D,2
PDDL* VDEF # DEFINE VECTOR M2(COL 3)
4,2
MXV* PUSH # M1XM2(COL 3) IN PD
0,1
GOTO
TRNSPSPD # REVERSE ROWS AND COLS IN PD AND
# RETURN WITH M1XM2 IN PD LIST
TRANSPOS SETPD VLOAD* # TRANSPOS TRANSPOSES A 3X3 MATRIX
0 # AND LEAVES RESULT IN PD LIST
0,1 # MATRIX ADDRESS IN XR1
PDVL* PDVL*
6,1
12D,1
PUSH # MATRIX IN PD
TRNSPSPD DLOAD PDDL # ENTER WITH MATRIX IN PD LIST
2
6
STODL 2
STADR
STODL 6
4
PDDL
12D
STODL 4
STADR
STODL 12D
10D
PDDL
# Page 405
14D
STODL 10D
STADR
STORE 14D
RVQ # RETURN WITH TRANSPOSED MATRIX IN PD LIST
MINANG DEC .00069375
MAXANG DEC .472222
# GIMBAL LOCK CONSTANTS
# D = MGA CORRESPONDING TO GIMBAL LOCK = 60 DEGREES
# NGL = BUFFER ANGLE (TO AVOID DIVISIONS BY ZERO) = 2 DEGREES
SD DEC .433015 # = SIN(D) $2
K3S1 DEC .86603 # = SIN(D) $2
K4 DEC -.25 # = - COS(D) $2
K4SQ DEC .125 # = COS(D)COS(D) $2
SNGLCD DEC .008725 # = SIN(NGL)COS(D) $2
CNGL DEC .499695 # = COS(NGL) $2
READCDUK INHINT # LOAD T(MPAC) WITH THE CURRENT CDU ANGLES
CA CDUZ
TS MPAC +2
EXTEND
DCA CDUX
RELINT
TCF TLOAD +6
BANK 16
SETLOC KALCMON2
BANK
COUNT* $$/KALC
CDUTODCM AXT,1 SSP # SUBROUTINE TO COMPUTE DIRECTION COSINE
OCT 3 # MATRIX RELATING S/C AXES TO STABLE
S1 # MEMBER AXES FROM 3 CDU ANGLES IN T(MPAC)
OCT 1 # SET XR1, S1 AND PD FOR LOOP
STORE 7
SETPD
0
LOOPSIN SLOAD* RTB
10D,1
CDULOGIC
STORE 10D # LOAD PD WITH 0 SIN(PHI)
SIN PDDL # 2 COS(PHI)
10D # 4 SIN(THETA)
COS PUSH # 6 COS(THETA)
TIX,1 DLOAD # 8 SIN(PSI)
LOOPSIN # 10 COS(PSI)
6
DMP SL1
10D
# Page 406
STORE 0,2
DLOAD
4
DMP PDDL
0 # (PD6 SIN(THETA)SIN(PHI))
6
DMP DMP
8D
2
SL1 BDSU
12D
SL1
STORE 2,2
DLOAD
2
DMP PDDL # (PD7 COS(PHI)SIN(THETA)) SCALED 4
4
6
DMP DMP
8D
0
SL1
DAD SL1
14D
STORE 4,2
DLOAD
8D
STORE 6,2
DLOAD
10D
DMP SL1
2
STORE 8D,2
DLOAD
10D
DMP DCOMP
0
SL1
STORE 10D,2
DLOAD
4
DMP DCOMP
10D
SL1
STORE 12D,2
DLOAD
DMP SL1 # (PUSH UP 7)
8D
PDDL DMP # (PD7 COS(PHI)SIN(THETA)SIN(PSI)) SCALE4
6
# Page 407
0
DAD SL1 # (PUSH UP 7)
STADR # C7=COS(PHI)SIN(THETA)SIN(PSI)
STORE 14D,2
DLOAD
DMP SL1 # (PUSH UP 6)
8D
PDDL DMP # (PD6 SIN(THETA)SIN(PHI)SIN(PSI)) SCALE4
6
2
DSU SL1 # (PUSH UP 6)
STADR
STORE 16D,2 # C8=-SIN(THETA)SIN(PHI)SIN(PSI)
RVQ # +COS(THETA)COS(PHI)
ENDOCM EQUALS
BANK 15
SETLOC KALCMON1
BANK
# CALCULATION OF THE MATRIX DEL......
#
# * * --T *
# DEL = (IDMATRIX)COS(A)+UU (1-COS(A))+UX SIN(A) SCALED 1
#
# -
# WHERE U IS A UNIT VECTOR (DP SCALED 2) ALONG THE AXIS OF ROTATION.
# A IS THE ANGLE OF ROTATION (DP SCALED 2)
# -
# UPON ENTRY THE STARTING ADDRESS OF U IS COF, AND A IS IN MPAC
COUNT 22/KALC
DELCOMP SETPD PUSH # MPAC CONTAINS THE ANGLE A
0
SIN PDDL # PD0 = SIN(A)
COS PUSH # PD2 = COS(A)
SR2 PDDL # PD2 = COS(A) $8
BDSU BOVB # PD4 = 1-COS(A) $2
DPHALF
SIGNMPAC
# COMPUTE THE DIAGONAL COMPONENTS OF DEL
PDDL
COF
DSQ DMP
4
DAD SL3
# Page 408
2
BOVB
SIGNMPAC
STODL DEL # UX UX(U-COS(A)) +COS(A) $1
COF +2
DSQ DMP
4
DAD SL3
2
BOVB
SIGNMPAC
STODL DEL +8D # UY UY(1-COS(A)) +COS(A) $1
COF +4
DSQ DMP
4
DAD SL3
2
BOVB
SIGNMPAC
STORE DEL +16D # UZ UZ(1-COS(A)) +COS(A) $1
# COMPUTE THE OFF DIAGONAL TERMS OF DEL
DLOAD DMP
COF
COF +2
DMP SL1
4
PDDL DMP # D6 UX UY (1-COS A) $ 4
COF +4
0
PUSH DAD # D8 UZ SIN A $ 4
6
SL2 BOVB
SIGNMPAC
STODL DEL +6
BDSU SL2
BOVB
SIGNMPAC
STODL DEL +2
COF
DMP DMP
COF +4
4
SL1 PDDL # D6 UX UZ (1-COS A ) $ 4
COF +2
DMP PUSH # D8 UY SIN(A)
0
DAD SL2
6
# Page 409
BOVB
SIGNMPAC
STODL DEL +4 # UX UZ (1-COS(A))+UY SIN(A)
BDSU SL2
BOVB
SIGNMPAC
STODL DEL +12D # UX UZ (U-COS(A))-UY SIN(A)
COF +2
DMP DMP
COF +4
4
SL1 PDDL # D6 UY UZ (1-COS(A)) $ 4
COF
DMP PUSH # D6 UX SIN(A)
0
DAD SL2
6
BOVB
SIGNMPAC
STODL DEL +14D # UY UZ(1-COS(A)) +UX SIN(A)
BDSU SL2
BOVB
SIGNMPAC
STORE DEL +10D # UY UZ (1-COS(A)) -UX SIN(A)
RVQ
# DIRECTION COSINE MATRIX TO CDU ANGLE ROUTINE
# X1 CONTAINS THE COMPLEMENT OF THE STARTING ADDRESS FOR MATRIX (SCALED 2)
# LEAVES CDU ANGLES SCALED 2PI IN V(MPAC)
# COS(MGA) WILL BE LEFT IN S1 (SCALED 1)
#
# THE DIRECTION COSINE MATRIX RELATING S/C AXES TO STABLE MEMBER AXES CAN BE WRITTEN AS***
#
# C =COS(THETA)COS(PSI)
# 0
# C =-COS(THETA)SIN(PSI)COS(PHI)+SI (THETA)SIN(PHI)
# 1
# C =COS(THETA)SIN(PSI)SIN(PHI) + S N(THETA)COS(PHI)
# 2
# C =SIN(PSI)
# 3
# C =COS(PSI)COS(PHI)
# 4
# C =-COS(PSI)SIN(PHI)
# 5
# C =-SIN(THETA)COS(PSI)
# 6
# C =SIN(THETA)SIN(PSI)COS(PHI)+COS THETA)SIN(PHI)
# 7
# Page 410
# C =-SIN(THETA)SIN(PSI)SIN(PHI)+COS(THETA)COS(PHI)
# 8
#
# WHERE PHI = OGA
# THETA = IGA
# PSI = MGA
DCMTOCDU DLOAD* ARCSIN
6,1
PUSH COS # PD +0 PSI
SL1 BOVB
SIGNMPAC
STORE S1
DLOAD* DCOMP
12D,1
DDV ARCSIN
S1
PDDL* BPL # PD +2 THETA
0,1 # MUST CHECK THE SIGN OF COS(THETA)
OKTHETA # TO DETERMINE THE PROPER QUADRANT
DLOAD DCOMP
BPL DAD
SUHALFA
DPHALF
GOTO
CALCPHI
SUHALFA DSU
DPHALF
CALCPHI PUSH
OKTHETA DLOAD* DCOMP
10D,1
DDV ARCSIN
S1
PDDL* BPL # PUSH DOWN PHI
8D,1
OKPHI
DLOAD DCOMP # PUSH UP PHI
BPL DAD
SUHALFAP
DPHALF
GOTO
VECOFANG
SUHALFAP DSU GOTO
DPHALF
VECOFANG
OKPHI DLOAD # PUSH UP PHI
VECOFANG VDEF RVQ
# Page 411
# ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
NOGOM2 INHINT # THIS LOCATION ACCESSED BY A BZMF NOGO -2
TC BANKCALL
CADR ZEROEROR
NOGO INHINT
TC STOPRATE
# TERMINATE MANEUVER
CAF TWO # NOTE - ALL RETURNS ARE NOW MADE VIA
TC WAITLIST # GOODEND
EBANK= BCDU
2CADR ENDMANU
TCF ENDOFJOB

File diff suppressed because it is too large Load Diff

View File

@ -1,504 +0,0 @@
# Copyright: Public domain.
# Filename: AUTOMATIC_MANEUVERS.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1025-1036
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1025
BANK 21
SETLOC DAPS3
BANK
COUNT 21/DAPAM
EBANK= KMPAC
AHFNOROT EXTEND
READ CHAN31
MASK BIT14
EXTEND
BZMF FREECONT
CA RCSFLAGS # SEE IF RATE FILTER HAS BEEN INITIALIZED
MASK BIT14
CCS A # IF SO, PROCEED WITH ATTITUDE CONTROL
TCF REINIT # IF NOT, RECYCLE TO INITIALIZE FILTER
# AUTOMATIC CONTROL YET
EXTEND
READ CHAN31
MASK BIT13
EXTEND
BZMF HOLDFUNC
AUTOCONT CA HOLDFLAG # IF HOLDFLAG IS +, GO TO GRABANG.
EXTEND # OTHERWISE, GO TO ATTHOLD.
BZMF ATTHOLD
TCF GRABANG
# MINIMUM IMPULSE CONTROL
FREECONT CAF ONE
TS HOLDFLAG # RESET HOLDFLAG
# INHIBIT AUTOMATIC STEERING
EXTEND
READ CHAN32
TS L
COM
MASK MANROT
MASK CHANTEMP
LXCH CHANTEMP
TC STICKCHK
INDEX RMANNDX
CA MINTAU # MINTAU +0
TS TAU # +1 +14MS MINIMUM IMPULSE
INDEX PMANNDX # +2 -14MS TIME
CA MINTAU # +3 +0
TS TAU1
INDEX YMANNDX
CA MINTAU
# Page 1026
TS TAU2
TCF T6PROGM
MINTAU DEC 0
DEC 23 # = 14MS
DEC -23 # = -14MS
DEC 0
# Page 1027
# CALCULATION OF ATTITUDE ERRORS-
# - * - - -
# AK = AMGB (CDUX - THETADX) + BIAS
#
# IE *AK * * 1 SIN(PSI) 0 ** CDUX - THETADX * *BIAS *
# * * * ** * * *
# *AK1* = * 0 COS(PSI)COS(PHI) SIN(PHI)** CDUY - THETADY * + *BIAS1*
# * * * ** * * *
# *AK2* * 0 -COS(PSI)SIN(PHI) COS(PHI)** CDUZ - THETADZ * *BIAS2*
#
# THE BIASES ARE ADDED ONLY WHILE PERFORMING AUTOMATIC MANEUVERS (ESP KALCMANU) TO PROVIDE ADDITIONAL LEAD
# AND PREVENT OVERSHOOT WHEN STARTING AN AUTOMATIC MANEUVER. NORMALLY THE REQUIRED LEAD IS ONLY 1-2 DEGREES.
# BUT DURING HIGH RATE MANEUVERS IT CAN BE AS MUCH AS 7 DEGREES. THE BIASES ARE COMPUTED BY KALCMANU AND REMAIN
# FIXED UNTIL THE MANEUVER IS COMPLETED AT WHICH TIME THEY ARE RESET TO ZERO.
ATTHOLD CA CDUX
EXTEND
MSU THETADX
TS ERRORX
CA CDUY
EXTEND
MSU THETADY
TS T5TEMP
EXTEND
MP AMGB1
ADS ERRORX
CA T5TEMP
EXTEND
MP AMGB4
TS ERRORY
CA T5TEMP
EXTEND
MP AMGB7
TS ERRORZ
CA CDUZ
EXTEND
MSU THETADZ
TS T5TEMP
EXTEND
MP AMGB5
ADS ERRORY
CA T5TEMP
EXTEND
MP AMGB8
ADS ERRORZ
CS HOLDFLAG
EXTEND
# Page 1028
BZMF JETS
CA BIAS # AD BIASES ONLY IF PERFORMING AUTOMATIC
ADS ERRORX
CA BIAS1
ADS ERRORY
CA BIAS2
ADS ERRORZ
TCF JETS
HOLDFUNC CCS HOLDFLAG
TCF +3
TCF ATTHOLD
TCF +1
GRABANG CAF ZERO # ZERO WBODYS AND BIASES
TS WBODY
TS WBODY +1
TS WBODY1
TS WBODY1 +1
TS WBODY2
TS WBODY2 +1
TS BIAS
TS BIAS1
TS BIAS2
CA RCSFLAGS
MASK OCT16000
EXTEND # IS RATE DAMPING COMPLETED
BZF ENDDAMP # IF SO, GO TO ENDDAMP
CAF ZERO # OTHERWISE, ZERO ERRORS
TS ERRORX
TS ERRORY
TS ERRORZ
TCF JETS
ENDDAMP TS HOLDFLAG # SET HOLDFLAG +0
EXTEND
DCA CDUX # PICK UP CDU ANGLES FOR ATTITUDE HOLD
DXCH THETADX # REFERENCES
CA CDUZ
TS THETADZ
TCF ATTHOLD
# Page 1029
# JET SWITCHING LOGIC AND CALCULATION OF REQUIRED ROTATION COMMANDS
#
# DETERMINE THE LOCATION OF THE RATE ERROR AND THE ATTITUDE ERROR RELATIVE TO THE SWITCHING LOGIC IN THE PHASE
# PLANE.
# COMPUTE THE CHANGE IN RATE CORRESPONDING TO THE ATTITUDE ERROR NECESSARY TO DRIVE THE THE S/C INTO THE
# APPROPRIATE DEADZONE.
#
# .
# R22 RATE . ERROR
# WL+H .
# ********************************* . ***** SWITCH LINES ENCLOSING DEADZONES
# R23 WL * .
# ----------------------------------* . ----- DESIRED RATE LINES
# R23 WL-H - *.
# ****************** - . R20, R21, R22, ETC REGIONS IN PHASE
# * - .* R18 R20 R21 PLANE FOF COMPUTING DESIRED RESPONSE
# * . *
# *- . *
# R22 R24*- R23 . *
# * . *
# * . *
# + -ADB . * AF ATTITUDE
# ........................+--+---------------+--+........................
# AF * . +ADB + ERROR
# * . *
# * . -*
# * . -*
# * . -*
# * . *
# *. - *
# . - *****************
# .* -
# . * --------------------------------
# . *
# . ********************************
# .
# FIG. 1 PHASE PLANE SWITCHING LOGIC
# CONSTANTS FOR JET SWITCHING LOGIC
WLH/SLOP DEC .00463 # = WL+H/SLOPE = .83333 DEG $180
WL-H/SLP DEC .00277 # = WL-H/SLOPE = .5 DEG $180
WLH 2DEC .0011111111 # = WL+H = 0.5 DEG/SEC $450
WLMH 2DEC .0006666666 # = WL-H = 0.3 DEG/SEC $450
WL 2DEC .0008888888 # = WL = 0.4 DEG/SEC $450
# Page 1030
SLOPE2 DEC .32 # = 0.8 DEG/SEC/DEG $450/180
JETS CA ADB
AD FOUR # AF = FLAT REGION = .044 DEG
TS T5TEMP # ADB+AF
CAF TWO
JLOOP TS SPNDX
DOUBLE
TS DPNDX
EXTEND
INDEX A
DCA ADOT
DXCH EDOT
CA HOLDFLAG # HOLDFLAG = +0 MEANS THAT DAP IS IN
EXTEND # ATTITUDE HOLD AND RATE DAMPING IS OVER.
BZF INHOLD # IF THIS IS THE CASE, BYPASS ADDITION
# OF WBODY AND GO TO INHOLD
EXTEND
INDEX DPNDX
DCS WBODY
DAS EDOT # = ADOT-WBODY
INHOLD INDEX SPNDX
CA ERRORX
TS AERR # AERR = BIAS + AK
CCS EDOT
TCF POSVEL
TCF SIGNCK1
TCF NEGVEL
SIGNCK1 CCS EDOT +1
TCF POSVEL
TCF POSVEL
TCF NEGVEL
TCF NEGVEL
POSVEL EXTEND
DCA EDOT
DXCH EDOTVEL
CA T5TEMP
TS ADBVEL # +(ADB+AF)
CA AERR
TS AERRVEL
TC J6.
NEGVEL EXTEND
DCS EDOT
DXCH EDOTVEL
CS T5TEMP
TS ADBVEL # -(ADB+AF)
CS AERR
TS AERRVEL
J6. EXTEND
# Page 1031
SU ADB
AD WLH/SLOP
EXTEND
BZMF J8
CS T5TEMP # (ADB+AF)
AD AERRVEL
EXTEND
BZMF +2
TCF J7
EXTEND
DCS EDOTVEL
EXTEND
DV SLOPE
EXTEND
SU AERRVEL
AD ADB
EXTEND
BZMF J18
TCF J23
J7 CS WL-H/SLP
EXTEND
SU T5TEMP # (ADB+AF)
AD AERRVEL
EXTEND
BZMF J20
TCF J21
J8 EXTEND
DCS WLH
DXCH WTEMP
EXTEND
DCA EDOTVEL
DAS WTEMP
CCS WTEMP
TCF J22
TCF SIGNCK2
TCF NJ22
SIGNCK2 CCS WTEMP +1
TCF J22
TCF J22
TCF NJ22
NJ22 EXTEND
DCA EDOTVEL
EXTEND
DV SLOPE
AD T5TEMP # (ADB+AF)
AD AERRVEL
# Page 1032
CCS A
TCF J23
TCF J23
TCF +2
TCF J23
EXTEND
DCS WLMH # WL - H
DXCH WTEMP
EXTEND
DCA EDOTVEL
DAS WTEMP
CCS WTEMP
TCF J23
TCF SIGNCK3
TCF NJ23
SIGNCK3 CCS WTEMP +1
TCF J23
TCF J23
TCF NJ23
NJ23 CA AERRVEL
AD T5TEMP # (ADB+AF)
AD WL-H/SLP
CCS A
TCF J24
TCF J24
TCF J22
TCF J22
J18 EXTEND
DCS EDOT
DXCH KMPAC
TCF JTIME
J20 CS AERR
AD ADBVEL
EXTEND
MP SLOPE2 # (HYSTERESIS SLOPE)
DXCH KMPAC
EXTEND
DCS EDOT
DAS KMPAC
TCF JTIME
J21 CCS EDOT
TCF JP
TCF SIGNCK4
TCF JN
SIGNCK4 CCS EDOT +1
# Page 1033
TCF JP
TCF JP
TCF JN
JN EXTEND
DCS EDOT
DXCH KMPAC
EXTEND
DCA WL
DAS KMPAC
TCF JTIME
JP EXTEND
DCS EDOT
DXCH KMPAC
EXTEND
DCS WL
DAS KMPAC
TCF JTIME
J22 CCS EDOT
TCF JN
TCF SIGNCK5
TCF JP
SIGNCK5 CCS EDOT +1
TCF JN
TCF JN
TCF JP
TCF JP
J23 INDEX SPNDX
CS BIT13 # RESET RATE DAMPING FLAG
MASK RCSFLAGS # BIT13 FOR ROLL (SPNDX = 0)
TS RCSFLAGS # BIT12 FOR PITCH (SPNDX = 1)
# BIT11 FOR YAW (SPNDX = 2)
INDEX SPNDX
CAF OCT01400 # IS THERE TO BE A FORCED FIRING ON THIS
MASK RCSFLAGS # AXIS
EXTEND
BZF DOJET +2 # NO, GO TO DOJET +2 AND DO NOTHING
TCF J18 # YES, GO TO J18 AND FORCE A FIRING
J24 CS AERR
EXTEND
SU ADBVEL
EXTEND
MP SLOPE2 # (HYSTERESIS SLOPE)
DXCH KMPAC
EXTEND
# Page 1034
DCS EDOT
DAS KMPAC
# Page 1035
# COMPUTE THE JET ON TIME NECESSARY TO ACCOMPLISH THE DESIRED CHANGE IN RATE, IE
#
# T = J/M(DELTA W)
# J
#
# DELTA W = DESIRED CHANGE IN S/C ANGULAR RATE AS DETERMINED BY THE
# SWITCHING LOGIC, AT THIS POINT STORED IN KMPAC.
#
# J/M = S/C INERTIA TO TORQUE 9ATIO SCALED BY
# (57.3/450)(B24/1600)(1/.8)
# FOR 1 JET OPERATION (M = 700 FT-LB).
# IE J/M = J(SLUG-FTFT) x 0.00000085601606
#
# THE CORRESPONDING COMPUTER VARIABLES ESTABLISHED BY
# KEYBOARD ENTRY ARE
# J/M (ROLL)
# J/M1 (PITCH)
# J/M2 (YAW)
#
# T = JET-ON TIME SCALED 16384/1600 SEC
# J
#
# THE COMPUTER VARIABLES ARE
# TAU (ROLL)
# TAU1 (PITCH)
# TAU2 (YAW)
JTIME INDEX SPNDX # PICK UP S/C INERTIA/TORQUE RATIO
CA J/M # SCALED (57.3/450)(B24/1600)
TC SMALLMP # FOR 1-JET OPERATION
CA BIT11
TC SMALLMP
CCS KMPAC
TCF +4
TCF TAUNORM
TCF +4
TCF TAUNORM
CA POSMAX
TCF DOJET
CA NEGMAX
TCF DOJET
TAUNORM CA KMPAC +1
DOJET INDEX SPNDX
TS TAU
CCS SPNDX
TCF JLOOP
TCF T6PROG
# Page 1036
ZEROCMDS CAF ZERO
TS TAU
TS TAU1
TS TAU2
T6PROG EXTEND # WHEN THE ROTATION COMMANDS (TAUS)
DCA JETADDR # HAVE BEEN DETERMINED
DXCH T5LOC # RESET T5LOC FOR PHASE3
TCF RESUME
EBANK= KMPAC
JETADDR 2CADR JETSLECT

View File

@ -1,301 +0,0 @@
# Copyright: Public domain.
# Filename: CM_BODY_ATTITUDE.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 883-889
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-12 RSB Adapted from Colossus249 file of the same
# name and Comanche 055 page images.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 883
BANK 35
SETLOC BODYATT
BANK
COUNT 37/CMBAT
# PDL 12D - 15D SAFE.
# VALUES OF GIMBAL AND BODY ANGLES VALID AT PIP TIME ARE SAVED DURING READACCS.
EBANK= RTINIT # LET INTERPRETER SET EB
CM/POSE TC INTPRET # COME HERE VIA AVEGEXIT.
SETPD VLOAD
0
VN # KVSCALE = (12800/ .3048) /2VS
VXSC PDVL
-KVSCALE # KVSCALE = .81491944
UNITW # FULL UNIT VECTOR
VXV VXSC # VREL = V - WE*R
UNITR
KWE
VAD STADR
STORE -VREL # SAVE FOR ENTRY GUIDANCE. REF COORDS
UNIT LXA,1
36D # ABVAL( -VREL) TO X1
STORE UXA/2 # -UVREL REF COORDS
VXV VCOMP
UNITR # .5 UNIT REF COORDS
UNIT SSP # THE FOLLOWING IS TO PROVIDE A STABLE
S1 # UN FOR THE END OF THE TERMINAL PHASE.
SPVQUIT DEC .019405 # 1000/ 2 VS
TIX,1 VLOAD # IF V-VQUIT POS, BRANCH.
CM/POSE2 # SAVE UYA IN OLDUYA
OLDUYA # OTHERWISE CONTINUE TO USE OLDUYA.
CM/POSE2 STORE UYA/2 # REF COORDS
STORE OLDUYA # RESTORE, OR SAVE AS CASE MAY BE.
VXV VCOMP
UXA/2 # FINISH OBTAINING TRAJECTORY TRIAD.
VSL1
STORE UZA/2 # REF COORDS
# Page 884
TLOAD # PICK UP CDUX, CDUY, CDUZ CORRESPONDING
AOG/PIP # TO PIPUP TIME IN 2S.C AND SAVE.
CM/TRIO STODL 24D
25D # AIG/PIP
RTB PUSH # TO PDL0
CDULOGIC
COS
STODL UBX/2 # CI /2
# AIG/PIP FROM PDL 0
SIN DCOMP
STODL UBX/2 +4 # -SI /2
26D # AMG/PIP
RTB PUSH # TO PDL 0
CDULOGIC
SIN PDDL # XCH PDL 0. SAVE SM /2
COS PDDL # CM /2 TO PDL 2
0 # SM /2
DCOMP VXSC
UBX/2
VSL1 # NOISE WONT OVFL.
STODL UBY/2 # =(-SMCI, NOISE, SMSI)/2
2 # CM /2 REPLACES NOISE
STODL UBY/2 +2 # UBY/2=(-SMCI, CM, SMSI)/2
24D # AOG/PIP
RTB PUSH # TO PDL 4
CDULOGIC
SIN PDDL # XCH PDL 4. SAVE SO /2
COS VXSC # CO /2
UBY/2
STODL UBY/2 # UBY/2=(-COSMCI, COCM, COSMSI)/4
4D # SO /2
DMP DCOMP
UBX/2 +4 # -SI /2
DAD
UBY/2 # INCREMENT BY (SOSI /4)
STODL UBY/2
# SO /2 FROM PDL 4
DMP DAD
UBX/2 # CI /2
UBY/2 +4
STOVL UBY/2 +4 # YB/4 PLATFORM COORDS
# YB = (-COSMCI + SOSI , COCM , COSMSI + SOCI )
UBY/2
VXM VSL2
REFSMMAT # .5 UNIT
STODL UBY/2 # YB/2 DONE REF COORDS
# Page 885
# CM /2 FROM PDL 2
VXSC VSL1
UBX/2
STODL UBX/2 # =( CMCI, NOISE, -CMSI)/2
STADR # SM /2 FROM PDL 0
STOVL UBX/2 +2 # SM /2 REPLACES NOISE
UBX/2 # XB/2 PLATFORM COORDS
# XB = ( CMCI , SM , -CMSI )
VXM VSL1
REFSMMAT # .5 UNIT
STORE UBX/2 # XB/2 DONE REF COORDS
VXV VSL1
UBY/2
STOVL UBZ/2 # ZB/2 DONE REF COORDS
# EQUIVALENT TO
# ZB = ( SOSMCI + COSI , -SOCM , -SOSMSI + COCI)
UXA/2 # -UVREL/2 = -UVA/2
VXV UNIT # GET UNIT(-UVREL*UBY)/2 = UL/2
UBY/2 # YB/2
PUSH DOT # UL/2 TO PDL 0,5
UZA/2 # UNA/2
STOVL COSTH # COS(ROLL)/4
0 # UL/2
DOT
UYA/2
STCALL SINTH # -SIN(ROLL)/4
ARCTRIG
STOVL 6D # -(ROLL/180) /2
UBY/2
DOT SL1 # -UVA.UBY = -SIN(BETA)
UXA/2 # -UVREL/2
ARCSIN
STOVL 7D # -(BETA/180) /2
UBX/2 # XB/2
DOT # UL.UBX = -SIN(ALFA)
0 # UL/2
STOVL SINTH # -SIN(ALFA)/4
DOT # UL/2 FROM PDL 0
UBZ/2
STCALL COSTH # COS(ALFA)/2
ARCTRIG
STOVL 8D # -(ALFA/180) /2
UNITR # UR/2 REF COORDS
DOT SL1
# Page 886
UZA/2 # MORE ACCURATE AT LARGE ARG.
ARCCOS
STORE 10D # (-GAMA/180)/2
TLOAD EXIT # ANGLES IN MPAC IN THE ORDER
# -( (ROLL, BETA, ALFA) /180)/2
6D # THESE VALUES CORRECT AT PIPUP TIME.
# Page 887
# BASIC SUBROUTINE TO UPDATE ATTITUDE ANGLES
EBANK= AOG
CM/ATUP CA EBAOG
TS EBANK
CMTR1 INDEX FIXLOC
CS 10D # (GAMA/180)/2
XCH GAMA
TS L
INHINT
# MUST REMAIN INHINTED UNTIL UPDATE OF BODY
# ANGLES, SO THAT GAMDIFSW IS VALID FIRST PASS
# INDICATOR.
CS CM/FLAGS
MASK BIT11 # GAMDIFSW=94D BIT11 INITLY=0
EXTEND # DONT CALC GAMA DOT UNTIL HAVE FORMD
# ONE DIFFERENCE.
BZF DOGAMDOT # IS OK, GO ON.
ADS CM/FLAGS # KNOW BIT IS 0
TC NOGAMDOT # SET GAMDOT = 0
DOGAMDOT CS L
AD GAMA # DEL GAMA/360= T GAMDOT/360
EXTEND
MP TCDU # TCDU = .1 SEC, T = 2 SEC.
TS GAMDOT # GAMA DOT TCDU / 180
EXTEND # IGNORE GAMDOT IF LEQ .5 DEG/SEC
BZMF +2
COM
AD FIVE
EXTEND
BZMF +3 # SET GAMDOT=+0 AS TAG IF TOO SMALL.
NOGAMDOT CA ZERO # COME HERE INHINTED.
TS GAMDOT
# FOR NOW LEAVE IN 2S.C
# UPDATE ANGLES BY CORRECTING EUILER ANG
# FOR ACCRUED INCREMENT SINCE PIPUP
# R = R EUIL + R(NOW) -R(PIPUP)
CS MPAC # GET (R EUL/180) /2
DOUBLE # POSSIBLE OVERFLOW
TC CORANGOV # CORRECT FOR OVFL IF ANY
EXTEND
SU ROLL/PIP # GET INCR SINCE PIPUP
AD ROLL/180 # ONLY SINGLE OVFL POSSIBLE.
TC CORANGOV # CORRECT FOR OVFL IF ANY
# Page 888
TS TEMPROLL
CS MPAC +2 # GET (ALFA EUL/180) /2
DOUBLE # SAME AS FOR ROLL. NEEDED FOR EXT ATM DAP
TC CORANGOV # CORRECT FOR OVFL IF ANY
EXTEND
SU ALFA/PIP
AD ALFA/180
TC CORANGOV # CORRECT FOR OVFL IF ANY
TS TEMPALFA
CS MPAC +1 # GET (BETA EUL/180) /2
CMTR2 DOUBLE
EXTEND
SU BETA/PIP
AD BETA/180
XCH TEMPBETA # OVFL NOT EXPECTED.
CA EBANK3
TS EBANK
EBANK= PHSNAME5
EXTEND
DCA REPOSADR # THIS ASSUMES THAT THE TC PHASCHNG
DXCH PHSNAME5 # IS NOT CHANGED IN OCT 10035
# SERVICER.
CA EBAOG
TS EBANK
EBANK= AOG
REDOPOSE EXTEND # RE-STARTS COME HERE
DCA TEMPROLL
DXCH ROLL/180
CA TEMPBETA
TS BETA/180
RELINT
TC INTPRET # CANT TC DANZIG AFTER PHASCHNG.
CM/POSE3 VLOAD ABVAL # RETURN FROM CM/ATUP. (RESTART)
VN # 2(-7) M/CS
STORE VMAGI # FOR DISPLAY ON CALL.
GOTO
POSEXIT # ENDEXIT, STARTENT, OR SCALEPOP.
CORANGOV TS L
TC Q
INDEX A
# Page 889
CA LIMITS
ADS L
TC Q # COSTS 2 MCT TO USE. SEE ANGOVCOR.
-KVSCALE 2DEC -.81491944 # -12800/(2 VS .3048)
TCDU DEC .1 # TCDU = .1 SEC.
EBANK= AOG
REPOSADR 2CADR REDOPOSE

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,73 +0,0 @@
# Copyright: Public domain.
# Filename: CONTRACT_AND_APPROVALS.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Mod history: 2009-05-06 RSB Transcribed from page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
# Page 1
# ************************************************************************
# * *
# * THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS: *
# * *
# * *
# * COLOSSUS 2A *
# * *
# * *
# * THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED *
# * IN REPORT R-577. THIS PROGRAM WAS PREPARED UNDER DSR *
# * PROJECT 55-23870, SPONSORED BY THE MANNED SPACECRAFT *
# * CENTER OF THE NATIONAL AERONAUTICS AND SPACE *
# * ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE *
# * INSTRUMENTATION LABORATORY, MASSACHUSETTS INSTITUTE OF *
# * TECHNOLOGY, CAMBRIDGE, MASS. *
# * *
# ************************************************************************
# SUBMITTED: MARGARET H. HAMILTON DATE: 28 MAR 69
# M.H.HAMILTON, COLOSSUS PROGRAMMING LEADER
# APOLLO GUIDANCE AND NAVIGATION
# APPROVED: DANIEL J. LICKLY DATE: 28 MAR 69
# D.J.LICKLY, DIRECTOR, MISSION PROGRAM DEVELOPMENT
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: FRED H. MARTIN DATE: 28 MAR 69
# FRED H. MARTIN, COLOSSUS PROJECT MANGER
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: NORMAN E.SEARS DATE: 28 MAR 69
# N.E. SEARS, DIRECTOR, MISSION DEVELOPMENT
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: RICHARD H. BATTIN DATE: 28 MAR 69
# R.H. BATTIN, DIRECTOR, MISSION DEVELOPMENT
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: DAVID G. HOAG DATE: 28 MAR 69
# D.G. HOAG, DIRECTOR
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: RALPH R. RAGAN DATE: 28 MAR 69
# R.R. RAGAN, DEPUTY DIRECTOR
# INSTRUMENTATION LABORATORY

View File

@ -1,415 +0,0 @@
# Copyright: Public domain.
# Filename: CSM_GEOMETRY.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 285-296
# Mod history: 2009-05-08 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 285
BANK 22
SETLOC COMGEOM1
BANK
# THIS ROUTINE TAKES THE SHAFT AND TRUNNION ANGLES AS READ BY THE CM OPTICAL SYSTEM AND CONVERTS THEM INTO A UNIT
# VECTOR REFERENCED TO THE NAVIGATION BASE COORDINATE SYSTEM AND COINCIDENT WITH THE SEXTANT LINE OF SIGHT.
#
# THE INPUTS ARE 1) THE SEXTANT SHAFT AND TRUNNION ANGLES ARE STORED SP IN LOCATIONS 3 AND 5 RESPECTIVELY OF THE
# MARK VAC AREA. 2) THE COMPLEMENT OF THE BASE ADDRESS OF THE MARK VAC AREA IS STORED SP AT LOCATION X1 OF YOUR
# JOB VAC AREA.
#
# THE OUTPUT IS A HALF-UNIT VECTOR IN NAVIGATION BASE COORDINATES AND STORED AT LOCATION 32D OF THE VAC AREA. THE
# OUTPUT IS ALSO AVAILABLE AT MPAC.
COUNT 23/GEOM
SXTNB SLOAD* RTB # PUSHDOWN 00,02,04,(17D-19D),32D-36D
5,1 # TRUNNION = TA
CDULOGIC
RTB PUSH
SXTLOGIC
SIN SL1
PUSH SLOAD* # PD2 = SIN(TA)
3,1 # SHAFT = SA
RTB PUSH # PD4 = SA
CDULOGIC
COS DMP
2
STODL STARM # COS(SA)SIN(TA)
SIN DMP
STADR
STODL STARM +2 # SIN(SA)SIN(TA)
COS
STOVL STARM +4
STARM # STARM = 32D
MXV VSL1
NB1NB2
STORE 32D
RVQ
SXTLOGIC CAF 10DEGS- # CORRECT FOR 19.775 DEGREE OFFSET
ADS MPAC
CAF QUARTER
TC SHORTMP
TC DANZIG
# Page 286
# CALCSXA COMPUTES THE SEXTANT SHAFT AND TRUNNION ANGLES REQUIRED TO POSITION THE OPTICS SUCH THAT A STAR LINE-
# OF-SIGHT LIES ALONG THE STAR VECTOR. THE ROUTINE TAKES THE GIVEN STAR VECTOR AND EXPRESSES IT AS A VECTOR REF-
# ERENCED TO THE OPTICS COORDINATE SYSTEM. IN ADDITION IT SETS UP THREE UNIT VECTORS DEFINING THE X,Y, AND Z AXES
# REFERENCED TO THE OPTICS COORDINATE SYSTEM.
#
# THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO PRESENT STABLE MEMBER COORDINATES STORED AT STAR. 2) SAME ANGLE
# INPUT AS *SMNB*, I.E. SINES AND COSINES OF THE CDU ANGLES, IN THE ORDER Y Z X, AT SINCDU AND COSCDU. A CALL
# TO CDUTRIG WILL PROVIDE THIS INPUT.
#
# THE OUTPUTS ARE THE SEXTANT SHAFT AND TRUNNION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY. (LOW ORDER PART
# EQUAL TO ZERO).
CALCSXA ITA VLOAD # PUSHDOWN 00-26D,28D,30D,32D-36D
28D
STAR
CALL
*SMNB*
MXV VSL1
NB2NB1
STOVL STAR
HIUNITX
STOVL XNB1
HIUNITY
STOVL YNB1
HIUNITZ
STCALL ZNB1
SXTANG1
# Page 287
# SXTANG COMPUTES THE SEXTANT SHAFT AND TRUNNION ANGLES REQUIRED TO POSITION THE OPTICS SUCH THAT A STAR LINE-OF-
# SIGHT LIES ALONG THE STAR VECTOR.
#
# THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO ANY COORDINATE SYSTEM STORED AT STAR. 2) THE NAVIGATION BASE
# COORDINATES REFERRED TO THE SAME COORDINATE SYSTEM. THESE THREE HALF-UNIT VECTORS ARE STORED AT XNB, YNB, AND
# ZNB.
#
# THE OUTPUTS ARE THE SEXTANT SHAFT AND TRUNNION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY. (LOW ORDER PART
# EQUAL TO ZERO).
SXTANG ITA RTB # PUSHDOWN 16D,18D,22D-26D,28D
28D
TRANSP1 # EREF WRT NB2
VLOAD MXV
XNB
NB2NB1
VSL1
STOVL XNB1
YNB
MXV VSL1
NB2NB1
STOVL YNB1
ZNB
MXV VSL1
NB2NB1
STORE ZNB1
RTB RTB
TRANSP1
TRANSP2
SXTANG1 VLOAD VXV
ZNB1
STAR
BOV
+1
UNIT BOV
ZNB=S1
STORE PDA # PDA = UNIT(ZNB X S)
DOT DCOMP
XNB1
STOVL SINTH # SIN(SA) = PDA . -XNB
PDA
DOT
YNB1
STCALL COSTH # COS(SA) = PDA . YNB
ARCTRIG
# Page 288
RTB
1STO2S
STOVL SAC
STAR
BOV
+1
DOT SL1
ZNB1
ACOS
BMN SL2
SXTALARM # TRUNNION ANGLE NEGATIVE
BOV DSU
SXTALARM # TRUNNION ANGLE GREATER THAN 90 DEGREES
20DEG-
RTB
1STO2S
STORE PAC # FOR FLIGHT USE, CULTFLAG IS ON IF
CLRGO # TRUNION IS GREATER THAN 90 DEG
CULTFLAG
28D
SXTALARM SETGO # ALARM HAS BEEN REMOVED FROM THIS
CULTFLAG
28D # SUBROUTINE,ALARM WILL BE SET BY MPI
ZNB=S1 DLOAD
270DEG
STODL SAC
20DEGS-
STORE PAC
CLRGO
CULTFLAG
28D
# Page 289
# THESE TWO ROUTINES COMPUTE THE ACTUAL STATE VECTOR FOR LM, CSM BY ADDING
# THE CONIC R,V AND THE DEVIATIONSR,V. THE STATE VECTORS ARE CONVERTED TO
# METERS B-29 AND METERS/CSEC B-7 AND STORED APPROPRIATELY IN RN,VN OR
# R-OTHER , V-OTHER FOR DOWNLINK. THE ROUTINES NAMES ARE SWITCHED IN THE
# OTHER VEHICLES COMPUTER.
#
# INPUT
# STATE VECTOR IN TEMPORARY STORAGE AREA
# IF STATE VECTOR IS SCALED POS B27 AND VEL B5
# SET X2 TO +2
# IF STATE VECTOR IS SCALED POS B29 AND VEL B7
# SET X2 TO 0
#
# OUTPUT
# R(T) IN RN, V(T) IN VN, T IN PIPTIME
# OR
# R(T) IN R-OTHER, V(T) IN V-OTHER (T IS DEFINED BY T-OTHER)
BANK 23
SETLOC COMGEOM2
BANK
COUNT 10/GEOM
SVDWN1 BOF RVQ # SW=1=AVETOMID DOING W-MATRIX INTEG
AVEMIDSW
+1
VLOAD VSL*
TDELTAV
0 -7,2
VAD VSL*
RCV
0,2
STOVL RN
TNUV
VSL* VAD
0 -4,2
VCV
VSL*
0,2
STODL VN
TET
STORE PIPTIME
RVQ
SVDWN2 VLOAD VSL*
TDELTAV
0 -7,2
VAD VSL*
RCV
# Page 290
0,2
STOVL R-OTHER
TNUV
VSL* VAD
0 -4,2
VCV
VSL*
0,2
STORE V-OTHER
RVQ
# Page 291
# SUBROUTINE TO COMPUTE THE NATURAL LOG OF C(MPAC, MPAC +1).
#
# ENTRY: CALL
# LOG
#
# SUBROUTINE RETURNS WITH -LOG IN DP MPAC.
#
# EBANK IS ARBITRARY..
BANK 14
SETLOC POWFLIT2
BANK
COUNT 23/GEOM
LOG NORM BDSU # GENERATES LOG BY SHIFTING ARG
MPAC +3 # UNTIL IT LIES BETWEEN .5 AND 1.
NEARLY1 # THE LOG OF THIS PART IS FOUND AND THE
EXIT # LOG OF THE SHIFTED PART IS COMPUTED
TC POLY # AND ADDED IN. SHIFT COUNT STORED
DEC 2 # (N-1, SUPPLIED BY SMERZH)
2DEC 0 # IN MPAC +3.
2DEC .031335467
2DEC .0130145859
2DEC .0215738898
CAF ZERO
TS MPAC +2
EXTEND
DCA CLOG2/32
DXCH MPAC
DXCH MPAC +3
COM # LOAD POSITIVE SHIFT COUNT IN A.
TC SHORTMP # MULTIPLY BY SHIFT COUNT.
DXCH MPAC +1
DXCH MPAC
DXCH MPAC +3
DAS MPAC
TC INTPRET # RESULT IN MPAC, MPAC +1
RVQ
NEARLY1 2DEC .999999999
# Page 292
CLOG2/32 2DEC .0216608494
# Page 293
# SUBROUTINE NAME: EARTH ROTATOR (EARROT1 OR EARROT2) DATE: 15 FEB 67
# MOD NO: N +1 LOG SECTION: POWERED FLIGHT SUBROS
# MOD BY: ENTRY GROUP (BAIRNSFATHER)
# FUNCTIONAL DESCRIPTION: THIS ROUTINE PROJECTS THE INITIAL EARTH TARGET VECTOR RTINIT AHEAD THROUGH
# THE ESTIMATED TIME OF FLIGHT. INITIAL CALL RESOLVES THE INITIAL TARGET VECTOR RTINIT INTO EASTERLY
# AND NORMAL COMPONENTS RTEAST AND RTNORM . INITIAL AND SUBSEQUENT CALLS ROTATE THIS VECTOR
# ABOUT THE (FULL) UNIT POLAR AXIS UNITW THROUGH THE ANGLE WIE DTEAROT TO OBTAIN THE ROTATED
# TARGET VECTOR RT . ALL VECTORS EXCEPT UNITW ARE HALF UNIT.
# THE EQUATIONS ARE
# - - - -
# RT = RTINIT + RTNORM (COS(WT) - 1) + RTEAST SIN(WT)
# WHERE WT = WIE DTEAROT
# RTINIT = INITIAL TARGET VECTOR
# - - -
# RTEAST = UNITW*RTINIT
# - - -
# RTNORM = RTEAST*UNITW
#
# FOR CONTINUOUS UPDATING, ONLY ONE ENTRY TO EARROT1 IS REQUIRED, WITH SUBSEQUENT ENTRIES AT EARROT2.
# CALLING SEQUENCE: FIRST CALL SUBSEQUENT CALL
# STCALL DTEAROT STCALL DTEAROT
# EARROT1 EARROT2
# C(MPAC) UNSPECIFIED C(MPAC) = DTEAROT
# PUSHLOC = PDL+0, ARBITRARY. 6 LOCATIONS USED.
#
# SUBROUTINES USED: NONE
# NORMAL EXIT MODES: RVQ
# ALARMS: NONE
# OUTPUT: RTEAST (-1) .5 UNIT VECTOR EAST, COMPNT OF RTINIT LEFT BY FIRST CALL
# RTNORM (-1) .5 UNIT VECTOR NORML, COMPNT OF RTINIT LEFT BY FIRST CALL
# RT (-1) .5 UNIT TARGET VECTOR, ROTATED LEFT BY ALL CALLS
# DTEAROT (-28) CS MAY BE CHANGED BY EARROT2, IF OVER 1 DAY
# ERASABLE INITIALIZATION REQUIRED:
# UNITW (0) UNIT POLAR VECTOR PAD LOADED
# RTINIT (-1) .5 UNIT INITIAL TARGET VECTOR LEFT BY ENTRY
# DTEAROT (-28) CS TIME OF FLIGHT LEFT BY CALLER
# DEBRIS: QPRET, PDL+0 ... PDL+5
# Page 294
EBANK= RTINIT
EARROT1 VLOAD VXV
UNITW # FULL UNIT VECTOR
RTINIT # .5 UNIT
STORE RTEAST # .5 UNIT
VXV
UNITW # FULL UNIT
STODL RTNORM # .5 UNIT
DTEAROT # (-28) CS
EARROT2 BOVB DDV
TCDANZIG # RESET OVFIND, IF ON
1/WIE
BOV PUSH
OVERADAY
COS DSU
HIDPHALF
VXSC PDDL # XCH W PUSH LIST
RTNORM # .5 UNIT
SIN VXSC
RTEAST # .5 UNIT
VAD VSL1
VAD UNIT # INSURE THAT RT IS 'UNIT'.
RTINIT # .5 UNIT
STORE RT # .5 UNIT TARGET VECTOR
RVQ
OVERADAY DLOAD SIGN
1/WIE
DTEAROT
BDSU
DTEAROT
STORE DTEAROT
GOTO
EARROT2
#WIE 2DEC .1901487997
1/WIE 2DEC 8616410
NB2NB1 2DEC +.8431756920 B-1
2DEC 0
2DEC -.5376381241 B-1
# Page 295
ZERINFLT 2DEC 0
HALFNFLT 2DEC .5
2DEC 0
2DEC +.5376381241 B-1
2DEC 0
2DEC +.8431756920 B-1
NB1NB2 2DEC +.8431756920 B-1
2DEC 0
2DEC +.5376381241 B-1
2DEC 0
2DEC .5
2DEC 0
2DEC -.5376381241 B-1
2DEC 0
2DEC +.8431756920 B-1
# Page 296
10DEGS- DEC 3600
270DEG OCT 60000 # SHAFT 270 DEGREES 2S COMP.
OCT 00000
20DEGS- DEC -07199
DEC -00000
20DEG- DEC 03600
DEC 00000

File diff suppressed because it is too large Load Diff

View File

@ -1,441 +0,0 @@
# Copyright: Public domain.
# Filename: DOWN-TELEMETRY_PROGRAM.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1093-1102
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-08 RSB Adapted from Colossus249/ file of same name
# and page images. Corrected various typos
# in the transcription of program comments,
# and these should be back-ported to
# Colossus249.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1093
# PROGRAM NAME- DOWN TELEMETRY PROGRAM
# MOD NO.- 0 TO COMPLETELY REWRITE THE DOWN TELEMETRY PROGRAM AND DOWNLINK ERASABLE DUMP PROGRAM FOR THE
# PURPOSE OF SAVING APPROXIMATELY 150 WORDS OF CORE STORAGE.
# THIS CHANGE REQUIRES AN ENTIRELY NEW METHOD OF SPECIFYING DOWNLINK LISTS. REFER TO DOWNLINK
# LISTS LOG SECTION FOR MORE DETAILS. HOWEVER THIS CHANGES WILL NOT AFFECT THE GROUND PROCESSING
# OF DOWN TELEMETRY DATA.
# MOD BY- KILROY, SMITH, DEWITT
# DATE- 02OCT67
# AUTHORS- KILROY, SMITH, DWWITT, DEWOLF, FAGIN
# LOG SECTION- DOWN-TELEMETRY PROGRAM
# FUNCTIONAL DESCRIPTION- THIS ROUTINE IS INITIATED BY TELEMETRY END
# PULSE FROM THE DOWNLINK TELEMETRY CONVERTER. THIS PULSE OCCURS
# AT 50 TIMES PER SEC(EVERY 20 MS) THEREFORE DODOWNTM IS
# EXECUTED AT THESE RATES. THIS ROUTINE SELECTS THE APPROPRIATE
# AGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT
# CHANNELS 34 AND 35. THE INFORMATION IS THEN GATED OUT FROM THE
# LGC IN SERIAL FASHION.
# THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST. SINCE DOWNRUPTS
# OCCUR EVERY 20MS AND 2 AGC COMPUTER WORDS CAN BE PLACED IN
# CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
# OF SENDING 200 AGC WORDS EVERY 2 SECONDS.
# CALLING SEQUENCE- NONE
# PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A
# RESULT OF A DOWNRUPT. CONTROL IS RETURNED VIA TCF RESUME WHICH
# IN EFFECT IS A RESUME.
# SUBROUTINES CALLED- NONE
# NORMAL EXIT MODE- TCF RESUME
# ALARM OR ABORT EXIT MODE- NONE
# RESTART PROTECTION:
# ON A FRESH START AND RESTART THE 'STARTSUB' SUBROUTINE WILL INITIALIZE THE DOWNLIST POINTER(ACTUALLY
# DNTMGOTO) TO THE BEGINNING OF THE CURRENT DOWNLIST(I.E., CURRENT CONTENTS OF DNLSTADR). THIS HAS THE
# EFFECT OF IGNORING THE REMAINDER OF THE DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
# THE RESTART(OR FRESH START) OCCURRED AND RESUME DOWN TELEMETRY FROM THE BEGINNING OF THE CURRENT
# DOWNLIST.
# ALSO OF INTEREST IS THE FACT THAT ON A RESTART THE AGC WILL ZERO DOWNLINK CHANNELS 13, 34 AND 35.
# DOWNLINK LIST SELECTION:
# THE APPROPRIATE DOWNLINK LISTS ARE SELECTED BY THE FOLLOWING:
# 1. FRESH START
# 2. V37EXXE WHERE XX = THE MAJOR MODE BEING SELECTED.
# 3. UPDATE PROGRAM(P27)
# 4. NON-V37 SELECTABLE TYPE PROGRAMS(E.G. AGS INITIALIZATION(SUNDANCE,LUMINARY) AND P61-P62
# TRANSITION(COLOSSUS) ETC.).
# DOWNLINK LIST RULES AND LIMITATIONS:
# READ SECTION(S) WHICH FOLLOW 'DEBRIS' WRITEUP.
# OUTPUT- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS(I.E. 200 LGC
# COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
# ERASABLE INITIALIZATION REQUIRED- NONE
# 'DNTMGOTO' AND 'DNLSTADR' ARE INITIALIZED BY THE FRESH START PROGRAM.
# DEBRIS(ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM)-
# LDATALST,DNTMBUFF TO DNTMBUFF +21D,TMINDEX,DNQ.
# Page 1094
# (No source on this page of the original assembly listing.)
# Page 1095
# DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
# RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
#
# NOTES REGARDING DOWNLINK LISTS ASSOCIATED WITH THIS PROGRAM:
# 1. DOWNLISTS. - DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
# DOWN-TELEMETRY PROGRAM. THIS IS DONE FOR EASE OF CODING, FASTER
# EXECUTION.
# 2. EACH DOWNLINK LIST CONSISTS OF A CONTROL LIST AND A NUMBER OF
# SUBLISTS.
# 3. A SUBLIST REFERS TO A SNAPSHOT OR DATA COMMON TO THE SAME OR OTHER
# DOWNLINK LISTS. ANY SUBLIST CONTAINING COMMON DATA NEEDS TO BE
# CODED ONLY ONCE FOR THE APPLICABLE DOWNLINK LISTS.
# 4. SNAPSHOT SUBLISTS REFER SPECIFICALLY TO HOMOGENOUS DATA WHICH MUST BE
# SAVED IN A BUFFER DURING ONE DOWNRUPT.
# 5. THE 1DNADR FOR THE 1ST WORD OF SNAPSHOT DATA IS FOUND AT THE END
# OF EACH SNAPSHOT SUBLIST, SINCE THE PROGRAM CODING SENDS THIS DP WORD
# IMMEDIATELY AFTER STORING THE OTHERS IN THE SNAPSHOT BUFFER.
# 6. ALL LISTS ARE COMBINATIONS OF CODED ERASABLE ADDRESS CONSTANTS
# CREATED FOR THE DOWNLIST PROGRAM.
# A. 1DNADR 1-WORD DOWNLIST ADDRESS.
# SAME AS ECADR, BUT USED WHEN THE WORD ADDRESSED IS THE LEFT
# HALF OF A DOUBLE-PRECISION WORD FOR DOWN TELEMETRY.
# B. 2DNADR - 6DNADR N-WORD DOWNLIST ADDRESS, N = 2 - 6.
# SAME AS 1DNADR, BUT WITH THE 4 UNUSED BITS OF THE ECADR FORMAT
# FILLED IN WITH 0001-0101. USED TO POINT TO A LIST OF N DOUBLE-
# PRECISION WORDS, STORED CONSECUTIVELY, FOR DOWN TELEMETRY.
# C. DNCHAN DOWNLIST CHANNEL ADDRESS.
# SAME AS 1DNADR, BUT WITH PREFIX BITS 0111. USED TO POINT TO
# A PAIR OF CHANNELS FOR DOWN TELEMETRY.
# D. DNPTR DOWN TELEMETRY SUBLIST POINTER.
# SAME AS CAF BUT TAGGES AS A CONSTANT. USED IN CONTROL LIST TO POINT TO A SUBLIST.
# CAUTION--- A DNPTR CANNOT BE USED IN A SUBLIST.
# 7. THE WORD ORDER CODE IS SET TO ZERO AT THE BEGINNING OF EACH DOWNLIST (I.E., CONTROL LIST) AND WHEN
# A '1DNADR TIME2' IS DETECTED IN THE CONTROL LIST(ONLY).
# 8. IN THE SNAPSHOT SUBLIST ONLY, THE DNADR'S CANNOT POINT TO THE FIRST WORD OF ANY EBANK.
#
# DOWNLINK LIST RESTRICTIONS:
# (THE FOLLOWING POINTS MAY BE LISTED ELSEWHERE BUT ARE LISTED HERE SO IT IS CLEAR THAT THESE THINGS CANNOT BE
# DONE)
#
# 1. SNAPSHOT DOWNLIST:
# (A) CANNOT CONTAIN THE FOLLOWING ECADRS(I.E. 1DNADR'S): 0, 400, 1000, 1400, 2000, 2400, 3000, 3400.
# (B) CAN CONTAIN ONLY 1DNADR'S
#
# 2. ALL DOWNLINKED DATA(EXCEPT CHANNELS) IS PICKED UP BY A <DCA<SO DOWNLINK LISTS CANNOT CONTAIN THE
# EQUIVALENT OF THE FOLLOWING ECADRS(I.E. IDNADRS): 377, 777, 1377, 1777, 2377, 2777, 3377, 3777.
#
# (NOTE: THE TERM EQUIVALENT ' MEANT THAT THE IDNADR TO 6DNADR WILL BE PROCESSED LIKE 1 TO 6 ECADRS)
#
# 3. CONTROL LISTS AND SUBLISTS CANNOT HAVE ENTRIES = OCTAL 00000 OR OCTAL 77777
# Page 1096
# 4. THE '1DNADR TIME2' WHICH WILL CAUSE THE DOWNLINK PROGRAM TO SET THE WORDER CODE TO 3 MUST APPEAR IN THE
# CONTROL SECTION OF THE DOWNLIST.
#
# 5. 'DNCHAN 0' CANNOT BE USED.
#
# 6. 'DNPTR 0' CANNOT BE USED.
#
# 7. DNPTR CANNOT APPEAR IN A SUBLIST.
#
#
#
#
# EBANK SETTINGS
# IN THE PROCESS OF SETTING THE EBANK(WHEN PICKING UP DOWNLINK DATA) THE DOWN TELEMETRY PROGRAM PUTS
# 'GARBAGE' INTO BITS15-12 OF EBANK. HUGH BLAIR-SMITH WARNS US THAT BITS15-12 OF EBANK MAY BECOME
# SIGNIFICANT SOMEDAY IN THE FUTURE. IF/WHEN THAT HAPPENS, THE PROGRAM SHOULD INSURE(BY MASKING ETC.)
# THAT BITS 15-12 OF EBANK ARE ZERO.
# INITIALIZATION REQUIRED- TO INTERRUPT CURRENT LIST AND START A NEW ONE..
# 1. ADRES OF DOWNLINK LIST INTO DNLSTADR
# 2. NEGONE INTO SUBLIST
# 3. NEGONE INTO DNECADR
BANK 22
SETLOC DOWNTELM
BANK
EBANK= DNTMBUFF
COUNT 05/DPROG
DODOWNTM TS BANKRUPT
EXTEND
QXCH QRUPT # SAVE Q
CA BIT7 # SET WORD ORDER CODE TO 1. EXCEPTION- AT
EXTEND # THE BEGINNING OF EACH LIST THE WORD
WOR CHAN13 # CODE WILL BE SET BACK TO 0.
TC DNTMGOTO # GO TO APPROPRIATE PHASE OF PROGRAM
DNPHASE1 CA NEGONE # INITIALIZE ALL CONTROL WORDS
TS SUBLIST # WORDS TO MINUS ONE
TS DNECADR
CA LDNPHAS2 # SET DNTMGOTO =0 ALL SUBSEQUENT DOWNRUPTS
TS DNTMGOTO # GO TO DNPHASE2
TCF NEWLIST
DNPHASE2 CCS DNECADR # SENDING OF DATA IN PROGRESS
DODNADR TC FETCH2WD # YES - THEN FETCH THE NEXT 2 SP WORDS
MINTIME2 -1DNADR TIME2 # NEGATIVE OF TIME2 1DNADR
TCF +1 # (ECADR OF 3776 + 74001 = 77777)
CCS SUBLIST # IS THE SUBLIST IN CONTROL
# Page 1097
TCF NEXTINSL # YES
DNADRDCR OCT 74001 # DNADR COUNT AND ECADR DECREMENTER
CHKLIST CA CTLIST
EXTEND
BZMF NEWLIST # IT WILL BE NEGATIVE AT END OF LIST
TCF NEXTINCL
NEWLIST INDEX DNLSTCOD
CA DNTABLE # INITIALIZE CTLIST WITH
TS CTLIST # STARTING ADDRESS OF NEW LIST
CS DNLSTCOD
TCF SENDID +3
NEXTINCL INDEX CTLIST
CA 0
CCS A
INCR CTLIST # SET POINTER TO PICK UP NEXT CTLIST WORD
TCF +4 # ON NEXT ENTRY TO PROG. (A SHOULD NOT =0)
XCH CTLIST # SET CTLIST TO NEGATIVE AND PLACE(CODING)
COM # UNCOMPLEMENTED DNADR INTO A. (FOR LA)
XCH CTLIST # (ST IN )
+4 INCR A # (CTLIST)
TS DNECADR # SAVE DNADR
AD MINTIME2 # TEST FOR TIME2 (NEG. OF ECADR)
CCS A
TCF SETWO +1 # DON'T SET WORD ORDER CODE
MINB1314 OCT 47777 # MINUS BIT 13 AND 14 (CAN'T GET HERE)
TCF SETWO +1 # DON'T SET WORD ORDER CODE
SETWO TC WOZERO # GO SET WORD ORDER CODE TO ZERO.
+1 CA DNECADR # RELOAD A WITH THE DNADR.
+2 AD MINB1314 # IS THIS A REGULAR DNADR?
EXTEND
BZMF FETCH2WD # YES. (A MUST NEVER BE ZERO)
AD MINB12 # NO- IS IT A POINTER (DNPTR) OR A
EXTEND # CHANNEL(DNCHAN)
BZMF DODNPTR # IT'S A POINTER. (A MUST NEVER BE ZERO)
DODNCHAN TC 6 # (EXECUTED AS EXTEND) IT S A CHANNEL
INDEX DNECADR
INDEX 0 -4000 # (EXECUTED AS READ)
TS L
TC 6 # (EXECUTED AS EXTEND)
INDEX DNECADR
INDEX 0 -4001 # (EXECUTED AS READ)
TS DNECADR # SET DNECADR
CA NEGONE # TO MINUS
XCH DNECADR # WHILE PRESERVING A.
TCF DNTMEXIT # GO SEND CHANNELS
WOZERO CS BIT7
EXTEND
# Page 1098
WAND CHAN13 # SET WORD ORDER CODE TO ZERO
TC Q # RETURN TO CALLER
DODNPTR INDEX DNECADR # DNECADR CONTAINS ADRES OF SUBLIST
0 0 # CLEAR AND ADD LIST ENTRY INTO A.
CCS A # IS THIS A SNAPSHOT SUBLIST
CA DNECADR # NO, IT IS A REGULAR SUBLIST.
TCF DOSUBLST # A MUST NOT BE ZERO.
XCH DNECADR # YES, IT IS A SNAPSHOT SUBLIST.
TS SUBLIST # C(DNECADR) INTO SUBLIST
CAF ZERO # A INTO A
XCH TMINDEX # (NOTE.. TMINDEX = DNECADR)
# THE FOLLOWING CODING (FROM SNAPLOOP TO SNAPEND)IS FOR THE PURPOSE OF TAKING A SNAPSHOT OF 12 DP REGISTERS.
# THIS IS DONE BY SAVING 11 DP REGISTERS IN DNTMBUFF AND SENDING THE FIRST DP WORD IMMEDIATELY.
# THE SNAPSHOT PROCESSING IS THE MOST TIME CONSUMING AND THEREFORE THE CODING AND LIST STRUCTURE WERE DESIGNED
# TO MINIMIZE TIME. THE TIME OPTIMIZATION RESULTS IN RULES UNIQUE TO THE SNAPSHOT PORTION OF THE DOWNLIST.
# THESE RULES ARE......
# 1. ONLY 1DNADR'S CAN APPEAR IN THE SNAPSHOT SUBLIST
# 2. THE 1DNADR'S CANNOT REFER TO THE FIRST LOCATION IN ANY BANK.
SNAPLOOP TS EBANK # SET EBANK
MASK LOW8 # ISOLATE RELATIVE ADDRESS
EXTEND
INDEX A
EBANK= 1401
DCA 1401 # PICK UP 2 SNAPSHOT WORDS.
EBANK= DNTMBUFF
INDEX TMINDEX
DXCH DNTMBUFF # STORE 2 SNAPSHOT WORDS IN BUFFER
INCR TMINDEX # SET BUFFER INDEX FOR NEXT 2 WORDS.
INCR TMINDEX
SNAPAGN INCR SUBLIST # SET POINTER TO NEXT 2 WORDS OF SNAPSHOT
INDEX SUBLIST
0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
CCS A # TEST FOR LAST TWO WORDS OF SNAPSHOT.
TCF SNAPLOOP # NOT LAST TWO.
LDNPHAS2 GENADR DNPHASE2
TS SUBLIST # YES, LAST. SAVE A.
CA NEGONE # SET DNECADR AND
TS DNECADR # SUBLIST POINTERS
XCH SUBLIST # TO NEGATIVE VALUES.
TS EBANK
MASK LOW8
EXTEND
INDEX A
EBANK= 1401
# Page 1099
DCA 1401 # PICK UP FIRST 2 WORDS OF SNAPSHOT.
EBANK= DNTMBUFF
SNAPEND TCF DNTMEXIT # NOW GO SEND THEM.
FETCH2WD CA DNECADR
TS EBANK # SET EBANK
MASK LOW8 # ISOLATE RELATIVE ADDRESS
TS L
CA DNADRDCR # DECREMENT COUNT AND ECADR
ADS DNECADR
EXTEND
INDEX L
EBANK= 1400
DCA 1400 # PICK UP 2 DATA WORDS
EBANK= DNTMBUFF
TCF DNTMEXIT # NOW GO SEND THEM.
DOSUBLST TS SUBLIST # SET SUBLIST POINTER
NEXTINSL INDEX SUBLIST
0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
CCS A # IS IT THE END OF THE SUBLIST
INCR SUBLIST # NO-
TCF +4
TS SUBLIST # SAVE A.
CA NEGONE # SET SUBLIST TO MINUS
XCH SUBLIST # RETRIEVE A.
+4 INCR A
TS DNECADR # SAVE DNADR
TCF SETWO +2 # GO USE COMMON CODING(PROBLEMS WOULD
# OCCUR IF THE PROGRAM ENCOUNTERED A
# DNPTR NOW)
DNTMEXIT EXTEND # DOWN-TELEMETRY EXIT
WRITE DNTM1 # TO SEND A + L TO CHANNELS 34 + 35
CA L # RESPECTIVELY
TMEXITL EXTEND
WRITE DNTM2
TMRESUME TCF RESUME # EXIT TELEMETRY PROGRAM VIA RESUME.
MINB12 EQUALS -1/8
DNECADR EQUALS TMINDEX
CTLIST EQUALS LDATALST
SUBLIST EQUALS DNQ
# Page 1100
# SUBROUTINE NAME- DNDUMP
# FUNCTIONAL DESCRIPTION - TO SEND(DUMP) ALL ERASABLE STORAGE 'N' TIMES.(N = 1 TO 4). BANKS ARE SENT ONE AT A TIME
# EACH BANK IS PRECEDED BY AN ID WORD, SYNCH BITS, ECADR AND TIME1 FOLLOWED BY THE 256D WORDS OF EACH
# EBANK. EBANKS ARE DUMPED IN ORDER(I.E. EBANK 0 FIRST, THEN EBANK1 ETC.)
# CALLING SEQUENCE- THE GROUND OR ASTRONAUT BY KEYING V74E CAN INITIALIZE THE DUMP.
# AFTER KEYING IN V74E THE CURRENT DOWNLIST WILL BE IMMEDIATELY TERMINATED AND THE DOWNLINK ERASABLE DUMP
# WILL BEGIN.
# ONCE INITIATED THE DOWNLINK ERASABLE DUMP CAN BE TERMINATED (AND INTERRUPTED DOWNLIST REINSTATED) ONLY
# BY THE FOLLOWING:
# 1. A FRESH START
# 2. COMPLETION OF ALL DOWNLINK DUMPS REQUESTED (ACCORDING TO BITS SET IN DUMPCNT). NOTE THAT DUMPCNT
# CAN BE ALTERED BY A V21N01.
# 3. AND INVOLUNTARILY BY A RESTART.
# NORMAL EXIT MODE- TCF DNPHASE1
# ALARM OR ABORT MODE- NONE
# *SUBROUTINES CALLED- NONE.
# ERASABLE INITIALIZATION REQUIRED --
# DUMPCNT OCT 20000 IF 4 COMPLETE ERASABLE DUMPS ARE DESIRED
# DUMPCNT OCT 10000 IF 2 COMPLETE ERASABLE DUMPS ARE DESIRED
# DUMPCNT OCT 04000 IF 1 COMPLETE ERASABLE DUMP IS DESIRED
# DEBRIS- DUMPLOC, DUMPSW, DNTMGOTO, EBANK AND CENTRAL REGISTERS
# TIMING- TIME (IN SECS) = ((NO.DUMPS)*(NO.EBANKS)* (WDSPEREBANK + NO.IDWDS)) / NO.WDSPERSEC
# TIME (IN SECS) = ( 4 )*( 8 )* ( 256 + 4 ) / 100
# THUS TIME (IN SECS TO SEND DUMP OF ERASABLE 4 TIMES VIA DOWNLINK) = 83.2 SECONDS
#
# STRUCTURE OF ONE EBANK AS IT IS SENT BY DOWNLINK PROGRAM-
# (REMINDER-THIS ONLY DESCRIBES ONE OF THE 8 EBANKS X 4 (DUMPS) = 32 EBANKS WHICH WILL BE SENT BY DNDUMP)
# DOWNLIST W
# WORD TAKEN FROM CONTENTS OF EXAMPLE O COMMENTS
#
# 1 ERASID 0177X 0 DOWNLIST I.D. FOR DOWNLINK ERASABLE DUMP (X=7 CSM, 6 LM)
# 2 LOWIDCOD 77340 1 DOWNLINK SYNCH BITS.(SAME ONE USED IN ALL OTHER DOWNLISTS)
# 3 DUMPLOC 13400 1 (SEE NOTES ON DUMPLOC)1= 3RD ERAS DUMP, 3400=ECADR OF 5TH WD
# 4 TIME1 14120 1 TIME IN CENTISECONDS
# 5 FIRST WORD OF EBANK X 03400 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1400 (ECADR 3400)
# 6 2ND WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1401 (ECADR 3401)
# 7. 3RD WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1402 (ECADR 3402)
# . 1
# . 1
# . 1
# 260D 256TH WORD OF EBANK X 03777 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1777 (ECADR 3777)
#
# NOTE- DUMPLOC CONTAINS THE COUNTER AND ECADR FOR EACH WORD BEING SENT.
# THE BIT STRUCTURE OF DUMPLOC IS FOLLOWS--
# X = NOT USED
# X ABC EEE RRRRRRRR ABC = ERASABLE DUMP COUNTER(I.E. ABC = 0,1,2, OR 3 WHICH MEANS THAT
# COMPLETE ERASABLE DUMP NUMBER 1,2,3, OR 4 RESPECTIVELY IS IN PROGRESS)
# EEE = EBANK BITS
# RRRRRRRR = RELATIVE ADDRESS WITHIN AN EBANK.
# Page 1101
DNDUMPI CA ZERO # INITIALIZE DOWNLINK
TS DUMPLOC # ERASABLE DUMP
+2 TC SENDID # GO SEND ID AND SYNCH BITS
CA LDNDUMP1 # SET DNTMGOTO
TS DNTMGOTO # TO LOCATION FOR NEXT PASS
CA TIME1 # PLACE TIME1
XCH L # INTO L
CA DUMPLOC # AND ECADR OF THIS EBANK INTO A
TCF DNTMEXIT # SEND DUMPLOC AND TIME1
LDNDUMP ADRES DNDUMP
LDNDUMP1 ADRES DNDUMP1
DNDUMP CA TWO # INCREMENT ECADR IN DUMPLOC
ADS DUMPLOC # TO NEXT DP WORD TO BE
MASK LOW8 # DUMPED AND SAVE IT.
CCS A # IS THIS THE BEGINNING OF A NEW EBANK
TCF DNDUMP2 # NO- THEN CONTINUE DUMPING
CA DUMPLOC # YES- IS THIS THE END OF THE
MASK DUMPCNT # N TH(N = 1 TO 4) COMPLETE ERASABLE
MASK PRIO34 # DUMP(BIT14 FOR 4, BIT13 FOR 2 OR BIT12
CCS A # FOR 1 COMPLETE ERASABLE DUMP(S)).
TCF DNPHASE1 # YES- START SENDING INTERRUPTED DOWNLIST
# AGAIN
TCF DNDUMPI +2 # NO- GO BACK AND INITIALIZE NEXT BANK
DNDUMP1 CA LDNDUMP # SET DNTMGOTO
TS DNTMGOTO # FOR WORDS 3 TO 256D OF CURRENT EBANK
DNDUMP2 CA DUMPLOC
TS EBANK # SET EBANK
MASK LOW8 # ISOLATE RELATIVE ADDRESS.
TS Q # (NOTE: MASK INSTRUCTION IS USED TO PICK
CA NEG0 # UP ERASABLE REGISTERS SO THAT EDITING
TS L # REGISTERS 20-23 WILL NOT BE ALTERED.)
INDEX Q
EBANK= 1400 # PICK UP LOW ORDER REGISTER OF PAIR
MASK 1401 # OF ERASABLE REGISTERS.
XCH L
INDEX Q # PICK UP HIGH ORDER REGISTER OF PAIR
MASK 1400 # OF ERASABLE REGISTERS.
EBANK= DNTMBUFF
TCF DNTMEXIT # GO SEND THEM
SENDID EXTEND # **ENTRANCE USED BY ERASABLE DUMP PROG.**
QXCH DNTMGOTO # SET DNTMGOTO SO NEXT TIME PROG WILL GO
CAF ERASID # TO LOCATION FOLLOWING :TC SENDID:
TS L # **ENTRANCE USED BY REGULAR DOWNLINK PG**
# Page 1102
TC WOZERO # GO SET WORD ORDER CODE TO ZERO
CAF LOWIDCOD # PLACE SPECIAL ID CODE INTO L
XCH L # AND ID BACK INTO A
TCF DNTMEXIT # SEND DOWNLIST ID CODE(S).

View File

@ -1,411 +0,0 @@
# Copyright: Public domain.
# Filename: DOWNLINK_LISTS.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 170-180
# Contact: Ron Burkey <info@sandroid.org>,
# Fabrizio Bernardini <fabrizio@spacecraft.it>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 10/05/09 FB Transcription of Batch FB-1 Assignment.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 170
BANK 22
SETLOC DOWNTELM
BANK
EBANK= DNTMBUFF
# SPECIAL DOWNLINK OP CODES
# OP CODE ADDRESS(EXAMPLE) SENDS... BIT 15 BITS 14-12 BITS 11-0
# ------- ---------------- ---------- ------ ---------- ---------
# 1DNADR TIME2 (2 AGC WDS) 0 0 ECADR
# 2DNADR TEPHEM (4 AGC WDS) 0 1 ECADR
# 3DNADR VGBODY (6 AGC WDS) 0 2 ECADR
# 4DNADR STATE (8 AGC WDS) 0 3 ECADR
# 5DNADR UPBUFF (10AGC WDS) 0 4 ECADR
# 6DNADR DSPTAB (12AGC WDS) 0 5 ECADR
# DNCHAN 30 CHANNELS 0 7 CHANNEL ADDRESS
# DNPTR NEXTLIST POINTS TO NEXT LIST. 0 6 ADRES
#
# DOWNLIST FORMAT DEFINITIONS AND RULES -
# 1. END OF A LIST = -XDNADR (X = 1 TO 6), -DNPTR, OR -DNCHAN.
# 2. SNAPSHOT SUBLIST = LIST WHICH STARTS WITH A -1DNADR.
# 3. SNAPSHOT SUBLIST CAN ONLY CONTAIN 1DNADRS.
# 4. TIME2 1DNADR MUST BE LOCATED IN THE CONTROL LIST OF A DOWNLIST.
# 5. ERASABLE DOWN TELEMETRY WORDS SHOULD BE GROUPED IN SEQUENTIAL
# LOCATIONS AS MUCH AS POSSIBLE TO SAVE STORAGE USED BY DOWNLINK LISTS.
# 6. THE DOWNLINK LISTS (INCLUDING SUBLISTS) ARE ORGANIZED SUCH THAT THE ITEMS LISTED FIRST (IN FRONT OF FBANK) ARE
# SENT FIRST. EXCEPTION--- SNAPSHOT SUBLISTS. IN THE SNAPSHOT SUBLISTS THE DATA REPRESENTED BY THE FIRST
# 11 1DNADRS IS PRESERVED (IN ORDER) IN DNTMBUFF AND SENT BY THE NEXT 11 DOWNRUPTS. THE DATA REPRESENTED BY THE
# LIST IS SENT IMMEDIATELY.
COUNT 05/DLIST
ERASZERO EQUALS 7
SPARE EQUALS ERASZERO # USE SPARE TO INDICATE AVAILABLE SPACE
LOWIDCOD OCT 77340 # LOW ID CODE
NOMDNLST EQUALS CMCSTADL # FRESH START AND POST P27 DOWNLIST
UPDNLIST EQUALS CMENTRDL # UPDATE PROGRAM (P27) DOWNLIST
# Page 171
# CSM POWERED FLIGHT DOWNLIST
#
# --------------------- CONTROL LIST -------------------------
CMPOWEDL EQUALS
DNPTR CMPOWE01 # COLLECT SNAPSHOT
6DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMPOWE02 # COLLECT SECOND SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMPOWE03 # COMMON DATA
1DNADR TIG # TIG,+1
1DNADR DELLT4 # DELLT4,+1
3DNADR RTARG # RTARG,+1,+2,...+5
1DNADR TGO # TGO,+1
1DNADR PIPTIME1 # PIPTIME1,+1
3DNADR DELV # DELV,+1,...+4,+5
1DNADR PACTOFF # PACTOFF,YACTOFF
1DNADR PCMD # PCMD,YCMD
1DNADR CSTEER # CSTEER,+1
3DNADR DELVEET1 # CSI DELTA VELOCITY COMPONENTS (31-33)
6DNADR REFSMMAT # REFSMMAT,+1,...+10,+11
DNPTR CMPOWE04 # COMMON DATA
1DNADR TIME2 # TIME2,TIME1
DNPTR CMPOWE05 # COLLECT SNAPSHOT
6DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMPOWE02 # COLLECT SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMPOWE03 #
DNPTR CMPOWE06 # COMMON DATA
1DNADR ELEV # ELEV,+1
1DNADR CENTANG # CENTANG,+1
1DNADR DELTAR # DELTAR,+1
1DNADR STATE +10D # FLAGWRDS 10 AND 11
1DNADR TEVENT # TEVENT,+1
1DNADR PCMD # PCMD,YCMD
1DNADR OPTMODES # OPTMODES,HOLDFLAG
DNPTR CMPOWE07 # COMMON DATA
3DNADR VGTIG # VGTIG,+1,...+4,+5
-3DNADR DELVEET2 # CDH DELTA VELOCITY COMPONENTS (98-100)
# --------------------- SUB LISTS ---------------------------
CMPOWE01 -1DNADR RN +2 # RN+2,+3 SNAPSHOT DATA
1DNADR RN +4 # RN+4,+5
1DNADR VN # VN,+1
1DNADR VN +2 # VN+2,+3
1DNADR VN +4 # VN+4,+5
1DNADR PIPTIME # PIPTIME,+1
-1DNADR RN # RN,+1
CMPOWE02 -1DNADR CDUZ # CDUZ,CDUT SNAPSHOT DATA
# Page 172
1DNADR ADOT # ADOT,+1/OGARATE,+1
1DNADR ADOT +2 # ADOT+2,+3/OMEGAB+2,+3
1DNADR ADOT +4 # ADOT+4,+5/OMEGAB+4,+5
-1DNADR CDUX # CDUX,CDUY
CMPOWE03 2DNADR AK # AK,AK1,AK2,RCSFLAGS COMMON DATA
-2DNADR THETADX # THETADX,THETADY,THETADZ,GARBAGE
CMPOWE04 5DNADR STATE # FLAGWRD0 THRU FLAGWRD9 COMMON DATA
-6DNADR DSPTAB # DISPLAY TABLES
CMPOWE05 -1DNADR R-OTHER +2 # R-OTHER+2,+3 SNAPSHOT DATA
1DNADR R-OTHER +4 # R-OTHER+4,+5
1DNADR V-OTHER # V-OTHER,+1
1DNADR V-OTHER +2 # V-OTHER+2,+3
1DNADR V-OTHER +4 # V-OTHER+4,+5
1DNADR T-OTHER # T-OTHER,+1
-1DNADR R-OTHER # R-OTHER,+1
CMPOWE06 1DNADR RSBBQ # RSBBQ,+1 COMMON DATA
3DNADR CADRFLSH # CADRFLSH,+1,+2,FAILREG,+1,+2
-2DNADR CDUS # CDUS,PIPAX,PIPAY,PIPAZ
CMPOWE07 1DNADR LEMMASS # LEMMASS,CSMMASS COMMON DATA
1DNADR DAPDATR1 # DAPDATR1,DAPDATR2
2DNADR ERRORX # ERRORX,ERRORY,ERRORZ,GARBAGE
3DNADR WBODY # WBODY,...+5/OMEGAC,...+5
2DNADR REDOCTR # REDOCTR,THETAD,+1,+2
1DNADR IMODES30 # IMODES30,IMODES33
DNCHAN 11 # CHANNELS 11,12
DNCHAN 13 # CHANNELS 13,14
DNCHAN 30 # CHANNELS 30,31
-DNCHAN 32 # CHANNELS 32,33
# -----------------------------------------------------------
# Page 173
# CSM COAST AND ALIGNMENT DOWNLIST
# --------------------- CONTROL LIST ------------------------
CMCSTADL EQUALS # SEND ID BY SPECIAL CODING
DNPTR CMCSTA01 # COLLECT SNAPSHOT
6DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMCSTA02 # COLLECT SECOND SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMCSTA03 # COMMON DATA
1DNADR TIG # TIG,+1
1DNADR BESTI # BESTI,BESTJ
4DNADR MARKDOWN # MARKDOWN,+1,...+5,+6,GARBAGE
4DNADR MARK2DWN # MARK2DWN,+1,...+5,+6
2DNADR HAPOX # APOGEE AND PERIGEE FROM R30 (28-29)
1DNADR PACTOFF # PACTOFF, YACTOFF (30)
3DNADR VGTIG # VGTIG,...+5
6DNADR REFSMMAT # REFSMMAT,+1,...+10,+11
DNPTR CMCSTA04 # COMMON DATA
1DNADR TIME2 # TIME2,TIME1
DNPTR CMCSTA05 # COLLECT SNAPSHOT
6DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMCSTA02 # COLLECT SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMCSTA03 # COMMON DATA
DNPTR CMCSTA06 # COMMON DATA
3DNADR OGC # OGC,+1,IGC,+1,MGC,+1
1DNADR STATE +10D # FLAGWRDS 10 AND 11
1DNADR TEVENT # TEVENT,+1
1DNADR LAUNCHAZ # LAUNCHAZ,+1
1DNADR OPTMODES # OPTMODES,HOLDFLAG
DNPTR CMCSTA07 # COMMON DATA
-6DNADR DSPTAB # DISPLAY TABLES
# --------------------- SUB LISTS ---------------------------
CMCSTA01 EQUALS CMPOWE01 # COMMON DOWNLIST DATA
CMCSTA02 EQUALS CMPOWE02 # COMMON DOWNLIST DATA
CMCSTA03 EQUALS CMPOWE03 # COMMON DOWNLIST DATA
CMCSTA04 EQUALS CMPOWE04 # COMMON DOWNLIST DATA
CMCSTA05 EQUALS CMPOWE05 # COMMON DOWNLIST DATA
CMCSTA06 EQUALS CMPOWE06 # COMMON DOWNLIST DATA
CMCSTA07 EQUALS CMPOWE07 # COMMON DOWNLIST DATA
# Page 174
# -----------------------------------------------------------
# Page 175
# CSM RENDEZVOUS AND PRETHRUST LIST
# --------------------- CONTROL LIST ------------------------
CMRENDDL EQUALS # SEND ID BY SPECIAL CODING
DNPTR CMREND01 # COLLECT SNAPSHOT
6DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMREND02 # COLLECT SECOND SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMREND03 # COMMON DATA
1DNADR TIG # TIG,+1
1DNADR DELLT4 # DELLT4,+1
3DNADR RTARG # RTARG,+1,...+4,+5
1DNADR VHFTIME # VHFTIME,+1
4DNADR MARKDOWN # MARKTIME(DP),YCDU,SCDU,ZCDU,TCDU,XCDU,RM
1DNADR VHFCNT # VHFCNT,+1
1DNADR TTPI # TTPI,+1
1DNADR ECSTEER # ECSTEER,+1
1DNADR DELVTPF # DELVTPF,+1
2DNADR TCDH # CDH AND CSI TIME (32-33)
1DNADR TPASS4 # TPASS4,+1
3DNADR DELVSLV # DELVSLV,+1...+4,+5
2DNADR RANGE # RANGE,+1,RRATE,+1
DNPTR CMREND04 # COMMON DATA
1DNADR TIME2 # TIME2,TIME1
DNPTR CMREND05 # COLLECT SNAPSHOT
6DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMREND02 # COLLECT SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMREND03 # COMMON DATA
DNPTR CMREND06 # COMMON DATA
1DNADR DIFFALT # CDH DELTA ALTITUDE
1DNADR CENTANG # CENTANG,+1
1DNADR DELTAR # DELTAR,+1
3DNADR DELVEET3 # DELVEET3,+1,...+4,+5
1DNADR OPTMODES # OPTMODES,HOLDFLAG
DNPTR CMREND07 # COMMON DATA
1DNADR RTHETA # RTHETA,+1
2DNADR LAT(SPL) # LAT(SPL),LNG(SPL),+1
2DNADR VPRED # VPRED,+1,GAMMAEI,+1
-1DNADR STATE +10D # FLAGWRDS 10 AND 11
# --------------------- SUB LISTS ----------------------------
CMREND01 EQUALS CMPOWE01 # COMMON DOWNLIST DATA
CMREND02 EQUALS CMPOWE02 # COMMON DOWNLIST DATA
CMREND03 EQUALS CMPOWE03 # COMMON DOWNLIST DATA
CMREND04 EQUALS CMPOWE04 # COMMON DOWNLIST DATA
# Page 176
CMREND05 EQUALS CMPOWE05 # COMMON DOWNLIST DATA
CMREND06 EQUALS CMPOWE06 # COMMON DOWNLIST DATA
CMREND07 EQUALS CMPOWE07 # COMMON DOWNLIST DATA
# ------------------------------------------------------------
# Page 177
# CSM ENTRY AND UPDATE DOWNLIST
#
# --------------------- CONTROL LIST -------------------------
CMENTRDL EQUALS # SEND ID BY SPECIAL CODING
DNPTR CMENTR01 # COLLECT SNAPSHOT
6DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMENTR02 # COLLECT SECOND SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMENTR03 # COMMON DATA
2DNADR CMDAPMOD # CMDAPMOD,PREL,QREL,RREL
1DNADR L/D1 # L/D1,+1
6DNADR UPBUFF # UPBUFF,+1,...+10,+11
4DNADR UPBUFF +12D # UPBUFF+12,13,...+18,+19D
2DNADR COMPNUMB # COMPNUMB,UPOLDMOD,UPVERB,UPCOUNT
1DNADR PAXERR1 # PAXERR1,ROLLTM
3DNADR LATANG # LATANG,+1,RDOT,+1,THETAH,+1
2DNADR LAT(SPL) # LAT(SPL),+1,LNG(SPL),+1
1DNADR ALFA/180 # ALFA/180,BETA/180
DNPTR CMENTR04 # COMMON DATA
1DNADR TIME2 # TIME2,TIME1
DNPTR CMENTR05 # COLLECT SNAPSHOT
6DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMENTR02 # COLLECT SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
2DNADR AK # AK,AK1,AK2,RCSFLAGS
3DNADR ERRORX # ERRORX/Y/Z,THETADX/Y/Z
2DNADR CMDAPMOD # CMDAPMOD,PREL,QREL,RREL
6DNADR UPBUFF # UPBUFF+0,+1,...+10,+11D
4DNADR UPBUFF +12D # UPBUFF+12,+13,...+18,+19D
1DNADR LEMMASS # LEMMASS,CSMMASS
1DNADR DAPDATR1 # DAPDATR1,DAPDATR2
1DNADR ROLLTM # ROLLTM,ROLLC
1DNADR OPTMODES # OPTMODES,HOLDFLAG
3DNADR WBODY # WBODY,...+5/OMEGAC,...+5
2DNADR REDOCTR # REDOCTR,THETAD+0,+1,+2
1DNADR IMODES30 # IMODES30,IMODES33
DNCHAN 11 # CHANNELS 11,12
DNCHAN 13 # CHANNELS 13,14
DNCHAN 30 # CHANNELS 30,31
DNCHAN 32 # CHANNELS 32,33
1DNADR RSBBQ # RSBBQ,+1
3DNADR CADRFLSH # CADRFLSH,+1,+2,FAILREG,+1,+2
1DNADR STATE +10D # FLAGWRDS 10 AND 11
-1DNADR GAMMAEI # GAMMAEI,+1
# --------------------- SUB LISTS ----------------------------
CMENTR01 EQUALS CMPOWE01 # COMMON DOWNLIST DATA
# Page 178
CMENTR02 EQUALS CMPOWE02 # COMMON DOWNLIST DATA
CMENTR03 EQUALS CMPOWE03 # COMMON DOWNLIST DATA
CMENTR04 EQUALS CMPOWE04 # COMMON DOWNLIST DATA
CMENTR05 -1DNADR DELV # DELV,+1 SNAPSHOT DATA
1DNADR DELV +2 # DELV+2,+3
1DNADR DELV +4 # DELV+4,+5
1DNADR TTE # TTE,+1
1DNADR VIO # VIO,+1
1DNADR VPRED # VPRED,+1
-1DNADR PIPTIME1 # PIPTIME1,+1
CMENTR07 EQUALS CMPOWE07 # COMMON DOWNLIST DATA
# -------------------------------------------------------------
# Page 179
# P22 DOWNLISTS
#
# --------------------- CONTROL LIST --------------------------
CMPG22DL EQUALS # SEND ID BY SPECIAL CODING
DNPTR CMPG2201 # COLLECT SNAPSHOT
6DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMPG2202 # COLLECT SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMPG2203 # COMMON DATA
6DNADR SVMRKDAT # LANDING SITE MARK DATA
6DNADR SVMRKDAT +12D # SVMRKDAT+0...+34
6DNADR SVMRKDAT +24D # LANDING SITE MARK DATA
1DNADR LANDMARK # LANDMARK,GARBAGE
1DNADR SPARE
1DNADR SPARE
1DNADR SPARE
DNPTR CMPG2204 # COMMON DATA
1DNADR TIME2 # TIME2,TIME1
DNPTR CMPG2205 # COLLECT SNAPSHOT
2DNADR DNTMBUFF # SEND SNAPSHOT
1DNADR SPARE
1DNADR SPARE
1DNADR SPARE
1DNADR SPARE
DNPTR CMPG2202 # COLLECT SNAPSHOT
4DNADR DNTMBUFF # SEND SNAPSHOT
DNPTR CMPG2203 # COMMON DATA
DNPTR CMPG2206 # COMMON DATA
1DNADR 8NN # 8NN,GARBAGE
1DNADR STATE +10D # FLAGWRDS 10 AND 11
3DNADR RLS # RLS,+1,...+4,+5
1DNADR SPARE
1DNADR OPTMODES # OPTMODES,HOLDFLAG
DNPTR CMPG2207 # COMMON DATA
1DNADR SPARE
1DNADR SPARE
1DNADR SPARE
1DNADR SPARE
1DNADR SPARE
-1DNADR SPARE
# --------------------- SUB LISTS --------------------------
CMPG2201 EQUALS CMPOWE01 # COMMON DOWNLIST DATA
CMPG2202 EQUALS CMPOWE02 # COMMON DOWNLIST DATA
CMPG2203 EQUALS CMPOWE03 # COMMON DOWNLIST DATA
# Page 180
CMPG2204 EQUALS CMPOWE04 # COMMON DOWNLIST DATA
CMPG2205 -1DNADR LONG # LONG,+1 SNAPSHOT DATA
1DNADR ALT # ALT,+1
-1DNADR LAT # LAT,+1
CMPG2206 EQUALS CMPOWE06 # COMMON DOWNLIST DATA
CMPG2207 EQUALS CMPOWE07 # COMMON DOWNLIST DATA
# -----------------------------------------------------------
DNTABLE GENADR CMCSTADL
GENADR CMENTRDL
GENADR CMRENDDL
GENADR CMPOWEDL
GENADR CMPG22DL
# -----------------------------------------------------------

View File

@ -1,299 +0,0 @@
# Copyright: Public domain.
# Filename: ENTRY_LEXICON.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 837-843
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-12 RSB Adapted from Colossus249 file of the same
# name and Comanche 055 page images.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 837
# VARIABLE DESCRIPTION MAXIMUM VALUE * COMPUTER NAME
# -------- ----------- ------- ------- -------- ----
#
# _
# URT0 INITIAL TARGET VECTOR 2 (UNIT VECTOR) = RTINIT
# _
# UZ UNIT VECTOR NORTH 1 = UNITW
# _
# V VELOCITY VECTOR 2 VSAT = VEL
# _
# R POSITION VECTOR 2 EXP 29 METERS = RN
# _
# VI INERTIAL VELOCITY 128 M/CENTISEC = VN
# _
# RTE VECTOR EAST AT INITIAL TARGET 2 = RTEAST
# _
# UTR NORMAL TO RTE AND UZ 2 = RTNORM
# _
# URT TARGET VECTOR 2 = RT
# _
# UNI UNIT NORMAL TO TRAJECTORY PLANE 2
# _
# DELV INTEGRATED ACCEL. FROM PIPAS 5.85 16384 CM/S
# _
# G GRAVITY VECTOR 128 M/CENTISEC = GDT/2
#
# A0 INITIAL DRAG FOR UPCONTRL 805 FPSS FPSS=FT/SEC/SEC
# AHOOKDV TERM IN GAMMAL CALC. = AHOOK DVL 16
# A1 DRAG VALUE IN FACTOR CALCULATION 805 FPSS
# ALP CONST FOR UPCONTRL 1
# ASKEP KEPLER RANGE 21600 NM NM = NAUTICAL MILE
# ASP1 FINAL PHASE RANGE 21600 NM
# ASPUP UP-RANGE 21600 NM
# ASP3 GAMMA CORRECTION 21600 NM
# ASPDWN RANGE DOWN TO PULL-UP 21600 NM
# ASP PREDICTED RANGE 21600 NM NOT STORED
# COSG COSINE(GAMMAL) 2 = COSG/2
# C/D0 RECIPROCAL DRAG, -4/D0 B-8 64/FPSS
# D TOTAL ACCELERATION 805 FPSS
# D0 CONTROLLED CONSTANT D 805 FPSS
# DHOOK TERM IN GAMMAL COMPUTATION 805 FPSS
# DIFF THETNM-ASP (RANGE DIFFERENCE) 21600 NM
# DIFFOLD PREVIOUS VALUE OF DIFF 21600 NM
# DLEWD CHANGE IN LEWD 1
# DR REFERENCE DRAG FOR DOWNCONTROL 805 FPSS NOT STORED
# DREFR REFERENCE DRAG 805 FPSS NOT STORED
# DVL VS1-VL 2 VSAT
# E ECCENTRICITY 4 NOT STORED
# F1 DRANGE/D DRAG (FINAL PHASE) 2700/805 = FX +5
# F2 DRANGE/D RDOT (FINAL PHASE) 2700/2VS NM/FPS = FX +4
# Page 838
# F3 DRANGE/D (L/D) 2700 NM = FX
# FACT1 CONST FOR UPCONTRL 805 FPSS
# FACT2 CONST FOR UPCONTRL 1/805 FPSS
# FACTOR USED IN UPCONTRL 1 * MAXIMUM VALUE DENOTES UNSCALED
# GAMMAL FLIGHT PATH ANGLE AT VL 1 RADIAN VARIABLE VALUE WHEN SCALED
# GAMMAL1 SIMPLE FORM OF GAMMAL 1 RADIAN VARIABLE HAS MAXIMUM VALUE OF ONE.
# Page 839
#
# HEADSUP INDICATOR FOR INITIAL ROLL 1
# KA DRAG TO LIFT UP IF DOWN 805 FPSS = KAT
# KLAT LATERAL SWITCH GAIN 1 (NOM = .0125)
# K2ROLL INDICATOR FOR ROLL SWITCH
# LAD MAX L/D (MIN ACTUAL VEHICLE L/D) 1
# LADPAD NOMINAL VEHICLE L/D, SP PAD LOAD 1 (NOM = 0.3)
# LATANG LATERAL RANGE 4 RADIANS
# LEQ EXCESS C.F. OVER GRAV=(VSQ-1)GS 128.8 FPSS
# LEWD UPCONTROL REFERENCE L/D 1
# LOD FINAL PHASE L/D 1 (NOM = 0.18)
# LODPAD FINAL PHASE L/D, SP PAD LOAD 1
# L/D DESIRED LIFT TO DRAG RATIO 1
# (VERTICAL PLANE)
# L/D1 TEMP STORAGE FOR L/D IN LATERAL 1
# L/DCMINR LAD COS(15DEG) 1 (NOM = 0.2895)
# PREDANGL PREDICTED RANGE (FINAL PHASE) 2700 NM = PREDANG
# Q2 FINAL PHASE RANGE -23500 Q3 21600 NM
# Q2 = FCN(LAD)
# Q7 MINIMUM DRAG FOR UPCONTROL 805 FPSS
# RDOT ALTITUDE RATE 2 VSAT
# RDOTREF REFERENCE RDOT FOR UPCONTROL 2 VSAT
# RDTR REFERENCE RDOT FOR DOWNCONT 2 VSAT NOT SAVED
# ROLLC ROLL COMMAND 1 REVOLUTION
# RTOGO RANGE TO GO (FINAL PHASE) 2700 NM = FX +2
# SL SINE OF LATITUDE 1 NOT SAVED
# T TIME B 28 CENTISEC = TIME2,TIME1
# THETA DESIRED RANGE (RADIANS) 2 PI RADIANS = THETAH
# THETNM DESIRED RANGE (NM) 21600 NM NON EXISTENT
# V VELOCITY MAGNITUDE 2 VSAT
# V1 INITIAL VELOCITY FOR UPCONTROL 2 VSAT
# VL EXIT VELOCITY FOR UPCONTROL 2 VSAT
# VREF REFERENCE VELOCITY FOR UPCONTROL 2 VSAT
# VS1 VSAT OR V1, WHICHEVER IS SMALLER 2 VSAT
# 2 2
# VBARS VL /VSAT 4
# 2 2
# VSQ NORMALISED VEL. SQUARED = V /VSAT 4 = VSQUARE
# WT EARTH RATE TIMES TIME 1 REVOLUTION NOT SAVED
# = WIE (DTEAROT)
# X INTERMEDIATE VARIABLE IN G-LIMITER 2 VSAT NOT SAVED
# Y LATERAL MISS LIMIT 4 RADIANS NOT SAVED
# Page 840
# EXTRA COMPUTER ERASABLE LOCATIONS NOT SHOWN ON FLOW CHARTS
# ----------------------------------------------------------
#
# VARIABLE DESCRIPTION MAXIMUM VALUE
# -------- ----------- -------------
#
# GOTOADDR ADDRESS SELECTED BY SEQUENCER
# XPIPBUF BUFFER TO STORE X PIPA COUNTS
# YPIPBUF BUFFER TO STORE Y PIPA COUNTS
# ZPIPBUF BUFFER TO STORE Z PIPA COUNTS
# PIPCTR COUNTS PASSES THRU PIPA READ ROUTINE
# JJ INDEX IN FINAL PHASE TABLE LOOK-UP
# MM INDEX IN FINAL PHASE TABLE LOOK-UP
# GRAD INTERPOLATION FACTOR IN FINAL PHASE
# FX DRANGE/D L/D = F3 2700 NM
# FX +1 AREF 805 FPSS
# FX +2 RTOGO 2700 NM
# FX +3 RDOTREF VSAT/4
# FX +4 DRANGE/D RDOT = F2 21600/2VS NM/FPS
# FX +5 DRANGE/D DRAG = F1 2700/805 NM/FPSS
# TEM1B TEMPORARY LOCATION
# TIME/RTO TIME OF INITIAL TARGET RTINIT B 28 CENTISEC
# DTEAROT EST TIME BETWEEN RTINIT AND RT B 28 CENTISEC
#
# _
# UNITV UNIT V VECTOR 2
# _
# UNITR UNIT R VECTOR 2
# _
# -VREL NEGATIVE VELOCITY REL TO ATMOSP 2 VSAT
#
# COMPUTER SWITCHES INITIAL STATE CM/FLAGS = STATE +6
# ----------------- ------------- -------------------
#
# ENTRYDSP DO ENTRY DISPLAY, IF SET NON-BRANCH (1) 92D, BIT13
# GONEPAST INDICATES OVERSHOOT OF TARGET NON-BRANCH (0) 95D, BIT10
# RELVELSW RELATIVE VELOCITY SWITCH NON-BRANCH (0) 96D, BIT 9
# EGSW FINAL PHASE SWITCH NON-BRANCH (0) 97D, BIT 8
# FIRSTPAS INITIAL PASS THRU HUNTEST NON-BRANCH (0) 98D, BIT 7
# HIND INDICATES ITERATION IN HUNTEST NON-BRANCH (0) 99D, BIT 6
# INRLSW INDICATES INIT ROLL ATTITUDE SET NON-BRANCH (0) 100D, BIT 5
# LATSW INHIBIT DOWNLIFT SWITCH IF NOT SET BRANCH (1) 101D, BIT 4
# .05GSW INDICATES DRAG EXCEEDS .05 GS BRANCH (0) 102D, BIT 3
#
# GONEBY INDICATES GONE PAST TARGET (SET) SELF-INITIALIZING 112D, BIT 8
# Page 841
# CONSTANTS AND GAINS VALUE
# ------------------- -----
#
# C1 FACTOR IN ALP COMPUTATION 1.25
# C16 CONSTD GAIN ON DRAG .01
# C17 CONSTD GAIN ON RDOT .001
# C18 BIAS VEL. FOR FINAL PHASE START 500 FPS
# C20 MAX DRAG FOR DOWN-LIFT 175 FPSS
# CHOOK FACTOR IN AHOOK COMPUTATION .25
# CH1 FACTOR IN GAMMAL COMPUTATION 1.0
# COS15 COS( 15 DEG) .965
# DLEWD0 INITIAL VARIATION IN LEWD -.05
# D2 DRAG TO CHANGE LEWD 175 FPSS
# DT COMPUTATION CYCLE TIME INTERVAL 2 SEC.
# GMAX MAXIMUM ACCELERATION 257.6 FPSS (8 G-S)
# KA1 FACTOR IN KA CALC 1.3 GS
# KA2 FACTOR IN KA CALC .2 GS
# KA3 FACTOR IN D0 CALC 90 FPSS
# KA4 FACTOR IN D0 CALC 40 FPSS
# KB1 OPTIMIZED UPCONTROL GAIN 3.4
# KB2 OPTIMIZED UPCONTROL GAIN .0034
# KDMIN INCREMENT ON Q7 TO DETECT END OF KEPLER PHASE .5 FPSS
# KTETA TIME OF FLIGHT CONSTANT 1000
# KLAT1 FACTOR IN KLAT CALC 1/24
# K44 GAIN USED IN INITIAL ROLL SECTION 19749550 FPS
# LATBIAS LATERAL SWITCH BIAS TERM .41252961 NM
# LEWD1 NOMINAL UPCONTROL L/D .15
# POINT1 FACTOR TO REDUCE UPCONTROL GAIN .1
# Q2 FINAL PHASE RANGE - 23500 Q3 -1002 NM
# Q3 FINAL PHASE DRANGE/D V .07 NM/FPS
# Q5 FINAL PHASE DRANGE/D GAMMA 7050 NM/RAD
# Q6 FINAL PHASE INITIAL FLIGHT PATH ANGLE .0349 RAD
# Q7F MIN DRAG FOR UPCONTROL 6 FPSS
# Q7MIN MIN VALUE FOR Q7 IN FACTOR CALCULATION 40 FPSS
# Q19 FACTOR IN GAMMAL1 CALCULATION .5
# Q21 FACTOR IN Q2 CALCULATION. 1000 NM
# Q22 FACTOR IN Q2 CALCULATION. -1302 NM
# VFINAL1 VELOCITY TO START FINAL PHASE ON INITIAL ENTRY 27000 FPS
# VFINAL FACTOR IN INITIAL UP-DOWN CALC 26600 FPS
# VLMIN MINIMUM VL 18000 FPS
# VMIN VELOCITY TO SWITCH TO RELATIVE VEL VSAT/2
# VRCONTRL RDOT TO START INTO HUNTEST 700 FPS
# VRCONT = COMPUTER NAME
# 25NM TOLERANCE TO STOP RANGE ITERATION 25 NM
# VQUIT VELOCITY TO STOP STEERING 1000 FPS
# Page 842
# CONVERSION FACTORS AND SCALING CONSTANTS
# ---------- ------- --- ------- ---------
#
# ATK ANGLE IN RAD TO NM 3437.7468 NM/RAD
# G5 NOMINAL G VALUE FOR SCALING 32.2 FPSS
# H5 ATMOSPHERE SCALE HEIGHT 28500 FT
# J GRAVITY HARMONIC COEFFICIENT .00162346
# KWE EQUATORIAL EARTH RATE 1546.70168 FPS
# MUE EARTH GRAVITATIONAL CONSTANT 3.986032233 E 14 CUBIC M/ SEC SEC
# RE EARTH RADIUS 21202900 FT
# REQ EARTH EQUATORIAL RADIUS 20925738.2 FT
# VSAT SATELLITE VELOCITY AT RE 25766.1973 FPS
# WIE EARTH RATE .0000729211505 RAD/SEC
#
# (END GSOP AS-278, VOL 1, FIG. 5.6-3 CONSTANTS,GAINS, ETC.)
#
#
# DISPLAY QUANTITIES
# ------------------
#
# (SEE SECTION 4 OF THE GSOP FOR SIGN CONVENTIONS.)
#
# VARIABLE DESCRIPTION MAXIMUM VALUE
# -------- ----------- -------------
#
# GMAX PREDICTED MAXIMUM ENTRY ACCEL 163.84 GS N 60
# VPRED PREDICTED VELOCITY AT ALTITUDE 128 M/CENTISEC N 60
# 400K FT ABOVE FISCHER RADIUS.
# GAMMAEI PREDICTED GAMMA AT ALTITUDE 1 REVOLUTION N 60
# 400K FT ABOVE FISCHER RADIUS.
# D DRAG ACCELERATION 805 FPSS N 64
# VMAGI INERTIAL VELOCITY MAGNITUDE 128 M/CENTISEC N 64, N 68
# THETAH DESIRED RANGE ANGLE NM 1 REVOLUTION N 64, N 67
# LAT PRESENT LATITUDE 1 REVOLUTION N 67
# LONG PRESENT LONGITUDE 1 REVOLUTION N 67
# RTOGO RANGE ANGLE TO SPLASH FROM 1 REVOLUTION N 63
# EMSALT FT ABOVE FISCHER RADIUS. (IN NM)
# VIO PREDICTED VELOCITY AT ALTITUDE 128 M/CENTISEC N 63
# EMSALT FT ABOVE FISCHER RADIUS.
# TTE TIME OF FREE FALL TO ALT B 28 CENTISEC N 63
# EMSALT FT ABOVE FISCHER RADIUS.
# ROLLC ROLL COMMAND 1 REVOLUTION N 66, N 68, N 69
# LATANG CROSS-RANGE ERROR (XRNGERR) 4 RADIANS N 66
# DNRNGERR DOWN RANGE ERROR 1 REVOLUTION N 66
# (PREDANG - THETAH IN NM)
# HDOT ALTITUDE RATE 128 M/CENTISEC N 68
# Q7 MINIMUM DRAG FOR UPCONTROL 805 FPSS N 69
# VL EXIT VELOCITY FOR UP-CONTROL 2 VSAT N 69
# Page 843
# BODY ATTITUDE QUANTITIES (CM/POSE)
# ----------------------------------
#
# VARIABLE DESCRIPTION MAXIMUM VALUE
# -------- ---------- ------- -----
#
# _
# -VREL NEGATIVE VELOCITY REL TO ATMOS. 2 VSAT
# _
# OLDUYA USED FOR UYA BELOW 1000 FPS 2
# _
# UXA/2 UNIT VECTOR TRIAD 2
# _
# UYA/2 BASED ON 2
# _
# UZA/2 THE TRAJECTORY. 2
# _
# UBX/2 UNIT VECTOR 2
# _
# UBY/2 BODY TRIAD 2
# _
# UBZ/2 FOR CM. 2

File diff suppressed because it is too large Load Diff

View File

@ -1,496 +0,0 @@
# Copyright: Public domain.
# Filename: EXECUTIVE.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1208-1220
# Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1208
BLOCK 02
# TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
COUNT 02/EXEC
NOVAC INHINT
AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET)
TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
EXTEND
INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT.
DCA 0 # 2CADR OF JOB ENTERED.
DXCH NEWLOC
CAF EXECBANK
XCH FBANK
TS EXECTEM1
TCF NOVAC2 # ENTER EXECUTIVE BANK.
# TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
FINDVAC INHINT
TS NEWPRIO
EXTEND
INDEX Q
DCA 0
SPVACIN DXCH NEWLOC
CAF EXECBANK
XCH FBANK
TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK.
# TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L:
# USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
SPVAC XCH Q
AD NEG2
XCH Q
TCF SPVACIN
# TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
CHANG1 LXCH Q
CAF EXECBANK
XCH BBANK
TCF CHANJOB
# TO SUSPEND AN INTERPRETIVE JOB:
CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
# ITRACE (4) REFERS TO "CHANG2".
# Page 1209
TS L
+2 CAF EXECBANK
TS BBANK
TCF CHANJOB -1
# Page 1210
# TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
JOBSLEEP TS LOC
CAF EXECBANK
TS FBANK
TCF JOBSLP1
# TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
JOBWAKE INHINT
TS NEWLOC
CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
ADS Q
CAF EXECBANK
XCH FBANK
TCF JOBWAKE2
# TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO
TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS
CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC-
XCH BBANK # STYLE CHANGE-JOB.
TS BANKSET
CA Q
TCF PRIOCH2
# TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
ENDOFJOB CAF EXECBANK
TS FBANK
TCF ENDJOB1
ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY
TS FBANK # COMPLETE.
TCF Q+2
EXECBANK CADR FINDVAC2
FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET)
# Page 1211
# LOCATE AN AVAILABLE VAC AREA.
BANK 01
COUNT 01/EXEC
FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.)
CCS VAC1USE
TCF VACFOUND
CCS VAC2USE
TCF VACFOUND
CCS VAC3USE
TCF VACFOUND
CCS VAC4USE
TCF VACFOUND
CCS VAC5USE
TCF VACFOUND
TC BAILOUT
OCT 1201 # NO VAC AREAS.
VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO
ZL # IN ITS VAC USE REGISTER AND STORE THE
INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE
LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD.
ADS NEWPRIO
NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET.
TS LOCCTR
CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH.
NOVAC3 TS EXECTEM2
INDEX LOCCTR
CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF
TCF NEXTCORE # THE CORRESPONDING CORE SET IS AVAILABLE.
NO.CORES DEC 6
TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY
# BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
# Page 1212
CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE
INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE
TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING
MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR
INDEX LOCCTR
TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP
TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY.
TS OVFIND
CA PUSHLOC
TS FIXLOC
SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE).
TCF SETLOC # MUST BE AWAKENED BUT UNCHANGED JOB.
TC CCSHOLE
TC CCSHOLE
TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET.
DXCH NEWLOC
DXCH LOC
TCF ENDFIND
SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS
INDEX LOCCTR
DXCH LOC
INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE
CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED
AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB
EXTEND # SHOULD BE SET TO SIGNAL A SWITCH.
BZMF ENDFIND
CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF
TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC
TCF ENDFIND # REGISTERS, ETC.
NEXTCORE CAF COREINC
ADS LOCCTR
CCS EXECTEM2
TCF NOVAC3
TC BAILOUT # NO CORE SETS.
OCT 1202
# Page 1213
# THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
-2 LXCH LOC
-1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
CHANJOB INHINT
EXTEND
ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON
XCH L # LOC IN A AND BBCON IN L.
+4 INDEX NEWJOB # SWAP LOC AND BANKSET.
DXCH LOC
DXCH LOC
CAE BANKSET
EXTEND
WRITE SUPERBNK # SET SBANK FOR NEW JOB.
DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
INDEX NEWJOB
DXCH MPAC
DXCH MPAC
DXCH MPAC +2
INDEX NEWJOB
DXCH MPAC +2
DXCH MPAC +2
DXCH MPAC +4
INDEX NEWJOB
DXCH MPAC +4
DXCH MPAC +4
DXCH MPAC +6
INDEX NEWJOB
DXCH MPAC +6
DXCH MPAC +6
CAF ZERO
XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
EXTEND
BZF +3
CS PUSHLOC
TS PUSHLOC
DXCH PUSHLOC
INDEX NEWJOB
DXCH PUSHLOC
DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY.
CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA.
MASK PRIORITY
TS FIXLOC
CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO
CAF ZERO
TCF ENDPRCHG -1
# Page 1214
CS PUSHLOC
TS PUSHLOC
CAF ONE
XCH OVFIND
TS NEWJOB
ENDPRCHG RELINT
DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO
EXTEND # DISPATCH WITH A DTCB.
BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC.
DTCB
# Page 1215
COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
AD ONE
TS LOC # RESUME.
TCF INTRSM
# COMPLETE JOBSLEEP PREPARATIONS.
JOBSLP1 INHINT
CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP.
TS PRIORITY
CAF LOW7
MASK BBANK
EXTEND
ROR SUPERBNK # SAVE OLD SUPERBANK VALUE.
TS BANKSET
CS ZERO
JOBSLP2 TS BUF +1 # HOLDS - HIGHEST PRIORITY.
TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
NUCHANG2 INHINT # QUICK... DONT LET NEWJOB CHANGE TO +0 .
CCS NEWJOB
TCF +3 # NEWJOB STILL PNZ
RELINT # NEWJOB HAS CHANGED TO +0. WAKE UP JOB
TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.)
CAF TWO
EXTEND
WOR DSALMOUT # TURN ON ACTIVITY LIGHT
DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF
TCF CHANJOB + 4 # POSSIBLE SLEEPING JOB.
# Page 1216
# TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE
# LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND,
# LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
JOBWAKE2 TS EXECTEM1
CAF ZERO # BEGIN CORE SET SCAN.
TS LOCCTR
CAF NO.CORES
JOBWAKE4 TS EXECTEM2
INDEX LOCCTR
CCS PRIORITY
TCF JOBWAKE3 # ACTIVE JOB - CHECK NEXT CORE SET.
COREINC DEC 12 # 12 REGISTERS PER CORE SET.
TCF WAKETEST # SLEEPING JOB - SEE IF CADR MATCHES.
JOBWAKE3 CAF COREINC
ADS LOCCTR
CCS EXECTEM2
TCF JOBWAKE4
CS ONE # EXIT IF SLEEPING JOB NOT FOUND.
TS LOCCTR
TCF ENDFIND
WAKETEST CS NEWLOC
INDEX LOCCTR
AD LOC
EXTEND
BZF +2 # IF MATCH.
TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH.
INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
CS PRIORITY
TS NEWPRIO
INDEX LOCCTR
TS PRIORITY
CS FBANKMSK # MAKE UP THE 2CADR OF THE WAKE ADDRESS
MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK
AD 2K # HALF OF BBANK SAVED IN BANKSET.
XCH NEWLOC
MASK FBANKMSK
INDEX LOCCTR
AD BANKSET
TS NEWLOC +1
CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS
TCF SETLOC # ALREADY IN THE RUN (0) POSITION.
TCF SPECTEST
# Page 1217
# PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
PRIOCH2 TS LOC
CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS
TS BUF # JOB IS STILL HIGHEST PRIORITY.
CAF LOW9
MASK PRIORITY
AD NEWPRIO
TS PRIORITY
COM
TCF JOBSLP2 # AND TO EJSCAN.
# Page 1218
# RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
ENDJOB1 INHINT
CS ZERO
TS BUF +1
XCH PRIORITY
MASK LOW9
TS L
CS FAKEPRET
AD L
EXTEND
BZMF EJSCAN # NOVAC ENDOFJOB
CCS L
INDEX A
TS 0
EJSCAN CCS PRIORITY +12D
TC EJ1
TC CCSHOLE
TCF +1
CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND
TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY.
TC CCSHOLE
TCF +1
CCS PRIORITY +36D
TC EJ1
-CCSPR -CCS PRIORITY
TCF +1
CCS PRIORITY +48D
TC EJ1
TC CCSHOLE
TCF +1
CCS PRIORITY +60D
TC EJ1
TC CCSHOLE
TCF +1
CCS PRIORITY +72D
TC EJ1
TC CCSHOLE
TCF +1
# Page 1219
# EVALUATE THE RESULTS OF THE SCAN.
CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING
TC CCSHOLE
TC CCSHOLE
TCF +2
TCF DUMMYJOB
CCS BUF # BUF IS ZERO IF THIS IS A PRIOCHNG AND
TCF +2 # CHANGED PRIORITY IS STILL HIGHEST.
TCF ENDPRCHG -1
INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE
CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET.
AD -CCSPR
TS NEWJOB
TCF CHANJOB -2
EJ1 TS BUF +2
AD BUF +1 # - OLD HIGH PRIORITY.
CCS A
CS BUF +2
TCF EJ2 # NEW HIGH PRIORITY.
NOOP
INDEX Q
TC 2 # PROCEED WITH SEARCH.
EJ2 TS BUF +1
EXTEND
QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR.
INDEX BUF
TC 2
# Page 1220
# IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF,
# BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK.
DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING.
TS NEWJOB
RELINT
CS TWO # TURN OFF THE ACTIVITY LIGHT.
EXTEND
WAND DSALMOUT
ADVAN CCS NEWJOB # IS A NEWJOB ACTIVE ?
TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB.
CAF TWO # NEW JOB ALREADY IN POSITION FOR
TCF NUDIRECT # EXECUTION.
CA SELFRET
TS L # PUT RETURN ADDRESS IN L.
CAF SELFBANK
TCF SUPDXCHZ + 1 # AND DISPATCH JOB.
EBANK= SELFRET
SELFBANK BBCON SELFCHK
NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON.
WOR DSALMOUT
DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE
TCF SUPDXCHZ
BLOCK 2 # IN FIXED-FIXED SO OTHERS MAY USE.
COUNT 02/EXEC
# SUPDXCHZ - ROUTINE TO TRANSFER TO SUPERBANK.
# CALLING SEQUENCE
# TCF SUPDXCHZ # WITH 2CADR OF DESIRED LOCATION IN A + L.
SUPDXCHZ XCH L # BASIC.
+1 EXTEND
WRITE SUPERBNK
TS BBANK
TC L
NEG100 OCT 77677

File diff suppressed because it is too large Load Diff

View File

@ -1,263 +0,0 @@
# Copyright: Public domain.
# Filename: FIXED_FIXED_CONSTANT_POOL.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1200-1204
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1200
BLOCK 02
COUNT 02/FCONS
# THE FOLLOWING TABLE OF 18 VALUES IS INDEXED. DO NOT INSERT OR REMOVE ANY QUANTITIES.
DPOSMAX OCT 37777 # MUST PRECEDE POSMAX
POSMAX OCT 37777
LIMITS = NEG1/2
NEG1/2 OCT -20000 # USED BY SIN ROUTINE (MUST BE TWO
# LOCATIONS IN FRONT OF BIT14)
# BIT TABLE
BIT15 OCT 40000
BIT14 OCT 20000
BIT13 OCT 10000
BIT12 OCT 04000
BIT11 OCT 02000
BIT10 OCT 01000
BIT9 OCT 00400
BIT8 OCT 00200
BIT7 OCT 00100
BIT6 OCT 00040
BIT5 OCT 00020
BIT4 OCT 00010
BIT3 OCT 00004
BIT2 OCT 00002
BIT1 OCT 00001
# DO NOT DESTROY THIS COMBINATION, SINCE IT IS USED IN DOUBLE PRECISION INSTRUCTIONS.
NEG0 OCT -0 # MUST PRECEDE ZERO
ZERO OCT 0 # MUST FOLLOW NEG0
# BIT1 OCT 00001
# NO.WDS OCT 2 # INTERPRETER
# OCTAL3 OCT 3 # INTERPRETER
# R3D1 OCT 4 # PINBALL
FIVE OCT 5
# REVCNT OCT 6 # INTERPRETER
SEVEN OCT 7
# BIT4 OCT 00010
# R2D1 OCT 11 # PINBALL
OCT11 = R2D1 # P20S
# BINCON DEC 10 # PINBALL (OCTAL 12)
ELEVEN DEC 11
# OCT14 OCT 14 # ALARM AND ABORT (FILLER)
OCT15 OCT 15
# R1D1 OCT 16 # PINBALL
# Page 1201
LOW4 OCT 17
# BIT5 OCT 00020
# ND1 OCT 21 # PINBALL
# VD1 OCT 23 # PINBALL
# OCT24 OCT 24 # SERVICE ROUTINES
# MD1 OCT 25 # PINBALL
BITS4&5 OCT 30
# OCT31 OCT 31 # SERVICE ROUTINES
CALLCODE OCT 00032
# LOW5 OCT 37 # PINBALL
# 33DEC DEC 33 # PINBALL (OCTAL 41)
# 34DEC DEC 34 # PINBALL (OCTAL 42)
TBUILDFX DEC 37 # BUILDUP FOR CONVIENCE IN DAPTESTING
TDECAYFX DEC 38 # CONVENIENCE FOR DAPTESTING
# BIT6 OCT 00040
OCT50 OCT 50
DEC45 DEC 45
SUPER011 OCT 60 # BITS FOR SUPERBNK SETTING 011.
.5SEC DEC 50
# BIT7 OCT 00100
SUPER100 = BIT7 # BITS FOR SUPERBNK SETTING 100
# (LAST 4K OF ROPE)
SUPER101 OCT 120 # BITS FOR SUPERBNK SETTING 101
# OCT121 OCT 121 # SERVICE ROUTINES
# (FIRST 8K OF ACM)
SUPER110 OCT 140 # BITS FOR SUPERBNK SETTING 110.
# (LAST 8K OF ACM)
1SEC DEC 100
# LOW7 OCT 177 # INTERPRETER
# BIT8 OCT 00200
# OT215 OCT 215 # ALARM AND ABORT
# 8,5 OCT 00220 # P20-P25 SUNDANCE
2SECS DEC 200
# LOW8 OCT 377 # PINBALL
# BIT9 OCT 00400
GN/CCODE OCT 00401 # SET S/C CONTROL SWITCH TO G/N
3SECS DEC 300
4SECS DEC 400
LOW9 OCT 777
# BIT10 OCT 01000
# 5.5DEGS DEC .03056 # P20-P25 SUNDANCE (OCTAL 00765)
# OCT1103 OCT 1103 # ALARM AND ABORT
C5/2 DEC .0363551 # (OCTAL 01124)
V05N09 VN 0509 # (SAME AS OCTAL 1211)
OCT1400 OCT 01400
V06N22 VN 0622
# MID5 OCT 1740 # PINBALL
BITS2-10 OCT 1776
LOW10 OCT 1777
# Page 1202
# BIT11 OCT 02000
# 2K+3 OCT 2003 # PINBALL
LOW7+2K OCT 2177 # OP CODE MASK + BANK 1 FBANK SETTING.
EBANK5 OCT 02400
PRIO3 OCT 03000
EBANK7 OCT 03400
# LOW11 OCT 3777 # PINBALL
# BIT12 OCT 04000
# RELTAB OCT 04025 # T4RUPT
PRIO5 OCT 05000
PRIO6 OCT 06000
PRIO7 OCT 07000
# BIT13 OCT 10000
# OCT 10003 # T4RUPT RELTAB +1D
# 13,7,2 OCT 10102 # P20-P25 SUNDANCE
PRIO11 OCT 11000
# PRIO12 OCT 12000 # BANKCALL
PRIO13 OCT 13000
PRIO14 OCT 14000
# OCT 14031 # T4RUPT RELTAB +2D
PRIO15 OCT 15000
PRIO16 OCT 16000
# 85DEGS DEC .45556 # P20-P25 SUNDANCE (OCTAL 16450)
PRIO17 OCT 17000
OCT17770 OCT 17770
# BIT14 OCT 20000
# OCT 20033 # T4RUPT RELTAB +3D
PRIO21 OCT 21000
BLOCK 03
COUNT 03/FCONS
PRIO22 OCT 22000 # SERVICE ROUTINES
PRIO23 OCT 23000
PRIO24 OCT 24000
# 5/8+1 OCT 24001 # SINGLE PRECISION SUBROUTINES
# OCT 24017 # T4RUPT RELTAB +4D
PRIO25 OCT 25000
PRIO26 OCT 26000
PRIO27 OCT 27000
# CHRPRIO OCT 30000 # PINBALL
# OCT 30036 # T4RUPT RELTAB +5D
PRIO31 OCT 31000
C1/2 DEC .7853134 # (OCTAL 31103)
PRIO32 OCT 32000
PRIO33 OCT 33000
PRIO34 OCT 34000
# OCT 34034 # T4RUPT RELTAB +6D
PRIO35 OCT 35000
PRIO36 OCT 36000
# Page 1203
PRIO37 OCT 37000
63/64+1 OCT 37401
# MID7 OCT 37600 # PINBALL
OCT37766 OCT 37766
OCT37774 OCT 37774
OCT37776 OCT 37776
# DPOSMAX OCT 37777
# BIT15 OCT 40000
# OCT40001 OCT 40001 # INTERPRETER (CS 1 INSTRUCTION)
DLOADCOD OCT 40014
DLOAD* OCT 40015
# OCT 40023 # T4RUPT RELTAB +7D
BIT15+6 OCT 40040
OCT40200 OCT 40200
# OCT 44035 # T4RUPT RELTAB +8D
# OCT 50037 # T4RUPT RELTAB +9D
# OCT 54000 # T4RUPT RELTAB +10D
-BIT14 OCT 57777
# RELTAB11 OCT 60000 # T4RUPT
C3/2 DEC -.3216147 # (OCTAL 65552)
13,14,15 OCT 70000
-1/8 OCT 73777
HIGH4 OCT 74000
-ENDERAS DEC -2001 # (OCTAL 74056)
# HI5 OCT 76000 # PINBALL
HIGH9 OCT 77700
# -ENDVAC DEC -45 # INTERPRETER (OCTAL 77722)
# -OCT10 OCT -10 # (OCT 77767)
# NEG4 DEC -4 # (OCTAL 77773)
NEG3 DEC -3
NEG2 OCT 77775
NEGONE DEC -1
# Page 1204
# DEFINED BY EQUALS
# IT WOULD BE TO THE USERS ADVANTAGE TO OCCASIONALLY CHECK ANY OF THESE SYMBOLS IN ORDER TO PREVENT ANY
# ACCIDENTAL DEFINITION CHANGES.
MINUS1 = NEG1
NEG1 = NEGONE
ONE = BIT1
TWO = BIT2
THREE = OCTAL3
LOW2 = THREE
FOUR = BIT3
SIX = REVCNT
LOW3 = SEVEN
EIGHT = BIT4
NINE = R2D1
TEN = BINCON
NOUTCON = ELEVEN
OCT23 = VD1
OCT25 = MD1
PRIO1 = BIT10
EBANK3 = OCT1400
PRIO2 = BIT11
OCT120 = SUPER101
OCT140 = SUPER110
2K = BIT11
EBANK4 = BIT11
PRIO4 = BIT12
EBANK6 = PRIO3
QUARTER = BIT13
PRIO10 = BIT13
OCT10001 = CCSL
POS1/2 = HALF
PRIO20 = BIT14
HALF = BIT14
PRIO30 = CHRPRIO
BIT13-14 = PRIO30 # INTERPRETER USES IN PROCESSING STORECODE
OCT30002 = TLOAD +1
B12T14 = PRIO34
NEGMAX = BIT15
VLOADCOD = BIT15
VLOAD* = OCT40001
OCT60000 = RELTAB11
BANKMASK = HI5

File diff suppressed because it is too large Load Diff

View File

@ -1,98 +0,0 @@
# Copyright: Public domain.
# Filename: GIMBAL_LOCK_AVOIDANCE.agc
# Purpose: Part of the source code for Comanche, build 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 412-413
# Contact: Onno Hommes <ohommes@cmu.edu>.
# Website: www.ibiblio.org/apollo.
# Mod history: 05/07/09 OH Transcription Batch 1 Assignment
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further information.
# Please report any errors to info@sandroid.org.
# Page 412
BANK 15
SETLOC KALCMON1
BANK
EBANK= BCDU
# DETECTING GIMBAL LOCK
LOCSKIRT EQUALS WCALC
WCALC LXC,1 DLOAD*
RATEINDX
ARATE,1
SR4 CALL # COMPUTE THE INCREMENTAL ROTATION MATRIX
DELCOMP # DEL CORRESPONDING TO A 1 SEC ROTATION
# ABOUT COF
DLOAD* VXSC
ARATE,1
COF
MXV
QUADROT
STODL BRATE
AM
DMP DDV*
ANGLTIME
ARATE,1
SR
5
STOVL TM
BRATE
VXSC
BIASCALE
STORE BIASTEMP # ATTITUDE ERROR BIAS TO PREVENT OVERSHOOT
# IN SYSTEM
SETGO # STATE SWITCH CALCMAN2 (43D)
CALCMAN2 # 0(OFF) = BYPASS STARTING PROCEDURE
NEWANGL +1 # 1(ON) = START MANEUVER
ARATE 2DEC .0022222222 # = .05 DEG/SEC
2DEC .0088888889 # = .2 DEG/SEC
2DEC .0222222222 # = .5 DEG/SEC
2DEC .0888888889 # = 2 DEG/SEC $22.5 DEG/SEC
ANGLTIME 2DEC .000190735 # = 100B - 19
# MANEUVER ANGLE TO MANEUVER TIME
QUADROT 2DEC .1 # ROTATION MATRIX FROM S/C AXES TO CONTROL
# Page 413
2DEC 0 # AXES (X ROT = -7.25 DEG)
2DEC 0
2DEC 0
2DEC .099200 # =(.1)COS7.25
2DEC -.012620 # =-(.1)SIN7.25
2DEC 0
2DEC .012620 # (.1)SIN7.25
2DEC .099200 # (.1)COS7.25
BIASCALE 2DEC .0002543132 # = (450/180)(1/0.6)(1/16384)

View File

@ -1,205 +0,0 @@
# Copyright: Public domain.
# Filename: GROUND_TRACKING_DETERMINATION_PROGRAM.agc
# Purpose: Part of the source code for Comanche, build 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 456-459
# Contact: Onno Hommes <ohommes@cmu.edu>.
# Website: www.ibiblio.org/apollo.
# Mod history: 2009-05-07 OH Transcription Batch 1 Assignment
# 2009-05-20 RSB Corrected a couple of DIMOFLAG to DIM0FLAG.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further information.
# Please report any errors to info@sandroid.org.
# Page 456
# GROUND TRACKING DETERMINATION PROGRAM P21
# PROGRAM DESCRIPTION
# MOD NO - 1
# MOD BY - N.M.NEVILLE
# FUNCTIONAL DECRIPTION-
#
# TO PROVIDE THE ASTRONAUT DETAILS OF THE LM OR CSM GROUND TRACK WITHOUT
# THE NEED FOR GROUND COMMUNICATION (REQUESTED BY DSKY).
# CALLING SEQUENCE -
#
# ASTRONAUT REQUEST THROUGH DSKY V37E21E
# SUBROUTINES CALLED-
#
# GOPERF4
# GOFLASH
# THISPREC
# OTHPREC
# LAT-LONG
# NORMAL EXIT MODES-
#
# ASTRONAUT REQUEST THROUGH DSKY TO TERMINATE PROGRAM V34E
# ALARM OR ABORT EXIT MODES-
#
# NONE
# OUTPUT -
#
# OCTAL DISPLAY OF OPTION CODE AND VEHICLE WHOSE GROUND TRACK IS TO BE
# COMPUTED
# OPTION CODE 00002
# THIS 00001
# OTHER 00002
# DECIMAL DISPLAY OF TIME TO BE INTEGRATED TO HOURS , MINUTES , SECONDS
# DECIMAL DISPLAY OF LAT,LONG,ALT
# ERASABLE INITIALIZATION REQUIRED
#
# AX0 2DEC 4.652459653 E-5 RADIANS "68-69 CONSTANTS"
#
# -AY0 2DEC 2.147535898 E-5 RADIANS
#
# AZ0 2DEC .7753206164 REVOLUTIONS
# FOR LUNAR ORBITS 504LM VECTOR IS NEEDED
#
# 504LM 2DEC -2.700340600 E-5 RADIANS
#
# 504LM _2 2DEC -7.514128400 E-4 RADIANS
#
# 504LM _4 2DEC _2.553198641 E-4 RADIANS
#
# NONE
# DEBRIS
# Page 457
# CENTRALS-A,Q,L
# OTHER-THOSE USED BY THE ABOVE LISTED SUBROUTINES
# SEE LEMPREC,LAT-LONG
SBANK= LOWSUPER # FOR LOW 2CADR'S.
BANK 33
SETLOC P20S
BANK
EBANK= P21TIME
COUNT 24/P21
PROG21 CAF ONE
TS OPTION2 # ASSUMED VEHICLE IS LM , R2 = 00001
CAF BIT2 # OPTION 2
TC BANKCALL
CADR GOPERF4
TC GOTOPOOH # TERMINATE
TC +2 # PROCEED VALUE OF ASSUMED VEHICLE OK
TC -5 # R2 LOADED THROUGH DSKY
P21PROG1 CAF V6N34 # LOAD DESIRED TIME OF LAT-LONG.
TC BANKCALL
CADR GOFLASH
TC GOTOPOOH # TERM
TC +2 # PROCEED VALUES OK
TC -5 # TIME LOADED THROUGH DSKY
TC INTPRET
DLOAD
DSPTEM1
STCALL TDEC1 # INTEG TO TIME SPECIFIED IN TDEC
INTSTALL
BON SET
P21FLAG
P21CONT # ON...RECYCLE USING BASE VECTOR
VINTFLAG # OFF..1ST PASS CALC BASE VECTOR
SLOAD SR1
OPTION2
BHIZ CLEAR
+2 # ZERO..THIS VEHICLE (CM)
VINTFLAG # ONE...OTHER VEHICLE(LM)
CLEAR CLEAR
DIM0FLAG
INTYPFLG # PRECISION
CALL
INTEGRV # CALCULATE
GOTO # .AND
P21VSAVE # ..SAVE BASE VECTOR
P21CONT VLOAD # RECYCLE..INTEG FROM BASE VECTOR
P21BASER
# Page 458
STOVL RCV # ..POS
P21BASEV
STODL VCV # ..VEL
P21TIME
STORE TET # ..TIME
CLEAR CLEAR
DIM0FLAG
MOONFLAG
SLOAD BZE
P21ORIG
+3 # ZERO = EARTH
SET # ...2 = MOON
MOONFLAG
CALL
INTEGRVS
P21VSAVE DLOAD # SAVE CURRENT BASE VECTOR
TAT
STOVL P21TIME # ..TIME
RATT1
STOVL P21BASER # ..POS B-29 OR B-27
VATT1
STORE P21BASEV # ..VEL B-7 OR B-5
ABVAL SL*
0,2
STOVL P21VEL # /VEL/ FOR N73 DSP
RATT
UNIT DOT
VATT # U(R).(V)
DDV ASIN # U(R).U(V)
P21VEL
STORE P21GAM # SIN-1 U(R).U(V), -90 TO +90
SXA,2 SET
P21ORIG # 0 = EARTH 2 = MOON
P21FLAG
P21DSP CLEAR SLOAD # GENERATE DISPLAY DATA
LUNAFLAG
X2
BZE SET
+2 # 0 = EARTH
LUNAFLAG
VLOAD
RATT
STODL ALPHAV
TAT
CLEAR CALL
ERADFLAG
LAT-LONG
DMP # MPAC = ALT, METERS B-29
K.01
STORE P21ALT # ALT/100 FOR N73 DSP
# Page 459
EXIT
CAF V06N43 # DISPLAY LAT,LONG,ALT
TC BANKCALL # LAT,LONG = REVS B0 BOTH EARTH/MOON
CADR GOFLASH # ALT = METERS B-29 BOTH EARTH/MOON
TC GOTOPOOH # TERM
TC GOTOPOOH
TC INTPRET # V32E RECYCLE
DLOAD DAD
P21TIME
600SEC # 600 SECONDS OR 10 MIN
STORE DSPTEM1
RTB
P21PROG1
600SEC 2DEC 60000 # 10 MIN
P21ONENN OCT 00001 # NEEDED TO DETERMINE VEHICLE
OCT 00000 # TO BE INTEGRATED
V06N43 VN 00643
V6N34 VN 00634
K.01 2DEC .01

File diff suppressed because it is too large Load Diff

View File

@ -1,368 +0,0 @@
# Copyright: Public domain.
# Filename: IMU_COMPENSATION_PACKAGE.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 297-306
# Mod history: 2009-05-08 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images/
# 2009-05-21 RSB In IRIGZ, PRIO17 corrected to PRIO21.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 297
BANK 7
SETLOC IMUCOMP
BANK
EBANK= NBDX
COUNT 06/ICOMP
1/PIPA CAF LGCOMP # SAVE EBANK OF CALLING PROGRAM
XCH EBANK
TS MODE
CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
TCF +3
TCF +2
TCF IRIG1 # RETURN
INHINT # ASSURE COMPLETE COMPENSATION OF DELV'S
# FOR DOWNLINK.
1/PIPA1 CAF FOUR # PIPAZ, PIPAY, PIPAX
TS BUF +2
INDEX BUF +2
CA PIPASCF # (P.P.M.) X 2(-9)
EXTEND
INDEX BUF +2
MP DELVX # (PP) X 2(+14) NOW (PIPA PULSES) X 2(+5)
TS Q # SAVE MAJOR PART
CA L # MINOR PART
EXTEND
MP BIT6 # SCALE 2(+9) SHIFT RIGHT 9
INDEX BUF +2
TS DELVX +1 # FRACTIONAL PIPA PULSES SCALED 2(+14)
CA Q # MAJOR PART
EXTEND
MP BIT6 # SCALE 2(+9) SHIFT RIGHT 9
INDEX BUF +2
DAS DELVX # (PIPAI) + (PIPAI)(SFE)
INDEX BUF +2
CS PIPABIAS # (PIPA PULSES)/(CS) X 2(-8) *
EXTEND
MP 1/PIPADT # (CS) X 2(+8) NOW (PIPA PULSES) X 2(+0) *
EXTEND
MP BIT1 # SCALE 2(+14) SHIFT RIGHT 14 *
INDEX BUF +2
DAS DELVX # (PIPAI) + (PIPAI)(SFE) - (BIAS)(DELTAT)
CCS BUF +2 # PIPAZ, PIPAY, PIPAX
# Page 298
AD NEG1
TCF 1/PIPA1 +1
NOOP # LESS THAN ZERO IMPOSSIBLE.
RELINT
# Page 299
IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS.
TS BUF # INDEX COUNTER - IRIGX, IRIGY, IRIGZ.
IRIGX EXTEND
DCS DELVX # (PIPA PULSES) X 2(+14)
DXCH MPAC
CA ADIAX # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
TC GCOMPSUB # -(ADIAX)(PIPAX) (GYRO PULSES) X 2(+14)
EXTEND #
DCS DELVY # (PIPA PULSES) X 2(+14)
DXCH MPAC #
CS ADSRAX # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
TC GCOMPSUB # +(ADSRAX)(PIPAY) (GYRO PULSES) X 2(+14)
# EXTEND # ***
# DCS DELVY # *** (PIPA PULSES) X 2(+14)
# DXCH MPAC # ***
# CA ADOAX # *** (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
# TC GCOMPSUB # *** -(ADOAX)(PIPAZ) (GYRO PULSES) X 2(+14)
CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
TC DRIFTSUB # -(NBDX)(DELTAT) (GYRO PULSES) X 2(+14)
IRIGY EXTEND
DCS DELVY # (PIPA PULSES) X 2(+14)
DXCH MPAC
CA ADIAY # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
TC GCOMPSUB # -(ADIAY)(PIPAY) (GYRO PULSES) X 2(+14)
EXTEND
DCS DELVZ # (PIPA PULSES) X 2(+14)
DXCH MPAC
CS ADSRAY # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
TC GCOMPSUB # +(ADSRAY)(PIPAZ) (GYRO PULSES) X 2(+14)
# EXTEND # ***
# DCS DELVX # *** (PIPA PULSES) X 2(+14)
# DXCH MPAC # ***
# CA ADOAY # *** (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
# TC GCOMPSUB # *** -(ADOAY)(PIPAZ) (GYRO PULSES) X 2(+14)
CS NBDY # (GYRO PULSES)/(CS) X 2(-5)
TC DRIFTSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
IRIGZ EXTEND
DCS DELVY # (PIPA PULSES) X 2(+14)
DXCH MPAC
CA ADSRAZ # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
# Page 300
TC GCOMPSUB # -(ADSRAZ)(PIPAY) (GYRO PULSES) X 2(+14)
EXTEND
DCS DELVZ # (PIPA PULSES) X 2(+14)
DXCH MPAC
CA ADIAZ # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
TC GCOMPSUB # -(ADIAZ)(PIPAZ) (GYRO PULSES) X 2(+14)
# EXTEND # ***
# DCS DELVX # *** (PIPA PULSE) X 2(+14)
# DXCH MPAC # ***
# CS ADOAZ # *** (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
# TC GCOMPSUB # *** +(ADOAZ)(PIPAX) (GYRO PULSES) X 2(+14)
CA NBDZ # (GYRO PULSES)/(CS) X 2(-5)
TC DRIFTSUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2(+14)
# Page 301
CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
TCF +2 # YES
TCF IRIG1 # NO
CAF PRIO21 # HIGHER THAN SERVICER-LESS THAN PRELAUNCH
TC NOVAC
EBANK= NBDX
2CADR 1/GYRO
RELINT
IRIG1 CA MODE # SET EBANK FOR RETURN
TS EBANK
TCF SWRETURN
GCOMPSUB XCH MPAC # ADIA OR ADSRA COEFFICIENT ARRIVES IN A
EXTEND # C(MPAC) = (PIPA PULSES) X 2(+14)
MP MPAC # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
DXCH VBUF # NOW = (GYRO PULSES) X 2(+11) *
CA MPAC +1 # MINOR PART OF PIPA PULSES
EXTEND
MP MPAC # ADIA OR ADSRA
TS L
CAF ZERO
DAS VBUF # NOW = (GYRO PULSES) X 2(+11) *
CA VBUF # PARTIAL RESULT - MAJOR
EXTEND
MP BIT12 # SCALE 2(+3) SHIFT RIGHT 3 *
INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
DAS GCOMP # HI(ADIA)(PIPAI) OR HI(ADSRA)(PIPAI)
CA VBUF +1 # PARTIAL RESULT - MINOR
EXTEND
MP BIT12 # SCALE 2(+3) SHIFT RIGHT 3 *
TS L
CAF ZERO
INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
DAS GCOMP # (ADIA)(PIPAI) OR (ADSRA)(PIPAI)
TC Q
# Page 302
DRIFTSUB EXTEND
QXCH BUF +1
EXTEND # C(A) = NBD (GYRO PULSES)/(CS) X 2(-5)
MP 1/PIPADT # (CS) X 2(+8) NO (GYRO PULSES) X 2(+3)
LXCH MPAC +1 # SAVE FOR FRACTIONAL COMPENSATION
EXTEND
MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
INDEX BUF
DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
CA MPAC +1 # NOW MINOR PART
EXTEND
MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
TS L
CAF ZERO
INDEX BUF # ADD IN FRACTIONAL COMPENSATION
DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
DRFTSUB2 CAF TWO # PIPAX, PIPAY, PIPAZ
AD BUF
XCH BUF
INDEX A
CCS GCOMP # ARE GYRO COMMANDS 1 PULSE OR GREATER
TCF +2 # YES
TC BUF +1 # NO
MASK NEGONE
CCS A # ARE GYRO COMMANDS GREATER THAN 2 PULSES
TS GCOMPSW # YES - SET GCOMPSW POSITIVE
TC BUF +1 # NO
# Page 303
1/GYRO CAF FOUR # PIPAZ, PIPAY, PIPAX
TS BUF
INDEX BUF # SCALE GYRO COMMANDS FOR IMUPULSE
CA GCOMP +1 # FRACTIONAL PULSES
EXTEND
MP BIT8 # SHIFT RIGHT 7
INDEX BUF
TS GCOMP +1 # FRACTIONAL PULSES SCALED
CAF ZERO # SET GCOMP = 0 FOR DAS INSTRUCTION
INDEX BUF
XCH GCOMP # GYRO PULSES
EXTEND
MP BIT8 # SHIFT RIGHT 7
INDEX BUF
DAS GCOMP # ADD THESE TO FRACTIONAL PULSES ABOVE
CCS BUF # PIPAZ, PIPAY, PIPAX
AD NEG1
TCF 1/GYRO +1
LGCOMP ECADR GCOMP # LESS THAN ZERO IMPOSSIBLE
CAF LGCOMP
TC BANKCALL
CADR IMUPULSE # CALL GYRO TORQUING ROUTINE
TC BANKCALL
CADR IMUSTALL # WAIT FOR PULSES TO GET OUT
TCF ENDOFJOB # TEMPORARY
GCOMP1 CAF FOUR # PIPAZ, PIPAY, PIPAX
TS BUF
INDEX BUF # RESCALE
CA GCOMP +1
EXTEND
MP BIT8 # SHIFT MINOR PART LEFT 7 - MAJOR PART = 0
INDEX BUF
LXCH GCOMP +1 # BITS 8-14 OF MINOR PART WERE = 0
CCS BUF # PIPAZ, PIPAY, PIPAX
AD NEG1
TCF GCOMP1 +1
V06N30S VN 0630
TCF ENDOFJOB
# Page 304
NBDONLY CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
TCF +3
TCF +2
TCF ENDOFJOB
INHINT
CCS FLAGWRD2 # PREREAD T3RUPT MAY COINCIDE
TCF ENDOFJOB
TCF ENDOFJOB
TCF +1
CA TIME1 # (CS) X 2(+14)
XCH 1/PIPADT # PREVIOUS TIME
RELINT
COM
AD 1/PIPADT
NBD2 CCS A # CALCULATE ELAPSED TIME
AD ONE # NO TIME1 OVERFLOW
TCF NBD3 # RESTORE TIME DIFFERENCE AND JUMP
TCF +2 # TIME1 OVERFLOW
TCF ENDOFJOB # IF ELAPSED TIME = 0 (DIFFERENCE = -0)
COM # CALCULATE ABSOLUTE DIFFERENCE
AD POSMAX
NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14)
MP BIT10 # SHIFT RIGHT 5
DXCH VBUF
EXTEND
DCA VBUF
DXCH MPAC # DELTAT NOW SCALED (CS) X 2(+19)
CAF ZERO
TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS
TS BUF # PIPAX, PIPAY, PIPAZ
CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
TC FBIASSUB # -(NBOX)(DELTAT) (GYRO PULSES) X 2(+14)
EXTEND
DCS VBUF
DXCH MPAC # DELTAT SCALED (CS) X 2(+19)
CA NBDY # (GYRO PULSES)/(CS) X 2(-5)
TC FBIASSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
EXTEND
DCS VBUF
DXCH MPAC # DELTAT SCALED (CS) X 2(+19)
CS NBDZ # (GYRO PULSES)/(CS) X 2(-5)
TC FBIASSUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2(+14)
# Page 305
CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
TCF 1/GYRO # YES
TCF ENDOFJOB # NO
# Page 306
FBIASSUB XCH Q
TS BUF +1
CA Q # NBD SCALED (GYRO PULSES)/(CS) X 2(-5)
EXTEND
MP MPAC # DELTAT SCALED (CS) X 2(+19)
INDEX BUF
DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
CA Q # NO FRACTIONAL PART
EXTEND
MP MPAC +1
TS L
CAF ZERO
INDEX BUF
DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
TCF DRFTSUB2 # CHECK MAGNITUDE OF COMPENSATION
LASTBIAS TC BANKCALL
CADR PIPUSE
CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
TCF +3
TCF +2
TCF ENDOFJOB
CAF PRIO31 # 2 SECONDS SCALED (CS) X 2(+8)
XCH 1/PIPADT
COM
AD PIPTIME1 +1 # TIME AT PIPA1 =0
TCF NBD2

File diff suppressed because it is too large Load Diff

View File

@ -1,304 +0,0 @@
# Copyright: Public domain.
# Filename: INFLIGHT_ALIGNMENT_ROUTINES.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1355-1364
# Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1355
BANK 22
SETLOC INFLIGHT
BANK
EBANK= XSM
# CALCGTA COMPUTES THE GYRO TORQUE ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
#
# THE INPUT IS THE DESIRED STABLE MEMBER COORDINATES REFERRED TO PRESENT STABLE MEMBER COORDINATES. THE THREE
# HALF-UNIT VECTORS ARE STORED AT XDC, YDC, AND ZDC.
#
# THE OUTPUTS ARE THE THREE GYRO TORQUING ANGLES TO BE APPLIED TO THE Y, Z, AND X GYROS AND ARE STORED DP AT IGC,
# MGC, AND OGC RESPECTIVELY.
COUNT 23/INFLT
CALCGTA ITA DLOAD # PUSHDOWN 00-03,16D-27D,34D-37D
S2 # XDC = (XD1 XD2 XD3)
XDC # YDC = (YD1 YD2 YD3)
PDDL PDDL # ZDC = (ZD1 ZD2 ZD3)
HI6ZEROS
XDC +4
DCOMP VDEF
UNIT
STODL ZPRIME # ZP = UNIT(-XD3 0 XD1) = (ZP1 ZP2 ZP3)
ZPRIME
SR1
STODL SINTH # SIN(IGC) = ZP1
ZPRIME +4
SR1
STCALL COSTH # COS(IGC) = ZP3
ARCTRIG
STODL IGC # Y GYRO TORQUING ANGLE FRACTION OF REV.
XDC +2
SR1
STODL SINTH # SIN(MGC) = XD2
ZPRIME
DMP PDDL
XDC +4 # PD00 = (ZP1)(XD3)
ZPRIME +4
DMP DSU
XDC # MPAC = (ZP3)(XD1)
STADR
STCALL COSTH # COS(MGC) = MPAC - PD00
ARCTRIG
# Page 1356
STOVL MGC # Z GYRO TORQUING ANGLE FRACTION OF REV.
ZPRIME
DOT
ZDC
STOVL COSTH # COS(OGC) = ZP . ZDC
ZPRIME
DOT
YDC
STCALL SINTH # SIN(OGC) = ZP . YDC
ARCTRIG
STCALL OGC # X GYRO TORQUING ANGLE FRACTION OF REV.
S2
# Page 1357
# ARCTRIG COMPUTES AN ANGLE GIVEN THE SINE AND COSINE OF THIS ANGLE.
#
# THE INPUTS ARE SIN/4 AND COS/4 STORED DP AT SINTH AND COSTH.
#
# THE OUTPUT IS THE CALCULATED ANGLE BETWEEN +.5 AND -.5 REVOLUTIONS AND STORED AT THETA. THE OUTPUT IS ALSO
# AVAILABLE AT MPAC.
ARCTRIG DLOAD ABS # PUSHDOWN 16D-21D
SINTH
DSU BMN
QTSN45 # ABS(SIN/4) - SIN(45)/4
TRIG1 # IF (-45,45) OR (135,-135)
DLOAD SL1 # (45,135) OR (-135,-45)
COSTH
ACOS SIGN
SINTH
STORE THETA # X = ARCCOS(COS) WITH SIGN(SIN)
RVQ
TRIG1 DLOAD SL1 # (-45,45) OR (135,-135)
SINTH
ASIN
STODL THETA # X = ARCSIN(SIN) WITH SIGN(SIN)
COSTH
BMN
TRIG2 # IF (135,-135)
DLOAD RVQ
THETA # X = ARCSIN(SIN) (-45,45)
TRIG2 DLOAD SIGN # (135,-135)
HIDPHALF
SINTH
DSU
THETA
STORE THETA # X = .5 WITH SIGN(SIN) - ARCSIN(SIN)
RVQ # (+) - (+) OR (-) - (-)
# Page 1358
# SMNB, NBSM, AND AXISROT, WHICH USED TO APPEAR HERE, HAVE BEEN
# COMBINED IN A ROUTINE CALLED AX*SR*T, WHICH APPEARS AMONG THE POWERED
# FLIGHT SUBROUTINES.
# Page 1359
# CALCGA COMPUTES THE CDU DRIVING ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
#
# THE INPUTS ARE 1) THE NAVIGATION BASE COORDINATES REFERRED TO ANY COORDINATE SYSTEM. THE THREE HALF-UNIT
# VECTORS ARE STORED AT XNB, YNB, AND ZNB. 2) THE DESIRED STABLE MEMBER COORDINATES REFERRED TO THE SAME
# COORDINATE SYSTEM ARE STORED AT XSM, YSM, AND ZSM.
#
# THE OUTPUTS ARE THE THREE CDU DRIVING ANGLES AND ARE STORED SP AT THETAD, THETAD +1, AND THETAD +2.
CALCGA SETPD # PUSHDOWN 00-05, 16D-21D, 34D-37D
0
VLOAD VXV
XNB # XNB = OGA (OUTER GIMBAL AXIS)
YSM # YSM = IGA (INNER GIMBAL AXIS)
UNIT PUSH # PD0 = UNIT(OGA X IGA) = MGA
DOT ITA
ZNB
S2
STOVL COSTH # COS(OG) = MGA . ZNB
0
DOT
YNB
STCALL SINTH # SIN(OG) = MGA . YNB
ARCTRIG
STOVL OGC
0
VXV DOT # PROVISION FOR MG ANGLE OF 90 DEGREES
XNB
YSM
SL1
STOVL COSTH # COS(MG) = IGA . (MGA X OGA)
YSM
DOT
XNB
STCALL SINTH # SIN(MG) = IGA . OGA
ARCTRIG
STORE MGC
ABS DSU
.166...
BPL
GIMLOCK1 # IF ANGLE GREATER THAN 60 DEGREES
CALCGA1 VLOAD DOT
ZSM
0
STOVL COSTH # COS(IG) = ZSM . MGA
XSM
# Page 1360
DOT STADR
STCALL SINTH # SIN(IG) = XSM . MGA
ARCTRIG
STOVL IGC
OGC
RTB BONCLR
V1STO2S
CPHIFLAG
S2
STCALL THETAD
S2
GIMLOCK1 EXIT
TC ALARM
OCT 00401
TC UPFLAG # GIMBAL LOCK HAS OCCURRED
ADRES GLOKFAIL
TC INTPRET
GOTO
CALCGA1
# Page 1361
# AXISGEN COMPUTES THE COORDINATES OF ONE COORDINATE SYSTEM REFERRED TO ANOTHER COORDINATE SYSTEM.
#
# THE INPUTS ARE 1) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM A STORED AT STARAD. 2) THE STAR2 VECTOR
# REFERRED TO COORDINATE SYSTEM A STORED AT STARAD +6. 3) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM B STORED
# AT LOCATION 6 OF THE VAC AREA. 4) THE STAR2 VECTOR REFERRED TO COORDINATE SYSTEM B STORED AT LOCATION 12D OF
# THE VAC AREA.
#
# THE OUTPUT DEFINES COORDINATE SYSTEM A REFERRED TO COORDINATE SYSTEM B. THE THREE HALF-UNIT VECTORS ARE STORED
# AT LOCATIONS XDC, XDC +6, XDC +12D, AND STARAD, STARAD +6, STARAD +12D.
AXISGEN AXT,1 SSP # PUSHDOWN 00-30D, 34D-37D
STARAD +6
S1
STARAD -6
SETPD
0
AXISGEN1 VLOAD* VXV* # 06D UA = S1
STARAD +12D,1 # STARAD +00D UB = S1
STARAD +18D,1
UNIT # 12D VA = UNIT(S1 X S2)
STORE STARAD +18D,1 # STARAD +06D VB = UNIT(S1 X S2)
VLOAD*
STARAD +12D,1
VXV* VSL1
STARAD +18D,1 # 18D WA = UA X VA
STORE STARAD +24D,1 # STARAD +12D WB = UB X VB
TIX,1
AXISGEN1
AXC,1 SXA,1
6
30D
AXT,1 SSP
18D
S1
6
AXT,2 SSP
6
S2
2
AXISGEN2 XCHX,1 VLOAD*
30D # X1=-6 X2=+6 X1=-6 X2=+4 X1=-6 X2=+2
0,1
# Page 1362
VXSC* PDVL* # J=(UA)(UB1) J=(UA)(UB2) J=(UA)(UB3)
STARAD +6,2
6,1
VXSC*
STARAD +12D,2
STOVL* 24D # K=(VA)(VB1) J=(VA)(VB2) J=(VA)(VB3)
12D,1
VXSC* VAD
STARAD +18D,2 # L=(WA)(WB1) J=(WA)(WB2) J=(WA)(WB3)
VAD VSL1
24D
XCHX,1 UNIT
30D
STORE XDC +18D,1 # XDC = L+J+K YDC = L+J+K ZDC = L+J+K
TIX,1
AXISGEN3
AXISGEN3 TIX,2
AXISGEN2
VLOAD
XDC
STOVL STARAD
YDC
STOVL STARAD +6
ZDC
STORE STARAD +12D
RVQ
# Page 1363
QTSN45 2DEC .1768
.166... 2DEC .1666666667
# Page 1364 (empty page)

File diff suppressed because it is too large Load Diff

View File

@ -1,183 +0,0 @@
# Copyright: Public domain.
# Filename: INTER-BANK_COMMUNICATION.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1103-1106
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-08 RSB Adapted from Colossus249/ file of same name
# and page images. Corrected various typos
# in the transcription of program comments,
# and these should be back-ported to
# Colossus249.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1103
# THE FOLLOWING ROUTINE CAN BE USED TO CALL A SUBROUTINE IN ANOTHER BANK. IN THE BANKCALL VERSION, THE
# CADR OF THE SUBROUTINE IMMEDIATELY FOLLOWS THE TC BANKCALL INSTRUCTION, WITH C(A) AND C(L) PRESERVED.
BLOCK 02
COUNT 02/BANK
BANKCALL DXCH BUF2 # SAVE INCOMING A,L.
INDEX Q # PICK UP CADR.
CA 0
INCR Q # SO WE RETURN TO THE LOC. AFTER THE CADR.
# SWCALL IS IDENTICAL TO BANKCALL, EXCEPT THAT THE CADR ARRIVES IN A.
SWCALL TS L
LXCH FBANK # SWITCH BANKS, SAVING RETURN.
MASK LOW10 # GET SUB-ADDRESS OF CADR.
XCH Q # A,L NOW CONTAINS DP RETURN.
DXCH BUF2 # RESTORING INPUTS IF THIS IS A BANKCALL.
INDEX Q
TC 10000 # SETTING Q TO SWRETURN
SWRETURN XCH BUF2 +1 # COMES HERE TO RETURN TO CALLER. C(A,L)
XCH FBANK # ARE PRESERVED FOR RETURN.
XCH BUF2 +1
TC BUF2
# THE FOLLOWING ROUTINE CAN BE USED AS A UNILATERAL JUMP WITH C(A,L) PRESERVED AND THE CADR IMMEDIATELY
# FOLLOWING THE TC POSTJUMP INSTRUCTION.
POSTJUMP XCH Q # SAVE INCOMING C(A).
INDEX A # GET CADR.
CA 0
# BANKJUMP IS THE SAME AS POSTJUMP, EXCEPT THAT THE CADR ARRIVES IN A.
BANKJUMP TS FBANK
MASK LOW10
XCH Q # RESTORING INPUT C(A) IF THIS WAS A
Q+10000 INDEX Q # POSTJUMP.
PRIO12 TCF 10000 # PRIO12 = TCF 10000 = 12000
# Page 1104
# THE FOLLOWING ROUTINE GETS THE RETURN CADR SAVED BY SWCALL OR BANKCALL AND LEAVES IT IN A.
MAKECADR CAF LOW10
MASK BUF2
AD BUF2 +1
TC Q
SUPDACAL TS MPTEMP
XCH FBANK # SET FBANK FOR DATA.
EXTEND
ROR SUPERBNK # SAVE FBANK IN BITS 15-11, AND
XCH MPTEMP # SUPERBANK IN BITS 7-5.
MASK LOW10
XCH L # SAVE REL. ADR. IN BANK, FETCH SUPERBITS.
INHINT # BECAUSE RUPT DOES NOT SAVE SUPERBANK.
EXTEND
WRITE SUPERBNK # SET SUPERBANK FOR DATA.
INDEX L
CA 10000 # PINBALL (FIX MEM DISP) PREVENTS DCA HERE
XCH MPTEMP # SAVE 1ST WD, FETCH OLD FBANK AND SBANK.
EXTEND
WRITE SUPERBNK # RESTORE SUPERBANK.
RELINT
TS FBANK # RESTORE FBANK.
CA MPTEMP # RECOVER FIRST WORD OF DATA.
RETURN # 24 WDS. DATACALL 516 MU, SUPDACAL 432 MU
# Page 1105
# THE FOLLOWING ROUTINES ARE IDENTICAL TO BANKCALL AND SWCALL EXCEPT THAT THEY ARE USED IN INTERRUPT.
IBNKCALL DXCH RUPTREG3 # USES RUPTREG3,4 FOR DP RETURN ADDRESS.
INDEX Q
# Was CAF --- RSB 2009
CA 0
INCR Q
ISWCALL TS L
LXCH FBANK
MASK LOW10
XCH Q
DXCH RUPTREG3
INDEX Q
TC 10000
ISWRETRN XCH RUPTREG4
XCH FBANK
XCH RUPTREG4
TC RUPTREG3
# 2. USPRCADR ACCESSES INTERPRETIVE CODING IN OTHER THAN THE USER'S FBANK. THE CALLING SEQUENCE IS AS FOLLOWS:
# L TC USPRCADR
# L+1 CADR INTPRETX # INTPRETX IS THE INTERPRETIVE CODING
# # RETURN IS TO L+2
USPRCADR TS LOC # SAVE A
CA BIT8
TS EDOP # EXIT INSTRUCTION TO EDOP
CA BBANK
TS BANKSET # USER'S BBANK TO BANKSET
INDEX Q
CA 0
TS FBANK # INTERPRETIVE BANK TO FBANK
MASK LOW10 # YIELDS INTERPRETIVE RELATIVE ADDRESS
XCH Q # INTERPRETIVE ADDRESS TO Q, FETCHING L+1
XCH LOC # L+1 TO LOC, RETRIEVING ORIGINAL A
TCF Q+10000
# Page 1106
# THERE ARE FOUR POSSIBLE SETTINGS FOR CHANNEL 07. (CHANNEL 07 CONTAINS SUPERBANK SETTING.)
#
# PSEUDO-FIXED OCTAL PSEUDO
# SUPERBANK SETTING S-REG. VALUE BANK NUMBERS ADDRESSES
# ---------- ------- ------------ ------------ ------------
# SUPERBANK 3 0XX 2000 - 3777 30 - 37 70000 - 107777 (WHERE XX CAN BE ANYTHING AND
# WILL USUALLY BE SEEN AS 11)
# SUPERBANK 4 100 2000 - 3777 40 - 47 110000 - 127777 (AS FAR AS IT CAN BE SEEN,
# ONLY BANKS 40-43 WILL EVER BE
# AND ARE PRESENTLY AVAILABLE)
# SUPERBANK 5 101 2000 - 3777 50 - 57 130000 - 147777 (PRESENTLY NOT AVAILABLE TO
# THE USER)
# SUPERBANK 6 110 2000 - 3777 60 - 67 150000 - 167777 (PRESENTLY NOT AVAILABLE TO
# THE USER)
# *** THIS ROUTINE MAYBE CALLED BY ANY PROGRAM LOCATED IN BANKS 00 - 27. I.E., NO PROGRAM LIVING IN ANY
# SUPERBANK SHOULD USE SUPERSW. ***
#
# SUPERSW MAYBE CALLED IN THIS FASHION:
# CAF ABBCON WHERE -- ABBCON BBCON SOMETHIN --
# TCR SUPERSW (THE SUPERBNK BITS ARE IN THE BBCON)
# ... ...
# . .
# . .
# OR IN THIS FASHION :
# CAF SUPERSET WHERE SUPERSET IS ONE OF THE FOUR AVAILABLE
# TCR SUPERSW SUPERBANK BIT CONSTANTS:
# ... ... SUPER011 OCTAL 60
# . . SUPER100 OCTAL 100
# . . SUPER101 OCTAL 120
# SUPER110 OCTAL 140
SUPERSW EXTEND
WRITE SUPERBNK # WRITE BITS 7-6-5 OF THE ACCUMULATOR INTO
# CHANNEL 07
TC Q # TC TO INSTRUCTION FOLLOWING
# TC SUPERSW

File diff suppressed because it is too large Load Diff

View File

@ -1,82 +0,0 @@
# Copyright: Public domain.
# Filename: INTERPRETIVE_CONSTANTS.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1205-1206
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1205
SETLOC INTPRET1
BANK
COUNT 23/ICONS
DP1/4TH 2DEC .25
UNITZ 2DEC 0
UNITY 2DEC 0
UNITX 2DEC .5
ZEROVECS 2DEC 0
2DEC 0
2DEC 0
DPHALF = UNITX
DPPOSMAX OCT 37777
OCT 37777
# Page 1206
# INTERPRETIVE CONSTANTS IN THE OTHER HALF-MEMORY
SETLOC INTPRET2
BANK
COUNT 14/ICONS
ZUNIT 2DEC 0
YUNIT 2DEC 0
XUNIT 2DEC .5
ZEROVEC 2DEC 0
2DEC 0
2DEC 0
OCT 77777 # -0,-6,-12 MUST REMAIN IN THIS ORDER
DEC-6 DEC -6
DEC-12 DEC -12
LODPMAX 2OCT 3777737777 # THESE TWO CONSTANTS MUST REMAIN
LODPMAX1 2OCT 3777737777 # ADJACENT AND THE SAME FOR INTEGRATION
ZERODP = ZEROVEC
HALFDP = XUNIT

View File

@ -1,122 +0,0 @@
# Copyright: Public domain.
# Filename: INTERRUPT_LEAD_INS.agc
# Purpose: Part of the source code for Comanche, build 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 131-132
# Contact: Ron Burkey <info@sandroid.org>,
# Fabrizio Bernardini <fabrizio@spacecraft.it>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 09/05/09 FB Transcription of Batch FB-1 Assignment.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 131
SETLOC 4000
COUNT 02/RUPTS
INHINT # GO
CAF GOBB
XCH BBANK
TCF GOPROG
DXCH ARUPT # T6RUPT
EXTEND
DCA T6LOC
DTCB
DXCH ARUPT # T5RUPT
CS TIME5
AD .5SEC
TCF T5RUPT
DXCH ARUPT # T3RUPT
CAF T3RPTBB
XCH BBANK
TCF T3RUPT
DXCH ARUPT # T4RUPT
CAF T4RPTBB
XCH BBANK
TCF T4RUPT
DXCH ARUPT # KEYRUPT1
CAF KEYRPTBB
XCH BBANK
TCF KEYRUPT1
DXCH ARUPT # KEYRUPT2
CAF MKRUPTBB
XCH BBANK
TCF MARKRUPT
DXCH ARUPT # UPRUPT
CAF UPRPTBB
XCH BBANK
TCF UPRUPT
DXCH ARUPT # DOWNRUPT
CAF DWNRPTBB
XCH BBANK
TCF DODOWNTM
DXCH ARUPT # RADAR RUPT
# Page 132
CAF RDRPTBB
XCH BBANK
TCF VHFREAD
DXCH ARUPT # HAND CONTROL RUPT
CAF HCRUPTBB
XCH BBANK
TCF RESUME +3 # NOT USED
EBANK= LST1 # RESTART USES E0,E3
GOBB BBCON GOPROG
EBANK= LST1
T3RPTBB BBCON T3RUPT
EBANK= KEYTEMP1
KEYRPTBB BBCON KEYRUPT1
EBANK= MRKBUF1
MKRUPTBB BBCON MARKRUPT
UPRPTBB = KEYRPTBB
EBANK= DNTMBUFF
DWNRPTBB BBCON DODOWNTM
EBANK= DATATEST
RDRPTBB BBCON VHFREAD
EBANK= TIME1
HCRUPTBB BBCON RESUME # NOT USED
EBANK= DSRUPTSW
T4RPTBB BBCON T4RUPT
EBANK= TIME1
T5RPTBB BBCON T5RUPT
T5RUPT EXTEND
BZMF NOQBRSM
EXTEND
DCA T5LOC
DTCB

View File

@ -1,920 +0,0 @@
# Copyright: Public domain.
# Filename: JET_SELECTION_LOGIC.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1039-1062
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1039
BANK 21
SETLOC DAPS4
BANK
COUNT 17/DAPJS
EBANK= KMPAC
# EXAMINE CHANNEL 31 FOR TRANSLATION COMMANDS
JETSLECT LXCH BANKRUPT
CAF DELTATT3 # = 60 MS RESET TO EXECUTE PHASE1
AD T5TIME
TS TIME5
TCF +3
CAF DELATT20 # = 20 MS TO ASSURE A T5RUPT
TS TIME5
CAF =14MS # RESET T6 TO INITIALIZE THE JET CHANNELS
TS TIME6 # IN 14 MS
CAF NEGMAX
EXTEND
WOR CHAN13
EXTEND
QXCH QRUPT
CAF XLNMASK # = 7700 OCT
EXTEND # EXAMINE THE TRANSLATION
RXOR CHAN31 # HAND CONTROLLER
MASK XLNMASK
EXTEND
BZF NOXLNCMD
TS T5TEMP
EXTEND
MP BIT9
MASK THREE
TS XNDX1 # AC QUAD X-TRANSLATION INDEX
TS XNDX2 # BD QUAD X-TRANSLATION INDEX
CA T5TEMP
EXTEND # 1 = + XLN
MP BIT7 # 2 = - XLN
MASK THREE # 3 = NO XLN
TS YNDX # Y-TRANSLATION INDEX
CA T5TEMP
EXTEND
MP BIT5
MASK THREE
TS ZNDX # Z-TRANSLATION INDEX
CA DAPDATR1 # SET ATTKALMN TO PICK UP FILTER GAINS FOR
MASK BIT14 # TRANSLATIONS.
EXTEND # CHECK DAPDATR1 BIT 14 FOR LEM ATTACHED.
# Page 1040
BZF NOLEM
CS THREE # IF LEM IS ON, SET ATTKALMN = -3
TCF +2
NOLEM CS TWO # IF LEM IS OFF, SET ATTKALMN = -2.
TS ATTKALMN
CCS XTRANS # (+, -1, 0)
TS XNDX1 # USING BD-X ZERO XNDX1
TCF PWORD
TS XNDX2 # USING AC-X ZERO XNDX2
TCF PWORD
XLNMASK OCT 7700
DELTATT3 DEC 16378 # = 60 MS
DELATT20 DEC 16382 # = 20 MS
NOXLNCMD TS XNDX1 # ZERO ALL REQUESTS FOR TRANSLATION
TS XNDX2
TS YNDX
TS ZNDX
# PITCH COMMANDS TIMING(NO X-TRANS, NO QUAD FAILS) 32MCT
PWORD CCS TAU1 # CHECK FOR PITCH COMMANDS
CAF ONE
TCF +2 # 0 = NO PITCH
CAF TWO # +1 = + PITCH
TS PINDEX # +2 = - PITCH
CCS RACFAIL # FLAG FOR REAL AC QUAD FAILURES
TCF AFAILP
TCF TABPCOM # 0 = NO REAL AC FAILURES
TCF CFAILP # + = A QUAD FAILED
TCF TABPCOM # - = C QUAD FAILED
# IF FAILURES ARE PRESENT IGNORE
# X-TRANSLATIONS ON THIS AXIS
AFAILP CAF NINE # IF FAILURE IS PRESENT 1JET OPERATION
TCF TABPCOM +2 # IS ASSUMED. IGNORE X-TRANSLATION
CFAILP CAF TWELVE
TCF TABPCOM +2
XLNNDX DEC 0 # INDICES FOR TRANSLATION COMMANDS
DEC 3 # FOR USE IN TABLE LOOK UP
DEC 6
DEC 0
TWELVE = OCT14
# TABLE LOOK UP FOR PITCH COMMANDS WITH AND WITHOUT X-TRANSLATION AND AC QUAD FAILURES PRESENT.
# BITS 9, 10 CONTAIN THE NUMBER OF PITCH JETS USED TO PERFORM THE PITCH ROTATION
# Page 1041
TABPCOM INDEX XNDX1
CA XLNNDX
AD PINDEX
INDEX A
CA PYTABLE
MASK PJETS # =1417 OCT
TS PWORD1
EXTEND
MP BIT7
TS NPJETS # = NO. OF PITCH JETS
# YAW JET COMMANDS TIMING(NO X-TRANS, NO QUAD FAILURES) 32MCT
YWORD CCS TAU2 # CHECK FOR YAW COMMANDS
CAF ONE
TCF +2
CAF TWO
TS YINDEX # YAW ROTATION INDEX
CCS RBDFAIL # FLAG FOR B OR D QUAD FAILURES
TCF BFAILY # 0 = NO BD FAILURE
TCF TABYCOM # + = B QUAD FAILED
TCF DFAILY # - = D QUAD FAILED
TCF TABYCOM
BFAILY CAF NINE
TCF TABYCOM +2
DFAILY CAF TWELVE
TCF TABYCOM +2
# Page 1042
# TABLE FOR PITCH(YAW) COMMANDS
# BITS 4,3,2,1 = PITCH, X-TRANSLATION JETS SELECTED
# BITS 10,9 = NO. PITCH JETS USED TO PERFORM ROTATION
# BITS 8,7,6,5 = YAW, X-TRANSLATION JETS SELECTED
# BITS 12,11 : NO. YAW JETS USED TO PERFORM ROTATION
# ROT TRANS QUAD BIAS
PYTABLE OCT 0 # 0 0 0
OCT 5125 # + 0 0
OCT 5252 # - 0 0
OCT 0231 # 0 + 3
OCT 2421 # + + 3
OCT 2610 # - + 3
OCT 0146 # 0 - 6
OCT 2504 # + - 6
OCT 2442 # - - 6
OCT 0 # 0 A(B) 9
OCT 2421 # + A(B) 9
OCT 2442 # - A(B) 9
OCT 0 # 0 C(D) 12
OCT 2504 # + C(D) 12
OCT 2610 # - C(D) 12
# MASKS FOR PITCH AND YAW COMMANDS
PJETS OCT 1417
YJETS OCT 6360
# TABLE LOOK UP FOR YAW COMMANDS WITH AND WITHOUT X-TRANSLATION AND AC QUAD FAILURES PRESENT
# BITS 11, 12 CONTAIN THE NUMBER OF YAW JETS USED TO PERFORM THE YAW ROTATION
TABYCOM INDEX XNDX2
CA XLNNDX
AD YINDEX
INDEX A
CA PYTABLE
MASK YJETS # = 6360 OCT
TS YWORD1
EXTEND
MP BIT5
TS NYJETS # NO. OF YAW JETS USED TO PERFORM ROTATION
# Page 1043
# ROLL COMMANDS TIMING(NO Y,Z TRANS, NO QUAD FAILS) 45MCT
RWORD CCS TAU # CHECK FOR ROLL COMMANDS
CAF ONE
TCF +2
CAF TWO
TS RINDEX
CCS ACORBD # FLAG FOR AC OR BD QUAD SELECTION FOR
TCF BDROLL # ROLL COMMANDS
TCF BDROLL # +, +0 = BD ROLL
TCF +1 # -, -0 = AC ROLL
ACROLL CCS RACFAIL # CHECK FOR REAL FAILURES
TCF RAFAIL # ON AC QUADS
TCF RXLNS
TCF RCFAIL
TCF RXLNS
RAFAIL CAF NINE # QUAD FAILURE WILL GET
TCF TABRCOM # 1-JET OPERATION
RCFAIL CAF TWELVE
TCF TABRCOM
XLN1NDX DEC 0
DEC 1 # INDECES FOR TRANSLATION
DEC 2
DEC 0
# TABLE LOOK UP FOR AC-ROLL COMMANDS WITH AND WITHOUT Y-TRANSLATION AND ACQUAD FAILURES PRESENT
# BITS 9,10,11 CONTAIN THE MAGNITUDE AND DIRECTION OF THE ROLL
RXLNS INDEX YNDX # NO AC QUAD FAILURES
CA XLNNDX # INCLUDE +,-,0, Y-TRANSLATION
TABRCOM AD RINDEX
INDEX A
CA RTABLE
MASK ACRJETS # = 3760 OCT
TS RWORD1
# CHECK FOR Z-TRANSLATIONS ON BD
BDZCHECK CA ZNDX
EXTEND
BZMF NOBDZ # NO Z-TRANSLATION
# Page 1044
# TABLE LOOK UP FOR BD Z-TRANSLATION WITH AND WITHOUT REAL BD QUAD FAILURES. Z-TRANSLATION WILL BE POSS-
# IBLE AS LONG AS ROLL COMMANDS CAN BE SATISFIED WITH THE AC ROLL JETS. CRITERION.. IF THE RESULTANT NET ROLL
# COMMANDS = 0 (WITH Z-TRANSLATION) AND IF TAU = 0, THEN INCLUDE THE BD Z-TRANSLATION COMMANDS. IF THE RESULTANT
# ROLL COMMAND = 0, AND IF TAU NZ, THEN IGNORE THE BD Z-TRANSLATION
CCS RBDFAIL
CAF THREE
TCF +2
CAF SIX
INDEX ZNDX
AD XLN1NDX
INDEX A
CA YZTABLE
MASK BDZJETS # = 3417 OCT
AD RWORD1 # ADD TO ROLL COMMANDS
TS T5TEMP # IF POSSIBLE. MUST CHECK TAU FIRST
EXTEND
MP BIT7 # DETERMINE THE NET ROLL COMMAND WITH
AD =-4 # Z-TRANSLATION ADDED ON
TS NRJETS # NET NO. OF +,- ROLL JETS ON
EXTEND
BZF TAUCHECK
ACRBDZ CA T5TEMP # Z-TRANSLATION ACCEPTED EVEN THO WE MAY
TS RWORD1 # HAVE INTRODUCED AN UNDESIREABLE ROLL
TCF ROLLTIME # BRANCH TO JET ON-TIME CALCULATIONS
TAUCHECK CCS TAU
TCF NOBDZ
TCF ACRBDZ
TCF NOBDZ
TCF ACRBDZ
NOBDZ CA RWORD1 # Z-TRANSLATION NOT ACCEPTED
EXTEND
MP BIT7
AD =-2
TS NRJETS
TCF ROLLTIME # BRANCH TO JET ON-TIME CALCULATION
# Page 1045
# BD QUAD SELECTION FOR ROLL COMMANDS
BDROLL CCS RBDFAIL
TCF RBFAIL
TCF RZXLNS
TCF RDFAIL
TCF RZXLNS
RBFAIL CAF NINE
TCF TABRZCMD
RDFAIL CAF TWELVE
TCF TABRZCMD
RZXLNS INDEX ZNDX # NO BD FAILURES
CA XLNNDX # +,-,0 Z-TRANSLATION PRESENT
TABRZCMD AD RINDEX
INDEX A
CA RTABLE
MASK BDRJETS # = 34017 OCT
TS RWORD1
ACYCHECK CA YNDX # ANY Y-TRANSLATION
EXTEND
BZF NOACY # NO Y-TRANSLATION
CCS RACFAIL
CAF THREE
TCF +2
CAF SIX
INDEX YNDX
AD XLN1NDX
INDEX A
CA YZTABLE
MASK ACYJETS # = 34360 OCT
AD RWORD1
TS T5TEMP
EXTEND # FOR EXPLANATION SEE CODING ON RTABLE
MP BIT4
AD =-4
TS NRJETS # NO. OF NET ROLL JETS
EXTEND
BZF TAUCHCK # IF NRJETS = 0
BDRACZ CA T5TEMP # Y-TRANSLATION ACCEPTED
TS RWORD1
TCF ROLLTIME # BRANCH TO JET ON-TIME CALCULATIONS
TAUCHCK CCS TAU
TCF NOACY
TCF BDRACZ
TCF NOACY
TCF BDRACZ
# Page 1046
NOACY CA RWORD1 # Y-TRANSLATION NOT ACCEPTED
EXTEND
MP BIT4
AD =-2
TS NRJETS
TCF ROLLTIME
# Page 1047
# TABLE FOR ROLL, Y AND Z-TRANSLATION COMMANDS
# EITHER AC OR BD ROLL MAY BE SELECTED. IF AC ROLL IS SELECTED, Y-TRANSLATIONS MAY BE SATISFIED SIMULTANEOUSLY
# PROVIDED THAT THERE ARE NO AC QUAD FAILURES. IF THERE ARE AC FAILURES, Y-TRANSLATION COMMANDS WILL BE IGNORED,
# IN WHICH CASE THE ASTRONAUT SHOULD SWITCH TO BD ROLL.
# IF BDROLL IS SELECTED, Z-TRANSLATIONS MAY BE SATISFIED SIMULTANEOUSLY PROVIDED THAT THERE ARE NO BD QUAD
# FAILURES. IF THERE ARE BD FAILURES, Z-TRANSLATION COMMANDS WILL BE IGNORED, IN WHICH CASE THE ASTRONAUT SHOULD
# SWITCH TO AC ROLL.
# NOTE THAT IF ONE QUAD FAILS (E.G. B FAILED), Z-TRANSLATION IS STILL POSSIBLE AND THAT THE UNDESIRABLE ROLL
# INTRODUCED BY THIS TRANSLATION WILL BE COMPENSATED BY THE TWO AC ROLL JETS ACTUATED BY THE AUTOPILOT LOGIC.
# WORD MAKE UP....RTABLE
# TWO WORDS, CORRESPONDING TO AC OR BD ROLL SELECTION, HAVE BEEN COMBINED INTO ONE TABLE. THE WORD CORRESPOND-
# ING TO AC ROLL HAS THE FOLLOWING INTERPRETATION..
# BITS 9,10,11 ARE CODED TO GIVE THE NET ROLL TORQUE FOR THE WORD SELECTED. THE CODING IS..
# BIT NO. 11 10 9 NO. OF ROLL JETS
# 0 0 0 -2
# 0 0 1 -1
# 0 1 0 0
# 0 1 1 +1
# 1 0 0 +2
# THIS WORD MAY THEN BE ADDED TO THE WORD SELECTED FROM THE YZ-TRANSLATION TABLE, WHICH HAS THE SAME TYPE OF
# CODING AS ABOVE, AND THE NET ROLL DETERMINED BY SHIFTING THE RESULTANT WORD RIGHT 8 PLACES AND SUBTRACTING FOUR.
# THE WORD CORRESPONDING TO THE BD ROLL HAS A SIMILAR INTERPRETATION, EXCEPT THAT BITS 12, 13, 14 ARE CODED
# (AS ABOVE) TO GIVE THE NET ROLL TORQUE.
# ROLL TRANS QUADFAIL BIAS
RTABLE OCT 11000 # 0 0
OCT 22125 # + 0
OCT 00252 # - 0
OCT 11231 # 0 +Y(+Z) 3
OCT 15421 # + +Y(+Z) 3
OCT 04610 # - +Y(+Z) 3
OCT 11146 # 0 -Y(-Z) 6
OCT 15504 # + -Y(-Z) 6
OCT 04442 # - -Y(-Z) 6
OCT 11000 # 0 A(B) 9
OCT 15504 # + A(B) 9
OCT 04610 # - A(B) 9
OCT 11000 # 0 C(D) 12
OCT 15421 # + C(D) 12
OCT 04442 # - C(D) 12
# Page 1048
# RTABLE MASKS -
ACRJETS OCT 03760
BDRJETS OCT 34017
# Page 1049
# Y, Z TRANSLATION TABLE
# ONCE AC OR BD ROLL IS SELECTED THE QUAD PAIR WHICH IS NOT BEING USED TO SATISFY THE ROLL COMMANDS MAY BE
# USED TO SATISFY THE REMAINING TRANSLATION COMMANDS. HOWEVER, WE MUST MAKE SURE THAT ROLL COMMANDS ARE SATISFIED
# WHEN THEY OCCUR. THEREFORE, THE Y-Z TRANSLATIONS FROM THIS TABLE WILL BE IGNORED IF THE NET ROLL TORQUE OF THE
# COMBINED WORD IS ZERO AND THE ROLL COMMANDS ARE NON-ZERO. THIS SITUATION WOULD OCCUR, FOR EXAMPLE, IF WE EN-
# COUNTER SIMULTANEOUS +R +Y -Z COMMANDS AND A QUAD D FAILURE WHILE USING AC FOR ROLL.
# TO FACILITATE THE LOGIC, THE Y-Z TRANSLATION TABLE HAS BEEN CODED IN A MANNER SIMILAR TO THE ROLL TABLE
# ABOVE.
# BITS 9,10,11 ARE CODED TO GIVE THE NET ROLL TORQUE INCURRED BY Z-TRANSLATIONS. THE WORD SELECTED CAN THEN BE
# ADDED TO THE AC-ROLL WORD AND THE RESULTANT ROLL TORQUE DETERMINED FROM THE COMBINED WORD. SIMILIARLY BITS
# 12,13,14 ARE CODED TO GIVE THE NET ROLL TORQUE INCURRED BY Y-TRANSLATIONS WHEN BD-ROLL IS SELECTED.
# TRANSLATION QUADFAIL BIAS
#
YZTABLE OCT 11000 # 0 0
OCT 11231 # +Z(+Y) 0
OCT 11146 # -Z(-Y) 0
OCT 11000 # 0 B(A) 3
OCT 04610 # +Z(+Y) B(A) 3
OCT 15504 # -Z(-Y) B(A) 3
OCT 11000 # 0 D(C) 6
OCT 15421 # +Z(+Y) D(C) 6
OCT 04442 # -Z(-Y) D(C) 6
# YZ-TABLE MASKS-
BDZJETS OCT 03417
ACYJETS OCT 34360
# ADDITIONAL CONSTANTS
=-2 = NEG2
=-4 = NEG4
# Page 1050
# CALCULATION OF JET ON-TIMES
#
# THE ROTATION COMMANDS (TAU:S), WHICH WERE DETERMINED FROM THE JET SWITCHING LOGIC ON THE BASIS OF SINGLE JET
# OPERATION, MUST NOW BE UPDATED BY THE ACTUAL NUMBER OF JETS TO BE USED IN SATISFYING THESE COMMANDS. TAU MUST
# ALSO BE DECREMENTED ACCORDING TO THE EXPECTED TORQUE GENERATED BY THE NEW COMMANDS ACTING OVER THE NEXT T5 INT-
# ERVAL.
# IN ORDER TO MAINTAIN ACCURATE KNOWLEDGE OF VEHICLE ANGULAR RATES, WE MUST ALSO PROVIDE EXPECTED FIRING TIMES
# (DFT:S, ALSO IN TERMS OF 1-JET OPERATION) FOR THE RATE FILTER.
# NOTE THAT TRANSLATIONS CAN PRODUCE ROTATIONS EVEN THOUGH NO ROTATIONS WERE CALLED FOR. NEVERTHELESS, WE MUST
# UPDATE DFT.
# WHEN THE ROTATIONS HAVE FINISHED, WE MUST PROVIDE CHANNEL INFORMATION TO THE T6 PROGRAM TO CONTINUE ON WITH
# THE TRANSLATIONS. THIS WILL BE DONE IN THE NEXT SECTION. HOWEVER, TO INSURE THAT JETS ARE NOT FIRED FOR LESS
# THAN A MINIMUM IMPULSE (14MS), ALL JET CHANNEL COMMANDS WILL BE HELD FIXED FROM THE START OF THE T5 PROGRAM FOR
# ATLEAST 14MS UNTIL THE INITIALIZATION OF NEW COMMANDS. MOREOVER, A 14MS ON-TIME WILL BE ADDED TO ANY ROTATIONAL
# COMMANDS GENERATED BY THE MANUAL CONTROLS OR THE JET SWITCHING LOGIC, AND ALL TRANSLATION COMMANDS WILL BE
# ACTIVE FOR ATLEAST ONE CYCLE OF THE T5 PROGRAM (.1SEC)
# PITCH JET ON-TIME CALCULATION
PITCHTIM CCS TAU1
TCF PTAUPOS
TCF +2
TCF PTAUNEG
TS DFT1 # NO PITCH ROTATION
TCF PBYPASS # COMMANDS
PTAUNEG CS NPJETS
TS NPJETS
PTAUPOS CA TAU1
EXTEND
INDEX NPJETS
MP NJET
TS BLAST1
AD =-.1SEC
EXTEND
BZMF AD14MSP
INDEX NPJETS
CA DFTMAX # THE PITCH ON-TIME IS GREATER THAN .1 SEC
TS DFT1
COM
ADS TAU1 # UPDATE TAU1
CAF =+.1SEC # LIMIT THE LENGTH OF PITCH ROTATION
TS BLAST1 # COMMANDS TO 0.1 SEC SO THAT ONLY
TCF ASMBLWP # X-TRANSLATIONS WILL CONTINUE ON SWITCH
# OVER TO TVC
AD14MSP CS BLAST1 # SEE IF JET ON TIME IS LESS THAN
AD =14MS # MINIMUM IMPULSE TIME
EXTEND
BZMF PBLASTOK # IF SO LIMIT MINIMUM ON TIME TO 14 MS
CAF =14MS
# Page 1051
TS BLAST1
PBLASTOK CA BLAST1
EXTEND # THE PITCH COMMANDS WILL BE COMPLETED
MP NPJETS # WITHIN THE TS-CYCLE TIME
LXCH DFT1 # FOR USE IN UPDATING RATE FILTER
TS TAU1 # ZERO TAU1 (ACC CONTAINS ZERO)
TCF ASMBLWP
# Page 1052
# YAW JET ON-TIME CALCULATION
YAWTIME CCS TAU2
TCF YTAUPOS
TCF +2
TCF YTAUNEG
TS DFT2 # NO YAW ROTATION COMMANDS
TCF YBYPASS
YTAUNEG CS NYJETS
TS NYJETS
YTAUPOS CA TAU2
EXTEND
INDEX NYJETS
MP NJET
TS BLAST2
AD =-.1SEC
EXTEND
BZMF AD14MSY
INDEX NYJETS
CA DFTMAX # YAW COMMANDS WILL LAST LONGER THAN .1SEC
TS DFT2
COM
ADS TAU2 # DECREMENT TAU2
CAF =+.1SEC # LIMIT THE LENGTH OF YAW ROTATION COMMAND
TS BLAST2 # TO 0.1 SEC SO THAT ONLY X-TRANSLATION
TCF ASMBLWY # WILL CONTINUE ON SWITCH OVER TO TVC
AD14MSY CS BLAST2 # SEE IF JET ON-TIME LESS THAN
AD =14MS # MINIMUM IMPULSE TIME
EXTEND
BZMF YBLASTOK # IF SO, LIMIT MINIMUM ON-TIME TO 14 MS
CAF =14MS
TS BLAST2
YBLASTOK CA BLAST2 # YAW COMMANDS WILL BE COMPLETED WITHIN
EXTEND # THE T5CYCLE TIME
MP NYJETS
LXCH DFT2
TS TAU2 # ZERO TAU2
TCF ASMBLWY
# Page 1053
# ROLL ON-TIME CALCULATION-
ROLLTIME CCS TAU
TCF RBLAST
TCF +2
TCF RBLAST
INDEX NRJETS
CA DFTMAX # UPDATE DFT EVEN THO NO ROLL COMMANDS ARE
TS DFT # PRESENT
TCF RBYPASS
DEC -480 # = -.3SEC
DEC -320 # = -.2SEC
=-.1SEC DEC -160 # = -.1SEC
DFTMAX DEC 0 # 0
=+.1SEC DEC 160 # = +.1SEC
DEC 320 # = +.2SEC
DEC 480 # = +.3SEC
=14MS DEC 23 # =14MS
RBLAST CA TAU
EXTEND
INDEX NRJETS
MP NJET
TS BLAST # BLAST IS AN INTERMEDIATE VARIABLE
# USED IN DETERMINING THE JET ON-TIMES
AD =-.1SEC
EXTEND
BZMF AD14MSR
INDEX NRJETS # THE ROLL ROTATION WILL LAST LONGER
CA DFTMAX # THAN THE T5 CYCLE TIME
TS DFT
COM
ADS TAU
CAF =+.1SEC # LIMIT THE LENGTH OF ROLL ROTATION
TS BLAST # COMMANDS TO 0.1 SEC SO THAT ONLY Y-Z
TCF ASMBLWR # TRANSLATION COMMANDS CONTINUE
AD14MSR CS BLAST # SEE IF THE JET ON-TIME LESS THAN
AD =14MS # MINIMUM IMPULSE TIME
EXTEND
BZMF RBLASTOK
CAF =14MS # IF SO, LIMIT MINIMUM ON-TIME TO 14 MS
TS BLAST
RBLASTOK CA BLAST
EXTEND
MP NRJETS
LXCH DFT
TS TAU # ZERO TAU
TCF ASMBLWR
# Page 1054
DEC -.333333 # = -1/3
DEC -.500000 # = -1/2
DEC -.999999 # = -1 (NEGMAX)
NJET DEC 0
DEC .999999 # = +1 (POSMAX)
DEC .500000 # = +1/2
DEC .333333 # = +1/3
# Page 1055
# WHEN THE ROTATION COMMANDS ARE COMPLETED, IT IS NECESSARY TO REPLACE THESE COMMANDS BY NEW COMMANDS WHICH
# CONTINUE ON WITH THE TRANSLATIONS IF ANY ARE PRESENT.
# IN THIS SECTION THESE NEW COMMANDS ARE GENERATED AND STORED FOR REPLACEMENT OF THE CHANNEL COMMANDS WHEN THE
# CORRESPONDING ROTATIONS ARE COMPLETED.
# GENERATION OF THE SECOND PITCH(X-TRANS) WORD...PWORD2
ASMBLWP CCS RACFAIL
TCF FPX2 # IF FAILURE ON AC IGNORE X-TRANSLATION
TCF +2
TCF FPX2
INDEX XNDX1
CA XLNNDX
INDEX A
FPX2 CA PYTABLE
MASK PJETS
TS PWORD2
TCF YAWTIME
PBYPASS CA PWORD1 # THE T6 PROGRAM WILL LOAD PWORD2
TS PWORD2 # UPON ENTRY
CAF ZERO
TS BLAST1 # THERE IS NO PWORD2
TCF YAWTIME
# Page 1056
# GENERATION OF THE SECOND ROLL (Y,Z) WORD (RWORD2)
ASMBLWR CCS YNDX # CHECK FOR Y-TRANS
TCF ACBD2Y
NO2Y CAF ZERO
TS RWORD2
CCS ZNDX # CHECK FOR Z-TRANS
TCF ACBD2Z
NO2Z CAF ZERO
ADS RWORD2
TCF PITCHTIM # RWORD2 ASSEMBLED
ACBD2Y CCS ACORBD
TCF AC2Y # CAN DO Y-TRANS
TCF AC2Y
TCF +1 # USING AC FOR ROLL
CCS RACFAIL
TCF NO2Y # USING AC AND AC HAS FAILED
TCF +2
TCF NO2Y # DITTO
INDEX YNDX # NO FAILURES, CAN DO Y
CA XLNNDX
INDEX A
CA RTABLE
MASK ACRJETS
TCF NO2Y +1
AC2Y CCS RACFAIL
CAF THREE
TCF +2
CAF SIX
INDEX YNDX
AD XLN1NDX
INDEX A
CA YZTABLE
MASK ACYJETS
TS RWORD2
EXTEND
MP BIT4
AD =-2
TS NRJETS
CS BLAST
AD =+.1SEC
EXTEND
MP NRJETS
CA L
ADS DFT
TCF NO2Y +2
# Page 1057
ACBD2Z CCS ACORBD
TCF BDF2Z # USING BD-ROLL
TCF BDF2Z # MUST CHECK FOR BD FAILURES
TCF +1
CCS RBDFAIL # USING AC FOR ROLL, CAN DO Z-TRANS
CAF THREE
TCF +2
CAF SIX
INDEX ZNDX
AD XLN1NDX
INDEX A
CA YZTABLE
MASK BDZJETS
ADS RWORD2
EXTEND
MP BIT7
AD =-2
TS NRJETS
CS BLAST
AD =+.1SEC
EXTEND
MP NRJETS
CA L
ADS DFT
TCF PITCHTIM
BDF2Z CCS RBDFAIL
TCF NO2Z # USING BD-ROLL AND BD HAS FAILED
TCF +2
TCF NO2Z # DITTO
INDEX ZNDX
CA XLNNDX
INDEX A
CA RTABLE
MASK BDRJETS
TCF NO2Z +1
RBYPASS CA RWORD1
TS RWORD2
CAF ZERO
TS BLAST
TCF PITCHTIM
# Page 1058
# GENERATION OF THE SECOND YAW (X-TRANS) WORD...YWORD2
ASMBLWY CCS RBDFAIL
TCF FYX2 # IF FAILURE ON BD IGNORE X-TRANSLATION
TCF +2
TCF FYX2
INDEX XNDX2
CA XLNNDX
INDEX A
FYX2 CA PYTABLE
MASK YJETS
TS YWORD2
TCF T6SETUP
YBYPASS CA YWORD1
TS YWORD2
CAF ZERO
TS BLAST2
# Page 1059
# SORT THE JET ON-TIMES
# AT THIS POINT ALL THE CHANNEL COMMANDS AND JET ON-TIMES HAVE BEEN DETERMINED. IN SUMMARY THESE ARE-
# RWORD1
# RWORD2 BLAST
# PWORD1
# PWORD2 BLAST1
# YWORD1
# YWORD2 BLAST2
# IN THIS SECTION THE JET ON-TIMES ARE SORTED AND THE SEQUENCE OF T6 INTERRUPTS IS DETERMINED. TO FACILITATE
# THE SORTING PROCESS AND THE T6 PROGRAM, THE VARIABLES BLAST, BLAST1, BLAST2, ARE RESERVED AS DOUBLE PRECISION
# WORDS. THE LOWER PART OF THESE WORDS CONTAIN A BRANCH INDEX ASSOCIATED WITH THE ROTATION AXIS OF THE HIGHER
# ORDER WORD.
T6SETUP CAF ZERO # BRANCH INDEX FOR ROLL
TS BLAST +1
CAF FOUR # BRANCH INDEX FOR PITCH
TS BLAST1 +1
CAF ELEVEN # BRANCH INDEX FOR YAW
TS BLAST2 +1
CS BLAST
AD BLAST1
EXTEND
BZMF DXCHT12 # T1 GR T2
CHECKT23 CS BLAST1
AD BLAST2
EXTEND
BZMF DXCHT23
CALCDT6 CS BLAST1
ADS BLAST2
CS BLAST
ADS BLAST1 # END OF SORTING PROCEDURE
EXTEND # RESET T5LOC TO BEGIN PHASE1
DCA RCS2CADR
DXCH T5LOC
ENDJETS CS BIT1 # RESET BIT1 FOR INITIALIZATION OF
MASK RCSFLAGS # T6 PROGRAM
TS RCSFLAGS
CS ZERO # RESET T5PHASE FOR PHASE1
TS T5PHASE
TCF RESUME # RESUME INTERRUPTED PROGRAM
EBANK= KMPAC
RCS2CADR 2CADR RCSATT
# Page 1060
DXCHT12 DXCH BLAST
DXCH BLAST1
DXCH BLAST
TCF CHECKT23
DXCHT23 DXCH BLAST1
DXCH BLAST2
DXCH BLAST1
CS BLAST
AD BLAST1
EXTEND
BZMF +2
TCF CALCDT6
DXCH BLAST
DXCH BLAST1
DXCH BLAST
TCF CALCDT6
# Page 1061
# T6 PROGRAM AND CHANNEL SETUP
BANK 21
SETLOC DAPS5
BANK
T6START LXCH BANKRUPT
EXTEND
QXCH QRUPT
CCS TIME6 # CHECK TO SEE IF TIME6 WAS RESET
TCF RESUME # AFTER T6RUPT OCCURED(IN T5RUPT)
TCF +2 # IF SO WAIT FOR NEXT T6RUPT BEFORE
TCF RESUME # TAKING ACTION
CS RCSFLAGS
MASK BIT1 # IF BIT1 IS 0 RESET TO 1
EXTEND # AND INITIALIZE CHANNEL
BZF T6RUPTOR
ADS RCSFLAGS
CA RWORD1
EXTEND # INITIALIZE CHANNELS 5,6 WITH WORD1
WRITE CHAN6
CA PWORD1
AD YWORD1
EXTEND
WRITE CHAN5
T6RUPTOR CCS BLAST
TCF ZBLAST # ZERO BLAST1
TCF REPLACE # REPLACE WORD1
TCF +2
TCF REPLACE
T6L1 CCS BLAST1
TCF ZBLAST1
TCF REPLACE1
TCF +2
TCF REPLACE1
T6L2 CCS BLAST2
TCF ZBLAST2
TCF REPLACE2
TCF RESUME
TCF REPLACE2
REPLACE INDEX BLAST +1
TC REPLACER
CS ONE
TS BLAST
TCF T6L1
REPLACE1 INDEX BLAST1 +1
# Page 1062
TC REPLACER
CS ONE
TS BLAST1
TCF T6L2
REPLACE2 INDEX BLAST2 +1
TC REPLACER
CS ONE
TS BLAST2
TCF RESUME
REPLACER CA RWORD2
EXTEND # INITIALIZE CHANNELS 5,6 WITH WORD2
WRITE CHAN6
TC Q
REPLACEP CA YJETS
EXTEND
RAND CHAN5
AD PWORD2
EXTEND
WRITE CHAN5
TC Q
REPLACEY CA PJETS
EXTEND
RAND CHAN5
AD YWORD2
EXTEND
WRITE CHAN5
TC Q
ZBLAST CAF ZERO
XCH BLAST
TCF ENABT6
ZBLAST1 CAF ZERO
XCH BLAST1
TCF ENABT6
ZBLAST2 CAF ZERO
XCH BLAST2
ENABT6 TS TIME6
CAF NEGMAX
EXTEND
WOR CHAN13 # ENABLE T6RUPT
TCF RESUME
# END OF T6 INTERRUPT
ENDSLECT EQUALS

View File

@ -1,265 +0,0 @@
# Copyright: Public domain.
# Filename: KALCMANU_STEERING.agc
# Purpose: Part of the source code for Comanche, build 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 414-419
# Contact: Onno Hommes <ohommes@cmu.edu>.
# Website: www.ibiblio.org/apollo.
# Mod history: 05/07/09 OH Transcription Batch 1 Assignment
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further information.
# Please report any errors to info@sandroid.org.
# Page 414
# GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
#
# NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
BANK 15
SETLOC KALCMON1
BANK
EBANK= BCDU
COUNT 22/KALC
NEWDELHI CS HOLDFLAG # SEE IF MANEUVER HAS BEEN INTERRUPTED
EXTEND # BY ASTRONAUT
BZMF NOGO -2 # IF SO, TERMINATE KALCMANU
NEWANGL TC INTPRET
AXC,1 AXC,2
MIS # COMPUTE THE NEW MATRIX FROM S/C TO
DEL # STABLE MEMBER AXES
CALL
MXM3
VLOAD STADR
STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES
STADR
STOVL MIS +6D
STADR
STORE MIS
AXC,1 CALL
MIS
DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX
RTB
V1STO2S
STORE NCDU # NEW CDU ANGLES
BONCLR EXIT
CALCMAN2
MANUSTAT # TO START MANEUVER
CAF TWO # +0 OTHERWISE
INCRDCDU TS KSPNDX
DOUBLE
TS KDPNDX
INDEX KSPNDX
CA NCDU # NEW DESIRED CDU ANGLES
EXTEND
INDEX KSPNDX
MSU BCDU # INITIAL S/C ANGLE OR PREVIOUS DESIRED
EXTEND # CDU ANGLES
MP QUADROT
INDEX KDPNDX
DXCH DELCDUX # ANGEL INCREMENTS TO BE ADDED TO
# Page 415
INDEX KSPNDX # DCDU EVERY TENTH SEC
CA NCDU # BY LEM DAP
INDEX KSPNDX
XCH BCDU
INDEX KDPNDX
TS CDUXD
CCS KSPNDX
TCF INCRDCDU # LOOP FOR THREE AXES
RELINT
# COMPARE PRESENT TIME WITH TIME TO TERMINATE MANEUVER
TMANUCHK TC TIMECHK
TC POSTJUMP
CADR CONTMANU
CAF ONE
MANUSTAL TC WAITLIST
EBANK= BCDU
2CADR MANUSTOP
RELINT
TCF ENDOFJOB
TIMECHK EXTEND
DCS TIME2
DXCH TTEMP
EXTEND
DCA TM
DAS TTEMP
CCS TTEMP
TC Q
TCF +2
TCF 2NDRETRN
CCS TTEMP +1
TC Q
TCF MANUOFF
COM
MANUOFF AD 1SEC
EXTEND
BZMF 2NDRETRN
INCR Q
2NDRETRN INCR Q
INCR Q
TC Q
SETLOC MANUSTUF
BANK
# Page 416
MANUSTAT EXIT # INITIALIZATION ROUTINE
EXTEND # FOR AUTOMATIC MANEUVERS
DCA TIME2
DAS TM # TM+T0 MANEUVER COMPLETION TIME
CS 1SEC
TS L
CS ZERO
DAS TM # (TM+T0)-1
INHINT
CS ONE # ENABLE AUTOPILOT TO PERFORM
TS HOLDFLAG # AUTOMATIC MANEUVERS
CS RATEINDX # SEE IF MANEUVERING AT HIGH RATE
AD SIX
EXTEND
BZMF HIGHGAIN
TCF +4
HIGHGAIN CS RCSFLAGS # IF SO, SET HIGH RATE FLAG (BIT 15 OF
MASK BIT15 # RCSFLAGS)
ADS RCSFLAGS
DXCH BRATE # X-AXIS MANEUVER RATE
DXCH WBODY
DXCH BRATE +2 # Y-AXIS MANEUVER RATE
DXCH WBODY1
DXCH BRATE +4 # Z-AXIS MANEUVER RATE
DXCH WBODY2
CA BIASTEMP +1 # INSERT ATTITUDE ERROR BIASES
TS BIAS # INTO AUTOPILOT
CA BIASTEMP +3
TS BIAS1
CA BIASTEMP +5
TS BIAS2
CA TIME1
AD 1SEC
XCH NEXTIME
TC POSTJUMP
CADR INCRDCDU -1
CONTMANU INHINT # CONTINUE WITH UPDATE PROCESS
CS TIME1
AD NEXTIME
CCS A
AD ONE
TCF MANUCALL
AD NEGMAX
COM
MANUCALL TC WAITLIST
EBANK= BCDU
2CADR UPDTCALL
RELINT
# Page 417
CAF 1SEC # INCREMENT TIME FOR NEXT UPDATE
ADS NEXTIME
TCF ENDOFJOB
UPDTCALL CAF PRIO26 # CALL FOR UPDATE
TC FINDVAC # OF STEERING COMMANDS
EBANK= BCDU
2CADR NEWDELHI
TC TASKOVER
# Page 418
# ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
SETLOC KALCMON3
BANK
MANUSTOP TC STOPYZ
TC IBNKCALL
CADR LOADYZ
ENDROLL CA CPHI
TS CDUXD # SET CDUXD TO THE COMMANDED OUTER GIMBAL
TC STOPRATE
ENDMANU CA ATTPRIO # RESTORE USERS PRIORITY
TS NEWPRIO
CA ZERO # ZERO ATTCADR
DXCH ATTCADR
TC SPVAC # RETURN TO USER OF GOMANUR
TC TASKOVER
SETLOC STOPRAT
BANK
STOPRATE CAF ZERO
TS DELCDUX
TS DELCDUX +1 # ZERO ROLL INCREMENTAL ANGLES
TS WBODY # RATE
TS WBODY +1
TS BIAS # BIAS
CS BIT15 # MAKE SURE HIGH RATE FLAG (BIT 15 OF
MASK RCSFLAGS # RCSFLAGS) IS RESET.
TS RCSFLAGS
STOPYZ CAF ZERO
TS DELCDUY # ZERO PITCH, YAW
TS DELCDUY +1 # INCREMENTAL ANGLES
TS DELCDUZ
TS DELCDUZ +1
TS WBODY1 # RATES
TS WBODY1 +1
TS WBODY2
TS WBODY2 +1
TS BIAS1 # BIASES
TS BIAS2
TC Q
SETLOC MANUSTUF
BANK
# Page 419
ZEROERROR CA CDUX # PICK UP CDU ANGLES AND STORE IN
TS CDUXD # CDU DESIRED
CA CDUY
TS CDUYD
CA CDUZ
TS CDUZD
TC Q
SETLOC KALCMON1
BANK
LOADCDUD CA CPHI # STORE TERMINAL ANGLES INTO
TS CDUXD # COMMAND ANGLES
LOADYZ CA CTHETA
TS CDUYD
CA CPSI
TS CDUZD
TC Q

View File

@ -1,136 +0,0 @@
# Copyright: Public domain.
# Filename: KEYRUPT_UPRUPT.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1449-1451
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-07 RSB Adapted from Colossus249 file of the same
# name, and page images. Corrected various
# typos in the transcription of program
# comments, and these should be back-ported
# to Colossus249.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1449
BANK 14
SETLOC KEYRUPT
BANK
COUNT* $$/KEYUP
KEYRUPT1 TS BANKRUPT
XCH Q
TS QRUPT
TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
CAF LOW5
EXTEND
RAND MNKEYIN # CHECK IF KEYS 5M-1M ON
KEYCOM TS RUPTREG4
CS FLAGWRD5
MASK BIT15
ADS FLAGWRD5
ACCEPTUP CAF CHRPRIO # (NOTE: RUPTREG4 = KEYTEMP1)
TC NOVAC
EBANK= DSPCOUNT
2CADR CHARIN
CA RUPTREG4
INDEX LOCCTR
TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
TC RESUME
# Page 1450
# UPRUPT PROGRAM
UPRUPT TS BANKRUPT
XCH Q
TS QRUPT
TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
CAF ZERO
XCH INLINK
TS KEYTEMP1
CAF BIT3 # TURN ON UPACT LIGHT
EXTEND # (BIT 3 OF CHANNEL 11)
WOR DSALMOUT
UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
MASK KEYTEMP1 # LOW5 OF WORD
XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
EXTEND
MP BIT10 # SHIFT RIGHT 5
TS KEYTEMP2
MASK LOW5 # MID 5
AD HI10
TC UPTEST
CAF BIT10
EXTEND
MP KEYTEMP2 # SHIFT RIGHT 5
MASK LOW5 # HIGH 5
COM
TC UPTEST
UPOK CS ELRCODE # CODE IS GOOD. IF CODE = 'ERROR RESET',
AD KEYTEMP1 # CLEAR UPLOCKFL(SET BIT4 OF FLAGWRD7 = 0)
EXTEND # IF CODE DOES NOT = 'ERROR RESET', ACCEPT
BZF CLUPLOCK # CODE ONLY IF UPLOCKFL IS CLEAR (=0).
CAF BIT4 # TEST UPLOCKFL FOR 0 OR 1.
MASK FLAGWRD7
CCS A
TC RESUME # UPLOCKFL = 1
TC ACCEPTUP # UPLOCKFL = 0
CLUPLOCK CS BIT4 # CLEAR UPLOCKFL (I.E., SET BIT 4 OF
MASK FLAGWRD7 # FLAGWRD7 = 0)
TS FLAGWRD7
TC ACCEPTUP
# CODE IS BAD
TMFAIL2 CS FLAGWRD7 # LOCK OUT FURTHER UPLINK ACTIVITY
MASK BIT4 # (BY SETTING UPLOCKFL = 1) UNTIL
ADS FLAGWRD7 # 'ERROR RESET' IS SENT VIA UPLINK.
TC RESUME
UPTEST AD KEYTEMP1
# Page 1451
CCS A
TC TMFAIL2
HI10 OCT 77740
TC TMFAIL2
TC Q
ELRCODE OCT 22
# 'UPLINK ACTIVITY LIGHT' IS TURNED OFF BY .....
# 1. VBRELDSP
# 2. ERROR RESET
# 3. UPDATE PROGRAM(P27) ENTERED BY V70,V71,V72,AND V73.
#
#
# -
# THE RECEPTION OF A BAD CODE(I.E. CCC FAILURE) LOCKS OUT FURTHER UPLINK ACTIVITY BY SETTING BIT4 OF FLAGWRD7 = 1.
# THIS INDICATION WILL BE TRANSFERRED TO THE GROUND BY THE DOWNLINK WHICH DOWNLINKS ALL FLAGWORDS.
# WHEN UPLINK ACTIVITY IS LOCKED OUT ,IT CAN BE ALLOWED WHEN THE GROUND UPLINKS AND 'ERROR RESET' CODE.
# (IT IS RECOMMENDED THAT THE 'ERROR LIGHT RESET' CODE IS PRECEEDED BY 16 BITS THE FIRST OF WHICH IS 1 FOLLOWED
# BY 15 ZEROS. THIS WILL ELIMINATE EXTRANEOUS BITS FROM INLINK WHICH MAY HAVE BEEN LEFT OVER FROM THE ORIGINAL
# FAILURE).
# UPLINK ACTIVITY IS ALSO ALLOWED(UNLOCKED) DURING FRESH START WHEN FRESH START SETS BIT4 OF FLAGWRD7 = 0.

View File

@ -1,317 +0,0 @@
# Copyright: Public domain.
# Filename: LATITUDE_LONGITUDE_SUBROUTINES.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1236-1242
# Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1236
# SUBROUTINE TO CONVERT RAD VECTOR AT GIVEN TIME TO LAT,LONG AND ALT
#
# CALLING SEQUENCE
#
# L-1 CALL
# L LAT-LONG
# SUBROUTINES USED
#
# R-TO-RP,ARCTAN,SETGAMMA,SETRE
# ERASABLE INIT. REQ.
#
# AXO,-AYO,AZO,TEPHEM (SET AT LAUNCH TIME)
# ALPHAV = POSITION VECTOR METERS B-29
# MPAC-- TIME (CSECS B-28)
# ERADFLAG =1, TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
# LUNAFLAG=0 FOR EARTH,1 FOR MOON
# OUTPUT
#
# LATITUDE IN LAT (REVS. B-0)
# LONGITUDE IN LONG (REVS. B-0)
# ALTITUDE IN ALT METERS B-29
BANK 30
SETLOC LATLONG
BANK
COUNT 13/LT-LG
EBANK= ALPHAV
LAT-LONG STQ SETPD
INCORPEX
0D
STOVL 6D # SAVE TIME IN 6-7D FOR R-TO-RP
ALPHAV
PUSH ABVAL # 0-5D= R FOR R-TO-RP
STODL ALPHAM # ABS. VALUE OF R FOR ALT FORMULA BELOW
ZEROVEC # SET MPAC=0 FOR EARTH,NON-ZERO FOR MOON
BOFF COS # USE COS(0) TO GET NON-ZERO IN MPAC
LUNAFLAG # 0=EARTH,1=MOON
CALLRTRP
CALLRTRP CALL
R-TO-RP # RP VECTOR CONVERTED FROM R B-29
UNIT # UNIT RP B-1
STCALL ALPHAV # U2= 1/2 SINL FOR SETRE SUBR BELOW
SETGAMMA # SET GAMMA=B2/A2 FOR EARTH,=1 FOR MOON
CALL # SCALED B-1
SETRE # CALC RE METERS B-29
DLOAD DSQ
ALPHAV
PDDL DSQ
ALPHAV +2
# Page 1237
DAD SQRT
DMP SL1R
GAMRP
STODL COSTH # COS(LAT) B-1
ALPHAV +4
STCALL SINTH # SIN(LAT) B-1
ARCTAN
STODL LAT # LAT B0
ALPHAV
STODL COSTH # COS(LONG) B-1
ALPHAV +2
STCALL SINTH # SIN(LONG) B-1
ARCTAN
STODL LONG # LONG. REVS B-0 IN RANGE -1/2 TO 1/2
ALPHAM
DSU # ALT= R-RE METERS B-29
ERADM
STCALL ALT # EXIT WITH ALT METERS B-29
INCORPEX
# Page 1238
# SUBROUTINE TO CONVERT LAT,LONG.ALT AT GIVEN TIME TO RADIUS VECTOR
# CALLING SEQUENCE
# L-1 CALL
# L LALOTORV
# SUBROUTINES USED
# SETGAMMA,SETRE,RP-TO-R
# ERASABLE INIT. REQ.
# AXO,AYO,AZO,TEPHEM SET AT LAUNCH TIME
# LAT-- LATITUDE (REVS B0)
# LONG-- LONGITUDE (REVS B0)
# ALT--ALTITUDE (METERS) B-29
# MPAC-- TIME (CSECS B-28)
# ERADFLAG =1 TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
# LUNAFLAG=0 FOR EARTH,1 FOR MOON
# OUTPUT
# R-VECTOR IN ALPHAV (METERS B-29)
LALOTORV STQ SETPD # LAT,LONG,ALT TO R VECTOR
INCORPEX
0D
STCALL 6D # 6-7D= TIME FOR RP-TO-R
SETGAMMA # GAMMA=B2/A2 FOR EARTH,1 FOR MOON B-1
DLOAD SIN # COS(LONG)COS(LAT) IN MPAC
LAT # UNIT RP= SIN(LONG)COS(LAT) 2-3D
DMPR PDDL # PD 2 GAMMA*SIN(LAT) 0-1D
GAMRP
LAT # 0-1D = GAMMA*SIN(LAT) B-2
COS PDDL # PD4 2-3D=COS(LAT) B-1 TEMPORARILY
LONG
SIN DMPR # PD 2
PDDL COS # PD 4 2-3D=SIN(LONG)COS(LAT) B-2
LAT
PDDL COS # PD 6 4-5D=COS(LAT) B-1 TEMPORARILY
LONG
DMPR VDEF # PD4 MPAC= COS(LONG)COS(LAT) B-2
UNIT PUSH # 0-5D= UNIT RP FOR RP-TO-R SUBR.
STCALL ALPHAV # ALPHAV +4= SINL FOR SETRE SUBR.
SETRE # RE METERS B-29
DLOAD BOFF # SET MPAC=0 FOR EARTH,NON-ZERO FOR MOON
ZEROVEC
LUNAFLAG
CALLRPRT
COS # USE COS(0) TO GET NON-ZERO IN MPAC
CALLRPRT CALL
RP-TO-R # EXIT WITH UNIT R VECTOR IN MPAC
STODL ALPHAV
ERADM
# Page 1239
DAD VXSC # (RE + ALT)(UNIT R) METERS B-30
ALT
ALPHAV
VSL1 # R METERS B-29
STCALL ALPHAV # EXIT WITH R IN METERS B-29
INCORPEX
# SUBROUTINE TO COMPUTE EARTH RADIUS
# INPUT
# 1/2 SIN LAT IN ALPHAV +4
# OUTPUT
# EARTH RADIUS IN ERADM AND MPAC (METERS B-29)
GETERAD DLOAD DSQ
ALPHAV +4 # SIN**2(L)
SL1 BDSU
DP1/2 # COS**2(L)
DMPR BDSU
EE
DP1/2
BDDV SQRT
B2XSC
SR4R
STORE ERADM
RVQ
# THE FOLLOWING CONSTANTS WERE COMPUTED WITH A=6378166,B=6356784 METERS
# B2XSC= B**2 SCALED B-51
# B2/A2= B**2/A**2 SCALED B-1
# EE=(1-B**2/A**2) SCALED B-0
B2XSC 2DEC .0179450689 # B**2 SCALED B-51
DP1/2 = XUNIT
B2/A2 2DEC .9933064884 B-1 # GAMMA= B**2/A**2 B-1
EE 2DEC 6.6935116 E-3 # (1-B**2/A**2) B-0
ERAD 2DEC 6373338 B-29 # PAD RADIUS
# Page 1240
# ARCTAN SUBROUTINE
# CALLING SEQUENCE
# SIN THETA IN SINTH B-1
# COS THETA IN COSTH B-1
# CALL ARCTAN
# OUTPUT
# ARCTAN THETA IN MPAC AND THETA B-0 IN RANGE -1/2 TO +1/2
ARCTAN BOV
CLROVFLW
CLROVFLW DLOAD DSQ
SINTH
PDDL DSQ
COSTH
DAD
BZE SQRT
ARCTANXX # ATAN=0/0 SET THETA=0
BDDV BOV
SINTH
ATAN=90
SR1 ASIN
STORE THETA
PDDL BMN
COSTH
NEGCOS
DLOAD RVQ
NEGCOS DLOAD DCOMP
BPL DAD
NEGOUT
DP1/2
ARCTANXX STORE THETA
RVQ
NEGOUT DSU GOTO
DP1/2
ARCTANXX
ATAN=90 DLOAD SIGN
LODP1/4
SINTH
STORE THETA
RVQ
2DZERO = DPZERO
# Page 1241
# ***** SETGAMMA SUBROUTINE *****
# SUBROUTINE TO SET GAMMA FOR THE LAT-LONG AND LALOTORV SUBROUTINES
# GAMMA = B**2/A**2 FOR EARTH (B-1)
# GAMMA = 1 FOR MOON (B-1)
# CALLING SEQUENCE
# L CALL
# L+1 SETGAMMA
# INPUT
# LUNAFLAG=0 FOR EARTH,=1 FOR MOON
# OUTPUT
# GAMMA IN GAMRP (B-1)
SETGAMMA DLOAD BOFF # BRANCH FOR EARTH
B2/A2 # EARTH GAMMA
LUNAFLAG
SETGMEX
SLOAD
1B1 # MOON GAMMA
SETGMEX STORE GAMRP
RVQ
GAMRP = 8D
# Page 1242
# ***** SETRE SUBROUTINE *****
# SUBROUTINE TO SET RE (EARTH OR MOON RADIUS)
# RE= RM FOR MOON
# RE= RREF FOR FIXED EARTH RADIUS OR COMPUTED RF FOR FISCHER ELLIPSOID
# CALLING SEQUENCE
# L CALL
# L+1 SETRE
# SUBROUTINES USED
# GETERAD
# INPUT
# ERADFLAG=0 FOR FIXED RE, 1 FOR COMPUTED RE
# ALPHAV +4= 1/2 SINL IF GETERAD IS CALLED
# LUNAFLAG=0 FOR EARTH,=1 FOR MOON
# OUTPUT
# ERADM= 504RM FOR MOON (METERS B-29)
# ERADM= ERAD OR COMPUTED RF FOR EARTH (METERS B-29)
SETRE STQ DLOAD
SETREX
504RM
BON DLOAD # BRANCH FOR MOON
LUNAFLAG
TSTRLSRM
ERAD
BOFF CALL # ERADFLAG=0 FOR FIXED RE,1 FOR COMPUTED
ERADFLAG
SETRXX
GETERAD
SETRXX STCALL ERADM # EXIT WITH RE OR RM METERS B-29
SETREX
TSTRLSRM BON VLOAD # ERADFLAG=0,SET R0=RLS
ERADFLAG # =1 R0=RM
SETRXX
RLS
ABVAL SR2R # SCALE FROM B-27 TO B-29
GOTO
SETRXX
SETREX = S2
504RM 2DEC 1738090 B-29 # METERS B-29 (MOON RADIUS)

View File

@ -1,198 +0,0 @@
# Copyright: Public domain.
# Filename: LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 785-788
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-12 RSB Adapted from Colossus249 file of the same
# name and Comanche 055 page images.
# 2009-07-26 RSB Added annotations related to computation
# of the ephemeral(?) polynomials.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 785
# LUNAR AND SOLAR EPHEMERIDES SUBROUTINES
#
# FUNCTIONAL DESCRIPTION
#
# THESE SUBROUTINES ARE USED TO DETERMINE THE POSITION AND VELOCITY
# VECTORS OF THE SUN AND THE MOON RELATIVE TO THE EARTH AT THE
# SPECIFIED GROUND ELAPSED TIME INPUT BY THE USER.
#
# THE POSITION OF THE MOON IS STORED IN THE COMPUTER IN THE FORM OF
# A NINTH DEGREE POLYNOMIAL APPROXIMATION WHICH IS VALID OVER A 15
# DAY INTERVAL BEGINNING SHORTLY BEFORE LAUNCH. THEREFORE THE TIME
# INPUT BY THE USER SHOULD FALL WITHIN THIS 15 DAY INTERVAL.
#
# LSPOS COMPUTES THE POSITION VECTORS OF THE SUN AND THE MOON.
#
# LUNPOS COMPUTES THE POSITION VECTOR OF THE MOON.
#
# LUNVEL COMPUTES THE VELOCITY VECTOR OF THE MOON.
#
# SOLPOS COMPUTES THE POSITION VECTOR OF THE SUN.
#
# CALLING SEQUENCE
#
# DLOAD CALL
# TIME GROUND ELAPSED TIME
# SUBROUTINE LSPOS OR LUNPOS OR LUNVEL OR SOLPOS
#
# INPUT
#
# 1) SPECIFIED GROUND ELAPSED TIME IN CS x B-28 LOADED IN MPAC.
#
# 2) TIMEMO - TIME AT THE CENTER OF THE RANGE OVER WHICH THE LUNAR
# POSITION POLYNOMIAL IS VALID IN CS x B-42.
#
# 3) VECOEM - VECTOR COEFFICIENTS OF THE LUNAR POSITION POLYNOMIAL
# LOADED IN DESCENDING SEQUENCE IN METERS/CS**N x B-2
#
# 4) RESO - POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH AT
# TIMEMO IN METERS x B-38.
#
# 5) VESO - VELOCITY VECTOR OF THE SUN RELATIVE TO THE EARTH AT
# TIMEMO IN METERS/CS x B-9.
#
# 6) OMEGAES - ANGULAR VELOCITY OF THE VECTOR RESO AT TIMEMO IN
# REV/CS x B+26.
#
# ALL EXCEPT THE FIRST INPUT ARE INCLUDED IN THE PRE-LAUNCH
# ERASABLE DATA LOAD.
#
# OUTPUT - LSPOS
# Page 786
# 1) 2D OF VAC AREA CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE
# TO THE EARTH AT TIME INPUT BY THE USER IN METERS x B-38.
#
# 2) MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE
# EARTH AT TIME INPUT BY THE USER IN METERS x B-29.
#
# OUTPUT - LUNPOS
#
# MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE
# EARTH AT THE TIME INPUT BY USER IN METERS x B-29.
#
# OUTPUT - LUNVEL
#
# MPAC CONTAINS THE VELOCITY VECTOR OF THE MOON RELATIVE TO THE
# EARTH AT THE TIME INPUT BY THE USER IN METERS/CS x B-7.
#
# OUTPUT - SOLPOS
#
# MPAC CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH
# AT TIME INPUT BY THE USER IN METERS x B-38.
#
# SUBROUTINES USED
#
# NONE
#
# REMARKS
#
# THE VAC AREA IS USED FOR STORAGE OF INTERMEDIATE AND FINAL RESULTS
# OF COMPUTATIONS.
#
# S1, X1 AND X2 ARE USED BY THESE SUBROUTINES.
# PRELAUNCH ERASABLE DATA LOAD ARE ONLY ERASABLE STORAGE USED BY
# THESE SUBROUTINES.
# RESTARTS DURING OPERATION OF THESE SUBROUTINES MUST BE HANDLED BY
# THE USER.
BANK 36
SETLOC EPHEM
BANK
COUNT* $$/EPHEM
EBANK= END-E7
LSPOS AXT,2 # COMPUTES POSITION VECTORS OF BOTH THE
RESA # SUN AND THE MOON. THE POSITION VECTOR
AXT,1 GOTO # OF THE SUN IS STORED IN 2D OF THE VAC
RES # AREA. THE POSITION VECTOR OF THE MOON
LSTIME # IS STORED IN MPAC.
LUNPOS AXT,1 GOTO # COMPUTES THE POSITION VECTOR OF THE MOON
REM # AND STORES IT IN MPAC.
LSTIME
# Page 787
LUNVEL AXT,1 GOTO # COMPUTES THE VELOCITY VECTOR OF THE MOON
VEM # AND STORES IT IN MPAC.
LSTIME
SOLPOS STQ AXT,1 # COMPUTES THE POSITION VECTOR OF THE SUN
X2 # AND STORES IT IN MPAC.
RES
LSTIME SETPD SR
0D
14D
TAD DCOMP
TEPHEM
TAD DCOMP
TIMEMO
SL SSP
16D
S1
6D
GOTO
X1
RES PUSH DMP # PD- 2
OMEGAES
PUSH COS # PD- 4
VXSC PDDL # PD- 8
RESO
SIN PDVL # PD-10
RESO
PUSH UNIT # PD-16
VXV UNIT
VESO
VXV VSL1 # PD-10
VXSC VAD # PD-02
VSL1 GOTO # RES IN METERS x B-38 IN MPAC.
X2
RESA STODL 2D # RES IN METERS x B-38 IN 2D OF VAC. PD- 0
REM AXT,1 PDVL # PD- 2
54D
VECOEM
REMA VXSC VAD*
0D
VECOEM +60D,1
TIX,1 VSL2 # REM IN METERS x B-29 IN MPAC.
REMA
RVQ
VEM AXT,1 PDDL # PD- 2
48D
NINEB4
PUSH VXSC # PD- 4
VECOEM
VEMA VXSC
0D
# Page 788
STODL 4D # PD- 2
DSU PUSH # PD- 4
ONEB4
VXSC* VAD
VECOEM +54D,1
4D
TIX,1 VSL2 # VEM IN METERS/CS x B-7 IN MPAC.
VEMA
RVQ
NINEB4 2DEC 9.0 B-4
ONEB4 2DEC 1.0 B-4

View File

@ -1,35 +0,0 @@
# Copyright: Public domain.
# Filename: LUNAR_LANDMARK_SELECTION_FOR_CM.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Jim Lawton <jim.lawton@gmail.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 936
# Mod history: 2009-05-11 JVL Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 936
# *** END OF TROUBLE .043 ***

View File

@ -1,99 +0,0 @@
$CONTRACT_AND_APPROVALS.agc # p. 1
$ASSEMBLY_AND_OPERATION_INFORMATION.agc # pp. 2-26
$TAGS_FOR_RELATIVE_SETLOC.agc # pp. 27-35
# p. 36 contains no code.
# COMERASE
$ERASABLE_ASSIGNMENTS.agc # pp. 37-130
# COMAID
$INTERRUPT_LEAD_INS.agc # pp. 131-132
$T4RUPT_PROGRAM.agc # pp. 133-169
$DOWNLINK_LISTS.agc # pp. 170-180
$FRESH_START_AND_RESTART.agc # pp. 181-210
$RESTART_TABLES.agc # pp. 211-221
$SXTMARK.agc # pp. 222-235
$EXTENDED_VERBS.agc # pp. 236-267
$PINBALL_NOUN_TABLES.agc # pp. 268-284
$CSM_GEOMETRY.agc # pp. 285-296
$IMU_COMPENSATION_PACKAGE.agc # pp. 297-306
$PINBALL_GAME_BUTTONS_AND_LIGHTS.agc # pp. 307-389
$R60_62.agc # pp. 390-398
$ANGLFIND.agc # pp. 399-411
$GIMBAL_LOCK_AVOIDANCE.agc # pp. 412-413
$KALCMANU_STEERING.agc # pp. 414-419
$SYSTEM_TEST_STANDARD_LEAD_INS.agc # pp. 420-422
$IMU_CALIBRATION_AND_ALIGNMENT.agc # pp. 423-455
# COMEKISS
$GROUND_TRACKING_DETERMINATION_PROGRAM.agc # pp. 456-459
$P34-35_P74-75.agc # pp. 460-504
$R31.agc # pp. 505-510
$P76.agc # pp. 511-513
$R30.agc # pp. 514-524
$STABLE_ORBIT.agc # pp. 525-532
# TROUBLE
$P11.agc # pp. 533-550
$TPI_SEARCH.agc # pp. 551-561
$P20-P25.agc # pp. 562-634
$P30-P37.agc # pp. 635-648
$P32-P33_P72-P73.agc # pp. 649-683
$P40-P47.agc # pp. 684-736
$P51-P53.agc # pp. 737-784
$LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc # pp. 785-788
$P61-P67.agc # pp. 789-818
$SERVICER207.agc # pp. 819-836
$ENTRY_LEXICON.agc # pp. 837-843
$REENTRY_CONTROL.agc # pp. 844-882
$CM_BODY_ATTITUDE.agc # pp. 883-889
$P37_P70.agc # pp. 890-933
$S-BAND_ANTENNA_FOR_CM.agc # pp. 934-935
$LUNAR_LANDMARK_SELECTION_FOR_CM.agc # pp. 936
# TVCDAPS
$TVCINITIALIZE.agc # pp. 937-944
$TVCEXECUTIVE.agc # pp. 945-950
$TVCMASSPROP.agc # pp. 951-955
$TVCRESTARTS.agc # pp. 956-960
$TVCDAPS.agc # pp. 961-978
$TVCSTROKETEST.agc # pp. 979-983
$TVCROLLDAP.agc # pp. 984-998
$MYSUBS.agc # pp. 999-1001
$RCS-CSM_DIGITAL_AUTOPILOT.agc # pp. 1002-1024
$AUTOMATIC_MANEUVERS.agc # pp. 1025-1036
$RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc # pp. 1037-1038
$JET_SELECTION_LOGIC.agc # pp. 1039-1062
$CM_ENTRY_DIGITAL_AUTOPILOT.agc # pp. 1063-1092
# CHIEFTAN
$DOWN-TELEMETRY_PROGRAM.agc # pp. 1093-1102
$INTER-BANK_COMMUNICATION.agc # pp. 1103-1106
$INTERPRETER.agc # pp. 1107-1199
$FIXED_FIXED_CONSTANT_POOL.agc # pp. 1200-1204
$INTERPRETIVE_CONSTANTS.agc # pp. 1205-1206
$SINGLE_PRECISION_SUBROUTINES.agc # p. 1207
$EXECUTIVE.agc # pp. 1208-1220
$WAITLIST.agc # pp. 1221-1235
$LATITUDE_LONGITUDE_SUBROUTINES.agc # pp. 1236-1242
$PLANETARY_INERTIAL_ORIENTATION.agc # pp. 1243-1251
$MEASUREMENT_INCORPORATION.agc # pp. 1252-1261
$CONIC_SUBROUTINES.agc # pp. 1262-1308
$INTEGRATION_INITIALIZATION.agc # pp. 1309-1333
$ORBITAL_INTEGRATION.agc # pp. 1334-1354
$INFLIGHT_ALIGNMENT_ROUTINES.agc # pp. 1355-1364
$POWERED_FLIGHT_SUBROUTINES.agc # pp. 1365-1372
$TIME_OF_FREE_FALL.agc # pp. 1373-1388
$STAR_TABLES.agc # pp. 1389-1393
$AGC_BLOCK_TWO_SELF-CHECK.agc # pp. 1394-1403
$PHASE_TABLE_MAINTENANCE.agc # pp. 1404-1413
$RESTARTS_ROUTINE.agc # pp. 1414-1419
$IMU_MODE_SWITCHING_ROUTINES.agc # pp. 1420-1448
$KEYRUPT_UPRUPT.agc # pp. 1449-1451
$DISPLAY_INTERFACE_ROUTINES.agc # pp. 1452-1484
$SERVICE_ROUTINES.agc # pp. 1485-1492
$ALARM_AND_ABORT.agc # pp. 1493-1496
$UPDATE_PROGRAM.agc # pp. 1497-1507
$RT8_OP_CODES.agc # pp. 1508-1516
# pp. 1517-1751: GAP-generated tables.

View File

@ -1,496 +0,0 @@
# Copyright: Public domain.
# Filename: MEASUREMENT_INCORPORATION.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1252-1261
# Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1252
# INCORP1--PERFORMS THE SIX DIMENSIONAL STATE VECTOR DEVIATION FOR POSITI
# ON AND VELOCITY OR THE NINE DIMENSIONAL DEVIATION OF POSITION,VELOCITY,A
# ND RADAR OR LANDMARK BIAS.THE OUTPUT OF THE BVECTOR ROUTINE ALONG WITH T
# HE ERROR TRANSITION MATRIX(W) ARE USED AS INPUT TO THE ROUTINE.THE DEVIA
# TION IS OBTAINED BY COMPUTING AN ESTIMATED TRACKING MEASUREMENT FROM THE
# CURRENT STATE VECTOR AND COMPARING IT WITH AN ACTUAL TRACKING MEASUREMEN
# T AND APPLYING A STATISTICAL WEIGHTING VECTOR.
# INPUT
# DMENFLG = 0 6DIMENSIONAL BVECTOR 1= 9DIMENSIONAL
# W = ERROR TRANSITION MATRIX 6X6 OR 9X9
# VARIANCE = VARIANCE (SCALAR)
# DELTAQ = MEASURED DEVIATION(SCALAR)
# BVECTOR = 6 OR 9 DIMENSIONAL BVECTOR
#
# OUTPUT
# DELTAX = STATE VECTOR DEVIATIONS 6 OR 9 DIMENSIONAL
# ZI = VECTOR USED FOR THE INCORPORATION 6 OR 9 DIMENSIONAL
# GAMMA = SCALAR
# OMEGA = OMEGA WEIGHTING VECTOR 6 OR 9 DIMENSIONAL
#
# CALLING SEQUENCE
# L CALL INCORP1
#
# NORMAL EXIT
# L+1 OF CALLING SEQUENCE
BANK 37
SETLOC MEASINC
BANK
COUNT* $$/INCOR
EBANK= W
INCORP1 STQ
EGRESS
AXT,1 SSP
54D
S1
18D # IX1 = 54 S1= 18
AXT,2 SSP
18D
S2
6 # IX2 = 18 S2=6
Z123 VLOAD MXV*
BVECTOR # BVECTOR (0)
W +54D,1
STORE ZI +18D,2
VLOAD
BVECTOR +6 # BVECTOR (1)
# Page 1253
MXV* VAD*
W +108D,1
ZI +18D,2
STORE ZI +18D,2
VLOAD
BVECTOR +12D # BVECTOR (2)
MXV* VAD*
W +162D,1
ZI +18D,2 # B(0)*W+B(1)*(W+54)+B(2)*(W+108)FIRST PAS
STORE ZI +18D,2 # ZI THEN Z2 THEN Z3
TIX,1
INCOR1
INCOR1 TIX,2 BON
Z123 # LOOP FOR Z1,Z2,Z3
DMENFLG
INCOR1A
VLOAD
ZEROVECS
STORE ZI +12D
INCOR1A SETPD VLOAD
0
ZI
VSQ RTB
TPMODE
PDVL VSQ
ZI +6
RTB TAD
TPMODE
PDVL VSQ
ZI +12D
RTB TAD
TPMODE
TAD AXT,2
VARIANCE
0
STORE TRIPA # ZI*2 + Z2*2 + Z3*2 + VARIANCE
TLOAD BOV
VARIANCE # CLEAR OVFIND
+1
STORE TEMPVAR # TEMP STORAGE FOR VARIANCE
BZE
INCOR1C
INCOR1B SL2 BOV
INCOR1C
STORE TEMPVAR
INCR,2 GOTO
DEC 1
INCOR1B
INCOR1C TLOAD ROUND
TRIPA
# Page 1254
DMP SQRT
TEMPVAR
SL* TAD
0,2
TRIPA
NORM INCR,2
X2
DEC -2
SXA,2 AXT,2
NORMGAM # NORMALIZATION COUNT -2 FOR GAMMA
162D
BDDV SETPD
DP1/4TH
0
STORE GAMMA
TLOAD NORM
TRIPA
X1
DLOAD PDDL # PD 0-1 = NORM (A)
MPAC
DELTAQ
NORM
S1
XSU,1 SR1
S1
DDV PUSH # PD 0-1 = DELTAQ/A
GOTO
NEWZCOMP
-3 SSP
S2
54D
INCOR2 VLOAD VXM* # COMPUT OMEGA1,2,3
ZI
W +162D,2
PUSH VLOAD
ZI +6
VXM* VAD
W +180D,2
PUSH VLOAD
ZI +12D
VXM* VAD
W +198D,2
PUSH TIX,2 # PD 2-7=OMEGA1,8-13=OMEGA2,14-19=OMEGA3
INCOR2
VLOAD STADR
STORE OMEGA +12D
VLOAD STADR
STORE OMEGA +6
VLOAD STADR
STORE OMEGA
# Page 1255
BON VLOAD
DMENFLG
INCOR2AB
ZEROVECS
STORE OMEGA +12D
INCOR2AB AXT,2 SSP
18D
S2
6
INCOR3 VLOAD*
OMEGA +18D,2
VXSC VSL*
0 # DELTAQ/A
0,1
STORE DELTAX +18D,2
TIX,2 VLOAD
INCOR3
DELTAX +6
VSL3
STORE DELTAX +6
GOTO
EGRESS
# Page 1256
# INCORP2 -INCORPORATES THE COMPUTED STATE VECTOR DEVIATIONS INTO THE
# ESTIMATED STATE VECTOR. THE STATE VECTOR UPDATED MAY BE FOR EITHER THE
# LEM OR THE CSM.DETERMINED BY FLAG VEHUPFLG.(ZERO = LEM) (1 = CSM)
# INPUT
# PERMANENT STATE VECTOR FOR EITHER THE LEM OR CSM
# VEHUPFLG = UPDATE VEHICLE C=LEM 1=CSM
# W = ERROR TRANSITION MATRIX
# DELTAX = COMPUTED STATE VECTOR DEVIATIONS
# DMENFLG = SIZE OF W MATRIX (ZERO=6X6) (1=9X9)
# GAMMA = SCALAR FOR INCORPORATION
# ZI = VECTOR USED IN INCORPORATION
# OMEGA = WEIGHTING VECTOR
#
# OUTPUT
# UPDATED PERMANENT STATE VECTOR
#
# CALLING SEQUENCE
# L CALL INCORP2
#
# NORMAL EXIT
# L+1 OF CALLING SEQUENCE
#
SETLOC MEASINC1
BANK
COUNT* $$/INCOR
INCORP2 STQ CALL
EGRESS
INTSTALL
VLOAD VXSC # CALC. GAMMA * OMEGA1,2,3
OMEGA
GAMMA
STOVL OMEGAM1
OMEGA +6
VXSC
GAMMA
STOVL OMEGAM2
OMEGA +12D
VXSC
GAMMA
STORE OMEGAM3
EXIT
CAF 54DD # INITIAL IX 1 SETTING FOR W MATRIX
TS WIXA
TS WIXB
CAF ZERO
TS ZIXA # INITIAL IX 2 SETTING FOR Z COMPONENT
TS ZIXB
FAZA TC PHASCHNG
# Page 1257
OCT 04022
TC UPFLAG
ADRES REINTFLG
FAZA1 CA WIXB # START FIRST PHASE OF INCORP2
TS WIXA # TO UPDATE 6 OR 9 DIM. W MATRIX IN TEMP
CA ZIXB
TS ZIXA
TC INTPRET
LXA,1 LXA,2
WIXA
ZIXA
SSP DLOAD*
S1
6
ZI,2
DCOMP NORM # CALC UPPER 3X9 PARTITION OF W MATRIX
S2
VXSC XCHX,2
OMEGAM1
S2
LXC,2 XAD,2
X2
NORMGAM
VSL* XCHX,2
0,2
S2
VAD*
W +54D,1
STORE HOLDW
DLOAD* DCOMP # CALC MIDDLE 3X9 PARTITION OF W MATRIX
ZI,2
NORM VXSC
S2
OMEGAM2
XCHX,2 LXC,2
S2
X2
XAD,2 VSL*
NORMGAM
0,2
XCHX,2 VAD*
S2
W +108D,1
STORE HOLDW +6
BOFF
DMENFLG # BRANCH IF 6 DIMENSIONAL
FAZB
DLOAD* DCOMP # CALC LOWER 3X9 PARTITION OF W MATRIX
ZI,2
NORM VXSC
# Page 1258
S2
OMEGAM3
XCHX,2 LXC,2
S2
X2
XAD,2 VSL*
NORMGAM
0,2
XCHX,2 VAD*
S2
W +162D,1
STORE HOLDW +12D
FAZB CALL
GRP2PC
EXIT
FAZB1 CA WIXA # START 2ND PHASE OF INCORP2 TO TRANSFER
AD 6DD # TEMP REG TO PERM W MATRIX
TS WIXB
CA ZIXA
AD MINUS2
TS ZIXB
TC INTPRET
LXA,1 SSP
WIXA
S1
6
VLOAD
HOLDW
STORE W +54D,1
VLOAD
HOLDW +6
STORE W +108D,1
BOFF VLOAD
DMENFLG
FAZB5
HOLDW +12D
STORE W +162D,1
FAZB2 TIX,1 GOTO
+2
FAZC # DONE WITH W MATRIX. UPDATE STATE VECTOR
RTB
FAZA
FAZB5 SLOAD DAD
ZIXB
12DD
BHIZ GOTO
FAZC
FAZB2
FAZC CALL
GRP2PC
# Page 1259
VLOAD VAD # START 3RD PHASE OF INCORP2
X789 # 7TH,8TH,9TH,COMPONENT OF STATE VECTOR
DELTAX +12D # INCORPORATION FOR X789
STORE TX789
BON RTB
VEHUPFLG
DOCSM
MOVEPLEM
FAZAB BOVB AXT,2
TCDANZIG
0
BOFF AXT,2
MOONTHIS
+2
2
VLOAD VSR*
DELTAX # B27 IF MOON ORBIT, B29 IF EARTH
0 -7,2
VAD BOV
TDELTAV
FAZAB1
STOVL TDELTAV
DELTAX +6 # B5 IF MOON ORBIT, B7 IF EARTH
VSR* VAD
0 -4,2
TNUV
BOV
FAZAB2
STCALL TNUV
FAZAB3
FAZAB1 VLOAD VAD
RCV
DELTAX
STORE RCV
FAZAB2 VLOAD VAD
VCV
DELTAX +6
STORE VCV
SXA,2 CALL
PBODY
RECTIFY
FAZAB3 CALL
GRP2PC
BON RTB
VEHUPFLG
DOCSM1
MOVEALEM
CALL
SVDWN2 # STORE DOWNLINK STATE VECTOR
FAZAB4 CALL
# Page 1260
GRP2PC # PHASE CHANGE
BOFF VLOAD
DMENFLG
FAZAB5 # 6 DIMENSIONAL
TX789 # 9 DIMENSIONAL
STORE X789
FAZAB5 LXA,1 SXA,1
EGRESS
QPRET
EXIT
TC POSTJUMP # EXIT
CADR INTWAKE
DOCSM RTB GOTO
MOVEPCSM
FAZAB
DOCSM1 RTB CALL
MOVEACSM
SVDWN1 # STORE DOWNLINK STATE VECTOR
GOTO
FAZAB4
ZEROD = ZEROVECS
54DD DEC 54
6DD DEC -6
12DD DEC 12
SETLOC MEASINC2
BANK
COUNT* $$/INCOR
NEWZCOMP VLOAD ABVAL
ZI
STOVL NORMZI
ZI +6
ABVAL PUSH
DSU BMN
NORMZI
+3
DLOAD STADR
STORE NORMZI
VLOAD ABVAL
ZI +12D
PUSH DSU
NORMZI
BMN DLOAD
NEWZCMP1
STADR
STCALL NORMZI # LARGEST ABVAL
NEWZCMP1
SETLOC MEASINC3
BANK
# Page 1261
NEWZCMP1 DLOAD SXA,1
NORMZI
NORMZI # SAVE X1
NORM INCR,1
X1
DEC 2
VLOAD VSL*
ZI
0,1
STOVL ZI
ZI +6
VSL*
0,1
STOVL ZI +6
ZI +12D
VSL* SXA,1
0,1
NORMZI +1 # SAVE SHIFT
STORE ZI +12D
LXA,1 XSU,1
NORMGAM
NORMZI +1
XSU,1
NORMZI +1
SXA,1 LXC,1
NORMGAM
NORMZI +1
XAD,1 SETPD
NORMZI
2D
GOTO
INCOR2 -3
NORMZI = 36D

View File

@ -1,93 +0,0 @@
# Copyright: Public domain.
# Filename: MYSUBS.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 999-1001
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrections: EBANK= changed from MPAC to KMPAC.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 999
BANK 20
SETLOC MYSUBS
BANK
EBANK= KMPAC
SPCOS1 EQUALS SPCOS
SPSIN1 EQUALS SPSIN
SPCOS2 EQUALS SPCOS
SPSIN2 EQUALS SPSIN
COUNT 21/DAPMS
# ONE AND ONE HALF PRECISION MULTIPLICATION ROUTINE
SMALLMP TS KMPTEMP # A(X+Y)
EXTEND
MP KMPAC +1
TS KMPAC +1 # AY
CAF ZERO
XCH KMPAC
EXTEND
MP KMPTEMP # AX
DAS KMPAC # AX+AY
TC Q
# SUBROUTINE FOR DOUBLE PRECISION ADDITIONS OF ANGLES
# A AND L CONTAIN A DP(1S) ANGLE SCALED BY 180 DEGS TO BE ADDED TO KMPAC.
# RESULT IS PLACED IN KMPAC. TIMING = 6 MCT (22 MCT ON OVERFLOW)
DPADD DAS KMPAC
EXTEND
BZF TSK +1 # NO OVERFLOW
CCS KMPAC
TCF DPADD+ # + OVERFLOW
TCF +2
TCF DPADD- # - OVERFLOW
CCS KMPAC +1
TCF DPADD2+ # UPPER = 0, LOWER +
TCF +2
COM # UPPER = 0, LOWER -
AD POSMAX # LOWER = 0, A=0
TS KMPAC +1 # CAN NOT OVERFLOW
CA POSMAX # UPPER WAS = 0
TSK TS KMPAC
TC Q
DPADD+ AD NEGMAX # KMPAC GREATER THAN 0
TCF TSK
# Page 1000
DPADD- COM
AD POSMAX # KMPAC LESS THAN 0
TCF TSK
DPADD2+ AD NEGMAX # CAN NOT OVERFLOW
TS KMPAC +1
CA NEGMAX # UPPER WAS = 0
TCF TSK
# Page 1001 (empty page)

View File

@ -1,944 +0,0 @@
# Copyright: Public domain.
# Filename: ORBITAL_INTEGRATION.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1334-1354
# Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrections: DAT -> DAD in one place,
# BWM -> BMN, DEFEQCNT -> DIFEQCNT.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1334
# ORBITAL INTEGRATION
# DELETE
BANK 13
SETLOC ORBITAL
BANK
COUNT 11/ORBIT
# DELETE
KEPPREP LXA,2 SETPD
PBODY
0
DLOAD* SQRT # SQRT(MU) (+18 OR +15) 0D PL 2D
MUEARTH,2
PDVL UNIT # PL 8D
RCV
PDDL NORM # NORM R (+29 OR +27 - N1) 2D PL 4D
36D
X1
PDVL
DOT PDDL # F*SQRT(MU)(+7 OR +5) 4D PL 6D
VCV
TAU. # (+28)
DSU NORM
TC
S1
SR1
DDV PDDL
2D
DMP PUSH # FS(+6 +N1-N2) 6D PL 8D
4D
DSQ PDDL # (FS)SQ(+12 +2(N1-N2)) 8D PL 10D
4D
DSQ PDDL* # SSQ/MU(-2OR +2(N1-N2)) 10D PL 12D
MUEARTH,2
SR3 SR4
PDVL VSQ # PREALIGN MU (+43 OR +37) 12D PL 14D
VCV
DMP BDSU # PL 12D
36D
DDV DMP # PL 10D
2D # -(1/R-ALPHA)(+12 +3N1-2N2)
DMP SL*
DP2/3
0 -3,1 # 10L(1/R-ALPHA)(+13 +2(N1-N2))
XSU,1 DAD # 2(FS)SQ - ETCETERA PL 8D
S1 # X1 = N2-N1
SL* DSU # -FS+2(FS)SQ ETC (+6 +N1-N2) PL 6D
8D,1
DMP DMP
0D
4D
SL* SL*
# Page 1335
8D,1
0,1 # S(-FS(1-2FS)-1/6...)(+17 OR +16)
DAD PDDL # PL 6D
XKEP
DMP SL* # S(+17 OR +16)
0D
1,1
BOVB DAD
TCDANZIG
STADR
STORE XKEPNEW
STQ AXC,1
KEPRTN
DEC 10
BON AXC,1
MOONFLAG
KEPLERN
DEC 2
GOTO
KEPLERN
# Page 1336
FBR3 LXA,1 SSP
DIFEQCNT
S1
DEC -13
DLOAD SR
DT/2
9D
TIX,1 ROUND
+1
PUSH DAD
TC
STODL TAU.
DAD
TET
STCALL TET
KEPPREP
# Page 1337
# AGC ROUTINE TO COMPUTE ACCELERATION COMPONENTS.
ACCOMP LXA,1 LXA,2
PBODY
PBODY
VLOAD
ZEROVEC
STOVL FV
ALPHAV
VSL* VAD
0 -7,2
RCV
STORE BETAV
BOF XCHX,2
DIM0FLAG
+5
DIFEQCNT
STORE VECTAB,2
XCHX,2
DIFEQCNT
VLOAD UNIT
ALPHAV
STODL ALPHAV
36D
STORE ALPHAM
CALL
GAMCOMP
VLOAD SXA,1
BETAV
S2
STODL ALPHAV
BETAM
STORE ALPHAM
BOF DLOAD
MIDFLAG
OBLATE
TET
CALL
LSPOS
AXT,2 LXA,1
2
S2
BOF
MOONFLAG
+3
VCOMP AXT,2
0
STORE BETAV
STOVL RPQV
# Page 1338
2D
STORE RPSV
BOF VLOAD
DIM0FLAG
GETRPSV
ALPHAV
VXSC VSR*
ALPHAM
1,2
VSU XCHX,2
BETAV
DIFEQCNT
STORE VECTAB +6,2
XCHX,2
DIFEQCNT
GETRPSV VLOAD INCR,1
RPQV
4
CLEAR BOF
RPQFLAG
MOONFLAG
+5
VSR VAD
9D
RPSV
STORE RPSV
CALL
GAMCOMP
AXT,2 INCR,1
4
4
VLOAD
RPSV
STCALL BETAV
GAMCOMP
GOTO
OBLATE
GAMCOMP VLOAD VSR1
BETAV
VSQ SETPD
0
NORM ROUND
31D
PDDL NORM # NORMED B SQUARED TO PD LIST
ALPHAM # NORMALIZE (LESS ONE) LENGTH OF ALPHA
32D # SAVING NORM SCALE FACTOR IN X1
SR1 PDVL
BETAV # C(PDL+2) = ALMOST NORMED ALPHA
UNIT
STODL BETAV
# Page 1339
36D
STORE BETAM
NORM BDDV # FORM NORMALIZED QUOTIENT ALPHAM/BETAM
33D
SR1R PUSH # C(PDL+2) = ALMOST NORMALIZED RHO.
DLOAD*
ASCALE,1
STORE S1
XCHX,2 XAD,2
S1
32D
XSU,2 DLOAD
33D
2D
SR* XCHX,2
0 -1,2
S1
PUSH SR1R # RHO/4 TO 4D
PDVL DOT
ALPHAV
BETAV
SL1R BDSU # (RHO/4) - 2(ALPHAV/2.BETAV/2)
PUSH DMPR # TO PDL+6
4
SL1
PUSH DAD
DQUARTER
PUSH SQRT
DMPR PUSH
10D
SL1 DAD
DQUARTER
PDDL DAD # (1/4)+2((Q+1)/4) TO PD+14D
10D
HALFDP
DMPR SL1
8D
DAD DDV
THREE/8
14D
DMPR VXSC
6
BETAV
PDVL VSR3 # (G/2)(C(PD+4))B/2 TO PD+16D
ALPHAV
VAD PUSH # A12 + C(PD+16D) TO PD+16D
DLOAD DMP
0
12D
NORM ROUND
# Page 1340
30D
BDDV DMP*
2
MUEARTH,2
DCOMP VXSC
XCHX,2 XAD,2
S1
S2
XSU,2 XSU,2
30D
31D
BOV # CLEAR OVIND
+1
VSR* XCHX,2
0 -1,2
S1
VAD
FV
STORE FV
BOV RVQ # RETURN IF NO OVERFLOW
+1
GOBAQUE VLOAD ABVAL
TDELTAV
BZE
INT-ABRT
DLOAD SR
H
9D
PUSH BDSU
TC
STODL TAU.
TET
DSU STADR
STCALL TET
KEPPREP
CALL
RECTIFY
SETGO
RPQFLAG
TESTLOOP
INT-ABRT EXIT
TC POODOO
OCT 00430
# Page 1341
# THE OBLATE ROUTINE COMPUTES THE ACCELERATION DUE TO OBLATENESS. IT USES THE UNIT OF THE VEHICLE
# POSITION VECTOR FOUND IN ALPHAV AND THE DISTANCE TO THE CENTER IN ALPHAM. THIS IS ADDED TO THE SUM OF THE
# DISTURBING ACCELERATIONS IN FV AND THE PROPER DIFEQ STAGE IS CALLED VIA X1.
OBLATE LXA,2 DLOAD
PBODY
ALPHAM
SETPD DSU*
0
RDE,2
BPL BOF # GET URPV
NBRANCH
MOONFLAG
COSPHIE
VLOAD PDDL
ALPHAV
TET
PDDL CALL
3/5
R-TO-RP
STORE URPV
VLOAD VXV
504LM
ZUNIT
VAD VXM
ZUNIT
MMATRIX
UNIT # POSSIBLY UNNECESSARY
COMTERM STORE UZ
DLOAD DMPR
COSPHI/2
3/32
PDDL DSQ # P2/64 TO PD0
COSPHI/2
DMPR DSU
15/16
3/64
PUSH DMPR # P3/32 TO PD2
COSPHI/2
DMP SL1R
7/12
PDDL DMPR
0
2/3
BDSU PUSH # P4/128 TO PD4
DMPR DMPR
COSPHI/2 # BEGIN COMPUTING P5/1024
9/16
PDDL DMPR
2
5/128
# Page 1342
BDSU
DMP*
J4REQ/J3,2
DDV DAD # -3
ALPHAM # (((P5/256)B 2 /R+P4/32) /R+P3/8)ALPHAV
4 # 4 3
DMPR* DDV
2J3RE/J2,2
ALPHAM
DAD VXSC
2
ALPHAV
STODL TVEC
DMP* SR1
J4REQ/J3,2
DDV DAD
ALPHAM # -3
DMPR* SR3
2J3RE/J2,2 # 3 4
DDV DAD
ALPHAM
VXSC VSL1
UZ
BVSU
TVEC
STODL TVEC
ALPHAM
NORM DSQ
X1
DSQ NORM
S1 # 4
PUSH BDDV* # NORMED R TO 0D
J2REQSQ,2
VXSC BOV
TVEC
+1 # (RESET OVERFLOW INDICATOR)
XAD,1 XAD,1
X1
X1
XAD,1 VSL*
S1
0 -22D,1
VAD BOV
FV
GOBAQUE
STCALL FV
QUALITY1
QUALITY3 DSQ # J22 TERM X R**4 IN 2D. SCALED B61
# AS VECTOR.
PUSH DMP # STORE COSPHI**2 SCALED B2 IN 8D
# Page 1343
5/8 # 5 SCALED B3
PDDL SR2 # PUT 5 COSPHI**2, D5, IN 8D. GET
# COSPHI**2 D2 FROM 8D
DAD BDSU # END UP WITH (1-7 COSPHI**2), B5
8D # ADDING COSPHI**2 B4 SAME AS COSPHI**2
# X 2 D5
D1/32 # 1 SCALED B5
DMP DMP
URPV # X COMPONENT
5/8 # 5 SCALED B3
VXSC VSL5 # AFTER SHIFT, SCALED B5
URPV # VECTOR, B1.
PDDL # VECTOR INTO 8D, 10D, 12D, SCALED B5.
# GET 5 COSPHI**2 OUT OF 8D
DSU DAD
D1/32 # 1 B5
8D # X COMPONENT (SAME AS MULTIPLYING
# BY UNITX)
STODL 8D
URPV # X COMPONENT
DMP DMP
URPV +4 # Z COMPONENT
5/8 # 5 B3 ANSWER B5
SL1 DAD # FROM 12D FOR Z COMPONENT (SL1 GIVES 10
# INSTEAD OF 5 FOR COEFFICIENT)
PDDL NORM # BACK INTO 12D FOR Z COMPONENT.
ALPHAM # SCALED B27 FOR MOON
X2
PUSH SLOAD # STORE IN 14D, DESTROYING URPV
# X COMPONENT
E32C31RM
DDV VXSC # IF X2 = 0, DIVISION GIVES B53, VXSC
# OUT OF 8D B5 GIVES B58
VSL* VAD # SHIFT MAKES B61, FOR ADDITION OF
# VECTOR IN 2D
0 -3,2
VSL* V/SC # OPERAND FROM 0D, B108 FOR X1 = 0
0 -27D,1 # FOR X1 = 0, MAKES B88, GIVING B-20
# FOR RESULT.
PDDL PDDL
TET
5/8 # ANY NON-ZERO CONSTANT
LXA,2 CALL # POSITION IN 0D, TIME IN 6D. X2 LEFT
# ALONE.
PBODY
RP-TO-R
VAD BOV # OVERFLOW INDICATOR RESET IN "RP-TO-R"
FV
GOBAQUE
STORE FV
# Page 1344
NBRANCH SLOAD LXA,1
DIFEQCNT
MPAC
DMP CGOTO
-1/12
MPAC
DIFEQTAB
COSPHIE DLOAD
ALPHAV +4
STOVL COSPHI/2
ZUNIT
GOTO
COMTERM
DIFEQTAB CADR DIFEQ+0
CADR DIFEQ+1
CADR DIFEQ+2
TIMESTEP BOF CALL
MIDFLAG
RECTEST # SKIP ORIGIN CHANGE LOGIC
CHKSWTCH
BMN
DOSWITCH
RECTEST VLOAD ABVAL # RECTIFY IF
TDELTAV
BOV
CALLRECT
DSU BPL # 1) EITHER TDELTAV OR TNUV EQUALS OR
3/4 # EXCEEDS 3/4 IN MAGNITUDE
CALLRECT #
DAD SL* # OR
3/4 #
0 -7,2 # 2) ABVAL(TDELTAV) EQUALS OR EXCEEDS
DDV DSU # .01(ABVAL(RCV))
10D
RECRATIO
BPL VLOAD
CALLRECT
TNUV
ABVAL DSU
3/4
BOV
CALLRECT
BMN
INTGRATE
CALLRECT CALL
RECTIFY
INTGRATE VLOAD
TNUV
# Page 1345
STOVL ZV
TDELTAV
STORE YV
CLEAR
JSWITCH
DIFEQ0 VLOAD SSP
YV
DIFEQCNT
0
STODL ALPHAV
DPZERO
STORE H # START H AT ZERO. GOES 0(DELT/2)DELT.
BON GOTO
JSWITCH
DOW..
ACCOMP
CHKSWTCH STQ BOF
ORIGEX
RPQFLAG
RPQOK # MOON POSITION IS AVAILABLE
DLOAD CALL
TET
LUNPOS # GET MOON POSITION
BOF VCOMP
MOONFLAG
+1
STORE RPQV
RPQOK LXA,2 VLOAD # RESTORE X2 AFTER USING LUNPOS
PBODY
TDELTAV # _
VSL* VAD # |RQC|-RSPHERE WHEN OUTSIDE THE SPHERE.
0 -7,2 # _ _ _
RCV # R = RDEVIATION + RCONIC
BOF ABVAL
MOONFLAG
EARSPH
SR2 BDSU # INSIDE
RSPHERE
GOTO
ORIGEX
EARSPH VSU ABVAL # OUTSIDE
RPQV
DSU GOTO
RSPHERE
ORIGEX
DOSWITCH CALL
ORIGCHNG
GOTO
INTGRATE
# Page 1346
ORIGCHNG STQ CALL
ORIGEX
RECTIFY
VLOAD VSL*
RCV
0,2
VSU VSL*
RPQV
2,2
STORE RRECT
STODL RCV
TET
CALL
LUNVEL
BOF VCOMP
MOONFLAG
+1
PDVL VSL*
VCV
0,2
VSU
VSL*
0 +2,2
STORE VRECT
STORE VCV
LXA,2 SXA,2
ORIGEX
QPRET
BON GOTO
MOONFLAG
CLRMOON
SETMOON
# Page 1347
# THE RECTIFY SUBROUTINE IS CALLED BY THE INTEGRATION PROGRAM AND OCCASIONALLY BY THE MEASUREMENT INCORPORATION
# ROUTINES TO ESTABLISH A NEW CONIC.
RECTIFY LXA,2 VLOAD
PBODY
TDELTAV
VSL* VAD
0 -7,2
RCV
STORE RRECT
STOVL RCV
TNUV
VSL* VAD
0 -4,2
VCV
MINIRECT STORE VRECT
STOVL VCV
ZEROVEC
STORE TDELTAV
STODL TNUV
ZEROVEC
STORE TC
STORE XKEP
RVQ
# Page 1348
# THE THREE DIFEQ ROUTINES - DIFEQ+0, DIFEQ+12, DIFEQ+24 - ARE ENTEREDTO PROCESS THE CONTRIBUTIONS AT THE
# BEGINNING, MIDDLE, AND END OF THE TIMESTEP, RESPECTIVELY. THE UPDATING IS DONE BY THE NYSTROM METHOD.
DIFEQ+0 VLOAD VSR3
FV
STCALL PHIV
DIFEQCOM
DIFEQ+1 VLOAD VSR1
FV
PUSH VAD
PHIV
STOVL PSIV
VSR1 VAD
PHIV
STCALL PHIV
DIFEQCOM
DIFEQ+2 DLOAD DMPR
H
DP2/3
PUSH VXSC
PHIV
VSL1 VAD
ZV
VXSC VAD
H
YV
STOVL YV
FV
VSR3 VAD
PSIV
VXSC VSL1
VAD
ZV
STORE ZV
BOFF CALL
JSWITCH
ENDSTATE
GRP2PC
LXA,2 VLOAD
COLREG
ZV
VSL3 # ADJUST W-POSITION FOR STORAGE
STORE W +54D,2
VLOAD
YV
VSL3 BOV
WMATEND
STORE W,2
CALL
GRP2PC
# Page 1349
LXA,2 SSP
COLREG
S2
0
INCR,2 SXA,2
6
YV
TIX,2 CALL
RELOADSV
GRP2PC
LXA,2 SXA,2
YV
COLREG
NEXTCOL CALL
GRP2PC
LXA,2 VLOAD*
COLREG
W,2
VSR3 # ADJUST W-POSITION FOR INTEGRATION
STORE YV
VLOAD* AXT,1
W +54D,2
0
VSR3 # ADJUST W-VELOCITY FOR INTEGRATION
STCALL ZV
DIFEQ0
ENDSTATE BOV VLOAD
GOBAQUE
ZV
STOVL TNUV
YV
STORE TDELTAV
BON BOFF
MIDAVFLG
CKMID2 # CHECK FOR MID2 BEFORE GOING TO TIMEINC
DIM0FLAG
TESTLOOP
EXIT
TC PHASCHNG
OCT 04022 # PHASE 1
TC UPFLAG # PHASE CHANGE HAS OCCURRED BETWEEN
ADRES REINTFLG # INTSTALL AND INTWAKE
TC INTPRET
SSP
QPRET
AMOVED
BON GOTO
VINTFLAG
# Page 1350
ATOPCSM
ATOPLEM
AMOVED SET SSP
JSWITCH
COLREG
DEC -30
BOFF SSP
D6OR9FLG
NEXTCOL
COLREG
DEC -48
GOTO
NEXTCOL
RELOADSV DLOAD # RELOAD TEMPORARY STATE VECTOR
TDEC # FROM PERMANENT IN CASE OF
STCALL TDEC1
INTEGRV2 # BY STARTING AT INTEGRV2.
DIFEQCOM DLOAD DAD # INCREMENT H AND DIFEQCNT.
DT/2
H
INCR,1 SXA,1
DEC -12
DIFEQCNT # DIFEQCNT SET FOR NEXT ENTRY.
STORE H
VXSC VSR1
FV
VAD VXSC
ZV
H
VAD
YV
STORE ALPHAV
BON GOTO
JSWITCH
DOW..
FBR3
WMATEND CLEAR CLEAR
DIM0FLAG # DONT INTEGRATE W THIS TIME
ORBWFLAG # INVALIDATE W
CLEAR
RENDWFLG
SET EXIT
STATEFLG # PICK UP STATE VECTOR UPDATE
TC ALARM
OCT 421
TC INTPRET
# Page 1351
GOTO
TESTLOOP # FINISH INTEGRATING STATE VECTOR
# Page 1352
# ORBITAL ROUTINE FOR EXTRAPOLATION OF THE W MATRIX. IT COMPUTES THE SECOND DERIVATIVE OF EACH COLUMN POSITION
# VECTOR OF THE MATRIX AND CALLS THE NYSTROM INTEGRATION ROUTINES TO SOLVETHE DIFFERENTIAL EQUATIONS. THE PROGRAM
# USES A TABLE OF VEHICLE POSITION VECTORS COMPUTED DURING THE INTEGRATION OF THE VEHICLES POSITION AND VELOCITY.
DOW.. LXA,2 DLOAD*
PBODY
MUEARTH,2
STCALL BETAM
DOW..1
STORE FV
BOF INCR,1
MIDFLAG
NBRANCH
DEC -6
LXC,2 DLOAD*
PBODY
MUEARTH -2,2
STCALL BETAM
DOW..1
BON VSR6
MOONFLAG
+1
VAD
FV
STCALL FV
NBRANCH
DOW..1 VLOAD VSR4
ALPHAV
PDVL* UNIT
VECTAB,1
PDVL VPROJ
ALPHAV
VXSC VSU
3/4
PDDL NORM
36D
S2
PUSH DSQ
DMP
NORM PDDL
34D
BETAM
SR1 DDV
VXSC
LXA,2 XAD,2
S2
S2
XAD,2 XAD,2
S2
34D
VSL* RVQ
# Page 1353
0 -8D,2
SETLOC ORBITAL1
BANK
3/5 2DEC .6 B-2
THREE/8 2DEC .375
.3D 2DEC .3 B-2
3/64 2DEC 3 B-6
DP1/4 2DEC .25
DQUARTER EQUALS DP1/4
POS1/4 EQUALS DP1/4
3/32 2DEC 3 B-5
15/16 2DEC 15. B-4
3/4 2DEC 3.0 B-2
7/12 2DEC .5833333333
9/16 2DEC 9 B-4
5/128 2DEC 5 B-7
DPZERO EQUALS ZEROVEC
DP2/3 2DEC .6666666667
2/3 EQUALS DP2/3
OCT27 OCT 27
BANK 13
SETLOC ORBITAL2
BANK
# IT IS VITAL THAT THE FOLLOWING CONSTANTS NOT BE SHUFFLED
DEC -11
DEC -2
DEC -9
DEC -6
DEC -2
DEC -2
DEC 0
DEC -12
DEC -9
DEC -4
ASCALE DEC -7
DEC -6
# Page 1354
2DEC* 1.32715445 E16 B-54* # S
2DEC* 4.9027780 E8 B-30* # M
MUEARTH 2DEC* 3.986032 E10 B-36*
2DEC 0
J4REQ/J3 2DEC* .4991607391 E7 B-26*
2DEC -176236.02 B-25
2J3RE/J2 2DEC* -.1355426363 E5 B-27*
2DEC* .3067493316 E18 B-60*
J2REQSQ 2DEC* 1.75501139 E21 B-72*
3J22R2MU 2DEC* 9.20479048 E16 B-58*
5/8 2DEC 5 B-3
-1/12 2DEC -.1
MUM = MUEARTH -2
RECRATIO 2DEC .01
RSPHERE 2DEC 64373.76 E3 B-29
RDM 2DEC 16093.44 E3 B-27
RDE 2DEC 80467.20 E3 B-29
RATT EQUALS 00
VATT EQUALS 6D
TAT EQUALS 12D
RATT1 EQUALS 14D
VATT1 EQUALS 20D
MU(P) EQUALS 26D
TDEC1 EQUALS 32D
URPV EQUALS 14D
COSPHI/2 EQUALS URPV +4
UZ EQUALS 20D
TVEC EQUALS 26D

View File

@ -1,928 +0,0 @@
# Copyright: Public domain.
# Filename: P11.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 533-550
# Mod history: 2009-05-13 HG Started adapting from the Colossus249/ file
# of the same name, using Comanche055 page
# images 0533.jpg - 0550.jpg.
# 2009-05-20 RSB Corrections: ERTHALT -> EARTHALT,
# STATSW -> SATSW.
# 2009-05-23 RSB At end of RESCALES, corrected TC 0 to TC Q.
# Added an SBANK= prior to a 2CADR.
# 2010-08-24 JL Fixed page numbers. Added missing comment character on p537.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 533
# EARTH ORBIT INSERTION MONITOR PROGRAM
# *************************************
# PROGRAM DESCRIPTION -P11-
# MOD NO. 1
# MOD BY ELIASSEN
# FUNCTIONAL DESCRIPTION
# P11 IS INITIATED BY
# A) GYROCOMPASS PRG P02 WHEN LIFTOFF DISCRETE IS RECEIVED OR
# B) BACKUP THRU VERB 75 ENTER
# PROGRAM WILL
# 1. ZERO CMC CLOCK AT LIFTOFF (OR UPON RECEIPT OF BACKUP)
# 2. UPDATE TEPHEM TO TIME CMC CLOCK WAS ZEROED
# 3. INITIATE SERVICER AT PREREAD1
# 4. CHANGE MAJOR MODE TO 11
# 5. CLEAR DSKY IN CASE OF V 75
# 6. STORE LIFTOFF IMU-CDU ANGLES FOR ATT. ERROR DISPLAY
# 7. TERMINATE GYROCOMPASSING - -
# 8. COMPUTE INITIAL VECTORS RN, VN - - -
# 9. COMPUTE REFSMMAT FOR PRELAUNCH ALIGNMENT WHERE U ,U ,U ARE
# - - X Y Z
# U =(UNIT(-R) LOCAL VERTICAL AT TIME OF LIFTOFF
# Z
# - - -
# U =UNIT(A), A=HOR VECTOR AT LAUNCH AZIMUTH
# X
# - - -
# U =U * U
# U Z X
# 10. SET REFSMMAT KNOWN FLAG
# 11. SET AVGEXIT IN SERVICER TO VHHDOT TO
# COMPUTE AND DISPLAY NOUN 62 EVERY 2 SECONDS
# R1 V1 - INERTIAL VELOCITY MAGNITUDE IN FPS
# R2 HDOT - RATE OF CHANGE OF VEHICLE VEL IN FPS
# R3 H - VEHICLE ALTITUDE ABOVE PAD IN NM
# 12. DISPLAY BODY AXES ATT. ERRORS ON FDAI NEEDLES
#
# A) FROM L.O. TO RPSTART (APPROX. 0 TO +10SECS AFTER L.O.)
# DESIRED ATTITUDE IS AS STORED AT L.O.
# B) FROM RPSTART TO POLYSTOP(APPROX.+10 TO +133SECS AFTER LO)
# DESIRED ATTITUDE IS SPECIFIED BY CMC PITCH AND ROLL
# POLYNOMIALS DURING SATURN ROLLOUT AND PITCHOVER
# Page 534
# THE DISPLAY IS RUN AS LOW PRIORITY JOB APPROX.
# EVERY 1/2 SEC OR LESS AND IS DISABLED UPON OVFLO OF TIME1
# SUBROUTINES CALLED
# 2PHSCHNG BANKCALL CALCGRA CDUTRIG CLEANDSP DANZIG
# DELAYJOB EARTHR ENDOFJOB FINDVAC IBNKCALL
# INTPRET LALOTORV NEEDLER NEWMODEX PHASCHNG
# POSTJUMP POWRSERS PREREAD1 REGODSPR S11.1
# SERVEXIT TASKOVER TCDANZIG V1STO2S WAITLIST
# ASTRONAUT REQUESTS (IF ALTITUDE ABOVE 300,000 FT)
#
# DSKY -
# MONITOR DISPLAY OF TIME TO PERIGEE R1 HOURS
# R2 MINUTES
# DSKY -
# MONITOR DISPLAY OF R1 APOGEE ALTITUDE IN NAUTICAL MILES
# R2 PERIGEE ALTITUDE IN NAUTICAL MILES
# R3 TFF IN MINUTES/SECS
# IF ASTRONAUT HAS REQUESTED ANY OF THESE DISPLAYS HE MUST
# HIT PROCEED TO RETURN TO NORMAL NOUN 62 DISPLAY.
# NORMAL EXIT MODE
# ASTRONAUT VERB 37 ENTER 00 ENTER
# ALARM MODES - NONE
# ABORT EXIT MODES -
# OUTPUT
# TLIFTOFF (DP) TEPHEM (TP)
# REFSMMAT
# DSKY DISPLAY
# FDAI DISPLAY
# ERASABLE INITIALIZATION
# AZO, AXO, -AYO
# LATITUDE
# PADLONG
# TEPHEM
# PGNCSALT
# POLYNUM THRU POLYNUM +14D)
# RPSTART
# POLYSTOP
# FLAGS SET OR RESET
# Page 535
# SET REFSMFLG
# SET DVMON IDLE FLAG
# CLEAR ERADFLAG
# DEBRIS
# LIFTTEMP
# POLYNUM THRU POLYNUM +7
# SPOLYARG
# BODY1, BODY2, BODY3
# VMAG2, ALTI, HDOT
# CENTRALS, CORE SET AND VAC AREAS
COUNT 34/P11
BITS5-6 = SUPER011
BANK 42
SETLOC P11ONE
BANK
EBANK= TEPHEM
P11 CA EBANK3
TS EBANK
EXTEND
DCA REP11S # DIRECT RESTARTS TO REP11
DXCH -PHASE3
CS ZERO
ZL
TS LIFTTEMP
DXCH -PHASE5 # INACTIVE GROUP 5, PRELAUNCH PROTECTION
P11+7 EXTEND
DCA REP11SA
DXCH TLIFTOFF
EXTEND
DCA TIME2
DXCH LIFTTEMP # FOR RESTARTS
CA ZERO
ZL
DXCH TIME2
REP11A-2 DXCH TLIFTOFF
REP11A-1 DXCH -PHASE3 # RESET PHASE
REP11A INHINT
EXTEND
DCA TEPHEM +1
DXCH TEPHEM1 +1
CA TEPHEM
# Page 536
XCH TEPHEM1
EXTEND
DCA TLIFTOFF
DAS TEPHEM1 +1
ADS TEPHEM1 # CORRECTFOR OVERFLOW
TC PHASCHNG
OCT 05023
OCT 22000
INHINT
EXTEND
DCA TEPHEM1
DXCH TEPHEM
CA TEPHEM1 +2
XCH TEPHEM +2
CAF EBDVCNT
TS EBANK
EBANK= DVCNTR
TC IBNKCALL
CADR PREREAD1 # ZERO PIPS AND INITIALIZE AVERAGEG
TC PHASCHNG
OCT 05023 # CONTINUE HERE ON RESTART
OCT 22000
CAF .5SEC # START ATT ERROR DISPLAY
TC WAITLIST # IN .5 SEC
EBANK= BODY3
2CADR ATERTASK
TC NEWMODEX # DISPLAY MM 11
MM 11
TC UPFLAG
ADRES NODOP01
CA POWDNCOD # SWITCH TO POWERED FLIGHT DOWNLIST
TS DNLSTCOD
TC BANKCALL
CADR CLEANDSP # CLEAR DSKY IN CASE OF V75
TC 2PHSCHNG
OCT 40514 # PROTECT ATERTASK
OCT 00073
CAF EBQPLACE
# Page 537
TS EBANK
EBANK= QPLACES
CA P11XIT # SET EXIT FROM PROUT IN EARTHR
TS QPLACES
TC INTPRET
VLOAD MXV
THETAN
XSM
VSL1 VAD
ERCOMP
STODL ERCOMP
TLIFTOFF
SSP GOTO
S2
CADR PROUT # RETURN FROM EARTHR
EARTHR +3
MATRXJOB ZL # STORE DP GIMBAL ANGLES FOR ATTITUDE
CA CDUX # ERROR DISPLAY AFTER LIFTOFF
DXCH OGC
ZL
CA CDUY
DXCH IGC
ZL
CA CDUZ
DXCH MGC
TC INTPRET # -
VLOAD VSR1 # SCALE OGC B-1
OGC
STORE OGC
SSP # ZERO RTX2
RTX2 # FOR
0 # EARTH
DLOAD PDDL
PGNCSALT # ALTITUDE OF PGNCS
PADLONG # LONGITUDE
PDDL VDEF
LATITUDE # GEODETIC LATITUDE
STODL LAT # LAT,LONG,ALT ARE CONSECUTIVE
HI6ZEROS # TIME = 0
CLEAR CALL
ERADFLAG
LALOTORV # CONVERT TO POSITION VECTOR IN REF.COORDS
STCALL RN1 # -
GETDOWN # RETURN WITH VECTOR FOR DOWN DIRECTION
VCOMP UNIT
STOVL REFSMMAT +12D # UNITZ = UNIT(GRAV)
RN1
VXV VXSC
# Page 538
UNITW # SCALED AT 1
-ERTHRAT # V = EARTHRATE X R
VSL4 # SCALE TO 2(7) M/CS
STOVL VN1
REFSMMAT +12D
VXV UNIT
UNITW # (REF3 X UNITW) = EAST
PUSH VXV
REFSMMAT +12D # (EAST X REF3) = -SOUTH
UNIT PDDL
LAUNCHAZ # COS(AZ)*SOUTH
COS VXSC
STADR
STODL REFSMMAT # TEMPORARY STORAGE
LAUNCHAZ
SIN VXSC # SIN(AZ)*EAST
VAD UNIT # SIN(AZ)*EAST - COS(AZ)*SOUTH = REF1
REFSMMAT
STORE REFSMMAT
VXV UNIT # (REF1 X REF3) = -REF3
REFSMMAT +12D
VCOMP
STORE REFSMMAT +6
DLOAD DSU
DPHALF # 1/2 REV
LAUNCHAZ
DAD PDDL
AZIMUTH
SATRLRT # SET SATRLRT = -SATRLRT IF
SIGN STADR # (1/2REV -LAVNCHAZ +AZIMUTH) IS NEGATIVE
STORE SATRLRT # FOR ROLL CALC IN FDAI ATT. ERROR DISPLAY
SET EXIT
REFSMFLG # SET REFSMMAT KNOWN FLAG
TC PHASCHNG
OCT 04023
EXTEND
DCA P11SCADR
DXCH AVGEXIT # SET AVGEXIT
CA PRIO31 # 2 SECONDS AT 2(+8)
TS 1/PIPADT
EBANK= RCSFLAGS
CA EBANK6
TS EBANK
INHINT
# Page 539
CS ZERO
TS TBASE5 # RESTART READACCS 2 SECONDS AFTER LIFTOFF
CS TIME1
AD 2SECS # DO READACCS 2 SECONDS AFTER LIFTOFF
CCS A # CHECK TO INSURE DT IS POSITIVE
TCF +3 # TIME POSITIVE
TCF +2 # CANNOT GET HERE
CA ZERO # TIME NEGATIVE - SET TO 1
AD ONE # RESTORE TIME - OR MAKE POSITIVE
TC WAITLIST
EBANK= AOG
2CADR READACCS
TC 2PHSCHNG
OCT 00003 # TURN OFF GROUP 3
OCT 00025 # PROTECT NORMLIZE AND READACCS
TC POSTJUMP
CADR NORMLIZE # DO NORMLIZE AND ENDOFJOB
EBANK= TEPHEM
REP11 INHINT
CCS PHASE5
TC ENDOFJOB
CCS LIFTTEMP
TCF +4
TCF +3
TCF +2
TCF P11+7
CS TLIFTOFF
EXTEND
BZMF ENDREP11
CCS TIME2 # **TIME2 MUST BE NON-ZERO AT LIFTOFF**
TCF REP11A -5 # T2,T1 NOT YET ZEROED, GO AND DO IT
EXTEND # T2,T1 ZEROED, SET TLIFTOFF
DCA LIFTTEMP
TCF REP11A-2
ENDREP11 EXTEND
DCA REP11SA
TCF REP11A-1
# Page 540
REP11S 2OCT 7776600011
REP11SA 2OCT 7776400013
P11XIT GENADR P11OUT
-ERTHRAT 2DEC* -7.292115138 E-7 B18* # - EARTH RATE AT 2(18)
EBANK= BODY3
P11SCADR 2CADR VHHDOT
POWDNCOD EQUALS THREE
EBANK= BODY3
# VHHDOT IS EXECUTED EVERY 2 SECONDS TO DISPLAY ON DSKY
# VI INERTIAL VELOCITY MAGNITUDE
# HDOT RATE OF CHANGE OF ALT ABOVE L PAD RADIUS
# H ALTITUDE ABOVE L PAD RADIUS
VHHDOT TC INTPRET
CALL # LOAD VMAGI, ALTI,
S11.1 # HDOT FOR DISPLAY
EXIT
TC PHASCHNG
OCT 00035
CAF V06N62 # DISPLAY IN R1 R2 R3
TC BANKCALL # VI HDOT H
CADR REGODSP
ATERTASK CAF PRIO1 # ESTABLISH JOB TO DISPLAY ATT ERRORS
TC FINDVAC # COMES HERE AT L.O. + .33 SEC
EBANK= BODY3
2CADR ATERJOB
CS RCSFLAGS # SET BIT3 FOR
MASK BIT3 # NEEDLER
ADS RCSFLAGS # INITIALIZATION PASS
TC IBNKCALL # AND GO
CADR NEEDLER # DO IT
CA BIT1 # SET SW
TS SATSW # FOR DISPLAY
TC TASKOVER
GETDOWN STQ SETPD
INCORPEX
0D
DLOAD
HI6ZEROS
# Page 541
STODL 6D
DPHALF
STCALL 8D
LALOTORV +5
# THIS SECTION PROVIDES ATTITUDE ERROR DISPLAYS TO THE FDAI DURING SONE BOOST
# COMPUTE DESIRED PITCH W.R.T. PAD LOCAL VERTICAL AT LIFTOFF
# 2 3 4 5 6
# PITCH = A0+A1T+A2T +A3T +A4T +A5T +A6T
# SCALED TO 32 REVS. -14
# IF TL = TIME IN SECS FROM L.O., THEN T = 100(TL-RPSTART)2
# WHERE TL GE RPSTART
# TL LE (-POLYSTOP + RPSTART)
# COMPUTE DESIRED ROLL WHERE ROLL EQUALS ANGLE FROM
# LAUNCHAZ TO -Z(S/C) AS SEEN FROM X(S/C).
# ROLL = LAUNCHAZ-AZIMUTH-.5 +SATRLRT*T IN REV
# SATRLRT = RATE OF ROLL IN REV/CENTI-SEC
# T,IN CENTI-SEC,IS DEFINED AS ABOVE,INCLUSIVE OF TIME RESTRICTIONS
# FOR SIMPLICITY, LET P = 2*PI*PITCH
# R = 2*PI*ROLL
# CONSTRUCT THE TRANSFORMATION MATRIX, TSMV, GIVING DESIRED S/C AXES IN
# TERMS OF SM COORDINATES. LET THE RESULTING ROWS EQUAL THE VECTORS XDC,
# YDC,AND ZDC.
# * ( SIN(P) 0 -COS(P) ) (XDC)
# TSMV = (-SIN(R)*COS(P) -COS(R) -SIN(R)*SIN(P)) = (YDC)
# (-COS(R)*COS(P) SIN(R) -COS(R)*SIN(P)) (ZDC)
# XDC,YDC,ZDC ARE USED AS INPUT TO CALCGTA FOR THE EXTRACTION OF THE
# EULER SET OF ANGLES WHICH WILL BRING THE SM INTO THE DESIRED
# ORIENTATION. THIS EULER SET, OGC, IGC, AND MGC, MAY BE IDENTIFIED
# AS THE DESIRED CDU ANGLES.
# (XDC) (OGC)
# (YDC) ---) CALCGTA ---) (IGC)
# (ZDC) (MGC)
# -
# DEFINE THE VECTOR DELTACDU.
# - (OGC) (CDUX)
# DELTACDU = (IGC) - (CDUY)
# (MGC) (CDUZ)
# - - * -
# COMPUTE ATTITUDE ERRORS, A, WHERE A = TGSC*DELTACDU
#
# * (1 SIN(CDUZ) 0 ) THE GIMBAL ANGLES
# Page 542
# TGSC = (0 COS(CDUX)*COS(CDUZ) SIN(CDUX)) = TO SPACECRAFT AXES
# (0 -SIN(CDUX)*COS(CDUZ) COS(CDUX)) CONVERSION MATRIX
# -
# THE ATTITUDE ERRORS, A, ARE STORED ONE HALF SINGLE PRECISION IN
# THE REGISTERS AK, AK1, AK2 AS INPUT TO NEEDLER, THE FDAI ATTITUDE
# ERROR DISPLAY ROUTINE.
ATERJOB CAE FLAGWRD6 # CHECK FLAGWRD6
MASK OCT60000 # BITS 14, 15
EXTEND
BZF +2 # OK - CONTINUE
TC ENDOFJOB # SATURN STICK ON - KILL JOB
CAF BIT10 # CHECK IF S/C CONTROL
EXTEND # OF SATURN PANEL
RAND CHAN30 # SWITCH IS ON
EXTEND
BZF STRSAT # IT IS - GO STEER
CCS SATSW # IT IS NOT - WAS IT ON LAST CYCLE
TC ATTDISP # NO - CONTINUE
TC ATRESET # YES - REINITIALIZE NEEDLER
TC ATRESET # YES - REINITIALIZE NEEDLER
ATTDISP CS RPSTART # PITCH/ROLL START TIME
AD TIME1
EXTEND
BZMF NOPOLY # IF MINUS THEN ATTITUDE HOLD
TS MPAC # MPAC=TIME1-RPSTART
TS SPOLYARG # SAVE FOR USE IN ROLL CALCULATION
AD POLYSTOP # NEG PITCHOVER TIME IN CSECS
EXTEND
BZMF +2
TC NOPOLY # GO TO ATTITUDE HOLD
CA TIME2
EXTEND
BZMF +2
TC NOPOLY # GO TO ATTITUDE HOLD
CAE POLYNUM
TS L
CAF COEFPOLY # EVALUATE PITCH POLYNOMIAL
TC POWRSERS # SCALED TO 32 REVOLUTIONS
CA ZERO # RETURN WITH PITCH(32REV)
TS MODE # STORED MPAC, MPAC +1
TC INTPRET
SETPD SL # 32(PITCH(32REV))=PITCH(REV)
0
5
PUSH # LET P(RAD)=2*PI*PITCH(REV)
GOTO
ATTDISP1 # AROUND SETLOC
# Page 543
# *
# CONSTRUCT SM TO S/C MATRIX, TSMV
SETLOC P11TWO
BANK # 36 IN COL., 34 IN DISK
COUNT 36/P11
ATTDISP1 COS DCOMP
STODL 14D # -.5*COS(P)
SIN
STODL 10D # .5*SIN(P)
ZEROVECS
STORE 12D # 0
# EVALUATE ROLL = LAUNCHAZ-AZIMUTH-.5+SATRLRT*T
SLOAD DMP
SPOLYARG # TIME1 - RSPSTART ,CSECS B-14.
SATRLRT
SL DSU
14D
DPHALF
DAD DSU # ASSUMING X(SM) ALONG LAUNCH AZIMUTH,
LAUNCHAZ # LAUNCHAZ = ANGLE FROM NORTH TO X(SM).
AZIMUTH # AZIMUTH = -ANGLE FROM NORTH TO Z(S/C)
RTB # DETERMINE IF ROLLOUT
RLTST # IS COMPLETED
ATTDISPR PUSH COS # CONTINUE COMPUTING TSMV
PUSH # LET R(RAD) = 2*PI*ROLL(REV)
DMP SL1
14D
STODL 22D # -.5*COS(R)*COS(P)
DCOMP
STORE 18D # -.5*COS(R)
DMP SL1
10D
STODL 26D # -.5*COS(R)*SIN(P)
SIN PUSH
STORE 24D # .5*SIN(R)
DMP SL1
14D
STODL 16D # -.5*SIN(R)*COS(P)
DCOMP
DMP SL1
10D
STOVL 20D # -.5*SIN(R)*SIN(P)
10D
# FROM TSMV FIND THE HALF UNIT VECTORS XDC,YDC,ZDC = INPUT TO CALCGTA
# Page 544
UNIT
STOVL XDC # XDC = .5*UNIT(SIN(P),0,-COS(P))
16D
UNIT
STOVL YDC # YDC = .5*UNIT(-SIN(R)*COS(P),-COS(R),
22D # -SIN(R)*SIN(P))
UNIT
STCALL ZDC # ZDC = .5*UNIT(-COS(R)*COS(P),SIN(R),
CALCGTA # -COS(R)*SIN(P))
# CALL CALCGTA TO COMPUTE DESIRED SM ORIENTATION OGC,IGC,AND MGC
# - - -
# FIND DIFFERENCE VECTOR DELTACDU = OGC-CDUX
# ENTER HERE IF ATTITUDE HOLD
NOPOLYM VLOAD PUSH # OGC IGC
OGC # CHANGE IGC TO MGC FOR COMPATIBILITY
PUSH CALL # MGC OGC
CDUTRIG # WITH Y,Z,X ORDER OF CDUSPOT
VLOAD RTB # - DPHI OGC-CDUX ,PD4
2 # DELTACDU = DTHETA = IGC-CDUY , 0
V1STO2S # DPSI MGC-CDUZ , 2
STOVL BOOSTEMP
ZEROVECS
STOVL 0
CDUSPOT
RTB RTB
V1STO2S
DELSTOR
STODL 10D
SINCDUZ
DMP SL1
0
DAD SR2 # CHANGE SCALE OF AK TO 2REVS
4
GOTO
ATTDISP2
SETLOC P11ONE
BANK
COUNT 34/P11
ATTDISP2 STODL 16D # 16D, .5(DPHI + DTHETA*SIN(CDUZ))
COSCDUZ
DMP PUSH
0
DMP SL1
COSCDUX
PDDL DMP
# Page 545
SINCDUX
2
DAD SL1
STADR
STODL 17D # 17D, .5(DTHETA*COS(CDUX)*COS(CDUZ)
DMP SL1 # +DPSI*SIN(CDUX))
SINCDUX
PDDL DMP
COSCDUX
2
DSU SL1
STADR
STORE 18D # 18D, .5(-DTHETA*SIN(CDUX)*COS(CDUZ)
TLOAD # +DPSI*COS(CDUX))
16D
STORE AK # STORE ATTITUDE ERRORS IN AK,AK1,AK2
EXIT
CA SATSW
CCS A # CHK TAKEOVER STATUS
TC SATOUT # POS - DISPLAY ONLY
TC AKLOAD # 0 STORE BIAS
STEERSAT TC INTPRET # NEG STEER L/V
TLOAD TAD
BIASAK
AK
STORE AK # AKS = AKS - STORED BIAS
EXIT
CA AK
TC RESCALES
TS AK
CA AK1
TC RESCALES
TS AK1
CA AK2
TC RESCALES
TS AK2
# DISPLAY ATTITUDE ERRORS ON FDAI VIA NEEDLER
SATOUT TC BANKCALL
CADR NEEDLER
ATERSET CAF OCT31 # DELAY .25 SEC
TC BANKCALL # EXECUTION + DELAY =.56SEC APPROX
CADR DELAYJOB
TC ATERJOB # END OF ATT ERROR DISPLAY CYCLE
AKLOAD CS AK # STORE AKS
TS BIASAK # INTO BIAS
CS AK1 # COMPLEMENTED
TS BIASAK +1
# Page 546
CS AK2
TS BIASAK +2
CS BIT1 # SET SW
TS SATSW # TO STEER
TC STEERSAT # GO STEER
STRSAT CA SATSW # CHECK IF NEEDLER
EXTEND # HAS BEEN INITIALIZED
BZMF ATTDISP # YES - CONTINUE
ATRESET CS RCSFLAGS # NO - SET
MASK BIT3 # INITIALIZATION SW
ADS RCSFLAGS # FOR NEEDLER
TC BANKCALL # AND GO
CADR NEEDLER # DO IT
CAF REVCNT # OCT 6
TC BANKCALL # DELAY JOB
CADR DELAYJOB # 60 MS -WAIT TILL IMUERRCNTR ZEROED
CCS SATSW # CHECK SW STATUS
TC TAKEON # POS STEER INIT.
TC +1 # 0 RETURN TO DISPLAY
CA BIT1 # NEG RETURN TO DISPLAY
TS SATSW # SW = DISPLAY ON
CS BIT9 # DISABLE
EXTEND # SIVB
WAND CHAN12 # TAKEOVER
TC SATOUT # DISPLAY
TAKEON CAF BIT9 # ENABLE
EXTEND # SIVB
WOR CHAN12 # TAKEOVER
CA ZERO # INDICATE NEEDLER
TS SATSW # WAS INITIALIZED
TC SATOUT
S11.1 VLOAD ABVAL
VN
STOVL VMAGI # VI SCALED 2(7) IN METERS/CSEC
RN
UNIT DOT
VN
SL1
STODL HDOT
RPAD
BOF VLOAD
AMOONFLG
EARTHALT
RLS
ABVAL SR2
EARTHALT BDSU
36D
STORE ALTI
RVQ
DELSTOR CA BOOSTEMP
# Page 547
EXTEND # STORE DELTACDU INTO PDL 0,2,4
MSU MPAC
INDEX FIXLOC
TS 0
CA BOOSTEMP +1
EXTEND
MSU MPAC +1
INDEX FIXLOC
TS 2
CA BOOSTEMP +2
EXTEND
MSU MPAC +2
INDEX FIXLOC
TS 4
TCF DANZIG
RLTST CA MPAC # DETERMINE IF ROLLOUT
EXTEND # IS COMPLETED
MP SATRLRT +1
EXTEND
BZMF DANZIG # UNLIKE SIGNS STILL ROLLING
EXTEND # ROLLOUT COMPLETED
DCA MBDYTCTL +2 # ZERO OUT ROLL CONTRIBUTION
DXCH MPAC
TC DANZIG
NOPOLY TC INTPRET # COMES HERE IF
SETPD GOTO # ATTITUDE HOLD
0
NOPOLYM
COEFPOLY ADRES POLYLOC
V06N62 VN 0662
RESCALES EXTEND # RESCALE AK S FOR
MP SATSCALE # NEW HARDWARE
DDOUBL # SCALING FOR
DDOUBL # STEERING
TC Q # SATURN
# SATURN TAKEOVER FUNCTION
# ************************
# PROGRAM DESCRIPTION
# MOD NUMBER 1
# MOD BY ELIASSEN
# FUNCTIONAL DESCRIPTION
# DURING THE COASTING PHASE OF SIVB ATTACHED, THE
# ASTRONAUT MAY REQUEST SATURN TAKEOVER THROUGH
# EXTENDED VERB 46 (BITS 13,14 OF DAPDATR1 SET ).
# THE CMC REGARDS RHC COMMANDS AS BODY-AXES RATE
# COMMANDS AND IT TRANSMITS THESE TO SATURN AS DC
# Page 548
# VOLTAGES. THE VALUE OF THE CONSTANT RATE COMMAND
# IS 0.5 DEG/SEC. AN ABSENCE OF RHC ACTIVITY RE-
# SULTS IN A ZERO RATE COMMAND.
# THE FDAI ERROR NEEDLES WILL INDICATE THE VALUE
# OF THE RATE COMMAND.
# CALLING SEQUENCE
#
# DAPFIG +9D TC POSTJUMP
# CADR SATSTKON
# SUBROUTINES CALLED
# ENDEXT
# IBNKCALL
# STICKCHK
# NEEDLER
# T5RUPT
# RESUME
# ASTRONAUT REQUESTS
# ENTRY - VERB 46 ENTER
# (CONDITION - BITS 13, 14 OF DAPDATR1 SET)
#
# EXIT - VERB 48 ENTER (FLASH V06N46)
# VERB 21 ENTER AXXXX ENTER WHERE A=0 OR 1
# VERB 34 ENTER
# VERB 46 ENTER
# NORMAL EXIT MODE
# VERB 46 ENTER (SEE ASTRONAUT ABOVE)
# ALARM OR ABORT EXIT MODES
# NONE
# OUTPUT
# SATURN RATES IN CDUXCMD, CDUYCMD, CDUZCMD
# ERASABLE INITIALIZATION
# DAPDATR1 (BITS 13,14 MUST BE SET)
# DEBRIS
# CENTRALS
# Page 549
# CDUXCMD, CDUYCMD, CDUZCMD
BANK 43
SETLOC EXTVERBS
BANK
COUNT 23/STTKE
SATSTKON EXTEND
DCA 2REDOSAT
INHINT
DXCH T5LOC
CAF POSMAX
TS TIME5
CS FLAGWRD6 # TURN ON BITS 15,14 OF
MASK RELTAB11 # FLAGWRD6
ADS FLAGWRD6 # SATSTICK CONTROL OF T5
TC IBNKCALL # ZERO JET CHANNELS IN 14 MS AND THEN
CADR ZEROJET # LEAVE THE T6 CLOCK DISABLED
RELINT
TC GOPIN # EXIT THUS BECAUSE WE CAME VIA V46
EBANK= BODY3
2REDOSAT 2CADR REDOSAT
SBANK= LOWSUPER
BANK 32
SETLOC P11FOUR
BANK
REDOSAT LXCH BANKRUPT # ALSO COMES HERE FOR RESTARTS
EXTEND
QXCH QRUPT
CS RCSFLAGS # TURN ON BIT3 OF RCSFLAGX
MASK BIT3 # FOR
ADS RCSFLAGS # NEEDLER INITIALIZATION
TC IBNKCALL
CADR NEEDLER # DISABLE IMU ERR COUNTERS ETC.
CAF BIT9 # SIVB
EXTEND # TAKEOVER
WOR CHAN12 # ENABLE
EXTEND # SET UP T5 CYCLE
DCA 2SATSTCK
DXCH T5LOC
CAF 100MST5 # IN 100 MSECS
TS TIME5
TCF RESUME # END OF SATURN STICK INITIALIZATION
# THIS SECTION IS EXECUTED EVERY 100 MSECS
# Page 550
SATSTICK LXCH BANKRUPT
EXTEND
QXCH QRUPT
CAF 2SATSTCK # SET UP RUPT
TS T5LOC # LO ORDER LOC SET
CAF 100MST5 # 100 MSECS
TS TIME5
CAF STIKBITS
EXTEND
RXOR CHAN31 # CHECK IF MAN ROT BITS SAME
MASK STIKBITS
TC IBNKCALL # SET RATE INDICES
CADR STICKCHK # FOR PITCH YAW AND ROLL
INDEX RMANNDX # SET SATURN RATES
CA SATRATE
TS AK # ROLL
INDEX PMANNDX
CA SATRATE
TS AK1 # PITCH
INDEX YMANNDX
CA SATRATE
TS AK2 # YAW
TC IBNKCALL # FOR SATURN INTERFACE AND FDAI DISPLAY
CADR NEEDLER
TCF RESUME # END OF SATURN STICK CONTROL
STIKBITS OCT 00077
100MST5 DEC 16374
EBANK= BODY3
2SATSTCK 2CADR SATSTICK

File diff suppressed because it is too large Load Diff

View File

@ -1,611 +0,0 @@
# Copyright: Public domain.
# Filename: P30-P37.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 635-648
# Mod history: 2009-05-10 RSB Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
# 2009-05-20 RSB Corrected BDV -> BOV.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 635
BANK 32
SETLOC P30S1
BANK
EBANK= +MGA
COUNT 35/P34
DISPMGA STQ EXIT # USED IN P30
RGEXIT
TC COMPTGO
DISP45 CAF V16N45
TC BANKCALL
CADR GOFLASHR
TC GOTOPOOH
TC END45
TC DISP45
P30PHSI TC PHASCHNG
OCT 14
TCR ENDOFJOB
END45 TC INTPRET
CLEAR GOTO
TIMRFLAG
RGEXIT
COMPTGO EXTEND # USED TO COMPUTE TTOGO
QXCH PHSPRDT6 # ** GROUP 6 TEMPORARY USED .. BEWARE **
TC UPFLAG # SET TIMRFLAG
ADRES TIMRFLAG # BIT 11 FLAG 7
CAF ZERO
TS NVWORD1
CAF ONE
TC WAITLIST
EBANK= TIG
2CADR CLOKTASK
TC 2PHSCHNG
OCT 40036 # 6.3SPOT FOR CLOKTASK
OCT 05024 # GROUP 4 CONTINUES HERE
OCT 13000
TC PHSPRDT6
# Page 636
# PROGRAM DESCRIPTION P30 DATE 3-6-67
# MOD.I BY S. ZELDIN- TO ADD P31 AND AD APT P30 FOR P31 USE. 22DEC67
# FUNCTIONAL DESCRIPTION
# +30(EXTERNAL DELTA-V TARGETTING PROGRAM)
# ACCEPTS ASTRONAUT INPUTS OF TIG,DELV(LV) AND COMPUTES,FOR DISPLAY,
# APOGEE,PERIGEE,DELV(MAG),MGA ASSOCIATED WITH DESIRED MANEUVER
# P31(GENERAL LAMBERT AIMPOINT GUIDANCE)
# A GROUND RULE FOR P31 IS THE ANGLE BETWEEN THE TARGET VECTOR AND
# POSITION VECTOR AT TIG IS NOT 165-195 DEGREES APART
# BASED ON STORED INPUT OF OFFSET TARGET(B+29) AND DELTA T TRANS,AND
# ASTRONAUT ENTRY OF TIG,P31 COMPUTES REQUIRED VELOCITY FOR MANEUVER
# AND,FOR DISPLAY,APOGEE,PERIGEE,DELV(7AG),+MGA ASSOCIATED WITH
# DESIRED MANEUVER
# THE FOLLOWING SUBROUTINES ARE USED IN P30 AND P31
# S30.1 (P30 ONLY)
# S31.1 (P31 ONLY)
# P30/P31 - DISPLAYS TIG
# CNTUP30 - DISPLAYS DELV(LV)
# PARAM30 - DISPLAYS APOGEE,PERIGEE,DELV(MAG),MGA,TIME FROM TIG,
# MARKS SINCE LAST THRUSTING MANEUVER
# CALLING SEQUENCE VIA JOB FROM V37
# EXIT VIA V37 OR GOTOPOOH
# OUTPUT FOR POWERED FLIGHT
# VTIG X
# RTIG XSEE S30.1
# DELVSIN X
# VGDISP
# RTARG X
# TPASS4 X SEE S31.1
# X
COUNT 35/P30
P30 TC P30/P31
TC CNTNUP30
TC DOWNFLAG # RESET UPDATFLG
ADRES UPDATFLG # BIT 7 FLAG 1
TC INTPRET
CALL
S30.1
EXIT
TC PARAM30
TC UPFLAG
# Page 637
ADRES XDELVFLG # SET XDELVFLG BIT 8 FLAG 2
TCF GOTOPOOH
P31 TC P30/P31
TC DOWNFLAG
ADRES UPDATFLG # RESET UPDATFLG BIT 7 FLAG 1
TC DOWNFLAG
ADRES NORMSW # RESET NORMSW BIT 10 FLAG 7
TC INTPRET
CALL
S31.1
EXIT
TC CNTNUP30
TC PARAM30
TC DOWNFLAG
ADRES XDELVFLG # BIT 8 FLAG 2
TCF GOTOPOOH
P30/P31 XCH Q
TS P30/31RT
TC UPFLAG
ADRES UPDATFLG # SET UPDATFLG BIT 7 FLAG 1
TC UPFLAG
ADRES TRACKFLG # SET TRACKFLG BIT 5 FLAG 1
CAF V06N33 # T OF IGN
TC BANKCALL
CADR GOFLASHR
TCF GOTOPOOH
TC P30/31RT
TCF P30/P31 +4
TC PHASCHNG
OCT 00014
TC ENDOFJOB
CNTNUP30 XCH Q
TS P30/RET
CAF V06N81
TC BANKCALL
CADR GOFLASH
TCF GOTOPOOH
TC P30/RET
TCF CNTNUP30 +2
PARAM30 XCH Q
TS P30/31RT
CAF V06N42
TC BANKCALL
CADR GOFLASH
TC GOTOPOOH # ON TERMINATION GOTOPOOH
TCF REFTEST # ON PROCEED GO DO REFTEST
# Page 638
TCF PARAM30 +2
REFTEST CAF BIT13
MASK STATE +3 # REFSMFLAG
EXTEND
BZF NOTSET # REFSMFLAG =0 , THEN BRANCH TO NOTSET
TC INTPRET
VLOAD PUSH
DELVSIN
CALL
GET+MGA
GOTO
FLASHMGA
NOTSET EXTEND
DCS MARSDP
DXCH +MGA # +MGA, +MGA+1 CONTAINS (-00001)
TC INTPRET
FLASHMGA CALL
DISPMGA
EXIT
TC P30/31RT
MARSDP OCT 00000 # (00000) (16440) = (+00001)
OCT 35100
# ( .01 ) DEGREES IN THE LOW ORDER REGISTE
V06N33 VN 0633
V06N42 VN 0642
V16N35 VN 1635
V06N45 VN 0645
# Page 639
# PROGRAM DESCRIPTION S30.1 DATE 9NOV66
# MOD NO 1 LOG SECTION P30,P37
# MOD BY RAMA AIYAWAR **
# MOD.2 BY S.ZELDIN - TO CORRECT MOD.1 FOR COLOSSUS 29DEC67
# FUNCTIONAL DESCRIPTION
# BASED ON STORED TARGET PARAMETERS(R OF IGNITION(RTIG),V OF
# IGNITION(VTIG),TIME OF IGNITION(TIG),DELV(LV),COMPUTE PERIGEE ALTITUDE
# A+OGEE ALTITUDE AND DELTA-V REQUIRED IN REF. COORDS.(DELVSIN)
# CALLING SEQUENCE
# L CALL
# L+1 S30.1
# NORMAL EXIT MODE
# AT L+2 OR CALLING SEQUENCE (GOTO L+2)
# SUBROUTINES CALLED
# THISPREC
# PERIAPO
# ALARM OR ABORT EXIT MODES
# NONE
# ERASABLE INITIALIZATION REQUIRED
# TIG TIME OF IGNITION DP B28CS
# DELVSLV SPECIFIED DELTA-V IN LOCAL VERT.
# COORDS. OF ACTIVE VEHICLE AT
# TIME OF IGNITION VCT. B+7M/CS
#
# OUTPUT
# RTIG POSITION AT TIG VCT. B+29M
# VTIG VELOCITY AT TIG VCT. B+7M
# HAPO APOGEE ALT. DP B+29M
# HPER PERIGEE ALT. DP B+29M
# DELVSIN DELVSLV IN REF COORDS VCT. B+7M/CS
# VGDISP MAG. OF DELVSIN DP B+7M/CS
# DEBRIS QTEMP TEMP. ERASABLE
# QPRET,MPAC
# PUSHLIST
SETLOC P30S1A
BANK
COUNT 35/S30S
S30.1 STQ DLOAD
QTEMP
TIG # TIME IGNITION SCALED AT 2(+28)CS
STCALL TDEC1
THISPREC # ENCKE ROUTINE FOR
VLOAD SXA,2
VATT
RTX2
STOVL VTIG
# Page 640
RATT
STORE RTIG
STORE RACT3
VXV UNIT
VTIG
STCALL UNRM
LOMAT
VLOAD VXM
DELVSLV
0
VSL1 SXA,1
RTX1
STORE DELVSIN
ABVAL
STOVL VGDISP # MAG DELV
RTIG
PDVL VAD
DELVSIN
VTIG
CALL
PERIAPO1
CALL
SHIFTR1
CALL
MAXCHK
STODL HPER # PERIGEE ALT B+29
4D
CALL
SHIFTR1
CALL
MAXCHK
STCALL HAPO # APOGEE ALT B+29
QTEMP
# Page 641
# S31.1 PROGRAM DESCRIPTION 28DEC67
# MOD.1 BY S.ZELDIN
# S31.1 COMPUTES DELV IN REF AND LV COORDS,MAG OF DELV,INTERCEPT TIME,
# APOGEE AND PERIGEE ALT FOR REQUIRED MANEUVER
# CALLING SEQUENCE
# L CALL
# L+1 S31.1
# NORMAL EXIT MODE
# AT L +2 OF CALLING SEQUENCE(GOTO L+2)
# SUBROUTINES CALLED
# AGAIN
# PERIAPO1
# SHIFTR1
# MIDGIM
# NO ALARM OR ABORT MODES
# INPUT
# DELLT4 DP +28
# TIG DP +28
# RTARG VCT +29
# OUTPUT
# DELVLVC VCT +7
# VGDISP DP +7
# HAPO DP +29
# HPER DP +29
# TPASS4 DP +28
# DEBRIS - QTEMP
S31.1 STQ DLOAD
QTEMP
TIG
STCALL TDEC1
AGAIN # RETURNS RTX2,RTX1,RATT,VATT,VIPRIME
VLOAD PDVL # DELUEET3
RTIG
VIPRIME
CALL
PERIAPO1
CALL
SHIFTR1
CALL
MAXCHK
STODL HPER # B29
4D
CALL
SHIFTR1
CALL
MAXCHK
STOVL HAPO # B29
# Page 642
DELVEET3
STORE 0
SET CALL
AVFLAG
MIDGIM # GET DELVLVC B7 FORDISPLAY
ABVAL
STODL VGDISP # B+7 FOR DISPLAY
DELLT4
DAD
TIG
STCALL TPASS4 # FOR S40.1
QTEMP
# Page 643
# SUBROUTINE NAME: DELRSPL (CONTINUATION OF V 82 IN CSM IF P11 ACTI
# TRANSFERRED COMPLETELY FROM SUNDISK, P30S REV 33. 9 SEPT 67.
# MOD NO: 0 MOD BY: ZELDIN DATE:
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 12 MAY 67 ADD UR.RT CALC WHEN BELOW 300K FT
# MOD NO: 2.1 MOD BY: RR BAIRNSFATHER DATE: 5 JULY 67 FIX ERROR ON MOD. 2.
# MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 12 JUL 67 CHANGE SIGN OF DISPLAYED ERROR.
# MOD 4 MOD BY S.ZELDIN DATE 3 APRIL 68 CHANGE EQUATIONS FOR L/D=.18 WHICH REPLA
# FUNCTION: CALCULATE (FOR DISPLAY ON CALL) AN APPROXIMATE MEASURE OF IN-PLANE SPLASH DOWN
# ERROR. IF THE FREE-FALL TRANSFER ANGLE TO 300K FT ABOVE PAD RADIUS IS POSITIVE:
# SPLASH ERROR= -RANGE TO TARGET + FREE-FALL TRANSFER ANGLE + ESTIMATED ENTRY ANGLE.
# THE TARGET LOCATION AT ESTIMATED TIME OF IMPACT IS USED. IF THE FREE-FALL TRANSFER
# ANGLE IS NEGATIVE: SPASH ERROR= -RANGE TO TARGET
# THE PRESENT TARGET LOCATION IS USED.
# CALLING SEQUENCE CALLED AFTER SR30.1 IF IN CSM AND IF P11 OPERATING (UNDER CONTROL OF V82)
# SUBROUTINES CALLED: VGAMCALC, TFF/TRIG, LALOTORV.
# EXIT: RETURN DIRECTLY TO V 82 PROG. AT SPLRET
# ERASABLE INITIALIZATION LEFT BY SR30.1 AND V82GON1
# OUTPUT: RSP-RREC RANGE IN REVOLUTIONS. DSKY DISPLAY IN N. MI.
# DEBRIS: QPRET, PDL0 ...PDL7 ,PDL10
# THETA(1)
BANK 32
SETLOC DELRSPL1
BANK
COUNT* $$/P30 # PROGRAMS: P30 EXTERNAL DELTA V
DELRSPL STORE 8D
BPL DSU
CANTDO # GONE PAST 300K FT ALT
1BITDP
BOV CALL
CANTDO # POSMAX INDICATES NO 300K FT SOLUTION.
VGAMCALC # +GAMMA(REV) IN PMAC,V300 MAG(B-7)=PDL 0
PUSH CALL
TFF/TRIG
CALL
AUGEKUGL
PDDL ACOS # T ENTRY PDL 6
CDELF/2
DAD
4
GETARG STOVL THETA(1)
LAT(SPL)
STODL LAT
HI6ZEROS
STODL ALT # ALT=0 = LAT +4
PIPTIME
# Page 644
BON DLOAD
V37FLAG
+2
TSTART82
DSU DAD
8D
CLEAR CALL
ERADFLAG
LALOTORV # R RECOV. IN ALPHAV AND MPAC
UNIT PDVL
RONE
UNIT DOT
SL1 ARCCOS
BDSU # ERROR = THETA EST - THETA TARG
# NEGATIVE NUMBER SIGNIFIES THAT WILL FALL SHORT.
# POSITIVE NUMBER SIGNIFIES THAT WILL OVERSHOOT.
THETA(1)
DELRDONE STCALL RSP-RREC # DOWNRANGE RECOVERY RANGE ERROR /360
INTWAKE0
CALL
SPLRET
CANTDO DLOAD PDDL # INITIALIZE ERASE TO DOT TARGET AND UR
# FOR RANGE ANGLE.
HIDPHALF # TO PDL 0 FOR DEN IN DDV.
HI6ZEROS
PUSH # ZERO TO PDL 2 FOR PHI ENTRY
STCALL 8D
GETARG # GO SET RSP-RREC =0
AUGEKUGL VLOAD
X1CON -2
STODL X1 -2
0
DSU BMN
V(21K)
LOOPSET
XSU,1 XCHX,2
S1
X1
XCHX,2 DSU
S1
V(3K)
BMN XCHX,2
LOOPSET
S1
DSU BMN
V(4K)
LOOPSET
XCHX,2 XCHX,2
# Page 645
S1
X1
DSU BMN
V(400)
LOOPSET
SXA,1
S1
LOOPSET INCR,1 GOTO
DEC 1
K1K2LOOP
K2CALC SXA,1
S1
K1K2LOOP DLOAD DSU*
0
V(32K) +1,1
DMP* DAD*
YK1K2 +1,1
CK1K2 +1,1
PDDL TIX,1
2
K2CALC
DSU BDDV
PUSH BOV
MAXPHI
BMN DSU
MAXPHI
MAXPHIC
BPL
MAXPHI
PHICALC DLOAD DSU # PHI ENTRY PDL 4D
0
V(26K)
BPL DLOAD
TGR26
TLESS26
DDV
0
TENT DMP RVQ
4D
TGR26 DLOAD GOTO
TGR26CON
TENT
MAXPHI DLOAD PDDL
MAXPHIC
GOTO
PHICALC
MAXPHIC 2DEC .09259298 # 2000 NM FOR MAXIMUM PHI ENTRY
# Page 646
COUNT* $$/P30
# BELOW
# <<<< TABLE IS INDEXED. KEEP IN ORDER >>>>
2DEC 7.07304526 E-4 # 5500
2DEC 3.08641975 E-4 # 2400
2DEC 3.08641975 E-4 # 2400
2DEC -8.8888888 E-3 # -3.2
2DEC 2.7777777 E-3 # 1
CK1K2 2DEC 6.6666666 E-3 # 2.4
2DEC 0 # 0
2DEC* -1.86909989 E-5 B7* # -.443
2DEC 0
2DEC* 1.11639691 E-3 B7* # .001225
2DEC* 9.56911636 E-4 B7* # .00105
YK1K2 2DEC* 2.59733157 E-4 B7* # .000285
V(400) 2DEC 1.2192 B-7
V(28K) 2DEC 85.344 B-7
V(3K) 2DEC 9.144 B-7
V(24K) 2DEC 73.152 B-7
2DEC 85.344 B-7
V(32K) 2DEC 97.536 B-7
V(4K) 2DEC 12.192 B-7
V(21K) 2DEC 64.000 B-7
TLESS26 2DEC* 5.70146688 E7 B-35* # 8660PHI/V
TGR26CON 2DEC 7.2 E5 B-28 # PHI/3
V(26K) 2DEC 79.248 B-7 # 26000
# Page 647
X1CON DEC 10
DEC 8
DEC 6
# <<<< TABLE IS INDEXED. KEEP IN ORDER >>>>
# ABOVE
# Page 648
# ***** AVFLAGA/P *****
# SUBROUTINES USED
# UPFLAG
# DOWNFLAG
SETLOC P30SUBS
BANK
EBANK= SUBEXIT
AVFLAGA EXTEND # AVFLAG = CSM
QXCH SUBEXIT
TC DOWNFLAG
ADRES AVFLAG # BIT 5 FLAG 2
CAF EBANK7
TS EBANK
EBANK= ECSTEER
CAF BIT13
TS ECSTEER # SET ECSTEER = 1
CAF EBANK4
TS EBANK
EBANK= SUBEXIT
TC SUBEXIT
AVFLAGP EXTEND # AVFLAG = LEM
QXCH SUBEXIT
TC UPFLAG
ADRES AVFLAG # BIT 5 FLAG 2
TC SUBEXIT
P20FLGON EXTEND
QXCH SUBEXIT
TC UPFLAG
ADRES TRACKFLG
TC UPFLAG
ADRES UPDATFLG
TC SUBEXIT # DP B4

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,162 +0,0 @@
# Copyright: Public domain.
# Filename: P76.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
# Website: www.ibiblio.org/apollo.
# Pages: pp 511-513
# Mod history: 2009-05-08 HG Adapting from the Luminary131/ file
# of the same name, using Comanche055 page
# images 0511.jpg - 0513.jpg.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 511
# 1) PROGRAM NAME - TARGET DELTA V PROGRAM (P76).
# 2) FUNCTIONAL DESCRIPTION - UPON ENTRY BY ASTRONAUT ACTION, P76 FLASHES DSKY REQUESTS TO THE ASTRONAUT
# TO PROVIDE VIA DSKY (1) THE DELTA V TO BE APPLIED TO THE OTHER VEHICLE STATE VECTOR AND (2) THE
# TIME (TIG) AT WHICH THE OTHER VEHICLE VELOCITY WAS CHANGED BY EXECUTION OF A THRUSTING MANEUVER. THE
# OTHER VEHICLE STATE VECTOR IS INTEGRATED TO TIG AND UPDATED BY THE ADDITION OF DELTA V (DELTA V HAVING
# BEEN TRANSFORMED FROM LV TO REF COSYS). USING INTEGRVS, THE PROGRAM THEN INTEGRATES THE OTHER
# VEHICLE STATE VECTOR TO THE STATE VECTOR OF THIS VEHICLE, THUS INSURING THAT THE W-MATRIX AND BOTH VEHICLE
# STATES CORRESPOND TO THE SAME TIME.
# 3) ERASABLE INITIALIZATION REQUIRED - NONE.
# 4) CALLING SEQUENCES AND EXIT MODES - CALLED BY ASTRONAUT REQUEST THRU DSKY V 37 E 76 E.
# EXITS BY TCF ENDOFJOB.
# 5) OUTPUT - OTHER VEHICLE STATE VECTOR INTEGRATED TO TIG AND INCREMENTED BY DELTA V IN REF COSYS.
# THE PUSHLIST CONTAINS THE MATRIX BY WHICH THE INPUT DELTA V MUST BE POST-MULTIPLIED TO CONVERT FROM LV
# TO REF COSYS.
# 6) DEBRIS - OTHER VEHICLE STATE VECTOR.
# 7) SUBROUTINES CALLED - BANKCALL,GOXDSPF,CSMPREC (OR LEMPREC),ATOPCSM (OR ATOPLEM),INTSTALL,INTWAKE, PHASCHNG
# INTPRET, INTEGRVS, AND MINIRECT.
# 8) FLAG USE - MOONFLAG,CMOONFLG,INTYPFLG,RASFLAG, AND MARKCTR.
BANK 30
SETLOC P76LOC
BANK
COUNT* $$/P76
EBANK= TIG
P76 TC UPFLAG
ADRES TRACKFLG
CAF V06N84 # FLASH LAST DELTA V.
TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
CADR GOFLASH
TCF ENDP76
TC +2 # PROCEED
TC -5 # STORE DATA AND REPEAT FLASHING
CAF V06N84 +1 # FLASH VERB 06 NOUN 33, DISPLAY LAST TIG,
TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
CADR GOFLASH
TCF ENDP76
TC +2
TC -5
TC INTPRET # RETURN TO INTERPRETIVE CODE
DLOAD # SET D(MPAC)=TIG IN CSEC B28
TIG
STCALL TDEC1 # SET TDEC1=TIG FOR ORBITAL INTEGRATION
OTHPREC
COMPMAT VLOAD UNIT
RATT
# Page 512
VCOMP # U(-R)
STORE 24D # U(-R) TO 24D
VXV UNIT # U(-R) X V = U(V X R)
VATT
STORE 18D
VXV UNIT # U(V X R) X U(-R) = U((R X V) X R)
24D
STOVL 12D
DELVOV
VXM VSL1 # V(MPAC)=DELTA V IN REFCOSYS
12D
VAD
VATT
STORE 6 # V(PD6)=VATT + DELTA V
CALL # PREVENT WOULD-BE USER OF ORBITAL
INTSTALL # INTEG FROM INTERFERING WITH UPDATING
CALL
P76SUB1
VLOAD VSR*
6
0,2
STOVL VCV
RATT
VSR*
0,2
STODL RCV
TIG
STORE TET
CLEAR DLOAD
INTYPFLG
TETTHIS
INTOTHIS STCALL TDEC1
INTEGRVS
CALL
INTSTALL
CALL
P76SUB1 # SET/CLEAR MOONFLAG
VLOAD
RATT1
STORE RRECT
STODL RCV
TAT
STOVL TET
VATT1
CALL
MINIRECT
EXIT
TC PHASCHNG
OCT 04024
# Page 513
TC UPFLAG
ADRES REINTFLG
TC INTPRET
CALL
ATOPOTH
SSP EXIT
QPRET
OUT
TC BANKCALL # PERMIT USE OF ORBITAL INTEGRATION
CADR INTWAKE1
OUT EXIT
ENDP76 CAF ZERO
TS MARKCTR # CLEAR RR TRACKING MARK COUNTER
TS VHFCNT
CAF NEGONE
TS MRKBUF2 # INVALIDATE MARK BUFFER
TCF GOTOPOOH
V06N84 NV 0684
NV 0633
P76SUB1 CLEAR SLOAD
MOONFLAG
X2
BHIZ SET # X2=0...CLEAR MOONFLAG
+2 # =2.....SET MOONFLAG
MOONFLAG
RVQ

View File

@ -1,416 +0,0 @@
# Copyright: Public domain.
# Filename: PHASE_TABLE_MAINTENANCE.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1404-1413
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
# from the Colossus249/ file of the same
# name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1404
# SUBROUTINE TO UPDATE THE PROGRAM NUMBER DISPLAY ON THE DSKY.
COUNT 02/PHASE
BLOCK 02
SETLOC FFTAG1
BANK
NEWMODEX INDEX Q # UPDATE MODREG. ENTRY FOR MODE IN FIXED.
CAF 0
INCR Q
NEWMODEA TS MODREG # ENTRY FOR MODE IN A.
MMDSPLAY CAF +3 # DISPLAY MAJOR MODE.
PREBJUMP LXCH BBANK # PUTS BBANK IN L
TCF BANKJUMP # PUTS Q INTO A
CADR SETUPDSP
# RETURN TO CALLER +3 IF MODE = THAT AT CALLER +1. OTHERWISE RETURN TO CALLER +2.
CHECKMM INDEX Q
CS 0
AD MODREG
EXTEND
BZF Q+2
TCF Q+1 # NO MATCH
TCQ = Q+2 +1
BANK 14
SETLOC PHASETAB
BANK
COUNT 10/PHASE
SETUPDSP INHINT
DXCH RUPTREG1 # SAVE CALLER-S RETURN 2CADR
CAF PRIO30 # EITHER A TASK OR JOB CAN COME TO
TC NOVAC # NEWMODEX
EBANK= MODREG
2CADR DSPMMJOB
DXCH RUPTREG1
RELINT
DXCH Z # RETURN
DSPMMJOB EQUALS DSPMMJB
BLOCK 02
# Page 1405
SETLOC FFTAG1
BANK
# Page 1406
# PHASCHNG IS THE MAIN WAY OF MAKING PHASE CHANGES FOR RESTARTS. THERE ARE THREE FORMS OF PHASCHNG, KNOWN AS TYPE
# A, TYPE B, AND TYPE C. THEY ARE ALL CALLED AS FOLLOWS, WHERE OCT XXXXX CONTAINS THE PHASE INFORMATION,
#
# TC PHASCHNG
# OCT XXXXX
#
# TYPE A IS CONCERNED WITH FIXED PHASE CHANGES, THAT IS, PHASE INFORMATION THAT IS STORED PERMANENTLY. THESE
# OPTIONS ARE, WHERE G STANDS FOR A GROUP AND .X FOR THE PHASE,
#
# G.0 INACTIVE, WILL NOT PERMIT A GROUP G RESTART
# G.1 WILL CAUSE THE LAST DISPLAY TO BE REACTIVATED, USED MAINLY IN MANNED FLIGHTS
# G.EVEN A DOUBLE TABLE RESTART, CAN CAUSE ANY COMBINATION OF TWO JOBS, TASKS, AND/OR
# LONGCALL TO BE RESTARTED.
# G.ODD NOT .1 A SINGLE TABLE RESTART, CAN CAUSE EITHER A JOB, TASK, OR LONGCALL RESTART.
#
# THIS INFORMATION IS PUT INTO THE OCTAL WORD AFTER TC PHASCHNG AS FOLLOWS
#
# TL0 00P PPP PPP GGG
#
# WHERE EACH LETTER OR NUMBER STANDS FOR A BIT. THE G:S STAND FOR THE GROUP, OCTAL 1-7, THE P:S FOR THE PHASE,
# OCTAL 0 - 127. 0:S MUST BE 0. IF ONE WISHES TO HAVE THE TBASE OF GROUP G TO BE SET AT THIS TIME,
# T IS SET TO 1, OTHERWISE IT IS SET TO 0. SIMILARLY IF ONE WISHES TO SET LONGBASE, THEN L IS SET TO 1, OTHERWISE
# IT IS SET TO 0. SOME EXAMPLES,
#
# TC PHASCHNG # THIS WILL CAUSE GROUP 3 TO BE SET TO 0,
# OCT 00003 # MAKING GROUP 3 INACTIVE
#
# TC PHASCHNG # IF A RESTART OCCURS THIS WOULD CAUSE
# OCT 00012 # GROUP 2 TO RESTART THE LAST DISPLAY
#
# TC PHASCHNG # THIS SETS THE TBASE OF GROUP 4 AND IN
# OCT 40064 # CASE OF A RESTART WOULD START UP THE TWO
# # THINGS LOCATED IN THE DOUBLE 4.6 RESTART
# # LOCATION.
# TC PHASCHNG # THIS SETS LONGBASE AND UPON A RESTART
# OCT 20135 # CAUSES 5.13 TO BE RESTARTED (SINCE
# # LONGBASE WAS SET THIS SINGLE ENTRY
# # SHOULD BE A LONGCALL)
# TC PHASCHNG # SINCE BOTH TBASE4 AND LONGBASE ARE SET,
# OCT 60124 # 4.12 SHOULD CONTAIN BOTH A TASK AND A
# # LONGCALL TO BE RESTARTED
#
# TYPE C PHASCHNG CONTAINS THE VARIABLE TYPE OF PHASCHNG INFORMATION. INSTEAD OF THE INFORMATION BEING IN A
# PERMANENT FORM, ONE STORES THE DESIRED RESTART INFORMATION IN A VARIABKE LOCATION. THE BITS ARE AS FOLLOWS,
#
# TL0 1AD XXX CJW GGG
#
# WHERE EACH LETTER OR NUMBER STANDS FOR A BIT. THE G:S STAND FOR THE GROUP, OCTAL 1 - 7. IF THE RESTART IS TO
# BE BY WAITLIST, W IS SET TO 1, IF IT IS A JOB, J IS SET TO 1, IF IT IS A LONGCALL, C IS SET TO 1. ONLY ONE OF
# THESE THREE BITS MAY BE SET. X:S ARE IGNORED 1 MUST BE 1, AND 0 MUST BE 0. AGAIN T STANDS FOR THE TBASE,
# Page 1407
# AND L FOR LONGBASE. THE BITS A AND D ARE CONCERNED WITH THE VARIABLE INFORMATION. IF D IS SET TO 1, A PRIORITY
# OR DELTA TIME WILL BE READ FROM THE NEXT LOCATION AFTER THE OCTAL INFORMATION, IF THIS IS TO BE INDIRECT, THAT
# IS, THE NAME OF A LOCATION COMT+INING THE INFORMATION (DELTA TIME ONLY), THEN THIS IS GIVEN AS THE -GENADR OF
# THAT LOCATION WHICH CONTAINS THE DELTA TIME. IF THE OLD PRIORITY OR DELTA TIME IS TO BE USED, THAT WHICH IS
# ALREADY IN THE VARIABLE STORAGE, THEN D IS SET TO 0. NEXT THE A BIT IS USED. IF IT IS SET TO 0, THE ADDRESS
# THAT WOULD BE RESTARTED DURING A RESTART IS THE NEXT LOCATION AFTER THE PHASE INFORMATION, THAT IS, EITHER
# (TC PHASCHNG) +2 OR +3, DEPENDING ON WHETHER D HAD BEEN SET OR NOT. IF A IS SET TO 1, THEN THE ADDRESS THAT
# WOULD BE RESTARTED IS THE 2CADR THAT IS READ FROM THE NEXT TWO LOCATIONS. EXAMPLES,
#
# AD TC PHASCHNG # THIS WOULD CAUSE LOCATION AD +3 TO BE
# AD+1 OCT 05023 # RESTARTED BY GROUP THREE WITHA PRIORITY
# AD+2 OCT 23000 # OF 23. NOTE UPON RETURNING IT WOULD
# AD+3 # ALSO GO TO AD+3
#
# AD TC PHASCHNG # GROUP 1 WOULD CAUSE CALLCALL TO BE
# AD+1 OCT 27441 # BE STARTED AS A LONGCALL FROM THE TIME
# AD+2 -GENADR DELTIME # STORED IN LONGBASE (LONGBASE WAS SET) BY
# AD+3 2CADR CALLCALL # A DELTATIME STORED IN DELTIME. THE
# AD+4 # BBCON OF THE 2CADR SHOULD CONTAIN THE E
# AD+5 # BANK OF DELTIME. PHASCHNG RETURNS TO
# # LOCATION AD+5
#
# NOTE THAT IF A VARIABLE PRIORITY IS GIVEN FOR A JOB, THE JOB WILL BE RESTARTED AS A NOVAC IF THE PRIORITY IS
# NEGATIVE, AS A FINDVAC IF THE PRIORITY IS POSITIVE.
#
# TYPE B PHASCHNG IS A COMBINATION OF VARIABLE AND FIXED PHASE CHANGES. IT WILL START UP A JOB AS INDICATED
# BELOW AND ALSO START UP ONE FIXED RESTART, THAT IS EITHER AN G.1 OR A G.ODD OR THE FIRST ENTRY OF G.EVEN
# DOUBLE ENTRY. THE BIT INFORMATION IS AS FOLLOWS,
#
# TL1 DAP PPP PPP GGG
#
# WHERE EACH LETTER OR NUMBER STANDS FOR A BIT. THE G:S STAND FOR THE GROUP, OCTAL 1 - 7. THE P:S FOR THE FIXED
# PHASE INFORMATION, OCTAL 0 - 127. 1 MUST BE 1. AND AGAIN T STANDS FOR THE TBASE AND L FOR LONGBASE. D THIS
# TIME STANDS ONLY FOR PRIORITY SINCE THIS WILL BE CONSIDERED A JOB, AND IT MUST BE GIVEN DIRECTLY IF GIVEN.
# AGAIN A STANDS FOR THE ADDRESS OF THE LOCATION TO BE RESTARTED, 1 IF THE 2CADR IS GIVEN, OR 0 IF IT IS TO BE
# THE NEXT LOCATION.(THE RETURN LOCATION OF PHASCHNG) EXAMPLES,
# AD TC PHASCHNG # TBASE IS SET AND A RESTART CAUSE GROUP 3
# AD+1 OCT 56043 # TO START THE JOB AJOBAJOB WITH PRIORITY
# AD+2 OCT 31000 # 31 AND THE FIRST ENTRY OF 3.4SPOT (WE CAN
# AD+3 2CADR AJOBAJOB # ASSUME IT IS A TASK SINCE WE SET TBASE3)
# AD+4 # UPON RETURN FROM PHASCHNG CONTROL WOULD
# AD+5 # GO TO AD+5
#
# AD TC PHASCHNG # UPON A RESTART THE LAST DISPLAY WOULD BE
# AD+1 OCT 10015 # RESTARTED AND A JOB WITH THE PREVIOUSLY
# AD+2 # STORED PRIORITY WOULD BE BEGUN AT AD+2
# # BY MEANS OF GROUP 5
# Page 1408
# THE NOVAC-FINDVAC CHOICE FOR JOBS HOLDS HERE ALSO - NEGATIVE PRIORITY CAUSES A NOVAC CALL, POSITIVE A FINDVAC.
# SUMMARY OF BITS:
# TYPE A TL0 00P PPP PPP GGG
# TYPE B TL1 DAP PPP PPP GGG
# TYPE C TL0 1AD XXX CJW GGG
# Page 1409
# 2PHSCHNG IS USED WHEN ONE WISHES TO START UP A GROUP OR CHANGE A GROUP WHILE UNDER THE CONTROL OF A DIFFERENT
# GROUP. FOR EXAMPLE, CHANGE THE PHASE OF GROUP 3 WHILE THE PORTION OF THE PROGRAM IS UNDER GROUP 5. ALL 2PHSCHNG
# CALLS ARE MADE IN THE FOLLOWING MANNER,
# TC 2PHSCHNG
# OCT XXXXX
# OCT YYYYY
# WHERE OCT XXXXX MUST BE OF TYPE A AND OCT YYYYY MAY BE OF EITHER TYPE A OR TYPE B OR TYPEC. THERE IS ONE
# DIFFERENCE --- NOTE- IF LONGBASE IS TO BE SET THIS INFORMATION IS GIVEN IN THE OCT YYYYY INFORMATION, IT WILL
# BE DISREGARDED IF GIVEN WITH THE OCT XXXXX INFORMATION. A COUPLE OF EXAMPLES MAY HELP.
# AD TC 2PHACHNG # SET TBASE3 AND IF A RESTART OCCURS START
# AD+1 OCT 40083 # THE TWO ENTRIES IN 3.8 TABLE LOCATION
# AD+2 OCT 05025 # THIS IS OF TYPE C. SET THE JOB TO BE
# AD+3 OCT 18000 # TO BE LOCATION AD+4, WITH A PRIORITY 18,
# AD+4 # FOR GROUP 5 PHASE INFORMATION.
COUNT 02/PHASE
2PHSCHNG INHINT # THE ENTRY FOR A DOUBLE PHASE CHANGE
NDX Q
CA 0
INCR Q
TS TEMPP2
MASK OCT7
DOUBLE
TS TEMPG2
CA TEMPP2
MASK OCT17770 # NEED ONLY 1770, BUT WHY GET A NEW CONST.
EXTEND
MP BIT12
XCH TEMPP2
MASK BIT15
TS TEMPSW2 # INDICATES WHETHER TO SET TBASE OR NOT
TCF PHASCHNG +3
PHASCHNG INHINT
CA ONE # INDICATESWE CAME FROM A PHASCHNG ENTRY
TS TEMPSW2
NDX Q
CA 0
INCR Q
TS TEMPSW
# Page 1410
EXTEND
DCA ADRPCHN2 # OFF TO SWITCHED BANK
DTCB
EBANK= LST1
ADRPCHN2 2CADR PHSCHNG2
ONEORTWO LXCH TEMPBBCN
LXCH BBANK
LXCH TEMPBBCN
MASK OCT14000 # SEE WHAT KIND OF PHASE CHANGE IT IS
CCS A
TCF CHECKB # IT IS OF TYPE :B:
CA TEMPP
MASK BIT7
CCS A # SHALL WE USE THE OLD PRIORITY
TCF GETPRIO # NO GET A NEW PRIORITY (OR DELTA T)
OLDPRIO NDX TEMPG # USE THE OLD PRIORITY (OR DELTA T)
CA PHSPRDT1 -2
TS TEMPPR
CON1 CA TEMPP # SEE IF A 2CADR IS GIVEN
MASK BIT8
CCS A
TCF GETNEWNM
CA Q
TS TEMPNM
CA BB
EXTEND # PICK UP USERS SUPERBANK
ROR SUPERBNK
TS TEMPBB
TOCON2 CA CON2ADR # BACK TO SWITCHED BANK
LXCH TEMPBBCN
DTCB
CON2ADR GENADR CON2
GETPRIO NDX Q # DON:T CARE IF DIRECT OR INDIRECT
CA 0 # LEAVE THAT DECISION TO RESTARTS
INCR Q # OBTAIN RETURN ADDRESS
TCF CON1 -1
GETNEWNM EXTEND
# Page 1411
INDEX Q
DCA 0
DXCH TEMPNM
CA TWO
ADS Q # OBTAIN RETURN ADDRESS
TCF TOCON2
OCT14000 EQUALS PRIO14
TEMPG EQUALS ITEMP1
TEMPP EQUALS ITEMP2
TEMPNM EQUALS ITEMP3
TEMPBB EQUALS ITEMP4
TEMPSW EQUALS ITEMP5
TEMPSW2 EQUALS ITEMP6
TEMPPR EQUALS RUPTREG1
TEMPG2 EQUALS RUPTREG2
TEMPP2 EQUALS RUPTREG3
TEMPBBCN EQUALS RUPTREG4
BB EQUALS BBANK
BANK 14
SETLOC PHASETAB
BANK
EBANK= PHSNAME1
COUNT 10/PHASE
PHSCHNG2 LXCH TEMPBBCN
CA TEMPSW
MASK OCT7
DOUBLE
TS TEMPG
CA TEMPSW
MASK OCT17770
EXTEND
MP BIT12
TS TEMPP
CA TEMPSW
MASK OCT60000
XCH TEMPSW
MASK OCT14000
CCS A
TCF ONEORTWO
# Page 1412
CA TEMPP # START STORING THE PHASE INFORMATION
NDX TEMPG
TS PHASE1 -2
BELOW1 CCS TEMPSW2 # IS IT A PHASCHNG OR A 2PHSCHNG
TCF BELOW2 # IT:S A PHASCHNG
TCF +1 # IT:S A 2PHSCHNG
CS TEMPP2
LXCH TEMPP2
NDX TEMPG2
DXCH -PHASE1 -2
CCS TEMPSW2
NOOP # CAN:T GET HERE
TCF BELOW2
CS TIME1
NDX TEMPG2
TS TBASE1 -2
BELOW2 CCS TEMPSW # SEE IF WE SHOULD SET TBASE OR LONGBASE
TCF BELOW3 # SET LONGBASE ONLY
TCF BELOW4 # SET NEITHER
CS TIME1 # SET TBASE TO BEGIN WITH
NDX TEMPG
TS TBASE1 -2
CA TEMPSW # SHALL WE NOW SET LONGBASE
AD BIT14COM
CCS A
NOOP # ***** CAN'T GET HERE *****
BIT14COM OCT 17777 # ***** CAN'T GET HERE *****
TCF BELOW4 # NO WE NEED ONLY SET TBASE
BELOW3 EXTEND # SET LONGBASE
DCA TIME2
DXCH LONGBASE
BELOW4 CS TEMPP # AND STORE THE FINAL PART OF THE PHASE
NDX TEMPG
TS -PHASE1 -2
CA Q
LXCH TEMPBBCN
RELINT
DTCB
CON2 LXCH TEMPBBCN
# Page 1413
CA TEMPP
NDX TEMPG
TS PHASE1 -2
CA TEMPPR
NDX TEMPG
TS PHSPRDT1 -2
EXTEND
DCA TEMPNM
NDX TEMPG
DXCH PHSNAME1 -2
TCF BELOW1
BLOCK 02
SETLOC FFTAG1
BANK
COUNT 02/PHASE
CHECKB MASK BIT12 # SINCE THIS IS OF TYPE B, THIS BIT SHOULD
CCS A # BE HERE IF WE ARE TO GET A NEW PRIORITY
TCF GETPRIO # IT IS, SO GET NEW PRIORITY
TCF OLDPRIO # IT ISN:T, USE THE OLD PRIORITY

File diff suppressed because it is too large Load Diff

View File

@ -1,861 +0,0 @@
# Copyright: Public domain.
# Filename: PINBALL_NOUN_TABLES.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 268-284
# Contact: Ron Burkey <info@sandroid.org>,
# Fabrizio Bernardini <fabrizio@spacecraft.it>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-18 FB Transcription Batch 3 Assignment.
# 2009-05-23 RSB In NNTYPTAB, corrected former 13 SPARE.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 268
# THE FOLLOWING REFERS TO THE NOUN TABLES
# COMPONENT CODE NUMBER INTERPRETATION
# 00000 1 COMPONENT
# 00001 2 COMPONENT
# 00010 3 COMPONENT
# X1XXX BIT 4 = 1. DECIMAL ONLY
# 1XXXX BIT 5 = 1. NO LOAD
# END OF COMPONENT CODE NUMBERS
# SF ROUTINE CODE NUMBER INTERPRETATION
# 00000 OCTAL ONLY
# 00001 STRAIGHT FRACTIONAL
# 00010 CDU DEGREES (XXX.XX)
# 00011 ARITHMETIC SF
# 00100 ARITH DP1 OUT(MULT BY 2EXP14 AT END) IN(STRAIGHT)
# 00101 ARITH DP2 OUT(STRAIGHT) IN(SL 7 AT END)
# 00110 Y OPTICS DEGREES (XX.XXX MAX 89.999)
# 00111 ARITH DP3 OUT ( SL 7 AT END) IN ( STRAIGHT)
# 01000 WHOLE HOURS IN R1, WHOLE MINUTES (MOD 60) IN R2,
# SECONDS (MOD 60) 0XX.XX IN R3. *** ALARMS IF USED WITH OCTAL
# 01001 MINUTES (MOD 60) IN D1D2, D3 BLANK, SECONDS (MOD 60) IN D4D5
# LIMITS TO 59B59 IF MAG EXCEEDS THIS VALUE.
# ALARMS IF USED WITH OCTAL ******** IN (ALARM)
# 01010 ARITH DP4 OUT (STRAIGHT) IN (SL 3 AT END)
# 01011 ARITH1 SF OUT(MULT BY 2EXP14 AT END) IN(STRAIGHT)
# 01100 2 INTEGERS IN D1D2, D4D5, D3 BLANK.
# ALARMS IF USED WITH OCTAL ******** IN (ALARM)
# 01101 DP STRAIGHT FRACTIONAL
# END OF SF ROUTINE CODE NUMBERS
# SF CONSTANT CODE NUMBER INTERPRETATION
# 00000 WHOLE USE ARITH
# 00000 DP TIME SEC (XXX.XX SEC) USE ARITHDP1
# 00001 SPARE
# 00010 CDU DEGREES USE CDU DEGREES
# 00010 Y OPTICS DEGREES USE Y OPTICS DEGREES
# 00011 DP DEGREES (90) XX.XXX DEG USE ARITHDP3
# 00100 DP DEGREES (360) XXX.XX DEG USE ARITHDP4
# 00101 DEGREES (180) XXX.XX DEG USE ARITH
# 00110 WEIGHT2 (XXXXX. LBS) USE ARITH1
# 00111 POSITION5 (XXX.XX NAUTICAL MILES)
# USE ARITHDP3
# 01000 POSITION4 (XXXX.X NAUTICAL MILES)
# Page 269
# USE ARITHDP3
# 01001 VELOCITY2 (XXXXX. FT/SEC) USE ARITHDP4
# 01010 VELOCITY3 (XXXX.X FT/SEC) USE ARITHDP3
# 01011 ELEVATION DEGREES (89.999MAX) USE ARITH
# 01100 TRIM DEGREES (XXX.XX DEG) USE ARITH
# 01101 INERTIA (XXXXXBB. SLUG FT FT) USE ARITH
# 01101 THRUST MOMENT (XXXXXBB.FT LBS) USE ARITH
# 01110 VELOCITY/2VS (XXXXX. FT/SEC)USE ARITHDP4
# 01111 POSITION6 (XXXX.X NAUT MI) USE ARITHDP3
# 10000 DRAG ACCELERATION (XXX.XX G)USE ARITHDP2
# 10001 POSITION8 (XXXX.X NAUT MI) USE ARITHDP3
# 10010 POSITION9 (XXXXX. FT) USE ARITHDP3
# 10011 VELOCITY4 (XXXX.X FT/SEC) USE ARITHDP2
# END OF SF CONSTANT CODE NUMBERS
# FOR GREATER THAN SINGLE PRECISION SCALES, PUT ADDRESS IN MAJOR PART INTO
# NOUN TABLES.
# OCTAL LOADS PLACE +0 INTO MAJOR PART, DATA INTO MINOR PART.
# OCTAL DISPLAYS SHOW MINOR PART ONLY.
# TO GET AT BOTH MAJOR AND MINOR PARTS(IN OCTAL), USE NOUN 01.
# A NOUN MAY BE DECLARED :DECIMAL ONLY: BY MAKING BIT4=1 OF ITS COMPONENT
# CODE NUMBER. IF THIS NOUN IS USED WITH ANY OCTAL DISPLAY VERB, OR IF
# DATA IS LOADED IN OCTAL, IT ALARMS.
# IN LOADING AN :HOURS, MINUTES, SECONDS: NOUN, ALL 3 WORDS MUST BE
# LOADED, OR ALARM.
# ALARM IF AN ATTEMPT IS MADE TO LOAD :SPLIT MINUTES/SECONDS: (MMBSS).
# THIS IS USED FOR DISPLAY ONLY.
# Page 270
# THE FOLLOWING ROUTINES ARE FOR READING THE NOUN TABLES AND THE SF TABLES
# (WHICH ARE IN A SEPARATE BANK FROM THE REST OF PINBALL). THESE READING
# ROUTINES ARE IN THE SAME BANK AS THE TABLES. THEY ARE CALLED BY DXCH Z.
# LODNNTAB LOADS NNADTEM WITH THE NNADTAB ENTRY, NNTYPTEM WITH THE
# NNTYPTAB ENTRY. IF THE NOUN IS MIXED, IDADITEM IS LOADED WITH THE FIRST
# IDADDTAB ENTRY, IDAD2TEM THE SECOND IDADDTAB ENTRY, IDAD3TEM THE THIRD
# IDADDTAB ENTRY, RUTMXTEM WITH THE RUTMXTAB ENTRY. MIXBR IS SET FOR
# MIXED OR NORMAL NOUN.
BANK 06
SETLOC PINBALL3
BANK
COUNT 42/NOUNS
LODNNTAB DXCH IDAD2TEM # SAVE RETURN INFO IN IDAD2TEM, IDAD3TEM.
INDEX NOUNREG
CAF NNADTAB
TS NNADTEM
INDEX NOUNREG
CAF NNTYPTAB
TS NNTYPTEM
CS NOUNREG
AD MIXCON
EXTEND
BZMF LODMIXNN # NOUN NUMBER G/E FIRST MIXED NOUN
CAF ONE # NOUN NUMBER L/ FIRST MIXED NOUN
TS MIXBR # NORMAL. +1 INTO MIXBR.
TC LODNLV
LODMIXNN CAF TWO # MIXED. +2 INTO MIXBR.
TS MIXBR
INDEX NOUNREG
CAF RUTMXTAB -40D # FIRST MIXED NOUN = 40.
TS RUTMXTEM
CAF LOW10
MASK NNADTEM
TS Q # TEMP
INDEX A
CAF IDADDTAB
TS IDAD1TEM # LOAD IDAD1TEM WITH FIRST IDADDTAB ENTRY
EXTEND
INDEX Q # LOAD IDAD2TEM WITH 2ND IDADDTAB ENTRY
DCA IDADDTAB +1 # LOAD IDAD3TEM WITH 3RD IDADDTAB ENTRY.
LODNLV DXCH IDAD2TEM # PUT RETURN INFO INTO A, L.
DXCH Z
MIXCON = OCT50 # FIRST MIXED NOUN =40. (DEC 40)
# GTSFOUT LOADS SFTEMP1, SFTEMP2 WITH THE DP SFOUTAB ENTRIES.
# Page 271
GTSFOUT DXCH SFTEMP1 # 2X(SFCONUM) ARRIVES IN SFTEMP1.
EXTEND
INDEX A
DCA SFOUTAB
SFCOM DXCH SFTEMP1
DXCH Z
# GTSFIN LOADS SFTEMP1, SFTEMP2 WITH THE DP SFINTAB ENTRIES.
GTSFIN DXCH SFTEMP1 # 2X(SFCONUM) ARIVES IN SFTEMP1.
EXTEND
INDEX A
DCA SFINTAB
TCF SFCOM
# NN NORMAL NOUNS
NNADTAB OCT 00000 # 00 NOT IN USE
OCT 40000 # 01 SPECIFY MACHINE ADDRESS (FRACTIONAL)
OCT 40000 # 02 SPECIFY MACHINE ADDRESS (WHOLE)
OCT 40000 # 03 SPECIFY MACHINE ADDRESS (DEGREES)
OCT 0 # 04 SPARE
ECADR DSPTEM1 # 05 ANGULAR ERROR/DIFFERENCE
ECADR OPTION1 # 06 OPTION CODE
ECADR XREG # 07 ECADR OF WORD TO BE MODIFIED
# ONES FOR BITS TO BE MODIFIED
# 1 TO SET OR 0 TO RESET SELECTED BITS
ECADR ALMCADR # 08 ALARM DATA
ECADR FAILREG # 09 ALARM CODES
OCT 77776 # 10 CHANNEL TO BE SPECIFIED
ECADR TCSI # 11 TIG OF CSI (HRS,MIN,SEC)
ECADR OPTIONX # 12 OPTION CODE
# (USED BY EXTENDED VERBS ONLY)
ECADR TCDH # 13 TIG OF CDH (HRS,MIN,SEC)
OCT 0 # 14 SPARE
OCT 77777 # 15 INCREMENT MACHINE ADDRESS
ECADR DSPTEMX # 16 TIME OF EVENT (HRS,MIN,SEC)
ECADR CPHIX # 17 ASTRONAUT TOTAL ATTITUDE
ECADR THETAD # 18 AUTO MANEUVER BALL ANGLES
ECADR THETAD # 19 BYPASS ATTITUDE TRIM MANEUVER
ECADR CDUX # 20 ICDU ANGLES
ECADR PIPAX # 21 PIPAS
ECADR THETAD # 22 NEW ICDU ANGLES
OCT 00000 # 23 SPARE
ECADR DSPTEM2 +1 # 24 DELTA TIME FOR AGC CLOCK(HRS,MIN,SEC)
ECADR DSPTEM1 # 25 CHECKLIST
# (USED WITH PLEASE PERFORM ONLY)
ECADR DSPTEM1 # 26 PRIO/DELAY, ADRES, BBCON
ECADR SMODE # 27 SELF TEST ON/OFF SWITCH
# Page 272
OCT 0 # 28 SPARE
ECADR DSPTEM1 # 29 XSM LAUNCH AZIMUTH
ECADR DSPTEM1 # 30 TARGET CODES
ECADR DSPTEM1 # 31 TIME OF LANDING SITE (HRS,MIN,SEC)
ECADR -TPER # 32 TIME TO PERIGEE (HRS,MIN,SEC)
ECADR TIG # 33 TIME OF IGNITION (HRS,MIN,SEC)
ECADR DSPTEM1 # 34 TIME OF EVENT (HRS,MIN,SEC)
ECADR TTOGO # 35 TIME TO GO TO EVENT (HRS,MIN,SEC)
ECADR TIME2 # 36 TIME OF AGC CLOCK (HRS,MIN,SEC)
ECADR TTPI # 37 TIG OF TPI (HRS,MIN,SEC)
ECADR TET # 38 TIME OF STATE VECTOR
ECADR T3TOT4 # 39 DELTA TIME TO TRANSFER (HRS,MIN,SEC)
# END OF NNADTAB FOR NORMAL NOUNS
# NN MIXED NOUNS
OCT 64000 # 40 TIME TO IGNITION/CUTOFF
# VG
# DELTA V (ACCUMULATED)
OCT 02003 # 41 TARGET AZIMUTH
# ELEVATION
OCT 24006 # 42 APOGEE
# PERIGEE
# DELTA V (REQUIRED)
OCT 24011 # 43 LATITUDE
# LONGITUDE
# ALTITUDE
OCT 64014 # 44 APOGEE
# PERIGEE
# TFF
OCT 64017 # 45 MARKS (VHF - OPTICS)
# TTI OF NEXT BURN
# MGA
OCT 02022 # 46 AUTOPILOT CONFIGURATION
OCT 22025 # 47 THIS VEHICLE WEIGHT
# OTHER VEHICLE WEIGHT
OCT 22030 # 48 PITCH TRIM
# YAW TRIM
OCT 24033 # 49 DELTA R
# DELTA V
# VHF OR OPTICS CODE
OCT 64036 # 50 SPLASH ERROR
# PERIGEE
# TFF
OCT 22041 # 51 S-BAND ANTENNA PITCH
# YAW
OCT 00044 # 52 CENTRAL ANGLE OF ACTIVE VEHICLE
OCT 24047 # 53 RANGE
# RANGE RATE
# PHI
# Page 273
OCT 24052 # 54 RANGE
# RANGE RATE
# THETA
OCT 24055 # 55 PERIGEE CODE
# ELEVATION ANGLE
# CENTRAL ANGLE
OCT 22060 # 56 REENTRY ANGLE,
# DELTA V
OCT 20063 # 57 DELTA R
OCT 24066 # 58 PERIGEE ALT
# DELTA V TPI
# DELTA V TPF
OCT 24071 # 59 DELTA VELOCITY LOS
OCT 24074 # 60 GMAX
# VPRED
# GAMMA EI
OCT 24077 # 61 IMPACT LATITUDE
# IMPACT LONGITUDE
# HEADS UP/DOWN
OCT 24102 # 62 INERTIAL VEL MAG (V1)
# ALT RATE CHANGE (HDOT)
# ALT ABOVE PAD RADIUS (H)
OCT 64105 # 63 RANGE 297,431 TO SPLASH (RTGO)
# PREDICTED INERT VEL (VIO)
# TIME TO GO TO 297,431 (TTE)
OCT 24110 # 64 DRAG ACCELERATION
# INERTIAL VELOCITY (VI)
# RANGE TO SPLASH
OCT 24113 # 65 SAMPLED AGC TIME (HRS,MIN,SEC)
# (FETCHED IN INTERRUPT)
OCT 24116 # 66 COMMAND BANK ANGLE (BETA)
# CROSS RANGE ERROR
# DOWN RANGE ERROR
OCT 24121 # 67 RANGE TO TARGET
# PRESENT LATITUDE
# PRESENT LONGITUDE
OCT 24124 # 68 COMMAND BANK ANGLE (BETA)
# INERTIAL VELOCITY (VI)
# ALT RATE CHANGE (RDOT)
OCT 24127 # 69 BETA
# DL
# VL
OCT 04132 # 70 STAR CODE
# LANDMARK DATA
# HORIZON DATA
OCT 04135 # 71 STAR CODE
# LANDMARK
# HORIZON
OCT 24140 # 72 DELT ANG
# DELT ALT
# Page 274
# SEARCH OPTION
OCT 04143 # 73 ALTITUDE
# VELOCITY
# FLIGHT PATH ANGLE
OCT 04146 # 74 COMMAND BANK ANGLE (BETA)
# INERTIAL VELOCITY (VI)
# DRAG ACCELERATION
OCT 64151 # 75 DELTA ALTITUDE CDH
# DELTA TIME (CDH-CSI OR TPI-CDH)
# DELTA TIME (TPI-CDH OR TPI-NOMTPI)
OCT 0 # 76 SPARE
OCT 0 # 77 SPARE
OCT 0 # 78 SPARE
OCT 0 # 79 SPARE
OCT 64170 # 80 TIME TO IGNITION/CUTOFF
# VG
# DELTA V (ACCUMULATED)
OCT 24173 # 81 DELTA V (LV)
OCT 24176 # 82 DELTA V (LV)
OCT 24201 # 83 DELTA V (BODY)
OCT 24204 # 84 DELTA V (OTHER VEHICLE)
OCT 24207 # 85 VG (BODY)
OCT 24212 # 86 DELTA V (LV)
OCT 02215 # 87 MARK DATA SHAFT
# TRUNION
OCT 24220 # 88 HALF UNIT SUN OR PLANET VECTOR
OCT 24223 # 89 LANDMARK LATITUDE
# LONGITUDE/2
# ALTITUDE
OCT 24226 # 90 Y
# Y DOT
# PSI
OCT 02231 # 91 OCDU ANGLES SHAFT
# TRUNION
OCT 02234 # 92 NEW OPTICS ANGLES SHAFT
# TRUNION
OCT 04237 # 93 DELTA GYRO ANGLES
OCT 02242 # 94 NEW OPTICS ANGLES SHAFT
# TRUNNION
OCT 04245 # 95 PREFERRED ATTITUDE ICDU ANGLES
OCT 04250 # 96 +X-AXIS ATTITUDE ICDU ANGLES
OCT 04253 # 97 SYSTEM TEST INPUTS
OCT 04256 # 98 SYSTEM TEST RESULTS
OCT 24261 # 99 RMS IN POSITION
# RMS IN VELOCITY
# RMS OPTION
# END OF NNADTAB FOR MIXED NOUNS
# NN NORMAL NOUNS
# Page 275
NNTYPTAB OCT 00000 # 00 NOT IN USE
OCT 04040 # 01 3COMP FRACTIONAL
OCT 04140 # 02 3COMP WHOLE
OCT 04102 # 03 3COMP CDU DEGREES
OCT 0 # 04 SPARE
OCT 00504 # 05 1COMP DPDEG(360)
OCT 02000 # 06 2COMP OCTAL ONLY
OCT 04000 # 07 3COMP OCTAL ONLY
OCT 04000 # 08 3COMP OCTAL ONLY
OCT 04000 # 09 3COMP OCTAL ONLY
OCT 00000 # 10 1COMP OCTAL ONLY
OCT 24400 # 11 3COMP HMS (DEC ONLY)
OCT 02000 # 12 2COMP OCTAL ONLY
OCT 24400 # 13 3COMP HMS (DEC ONLY)
OCT 0 # 14 SPARE
OCT 00000 # 15 1COMP OCTAL ONLY
OCT 24400 # 16 3COMP HMS (DEC ONLY)
OCT 04102 # 17 3COMP CDU DEG
OCT 04102 # 18 3COMP CDU DEG
OCT 04102 # 19 3COMP CDU DEG
OCT 04102 # 20 3COMP CDU DEGREES
OCT 04140 # 21 3COMP WHOLE
OCT 04102 # 22 3COMP CDU DEGREES
OCT 00000 # 23 SPARE
OCT 24400 # 24 3COMP HMS (DEC ONLY)
OCT 04140 # 25 3COMP WHOLE
OCT 04000 # 26 3COMP OCTAL ONLY
OCT 00140 # 27 1COMP WHOLE
OCT 00000 # 28 SPARE
OCT 20102 # 29 1COMP CDU DEG (DEC ONLY)
OCT 04140 # 30 3COMP WHOLE
OCT 24400 # 31 3COMP HMS (DEC ONLY)
OCT 24400 # 32 3COMP HMS (DEC ONLY)
OCT 24400 # 33 3COMP HMS (DEC ONLY)
OCT 24400 # 34 3COMP HMS (DEC ONLY)
OCT 24400 # 35 3COMP HMS (DEC ONLY)
OCT 24400 # 36 3COMP HMS (DEC ONLY)
OCT 24400 # 37 3COMP HMS (DEC ONLY)
OCT 24400 # 38 3COMP HMS (DEC ONLY)
OCT 24400 # 39 3COMP HMS (DEC ONLY)
# END OF NNTYPTAB FOR NORMAL NOUNS
# NN MIXED NOUNS
OCT 24500 # 40 3COMP MIN/SEC, VEL3, VEL3
# (NO LOAD, DEC ONLY)
OCT 00542 # 41 2COMP CDU DEG, ELEV DEG
OCT 24410 # 42 3COMP POS4, POS4, VEL3
# (DEC ONLY)
OCT 20204 # 43 3COMP DPDEG(360), DPDEG(360), POS4
# Page 276
# (DEC ONLY)
OCT 00410 # 44 3COMP POS4, POS4, MIN/SEC
# (NO LOAD, DEC ONLY)
OCT 10000 # 45 3COMP 2INT, MIN/SEC, DPDEG(360)
# (NO LOAD, DEC ONLY)
OCT 00000 # 46 2COMP OCTAL ONLY FOR EACH
OCT 00306 # 47 2COMP WEIGHT2 FOR EACH
# (DEC ONLY)
OCT 00614 # 48 2COMP TRIM DEG, TRIM DEG
# (DEC ONLY)
OCT 00510 # 49 3COMP POS4, VEL3, WHOLE
# (DEC ONLY)
OCT 00417 # 50 3COMP POS6, POS4, MIN/SEC
# (NO LOAD, DEC ONLY)
OCT 00204 # 51 2COMP DPDEG(360), DPDEG(360)
# (DEC ONLY)
OCT 00004 # 52 1COMP DPDEG(360)
OCT 10507 # 53 3COMP POS5, VEL3, DPDEG(360)
# (DEC ONLY)
OCT 10507 # 54 3COMP POS5, VEL3, DPDEG(360)
# (DEC ONLY)
OCT 10200 # 55 3COMP WHOLE, DPDEG(360), DPDEG(360)
# (DEC ONLY)
OCT 00444 # 56 2COMP DPDEG(360), VEL2
# (DEC ONLY)
OCT 00010 # 57 1COMP POS4
# (DEC ONLY)
OCT 24510 # 58 3COMP POS4, VEL3, VEL3
# (DEC ONLY)
OCT 24512 # 59 3COMP VEL3 FOR EACH
# (DEC ONLY)
OCT 10440 # 60 3COMP WHOLE, VEL2, DPDEG(360)
# (DEC ONLY)
OCT 00204 # 61 3COMP DPDEG(360), DPDEG(360), WHOLE
# (DEC ONLY)
OCT 20451 # 62 3COMP VEL2, VEL2, POS4
# (DEC ONLY)
OCT 00457 # 63 3COMP POS6, VEL2, MIN/SEC
# (NO LOAD, DEC ONLY)
OCT 36460 # 64 3COMP DRAG ACCEL, VEL2, POS6
# (DEC ONLY)
OCT 00000 # 65 3COMP HMS (DEC ONLY)
OCT 37044 # 66 3COMP DPDEG(360), POS8, POS6
# (DEC ONLY)
OCT 10217 # 67 3COMP POS6, DPDEG(360), DPDEG(360)
# (DEC ONLY)
OCT 34444 # 68 3COMP DPDEG(360), VEL2, VEL/2VS
# (DEC ONLY)
OCT 35004 # 69 3COMP DPDEG(360), DRAG ACCEL,VEL/2VS
# (DEC ONLY)
# Page 277
OCT 00000 # 70 3COMP OCTAL ONLY FOR EACH
OCT 0 # 71 3COMP OCTAL ONLY FOR EACH
OCT 00404 # 72 3COMP DPDEG(360), POS4, WHOLE
# (DEC ONLY)
OCT 10450 # 73 3COMP POS4, VEL2, DPDEG(360)
OCT 40444 # 74 3COMP DPDEG(360), VEL2, DRAG ACCEL
OCT 00010 # 75 3COMP POS4, MIN/SEC, MIN/SEC
# # (NO LOAD, DEC ONLY)
OCT 0 # 76 SPARE
OCT 0 # 77 SPARE
OCT 0 # 78 SPARE
OCT 0 # 79 SPARE
OCT 22440 # 80 3COMP MIN/SEC, VEL2, VEL2
# (NO LOAD, DEC ONLY)
OCT 24512 # 81 3COMP VEL3 FOR EACH
# (DEC ONLY)
OCT 24512 # 82 3COMP VEL3 FOR EACH
# (DEC ONLY)
OCT 24512 # 83 3COMP VEL3 FOR EACH
# (DEC ONLY)
OCT 24512 # 84 3COMP VEL3 FOR EACH
# (DEC ONLY)
OCT 24512 # 85 3COMP VEL3 FOR EACH
# (DEC ONLY)
OCT 22451 # 86 3COMP VEL2 FOR EACH
# (DEC ONLY)
OCT 00102 # 87 2COMP CDU DEG, Y OPTICS DEG
OCT 0 # 88 3COMP FRAC FOR EACH
# (DEC ONLY)
OCT 16143 # 89 3COMP DPDEG(90), DPDEG(90), POS5
# (DEC ONLY)
OCT 10507 # 90 3COMP POS5, VEL3, DEPDEG(360)
# (DEC ONLY)
OCT 00102 # 91 2COMP CDUDEG, YOPTICS DEG
OCT 00102 # 92 2COMP CDUDEG, YOPTICS DEG
OCT 06143 # 93 3COMP DPDEG(90) FOR EACH
OCT 00102 # 94 2COMP CDUDEG, YOPTICS DEG
OCT 04102 # 95 3COMP CDU DEG FOR EACH
OCT 04102 # 96 3COMP CDU DEG FOR EACH
OCT 00000 # 97 3COMP WHOLE FOR EACH
OCT 00000 # 98 3COMP WHOLE, FRAC, WHOLE
OCT 01162 # 99 3COMP POS9, VEL4, WHOLE
# (DEC ONLY)
# END OF NNTYPTAB FOR MIXED NOUNS
SFINTAB OCT 00006 # WHOLE, DP TIME (SEC)
OCT 03240
OCT 00000 # SPARE
OCT 00000
# Page 278
OCT 00000 # CDU DEGREES, Y OPTICS DEGREES
OCT 00000 # (SFCONS IN DEGINSF, OPTDEGIN)
OCT 10707 # DP DEGREES (90)
OCT 03435 # UPPED BY 1
OCT 13070 # DP DEGREES (360)(POINT BETWN BITS 11-12)
OCT 34345 # UPPED BY 1
OCT 00005 # DEGREES (180)
OCT 21616
OCT 26113 # WEIGHT2
OCT 31713
OCT 00070 # POSITION5
OCT 20460
OCT 01065 # POSITION4
OCT 05740
OCT 11414 # VELOCITY2 (POINT BETWN BITS 11-12)
OCT 31463
OCT 07475 # VELOCITY3
OCT 16051
OCT 00001 # ELEVATION DEGREES
OCT 03434
OCT 00002 # TRIM DEGREES
OCT 22245
OCT 00014 # INERTIA, THRUST MOMENT
OCT 35607
OCT 07606 # VELOCITY/2VS
OCT 06300
OCT 16631 # POSITION 6
OCT 11307
OCT 12000 # DRAG ACCELERATION (POINT BETWN BITS 7-8)
OCT 00000
OCT 27176 # POSITION 8
OCT 14235
2DEC 30480 B-19 # POSITION 9
2DEC 30.48 B-7 # VELOCITY4
# END OF SFINTAB
SFOUTAB OCT 05174 # WHOLE, DP TIME (SEC)
OCT 13261
OCT 00000 # SPARE
OCT 00000
OCT 00000 # CDU DEGREES, Y OPTICS DEGREES
OCT 00000 # (SFCONS IN DEGOUTSF, OPTDEGOUT)
OCT 00714 # DP DEGREES (90) (POINT BETWN BITS 7-8)
OCT 31463
OCT 13412 # DP DEGREES (360)
OCT 07534
OCT 05605 # DEGREES (180)
# Page 279
OCT 03656
OCT 00001 # WEIGHT2
OCT 16170
OCT 00441 # POSITION5
OCT 34306
OCT 07176 # POSITION4
OCT 21603
OCT 15340 # VELOCITY2
OCT 15340
OCT 01031 # VELOCITY3 (POINT BETWN BITS 7-8)
OCT 21032
OCT 34631 # ELEVATION DEGREES
OCT 23146
OCT 14340 # TRIM DEGREES
OCT 24145
OCT 02363 # INERTIA, THRUST MOMENT
OCT 03721
OCT 20373 # VELOCITY/ZVS
OCT 02122
OCT 00424 # POSITION 6 (POINT BETWN BITS 7-8)
OCT 30446
OCT 00631 # DRAG ACCELERATION
OCT 23146
OCT 00260 # POSITION 8
OCT 06213
2DEC 17.2010499 B-7 # POSITION 9
2DEC .032808399 # VELOCITY4
# END OF SFOUTAB
# NN SF CONSTANT SF ROUTINE
IDADDTAB ECADR TTOGO # 40 MIN/SEC M/S
ECADR VGDISP # 40 VEL3 DP3
ECADR DVTOTAL # 40 VEL3 DP3
ECADR DSPTEM1 # 41 CDU DEG CDU
ECADR DSPTEM1 +1 # 41 ELEV DEG ARTH
OCT 0 # 41 SPARE COMPONENT
ECADR HAPO # 42 POS4 DP3
ECADR HPER # 42 POS4 DP3
ECADR VGDISP # 42 VEL3 DP3
ECADR LAT # 43 DPDEG(360) DP4
ECADR LONG # 43 DPDEG(360) DP4
ECADR ALT # 43 POS4 DP3
ECADR HAPOX # 44 POS4 DP3
ECADR HPERX # 44 POS4 DP3
ECADR TFF # 44 MIN/SEC M/S
ECADR VHFCNT # 45 2INT 2INT
# Page 280
ECADR TTOGO # 45 MIN/SEC M/S
ECADR +MGA # 45 DPDEG(360) DP4
ECADR DAPDATR1 # 46 OCTAL ONLY OCT
ECADR DAPDATR2 # 46 OCATAL ONLY OCT
OCT 0 # 46 SPARE COMPONENT
ECADR CSMMASS # 47 WEIGHT2 ARTH1
ECADR LEMMASS # 47 WEIGHT2 ARTH1
OCT 00000 # 47 SPARE COMPONENT
ECADR PACTOFF # 48 TRIM DEG ARTH
ECADR YACTOFF # 48 TRIM DEG ARTH
OCT 00000 # 48 SPARE COMPONENT
ECADR N49DISP # 49 POS4 DP3
ECADR N49DISP +2 # 49 VEL3 DP3
ECADR N49DISP +4 # 49 WHOLE ARTH
ECADR RSP-RREC # 50 POS6 DP3
ECADR HPERX # 50 POS4 DP3
ECADR TFF # 50 MIN/SEC M/S
ECADR RHOSB # 51 DPDEG(360)
ECADR GAMMASB # 51 DPDEG(360) DP4
OCT 0 # 51 SPARE COMPONENT
ECADR ACTCENT # 52 DPDEG(360) DP4
OCT 00000 # 52 SPARE COMPONENT
OCT 00000 # 52 SPARE COMPONENT
ECADR RANGE # 53 POS5 DP1
ECADR RRATE # 53 VEL3 DP3
ECADR RTHETA # 53 DPDEG(360) DP4
ECADR RANGE # 54 POS5 DP1
ECADR RRATE # 54 VEL3 DP3
ECADR RTHETA # 54 DPDEG(360) DP4
ECADR NN1 # 55 WHOLE ARTH
ECADR ELEV # 55 DPDEG(360) DP4
ECADR CENTANG # 55 DPDEG(360) DP4
ECADR RTEGAM2D # 56 DPDEG(360) DP4
ECADR RTEDVD # 56 VEL2 DP4
OCT 0 # 56 SPARE COMPONENT
ECADR DELTAR # 57 POS4 DP3
OCT 0 # 57 SPARE COMPONENT
OCT 0 # 57 SPARE COMPONENT
ECADR POSTTPI # 58 POS4 DP3
ECADR DELVTPI # 58 VEL3 DP3
ECADR DELVTPF # 58 VEL3 DP3
ECADR DVLOS # 59 VEL3 DP3
ECADR DVLOS +2 # 59 VEL3 DP3
ECADR DVLOS +4 # 59 VEL3 DP3
ECADR GMAX # 60 WHOLE ARTH
ECADR VPRED # 60 VEL2 DP4
ECADR GAMMAEI # 60 DPDEG(360) DP4
ECADR LAT(SPL) # 61 DPDEG(360) DP4
ECADR LNG(SPL) # 61 DPDEG(360) DP4
ECADR HEADSUP # 61 WHOLE ARTH
# Page 281
ECADR VMAGI # 62 VEL2 DP4
ECADR HDOT # 62 VEL2 DP4
ECADR ALTI # 62 POS4 DP3
ECADR RTGO # 63 POS6 DP3
ECADR VIO # 63 VEL2 DP4
ECADR TTE # 63 MIN/SEC M/S
ECADR D # 64 DRAG ACCEL DP2
ECADR VMAGI # 64 VEL2 DP4
ECADR RTGON64 # 64 POS6 DP3
ECADR SAMPTIME # 65 HMS (MIXED ONLY TO KEEP CODE 65) HMS
ECADR SAMPTIME # 65 HMS HMS
ECADR SAMPTIME # 65 HMS HMS
ECADR ROLLC # 66 DPDEG(360) DP4
ECADR XRNGERR # 66 POS8 DP3
ECADR DNRNGERR # 66 POS6 DP3
ECADR RTGON67 # 67 POS6 DP3
ECADR LAT # 67 DPDEG(360) DP4
ECADR LONG # 67 DPDEG(360) DP4
ECADR ROLLC # 68 DPDEG(360) DP4
ECADR VMAGI # 68 VEL2 DP4
ECADR RDOT # 68 VEL/2VS DP4
ECADR ROLLC # 69 DPDEG(360) DP4
ECADR Q7 # 69 DRAG ACCEL DP2
ECADR VL # 69 VEL/2VS DP4
ECADR STARCODE # 70 OCTAL ONLY OCT
ECADR LANDMARK # 70 OCTAL ONLY OCT
ECADR HORIZON # 70 OCTAL ONLY OCT
ECADR STARCODE # 71 OCTAL ONLY OCT
ECADR LANDMARK # 71 OCTAL ONLY OCT
ECADR HORIZON # 71 OCTAL ONLY OCT
ECADR THETZERO # 72 DPDEG(360) DP4
ECADR DELHITE # 72 POS4 DP3
ECADR OPTION2 # 72 WHOLE ARTH
ECADR P21ALT # 73 POS4 DP3
ECADR P21VEL # 73 VEL2 DP4
ECADR P21GAM # 73 DPDEG(360) DP4
ECADR ROLLC # 74 DPDEG(360) DP4
ECADR VMAGI # 74 VEL2 DP4
ECADR D # 74 DRAG ACCEL DP2
ECADR DIFFALT # 75 POS4 DP3
ECADR T1TOT2 # 75 MIN/SEC M/S
ECADR T2TOT3 # 75 MIN/SEC M/S
OCT 0 # 76 SPARE
OCT 0 # 76 SPARE
OCT 0 # 76 SPARE
OCT 0 # 77 SPARE
OCT 0 # 77 SPARE
OCT 0 # 77 SPARE
OCT 0 # 78 SPARE
OCT 0 # 78 SPARE
# Page 282
OCT 0 # 78 SPARE
OCT 0 # 79 SPARE
OCT 0 # 79 SPARE
OCT 0 # 79 SPARE
ECADR TTOGO # 80 MIN/SEC M/S
ECADR VGDISP # 80 VEL2 DP4
ECADR DVTOTAL # 80 VEL2 DP4
ECADR DELVLVC # 81 VEL3 DP3
ECADR DELVLVC +2 # 81 VEL3 DP3
ECADR DELVLVC +4 # 81 VEL3 DP3
ECADR DELVLVC # 82 VEL3 DP3
ECADR DELVLVC +2 # 82 VEL3 DP3
ECADR DELVLVC +4 # 82 VEL3 DP3
ECADR DELVIMU # 83 VEL3 DP3
ECADR DELVIMU +2 # 83 VEL3 DP3
ECADR DELVIMU +4 # 83 VEL3 DP3
ECADR DELVOV # 84 VEL3 DP3
ECADR DELVOV +2 # 84 VEL3 DP3
ECADR DELVOV +4 # 84 VEL3 DP3
ECADR VGBODY # 85 VEL3 DP3
ECADR VGBODY +2 # 85 VEL3 DP3
ECADR VGBODY +4 # 85 VEL3 DP3
ECADR DELVLVC # 86 VEL2 DP4
ECADR DELVLVC +2 # 86 VEL2 DP4
ECADR DELVLVC +4 # 86 VEL2 DP4
ECADR MRKBUF1 +3 # 87 CDU DEG CDU
ECADR MRKBUF1 +5 # 87 Y OPTICS DEG YOPT
OCT 0 # 87 SPARE COMPONENT
ECADR STARSAV3 # 88 DPFRAC DPFRAC
ECADR STARSAV3 +2 # 88 DPFRAC DPFRAC
ECADR STARSAV3 +4 # 88 DPFRAC DPFRAC
ECADR LANDLAT # 89 DPDEG(90) DP3
ECADR LANDLONG # 89 DPDEG(90) DP3
ECADR LANDALT # 89 POS5 DP1
ECADR RANGE # 90 POS5 DP1
ECADR RRATE # 90 VEL3 DP3
ECADR RTHETA # 90 DPDEG(360) DP4
ECADR CDUS # 91 CDU DEG CDU
ECADR CDUT # 91 Y OPTICS DEG YOPT
OCT 0 # 91 SPARE COMPONENT
ECADR SAC # 92 CDU DEG CDU
ECADR PAC # 92 Y OPTICS DEG YOPT
OCT 0 # 92 SPARE COMPONENT
ECADR OGC # 93 DPDEG(90) DP3
ECADR OGC +2 # 93 DPDEG(90) DP3
ECADR OGC +4 # 93 DPDEG(90) DP3
ECADR MRKBUF1 +3 # 94 CDU DEG CDU
ECADR MRKBUF1 +5 # 94 Y OPTICS DEG YOPT
OCT 00000 # 94 SPARE
ECADR PRAXIS # 95 CDU DEG CDU
# Page 283
ECADR PRAXIS +1 # 95 CDU DEG CDU
ECADR PRAXIS +2 # 95 CDU DEG CDU
ECADR CPHIX # 96 CDU DEG CDU
ECADR CPHIX +1 # 96 CDU DEG CDU
ECADR CPHIX +2 # 96 CDU DEG CDU
ECADR DSPTEM1 # 97 WHOLE ARTH
ECADR DSPTEM1 +1 # 97 WHOLE ARTH
ECADR DSPTEM1 +2 # 97 WHOLE ARTH
ECADR DSPTEM2 # 98 WHOLE ARTH
ECADR DSPTEM2 +1 # 98 FRAC FRAC
ECADR DSPTEM2 +2 # 98 WHOLE ARTH
ECADR WWPOS # 99 POS9 DP3
ECADR WWVEL # 99 VEL4 DP2
ECADR WWOPT # 99 WHOLE ARTH
# END OF IDADDTAB
# NN SF ROUTINES
RUTMXTAB OCT 16351 # 40 M/S, DP3, DP3
OCT 00142 # 41 CDU, ARTH
OCT 16347 # 42 DP3, DP3, DP3
OCT 16512 # 43 DP4, DP4, DP3
OCT 22347 # 44 DP3, DP3, M/S
OCT 24454 # 45 2INT, M/S, DP4
OCT 00000 # 46 OCT, OCT
OCT 00553 # 47 ARITH1, ARITH1
OCT 00143 # 48 ARTH, ARTH
OCT 06347 # 49 DP3, DP3, ARTH
OCT 22347 # 50 DP3, DP3, M/S
OCT 00512 # 51 DP4, DP4
OCT 00012 # 52 DP4
OCT 24344 # 53 DP1, DP3, DP4
OCT 24344 # 54 DP1, DP3, DP4
OCT 24503 # 55 ARTH, DP4 , DP4
OCT 00512 # 56 DP4, DP4
OCT 00007 # 57 DP3
OCT 16347 # 58 DP3, DP3, DP3
OCT 16347 # 59 DP3, DP3, DP3
OCT 24503 # 60 ARTH, DP4, DP4
OCT 06512 # 61 DP4, DP4, ARTH
OCT 16512 # 62 DP4, DP4, DP3
OCT 22507 # 63 DP3, DP4, M/S
OCT 16505 # 64 DP2, DP4, DP3
OCT 20410 # 65 HMS, HMS, HMS
OCT 16352 # 66 DP4, DP3, DP3
OCT 24507 # 67 DP3, DP4, DP4
OCT 24512 # 68 DP4, DP4, DP4
OCT 24252 # 69 DP4, DP2, DP4
OCT 00000 # 70 OCT, OCT, OCT
# Page 284
OCT 0 # 71 OCT, OCT, OCT
OCT 06352 # 72 DP4, DP3, ARTH
OCT 24507 # 73 DPR, DP4, DP4
OCT 12512 # 74 DP4, DP4, DP2
OCT 22447 # 75 DP3, M/S, M/S
OCT 0 # 76 SPARE
OCT 0 # 77 SPARE
OCT 0 # 78 SPARE
OCT 0 # 79 SPARE
OCT 24511 # 80 M/S, DP4, DP4
OCT 16347 # 81 DP3, DP3, DP3
OCT 16347 # 82 DP3, DP3, DP3
OCT 16347 # 83 DP3, DP3, DP3
OCT 16347 # 84 DP3, DP3, DP3
OCT 16347 # 85 DP3, DP3, DP3
OCT 24512 # 86 DP4, DP4, DP4
OCT 00302 # 87 CDU, YOPT
OCT 32655 # 88 DPFRAC FOR EACH
OCT 10347 # 89 DP3, DP3, DP1
OCT 24344 # 90 DP1, DP3, DP4
OCT 00302 # 91 CDU, YOPT
OCT 00302 # 92 CDU, YOPT
OCT 16347 # 93 DP3, DP3, DP3
OCT 00302 # 94 CDU, YOPT
OCT 04102 # 95 CDU, CDU, CDU
OCT 04102 # 96 CDU, CDU, CDU
OCT 06143 # 97 ARTH, ARTH, ARTH
OCT 06043 # 98 ARTH, FRAC, ARTH
OCT 06247 # 99 DP3, DP2, ARTH
# END OF RUTMXTAB
SBANK= LOWSUPER

View File

@ -1,386 +0,0 @@
# Copyright: Public domain.
# Filename: PLANETARY_INERTIAL_ORIENTATION.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1243-1251
# Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1243
# PLANETARY INERTIAL ORIENTATION
# ..... RP-TO-R SUBROUTINE .....
# SUBROUTINE TO CONVERT RP (VECTOR IN PLANETARY COORDINATE SYSTEM,EITHER
# EARTH-FIXED OR MOON-FIXED) TO R (SAME VECTOR IN BASIC REF. SYSTEM)
# R=MT(T)*(RP+LPXRP) MT= M MATRIX TRANSPOSE
# CALLING SEQUENCE
# L CALL
# L+1 RP-TO-R
# SUBROUTINES USED
# EARTHMX,MOONMX,EARTHL
# ITEMS AVAILABLE FROM LAUNCH DATA
# 504LM= THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL,EXPRESSED
# IN THE MOON-FIXED COORD. SYSTEM RADIANS B0
# ITEMS NECESSARY FOR SUBR. USED (SEE DESCRIPTION OF SUBR.)
# INPUT
# MPAC= 0 FOR EARTH,NON-ZERO FOR MOON
# 0-5D= RP VECTOR
# 6-7D= TIME
# OUTPUT
# MPAC= R VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON
SETLOC PLANTIN
BANK
COUNT* $$/LUROT
RP-TO-R STQ BHIZ
RPREXIT
RPTORA
CALL # COMPUTE M MATRIX FOR MOON
MOONMX # LP=LM FOR MOON RADIANS B0
VLOAD
504LM
RPTORB VXV VAD
504RPR
504RPR
VXM GOTO
MMATRIX # MPAC=R=MT(T)*(RP+LPXRP)
RPRPXXXX # RESET PUSHLOC TO 0 BEFORE EXITING
RPTORA CALL # EARTH COMPUTATIONS
EARTHMX # M MATRIX B-1
CALL
EARTHL # L VECTOR RADIANS B0
MXV VSL1 # LP=M(T)*L RAD B-0
MMATRIX
# Page 1244
GOTO
RPTORB
# Page 1245
# ..... R-TO-RP SUBROUTINE .....
# SUBROUTINE TO CONVERT R (VECTOR IN REFERENCE COORD. SYSTEM) TO RP
# (VECTOR IN PLANETARY COORD SYSTEM) EITHER EARTH-FIXED OR MOON-FIXED
# RP = M(T) * (R - L X R)
# CALLING SEQUENCE
# L CALL
# L+1 R-TO-RP
# SUBROUTINES USED
# EARTHMX,MOONMX,EARTHL
# INPUT
# MPAC= 0 FOR EARTH,NON-ZERO FOR MOON
# 0-5D= R VECTOR
# 6-7D= TIME
# ITEMS AVAILABLE FROM LAUNCH DATA
# 504LM= THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL,EXPRESSED
# IN THE MOON-FIXED COORD. SYSTEM RADIANS B0
# ITEMS NECESSARY FOR SUBROUTINES USED (SEE DESCRIPTION OF SUBR.)
# OUTPUT
# MPAC=RP VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON
R-TO-RP STQ BHIZ
RPREXIT
RTORPA
CALL
MOONMX
VLOAD VXM
504LM # LP=LM
MMATRIX
VSL1 # L=MT(T)*LP RADIANS B0
RTORPB VXV BVSU
504RPR
504RPR
MXV # M(T)*(R-LXR) B-2
MMATRIX
RPRPXXXX VSL1 SETPD
0D
GOTO
RPREXIT
RTORPA CALL # EARTH COMPUTATIONS
EARTHMX
CALL
EARTHL
GOTO # MPAC=L=(-AX,-AY,0) RAD B-0
RTORPB
# Page 1246
# ..... MOONMX SUBROUTINE .....
# SUBROUTINE TO COMPUTE THE TRANSFORMATION MATRIX M FOR THE MOON
# CALLING SEQUENCE
# L CALL
# L+1 MOONMX
# SUBROUTINES USED
# NEWANGLE
# INPUT
# 6-7D= TIME
# ITEMS AVAILABLE FROM LAUNCH DATA
# BSUBO,BDOT
# TIMSUBO,NODIO,NODDOT,FSUBO,FDOT
# COSI= COS(I) B-1
# SINI= SIN(I) B-1
# I IS THE ANGLE BETWEEN THE MEAN LUNAR EQUATORIAL PLANE AND THE
# PLANE OF THE ECLIPTIC (1 DEGREE 32.1 MINUTES)
# OUTPUT
# MMATRIX= 3X3 M MATRIX B-1 (STORED IN VAC AREA)
MOONMX STQ SETPD
EARTHMXX
8D
AXT,1 # B REQUIRES SL 0, SL 5 IN NEWANGLE
5
DLOAD PDDL # PD 10D 8-9D=BSUBO
BSUBO # 10-11D= BDOT
BDOT
PUSH CALL # PD 12D
NEWANGLE # EXIT WITH PD 8D AND MPAC= B REVS B0
PUSH COS # PD 10D
STODL COB # PD 8D COS(B) B-1
SIN # SIN(B) B-1
STODL SOB # SETUP INPUT FOR NEWANGLE
FSUBO # 8-9D=FSUBO
PDDL PUSH # PD 10D THEN 12D 10-11D=FDOT
FDOT
AXT,1 CALL # F REQUIRES SL 1, SL 6 IN NEWANGLE
4
NEWANGLE # EXIT WITH PD 8D AND MPAC= F REVS B0
STODL AVECTR +2 # SAVE F TEMP
NODIO # 8-9D=NODIO
PDDL PUSH # PD 10D THEN 12D 10-11D=NODDOT
NODDOT # MPAC=T
AXT,1 CALL # NODE REQUIRES SL 0, SL 5 IN NEWANGLE
5
NEWANGLE # EXIT WITH PD 8D AND MPAC= NODI REVS B0
# Page 1247
PUSH COS # PD 10D 8-9D= NODI REVS B0
PUSH # PD 12D 10-11D= COS(NODI) B-1
STORE AVECTR
DMP SL1R
COB # COS(NODI) B-1
STODL BVECTR +2 # PD 10D 20-25D=AVECTR=COB*SIN(NODI)
DMP SL1R # SOB*SIN(NODI)
SOB
STODL BVECTR +4 # PD 8D
SIN PUSH # PD 10D -SIN(NODI) B-1
DCOMP # 26-31D=BVECTR= COB*COS(NODI)
STODL BVECTR # PD 8D SOB*COS(NODI)
AVECTR +2 # MOVE F FROM TEMP LOC. TO 504F
STODL 504F
DMP SL1R
COB
STODL AVECTR +2
SINNODI # 8-9D=SIN(NODI) B-1
DMP SL1R
SOB
STODL AVECTR +4 # 0
HI6ZEROS # 8-13D= CVECTR= -SOB B-1
PDDL DCOMP # PD 10D COB
SOB
PDDL PDVL # PD 12D THEN PD 14D
COB
BVECTR
VXSC PDVL # PD 20D BVECTR*SINI B-2
SINI
CVECTR
VXSC VAD # PD 14D CVECTR*COSI B-2
COSI
VSL1
STOVL MMATRIX +12D # PD 8D M2=BVECTR*SINI+CVECTR*COSI B-1
VXSC PDVL # PD 14D
SINI # CVECTR*SINI B-2
BVECTR
VXSC VSU # PD 8D BVECTR*COSI B-2
COSI
VSL1 PDDL # PD 14D
504F # 8-13D=DVECTR=BVECTR*COSI-CVECTR*SINI B-1
COS VXSC
DVECTR
PDDL SIN # PD 20D 14-19D= DVECTR*COSF B-2
504F
VXSC VSU # PD 14D AVECTR*SINF B-2
AVECTR
VSL1
STODL MMATRIX +6 # M1= AVECTR*SINF-DVECTR*COSF B-1
504F
# Page 1248
SIN VXSC # PD 8D
PDDL COS # PD 14D 8-13D=DVECTR*SINF B-2
504F
VXSC VAD # PD 8D AVECTR*COSF B-2
AVECTR
VSL1 VCOMP
STCALL MMATRIX # M0= -(AVECTR*COSF+DVECTR*SINF) B-1
EARTHMXX
# COMPUTE X=X0+(XDOT)(T+T0)
# 8-9D= X0 (REVS B-0),PUSHLOC SET AT 12D
# 10-11D=XDOT (REVS/CSEC) SCALED B+23 FOR WEARTH,B+28 FOR NODDOT AND BDOT
# AND B+27 FOR FDOT
# X1=DIFFERENCE IN 23 AND SCALING OF XDOT,=0 FOR WEARTH,5 FOR NDDOT AND
# BDOT AND 4 FOR FDOT
# 6-7D=T (CSEC B-28), TIMSUBO= (CSEC B-42 TRIPLE PREC.)
NEWANGLE DLOAD SR # ENTER PD 12D
6D
14D
TAD TLOAD # CHANGE MODE TO TP
TIMSUBO
MPAC
STODL TIMSUBM # T+T0 CSEC B-42
TIMSUBM +1
DMP # PD 10D MULT BY XDOT IN 10-11D
SL* DAD # PD 8D ADD X0 IN 8-9D AFTER SHIFTING
5,1 # SUCH THAT SCALING IS B-0
PUSH SLOAD # PD 10D SAVE PARTIAL (X0+XDOT*T) IN 8-9D
TIMSUBM
SL DMP
9D
10D # XDOT
SL* DAD # PD 8D SHIFT SUCH THAT THIS PART OF X
10D,1 # IS SCALED REVS/CSEC B-0
BOV # TURN OFF OVERFLOW IF SET BY SHIFT
+1 # INSTRUCTION BEFORE EXITING
RVQ # MPAC=X= X0+(XDOT)(T+T0) REVS B0
# Page 1249
# ..... EARTHMX SUBROUTINE .....
# SUBROUTINE TO COMPUTE THE TRANSFORMATION MATRIX M FOR THE EARTH
# CALLING SEQUENCE
# L CALL
# L+1 EARTHMX
# SUBROUTINE USED
# NEWANGLE
# INPUT
# INPUT AVAILABLE FROM LAUNCH DATA AZO REVS B-0
# TEPHEM CSEC B-42
# 6-7D= TIME CSEC B-28
# OUTPUT
# MMATRIX= 3X3 M MATRIX B-1 (STORED IN VAC AREA)
EARTHMX STQ SETPD # SET 8-9D=AZO
EARTHMXX
8D # 10-11D=WEARTH
AXT,1 # FOR SL 5, AND SL 10 IN NEWANGLE
0
DLOAD PDDL # LEAVING PD SET AT 12D FOR NEWANGLE
AZO
WEARTH
PUSH CALL
NEWANGLE
SETPD PUSH # 18-19D=504AZ
18D # COS(AZ) SIN(AZ) 0
COS PDDL # 20-37D= MMATRIX= -SIN(AZ) COS(AZ) 0 B-1
504AZ # 0 0 1
SIN PDDL
HI6ZEROS
PDDL SIN
504AZ
DCOMP PDDL
504AZ
COS PDVL
HI6ZEROS
PDDL PUSH
HIDPHALF
GOTO
EARTHMXX
# Page 1250
# ..... EARTHL SUBROUTINE .....
# SUBROUTINE TO COMPUTE L VECTOR FOR EARTH
# CALLING SEQUENCE
# L CALL
# L+1 EARTHL
# INPUT
# AXO,AYO SET AT LAUNCH TIME WITH AYO IMMEDIATELY FOLLOWING AXO IN CORE
# OUTPUT
# -AX
# MPAC= -AY RADIANS B-0
# 0
EARTHL DLOAD DCOMP
AXO
STODL 504LPL
-AYO
STODL 504LPL +2
HI6ZEROS
STOVL 504LPL +4
504LPL
RVQ
# Page 1251
# CONSTANTS AND ERASABLE ASSIGNMENTS
1B1 = DP1/2 # 1 SCALED B-1
COSI 2DEC .99964173 B-1 # COS(5521.5 SEC) B-1
SINI 2DEC .02676579 B-1 # SIN(5521.5 SEC) B-1
RPREXIT = S1 # R-TO-RP AND RP-TO-R SUBR EXIT
EARTHMXX = S2 # EARTHMX,MOONMX SUBR. EXITS
504RPR = 0D # 6 REGS R OR RP VECTOR
SINNODI = 8D # 2 SIN(NODI)
DVECTR = 8D # 6 D VECTOR MOON
CVECTR = 8D # 6 C VECTR MOON
504AZ = 18D # 2 AZ
TIMSUBM = 14D # 3 TIME SUB M (MOON) T+10 IN GETAZ
504LPL = 14D # 6 L OR LP VECTOR
AVECTR = 20D # 6 A VECTOR (MOON)
BVECTR = 26D # 6 B VECTOR (MOON)
MMATRIX = 20D # 18 M MATRIX
COB = 32D # 2 COS(B) B-1
SOB = 34D # 2 SIN(B) B-1
504F = 6D # 2 F(MOON)
NODDOT 2DEC -.457335121 E-2 # REVS/CSEC B+28=-1.07047011 E-8 RAD/SEC
FDOT 2DEC .570863327 # REVS/CSEC B+27= 2.67240410 E-6 RAD/SEC
BDOT 2DEC -3.07500686 E-8 # REVS/CSEC B+28=-7.19757301 E-14 RAD/SEC
NODIO 2DEC .986209434 # REVS B-0 = 6.19653663041 RAD
FSUBO 2DEC .829090536 # REVS B-0 = 5.20932947829 RAD
BSUBO 2DEC .0651201393 # REVS B=0 = 0.40916190299 RAD
WEARTH 2DEC .973561595 # REVS/CSEC B+23= 7.29211494 E-5 RAD/SEC

View File

@ -1,371 +0,0 @@
# Copyright: Public domain.
# Filename: POWERED_FLIGHT_SUBROUTINES.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1365-1372
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
# from the Colossus249/ file of the same
# name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1365
BANK 14 # SAME FBANK AS THE FINDCDUD SUB-PROGRAM
SETLOC POWFLITE
BANK
EBANK= DEXDEX
COUNT* $$/POWFL
# CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*GR*GS ALL COMPUTE THE SINES AND
# COSINES OF THREE 2'S COMPLEMENT ANGLES AND PLACE THE RESULT, DOUBLE
# PRECISION, IN THE SAME ORDER AS THE INPUTS, AT SINCDU AND COSCDU. AN
# ADDITIONAL OUTPUT IS THE 1'S COMPLEMENT ANGLES AT CDUSPOT. THESE
# ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT,
# EXCEPT FOR THE GENERALLY UNIMPORTANT MPAC +2. THEY DIFFER ONLY IN
# WHERE THEY GET THE ANGLES, AND IN METHOD OF CALLING.
# CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE
# SINES AND COSINES FROM THE CURRENT CONTENTS OF THE CDU REGISTERS.
# THE CONTENTS OF CDUTEMP, ETC., ARE NOT TOUCHED SO THAT THEY MAY
# CONTINUE TO FORM A CONSISTENT SET WITH THE LATEST PIPA READINGS.
# CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC.
# CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP. THIS
# ALLOWS USERS TO MAKE TRANSFORMATIONS USING ARBITRARY ANGLES, OR REAL
# ANGLES IN AN ORDER OTHER THAN X Y Z. A CALL TO THIS ROUTINE IS
# NECESSARY IN PREPARATION FOR A CALL TO AX*SR*T IN EITHER OF ITS TWO
# MODES (SMNB OR NBSM). SINCE AX*SR*T EXPECTS TO FIND THE SINES AND
# COSINES IN THE ORDER Y Z X THE ANGLES MUST HAVE BEEN PLACED IN CDUSPOT
# IN THIS ORDER. CD*TR*GS NEED NOT BE REPEATED WHEN AX*SR*T IS CALLED
# MORE THAN ONCE, PROVIDED THE ANGLES HAVE NOT CHANGED. NOTE THAT SINCE
# IT CLOBBERS BUF2 (IN THE SINE AND COSINE ROUTINES) CD*TR*GS CANNOT BE
# CALLED USING BANKCALL. SORRY.
# CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN
# INTERPRETIVE.
CDUTRIG EXIT
TC CDUTRIGS
TC INTPRET
RVQ
CD*TR*G EXIT
TC CD*TR*GS
TC INTPRET
RVQ
CDUTRIGS CA CDUX
TS CDUSPOT +4
CA CDUY
TS CDUSPOT
# Page 1366
CA CDUZ
TS CDUSPOT +2
CD*TR*GS EXTEND
QXCH TEM2
CAF FOUR
TR*GL**P MASK SIX # MAKE IT EVEN AND SMALLER
TS TEM3
INDEX TEM3
CA CDUSPOT
DXCH MPAC # STORING 2'S COMP ANGLE, LOADING MPAC
DXCH VBUF +4 # STORING MPAC FOR LATER RESTORATION
TC USPRCADR
CADR CDULOGIC
EXTEND
DCA MPAC
INDEX TEM3
DXCH CDUSPOT # STORING 1'S COMPLEMENT ANGLE
TC USPRCADR
CADR COSINE
DXCH MPAC
INDEX TEM3
DXCH COSCDU # STORING COSINE
EXTEND
INDEX TEM3
DCA CDUSPOT # LOADING 1'S COMPLEMENT ANGLE
TC USPRCADR
CADR SINE +1 # SINE +1 EXPECTS ARGUMENT IN A AND L
DXCH VBUF +4 # BRINGING UP PRIOR MPAC TO BE RESTORED
DXCH MPAC
INDEX TEM3
DXCH SINCDU
CCS TEM3
TCF TR*GL**P
TC TEM2
# Page 1367
# *******************************************************************************************************
# QUICTRIG, INTENDED FOR GUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS.
# QUICTRIG COMPUTES AND STORES THE SINES AND COSINES OF THE 2'S COMPLEMENT ANGLES AT CDUSPOT, CDUSPOT +2,
# AND CDUSPOT +4. UNLIKE CD*TR*GS, QUICTRIG DOES NOT LEAVE THE 1'S COMPLEMENT VERSIONS OF THE ANGLES IN
# CDUSPOT. QUICTRIG'S EXECUTION TIME IS 4.1 MS; THIS IS 10 TIMES AS FAST AS CD*TR*GS. QUICTRIG MAY BE
# CALLED FROM INTERPRETIVE AS AN RTB OP-CODE, OR FROM BASIC VIA BANKCALL OR IBNKCALL.
QUICTRIG INHINT # INHINT SINCE DAP USES THE SAME TEMPS
EXTEND
QXCH ITEMP1
CAF FOUR
+4 MASK SIX
TS ITEMP2
INDEX ITEMP2
CA CDUSPOT
TC SPSIN
EXTEND
MP BIT14 # SCALE DOWN TO MATCH INTERPRETER OUTPUTS
INDEX ITEMP2
DXCH SINCDU
INDEX ITEMP2
CA CDUSPOT
TC SPCOS
EXTEND
MP BIT14
INDEX ITEMP2
DXCH COSCDU
CCS ITEMP2
TCF QUICTRIG +4
CA ITEMP1
RELINT
TC A
# Page 1368
#****************************************************************************
# THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN
# INTERPRETIVE. LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED.
#
# NBSM WILL BE THE FIRST TO GO. IT SHOULD NOT BE USED.
NBSM STQ
X2
LXC,1 VLOAD*
S1 # BASE ADDRESS OF THE CDU ANGLES IS IN S1
0,1
STOVL CDUSPOT
32D # VECTOR TO BE TRANSFORMED IS IN 32D
CALL
TRG*NBSM
STCALL 32D # SINCE THERE'S NO STGOTO
X2
# THESE INTERFACE ROUTINES ARE PERMANENT. ALL RESTORE USER'S EBANK
# SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL",
# RETURNING VIA QPRET. ALL EXPECT AND RETURN THE VECTOR TO BE TRANSFOR-
# MED INTERPRETER-STYLE IN MPAC; COMPONENTS AT MPAC, MPAC +3, AND MPAC +5.
# TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES
# AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4; ODD
# LOCATIONS NEED NOT BE ZEROED). TRG*NBSM DOES THE NB TO SM TRANSFOR-
# MATION; TRG*SMNB, VICE VERSA.
# CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF
# THE CDL COUNTERS. OTHERWISE IT IS LIKE TRG*NBSM.
#
# CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM.
CDU*SMNB EXIT
TC CDUTRIGS
TCF C*MM*N1
TRG*SMNB EXIT
TC CD*TR*GS
C*MM*N1 TC MPACVBUF # AX*SR*T EXPECTS VECTOR IN VBUF
CS THREE # SIGNAL FOR SM TO NB TRANSFORMATION.
C*MM*N2 TC AX*SR*T
TC INTPRET
VLOAD RVQ
VBUF
CDU*NBSM EXIT
TC CDUTRIGS
# Page 1369
TCF C*MM*N3
TRG*NBSM EXIT
TC CD*TR*GS
C*MM*N3 TC MPACVBUF # FOR AX*SR*T
CA THREE # SIGNAL FOR NB TO SM TRANSFORMATION
TCF C*MM*N2
# *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU
# AND COSCDU) RATHER THAN THE ANGLES THEMSELVES. OTHERWISE THEY ARE
# LIKE TRG*NBSM AND TRG*SMNB.
# NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES
# OF TRANSFORMATIONS USING THE SAME ANGLES, SO TOO ONLY ONE OF TRG*NBSM
# AND TRG*SMNB NEED BE CALLED FOR EACH SERIES. FOR SUBSEQUENT TRANFOR-
# MATIONS USE *NBSM* AND *SMNB*.
*SMNB* EXIT
TCF C*MM*N1
*NBSM* EXIT
TCF C*MM*N3
# AX*SR*T COMBINES THE OLD SMNB AND NBSM. FOR THE NB TO SM
# TRANSFORMATION, ENTER WITH +3 IN A. FOR SM TO NB, ENTER WITH -3.
# THE VECTOR TO BE TRANSFORMED ARRIVES, AND IS RETURNED, IN VBUF.
# AX*SR*T EXPECTS TO FIND THE SINES AND COSINES OF THE ANGLES OF ROTATION
# AT SINCDU AND COSCDU, IN THE ORDER Y Z X. A CALL TO CD*TR*GS, WITH
# THE 2'S COMPLEMENT ANGLES (ORDER Y Z X) AT CDUSPOT, WILL TAKE CARE OF
# THIS. HERE IS A SAMPLE CALLING SEQUENCE:-
# TC CDUTRIGS
# CS THREE ("CA THREE" FOR NBSM)
# TC AX*SR*T
# THE CALL TO CD*TR*GS NEED NOT BE REPEATED, WHEN AX*SR*T IS CALLED MORE
# THAN ONCE, UNLESS THE ANGLES HAVE CHANGED.
# AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN
# UNITY. A LOOK AT THE CASE IN WHICH A VECTOR OF GREATER MAGNITUDE
# HAPPENS TO LIE ALONG AN AXIS OF THE SYSTEM TO WHICH IT IS TO BE TRANS-
# FORMED CONVINCES ONE THAT THIS IS A RESTRICTION WHICH MUST BE ACCEPTED.
AX*SR*T TS DEXDEX # WHERE IT BECOMES THE INDEX OF INDEXES
EXTEND
QXCH RTNSAVER
R*TL**P CCS DEXDEX # +3 --> 0 -3 --> 2
CS DEXDEX # THUS: +2 --> 1 -2 --> 1
AD THREE # +1 --> 2 -1 --> 0
# Page 1370
EXTEND
INDEX A
DCA INDEXI
DXCH DEXI
CA ONE
TS BUF
EXTEND
INDEX DEX1
DCS VBUF
TCF LOOP1 # REALLY BE A SUBTRACT, AND VICE VERSA
LOOP2 DXCH BUF # LOADING VECTOR COMPONENT, STORING INDEX
LOOP1 DXCH MPAC
CA SINESLOC
AD DEX1
TS ADDRWD
TC DMPSUB # MULTIPLY BY SIN(CDUANGLE)
CCS DEXDEX
DXCH MPAC # NBSM CASE
TCF +3
EXTEND # SMNB CASE
DCS MPAC
DXCH TERM1TMP
CA SIX # SINCDU AND COSCDU (EACH 6 WORDS) MUST
ADS ADDRWD # BE CONSECUTIVE AND IN THAT ORDER
EXTEND
INDEX BUF
INDEX DEX1
DCA VBUF
DXCH MPAC
TC DMPSUB # MULTIPLY BY COS(CDUANGLE)
DXCH MPAC
DAS TERM1TMP
DXCH TERM1TMP
DDOUBL
INDEX BUF
INDEX DEX1
DXCH VBUF
DXCH BUF # LOADING INDEX, STORING VECTOR COMPONENT
CCS A # 'CAUSE THAT'S WHERE THE INDEX NOW IS
TCF LOOP2
EXTEND
DIM DEXDEX # DECREMENT MAGNITUDE PRESERVING SIGN
# Page 1371
TSTPOINT CCS DEXDEX # ONLY THE BRANCHING FUNCTION IS USED
TCF R*TL**P
TC RTNSAVER
TCF R*TL**P
TC RTNSAVER
SINESLOC ADRES SINCDU # FOR USE IN SETTING ADDRWD
INDEXI DEC 4 # ********** DON'T ***********
DEC 2 # ********** TOUCH ***********
DEC 0 # ********** THESE ***********
DEC 4 # ********** CONSTANTS ***********
# ******************************************************************************
# Page 1372
# THIS SUBROUTINE COMPUTES INCREMENTAL CHANGES IN CDU(GIMBAL) ANGLES FROM INCREMENTAL CHANGES ABOUT SM AXES. IT
# REQUIRES SM INCREMENTS AS A DP VECTOR SCALED AT ONE REVOLUTION(DTHETASM,+2,+4). SIN,COS(CDUY,Z,X) ARE IN
# SINCDU,+2,+4 AND COSCDU,+2,+4 RESPECTIVELY,SCALED TO ONE HALF. CDU INCREENTS ARE PLACED IN DCDU,+2,+4 SCALED TO
# ONE REVOLUTION.
# * COS(IGA)SEC(MGA) 0 -SIN(IGA)SEC(MGA) *
# * *
# * -COS(IGA)TAN(MGA) 1 SIN(IGA)TAN(MGA) *
# * *
# * SIN(IGA) 0 COS(IGA) *
BANK 14
SETLOC POWFLIT1
BANK
SMCDURES DLOAD DMP
DTHETASM
COSCDUY
PDDL DMP
DTHETASM +4
SINCDUY
BDSU
DDV
COSCDUZ
STORE DCDU
DMP SL1 # SCALE
SINCDUZ
BDSU
DTHETASM +2
STODL DCDU +2
DTHETASM
DMP PDDL
SINCDUY
DTHETASM +4
DMP DAD
COSCDUY
SL1
STORE DCDU +4
RVQ

View File

@ -1,485 +0,0 @@
# Copyright: Public domain.
# Filename: R30.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 514-524
# Mod history: 2009-05-09 HG Started adapting from the Colossus249/ file
# of the same name, using Comanche055 page
# images 0514.jpg - 0524.jpg.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 514
# SUBROUTINE NAME: V82CALL
# MOD NO: 0 DATE: 16 FEB 67
# MOD BY: R. R. BAIRNSFATHER LOG SECTION: R30
# MOD NO: 1 MOD BY: R. R. BAIRNSFATHER DATE: 11 APR 67 SR30.1 CHANGED TO ALLOW MONITOR OPERN
# MOD NO: 2 MOD BY: ALONSO DATE: 11 DEC 67 VB82 PROGRAM REWRITTEN
# MOD NO: 3 MOD BY: ALONSO DATE: 26 MAR 68 PROG MOD TO HANDLE DIF EARTH/MOON SCALE
#
# NEW FUNCTIONAL DESCRIPTION: CALLED BY VERB 82 ENTER. PRIORITY 10.
# USED THROUGHOUT. CALCULATE AND DISPLAY ORBITAL PARAMETERS
#
# 1. IF AVERAGE G IS OFF:
# FLASH DISPLAY V04N06. R2 INDICATES WHICH SHIP'S STATE VECTOR IS
# TO BE UPDATED. INITIAL CHOICE IS THIS SHIP (R2=1). ASTRONAUT
# CAN CHANGE TO OTHER SHIP BY V22EXE. WHERE X IS NOT EQ 1.
# SELECTED STATE VECTOR UPDATED BY THISPREC (OTHPREC).
# CALLS SR30.1 (WHICH CALLS TFFCONMU + TFFRP/RA) TO CALCULATE
# RPER (PERIGEE RADIUS), RAPO (APOGEE RADIUS), HPER (PERIGEE
# HEIGHT ABOVE LAUNCH PAD OR LAUNAR LANDING SITE), HARD (APOGEE
# HEIGHT AS ABOVE), TPER (TIME TO PERIGEE), TFF (TIME TO
# INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE).
# FLASH MONITOR V16N44 (HAPO, HPER, TFF). TFF IS -59MS59S IF IT WAS
# NOT COMPUTABLE, OTHERWISE IT INCREMENTS ONCE PER SECOND.
# ASTRONAUT HAS OPTION TO MONITOR TPER BY KEYING IN N 32 E.
# DISPLAY IS IN HMS, IS NEGATIVE (AS WAS TFF), AND INCREMENTS
# ONCE PER SECOND ONLY IF TFF DISPLAY WAS -59M59S.
# 2. IF AVERAGE G IS ON:
# CALLS SR30.1 APPROX EVERY TWO SECS. STATE VECTOR IS ALWAYS
# FOR THIS VEHICLE. V82 DOES NOT DISTURB STATE VECTOR. RESULTS
# OF SR30.1 ARE RAPO, RPER, HAPO, HPER, TPER, TFF.
# FLASH MONITOR V16N44 (HAPO, HPER, TFF).
# IF MODE IS P11, THEN CALL DELRSPL SO ASTRONAUT CAN MONITOR
# RESULTS BY N50E. SPLASH COMPUTATION DONE ONCE PER TWO SECS.
# ADDENDUM: HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE
# ABOVE REMARKS.
#
# CALLING SEQUENCE: VERB 82 ENTER.
#
# SUBROUTINES CALLED: SR30.1, GOXDSPF
# MAYBE -- THISPREC, OTHPREC, LOADTIME, DELRSPL
#
# NORMAL EXIT MODES: TC ENDEXT
#
# ALARMS: NONE
#
# OUTPUT: HAPOX (-29) M
# HPERX (-29) M
# RAPO (-29) M EARTH
# (-27) M MOON
# Page 515
# RPER (-29) M EARTH
# (-27) M MOON
# TFF (-28) CS CONTAINS NEGATIVE QUANTITY
# -TPER (-28) CS CONTAINS NEGATIVE QUANTITY
# RSP-RREC(-29) M IF DELRSPL CALLED
#
# ERASABLE INITIALIZATION REQUIRED: STATE VECTOR.
#
# DEBRIS: QPRET, RONE, VONE,TFF/RTMU, HPERMIN, RPADTEM, V82EMFLG.
# MAYBE: TSTART82, V82FLAGS, TDEC1.
EBANK= HAPOX
BANK 31
SETLOC R30LOC
BANK
COUNT* $$/R30
V82CALL TC INTPRET
BON GOTO
AVEGFLAG
V82GON # IF AVERAGE G ON
V82GOFF # IF AVERAGE G OFF
V82GOFF EXIT # ALLOW ASTRONAUT TO SELECT VEHICLE
CAF TWO # DESIRED FOR ORBITAL PARAMETERS
TS OPTIONX
CAF ONE
TS OPTIONX +1
CAF OPTIONVN # V 04 N 06
TC BANKCALL
CADR GOXDSPF
TC ENDEXT # TERMINATE
TC +2 # PROCEED
TC -5 # DATA IN. OPTIONX +1 = 1 FOR THIS VEHIC.
# UNEQ 1 FOR OTHER VEHICLE.
CAF BIT4 # 80 MS
TC WAITLIST
EBANK= TFF
2CADR TICKTEST
RELINT
V82GOFLP CAF TFFBANK # MAJOR RECYCLE LOOP ENTRY
TS EBANK
CAF ZERO
TS V82FLAGS # ZERO FLAGS FOR TICKTEST, INHIBITS
# DECREMENTING OF TFF AND -TPER.
CAF PRIO7
TC FINDVAC # V82GOFF1 WILL EXECUTE STATE VECTOR
# Page 516
EBANK= TFF # UPDATE AND ORBIT CALCULATIONS FOR
2CADR V82GOFF1 # SELECTED VEHICLE ABOUT PROPER BODY.
RELINT
V82STALL CAF THREE # STALL IN THIS LOOP AND WITHOLD V 16 N 44
MASK V82FLAGS # UNTIL STATE VECTOR UPDATE SETS ONE OF
CCS A # OUR FLAG BITS.
TC FLAGGON # EXIT FROM STALL LOOP.
CAF 1SEC
TC BANKCALL
CADR DELAYJOB
TC V82STALL
FLAGGON CAF V16N44 # MONITOR HAPO,HPER,TFF.
TC BANKCALL
CADR GOXDSPF
TC B5OFF # TERM THIS TELLS TICKTEST TO KILL ITSELF
TC B5OFF # PROCEED DITTO
TC V82GOFLP # RECYCLE RECOMPUTE STATE VECT + DISPLAY
OPTIONVN VN 0412
V16N44 VN 1644
TFFBANK ECADR TFF
V82GOFF1 TC INTPRET
RTB
LOADTIME
STORE TDEC1 # TIME FOR STATE VECTOR UPDATE.
STORE TSTART82 # TIME FOR INTERNAL USE.
EXIT
CS OPTIONX +1 # 1 FOR THIS VEHICLE, NOT 1 FOR OTHER
AD ONE
EXTEND
BZF THISSHIP
OTHSHIP TC INTPRET
CALL # CALL STATE VECTOR UPDATE FOR OTHER SHIP.
OTHPREC
BOTHSHIP VLOAD # MOVE RESULTS INTO TFFCONIC STORAGE AREAS
RATT # TO BE CALLED BY SR30.1.
STOVL RONE # RATT AT (-29)M FOR EARTH OR MOON
VATT
STORE VONE # VATT AT (-7)M/CS FOR EARTH OR MOON
DLOAD*
1/RTMUE,2 # X2 IS 0 FOR EARTH CENTERED STATE VEC
STORE TFF/RTMU # X2 IS 2 FOR MOON
DLOAD* # AS LEFT BY THISPREC OR OTHPREC.
MINPERE,2
STORE HPERMIN # TFFRTMU, HPERMIN, AND RPADTEM ARE ALL
SLOAD BHIZ # EARTH/MOON PARAMETERS AS SET HERE.
# Page 517
X2
EARTHPAD
GOTO
MOONPAD
THISSHIP TC INTPRET
CALL # CALL STATE VECTOR UPDATE FOR THIS SHIP.
THISPREC
GOTO
BOTHSHIP
# THE FOLLOWING CONSTANTS ARE PAIRWISE INDEXED. DO NOT SEPARATE PAIRS.
1/RTMUM 2DEC* .45162595 E-4 B14*
1/RTMUE 2DEC* .50087529 E-5 B17*
MINPERM 2DEC 10668 B-27 # 35 KFT MIN PERIGEE HEIGHT FOR MOON(-27)M
MINPERE 2DEC 91440 B-29 # 300 KFT (-29)M FOR EARTH
EARTHPAD DLOAD CLRGO # PAD 37-B RADIUS. SCALED AT (-29)M.
RPAD
V82EMFLG # INDICATE EARTH SCALING FOR SR30.1
BOTHPAD
MOONPAD VLOAD ABVAL # COMPUTE MOON PAD RADIUS FROM RLS VECTOR.
RLS # SCALED AT (-27)M.
SET
V82EMFLG # INDICATE MOON SCALING FOR SR30.1
BOTHPAD STCALL RPADTEM
SR30.1 # CALCULATE ORBITAL PARAMETERS
EXIT
CA MODREG # ARE WE IN P00
EXTEND
BZF CANDEL # YES, DO DELRSPL
SPLRET1 TC INTPRET
RTB DSU
LOADTIME
TSTART82 # PRESENT TIME - TIME V82GOFF1 BEGAN
STORE TSTART82 # SAVE IT
DLOAD BZE # SR30.1 SETS -TPER=0 IF HPER L/
-TPER # HPERMIN (300 OR 35) KFT.
TICKTFF # (-TPER = 0)
TICKTPER DLOAD DAD # (-TPER NON ZERO) TFF WAS NOT COMPUTED,
-TPER # BUT WAS SET TO 59M59S.DON'T DICK TFF, DO
TSTART82 # TICK -TPER. DISPLAY BOTH.
STORE -TPER # -TPER CORRECTED FOR TIME SINCE V82GOFF1
EXIT # BEGAN.
# Page 518
CAF BIT1
TS V82FLAGS # INFORMS TICKTEST TO INCREMENT ONLY -TPER
TC ENDOFJOB
TICKTFF DLOAD DAD # (-TPER=0) TFF WAS COMPUTED.TICK TFF.
TFF # DO NOT TICK -TPER.DISPLAY TFF, BUT NOT
TSTART82 # -TPER.
STORE TFF # TFF CORRECTED FOR TIME SINCE V82GOFF1
EXIT # BEGAN.
CAF BIT2
TS V82FLAGS # INFORMS TICKTEST TO INCREMENT ONLY TFF.
TC ENDOFJOB
TICKTEST CAF BIT5 # THIS WAITLIST PROGRAM PERPETUATES ITSELF
MASK EXTVBACT # ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0.
CCS A
TC DOTICK
CAF PRIO25
TC NOVAC # TERMINATE V 82.CAN'T CALL ENDEXT IN RUPT.
EBANK= EXTVBACT
2CADR ENDEXT
TC TASKOVER
DOTICK CAF 1SEC # RE-REQUEST TICKTEST.
TC WAITLIST
EBANK= TFF
2CADR TICKTEST
CAF THREE
MASK V82FLAGS
INDEX A
TC +1
TC TASKOVER # IF NO FLAGBITS SET DONT CHANGE TFF OR
# -TPER, BUT CONTINUE LOOP.
TC TPERTICK # ONLY BIT 1 SET. INCR -TPER BY 1 SEC.
TFFTICK CAF 1SEC # ONLY BIT 2 SET. INCR TFF BY 1 SEC.
TS L
CAF ZERO
DAS TFF
TC TASKOVER
TPERTICK CAF 1SEC
TS L
CAF ZERO
DAS -TPER
TC TASKOVER
# Page 519
V82GON EXIT # AVERAGE G ON. USE CURRENT STATE VECTOR
# FOR ORBITAL PARAMETER CALCULATIONS.
CAF PRIO7 # LESS THAN LAMBERT
TC FINDVAC # V82GON1 WILL PERFORM ORBIT CALCULATIONS
EBANK= TFF # ABOUT PROPER BODY APPROX ONCE PER SEC.
2CADR V82GON1
RELINT
CCS NEWJOB # WITHOLD V16 N44 UNTIL FIRST ORBIT CALC
TC CHANG1 # IS DONE. NOTE: V82GON1 (PRIO7, FINDVAC
# JOB) IS COMPLETED BEFORE V82GON (PRIO7,
# NOVAC JOB).
V82REDSP CAF V16N44 # MONITOR HAPO, HPER, TFF
TC BANKCALL
CADR GOXDSPF
TC B5OFF # TERM THIS TELLS V82GON1 TO KILL ITSELF.
TC B5OFF # PROC DITTO.
TC V82REDSP # RECYCLE
V82GON1 TC INTPRET # THIS EXEC PROGRAM PERPETUATES ITSELF
# ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0.
VLOAD GOTO # HOLDS OFF CCS NEWJOB BETWEEN RN AND
RN # VN FETCH SO RN , VN ARE FROM SAME
NEXTLINE # STATE VECTOR UPDATE.
NEXTLINE STOVL RONE # RN AT (-29)M FOR EARTH OR MOON
VN
STORE VONE # VN AT (-7)M/CS FOR EARTH OR MOON
BON GOTO
AMOONFLG # FLAG INDICATES BODY ABOUT WHICH ORBITAL
MOONGON # CALCULATIONS ARE TO BE PERFORMED.
EARTHGON # IF SET - MOON , IF RESET - EARTH.
MOONGON SET DLOAD
V82EMFLG # INDICATE MOON SCALING FOR SR30.1
1/RTMUM # LUNAR PARAMETERS LOADED HERE FOR SR30.1
STODL TFF/RTMU
MINPERM
STOVL HPERMIN
RLS # SCALED AT (-27)M
ABVAL GOTO
V82GON2
EARTHGON CLEAR DLOAD
V82EMFLG # INDICATE EARTH SCALING FOR SR30.1
1/RTMUE # EARTH PARAMETERS LOADED HERE FOR SR30.1
STODL TFF/RTMU
MINPERE
STODL HPERMIN
RPAD
V82GON2 STCALL RPADTEM # COMMON CODE FOR EARTH & MOON.
SR30.1
# Page 520
EXIT
TC CHECKMM
DEC 11
TC V82GON3 # NOT IN MODE 11.
CANDEL TC INTPRET # IN MODE 11 OR 00
CALL
INTSTALL # DELRSPL DOES INTWAKE
DLOAD CALL
TFF
DELRSPL # RETURN IS TO NEXT LINE ( SPLRET ).
SPLRET EXIT
CA MODREG
EXTEND
BZF SPLRET1
V82GON3 CAF BIT5
MASK EXTVBACT # SEE IF ASTRONAUT HAS SIGNALLED TERMINATE
EXTEND
BZF ENDEXT # YES, TERMINATE VB 82 LOOP
CAF 1SEC
TC BANKCALL # WAIT ONE SECOND BEFORE REPEATING
CADR DELAYJOB # ORBITAL PARAMETER COMPUTATION.
TC V82GON1
# Page 521
# SUBROUTINE NAME: SR30.1
# MOD NO: 0 DATE: 16 FEB 67
# MOD BY: R. R. BAIRNSFATHER LOG SECTION: R32
# MOD NO: 1 MOD BY: R. R. BAIRNSFATHER DATE: 11 APR 67 SR30.1 CHANGED TO ALLOW MONITOR OPERN
# MOD NO: 2 MOD BY: R. R. BAIRNSFATHER DATE: 14 APR 67 ADD OVFL CK FOR RAPO
# MOD NO: 3 MOD BY ALONSO DATE: 11 DEC 67 SUBROUTINE REWRITTEN
# MOD NO: 4 MOD BY ALONSO DATE: 26 MAR 68 PROG MOD TO HANDLE DIF EARTH/MOON SCALE
# MOD NO: 5 MOD BY: RR BAIRNSFATHER DATE: 6 AUG 68 OVFL CK FOR HAPO & HPER. VOIDS MOD #2.
#
# NEW FUNCTIONAL DESCRIPTION: ORBITAL PARAMETERS DISPLAY FOR NOUNS 32 AND 44.
# SR30.1 CALLS TFFCONMU AND TFFRP/RA TO CALCULATE RPER (PERIGEE RADIUS),
# RAPO (APOGEE RADIUS), HPER (PERIGEE HEIGHT ABOVE LAUNCH PAD OR LUNAR
# LANDING SITE), HAPO (APOGEE HEIGHT AS ABOVE), TPER (TIME TO PERIGEE),
# TFF (TIME TO INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE).
# IF HPER IS GREATER THAN OR EQUAL TO HPERMIN, CALCULATES TPER AND STORES
# NEGATIVE IN -TPER. OTHERWISE STORES +0 IN -TPER. WHENEVER TPER IS
# CALCULATED, TFF IS NOT COMPUTABLE AND DEFAULTS TO -59MIN 59SEC. IF HAPO
# WOULD EXCEED 9999.9 NM, IT IS LIMITED TO THAT VALUE FOR DISPLAY.
#
# ADDENDUM: HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE
# ABOVE REMARKS.
#
# CALLING SEQUENCE: CALL
# SR30.1
#
# SUBROUTINES CALLED: TFFCONMU, TFFRP/RA, CALCTPER, CALCTFF
# NORMAL EXIT MODE: CALLING LINE +1 (STILL IN INTERPRETIVE MODE)
# ALARMS: NONE
# OUTPUT: RAPO (-29) M EARTH APOGEE RADIUS EARTH CENTERED COORD.
# (-27) M MOON MOON CENTERED COORD.
# RPER (-29) M EARTH PERIGEE RADIUS EARTH CENTERED COORD.
# (-27) M MOON MOON CENTERED COORD.
# HAPOX (-29) M APOGEE ALTITUDE ABOVE PAD OR LAND. SITE MAX VALUE LIMITED TO 9999.9 NM.
# HPERX (-29) M PERIGEE ALT. ABOVE PAD OR LAND. SITE MAX VALUE LIMITED TO 9999.9 NM.
# TFF (-28) CS TIME TO 300KFT OR 35KFT ALTITUDE
# -TPER (-28) CS TIME TO PERIGEE
# ERASABLE INITIALIZATION REQUIRED -
# TFF/RTMU (+17) EARTH RECIPROCAL OF PROPER GRAV CONSTANT FOR
# (+14) MOON EARTH OR MOON = 1/SQRT(MU).
# RONE (-29) M STATE VECTOR
# VONE (-7) M/CS STATE VECTOR
# RPADTEM (-29) M EARTH RADIUS OF LAUNCH PAD OR LUNAR LANDING
# (-27) M MOON SITE.
# HPERMIN (-29) M EARTH (300 OR 35) KFT MINIMUM PERIGEE ALTITUDE
# (-27) M MOON ABOVE LAUNCH PAD OR LUNAR LANDING SITE.
# V82EMFLG (INT SW BIT) RESET FOR EARTH, SET FOR MOON.
#
# DEBRIS: QPRET, PDL, S2
# Page 522
COUNT* $$/SR30S
SR30.1 SETPD STQ # INITIALIZE PUSHDOWN LIST.
0
S2
# SR30.1 INPUT: RONE AT (-29)M EARTH/MOON
# VONE AT (-7)M/CS
# TFFCONMU,TFFRP/RA,CALCTPER,AND CALCTFF
# CALLS REQUIRE:
# EARTH CENTERED (NO RESCALING REQUIRED)
# RONE SCALED TO B-29 M
# VONE SCALED TO B-7 M/CS
# MOON CENTERED (RESCALING REQUIRED)
# RONE SCALED TO B-27 M
# VONE SCALED TO B-5 M/CS
BOFF VLOAD
V82EMFLG # OFF FOR EARTH , ON FOR MOON.
TFFCALLS
RONE
VSL2
STOVL RONE
VONE
VSL2
STORE VONE
TFFCALLS CALL
TFFCONMU
CALL # TFFRP/RA COMPUTES RAPO,RPER.
TFFRP/RA
# RETURNS WITH RAPO IN D(MPAC).
DSU
RPADTEM
BOFF SR2R # NEED HAPO AT (-29)M FOR DISPLAY.
# IF MOON CENTERED, RESCALE FROM (-27)M.
# IF EARTH CENTERED ALREADY AT (-29)M.
V82EMFLG # OFF FOR EARTH , ON FOR MOON.
+1
CALL # IF HAPO > MAXNM, SET HAPO =9999.9 NM.
MAXCHK # OTHERWISE STORE (RAPO-RPADTEM) IN HAPO.
STORHAPO STODL HAPOX
RPER
DSU
RPADTEM # GIVES HPER AT (-29)M EARTH, (-27)M MOON.
STORE MPAC +4 # SAVE THIS FOR COMPARISON TO HPERMIN.
BOFF SR2R # NEED HPER AT (-29)M FOR DISPLAY.
# IF MOON CENTERED, RESCALE FROM (-27)M.
# IF EARTH CENTERED ALREADY AT (-29)M.
V82EMFLG # OFF FOR EARTH, ON FOR MOON.
+1
CALL # IF HPER > MAXNM, SET HPER = 9999.9 NM.
MAXCHK
# Page 523
STORHPER STODL HPERX # STORE (RPER - RPADTEM) INTO HPERX.
MPAC +4
DSU BPL # HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
HPERMIN # IF HPER L/ HPERMIN (300 OR 35) KFT,
DOTPER # THEN ZERO INTO -TPER.
DLOAD GOTO # OTHERWISE CALCULATE TPER.
HI6ZEROS
SKIPTPER
DOTPER DLOAD CALL
RPER
CALCTPER
DCOMP # TPER IS PUT NEG INTO -TPER.
SKIPTPER STODL -TPER
HPERMIN # HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
DAD CALL
RPADTEM # RPADTEM AT (-29)M FOR EARTH, (-27)M MOON
CALCTFF # GIVES 59M59S FOR TFF IF RPER G/
DCOMP # HPERMIN + RPADTEM. (TPER WAS NON ZERO)
STCALL TFF # OTHERWISE COMPUTES TFF. (GOTO)
S2
MAXCHK DSU BPL # IF C(MPAC) > 9999.9 NM. MPAC = 9999.9 NM.
MAXNM
+3 # OTHERWISE C(MPAC) = B(MPAC).
DAD RVQ
MAXNM
+3 DLOAD RVQ # (USED BY P30 - P37 ALSO)
MAXNM
MAXNM 2OCT 0106505603
# Page 524
# There is no source code on this page --- HG 2009

View File

@ -1,290 +0,0 @@
# Copyright: Public domain.
# Filename: R31.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 505-510
# Contact: Onno Hommes <ohommes@cmu.edu>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-11 OH Batch 2 Assignment Comanche Transcription
# 2009-05-20 RSB Corrected INSTALL -> INTSTALL
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 505
BANK 34
SETLOC R31
BANK
COUNT* $$/R31
R31CALL CAF PRIO3
TC FINDVAC
EBANK= SUBEXIT
2CADR V83CALL
DSPDELAY CAF 1SEC
TC BANKCALL
CADR DELAYJOB
CA EXTVBACT
MASK BIT12
EXTEND
BZF DSPDELAY
DISPN5X CA FLAGWRD9 # TEST R31FLAG (IN SUNDANCE R31FLAG WILL
MASK BIT4 # ALWAYS BE SET AS R34 DOES NOT EXIST)
EXTEND
BZF +3
CAF V16N54 # R31 USE NOUN 54
TC +2
CAF V16N53 # R34 USE NOUN 53
TC BANKCALL
CADR GOMARKF
TC B5OFF
TC B5OFF
TCF DISPN5X
V83 TC INTPRET
GOTO
HAVEBASE # INTEG STATE VECTORS
V83CALL TC INTPRET
GOTO
STATEXTP # EXTRAPOLATE STATE VECTORS
COMPDISP VLOAD VSU
RATT
RONE
PUSH ABVAL # RATT-RONE TO 0D PD= 6
STORE RANGE # METERS B-29
NORM VLOAD
X1 # RATT-RONE PD= 0
VSR1
VSL* UNIT
0,1
PDVL VSU # UNIT(LOS) TO 0D PD= 6
# Page 506
VATT
VONE
DOT # (VATT-VONE).UNIT(LOS) PD= 0
SL1
STCALL RRATE # RANGE RATE M/CS B-7
CDUTRIG # TO INITIALIZE FOR *NBSM*
CALL
R34LOS # NOTE. PDL MUST = 0.
R34ANG VLOAD UNIT
RONE
PDVL # UR TO 0D PD= 6
THISAXIS # UNITX FOR CM, UNITZ FOR LM
BON VLOAD # CHK R31FLAG. ON=R31 THETA, OFF=R34 PHI
R31FLAG
+2 # R31-THETA
12D
CALL
*NBSM*
VXM PUSH # UXORZ TO 6D PD=12D
REFSMMAT
VPROJ VSL2
0D
BVSU UNIT
6D
PDVL VXV # UP/2 TO 12D PD=18D
RONE
VONE
UNIT VXV
RONE
DOT PDVL # SIGN TO 12D, UP/2 TO MPAC PD=18D
12D
VSL1 DOT # UP.UXORZ
6D
SIGN SL1
12D
ACOS
STOVL RTHETA
RONE
DOT BPL
6D
+5
DLOAD BDSU # IF UXORZ.R NEG, RTHETA = 1 - RTHETA
RTHETA
DPPOSMAX
STORE RTHETA # RTHETA BETWEEN 0 AND 1 REV.
EXIT
CAF BIT5 # HAVE WE BEEN ANSWERED
MASK EXTVBACT
EXTEND
BZF ENDEXT # YES, DIE
# Page 507
CS EXTVBACT
MASK BIT12
ADS EXTVBACT
TCF V83
V16N54 VN 1654
V16N53 VN 1653
# Page 508
# STATEXTP DOES AN INITIAL PRECISION EXTRAPOLATION OF THE
# LEM STATE VECTOR TO PRESENT TIME OR TO PIPTIME IF AV G
# IS ON AND SAVES AS BASE VECTOR. IF AV G IS ON RN + VN
# ARE USED AS THE CM STATE VECTOR AND THE INITIAL R RDOT
# RTHETA ARE COMPUTED WITH NO FURTHER INTEGRATION. IF AV
# G IS OFF A PRECISION EXTRAPOLATION IS MADE OF THE CM
# STATE VECTOR TO PRESENT TIME AND.....
#
# THE CM + LM STATE VECTORS ARE INTEGRATED TO PRES TIME
# USING PRECISION OR CONIC AS SURFFLAG IS SET OR CLEAR.
#
# IF AV G IS ON THEN
# SUBSEQUENT PASSES WILL PROVIDE
# USE OF RN + VN AS CM STATE VECTOR AND THE LM STATE
# VECTOR WILL BE PRECISION INTEGRATED USING LEMPREC
#
# IF SURFFLAG IS SET.
# CM STATE VECTOR RONE VONE + LM STATE VECTOR RATT
# VATT ARE USED IN COMPUTING R RDOT RTHETA.
#
STATEXTP RTB BOF # INITIAL INTEGRATION
LOADTIME
V37FLAG
+3 # AV G OFF, USE PRES TIME
CALL
GETRVN # ON, USE RN VN PIPTIME
STORE BASETIME # PRES TIME OR PIPTIME
STCALL TDEC1
LEMPREC
VLOAD # BASE VECTOR, LM
RATT1
STOVL BASEOTP # POS.
VATT1
STORE BASEOTV # VEL.
BON DLOAD
V37FLAG
COMPDISP # COMPUTE R RDOT RTHETA FROM
# RONE(RN) VONE(VN) RATT+VATT(LEMPREC)
TAT
STCALL TDEC1
CSMPREC
VLOAD # BASE VECTOR, CM
RATT1
STOVL BASETHP # POS.
VATT1
STORE BASETHV # VEL.
HAVEBASE BON RTB # SUBSEQUENT INTEGRATIONS
V37FLAG
GETRVN5
LOADTIME
STCALL TDEC1 # AV G OFF. SET INTEG. OF CM
INTSTALL
VLOAD CLEAR
BASETHP
# Page 509
MOONFLAG
STOVL RCV
BASETHV
STODL VCV
BASETIME
BOF SET # GET APPROPRIATE MOONFLAG SETTING
MOONTHIS
+2
MOONFLAG
CLEAR
INTYPFLG
BON SET
SURFFLAG
+2 # PREC. IF LM DOWN
INTYPFLG # CONIC IF LM NOT DOWN
STCALL TET
INTEGRVS # INTEGRATION --- AT LAST---
VLOAD
RATT
STOVL RONE
VATT
STODL VONE # GET SET FOR CONIC EXTRAP.,OTHER
TAT
BON CALL
SURFFLAG
GETRVN6 # LEMPREC IF LM DOWN
INTSTALL # ..CONIC IF NOT DOWN
SET
INTYPFLG
OTHINT STORE TDEC1 # ENTERED IF AV G ON TO INTEG LM
VLOAD CLEAR
BASEOTP
MOONFLAG
STOVL RCV
BASEOTV
STODL VCV
BASETIME
BOF SET
MOONTHIS
+2
MOONFLAG
STCALL TET
INTEGRVS
GOTO
COMPDISP # COMPUTE R RDOT RTHETA
GETRVN5 CALL # AV G ON
GETRVN
BON CALL
SURFFLAG
GETRVN6 # LM DOWN, LMPREC
# Page 510
INTSTALL
CLEAR GOTO
INTYPFLG
OTHINT
GETRVN6 STCALL TDEC1
LEMPREC
GOTO
COMPDISP # COMPUTE R RDOT RTHETA
GETRVN STQ
0D
VLOAD GOTO # AV G ON, RONE = RN VONE = VN
RN # AND USE PIPTIME
+1
STCALL RONE
+1
VLOAD GOTO
VN
+1
STODL VONE
PIPTIME
GOTO
0D
SETLOC R34
BANK
R34LOS EXIT
CA CDUS
INDEX FIXLOC
TS 9D
CA CDUT
INDEX FIXLOC
TS 11D
CA FIXLOC
AD SIX
COM
INDEX FIXLOC
TS X1
TC INTPRET
CALL
SXTNB
STCALL 12D
R34ANG

View File

@ -1,385 +0,0 @@
# Copyright: Public domain.
# Filename: R60_62.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 390-398
# Mod history: 2009-05-09 RSB Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 390
BANK 34
SETLOC MANUVER
BANK
EBANK= TEMPR60
COUNT 27/R60
# CONFORMS TO GSOP CHAPTER FOUR REVISION LOGIC 09 JAN 18,1968
R60CSM TC MAKECADR
TS TEMPR60
# INSERT PRIODSP CHECK WITH R22 (V06N49) WITH JENNINGS BRODEUR
REDOMANN CAF BIT6
MASK FLAGWRD5 # IS 3-AXIS FLAG SET
CCS A
TCF TOBALL # YES
TC INTPRET
CALL
VECPOINT # TO COMPUTE FINAL ANGLES
STORE CPHI # STORE FINAL ANGLES - CPHI,CTHETA,CPSI
EXIT
TOBALL CAF V06N18
TC BANKCALL
CADR GOPERF2R # DISPLAY PLEASE PERFORM AUTO MANEUVER
TC R61TEST
TC REDOMANC # PROCEED
TCF ENDMANU1 # ENTER I.E. FINISHED WITH R60
TC CHKLINUS # TO CHECK FOR PRIORITY DISPLAYS
TC ENDOFJOB
REDOMANC CAF BIT6
MASK FLAGWRD5 # IS 3-AXIS FLAG SET
CCS A
TCF TOBALLC # YES
TC INTPRET
CALL
VECPOINT # TO COMPUTE FINAL ANGLES
STORE CPHI # STORE ANGLES
EXIT
TOBALLC CAF PRIO30 # IS MODE AUTO AND CTL GNC
# Page 391
EXTEND
RXOR CHAN31
MASK 13,14,15
EXTEND
BZF +2 # AUTO, NON-FLASH N18
TCF TOBALL # NOT AUTO
CAF V06N18 # SET UP NON-FLASHING V06 N18
TC BANKCALL
CADR GODSPR
TC CHKLINUS
STARTMNV TC BANKCALL
CADR GOMANUR
ENDMANUV TCF TOBALL # FINISHED MANEUVER
ENDMANU1 TC DOWNFLAG # RESET 3-AXIS FLAG
ADRES 3AXISFLG # BIT 6 FLAG 5
CAE TEMPR60
TC BANKJUMP
CHKLINUS CS FLAGWRD4
MASK BIT12 # IS PRIORITY DISPLAY FLAG SET
CCS A
TC Q # NO - EXIT
CA Q
TS MPAC +2 # SAVE RETURN
CS THREE # OBTAIN LOCATION FOR RESTART.
AD BUF2 # HOLDS Q OF LAST DISPLAY
TS TBASE1
TC PHASCHNG
OCT 71 # 1.7SPOT FOR RELINUS
CAF BIT7
TC LINUS # GO SET BITS FOR PRIORITY DISPLAY
TC MPAC +2
RELINUS CAF BIT5 # IS TRACK FLAG ON
MASK FLAGWRD1
EXTEND
BZF GOREDO20 # NO
TC UPFLAG
ADRES PDSPFLAG # R60 PRIODSP FLAG
TC UPFLAG
ADRES TARG1FLG # FOR R52
CAF ZERO # RESET TO ZERO, SINCE
# Page 392
TS OPTIND # OPTIND WAS SET TO -1 BY V379
CAF PRIO14 # RESTORE ORIGINAL PRIORITY
TC PRIOCHNG
TC TBASE1
GOREDO20 TC PHASCHNG
OCT 111 # 1.11 FOR PIKUP20
TC ENDOFJOB
R61TEST CA MODREG # ARE WE IN P00. IF YES THIS MUST BE
EXTEND # VERB49 OR VERB89 SO DO ENDEXT.
BZF ENDMANU1 # RESET 3-AXIS & RUTURN. USER DOES ENDEXT
CA FLAGWRD4 # ARE WE IN R61 (P20)
MASK BIT12
EXTEND
BZF GOTOPOOH # NO
TC GOTOV56 # YES
BIT14+7 OCT 20100
V06N18 VN 0618
# Page 393
# PROGRAM DESCRIPTION - VECPOINT
# THIS INTERPRETIVE SUBROUTINE MAY BE USED TO POINT A SPACECRAFT AXIS IN A DESIRED DIRECTION. THE AXIS
# TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN SUCCESSIVE LOCATIONS OF ERASABLE MEMORY
# BEGINNING WITH THE LOCATION CALLED SCAXIS. THE COMPONENTS OF THIS VECTOR ARE GIVEN IN SPACECRAFT COORDINATES.
# THE DIRECTION IN WHICH THIS AXIS IS TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN
# SUCCESSIVE LOCATIONS OF ERASABLE MEMORY BEGINNING WITH THE ADDRESS CALLED POINTVSM. THE COMPONENTS OF THIS
# VECTOR ARE GIVEN IN STABLE MEMBER COORDINATES. WITH THIS INFORMATION VECPOINT COMPUTES A SET OF THREE GIMBAL
# ANGLES (2S COMPLEMENT) CORRESPONDING TO THE CROSS-PRODUCT ROTATION BETWEEN SCAXIS AND POINTVSM AND STORES THEM
# IN T(MPAC) BEFORE RETURNING TO THE CALLER.
# THIS ROTATION, HOWEVER, MAY BRING THE S/C INTO GIMBAL LOCK. WHEN POINTING A VECTOR IN THE Y-Z PLANE,
# THE TRANSPONDER AXIS, OR THE AOT FOR THE LEM, THE PROGRAM WILL CORRECT THIS PROBLEM BY ROTATING THE CROSS-
# PRODUCT ATTITUDE ABOUT POINTVSM BY A FIXED AMOUNT SUFFICIENT TO ROTATE THE DESIRED S/C ATTITUDE OUT OF GIMBAL
# LOCK. IF THE AXIS TO BE POINTED IS MORE THAN 40.6 DEGREES BUT LESS THAN 60.5 DEG FROM THE +X (OR-X) AXIS,
# THE ADDITIONAL ROTATION TO AVOID GIMBAL LOCK IS 35 DEGREES. IF THE AXIS IS MORE THAN 60.5 DEGREES FROM +X (OR -X)
# THE ADDITIONAL ROTATION IS 35 DEGREES. THE GIMBAL ANGLES CORRESPONDING TO THIS ATTITUDE ARE THEN COMPUTED AND
# STORED AS 2S COMPLIMENT ANGLES IN T(MPAC) BEFORE RETURNING TO THE CALLER.
# WHEN POINTING THE X-AXIS, OR THE THRUST VECTOR, OR ANY VECTOR WITHIN 40.6 DEG OF THE X-AXIS, VECPOINT
# CANNOT CORRECT FOR A CROSS-PRODUCT ROTATION INTO GIMBAL LOCK. IN THIS CASE A PLATFORM REALIGNMENT WOULD BE
# REQUIRED TO POINT THE VECTOR IN THE DESIRED DIRECTION. AT PRESENT NO INDICATION IS GIVEN FOR THIS SITUATION
# EXCEPT THAT THE FINAL MIDDLE GIMBAL ANGLE IN MPAC +2 IS GREATER THAN 59 DEGREES.
# CALLING SEQUENCE -
# 1) LOAD SCAXIS, POINTVSM
# 2) CALL
# VECPOINT
# RETURNS WITH
# 1) DESIRED OUTER GIMBAL ANGLE IN MPAC
# 2) DESIRED INNER GIMBAL ANGLE IN MPAC +1
# 3) DESIRED MIDDLE GIMBAL ANGLE IN MPAC +2
# ERASABLES USED -
# 1) SCAXIS 6
# 2) POINTVSM 6
# 3) MIS 18
# 4) DEL 18
# 5) COF 6
# 6) VECQTEMP 1
# 7) ALL OF VAC AREA 43
# TOTAL 99
SETLOC VECPT
BANK
# Page 394
EBANK= BCDU
COUNT 27/VECPT
VECPOINT STQ BOV # SAVE RETURN ADDRESS
VECQTEMP
VECLEAR # AND CLEAR OVFIND
VECLEAR AXC,2 RTB
MIS # READ THE PRESENT CDU ANGLES AND
READCDUK # STORE THEM IN PD25, 26, 27
STCALL 25D
CDUTODCM # S/C AXES TO STABLE MEMBER AXES (MIS)
VLOAD VXM
POINTVSM # RESOLVE THE POINTING DIRECTION VF INTO
MIS # INITIAL S/C AXES ( VF = POINTVSM)
UNIT
STORE 28D
# PD 28 29 30 31 32 33
VXV UNIT # TAKE THE CROSS PRODUCT VF X VI
SCAXIS # WHERE VI = SCAXIS
BOV VCOMP
PICKAXIS
STODL COF # CHECK MAGNITUDE
36D # OF CROSS PRODUCT
DSU BMN # VECTOR, IF LESS
DPB-14 # THAN B-14 ASSUME
PICKAXIS # UNIT OPERATION
VLOAD DOT # INVALID.
SCAXIS
28D
SL1 ARCCOS
COMPMATX CALL # NOW COMPUTE THE TRANSFORMATION FROM
DELCOMP # FINAL S/C AXES TO INITIAL S/C AXES MFI
AXC,1 AXC,2
MIS # COMPUTE THE TRANSFORMATION FROM FINAL
DEL # S/C AXES TO STABLE MEMBER AXES
CALL # MFS = MIS MFI
MXM3 # (IN PD LIST)
DLOAD ABS
6 # MFS6 = SIN(CPSI) $2
DSU BMN
SINGIMLC # = SIN(59 DEGS) $2
FINDGIMB # /CPSI/ LESS THAN 59 DEGS
# I.E. DESIRED ATTITUDE NOT IN GIMBAL LOCK
DLOAD ABS # CHECK TO SEE IF WE ARE POINTING
SCAXIS # THE THRUST AXIS
DSU BPL
SINVEC1 # SIN 49.4 DEGS $2
# Page 395
FINDGIMB # IF SO, WE ARE TRYING TO POINT IT INTO
VLOAD # GIMBAL LOCK, ABORT COULD GO HERE
STADR
STOVL MIS +12D
STADR # STORE MFS (IN PD LIST) IN MIS
STOVL MIS +6
STADR
STOVL MIS
MIS +6 # INNER GIMBAL AXIS IN FINAL S/C AXES
BPL VCOMP # LOCATE THE IG AXIS DIRECTION CLOSEST TO
IGSAMEX # FINAL X S/C AXIS
IGSAMEX VXV BMN # FIND THE SHORTEST WAY OF ROTATING THE
SCAXIS # S/C OUT OF GIMBAL LOCK BY A ROTATION
U=SCAXIS # ABOUT +- SCAXIS, I.E. IF (IG (SGN MFS3)
# X SCAXIS . XF) LESS THAN 0, U = SCAXIS
# OTHERWISE U = -SCAXIS.
VLOAD VCOMP
SCAXIS
STCALL COF # ROTATE ABOUT -SCAXIS
CHEKAXIS
U=SCAXIS VLOAD
SCAXIS
STORE COF # ROTATE ABOUT + SCAXIS
CHEKAXIS DLOAD ABS
SCAXIS # SEE IF WE ARE POINTING THE AOT
DSU BPL
SINVEC2 # SIN 29.5 DEGS $2
PICKANG1 # IF SO, ROTATE 50 DEGS ABOUT +- SCAXIS
DLOAD GOTO # IF NOT, MUST BE POINTING THE TRANSPONDER
VECANG2 # OR SOME VECTOR IN THE Y, OR Z PLANE
COMPMFSN # IN THIS CASE ROTATE 35 DEGS TO GET OUT
# OF GIMBAL LOCK (VECANG2 $360)
PICKANG1 DLOAD
VECANG1 # = 50 DEGS $360
COMPMFSN CALL
DELCOMP # COMPUTE THE ROTATION ABOUT SCAXIS TO
AXC,1 AXC,2 # BRING MFS OUT OF GIMBAL LOCK
MIS
DEL
CALL # COMPUTE THE NEW TRANSFORMATION FROM
MXM3 # DESIRED S/C AXES TO STABLE MEMBER AXES
# WHICH WILL ALIGN VI WITH VF AND AVOID
# GIMBAL LOCK
FINDGIMB AXC,1 CALL
0 # EXTRACT THE COMMANDED CDU ANGLES FROM
DCMTOCDU # THIS MATRIX
RTB SETPD
V1STO2S # CONVERT TO 2:S COMPLEMENT
# Page 396
0
GOTO
VECQTEMP # RETURN TO CALLER
PICKAXIS VLOAD DOT # IF VF X VI = 0, FIND VF . VI
28D
SCAXIS
BMN TLOAD
ROT180
25D
GOTO # IF VF = VI, CDU DESIRED = PRESENT CDU
VECQTEMP # PRESENT CDU ANGLES
ROT180 VLOAD VXV # IF VF, VI ANTI-PARALLEL, 180 DEG ROTATION
MIS +6 # IS REQUIRED. Y STABLE MEMBER AXIS IN
HIUNITX # INITIAL S/C AXIS.
UNIT VXV # FIND Y(SM) X X(I)
SCAXIS # FIND UNIT(VI X UNIT(Y(SM) X X(I)))
UNIT BOV # I.E. PICK A VECTOR IN THE PLANE OF X(I),
PICKX # Y(SM) PERPENDICULAR TO VI
STODL COF
36D # CHECK MAGNITUDE
DSU BMN # OF THIS VECTOR.
DPB-14 # IF LESS THAN B-14,
PICKX # PICK X-AXIS.
VLOAD
COF
XROT STODL COF
HIDPHALF
GOTO
COMPMATX
PICKX VLOAD GOTO # PICK THE XAXIS IN THIS CASE
HIUNITX
XROT
BANK 35
SETLOC MANUVER1
BANK
SINGIMLC 2DEC .4285836003 # =SIN(59) $2
SINVEC1 2DEC .3796356537 # =SIN(49.4) $2
SINVEC2 2DEC .2462117800 # =SIN(29.5) $2
VECANG1 2DEC .1388888889 # = 50 DEGREES $360
VECANG2 2DEC .09722222222 # = 35 DEGREES $360
1BITDP OCT 0 # KEEP THIS BEFORE DPB(-14) *********
DPB-14 OCT 00001
# Page 397
OCT 00000
BANK 34
SETLOC MANUVER
BANK
# Page 398
# ROUTINE FOR INITIATING AUTOMATIC MANEUVER VIA KEYBOARD (V49)
EBANK= CPHI
COUNT 27/R62
R62DISP CAF V06N22 # DISPLAY COMMAND ICDUS CPHI, CTHETA, CPHI
TC BANKCALL
CADR GOFLASH
TCF ENDEXT
TCF GOMOVE # PROCEED
TCF R62DISP # ENTER
# ASTRONAUT MAY LOAD NEW ICDUS AT THIS
# POINT
GOMOVE TC UPFLAG # SET 3-AXIS FLAG
ADRES 3AXISFLG # BIT 6 FLAG 5
TC BANKCALL
CADR R60CSM
TCF ENDEXT

View File

@ -1,85 +0,0 @@
# Copyright: Public domain.
# Filename: RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1037-1038
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB A "Page N" comment was corrected.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1037
# CALCULATION OF AMGB, AMBG ONCE EVERY SECOND
#
# AMGB = 1 SIN(PSI) 0
# 0 COS(PSI)COS(PHI) SIN(PHI)
# 0 -COS(PSI)SIN(PHI) COS(PHI)
#
# AMBG = 1 -TAN(PSI)COS(PHI) TAN(PSI)SIN(PHI)
# 0 COS(PHI)/COS(PSI) -SIN(PHI)/COS(PSI)
# 0 SIN(PHI) COS(PHI)
#
# WHERE PHI AND PSI ARE CDU ANGLES
BANK 20
SETLOC DAPS8
BANK
COUNT* $$/DAPEX
EBANK= KMPAC
AMBGUPDT CA FLAGWRD6 # CHECK FOR RCS AUTOPILOT
EXTEND
BZMF ENDOFJOB # BIT15 = 0, BIT14 = 1
MASK BIT14 # IF NOT RCS, EXIT
EXTEND
BZF ENDOFJOB # TO PROTECT TVC DAP ON SWITCHOVER
CA CDUZ
TC SPSIN2
TS AMGB1 # CALCULATE AMGB
CA CDUZ
TC SPCOS2
TS CAPSI # MUST CHECK FOR GIMBAL LOCK
CAF QUADANGL # = 7.25 DEGREES JET QUAD ANGULAR OFFSET
EXTEND
MSU CDUX
COM # CDUX - 7.25 DEG
TC SPCOS1
TS AMGB8
EXTEND
MP CAPSI
TS AMGB4
CAF QUADANGL
EXTEND
MSU CDUX
COM # CDUX - 7.25 DEG
TC SPSIN1
TS AMGB5
EXTEND
MP CAPSI
COM
# Page 1038
TS AMGB7
TCF ENDOFJOB
QUADANGL DEC 660 # = 7.25 DEGREES

View File

@ -1,975 +0,0 @@
# Copyright: Public domain.
# Filename: RCS-CSM_DIGITAL_AUTOPILOT.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1002-1024
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1002
# T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT
# START OF T5 INTERRUPT PROGRAM
BANK 20
SETLOC DAPS3
BANK
COUNT 21/DAPRC
EBANK= KMPAC
REDORCS LXCH BANKRUPT # RESTART OF AUTOPILOT COMES HERE
CA T5PHASE # ON A T5 RUPT.
EXTEND
BZMF +2 # IF T5PHASE +0, -0, OR -, RESET TO -
TCF +3 # IF T5PHASE +, LEAVE IT +. DO A FRESHDAP
CS ONE
TS T5PHASE
EXTEND
DCA RCSLOC
DXCH T5LOC # HOOK UP T5RUPT TO AUTOPILOT
TCF RCSATT +1
EBANK= KMPAC
RCSLOC 2CADR RCSATT
RCSATT LXCH BANKRUPT # SAVE BB
EXTEND # SAVE Q
QXCH QRUPT
CAF BIT15 # BIT15 CHAN31 = 0 IF IMU POWER IS ON AND
EXTEND # S/C CONT SW IS IN CMC (I.E. IF G/C AUTO
RAND CHAN31 # PILOT IS FULLY ENABLED)
EXTEND
BZF SETT5 # IF G/C AUTOPILOT IS FULLY ENABLED,
# GO TO SETT5
CS RCSFLAGS # IF G/C AUTOPILOT IS NOT FULLY ENABLED,
MASK BIT14
ADS RCSFLAGS # SET NORATE FLAG,
CAF POSMAX
TS HOLDFLAG # SET HOLDFLAG +,
CAF ZERO # ZERO ERRORX, ERRORY, AND ERRORZ,
TS ERRORX
TS ERRORY
TS ERRORZ
CAF BIT14
EXTEND
RAND CHAN31 # AND CHECK FREE FUNCTION (BIT14 CHAN31).
EXTEND
# Page 1003
BZF SETT5 # IF IN FREE MODE, GO TO SETT5.
TS T5PHASE # IF NOT IN FREE MODE,
CAF OCT37766 # SCHEDULE REINITIALIZATION (FRESHDAP)
TS TIME5 # IN 100 MS VIA T5RUPT
TCR ZEROJET # ZERO JET CHANNELS IN 14 MS VIA ZEROJET
TCF KMATRIX
DELTATT OCT 37770 # 80MS (TIME5)
DELTATT2 OCT 37776 # 20MS (TIME5)
ONESEK DEC 16284 # 1 SEC(TIME5)
CHAN5 EQUALS 5
CHAN6 EQUALS 6
PRIO34A = PRIO34
# CHECK PHASE OF T5 PROGRAM
# BECAUSE OF THE LENGTH OF THE T5 PROGRAM, IT HAS BEEN DIVIDED INTO
# THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC,
# TO ALLOW FOR THE EXECUTION OF OTHER
# INTERRUPTS. T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT
# VARIABLES AT TURN ON.
# THE CODING OF T5PHASE IS...
# + = INITIALIZE T5 RCS-CSM AUTOPILOT
# T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM
# - = RESTART DAP
# -0 = PHASE1 OF THE T5 PROGRAM
SETT5 CCS T5PHASE
TCF FRESHDAP # TURN ON AUTOPILOT
TCF T5PHASE2 # BRANCH TO PHASE2 OF PROGRAM
TCF REDAP # RESTART AUTOPILOT
TS T5PHASE # PHASE 1 RESET FOR PHASE 2
CA TIME5
TS T5TIME # USED IN COMPENSATING FOR DELAYS IN T5
CAF DELTATT2 # RESET FOR T5RUPT IN 20MS FOR PHASE2
TS TIME5 # OF PROGRAM
# Page 1004
# IMU STATUS CHECK
CS IMODES33 # CHECK IMU STATUS
MASK BIT6 # BIT6 = 0 IMU OK
CCS A # BIT6 = 1 NO IMU
TCF RATEFILT
FREECHK CS RCSFLAGS # BIT14 INDICATES THAT RATES HAVE NOT BEEN
MASK BIT14 # INITIALIZED
ADS RCSFLAGS
CAF BIT14 # NO ATTITUDE REFERENCE
TS HOLDFLAG # STOP ANY AUTOMATIC STEERING AND PREPARE
# TO PICK UP CDU ANGLES UPON RESUMPTION OF
# ATTITUDE HOLD
EXTEND
RAND CHAN31 # CHECK FOR FREE MODE
EXTEND
BZF KRESUME1 # IN FREE MODE PROVIDE FREE CONTROL ONLY
TCF REINIT # .....TILT...............................
BITS4,5 OCT 30
RATEFILT CA RCSFLAGS # SEE IF RATEFILTER HAS BEEN INITIALIZED
MASK BIT14
EXTEND # IF SO, PROCEED WITH RATE DERIVATION
BZF +2
TCF KMATRIX # IF NOT, SKIP RATE DERIVATION
# RATE FILTER TIMING = 7.72 MS
# RATE FILTER EQUATIONS
# DRHO = DELRHO - (.1)ADOT + (1 = GAIN1)DRHO
# -1
# ADOT = ADOT + GAIN2 DRHO + KMJ DFT
# -1
# - * - -
# WHERE DELRHO = AMGB (CDU - CDU )
# -1
CAF TWO
DRHOLOOP TS SPNDX
DOUBLE
TS DPNDX
INDEX DPNDX
CS DRHO # DRHO SCALED 180 DEGS
EXTEND
INDEX ATTKALMN # PICK UP DESIRED FILTER GAIN
MP GAIN1
INDEX DPNDX
DAS DRHO # (1 -.064)DRHO
EXTEND
# Page 1005
INDEX DPNDX
DCS ADOT
DXCH KMPAC # -(.1)ADOT
CA QUARTER
TC SMALLMP
DXCH KMPAC
INDEX DPNDX
DAS DRHO
CCS SPNDX
TCF DRHOLOOP
CA CDUX # MEASURED BODY RATES--
XCH RHO
EXTEND
MSU RHO # - * - -
COM # DELRHO = AMGB (CDU - CDU )
# -1
ZL
DXCH DELTEMPX
CA CDUY
XCH RHO1
EXTEND
MSU RHO1
COM
TS T5TEMP # (CDUY - RHO1) SCALED 90 DEGS
EXTEND
MP AMGB1
DAS DELTEMPX # DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1)
# MUST BE DOUBLE PRECISION OR WILL LOSE
# PULSES
CA AMGB4
EXTEND
MP T5TEMP
DXCH DELTEMPY
CA AMGB7
EXTEND
MP T5TEMP
DXCH DELTEMPZ
CA CDUZ
XCH RHO2
EXTEND
MSU RHO2
COM
TS T5TEMP # (CDUZ - RHO2) SCALED 90 DEGS
EXTEND
MP AMGB5
DAS DELTEMPY # DELTEMPY =AMGB4(CDUY-RHO1)
# + AMGB5(CDUZ-RHO2)
CA AMGB8
EXTEND
# Page 1006
MP T5TEMP
DAS DELTEMPZ # DELTEMPZ = AMBG7(CDUY-RHO1)
# + AMGB8(CDUZ-RHO2)
CAF TWO
ADOTLOOP TS SPNDX
DOUBLE
TS DPNDX
EXTEND
INDEX DPNDX
DCA DELTEMPX
INDEX DPNDX
DAS DRHO
EXTEND
INDEX DPNDX
DCA DELTEMPX
INDEX DPNDX
DAS MERRORX
INDEX DPNDX
CA DRHO
DOUBLE # N.B.
DOUBLE # N.B.
EXTEND
INDEX ATTKALMN # PICK UP DESIRED FILTER GAINS
MP GAIN2
INDEX DPNDX # ADOT + (.16)(.1)DRHO
DAS ADOT # -1
INDEX SPNDX # S/C TORQUE TO INERTIA RATIO
CA KMJ # SCALED (450)(1600)/(57.3)(16384)=1/1.3
EXTEND
INDEX SPNDX
MP DFT
INDEX DPNDX
DAS ADOT # KMJ(DFT)
CCS SPNDX
TCF ADOTLOOP # END CALCULATION OF VEHICLE RATES
KMATRIX CA ATTSEC
MASK LOW4
CCS A
TCF TENTHSEK
CAF PRIO34 # CALL FOR 1 SEC UPDATE OF TRANSFORMATION
TC NOVAC # MATRIX FROM GIMBAL AXES TO BODY AXES
EBANK= KMPAC
2CADR AMBGUPDT
CAF NINE
TENTHSEK TS ATTSEC
# Page 1007
# WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH
# SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT--
# CDUXD = CDUXD + DELCDUX (DOUBLE PRECISION)
# CDUYD = CDUYD + DELCDUY (DOUBLE PRECISION)
# CDUZD = CDUZD + DELCDUZ (DOUBLE PRECISION)
# THE STEERING PROGRAMS-
# 1) ATTITUDE MANEUVER ROUTINE
# 2) LEM TRACKING
# SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY,
# DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES.
# HOLDFLAG CODING-
# + = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ
# AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES
# ALSO IGNORE AUTOMATIC STEERING
# SET = + BY
# 1) INITIALIZATION PHASE OF AUTOPILOT
# 2) OCCURANCE OF RHC COMMANDS
# 3) FREE MODE
# 4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO
# WHILE DOING AUTOMATIC STEERING (IN THIS CASE
# HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC
# FUNCTIONS AS IF IT WERE.)
# 5) S/C CONTROL SWITCH IS SCS
# 6) IMU POWER OFF
# +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE
# - = PERFORMING AUTOMATIC MANEUVER
# -0 = NOT USED AT PRESENT
# NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT.
# SINCE ASTRONAUT ACTION MAY CHANGE THE HOLDFLAG SETTING, IT SHOULD BE MONITORED BY THE STEERING PROGRAM TO
# DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE THE APPROPRIATE ACTION.
CS HOLDFLAG
EXTEND
BZMF DACNDLS # IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC
# COMMANDS
DCDUINCR CAF TWO
DELOOP TS SPNDX
DOUBLE
TS DPNDX
EXTEND
INDEX A
DCA CDUXD
# Page 1008
DXCH KMPAC
EXTEND
INDEX DPNDX
DCA DELCDUX
TC DPADD
EXTEND
DCA KMPAC
INDEX SPNDX
TS THETADX
INDEX DPNDX
DXCH CDUXD
CCS SPNDX
TCF DELOOP
# Page 1009
# RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY
# THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI-
# MODE 1) AUTOPILOT FOLLOWING ERRORS SELECTED BY V61E
# GENERATED INTERNALLY BY THE AUTOPILOT
# MODE 2) TOTAL ATTITUDE ERRORS SELECTED BY V62E
# WITH RESPECT TO THE CONTENTS OF N22
# MODE 3) TOTAL ASTRONAUT ATTITUDE ERRORS SELECTED BY V63E
# WITH RESPECT TO THE CONTENTS OF N17
# MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS. IN THIS
# MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE
# MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
# IN N22. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
# AS A FLY-TO INDICATOR.
# MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
# IN N17. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
# AS A FLY-TO INDICATOR.
# V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY
# WITH THE CURRENT S/C ATTITUDE. THIS VERB MAY BE USED AT ANY TIME.
# THESE DISPLAYS WILL BE AVAILABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN
# INITIATED VIA V46E. MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD. THE CREW MAY PRESET (VIA
# V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME.
DACNDLS CS RCSFLAGS # ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2
MASK BIT4
EXTEND
BZF FDAIDSP2
FDAIDSP1 ADS RCSFLAGS
TC NEEDLER
KRESUME1 TCF RESUME # END PHASE 1
# Page 1010
# FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
# PROGRAM DESCRIPTION: D. KEENE 5/24/67
# THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
# IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
# OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
# THE DACS.
# CALLING SEQUENCE:
# DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
# TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
# CS RCSFLAGS # IN EBANK6
# MASK BIT3
# ADS RCSFLAGS
# THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERED TO THE FOLLOWING LOCATIONS IN EBANK6:
# AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT
# AK1 SCALED 180 DEGREES TO CHANGE
# AK2 SCALED 180 DEGREES
# FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR
# (= 384 BITS IN IMU ERROR COUNTER)
# A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
# INHINT
# TC IBNKCALL # NOTE: EBANK SHOULD BE SET TO E6
# CADR NEEDLER
# RELINT
# THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PROGRAM ARE
# REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
# NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.
# ERASABLE USED:
# AK CDUXCMD
# AK1 CDUYCMD
# AK2 CDUZCMD
# EDRIVEX A,L,Q
# EDRIVEY T5TEMP
# EDRIVEZ SPNDX
# SWITCHES: RCSFLAGS BITS 3,2
# I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN - READ ONLY)
# Page 1011
# CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE)
# CHAN14 BIT 13,14,15 (DAC ACTIVITY)
# SIGN CONVENTION< AK = THETAC - THETA
# WHERE THETAC = COMMAND ANGLE
# THETA = PRESENT ANGLE
NEEDLER CAF BIT4 # CHECK FOR COARSE ALIGN ENABLE
EXTEND # IF IN COARSE ALIGN DO NOT USE IMU
RAND CHAN12 # ERROR COUNTERS. DONT USE NEEDLES
EXTEND
BZF NEEDLER1
CS RCSFLAGS # SET BIT3 FOR INITIALIZATION PASS
MASK BIT3
ADS RCSFLAGS
TC Q
NEEDLER1 CA RCSFLAGS
MASK SIX
EXTEND
BZF NEEDLES3
MASK BIT3
EXTEND
BZF NEEDLER2 # BIT3 = 0, BIT2 = 1
CS BIT6 # FIRST PASS BIT3 = 1
EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS
WAND CHAN12 # MUST WAIT AT LEAST 60 MS BEFORE
NEEDLE11 CS ZERO # ENABLING COUNTERS.
TS AK # ZERO THE INPUTS ON FIRST PASS
TS AK1
TS AK2
TS EDRIVEX # ZERO THE DISPLAY REGISTERS
TS EDRIVEY
TS EDRIVEZ
TS CDUXCMD # ZERO THE OUT COUNTERS
TS CDUYCMD
TS CDUZCMD
CS SIX # RESET RCSFLAGS FOR PASS2
MASK RCSFLAGS
AD BIT2
TS RCSFLAGS
TC Q # END PASS1
NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS
EXTEND
WOR CHAN12
CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE
# Page 1012
MASK RCSFLAGS # ERRORS WAIT AT LEAST 4 MS FOR
TS RCSFLAGS # RELAY CLOSURE
TC Q
NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER
EXTEND # IS ENABLED
RAND CHAN12
EXTEND # IF NOT RECYCLE NEEDLES
BZF NEEDLER +5
NEEDLES CAF TWO
DACLOOP TS SPNDX
CS QUARTER
EXTEND
INDEX SPNDX
MP AK
TS L
CCS A
CA DACLIMIT
TCF +2
CS DACLIMIT
AD L
TS T5TEMP # OVFLO CHK
TCF +4
INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384
CAF DACLIMIT
TS L
INDEX SPNDX
CS EDRIVEX # CURRENT VALUE OF DAC
AD L
INDEX SPNDX
ADS CDUXCMD
INDEX SPNDX
LXCH EDRIVEX
CCS SPNDX
TCF DACLOOP
CAF 13,14,15
EXTEND
WOR CHAN14 # SET DAC ACTIVITY BITS
TC Q
REINIT CAF DELAY200 # ........TILT LOGIC
TS TIME5 # REINITIALIZE DAP IN 200MS
TS T5PHASE
TCF RESUME
DELAY200 DEC 16364 # 200MS
DEC -384
# Page 1013
DACLIMIT DEC 16000
DEC 384
# Page 1014
# INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT
# THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY
# WBODY (+1) DFT TAU2
# WBODY1 (+1) DFT1 BIAS
# WBODY2 (+1) DFT2 BIAS1
# ADOT (+1) DRHO (+1) BIAS2
# ADOT1 (+1) DRHO1 (+1) ERRORX
# ADOT2 (+1) DRHO2 (+1) ERRORY
# MERRORX (+1) ATTSEC ERRORZ
# MERRORY (+1) TAU
# MERRORZ (+1) TAU1
FRESHDAP CAF ONE # RESET HOLDFLAG TO STOP AUTOMATIC
TS HOLDFLAG # STEERING AND PREPARE TO PICK UP AN
# ATTITUDE HOLD REFERENCE
REDAP TC IBNKCALL # DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS
CADR S41.2 # RATES, QUADFAILS, QUAD MANAGEMENT
TC IBNKCALL # DECODE IXX, IAVG, AND CONVERT
CADR S40.14 # TO AUTOPILOT GAINS
CAF NO.T5VAR # NO. LOCATIONS TO BE ZEROED MINUS ONE
ZEROT5 TS SPNDX # ZERO ALL NECESSARY ERASABLE REGISTERS
CAF ZERO
INDEX SPNDX
TS WBODY
CCS SPNDX
TCF ZEROT5
TCR ZEROJET
CS ZERO
TS CHANTEMP # INITIALIZE MINIMUM IMPULSE CONTROL
TS CH31TEMP # INITIALIZE RHC POSITION MEMORY FOR
# MANUAL RATE MODES
CAF =.24
TS SLOPE # INITIALIZE SWITCHING LOGIC SLOPE
CAF FOUR
TS T5TIME # PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN
# 60 MS. PHASE 2 RESETS FOR PHASE 1 RUPT
# IN (80MS - T5TIME(40MS)). THEREFORE
# PHASE 1 (RATEFILTER) BEGINS CYCLING 100
# MS FROM NOW AND EVERY 100MS THEREAFTER.
CAF ELEVEN
TS ATTKALMN # RESET TO PICK UP KALMAN FILTER GAINS
# TO INITIALIZE THE S/C ANGULAR RATES
# Page 1015
CA CDUX
TS RHO
CA CDUY
TS RHO1
CA CDUZ
TS RHO2
CAF ZERO # RESET AUTOPILOT TO BEGIN EXECUTING
TS T5PHASE # PHASE2 OF PROGRAM
CS IMODES33 # CHECK IMU STATUS
MASK BIT6 # IF BIT6 = 0 IMU IN FINE ALIGN
CCS A # IF BIT6 = 1 IMU NOT READY
TCF IMUAOK
TS ATTKALMN # CANNOT USE IMU
CAF RCSINITB # PROVIDE FREE CONTROL ONLY
TCF RCSSWIT # DONT START UP RATE FILTER
# SIGNAL NO RATE FILTER
IMUAOK CAF PRIO34 # START MATRIX INITIALIZATION
TC NOVAC # BYPASS IF IMU NOT IN FINE ALIGN
EBANK= KMPAC
2CADR AMBGUPDT
CAF RCSINIT # CLEAR BIT14 -ASSUME WE HAVE A GOOD IMU
RCSSWIT TS RCSFLAGS # CLEAR BIT1 -INITIALIZE T6 PROGRAM
# SET BIT3 -INITIALIZE NEEDLES
# CLEAR BIT4 -RESET FOR FDAIDSP1
CAF T5WAIT60 # NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU
# ERROR COUNTER TO ZERO.
# (MINIMUM DELAY = 15 MS)
TS TIME5 # SINCE ATTKALMN IS +11, PROGRAM WILL THEN
TC RESUME # PICK UP THE KALMAN FILTER GAINS. RATE
# FILTER WILL BEGIN OPERATING ZOOMS FROM
# NOW
# CONSTANTS USED IN INITIALIZATION PROGRAM
NO.T5VAR DEC 36
=.24 DEC .24 # = SLOPE OF 0.6/SEC
RCSINIT OCT 00004
RCSINITB OCT 20004
T5WAIT60 DEC 16378 # = 6 CS
EBANK= KMPAC
T6ADDR 2CADR T6START
ZEROJET CAF ELEVEN # ZERO BLAST2, BLAST1, BLAST, YWORD2,
TS SPNDX # YWORD1, PWORD2, PWORD1, RWORD2,
CAF ZERO # AND RWORD1.
# Page 1016
INDEX SPNDX
TS RWORD1
CCS SPNDX
TCF ZEROJET +1
CAF FOUR
TS BLAST1 +1
CAF ELEVEN
TS BLAST2 +1
CS BIT1
MASK RCSFLAGS
TS RCSFLAGS # RESET BIT1 OF RCSFLAGS TO 0
EXTEND
DCA T6ADDR
DXCH T6LOC
CAF =+14MS # ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS.
TS TIME6
CAF BIT15
EXTEND
WOR CHAN13
TC Q
T5PHASE2 CCS ATTKALMN # IF (+) INITIALIZE RATE ESTIMATE
TCF KALUPDT
TCF +2 # ONLY IF ATTKALMN POSITIVE
TCF +1
CA DELTATT2 # RESET FOR PHASE3 IN 20 MS
XCH TIME5 # (JET SELECTION LOGIC)
ADS T5TIME # TO COMPENSATE FOR DELAYS IN T5RUPT
CA RCSFLAGS # IF A HIGH RATE AUTO MANEUVER IS IN
MASK BIT15 # PROGRESS (BIT 15 OF RCSFLAGS SET), SET
EXTEND # ATTKALMN TO -1
BZF NOHIAUTO # OTHERWISE SET ATTKALMN TO 0.
CS ONE
NOHIAUTO TS ATTKALMN
# Page 1017
# MANUAL ROTATION COMMANDS
CS OCT01760 # RESET FORCED FIRING BITS (BITS 10 TO 5
MASK RCSFLAGS # OF RCSFLAGS) TO ZERO
TS RCSFLAGS
EXTEND
READ CHAN31
TS L
CA CH31TEMP
EXTEND
RXOR LCHAN
MASK MANROT # = OCT00077
EXTEND
BZMF NOCHANGE
LXCH A
TS CH31TEMP # SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP
CA L
EXTEND
MP BIT5 # PUT BITS 6-1 OF A IN BITS 10-5 OF L
CA L
ADS RCSFLAGS # SET FORCED FIRING BITS FOR AXES WITH
# CHANGES IN COMMAND. BITS 10,9 FOR
# ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR
# PITCH
CS RCSFLAGS # SET RATE DAMPING FLAGS (BITS 13,12,AND
MASK OCT16000 # 11 OF RCSFLAGS)
ADS RCSFLAGS
NOCHANGE CS CH31TEMP
MASK MANROT
EXTEND
BZMF AHFNOROT # IF NO MANUAL COMMANDS, GO TO AHFNOROT
TS HOLDFLAG # SET HOLDFLAG +
TC STICKCHK # WHEN THE RHC IS OUT OF DETENT, PMANNDX,
# YMANNDX, AND RMANNDX ARE ALL SET, BY
# MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO,
# +, OR - ROTATION RESPECTIVELY AS
# COMMANDED BY THE RHC.
# HOWEVER, IT IS WELL TO NOTE THAT AFTER
# THE RHC IS RETURNED TO DETENT, THE
# PROGRAM BRANCHES TO AHFNOROT AND AVOIDS
# STICKCHK SO PMANNDX, YMANNDX, AND
# RMANNDX ARE NOT RESET TO ZERO BUT RATHER
# LEFT SET TO THEIR LAST OUT OF DETENT
# Page 1018
# VALUES.
CS FLAGWRD1 # SET STIKFLAG TO INFORM STEERING
MASK BIT14 # PROGRAMS (P20) THAT ASTRONAUT HAS
ADS FLAGWRD1 # ASSUMED ROTATIONAL CONTROL OF SPACECRAFT
CAF BIT14
EXTEND
RAND CHAN31
EXTEND
BZMF FREEFUNC
CA RCSFLAGS # EXAMINE RCSFLAGS TO SEE IF RATE FILTER
MASK BIT14 # HAS BEEN INITIALIZED
CCS A # IF SO, PROCEED WITH MANUAL RATE COMMANDS
TCF REINIT # .....TILT, RECYCLE TO INITIALIZE FILTER
CS FIVE # IF MANUAL MANEUVER IS AT HIGH RTE, SET
AD RATEINDX # ATTKALMN TO -1.
EXTEND # OTHERWISE, LEAVE ATTKALMN ALONE.
BZMF +3
CS ONE
TS ATTKALMN
CAF TWO # AUTO-HOLD MANUAL ROTATION
SETWBODY TS SPNDX
DOUBLE
TS DPNDX
INDEX SPNDX # RMANNDX = 0 NO ROTATION
CA RMANNDX # = 1 + ROTATION
EXTEND # = 2 - ROTATION
BZF NORATE # IF NO ROTATION COMMAND ON THIS AXIS,
# GO TO NORATE.
AD RATEINDX # RATEINDX = 0 0.05 DEG/SEC
TS Q # = 2 0.2 DEG/SEC
INDEX Q # = 4 0.5 DEG/SEC
CA MANTABLE -1 # = 6 2.0 DEG/SEC
EXTEND
MP BIT9 # MULTIPLY MANTABLE BY 2 TO THE -6
INDEX DPNDX # TO GET COMMANDED RATE.
DXCH WBODY # SET WBODY TO COMMANDED RATE.
CA RCSFLAGS
MASK OCT16000 # IS RATE DAMPING COMPLETED (BITS 13,12 AND
EXTEND # 11 OF RCSFLAGS ALL ZERO.) IF SO, GO TO
BZF MERUPDAT # MERUPDAT TO UPDATE CUMULATIVE ATTITUDE
# ERROR.
# Page 1019
ZEROER CA ZERO # ZEROER ZEROS MERRORS
ZL
INDEX DPNDX
DXCH MERRORX
TCF SPNDXCHK
NORATE ZL
INDEX DPNDX
DXCH WBODY # ZERO WBODY FOR THIS AXIS
CA RCSFLAGS
MASK OCT16000
EXTEND # IS RATE DAMPING COMPLETED
BZF SPNDXCHK # YES, KEEP CURRENT MERRORX GO TO SPNDXCHK
TCF ZEROER # NO,GO TO ZEROER
MERUPDAT INDEX Q # MERRORX=MERRORX+MEASURED CHANGE IN ANGLE
CS MANTABLE -1 # -COMMANDED CHANGE IN ANGLE
EXTEND # THE ADDITION OF MEASURED CHANGE IN ANGLE
MP BIT7 # HAS ALREADY BEEN DONE IN THE RATE FILTER
INDEX DPNDX # COMMANDED CHANGE IN ANGLE = WBODY TIMES
DAS MERRORX # .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8
SPNDXCHK INDEX DPNDX
CA MERRORX
INDEX SPNDX
TS ERRORX # ERRORX = HIGH ORDER WORD OF MERRORX
CCS SPNDX
TCF SETWBODY
TCF JETS
OCT01760 OCT 01760 # FORCED FIRING BITS MASK
OCT01400 OCT 01400 # ROLL FORCED FIRING MASK ORDER OF
OCT00060 OCT 00060 # PITCH FORCED FIRING MASK DEFINITION
OCT00300 OCT 00300 # YAW FORCED FIRING MASK MUST BE
# PRESERVED
# FOR INDEXING
MANROT OCT 77
OCT16000 OCT 16000 # RATE DAMPING FLAGS MASK
MANTABLE DEC .0071111
DEC -.0071111
DEC .028444
DEC -0.028444
DEC .071111
DEC -.071111
DEC .284444
DEC -.284444
=+14MS DEC 23
FREEFUNC INDEX RMANNDX # ACCELERATION
# Page 1020
CA FREETAU # COMMANDS
TS TAU
INDEX PMANNDX
CA FREETAU # FREETAU 0 SEC
TS TAU1 # +1 +0.10 SEC
INDEX YMANNDX # +2 -0.10 SEC
CA FREETAU # (+3) 0 SEC
TS TAU2
TCF T6PROGM
FREETAU DEC 0
DEC 480
DEC -480
DEC 0
T6PROGM CAF ZERO # FOR MANUAL ROTATIONS
TS ERRORX
TS ERRORY
TS ERRORZ
TCF T6PROG
# Page 1021
DEC .2112 # FILTER GAIN FOR TRANSLATION, LEM ON
DEC .8400 # FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT
DEC .2112 # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
GAIN1 DEC .0640 # KALMAN FILTER GAINS FOR INITIALIZATION
DEC .3180 # OF ATTITUDE RATES
DEC .3452
DEC .3774
DEC .4161
DEC .4634
DEC .5223
DEC .5970
DEC .6933
DEC .8151
DEC .9342
DEC .0174 # FILTER GAIN FOR TRANSLATION, LEM ON
DEC .3600 # FILTER GAIN FOR TRANSLATION (WN)(WN)DT
DEC .0174 # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
GAIN2 DEC .0016 # SCALED 10
DEC .0454
DEC .0545
DEC .0666
DEC .0832
DEC .1069
DEC .1422
DEC .1985
DEC .2955
DEC .4817
DEC .8683
STICKCHK TS T5TEMP
MASK THREE # INDICES FOR MANUAL ROTATION
TS PMANNDX
CA T5TEMP
EXTEND # MAN RATE 0 0 RATE (DP)
MP QUARTER # +1 +RATE (DP)
TS T5TEMP # +2 -RATE (DP)
MASK THREE # (+3) 0 RATE (DP)
TS YMANNDX
CA T5TEMP
EXTEND
MP QUARTER
TS RMANNDX
TC Q
KALUPDT TS ATTKALMN # INITIALIZATION OF ATTITUDE RATES USING
# KALMAN FILTER TAKES 1.1 SEC
CA DELTATT # =1SEC - 80MS
AD T5TIME # + DELAYS
# Page 1022
TS TIME5
TCF +3
CAF DELTATT2 # SAFETY PLAY TO ASSURE
TS TIME5 # A T5RUPT
KRESUME2 CS ZERO # RESET FOR PHASE1
TS T5PHASE # RESUME INTERRUPTED PROGRAM
TCF RESUME
FDAIDSP2 CS BIT4 # RESET FOR FDAIDSP1
MASK RCSFLAGS
TS RCSFLAGS
CS FLAGWRD0 # ON - DISPLAY ONE OF THE TOTAL ATTITUDE
MASK BIT9 # ERRORS
EXTEND
BZF FDAITOTL
EXTEND
DCS ERRORX # OFF -DISPLAY AUTOPILOT FOLLOWING ERROR
DXCH AK
CS ERRORZ
TS AK2
TCF RESUME # END PHASE 1
FDAITOTL CA FLAGWRD9
MASK BIT6
EXTEND
BZF WRTN17 # IS N22ORN17 (BIT6 OF FLAGWRD9) = 0
# IF SO, GO TO WRTN17
WRTN22 EXTEND # OTHERWISE, CONTINUE ON TO WRTN22 AND
DCA CTHETA # GET SET TO COMPUTE TOTAL ATTITUDE
DXCH WTEMP # ERROR WRT N22 BY PICKING UP THE THREE
CA CPHI # COMPONENTS OF N22
GETAKS EXTEND # COMPUTE TOTAL ATTITUDE ERROR FOR
MSU CDUX # DISPLAY ON FDAI ERROR NEEDLES
TS AK
CA WTEMP
EXTEND
MSU CDUY
TS T5TEMP
EXTEND
MP AMGB1
ADS AK
CA T5TEMP
EXTEND
MP AMGB4
# Page 1023
TS AK1
CA T5TEMP
EXTEND
MP AMGB7
TS AK2
CA WTEMP +1
EXTEND
MSU CDUZ
TS T5TEMP
EXTEND
MP AMGB5
ADS AK1
CA T5TEMP
EXTEND
MP AMGB8
ADS AK2
TCF RESUME # END PHASE1 OF RCS DAP
WRTN17 EXTEND # GET SET TO COMPUTE TOTAL ASTRONAUT
DCA CPHIX +1 # ATTITUDE ERROR WRT N17 BY PICKING UP
DXCH WTEMP # THE THREE COMPONENTS OF N17
CA CPHIX
TCF GETAKS
# Page 1024 (empty page)

View File

@ -1,229 +0,0 @@
# Comanche055
The images (with suitable reduction in storage size and consequent reduction in image quality as well) are available online at www.ibiblio.org/apollo. If for some reason you find that the images are illegible, contact me at info@sandroid.org about getting access to the (much) higher-quality images which Paul actually created.
## Background
For organizatinal purposes RSB split the huge monolithic source code into smaller, more manageable chunks--i.e., into individual source
files. Those files are rejoined as "includes". The code chunks correspond to natural divisions into sub-programs. In fact, these divisions are more-or-less specified by the source code itself. Refer to the `"SUBROUTINE CALLS"` at the very beginning of `ASSEMBLY_AND_OPERATION_INFORMATION.agc`.
It may be reasonably asked why tens of thousands of lines of source are joined by means of inclusion, rather than simply assembling the source files individually and then linking them to form the executable. The answer is that the original development team had no linker. The builds were monolithic just like this.
There was a big emphasis on reusability of the code in the original project, apparently, but this reusability took the form of inserting your deck of punch-cards at the appropriate position in somebody else's deck of punch-cards. (Actually, I think the card-decks were turned into tape libraries, and the modules were mixed-and-matched from the tape libraries, but the principle is the same.) So, indeed, the method of file-inclusion is a very fair representation of the methods used in the original development...with the improvement, of course,
that you no longer have to worry about dropping the card deck. On the other hand, I (RSB) wasn't there at the time, so I may have no idea what I'm talking about.
Finally, note that the original Apollo AGC assembler (called `YUL`) is no longer available (as far as I can tell). Actually, it had already been replaced by another assembler (called `GAP`) by the time of Apollo 11, but GAP isn't available either. The replacement assembler yaYUL accepts a slightly different format for the source code from what YUL or GAP accepted, so the source code has been targeted for assembly with yaYUL.
What follows is simply a bunch of file-includes for the individual code chunks. The page numbers have been marked to make proof-reading easier. The page images also contain a lot of interesting tables (cross-referenced to page numbers) created by GAP, but not duplicated by yaYUL, so it's still valuable even if the source-files listed below are in hand.
## Source Code Index
### INFORMATION
Source File | Page Number
:--------------------------------------- | :----------
[CONTRACT_AND_APPROVALS.agc] | 1
[ASSEMBLY_AND_OPERATION_INFORMATION.agc] | 2-26
[TAGS_FOR_RELATIVE_SETLOC.agc] | 27-35
### COMERASE
Source File | Page Number
:------------------------- | :----------
[ERASABLE_ASSIGNMENTS.agc] | 37-130
### COMAID
Source File | Page Number
:------------------------------------ | :----------
[INTERRUPT_LEAD_INS.agc] | 131-132
[T4RUPT_PROGRAM.agc] | 133-169
[DOWNLINK_LISTS.agc] | 170-180
[FRESH_START_AND_RESTART.agc] | 181-210
[RESTART_TABLES.agc] | 211-221
[SXTMARK.agc] | 222-235
[EXTENDED_VERBS.agc] | 236-267
[PINBALL_NOUN_TABLES.agc] | 268-284
[CSM_GEOMETRY.agc] | 285-296
[IMU_COMPENSATION_PACKAGE.agc] | 297-306
[PINBALL_GAME_BUTTONS_AND_LIGHTS.agc] | 307-389
[R60_62.agc] | 390-398
[ANGLFIND.agc] | 399-411
[GIMBAL_LOCK_AVOIDANCE.agc] | 412-413
[KALCMANU_STEERING.agc] | 414-419
[SYSTEM_TEST_STANDARD_LEAD_INS.agc] | 420-422
[IMU_CALIBRATION_AND_ALIGNMENT.agc] | 423-455
### COMEKISS
Source File | Page Number
:------------------------------------------ | :----------
[GROUND_TRACKING_DETERMINATION_PROGRAM.agc] | 456-459
[P34-35_P74-75.agc] | 460-504
[R31.agc] | 505-510
[P76.agc] | 511-513
[R30.agc] | 514-524
[STABLE_ORBIT.agc] | 525-532
### TROUBLE
Source File | Page Number
:-------------------------------------------- | :----------
[P11.agc] | 533-550
[TPI_SEARCH.agc] | 551-561
[P20-P25.agc] | 562-634
[P30-P37.agc] | 635-648
[P32-P33_P72-P73.agc] | 649-683
[P40-P47.agc] | 684-736
[P51-P53.agc] | 737-784
[LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc] | 785-788
[P61-P67.agc] | 789-818
[SERVICER207.agc] | 819-836
[ENTRY_LEXICON.agc] | 837-843
[REENTRY_CONTROL.agc] | 844-882
[CM_BODY_ATTITUDE.agc] | 883-889
[P37_P70.agc] | 890-933
[S-BAND_ANTENNA_FOR_CM.agc] | 934-935
[LUNAR_LANDMARK_SELECTION_FOR_CM.agc] | 936
### TVCDAPS
Source File | Page Number
:----------------------------------- | :----------
[TVCINITIALIZE.agc] | 937-944
[TVCEXECUTIVE.agc] | 945-950
[TVCMASSPROP.agc] | 951-955
[TVCRESTARTS.agc] | 956-960
[TVCDAPS.agc] | 961-978
[TVCSTROKETEST.agc] | 979-983
[TVCROLLDAP.agc] | 984-998
[MYSUBS.agc] | 999-1001
[RCS-CSM_DIGITAL_AUTOPILOT.agc] | 1002-1024
[AUTOMATIC_MANEUVERS.agc] | 1025-1036
[RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc] | 1037-1038
[JET_SELECTION_LOGIC.agc] | 1039-1062
[CM_ENTRY_DIGITAL_AUTOPILOT.agc] | 1063-1092
### CHIEFTAN
Source File | Page Number
:----------------------------------- | :----------
[DOWN-TELEMETRY_PROGRAM.agc] | 1093-1102
[INTER-BANK_COMMUNICATION.agc] | 1103-1106
[INTERPRETER.agc] | 1107-1199
[FIXED_FIXED_CONSTANT_POOL.agc] | 1200-1204
[INTERPRETIVE_CONSTANTS.agc] | 1205-1206
[SINGLE_PRECISION_SUBROUTINES.agc] | 1207
[EXECUTIVE.agc] | 1208-1220
[WAITLIST.agc] | 1221-1235
[LATITUDE_LONGITUDE_SUBROUTINES.agc] | 1236-1242
[PLANETARY_INERTIAL_ORIENTATION.agc] | 1243-1251
[MEASUREMENT_INCORPORATION.agc] | 1252-1261
[CONIC_SUBROUTINES.agc] | 1262-1308
[INTEGRATION_INITIALIZATION.agc] | 1309-1333
[ORBITAL_INTEGRATION.agc] | 1334-1354
[INFLIGHT_ALIGNMENT_ROUTINES.agc] | 1355-1364
[POWERED_FLIGHT_SUBROUTINES.agc] | 1365-1372
[TIME_OF_FREE_FALL.agc] | 1373-1388
[STAR_TABLES.agc] | 1389-1393
[AGC_BLOCK_TWO_SELF-CHECK.agc] | 1394-1403
[PHASE_TABLE_MAINTENANCE.agc] | 1404-1413
[RESTARTS_ROUTINE.agc] | 1414-1419
[IMU_MODE_SWITCHING_ROUTINES.agc] | 1420-1448
[KEYRUPT_UPRUPT.agc] | 1449-1451
[DISPLAY_INTERFACE_ROUTINES.agc] | 1452-1484
[SERVICE_ROUTINES.agc] | 1485-1492
[ALARM_AND_ABORT.agc] | 1493-1496
[UPDATE_PROGRAM.agc] | 1497-1507
[RT8_OP_CODES.agc] | 1508-1516
### MISCELLANEOUS
Source File | Page Number
:------------------- | :----------
GAP-generated tables | 1517-1751
[CONTRACT_AND_APPROVALS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CONTRACT_AND_APPROVALS.agc
[ASSEMBLY_AND_OPERATION_INFORMATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ASSEMBLY_AND_OPERATION_INFORMATION.agc
[TAGS_FOR_RELATIVE_SETLOC.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TAGS_FOR_RELATIVE_SETLOC.agc
[ERASABLE_ASSIGNMENTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ERASABLE_ASSIGNMENTS.agc
[INTERRUPT_LEAD_INS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTERRUPT_LEAD_INS.agc
[T4RUPT_PROGRAM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/T4RUPT_PROGRAM.agc
[DOWNLINK_LISTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/DOWNLINK_LISTS.agc
[FRESH_START_AND_RESTART.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/FRESH_START_AND_RESTART.agc
[RESTART_TABLES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RESTART_TABLES.agc
[SXTMARK.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SXTMARK.agc
[EXTENDED_VERBS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/EXTENDED_VERBS.agc
[PINBALL_NOUN_TABLES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/PINBALL_NOUN_TABLES.agc
[CSM_GEOMETRY.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CSM_GEOMETRY.agc
[IMU_COMPENSATION_PACKAGE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/IMU_COMPENSATION_PACKAGE.agc
[PINBALL_GAME_BUTTONS_AND_LIGHTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
[R60_62.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/R60_62.agc
[ANGLFIND.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ANGLFIND.agc
[GIMBAL_LOCK_AVOIDANCE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/GIMBAL_LOCK_AVOIDANCE.agc
[KALCMANU_STEERING.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/KALCMANU_STEERING.agc
[SYSTEM_TEST_STANDARD_LEAD_INS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SYSTEM_TEST_STANDARD_LEAD_INS.agc
[IMU_CALIBRATION_AND_ALIGNMENT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/IMU_CALIBRATION_AND_ALIGNMENT.agc
[GROUND_TRACKING_DETERMINATION_PROGRAM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/GROUND_TRACKING_DETERMINATION_PROGRAM.agc
[P34-35_P74-75.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P34-35_P74-75.agc
[R31.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/R31.agc
[P76.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P76.agc
[R30.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/R30.agc
[STABLE_ORBIT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/STABLE_ORBIT.agc
[P11.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P11.agc
[TPI_SEARCH.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TPI_SEARCH.agc
[P20-P25.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P20-P25.agc
[P30-P37.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P30-P37.agc
[P32-P33_P72-P73.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P32-P33_P72-P73.agc
[P40-P47.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P40-P47.agc
[P51-P53.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P51-P53.agc
[LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
[P61-P67.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P61-P67.agc
[SERVICER207.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SERVICER207.agc
[ENTRY_LEXICON.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ENTRY_LEXICON.agc
[REENTRY_CONTROL.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/REENTRY_CONTROL.agc
[CM_BODY_ATTITUDE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CM_BODY_ATTITUDE.agc
[P37_P70.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P37_P70.agc
[S-BAND_ANTENNA_FOR_CM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/S-BAND_ANTENNA_FOR_CM.agc
[LUNAR_LANDMARK_SELECTION_FOR_CM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/LUNAR_LANDMARK_SELECTION_FOR_CM.agc
[TVCINITIALIZE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCINITIALIZE.agc
[TVCEXECUTIVE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCEXECUTIVE.agc
[TVCMASSPROP.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCMASSPROP.agc
[TVCRESTARTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCRESTARTS.agc
[TVCDAPS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCDAPS.agc
[TVCSTROKETEST.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCSTROKETEST.agc
[TVCROLLDAP.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCROLLDAP.agc
[MYSUBS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/MYSUBS.agc
[RCS-CSM_DIGITAL_AUTOPILOT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RCS-CSM_DIGITAL_AUTOPILOT.agc
[AUTOMATIC_MANEUVERS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/AUTOMATIC_MANEUVERS.agc
[RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc
[JET_SELECTION_LOGIC.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/JET_SELECTION_LOGIC.agc
[CM_ENTRY_DIGITAL_AUTOPILOT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc
[DOWN-TELEMETRY_PROGRAM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/DOWN-TELEMETRY_PROGRAM.agc
[INTER-BANK_COMMUNICATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTER-BANK_COMMUNICATION.agc
[INTERPRETER.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTERPRETER.agc
[FIXED_FIXED_CONSTANT_POOL.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/FIXED_FIXED_CONSTANT_POOL.agc
[INTERPRETIVE_CONSTANTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTERPRETIVE_CONSTANTS.agc
[SINGLE_PRECISION_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SINGLE_PRECISION_SUBROUTINES.agc
[EXECUTIVE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/EXECUTIVE.agc
[WAITLIST.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/WAITLIST.agc
[LATITUDE_LONGITUDE_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/LATITUDE_LONGITUDE_SUBROUTINES.agc
[PLANETARY_INERTIAL_ORIENTATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/PLANETARY_INERTIAL_ORIENTATION.agc
[MEASUREMENT_INCORPORATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/MEASUREMENT_INCORPORATION.agc
[CONIC_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CONIC_SUBROUTINES.agc
[INTEGRATION_INITIALIZATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTEGRATION_INITIALIZATION.agc
[ORBITAL_INTEGRATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ORBITAL_INTEGRATION.agc
[INFLIGHT_ALIGNMENT_ROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INFLIGHT_ALIGNMENT_ROUTINES.agc
[POWERED_FLIGHT_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/POWERED_FLIGHT_SUBROUTINES.agc
[TIME_OF_FREE_FALL.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TIME_OF_FREE_FALL.agc
[STAR_TABLES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/STAR_TABLES.agc
[AGC_BLOCK_TWO_SELF-CHECK.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/AGC_BLOCK_TWO_SELF-CHECK.agc
[PHASE_TABLE_MAINTENANCE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/PHASE_TABLE_MAINTENANCE.agc
[RESTARTS_ROUTINE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RESTARTS_ROUTINE.agc
[IMU_MODE_SWITCHING_ROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/IMU_MODE_SWITCHING_ROUTINES.agc
[KEYRUPT_UPRUPT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/KEYRUPT_UPRUPT.agc
[DISPLAY_INTERFACE_ROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/DISPLAY_INTERFACE_ROUTINES.agc
[SERVICE_ROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SERVICE_ROUTINES.agc
[ALARM_AND_ABORT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ALARM_AND_ABORT.agc
[UPDATE_PROGRAM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/UPDATE_PROGRAM.agc
[RT8_OP_CODES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RT8_OP_CODES.agc

File diff suppressed because it is too large Load Diff

View File

@ -1,337 +0,0 @@
# Copyright: Public domain.
# Filename: RESTARTS_ROUTINE.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1414-1419
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-07 RSB Adapted from Colossus249 file of the same
# name, and page images. Corrected various
# typos in the transcription of program
# comments, and these should be back-ported
# to Colossus249.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1414
BANK 01
SETLOC RESTART
BANK
EBANK= PHSNAME1 # GOPROG MUST SWITCH TO THIS EBANK
COUNT 01/RSROU
RESTARTS CA MPAC +5 # GET GROUP NUMBER -1
DOUBLE # SAVE FOR INDEXING
TS TEMP2G
CA PHS2CADR # SET UP EXIT IN CASE IT IS AN EVEN
TS TEMPSWCH # TABLE PHASE
CA RTRNCADR # TO SAVE TIME ASSUME IT WILL GET NEXT
TS GOLOC +2 # GROUP AFTER THIS
CA TEMPPHS
MASK OCT1400
CCS A # IS IT A VARIABLE OR TABLE RESTART
TCF ITSAVAR # IT:S A VARIABLE RESTART
GETPART2 CCS TEMPPHS # IS IT AN X.1 RESTART
CCS A
TCF ITSATBL # NO, ITS A TABLE RESTART
CA PRIO14 # IT IS AN X.1 RESTART, THEREFORE START
TC FINDVAC # THE DISPLAY RESTART JOB
EBANK= LST1
2CADR INITDSP
TC RTRNCADR # FINISHED WITH THIS GROUP, GET NEXT ONE
ITSAVAR MASK OCT1400 # IS IT TYPE B ?
CCS A
TCF ITSLIKEB # YES,IT IS TYPE B
EXTEND # STORE THE JOB (OR TASK) 2CADR FOR EXIT
NDX TEMP2G
DCA PHSNAME1
DXCH GOLOC
CA TEMPPHS # SEE IF THIS IS A JOB, TASK, OR A LONGCALL
MASK OCT7
AD MINUS2
CCS A
TCF ITSLNGCL # ITS A LONGCALL
# Page 1415
RTRNCADR TC SWRETURN # CANT GET HERE
TCF ITSAWAIT
TCF ITSAJOB # ITS A JOB
ITSAWAIT CA WTLTCADR # SET UP WAITLIST CALL
TS GOLOC -1
NDX TEMP2G # DIRECTLY STORED
CA PHSPRDT1
TIMETEST CCS A # IS IT AN IMMEDIATE RESTART
INCR A # NO.
TCF FINDTIME # FIND OUT WHEN IT SHOULD BEGIN
TCF ITSINDIR # STORED INDIRECTLY
TCF IMEDIATE # IT WANTS AN IMMEDIATE RESTART
# ***** THIS MUST BE IN FIXED FIXED *****
BLOCK 02
SETLOC FFTAG2
BANK
COUNT 02/RSROU
ITSINDIR LXCH GOLOC +1 # GET THE CORRECT E BANK IN CASE THIS IS
LXCH BB # SWITCHED ERRASIBLE
NDX A # GET THE TIME INDIRECTLY
CA 1
LXCH BB # RESTORE THE BB AND GOLOC
LXCH GOLOC +1
TCF FINDTIME # FIND OUT WHEN IT SHOULD BEGIN
# ***** YOU MAY RETURN TO SWITCHED FIXED *****
BANK 01
SETLOC RESTART
BANK
COUNT 01/RSROU
FINDTIME COM # MAKE NEGATIVE SINCE IT WILL BE SUBTRACTED
TS L # AND SAVE
NDX TEMP2G
CS TBASE1
EXTEND
# Page 1416
SU TIME1
CCS A
COM
AD OCT37776
AD ONE
AD L
CCS A
CA ZERO
TCF +2
TCF +1
IMEDIATE AD ONE
TC GOLOC -1
ITSLIKEB CA RTRNCADR # TYPE B, SO STORE RETURN IN
TS TEMPSWCH # TEMPSWCH IN CASE OF AN EVEN PHASE
CA PRT2CADR # SET UP EXIT TO GET TABLE PART OF THIS
TS GOLOC +2 # VARIABLE TYPE OF PHASE
CA TEMPPHS # MAKE THE PHASE LOOK RIGHT FOR THE TABLE
MASK OCT177 # PART OF THIS VARIABLE PHASE
TS TEMPPHS
EXTEND
NDX TEMP2G # OBTAIN THE JOB:S 2CADR
DCA PHSNAME1
DXCH GOLOC
ITSAJOB NDX TEMP2G # NOW ADD THE PRIORITY AND LET:S GO
CA PHSPRDT1
CHKNOVAC TS GOLOC -1 # SAVE PRIO UNTIL WE SEE IF ITS
EXTEND # A FINDVAC OR A NOVAC
BZMF ITSNOVAC
CAF FVACCADR # POSITIVE, SET UP FINDVAC CALL.
XCH GOLOC -1 # PICK UP PRIO,
TC GOLOC -1 # AND GO
ITSNOVAC CAF NOVACADR # NEGATIVE,
XCH GOLOC -1 # SET UP NOVAC CALL,
COM # CORRECT PRIO,
TC GOLOC -1 # AND GO
ITSATBL TS CYR # FIND OUT IF THE PHASE IS ODD OR EVEN
CCS CYR
TCF +1 # IT:S EVEN
TCF ITSEVEN
CA RTRNCADR # IN CASE THIS IS THE SECOND PART OF A
TS GOLOC +2 # TYPE B RESTART, WE NEED PROPER EXIT
# Page 1417
CA TEMPPHS # SET UP POINTER FOR FINDING OUR PLACE IN
TS SR # THE RESTART TABLES
AD SR
NDX TEMP2G
AD SIZETAB +1
TS POINTER
CONTBL2 EXTEND # FIND OUT WHAT'S IN THE TABLE
NDX POINTER
DCA CADRTAB # GET THE 2CADR
LXCH GOLOC +1 # STORE THE BB INFORMATION
CCS A # IS IT A JOB OR IT IT TIMED
INCR A # POSITIVE, MUST BE A JOB
TCF ITSAJOB2
INCR A # MUST BE EITHER A WAITLIST OR LONGCALL
TS GOLOC # LET-S STORE THE CORRECT CADR
CA WTLTCADR # SET UP OUR EXIT TO WAITLIST
TS GOLOC -1
CA GOLOC +1 # NOW FIND OUT IF IT IS A WAITLIST CALL
MASK BIT10 # THIS SHOULD BE ONE IF WE HAVE -BB
CCS A # FOR THAT MATTER SO SHOULD BE BITS 9,8,7,
# 6,5, AND LAST BUT NOT LEAST (PERHAPS NOT
# IN IMPORTANCE ANYWAY. BIT 4
TCF ITSWTLST # IT IS A WAITLIST CALL
NDX POINTER # OBTAIN THE ORIGINAL DELTA T
CA PRDTTAB # ADDRESS FOR THIS LONGCALL
TCF ITSLGCL1 # NOW GO GET THE DELTA TIME
# ***** THIS MUST BE IN FIXED FIXED *****
BLOCK 02
SETLOC FFTAG2
BANK
COUNT 02/RSROU
ITSLGCL1 LXCH GOLOC +1 # OBTAIN THE CORRECT E BANK
LXCH BB
LXCH GOLOC +1 # AND PRESERVE OUR E AND F BANKS
EXTEND # GET THE DELTA TIME
NDX A
DCA 0
# Page 1418
LXCH GOLOC +1 # RESTORE OUR E AND F BANK
LXCH BB # RESTORE THE TASKS E AND F BANKS
LXCH GOLOC +1 # AND PRESERVE OUR L
TCF ITSLGCL2 # NOW LET:S PROCESS THIS LONGCALL
# ***** YOU MAY RETURN TO SWITCHED FIXED *****
BANK 01
SETLOC RESTART
BANK
COUNT 01/RSROU
ITSLGCL2 DXCH LONGTIME
EXTEND # CALCULATE TIME LEFT
DCS TIME2
DAS LONGTIME
EXTEND
DCA LONGBASE
DAS LONGTIME
CCS LONGTIME # FIND OUT HOW THIS SHOULD BE RESTARTED
TCF LONGCLCL
TCF +2
TCF IMEDIATE -3
CCS LONGTIME +1
TCF LONGCLCL
NOOP # CAN:T GET HERE *********
TCF IMEDIATE -3
TCF IMEDIATE
LONGCLCL CA LGCLCADR # WE WILL GO TO LONGCALL
TS GOLOC -1
EXTEND # PREPARE OUR ENTRY TO LONGCALL
DCA LONGTIME
TC GOLOC -1
ITSLNGCL CA WTLTCADR # ASSUME IT WILL GO TO WAITLIST
TS GOLOC -1
NDX TEMP2G
CS PHSPRDT1 # GET THE DELTA T ADDRESS
TCF ITSLGCL1 # NOW GET THE DELTA TIME
ITSWTLST CS GOLOC +1 # CORRECT THE BBCON INFORMATION
TS GOLOC +1
# Page 1419
NDX POINTER # GET THE DT AND FIND OUT IF IT WAS STORED
CA PRDTTAB # DIRECTLY OR INDIRECTLY
TCF TIMETEST # FIND OUT HOW THE TIME IS STORED
ITSAJOB2 XCH GOLOC # STORE THE CADR
NDX POINTER # ADD THE PRIORITY AND LET:S GO
CA PRDTTAB
TCF CHKNOVAC
ITSEVEN CA TEMPSWCH # SET UP FOR EITHER THE SECOND PART OF THE
TS GOLOC +2 # TABLE, OR A RETURN FOR THE NEXT GROUP
NDX TEMP2G # SET UP POINTER FOR OUR LOCATION WITHIN
CA SIZETAB # THE TABLE
AD TEMPPHS # THIS MAY LOOK BAD BUT LET:S SEE YOU DO
AD TEMPPHS # BETTER IN TIME OR NUMBER OF LOCATIONS
AD TEMPPHS
TS POINTER
TCF CONTBL2 # NOW PROCESS WHAT IS IN THE TABLE
PHSPART2 CA THREE # SET THE POINTER FOR THE SECOND HALF OF
ADS POINTER # THE TABLE
CA RTRNCADR # THIS WILL BE OUR LAST TIME THROUGH THE
TS GOLOC +2 # EVEN TABLE , SO AFTER IT GET THE NEXT
# GROUP
TCF CONTBL2 # SO LET:S GET THE SECOND ENTRY IN THE TBL
TEMPPHS EQUALS MPAC
TEMP2G EQUALS MPAC +1
POINTER EQUALS MPAC +2
TEMPSWCH EQUALS MPAC +3
GOLOC EQUALS VAC5 +20D
MINUS2 EQUALS NEG2
OCT177 EQUALS LOW7
PHS2CADR GENADR PHSPART2
PRT2CADR GENADR GETPART2
LGCLCADR GENADR LONGCALL
FVACCADR GENADR FINDVAC
WTLTCADR GENADR WAITLIST
NOVACADR GENADR NOVAC

View File

@ -1,549 +0,0 @@
# Copyright: Public domain.
# Filename: RESTART_TABLES.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 211-221
# Contact: Ron Burkey <info@sandroid.org>,
# Fabrizio Bernardini <fabrizio@spacecraft.it>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-16 FB Transcription Batch 2 Assignment.
# 2009-05-20 RSB Added a missing comment mark. Corrected mismarked
# Page 217 -> 220.
# 2009-05-21 RSB Fixed value of 5.21SPOT.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 211
# RESTART TABLES
# --------------
#
# THERE ARE TWO FORMS OF RESTART TABLES FOR EACH GROUP. THEY ARE KNOWN AS THE EVEN RESTART TABLES AND THE ODD
# RESTART TABLES. THE ODD TABLES HAVE ONLY ONE ENTRY OF THREE LOCATIONS WHILE THE EVEN TABLES HAVE TWO ENTRIES
# EACH USING THREE LOCATIONS. THE INFORMATION AS TO WHETHER IT IS A JOB, WAITLIST, OR A LONGCALL IS GIVEN BY THE
# WAY THINGS ARE PUT INTO THE TABLES.
#
# A JOB HAS ITS PRIORITY STORED IN PRDTTAB OF THE CORRECT PHASE SPOT - A POSITIVE PRIORITY INDICATES A
# FINDVAC JOB, A NEGATIVE PRIORITY A NOVAC. THE 2CADR OF THE JOB IS STORED IN THE CADRTAB.
# FOR EXAMPLE,
#
# 5.7SPOT OCT 23000
# 2CADR SOMEJOB
#
# A RESTART OF GROUP 5 WITH PHASE SEVEN WOULD THEN CAUSE SOMEJOB TO BE RESTARTED AS A FINDVAC WITH PRIORITY 23.
#
# 5.5SPOT OCT -23000
# 2CADR ANYJOB
#
# HERE A RESTART OF GROUP 5 WITH PHASE 7 WOULD CAUSE ANYJOB TO BE RESTARTED AS A NOVAC WITH PRIORITY 23.
# A LONGCALL HAS ITS GENADR OF ITS 2CADR STORED NEGATIVELY AND ITS BBCON STORED POSITIVELY. IN ITS PRDTTAB IS
# PLACED THE LOCATION OF A DP REGISTER THAT CONTAINS THE DELTA TIME THAT LONGCALL HAD BEEN ORIGINALLY STARTED
# WITH. EXAMPLE,
#
# 3.6SPOT GENADR DELTAT
# -GENADR LONGTASK
# BBCON LONGTASK
# OCT 31000
# 2CADR JOBAGAIN
#
# THIS WOULD START UP LONGTASK AT THE APPROPRIATE TIME, OR IMMEDIATELY IF THE TIME HAD ALREADY PASSED. IT SHOULD
# BE NOTED THAT IF DELTAT IS IN A SWITCHED E BANK, THIS INFORMATION SHOULD BE IN THE BBCON OF THE 2CADR OF THE
# TASK. FROM ABOVE, WE SEE THAT THE SECOND PART OF THIS PHASE WOULD BE STARTED AS A JOB WITH A PRIORITY OF 31.
#
# WAITLIST CALLS ARE IDENTIFIED BY THE FACT THAT THEIR 2CADR IS STORED NEGATIVELY. IF PRDTTAB OF THE PHASE SPOT
# IS POSITIVE, THEN IT CONTAINS THE DELTA TIME, IF PRDTTAB IS NEGATIVE THEN IT IS THE -GENADR OF AN ERASABLE
# LOCATION CONTAINING THE DELTA TIME, THAT IS, THE TIME IS STORED INDIRECTLY. IT SHOULD BE NOTED AS ABOVE, THAT
# IF THE TIME IS STORED INDIRECTLY, THE BBCON MUST CONTAIN THE NECESSARY E BANK INFORMATION IF APPLICABLE. WITH
# WAITLIST WE HAVE ONE FURTHER OPTION, IF -0 IS STORED IN PRDTTAB, IT WILL CAUSE AN IMMEDIATE RESTART OF THE
# TASK. EXAMPLES,
#
# OCT 77777 # THIS WILL CAUSE AN IMMEDIATE RESTART
# -2CADR ATASK # OF THE TASK :ATASK:
#
# DEC 200 # IF THE TIME OF THE 2 SECONDS SINCE DUMMY
# -2CADR DUMMY # WAS PUT ON THE WAITLIST IS UP, IT WILL BEGIN
# # IN 10 MS, OTHERWISE IT WILL BEGIN WHEN
# # IT NORMALLY WOULD HAVE BEGUN.
# Page 212
# -GENADR DTIME # WHERE DTIME CONTAINS THE DELTA TIME
# -2CADR TASKTASK # OTHERWISE THIS IS AS ABOVE
#
# ***** NOW THE TABLES THEMSELVES *****
BANK 01
SETLOC RESTART
BANK
COUNT 01/RSTAB
PRDTTAB EQUALS 12000 # USED TO FIND THE PRIORITY OR DELTATIME
CADRTAB EQUALS 12001 # THIS AND THE NEXT RELATIVE LOC CONTAIN
# RESTART 2CADR
SIZETAB TC 1.2SPOT -12006
TC 1.3SPOT -12004
TC 2.2SPOT -12006
TC 2.3SPOT -12004
TC 3.2SPOT -12006
TC 3.3SPOT -12004
TC 4.2SPOT -12006
TC 4.3SPOT -12004
TC 5.2SPOT -12006
TC 5.3SPOT -12004
TC 6.2SPOT -12006
TC 6.3SPOT -12004
1.2SPOT EQUALS 3.2SPOT
# ANY MORE GROUP 1.EVEN RESTART VALUES SHOULD GO HERE
1.3SPOT DEC 120 # THIS NUMBER MUST BE EQUAL C(JTAGTIME)
EBANK= AOG
-2CADR SETJTAG
1.5SPOT OCT 10000
EBANK= DAPDATR1
2CADR REDO40.9
1.7SPOT OCT 10000
EBANK= ESTROKER
2CADR RELINUS
1.11SPOT OCT 10000
EBANK= ESTROKER
2CADR PIKUP20
# ANY MORE GROUP 1.ODD RESTART VALUES SHOULD GO HERE
2.2SPOT EQUALS 1.2SPOT
# ANY MORE GROUP 2.EVEN RESTART VALUES SHOULD GO HERE
# Page 213
2.3SPOT GENADR 600SECS
-GENADR STATEINT
EBANK= RRECTCSM
BBCON STATEINT
2.5SPOT OCT 05000
EBANK= RRECTCSM
2CADR STATINT1
2.7SPOT OCT 10000
EBANK= MRKBUF2
2CADR R22
2.11SPOT OCT 14000
EBANK= LANDMARK
2CADR V94ENTER
2.13SPOT OCT 10000
EBANK= MRKBUF2
2CADR REDOR22
# ANY MORE GROUP 2.ODD RESTART VALUES SHOULD GO HERE
3.2SPOT EQUALS 4.2SPOT
# ANY MORE GROUP 3.EVEN RESTART VALUES SHOULD GO HERE
3.3SPOT OCT 20000
EBANK= TGO
2CADR S40.13
3.5SPOT DEC 0
DEC 0
DEC 0
3.7SPOT OCT 22000
EBANK= TEPHEM
2CADR MATRXJOB
3.11SPOT OCT 22000
EBANK= TEPHEM
2CADR REP11
3.13SPOT OCT 22000
EBANK= TEPHEM
2CADR REP11A
3.15SPOT -GENADR TGO +1
EBANK= TGO
-2CADR ENGINOFF
# Page 214
# ANY MORE GROUP 3.ODD RESTART VALUES SHOULD GO HERE
4.2SPOT OCT 77777
EBANK= TIG
-2CADR PRECHECK
OCT 30000
EBANK= DELVIMU
2CADR P47BODY
4.4SPOT OCT 77777
EBANK= TIG
-2CADR PRECHECK
DEC 2996
EBANK= DAPDATR1
-2CADR TTG/0
4.6SPOT OCT 77777
EBANK= TIG
-2CADR PRECHECK
DEC 2496
EBANK= TIG
-2CADR TIG-5
# ANY MORE GROUP 4.EVEN RESTART VALUES SHOULD GO HERE
4.3SPOT DEC 40
EBANK= PACTOFF
-2CADR DOTVCON
4.5SPOT DEC 160
EBANK= PACTOFF
-2CADR DOSTRULL
4.7SPOT DEC 500
EBANK= PACTOFF
-2CADR TIG-0
4.11SPOT DEC 250
EBANK= DAPDATR1
-2CADR V97E40.6
4.13SPOT DEC 200
EBANK= WHOCARES
-2CADR R40ENABL
4.15SPOT OCT 16000 # PRELAUNCH OPTICAL VERIFICATION
EBANK= OGC
# Page 215
2CADR COMPVER # CALLS FOR OPTICS DATA AGAIN (STD LEADIN)
4.17SPOT OCT 16000 # PRELAUNCH AZIMUTH CHANGE
EBANK= XSM
2CADR AZMTHCG1
4.21SPOT GENADR P40TMP # DELTA TIME USED IN SETTING UP
-GENADR TIGBLNK # LONG CALL OF TIGBLNK BY P40,P41
EBANK= P40TMP
BBCON TIGBLNK
4.23SPOT OCT 12000 # PROTECT P40S/SV BY P40 P41
EBANK= TIG
2CADR P40S/SV
4.25SPOT OCT 24000
EBANK= BESTI
2CADR PROG52
4.27SPOT DEC 250
EBANK= PACTOFF
-2CADR DOTVCRCS
4.31SPOT OCT 13000
EBANK= STAR
2CADR R51 +1
4.33SPOT DEC 2100 # PROTECT CONTINUING JOB TO START P63
EBANK= AOG
-2CADR WAKEP62
4.35SPOT OCT 12000
EBANK= DAPDATR1
2CADR POSTBURN
4.37SPOT DEC 500
EBANK= TIG
-2CADR TIGAVEG
4.41SPOT OCT 17000 # PROTECT DISPLAY JOB IN P67
EBANK= AOG
2CADR P67.1
4.43SPOT -GENADR S61DT # PROTECT TASK TO START PREREAD,ENTRY
EBANK= S61DT # S61.1C WILL CHANGE EBANK=EB7 FOR PREREAD
-2CADR S61.1C
4.45SPOT OCT 13000 # PROTECT CONTINUING JOB S61.1
EBANK= AOG # (ENTRY IMU ALIGNMENT)
# Page 216
2CADR S61.1A -1
4.47SPOT OCT 17000 # PROTECT HUNTEST ITERATION.
EBANK= AOG
2CADR PRE-HUNT
4.51SPOT OCT 77777 # PROTECT FDAI ATTITUDE
EBANK= BODY3 # ERROR DISPLAY IN P11
-2CADR ATERTASK
4.53SPOT DEC -0
EBANK= END-E7 # EBANK7 FOR TIG
-2CADR V97ETASK
4.55SPOT OCT 13000 # PROTECT P65 RESPONSIVE DISPLAY.
EBANK= RTINIT
2CADR P65.1
4.57SPOT -GENADR P40TMP
EBANK= P40TMP
-2CADR TIGON
4.61SPOT OCT 77777
EBANK= PACTOFF
-2CADR IGNITION
4.63SPOT OCT 77777
EBANK= PACTOFF
-2CADR DOSPSOFF
4.65SPOT DEC 10
EBANK= TIG
-2CADR TIG-5
4.67SPOT DEC -0
EBANK= CSMMASS
-2CADR V97TTASK
4.71SPOT DEC 250
EBANK= DAPDATR1 # (FOR RCSDAPON)
-2CADR V97TRCS
4.73SPOT DEC -0
EBANK= V97VCNTR
-2CADR V97PTASK
4.75SPOT DEC -0
EBANK= DAPDATR1
-2CADR SPSOFF97
# Page 217
4.77SPOT DEC -0
EBANK= PACTOFF
-2CADR TIG-0
# ANY MORE GROUP 4.ODD RESTART VALUES SHOULD GO HERE
5.2SPOT OCT 32000
EBANK= DVCNTR
2CADR NORMLIZE
DEC 200
EBANK= AOG
-2CADR REREADAC
5.4SPOT OCT 20000
EBANK= DVCNTR
2CADR SERVICER
DEC 200
EBANK= AOG
-2CADR REREADAC
# ANY MORE GROUP 5.EVEN RESTART VALUES SHOULD GO HERE
5.3SPOT DEC 200
EBANK= AOG
-2CADR REREADAC
5.5SPOT OCT 77777
EBANK= AOG
-2CADR REDO5.5
5.7SPOT OCT 20000 # USED BY PRELAUNCH
EBANK= XSM
2CADR RSTGTS1
5.11SPOT OCT 77777
EBANK= XSM
-2CADR ALLOOP1
5.13SPOT OCT 20000
EBANK= XSM
2CADR WTLISTNT
5.15SPOT OCT 20000
EBANK= XSM
2CADR RESTEST1
5.17SPOT OCT 20000
EBANK= XSM
# Page 218
2CADR GEOSTRT4
5.21SPOT OCT 22000
EBANK= XSM
2CADR ALFLT1
5.23SPOT OCT 77777
EBANK= XSM
-2CADR SPECSTS
5.25SPOT OCT 20000
EBANK= XSM
2CADR RESTEST3
5.27SPOT OCT 20000
EBANK= XSM
2CADR RESTAIER
5.31SPOT DEC 0
DEC 0
DEC 0
5.33SPOT OCT 20000
EBANK= XSM
2CADR RESCHNG
5.35SPOT DEC 0
2DEC 0
5.37SPOT OCT 77777
EBANK= AOG
-2CADR CHEKAVEG
5.41SPOT OCT 77777 # TO PROTECT PREREAD AT TIG-30A
EBANK= DVCNTR # TIG-15 T+60
-2CADR PREREAD
# ANY MORE GROUP 5.ODD RESTART VALUES SHOULD GO HERE
6.2SPOT OCT 77777 # USED BY P40 AFTER GIMB DR TST TO REPOS'N
EBANK= AK # ENGINE UNTIL TVCDAPON
-2CADR PRE40.6
DEC 100
EBANK= TTOGO
-2CADR CLOKTASK
# ANY MORE 6.ODD RESTART VALUES SHOULD GO HERE
# Page 219
6.3SPOT DEC 100
EBANK= TIG
-2CADR CLOKTASK
6.5SPOT OCT 30000 # PROTECT INCREMENTING OF TIME2,TIME1 BY
EBANK= TEPHEM # P27(UPDATE PROGRAM)
2CADR TIMEDIDR
6.7SPOT OCT 0
OCT 0
OCT 0
6.11SPOT -GENADR CM/GYMDT # PROTECT TASK TO READ CDUS.
EBANK= CM/GYMDT # FOR ENTRY DAP
-2CADR READGYMB
6.13SPOT DEC 0
DEC 0
DEC 0
# Page 220
# PROGRAM DESCRIPTION: NEWPHASE DATE: 11 NOV 1966
# MOD: 1 ASSEMBLY: SUNBURST REV
# MOD BY: COPPS LOG SECTION: PHASE TABLE MAINTENANCE
# FUNCTIONAL DESCRIPTION:
#
# NEWPHASE IS THE QUICK WAY TO MAKE A NON VARIABLE PHASE CHANGE. IT INCLUDES THE OPTION OF SETTING
# TBASE OF THE GROUP. IF TBASE IS TO BE SET, -C(TIME1) IS STORED IN THE TBASE TABLE AS FOLLOWS:
#
# (L-1) TBASE0
# (L) TBASE1 (IF GROUP=1)
# (L+1)
# (L+2) TBASE2 (IF GROUP=2)
# -----
# (L+6) TBASE4 (IF GROUP=4)
# (L+7)
# (L+8) TBASE5 (IF GROUP=5)
#
# IN ANY CASE, THE NEGATIVE OF THE PHASE, FOLLOWED (IN THE NEXT REGISTER) BY THE PHASE, IS STORED IN THE
# PHASE TABLE AS FOLLOWS:
#
# (L) -PHASE1 (IF GROUP=1)
# (L+1) PHASE1
# (L+2) -PHASE2 (IF GROUP=2)
# (L+3) PHASE2
# -----
# (L+7) PHASE4
# (L+8) -PHASE5 (IF GROUP=5)
# (L+9) PHASE5
#
# CALLING SEQUENCE:
# EXAMPLE IS FOR PLACING A PHASE OF FIVE INTO GROUP THREE:
#
# 1) IF TBASE IS NOT TO BE SET:
# L-1 CA FIVE
# L TC NEWPHASE
# L+1 OCT 00003
#
# 2) IF TBASE IS TO BE SET:
# L-1 CS FIVE
# L TC NEWPHASE
# L+1 OCT 00003
#
# SUBROUTINES CALLED: NONE
#
# NORMAL EXIT MODE: AT L+2 OF CALLING SEQUENCE
#
# ALARM OR ABORT EXITS: NONE
#
# OUTPUT: PHASE TABLE AND TBASE TABLE UPDATED
#
# ERASABLE INITIALIZATION REQ'D: NONE
# Page 221
# DEBRIS: A,L,TEMPG
# ***WARNING*** THIS PROGRAM IS TO BE PLACED IN FIXED-FIXED AND UNSWITCHED ERASABLE.
BLOCK 02
SETLOC FFTAG1
BANK
COUNT* $$/PHASE
NEWPHASE INHINT
TS L # SAVE FOR FURTHER USE
NDX Q # OBTAIN THE GROUP NUMBER
CA 0
INCR Q # OBTAIN THE RETURN ADDRESS
DOUBLE # SAVE THE GROUP IN A FORM USED FOR
TS TEMPG # INDEXING
CCS L # SEE IF WE ARE TO SET TBASE
TCF +7 # NO, THE DELTA T WAS POSITIVE
TCF +6
NUFAZ+10 INCR A # SET TBASE AND STORE PHASE CORRECTLY
TS L
CS TIME1 # SET TBASE
NDX TEMPG
TS TBASE1 -2
CS L # NOW PUT THE PHASE IN THE RIGHT TABLE LOC
NDX TEMPG
DXCH -PHASE1 -2
RELINT
TC Q # NOW RETURN TO CALLER

View File

@ -1,358 +0,0 @@
# Copyright: Public domain.
# Filename: RT8_OP_CODES.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1508-1516
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-07 RSB Adapted from Colossus249/RT8_OP_CODES.agc
# and page images.
# 2009-05-07 RSB Oops! Left out the entire last page before.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1508
BANK 22
SETLOC RTBCODES
BANK
EBANK= XNB
COUNT* $$/RTB
# LOAD TIME2, TIME1 INTO MPAC:
LOADTIME EXTEND
DCA TIME2
TCF SLOAD2
# CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
# DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
CDULOGIC CCS MPAC
CAF ZERO
TCF +3
NOOP
CS HALF
TS MPAC +1
CAF ZERO
XCH MPAC
EXTEND
MP HALF
DAS MPAC
TCF DANZIG # MODE IS ALREADY AT DOUBLE-PRECISION
# READ THE PIPS INTO MPAC WITHOUT CHANGING THEM:
READPIPS INHINT
CA PIPAX
TS MPAC
CA PIPAY
TS MPAC +3
CA PIPAZ
RELINT
TS MPAC +5
CAF ZERO
TS MPAC +1
TS MPAC +4
TS MPAC +6
VECMODE TCF VMODE
# FORCE TP SIGN AGREEMENT IN MPAC:
SGNAGREE TC TPAGREE
# Page 1509
TCF DANZIG
# CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
# SCALED IN HALF-REVOLUTIONS.
1STO2S TC 1TO2SUB
CAF ZERO
TS MPAC +1
TCF NEWMODE
# DO 1STO2S ON A VECTOR OF ANGLES:
V1STO2S TC 1TO2SUB # ANSWER ARRIVES IN A AND MPAC.
DXCH MPAC +5
DXCH MPAC
TC 1TO2SUB
TS MPAC +2
DXCH MPAC +3
DXCH MPAC
TC 1TO2SUB
TS MPAC +1
CA MPAC +5
TS MPAC
TPMODE CAF ONE # MODE IS TP.
TCF NEWMODE
# V1STO2S FOR 2 COMPONENT VECTOR. USED BY RR.
2V1STO2S TC 1TO2SUB
DXCH MPAC +3
DXCH MPAC
TC 1TO2SUB
TS L
CA MPAC +3
TCF SLOAD2
# SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S CONVERSION:
1TO2SUB DXCH MPAC # FINAL MPAC +1 UNSPECIFIED.
DDOUBL
CCS A
AD ONE
TCF +2
COM # THIS WAS REVERSE OF MSU.
TS MPAC # AND SKIP ON OVERFLOW.
# Page 1510
TC Q
INDEX A # OVERFLOW UNCORRECT AND IN MSU.
CAF LIMITS
ADS MPAC
TC Q
# Page 1511
# SUBROUTINE TO INCREMENT CDUS
INCRCDUS CAF LOCTHETA
TS BUF # PLACE ADRES(THETA) IN BUF.
CAE MPAC # INCREMENT IN 1S COMPL.
TC CDUINC
INCR BUF
CAE MPAC +3
TC CDUINC
INCR BUF
CAE MPAC +5
TC CDUINC
TCF VECMODE
LOCTHETA ADRES THETAD
# THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1S COMPL.
# QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCREMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S COMPL.
# (+0 UNEQUAL TO -0) QUANTITY. MAY BE CALLED BY BANKCALL/SWCALL.
CDUINC TS TEM2 # 1S COMPL.QUANT. ARRIVES IN ACC. STORE IT
INDEX BUF
CCS 0 # CHANGE 2S COMPLE. ANGLE(IN BUF) INTO 1S
AD ONE
TCF +4
AD ONE
AD ONE # OVEFLOW HERE IF 2S COMPL. IS 180 DEG.
COM
AD TEM2 # SULT MOVES FROM 2ND TO 3D QUAD.(OR BACK)
CCS A # BACK TO 2S COMPL.
AD ONE
TCF +2
COM
TS TEM2 # STORE 14BIT QUANTITY WITH PRESENT SIGN
TCF +4
INDEX A # SIGN.
CAF LIMITS # FIX IT,BY ADDING IN 37777 OR 40000
AD TEM2
INDEX BUF
TS 0 # STORE NEW ANGLE IN 2S COMPLEMENT.
TC Q
# Page 1512
# RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL. ECADR OF COMMANDS ARRIVES IN X1.
PULSEIMU INDEX FIXLOC # ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
CA X1
TC BANKCALL
CADR IMUPULSE
TCF DANZIG
# Page 1513
# EACH ROUTINE TAKES A 3X3 MATRIX STORED IN DOUBLE PRECISION IN A FIXED AREA OF ERASABLE MEMORY AND REPLACES IT
# WITH THE TRANSPOSE MATRIX. TRANSP1 USES LOCATIONS XNB+0,+1 THROUGH XNB+16D, 17D AND TRANSP2 USES LOCATIONS
# XNB1+0,+1 THROUGH XNB1+16D, 17D. EACH MATRIX IS STORED BY ROWS.
XNBEB ECADR XNB
XNB1EB ECADR XNB1
EBANK= XNB
TRANSP1 CAF XNBEB
TS EBANK
DXCH XNB +2
DXCH XNB +6
DXCH XNB +2
DXCH XNB +4
DXCH XNB +12D
DXCH XNB +4
DXCH XNB +10D
DXCH XNB +14D
DXCH XNB +10D
TCF DANZIG
EBANK= XNB1
TRANSP2 CAF XNB1EB
TS EBANK
DXCH XNB1 +2
DXCH XNB1 +6
DXCH XNB1 +2
DXCH XNB1 +4
DXCH XNB1 +12D
DXCH XNB1 +4
DXCH XNB1 +10D
DXCH XNB1 +14D
DXCH XNB1 +10D
TCF DANZIG
# Page 1514
# THE SUBROUTINE SIGNMPAC SETS C(MPAC, MPAC +1) TO SIGN(MPAC).
# FOR THIS, ONLY THE CONTENTS OF MPAC ARE EXAMINED. ALSO +0 YIELDS POSMAX AND -0 YIELDS NEGMAX.
#
# ENTRY MAY BE BY EITHER OF THE FOLLOWING:
# 1. LIMIT THE SIZE OF MPAC ON INTERPRETIVE OVERFLOW:
# ENTRY: BOVB
# SIGNMPAC
# 2. GENERATE IN MPAC THE SIGNUM FUNCTION OF MPAC:
# ENTRY: RTB
# SIGNMPAC
# IN EITHER CASE, RETURN IS TO TEH NEXT INTERPRETIVE INSTRUCTION IN THE CALLING SEQUENCE.
SIGNMPAC EXTEND
DCA DPOSMAX
DXCH MPAC
CCS A
DPMODE CAF ZERO # SETS MPAC +2 TO ZERO IN THE PROCESS
TCF SLOAD2 +2
TCF +1
EXTEND
DCS DPOSMAX
TCF SLOAD2
# RTB OP CODE NORMUNIT IS LIKE INTERPRETIVE INSTRUCTION UNIT, EXCEPT THAT IT CAN BE DEPENDED ON NOT TO BLOW
# UP WHEN THE VECTOR BEING UNITIZED IS VERY SMALL -- IT WILL BLOW UP WHEN ALL COMPONENT ARE ZERO. IF NORMUNIT
# IS USED AND THE UPPER ORDER HALVES OF ALL COMPONENTS ARE ZERO, THE MAGNITUDE RETURNS IN 36D WILL BE TOO LARGE
# BY A FACTOR OF 2(13) AND THE SQUARED MAGNITUDE RETURNED AT 34D WILL BE TOO BIG BY A FACTOR OF 2(26).
NORMUNX1 CAF ONE
TCF NORMUNIT +1
NORMUNIT CAF ZERO
AD FIXLOC
TS MPAC +2
TC BANKCALL # GET SIGN AGREEMENT IN ALL COMPONENTS
CADR VECAGREE
CCS MPAC
TCF NOSHIFT
TCF +2
TCF NOSHIFT
CCS MPAC +3
TCF NOSHIFT
TCF +2
TCF NOSHIFT
CCS MPAC +5
TCF NOSHIFT
TCF +2
TCF NOSHIFT
# Page 1515
CA MPAC +1 # SHIFT ALL COMPONENTS LEFT 13
EXTEND
MP BIT14
DAS MPAC # DAS GAINS A LITTLE ACCURACY
CA MPAC +4
EXTEND
MP BIT14
DAS MPAC +3
CA MPAC +6
EXTEND
MP BIT14
DAS MPAC +5
CAF THIRTEEN
INDEX MPAC +2
TS 37D
OFFTUNIT TC POSTJUMP
CADR UNIT +1 # SKIP THE "TC VECAGREE" DONE AT UNIT
NOSHIFT CAF ZERO
TCF OFFTUNIT -2
# RTB VECSGNAG ...FORCES SIGN AGREEMENT OF VECTOR IN MPAC.
VECSGNAG TC BANKCALL
CADR VECAGREE
TC DANZIG
# Page 1516
# MODULE CHANGE FOR NEW LUNAR GRAVITY MODEL
SETLOC MODCHG3
BANK
QUALITY1 BOF DLOAD
MOONFLAG
NBRANCH
URPV
DSQ GOTO
QUALITY2
SETLOC MODCHG2
BANK
QUALITY2 PDDL DSQ # SQUARE INTO 2D, B2
URPV +2 # Y COMPONENT, B1
DSU
DMP VXSC # 5(Y**2-X**2)UR
5/8 # CONSTANT, 5B3
URPV # VECTOR, RESULT MAXIMUM IS 5, SCALING
# HERE B6
VSL3 PDDL # STORE SCALED B3 IN 2D, 4D, 6D FOR XYZ
URPV # X COMPONENT, B1
SR1 DAD # 2 X X COMPONENT FOR B3 SCALING
2D # ADD TO VECTOR X COMPONENT OF ANSWER.
# SAME AS MULTIPLYING BY UNITX. MAX IS 7.
STODL 2D
URPV +2 # Y COMPONENT, B1
SR1 BDSU # 2 X Y COMPONENT FOR B3 SCALING
4D # SUBTRACT FROM VECTOR Y COMPONENT OF
# ANSWER, SAME AS MULTIPLYING BY UNITY.
# MAX IS 7.
STORE 4D # 2D HAS VECTOR, B3.
SLOAD VXSC # MULTIPLY COEFFICIENT TIMES VECTOR IN 2D
E3J22R2M
PDDL RVQ # J22 TERM X R**4 IN 2D, SCALED B61
COSPHI/2 # SAME AS URPV +4, Z COMPONENT
# *** END OF CHIEFTAN.028 ***

View File

@ -1,128 +0,0 @@
# Copyright: Public domain.
# Filename: S-BAND_ANTENNA_FOR_CM.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Jim Lawton <jim.lawton@gmail.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 934-935
# Mod history: 2009-05-11 JVL Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 934
# S-BAND ANTENNA FOR CM
BANK 23
SETLOC SBAND
BANK
COUNT* $$/R05
EBANK= EMSALT
SBANDANT TC BANKCALL # V 64 E GETS US HERE
CADR R02BOTH # CHECK IF IMU IS ON AND ALIGNED
TC INTPRET
RTB CALL
LOADTIME # PICKUP CURRENT TIME SCALED B-28
CDUTRIG # COMPUTE SINES AND COSINES OF CDU ANGLES
STCALL TDEC1 # ADVANCE INTEGRATION TO TIME IN TDEC1
CSMCONIC # USING CONIC INTEGRATION
SLOAD BHIZ # ORIGIN OF REFERENCE INERTIAL SYSTEM IS
X2 # EARTH = 0, MOON = 2
EISOI
VLOAD
RATT
STORE RCM # MOVE RATT TO PREVENT WIPEOUT
DLOAD CALL # MOON, PUSH ON
TAT # GET ORIGINAL TIME
LUNPOS # COMPUTE POSITION VECTOR OF MOON
VAD VCOMP # R= -(REM+RCM) = NEG. OF S/C POS. VEC
RCM
GOTO
EISOI +2
EISOI VLOAD VCOMP # EARTH, R= -RCM
RATT
SETPD MXV # RCS TO STABLE MEMBER- B-1X B-29X B+1
2D # 2D
REFSMMAT # STABLE MEMBER. B-1X B-29X B+1= B-29
VSL1 PDDL # 8D
HI6ZEROS
STOVL YAWANG # ZERO OUT YAWANG, SET UP FOR SMNB
RCM # TRANSFORMATION. SM COORD. SCALED B-29
CALL
*SMNB*
STORE R # SAVE NAV. BASE COORDINATES
UNIT PDVL # 14D
R
VPROJ VSL2 # COMPUTE PROJECTION OF VECTOR INTO CM
HIUNITZ # XY-PLANE, R-(R.UZ)UZ
BVSU BOV # CLEAR OVERFLOW INDICATOR IF SET
R
COVCNV
COVCNV UNIT BOV # TEST OVERFLOW FOR INDICATION OF NULL
NOADJUST # VECTOR
PUSH DOT # 20D
# Page 935
HIUNITX # COMPUTE YAW ANGLE = ACOS (URP.UX)
SL1 ACOS # REVOLUTIONS SCALED B0
PDVL DOT # 22D YAWANG
URP
HIUNITY # COMPUTE FOLLOWING- URP.UY
SL1 BPL # POSITIVE
NOADJUST # YES, 0- 180 DEGREES
DLOAD DSU # NO, 181-360 DEGREES 20D
DPPOSMAX # COMPUTE 2 PI MINUS YAW ANGLE
PUSH # 22D YAWANG
NOADJUST VLOAD DOT # COMPUTE PITCH ANGLE
UR # ACOS (UR.UZ) - PI/2
HIUNITZ
SL1 ACOS # REVOLUTIONS B0
DSU
HIDP1/4
STODL RHOSB
YAWANG
STORE GAMMASB # PATCH FOR CHECKOUT
EXIT
CA EXTVBACT # IS BIT 5 STILL ON
MASK BIT5
EXTEND
BZF ENDEXT # NO, WE HAVE BEEN ANSWERED
CAF V06N51 # DISPLAY ANGLES
TC BANKCALL
CADR GOMARKFR
TC B5OFF # TERMINATE
TC B5OFF
TC ENDOFJOB # RECYCLE
CAF BIT3 # IMMEDIATE RETURN
TC BLANKET # BLANK R3
CAF BIT1 # DELAY MINIMUM TIME TO ALLOW DISPLAY IN
TC BANKCALL
CADR DELAYJOB
TCF SBANDANT +2
V06N51 VN 0651
RCM EQUALS 2D
UR EQUALS 8D
URP EQUALS 14D
YAWANG EQUALS 20D
PITCHANG EQUALS 22D
R EQUALS RCM
SBANK= LOWSUPER

View File

@ -1,824 +0,0 @@
# Copyright: Public domain.
# Filename: SERVICER207.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 819-836
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-12 RSB Adapted from Colossus249 file of the same
# name and Comanche 055 page images.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 819
# SERVICER207
# PROGRAM NAME - PREREAD, READACCS, SERVICER, AVERAGE G.
# MOD NO. 00 BY M.HAMILTON DEC.12, 1966
# FUNCTIONAL DESCRIPTION
# THE ROUTINES DESCRIBED BELOW ARE USED TO CALCULATE VALUES OF RN, VN, AND GDT/2 DURING ACCELERATED FLIGHT.
# THE SEVERAL ROUTINES COMPRISE A PACKAGE AND ARE NOT MEANT TO BE USED AS SEPARATE SUBROUTINES.
# GENERAL REFERENCES TO SERVICER OR AVERAGE G ARE UNDERSTOOD TO REFER TO THE ENTIRE SET OF ROUTINES INCLUDING
# READACCS, SERVICER, AVERAGE G, INTEREAD, SMOOTHER, AND ANY ADDITIONAL ROUTINES ATTACHED AT AVGEXIT (SEE BELOW).
# PROGRAMS INITIATING SERVICER ARE REQUIRED TO MAKE A WAITLIST CALL FOR PREREAD (OR, IF LIFTOFF, FOR BIBIBIAS)
# AT 2 SECONDS BEFORE THE FIRST AVERAGE G UPDATE IN ORDER TO INITIALIZE THE SEQUENCE, WHICH WILL RECUR EVERY
# 2 SECONDS FROM THAT TIME ON AS LONG AS AVEGFLAG REMAINS SET.
# THE USE OF ERASABLE AVGEXIT ALLOWS VARIOUS ROUTINES TO BE PERFORMED AS PART OF THE NORMAL CYCLE (SEE
# EXPLANATION OF AVGEXIT BELOW).
# DESCRIPTIONS OF INDIVIDUAL ROUTINES FOLLOW.
# PREREAD
# PREVIOUSLY EXTRAPOLATED VALUES COPIED FROM RN1, VN1, AND PIPTIME1 INTO RN, VN, AND PIPTIME.
# LASTBIAS JOB SCHEDULED.
# PIPS READ AND CLEARED VIA PIPASR SUBROUTINE.
# AVERAGE G FLAG SET ON.
# DRIFT FLAG SET OFF.
# V37 FLAG SET ON.
# INITIALIZATION OF 1) THRUST MONITOR (DVMON) - DVCNTR SET TO ONE.
# 2) TOTAL ACCUMULATED DELV VALUE (DVTOTAL) - SET TO ZERO.
# 3) AXIS VECTOR (AXIS) - SET TO (.5,0,0).
# NORMLIZE JOB SCHEDULED.
# READACCS TASH CALLED IN 2 SECONDS.
# NORMLIZE
#
# GDT/2 INITIALIZED VIA CALCGRAV SUBROUTINE.
# READACCS
# IF ONMON FLAG SET QUIKREAD ROUTINE IS PERFORMED BEFORE PIPASR ZEROS THE PIPA REGISTERS, AND THE 1/2 SEC
# ONMONITOR LOOP IS INITIATED TO PROVIDE DOWNLINK INFORMATION DURING ENTRY.
# PIPS READ AND CLEARED BY PIPASR SUBROUTINE.
# IF CM/DSTBY IS ON, ENTRY VARIABLES INITIALIZED AND SETJTAG TASK CALLED.
# Page 820
# SERVICER207
# IF AVERAGEG FLAG ON READACCS CALLED TO RECYCLE IN 2 SECONDS.
# IF AVERAGEG FLAG OFF AVERAGE G EXIT (AVGEXIT) SET TO 2CADR AVGEND FOR FINAL PASS.
# SERVICER JOB SCHEDULED.
# TEST CONNECTOR OUTBIT TURNED ON.
# ONMNITOR
# A SEQUENCE OF THREE PASSES THROUGH QUICREAD FOLLOWING A CALL TO READACCS WITH ONMONFLG SET AT 1/2
# SEC INTERVALS. INTERVALS ARE COUNTED OUT BY PIPCTR, INITIALISED AT 3 BY READACCS
# QUIKREAD
# READS CURRENT PIPS INTO X,Y,ZPIPBUF. READS OLD X,Y,ZPIPBUF INTO X,Y,ZOLDBUF. VALUES ARE SENT TO
# DOWNLIST DURING ENTRY.
# SERVICER
# DELV VALUES CHECKED TO DETECT RUNAWAY PIP -
# IF BAD PIP 1) ALARM SENT.
# 2) COMPENSATION, DVTOTAL ACCUMULATION, AND DVMON BYPASSED. CONTROL
# TRANSFERRED TO AVERAGE G.
# PIPS COMPENSATED VIA 1/PIPA SUBROUTINE.
# DVTOTAL INCREMENTED BY ABSOLUTE VALUE OF DELV.
# THRUST MONITOR (DVMON) PERFORMED UNLESS IDLE FLAG IS ON.
# CONTROL TRANSFERRED TO AVERAGE Q.
# DVMON
# THRESHOLD VALUD (PLACED IN DVTHRUSH BY USER) CHECKED AGAINST ABSOLUTE VALUE OF DELV TO CHECK
# THRUST LEVEL.
# IF THRUST 1) ULLAGE OFF ROUTINE PERFORMED.
# 2) STEERING FLAG TURNED ON AT FIRST DETECTION OF THRUST.
# 3) CONTROL TRANSFERRED TO AVERAGE G.
# IF NO THRUST 1) ON FIRST PASS THROUGH MONITOR, CONTROL TRANSFERRED TO AVERAGE G.
# 2) ON SUBSEQUENT PASSES, CONTROL TRANSFERRED TO ENGINE FAIL ROUTINE IF THRUST
# HAS FAILED FOR 3 CONSECUTIVE PASSES.
# ENGINE FAIL
# ENGFAIL1 TASK CALLED IN 2.5 SECONDS. THIS WILL RETURN CONTROL TO TIG-5 SO THAT THE IGNITION
# SEQUENCE MAY BE REPEATED.
# ENGINOF3 PERFORMED.
# DAP SET UP FOR RCS.
# AVERAGE G
# Page 821
# RN1, VN1, GDT1/2 CALCULATED VIA CALCRVG ROUTINE BY UPDATING RN, VN WITH DELV AND AN AVERAGED VALUE
# OF GDT/2.
# RN1, VN1, GDT1/2, PIPTIME1 COPIED INTO RN, VN, GDT/2, PIPTIME FOR RESTART PROTECTION.
# CONTROL TRANSFERRED TO ADDRESS SPECIFIED BY USER (OR BY READACCS FOR LAST PASS) IN AVGEXIT.
# LAST PASS (AVGEND) 1) FREE FALL GYRO COMPENSATION SET UP.
# 2) DRIFT FLAG TURNED ON.
# 3) STATE VECTOR TRANSFERRED VIA AVETOMID ROUTINE.
# 4) ONMONITOR FLAG RESET.
# 5) V37 FLAG RESET.
# 6) TEST CONNECTOR OUTBIT RESET.
# 7) CONTROL TRANSFERRED TO CANV37 TO CONTINUE MM CHANGE ROUTINE (R00).
# CALLING SEQUENCE
# PREREAD ENTERED DIRECTLY FROM TIG-30 VIA POSTJUMP.
# READACCS CALLED AS WAITLIST TASK.
# SUBROUTINES CALLED
# UTILITY ROUTINES - PHASCHNG FLAGUP FLAGDOWN NOVAC FINDVAC WAITLIST ALARM NEWPHASE 2PHSCHNG
# OTHER - PIPASR 1/PIPA CALCGRAV CALCRVG AVETOMID
# NORMAL EXIT MODES
# ENDOFJOB TASKOVER CANV37
# AVGEXIT - THIS IS A DOUBLE PRECISION ERASABLE LOCATION BY WHICH CONTROL IS TRANSFERRED AT THE END
# OF EACH CYCLE OF AVERAGE G.
# THE 2CADR OF A ROUTINE TO BE PERFORMED AT THAT TIME (E.G., STEERING EQUATIONS TO BE PERFORMED
# AT 2 SECOND INTERVALS) MAY BE SET BY THE USER INTO AVGEXIT.
# ALL SUCH ROUTINES SHOULD RETURN TO SERVEXIT, WHICH IS THE NORMAL EXIT FROM AVERAGE G.
# SERVEXIT - DOES A PHASE CHANGE FOR RESTART PROTECTION AND GOES TO ENDOFJOB.
# THE 2CADR OF SERVEXIT IS SET INTO AVGEXIT BY THE USER IF NO OTHER ROUTINE (SEE ABOVE).
#
# AVGEND - LAST PASS OF AVERAGE G EXITS HERE, BYPASSING SPECIAL ROUTINE (SEE ABOVE UNDER READACCS).
# FINAL EXIT IS TO CANV37. F AVERAGE G).
# OUTPUT
# DVTOTAL(2) PIPTIME(2) XPIPBUF(2) YPIPBUF(2) ZPIPBUF(2)
# RN(6) REFERENCE COORD. SCALED AT 2(+29) M/CS
# VN(6) REFERENCE COORD. SCALED AT 2(+7) M/CS
# GDT/2(6) REFERENCE COORD. SCALED AT 2(+7) M/CS
# DELV(6) STABLE MEMB. COORD.SCALED AT 2(+14)*5.85*10(-4)M/CS (KPIP1 USED TO GET DV/2 AT 2(+7))
# Page 822
# DELVREF(6) REFERENCE COORD. SCALED AT 2(+7) M/CS
# INITIALIZATION
# ONMONITOR FLAG SET BY ENTRY TO SHOW PIPBUF VALUES REQUIRED.
# IDLE FLAG ON IF DVMON TO BE BYPASSED.
# DVTHRUSH SET TO APPROPRIATE VALUE FOR DVMON.
# AVGEXIT SET TO 2CADR OF ROUTINE, IF ANY, TO BE PERFORMED AFTER EACH CYCLE OF AVERAGE G. IF NO ROUTINE
# TO BE DONE, AVGEXIT SET TO SERVEXIT.
# VALUES NEEDED
# REFSMMAT
# UNITW - FULL UNIT VECTOR, IN REFERENCE COORD., OF EARTH S ROTATIONAL VECTOR
# RN1, VN1, PIPTIME1 - IN REFERENCE COORD., CONSISTENT WITH TIME OF EXECUTION OF PREREAD
# DEBRIS
# CENTRALS A, L, Q
# OTHER INTERNAL - DVCNTR(1) PIPAGE(1) PIPCTR(1) AVGEXIT(2)
# EXTERNAL - ITEMP1(1) ITEMP2(1) RUPTREG1(1) TEMX(1) TEMY(1) TEMZ(1)
# USEFUL DEBRIS
# RN1(6) VN1(6) GDT1/2 PIPTIME1(2)
# THESE LOCATIONS USED AS BUFFER STORAGE FOR NEWLY CALCULATED VALUES OF RN, VN, GDT/2,
# AND PIPTIME DURING PERFORMANCE OF SERVICER ROUTINES.
# UNITR - HALF UNIT VECTOR OF RN, REFERENCE COORD.
# RMAG SCALED AT 2(+58) IN 36D.
# RMAGSQ SCALED AT 2(+58) IN 34D.
# (RE/RMAG)SQ IN 32D.
BANK 27
SETLOC SERVICES
BANK
EBANK= DVCNTR
# ********************* PREREAD ***************************************
#
COUNT 37/SERV
PREREAD CAF PRIO21 # CALLER MUST PROTECT PREREAD
TC NOVAC
EBANK= NBDX
2CADR LASTBIAS # DO LAST GYRO COMPENSATION IN FREE FALL
# CALL-TO AND LASTBIAS ITSELF ARE NOT
# PROTECTED. REREADAC SETS 1/PIPADT
# TO 2.0 SECS IN CASE LASTBIAS LOST.
# (REDUNDANT IF LASTBIAS IS AOK)
# Page 823
REDO5.31 TC PREREAD1
CAF PRIO32
TC FINDVAC # SET UP NORMLIZE JOB REQUIRED PRIOR TO
EBANK= DVCNTR # FIRST AVERAGE G PASS
2CADR NORMLIZE
CAF 2SECS
TC WAITLIST
EBANK= AOG
2CADR READACCS
CS TWO
TC NEWPHASE
OCT 5
TCF TASKOVER
PREREAD1 EXTEND
QXCH RUPTREG1
TC PIPASR # CLEAR + READ PIPS LAST TIME IN FREE FALL
CAF ONE # SET UP PIPAGE FOR REREADAC IN CASE A
TS PIPAGE # RESTART OCCURS BEFORE READACCS
CS FLAGWRD1 # SET AVEG FLAG
MASK BIT1
ADS FLAGWRD1
CA POSMAX
MASK FLAGWRD2
TS FLAGWRD2 # KNOCK DOWN DRIFT FLAG
CS FLAGWRD7 # SET V37 FLAG
MASK BIT6
ADS FLAGWRD7
CAF ZERO
TS DVTOTAL # CLEAR DVTOTAL
TS DVTOTAL +1
TC RUPTREG1
# Page 824
# ********************* READACCS ***************************************
EBANK= AOG
READACCS TC PIPASR
PIPSDONE CAF FIVE
TS L
COM
DXCH -PHASE5
REDO5.5 CAF ONE # SHOW PIPS HAVE BEEN READ
TS PIPAGE
CA TWO # SET PIPCTR FOR ONMINTOR
TS PIPCTR # AFTER ABOVE PHASCHNG
CS CM/FLAGS
MASK BIT2 # CM/DSTBY
CCS A
TC CHEKAVEG
CS PIPTIME1 +1
TS TBASE6 # FOR RESTARTS
EXTEND # CONTINUE FOR ENTRY DAP
DCA AOG
DXCH AOG/PIP
CA AMG
XCH AMG/PIP
EXTEND
DCA ROLL/180
DXCH ROLL/PIP
CA BETA/180
XCH BETA/PIP
CA CM/FLAGS
MASK BIT12 # CM/DAPARM 93D BIT12
EXTEND # DURING ENTRY, WHEN RCS DAP IS INACTIVE,
BZF NOSAVPIP # SAVE PIPAS EACH 0.5 SEC FOR TM.
CA 0.5SEC
TC WAITLIST
EBANK= XPIPBUF
2CADR QUIKREAD
# NO NEED TO RESTART PROTECT THIS.
CA DELVX # SAVE PIPAS AS READ (BUT NOT COMPENSATED)
XCH XPIPBUF
TS XOLDBUF
CA DELVY
XCH YPIPBUF
TS YOLDBUF
# Page 825
CA DELVZ
XCH ZPIPBUF
TS ZOLDBUF
NOSAVPIP CA FIVE
TS CM/GYMDT
CA JTAGTIME # ACTIVATE CM/RCS AFTER PIPUP TO GO
# IN JTAGTIME +5 CS.
TC WAITLIST
EBANK= AOG
2CADR SETJTAG
CS THREE # 1.3SPOT FOR SETJTAG
TC NEWPHASE
OCT 1
CAF OCT37
TS L
COM
DXCH -PHASE5
CHEKAVEG CS FLAGWRD1
MASK BIT1
CCS A # IF AVEG FLAG DOWN SET FINAL EXIT AVEG
TC AVEGOUT
CAF 2SECS
TC WAITLIST
EBANK= AOG
2CADR READACCS
MAKESERV CAF PRIO20 # ESTABLISH SERVICER ROUTINE
TC FINDVAC
EBANK= DVCNTR
2CADR SERVICER
CS FOUR # RESTART SERVICER AND READACCS
TC NEWPHASE
OCT 5
CAF BIT9
EXTEND
WOR DSALMOUT # TURN TEST CONNECTOR OUTBIT ON
TCF TASKOVER # END PREVIOUS READACCS WAITLIST TASK
# Page 826
AVEGOUT EXTEND
DCA AVOUTCAD
DXCH AVGEXIT
TCF MAKESERV
EBANK= DVCNTR
AVOUTCAD 2CADR AVGEND
# Page 827
# ROUTINE NAME: ONMNITOR
# MOD 04 BY BAIRNSFATHER 30 APR 1968 REDO ONMNITOR TO SAVE PIPS EACH 0.5 SEC FOR TM,ENTRY.
# MOD 03 BY FISHER DECEMBER 1967
# MOD 02 BY RYE SEPT 1967
# MOD 01 BY KOSMALA 23 MAR 1967
# MOD 00 BY KOSMALA 27 FEB 1967
# FUNCTIONAL DESCRIPTION
# THE PURPOSE OF ONMONITOR IS TO PROVIDE 1/2 SEC.READING OF PIPAS FOR DOWNLIST DURING ENTRY.
# X,Y,ZPIPBUF CONTAIN PRESET VALUES X,Y,ZOLDBUF CONTAIN VALUES FROM PREVIOUS READING.
# CALLING SEQUENCE
# CALL AS WAITLIST TASK. TERMINATES ITSELF IN TASKOVER
# INITIALISATION
# PIPCTR = 2 (FOR DT = 0.5 SEC)
# X,Y,ZPIPBUF SET TO PREVIOUS PIPAX,Y,Z
# OUTPUT
# X,Y,ZPIPBUF, X,Y,ZOLDBUF
# DEBRIS
# X,Y,ZPIPBUF CONTAIN LAST PIPAX,Y,Z VALUES
# X,Y,ZOLDBUF CONTAIN LAST-BUT-ONE PIPAX,Y,Z VALUES
# RUPTREG1
# PIPCTR
ONMNITOR TS PIPCTR
TC FIXDELAY # WAIT
0.5SEC DEC 50
QUIKREAD CAF TWO
TS RUPTREG1
INDEX A
CA PIPAX # SAVE ACTUAL PIPAS FOR TM.
INDEX RUPTREG1
XCH XPIPBUF # UPDATE X,Y,ZPIPBUF
INDEX RUPTREG1
TS XOLDBUF # AND X,Y,ZOLDBUF
CHKCTR CCS RUPTREG1
TCF QUIKREAD +1 # LOOP AGAIN
CCS PIPCTR
TCF ONMNITOR
TC TASKOVER
# Page 828
# ********************* SERVICER ***************************************
#
EBANK= DVCNTR
SERVICER CAF TWO
INHINT
PIPCHECK TS RUPTREG1
DOUBLE
INDEX A
CCS DELVX
TC +2
TC PIPLOOP
AD -MAXDELV # DO PIPA-SATURATION TEST BEFORE
EXTEND
BZMF PIPLOOP # COMPENSATION.
TC ALARM
OCT 00205 # SATURATED-PIPA ALARM ***CHANGE LATER
TC AVERAGEG
PIPLOOP CCS RUPTREG1
TCF PIPCHECK
TC PHASCHNG # RESTART REREADAC + SERVICER
OCT 16035
OCT 20000
EBANK= DVCNTR
2CADR DVTOTUP
TC BANKCALL # PIPA COMPENSATION CALL
CADR 1/PIPA
DVTOTUP TC INTPRET
VLOAD ABVAL # GET ABS VALUE OF DELV
DELV
DMP EXIT
KPIP1 # SCALE AT 2(+7)
EXTEND
DCA MPAC
DAS DVTOTAL # ACCUMULATE DVTOTAL
AVERAGEG TC PHASCHNG
OCT 10035
TC INTPRET
CALL
# Page 829
CALCRVG
EXIT
TC PHASCHNG
OCT 10035
CAF OCT31 # COPY RN1,VN1,GOT102,GOBL1/2,PIPTIME1
TC GENTRAN # INTO RN ,VN ,GDT/12 ,GOBL/2 ,PIPTIME
ADRES RN1
ADRES RN
RELINT # GENTRAN DOES AN INHINT
TC PHASCHNG
OCT 10035
EXTEND
DCA AVGEXIT
DXCH Z # AVERAGEG EXIT
AVGEND CA PIPTIME +1 # FINAL AVERAGE G EXIT
TS OLDBT1 # SET UP FREE FALL GYRO COMPENSATION
TC UPFLAG # SET DRIFTFLG
ADRES DRIFTFLG # BIT 15 FLAG 2
TC 2PHSCHNG
OCT 5 # GROUP 5 OFF
OCT 05022 # GROUP 2 ON FOR AVETOMID
OCT 20000
TC INTPRET
CALL
AVETOMID # CONVERT STATE VECTOR TO REFERENCE SCALE.
EXIT
CAF ZERO # ZERO MARK COUNTERS.
TS VHFCNT
TS TRKMKCNT
TC BANKCALL
CADR PIPFREE
CS BIT9
TS MRKBUF2 # INVALIDATE MARK BUFFER
EXTEND
WAND DSALMOUT
TC DOWNFLAG
ADRES CM/DSTBY
TC DOWNFLAG
ADRES V37FLAG
# Page 830
CAF BIT7 # RESTORE GROUP 1 + 2 IF P20 IS RUNNING.
MASK FLAGWRD0
EXTEND
BZF +4
TC 2PHSCHNG
OCT 111 # 1.11SPOT
OCT 132 # 2.13SPOT
TC POSTJUMP
CADR CANV37
SERVEXIT TC PHASCHNG
OCT 00035 # A, 5.3 = REREADAC (ONLY)
TCF ENDOFJOB
DVTHRUSH EQUALS ELEVEN # 15 PERCENT OF 2SEC PIPA ACCUMULATION,
# FOR 503-FULL CSM/LEM....DELV SC.AT
# 5.85 CM/SEC.
-MAXDELV DEC -6398 # 3200 PPS FOR 2 SEC CCS TAKES 1
JTAGTIME DEC 120 # = 1 SEC + T CDU, T CDU = .1 SEC
2.5SEC DEC 250
MDOTFAIL DEC 144.0 B-16 # 5 SEC MASS LOSS AT 28.8 KG/SEC
# SHOULD BE 2-4 SECS FOR NO START
# 6-8 SECS FOR FAILURE
# Page 831
# NORMLIZE PERFORMS THE INITIALIZATION REQUIRED PRIOR TO THE FIRST ENTRY TO AVERAGEG, AND SCALES RN SO THAT IT
# HAS 1 LEADING BINARY ZERO. IN MOST MISSIONS, RN WILL BE SCALED AT 2(+29), BUT IN THE 206 MISSION, RN WILL BE
# SCALED AT 2(+24)M.
NORMLIZE CAF THIRTEEN # SET UP TO COPY 14 REGS- RN1,VN1,PIPTIME1
TC GENTRAN # INTO RN,VN, PIPTIME
ADRES RN1 # FROM HERE
ADRES RN # TO HERE
RELINT
TC INTPRET
VLOAD CALL # LOAD RN FOR CALCGRAV
RN
CALCGRAV # INITIALISE UNITR RMAG GDT1
STOVL GDT/2
GOBL1/2
STORE GOBL/2
EXIT
TCF ENDOFJOB
# Page 832
# ***** PIPA READER *****
# MOD NO. 00 BY D. LICKLY DEC.9 1966
# FUNCTIONAL DESCRIPTION
# SUBROUTINE TO READ PIPA COUNTERS, TRYING TO BE VERY CAREFUL SO THAT IT WILL BE RESTARTABLE.
# PIPA READINGS ARE STORED IN THE VECTOR DELV. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS THE PIPA READING,
# RESTARTS BEGIN AT REREADAC.
# AT THE END OF THE PIPA READER THE CDUS ARE READ AND STORED AS A
# VECTOR IN CDUTEMP. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS
# THE CDU READING IN 2S COMP IN THE ORDER CDUX,Y,Z. THE THRUST
# VECTOR ESTIMATOR IN FINDCDUD REQUIRES THE CDUS BE READ AT PIPTIME.
# CALLING SEQUENCE AND EXIT
# CALL VIA TC, ISWCALL, ETC.
# EXIT IS VIA Q.
# INPUT
# INPUT IS THROUGH THE COUNTERS PIPAX, PIPAY, PIPAZ, AND TIME2.
# OUTPUT
# HIGH ORDER COMPONENTS OF THE VECTOR DELV CONTAIN THE PIPA READINGS.
# PIPTIME CONTAINS TIME OF PIPA READING.
# DEBRIS (ERASABLE LOCATIONS DESTROYED BY THE PROGRAM)
# LOW ORDER DELV'S ARE ZEROED FOR TM INDICATION.
# TEMX TEMY TEMZ PIPAGE
PIPASR EXTEND
DCA TIME2
DXCH PIPTIME1 # CURRENT TIME POSITIVE VALUE
CS ZERO # INITIALIZE THESE AT NEG ZERO.
TS TEMX
TS TEMY
TS TEMZ
# Page 833
CA ZERO
TS DELVZ # OTHER DELVS OK INCLUDING LOW ORDER
TS DELVY
TS DELVX +1 # LOW ORDER DELV'S ARE ZEROED FOR TM: THUS
TS DELVY +1 # IF DNLNK'D LOW ORDER DELVS ARE NZ, THEY
TS DELVZ +1 # CONTAIN PROPER COMPENSATION. IF=0, THEN
# THE TM VALUES ARE BEFORE COMPENSATION.
TS PIPAGE # SHOW PIPA READING IN PROGRESS
REPIP1 EXTEND
DCS PIPAX # X AND Y PIPS READ
DXCH TEMX
DXCH PIPAX # PIPAS SET TO NEG ZERO AS READ.
TS DELVX
LXCH DELVY
REPIP3 CS PIPAZ # REPEAT PROCESS FOR Z PIP
XCH TEMZ
XCH PIPAZ
DODELVZ TS DELVZ
TC Q
EBANK= AOG
REREADAC CCS PHASE5 # LAST PASS CHECK
TCF +2
TCF TASKOVER
CAF PRIO31 # RESTART MAY HAVE WIPED OUT LASTBIAS, AN
TS 1/PIPADT # UNPROTECTED NOVAC FROM PREREAD,
# WHICH SET(S) UP 1/PIPADT (THUSLY)
# FOR NON-COASTING COMPENSATION....BE
# SURE 1/PIPADT IS AOK. (PRIO31 IS
# 2.0SEC SC.AT B+8CS)
CCS PIPAGE
TCF READACCS # PIP READING NOT STARTED. GO TO BEGINNING
CAF DONEADR # SET UP RETURN FROM PIPASR
TS Q
CCS DELVZ
TC Q # Z DONE, GO DO CDUS
TCF +3 # Z NOT DONE, CHECK Y.
TC Q
TC Q
# Page 834
ZL
CCS DELVY
TCF +3
TCF CHKTEMX # Y NOT DONE, CHECK X.
TCF +1
LXCH PIPAZ # Y DONE, ZERO Z PIP.
CCS TEMZ
CS TEMZ # TEMZ NOT = -0, CONTAINS -PIPAZ VALUE.
TCF DODELVZ
TCF -2
LXCH DELVZ # TEMZ = -0, L HAS ZPIP VALUE.
TC Q
CHKTEMX CCS TEMX # HAS THIS CHANGED
CS TEMX # YES
TCF +3 # YES
TCF -2 # YES
TCF REPIP1 # NO
TS DELVX
CS TEMY
TS DELVY
CS ZERO # ZERO X AND Y PIPS
DXCH PIPAX # L STILL ZERO FROM ABOVE
TCF REPIP3
DONEADR GENADR PIPSDONE
# Page 835
# *********************************************************************************************
# ROUTINE CALCRVG INTEGRATES THE EQUATIONS OF MOTION BY AVERAGING THE THRUST AND GRAVITATIONAL
# ACCELERATIONS OVER A TIME INTERVAL OF 2 SECONDS.
#
# FOR THE EARTH-CENTERED GRAVITATIONAL FIELD, THE PERTURBATION DUE TO OBLATENESS IS COMPUTED TO THE FIRST
# HARMONIC COEFFICIENT J.
# ROUTINE CALCRVG REQUIRES...
# 1) THRUST ACCELERATION INCREMENTS IN DELV SCALED SAME AS PIPAX,Y,Z IN STABLE MEMBER COORDS.
# 2) VN SCALED 2(+7)M/CS IN REFERENCE COORDS.
# 3) RN SCALED AT 2(+29) METERS IN REFERENCE COORDS.
# 4) UNITW THE EARTH S UNIT ROTATIONAL VECTOR (SCALED AS A FULL UNIT VECTOR) IN REFERENCE COORDS.
# IT LEAVES RN1 UPDATED (SCALED AT 2(+29)M, VN1 (SCALED AT 2(+7)M/CS), AND GDT1/2 (SCALED AT 2(+7)M/CS). ALSO HALF
# UNIT VECTOR UNITR, RMAG IN 36D SCALED AT 2(+29)M, R MAG SQ. IN 34D SCALED AT 2(+58) M SQ.
CALCGRAV UNIT PUSH # ENTER WITH RN IN MPAC
STORE UNITR
LXC,1 SLOAD
RTX2
X1
BMN VLOAD
ITISMOON
DOT PUSH
UNITW
DSQ BDSU
DP1/20
PDDL DDV
RESQ
34D # (RN)SQ
STORE 32D # TEMP FOR (RE/RN)SQ
DMP DMP
20J
VXSC PDDL
UNITR
DMP DMP
2J
32D
VXSC VAD
UNITW
STADR
STORE GOBL1/2
VAD PUSH
UNITR
ITISMOON DLOAD NORM
34D
X2
BDDV* SLR*
# Page 836
-MUDT(E),1
0 -21D,2
VXSC STADR
STORE GDT1/2 # SCALED AT 2(+7) M/CS
RVQ
CALCRVG VLOAD VXSC
DELV
KPIP1
VXM VSL1
REFSMMAT
STORE DELVREF # DELV IN REF COORDS AT 2(+7)
VSR1 PUSH
VAD PUSH # (DV-OLDGDT)/2 TO PD SCALED AT 2(+7)M/CS
GDT/2
VAD VXSC
VN
2SEC(22)
VAD STQ
RN
31D
STCALL RN1 # TEMP STORAGE OF RN SCALED 2(+29)M
CALCGRAV
VAD VAD
VAD
VN
STCALL VN1 # TEMP STORAGE OF VN SCALED 2(+7)M/CS.
31D
KPIP 2DEC .1024 # SCALES DELV TO 2(+4)
KPIP1 2DEC 0.074880 # 207 DELV SCALING. 1 PULSE = 5.85 CM/SEC.
-MUDT(E) 2DEC* -7.9720645 E+12 B-44*
-MUDT(M) 2DEC* -9.805556 E+10 B-44*
2SEC(22) 2DEC 200 B-22
DP1/20 2DEC 0.05
RESQ 2DEC* 40.6809913 E12 B-59*
20J 2DEC* 3.24692010 E-2 B1*
2J 2DEC* 3.24692010 E-3 B1*

View File

@ -1,279 +0,0 @@
# Copyright: Public domain.
# Filename: SERVICE_ROUTINES.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1485-1492
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-07 RSB Adapted from Colossus249 file of the same
# name, and page images. Corrected various
# typos in the transcription of program
# comments, and these should be back-ported
# to Colossus249.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1485
BLOCK 3
SETLOC FFTAG6
BANK
COUNT 03/FLAG
UPENT2 TS L # WHICH FLAGWORD IS IT
MASK OCT7
XCH L # SAVE IN L FOR INDEXING
MASK OCT77770 # OBTAIN THE BIT INFORMATION
INHINT # PREVENT INTERUPTS
TS ITEMP1 # STORE THE BIT INFORMATION TEMPORARIALY
NDX L
CS FLAGWRD0
MASK ITEMP1
NDX L
ADS FLAGWRD0
RELINT # RELEASE INTERUPT INHIBIT
INCR Q # OBTAIN THE CORRECT RETURN ADDRESS
TC Q # RETURN
DOWNENT2 TS L # WHICH FLAGWORD IS IT
MASK OCT7
XCH L # SAVE IN L FOR INDEXING
MASK OCT77770 # OBTAIN THE BIT INFORMATION
COM # START TO PROCESS THE INFORMATION
INHINT # PREVENT INTERUPTS
NDX L
MASK FLAGWRD0
NDX L
TS FLAGWRD0
RELINT # RELEASE INTERUPT INHIBIT
INCR Q # OBTAIN THE CORRECT RETURN ADDRESS
TC Q # RETURN
OCT7 EQUALS SEVEN
BANK 10
# Page 1486
#
# UPFLAG AND DOWNFLAG ARE ENTIRELY GENERAL FLAG SETTING AND CLEARING SUBROUTINES. USING THEM, WHETHER OR
# NOT IN INTERRUPT, ONE MAY SET OR CLEAR ANY SINGLE, NAMED BIT IN ANY ERASABLE REGISTER, SUBJECT OF COURSE TO
# EBANK SETTING. A "NAMED" BIT, AS THE WORD IS USED HERE, IS ANY BIT WITH A NAME FORMALLY ASSIGNED BY THE YUL
# ASSEMBLER.
#
# AT PRESENT THE ONLY NAMED BITS ARE THOSE IN THE FLAGWORDS. ASSEMBLER CHANGES WILL MAKE IT POSSIBLE TO
# NAME ANY BIT IN ERASABLE MEMORY.
#
# CALLING SEQUENCES ARE AS FOLLOWS:-
#
# TC UPFLAG TC DOWNFLAG
# ADRES NAME OF FLAG ADRES NAME OF FLAG
#
# RETURN IS TO THE LOCATION FOLLOWING THE "ADRES" ABOUT .58 MS AFTER THE "TC".
#
# UPON RETURN A CONTAINS THE CURRENT FLAGWRD SETTING.
BLOCK 02
SETLOC FFTAG1
BANK
COUNT* $$/FLAG
UPFLAG CA Q
TC DEBIT
COM # +(15 - BIT)
EXTEND
ROR LCHAN # SET BIT
COMFLAG INDEX ITEMP1
TS FLAGWRD0
LXCH ITEMP3
RELINT
TC L
DOWNFLAG CA Q
TC DEBIT
MASK L # RESET BIT
TCF COMFLAG
DEBIT AD ONE # GET DE BITS
INHINT
TS ITEMP3
CA LOW4 # DEC15
TS ITEMP1
INDEX ITEMP3
CA 0 -1 # ADRES
TS L
CA ZERO
# Page 1487
EXTEND
DV ITEMP1 # A = FLAGWRD, L = (15 - BIT)
DXCH ITEMP1
INDEX ITEMP1
CA FLAGWRD0
TS L # CURRENT STATE
INDEX ITEMP2
CS BIT15 # -(15 - BIT)
TC Q
# Page 1488
# DELAYJOB- A GENERAL ROUTINE TO DELAY A JOB A SPECIFIC AMOUNT OF TIME BEFORE PICKING UP AGAIN.
#
# ENTRANCE REQUIREMENTS...
# CAF DT # DELAY JOB FOR DT CENTISECS
# TC BANKCALL
# CADR DELAYJOB
BANK 06
SETLOC DLAYJOB
BANK
# THIS MUST REMAIN IN BANK 0 ****************************************
COUNT 00/DELAY
DELAYJOB INHINT
TS Q # STORE DELAY DT IN Q FOR DLY -1 IN
CAF DELAYNUM # WAITLIST
DELLOOP TS RUPTREG1
INDEX A
CA DELAYLOC # IS THIS DELAYLOC AVAILABLE
EXTEND
BZF OK2DELAY # YES
CCS RUPTREG1 # NO, TRY NEXT DELAYLOC
TCF DELLOOP
TC BAILOUT # NO AVAILABLE LOCS AVAILABLE.
OCT 1104
OK2DELAY CA TCSLEEP # SET WAITLIST IMMEDIATE RETURN
TS WAITEXIT
CA FBANK
AD RUPTREG1 # STORE BBANK FOR TASK CALL
TS L
CAF WAKECAD # STORE CADR FOR TASK CALL
TCF DLY2 -1 # DLY IS IN WAITLIST ROUTINE
TCGETCAD TC MAKECADR # GET CALLERS FCADR
INDEX RUPTREG1
TS DELAYLOC # SAVE DELAY CADRS
TC JOBSLEEP
WAKER CAF ZERO
INDEX BBANK
XCH DELAYLOC # MAKE DELAYLOC AVAILABLE
# Page 1489
TC JOBWAKE
TC TASKOVER
TCSLEEP GENADR TCGETCAD -2
WAKECAD GENADR WAKER
# Page 1490
# GENTRAN, A BLOCK TRANSFER ROUTINE.
#
# WRITTEN BY D. EYLES
# MOD 1 BY KERNAN UTILITYM REV 17 11/18/67
#
# MOD 2 BY SCHULENBERG (REMOVE RELINT) SKIPPER REV 4 2/28/68
#
# THIS ROUTINE IS USEFULL FOR TRANSFERING N CONSECUTIVE ERASABLE OR FIXED QUANTITIES TO SOME OTHER N
# CONSECUTIVE ERASABLE LOCATIONS. IF BOTH BLOCKS OF DATA ARE IN SWITCHABLE EBANKS, THEY MUST BE IN THE SAME ONE.
#
# GENTRAN IS CALLABLE IN A JOB AS WELL AS A RUPT. THE CALLING SEQUENCE IS:
#
# I CA N-1 # # OF QUANTITIES MINUS ONE.
# I +1 TC GENTRAN # IN FIXED-FIXED.
# I +2 ADRES L # STARTING ADRES OF DATA TO BE MOVED.
# I +3 ADRES M # STARTING ADRES OF DUPLICATION BLOCK.
# I +4 # RETURNS HERE.
#
# GENTRAN TAKES 25 MCT'S (300 MICROSECONDS) PER ITEM + 5 MCT'S (60 MICS) FOR ENTERING AND EXITING.
#
# A, L AND ITEMP1 ARE NOT PRESERVED.
BLOCK 02
SETLOC FFTAG4
BANK
EBANK= ITEMP1
COUNT* $$/TRAN
GENTRAN INHINT
TS ITEMP1 # SAVE N-1.
INDEX Q # C(Q) = ADRES L.
AD 0 # ADRES (L + N - 1).
INDEX A
CA 0 # C(ABOVE).
TS L # SAVE DATA.
CA ITEMP1
INDEX Q
AD 1 # ADRES (M + N - 1).
INDEX A
LXCH 0 # STUFF IT.
CCS ITEMP1 # LOOP UNTIL N-1 = 0.
TCF GENTRAN +1
TCF Q+2 # RETURN TO CALLER.
# Page 1491
# B5OFF ZERO BIT 5 OF EXTVBACT, WHICH IS SET BY TESTXACT.
#
# MAY BE USED AS NEEDED BY ANY EXTENDED VERB WHICH HAS DONE TESTXACT
COUNT* $$/EXTVB
B5OFF CS BIT5
MASK EXTVBACT
TS EXTVBACT
TC ENDOFJOB
# Page 1492
# SUBROUTINES TO TURN OFF AND TURN ON TRACKER FAIL LIGHT.
TRFAILOF INHINT
CS OCT40200 # TURN OFF TRACKER LIGHT
MASK DSPTAB +11D
AD BIT15
TS DSPTAB +11D
CS OPTMODES # TO INSURE THAT OCDU FAIL WILL GO ON
MASK BIT7 # AGAIN IF IT WAS ON IN ADDITION TO
ADS OPTMODES # TRACKER FAIL.
REQ RELINT
TC Q
TRFAILON INHINT
CS DSPTAB +11D # TURN ON
MASK OCT40200
ADS DSPTAB +11D
TCF REQ

View File

@ -1,67 +0,0 @@
# Copyright: Public domain.
# Filename: SINGLE_PRECISION_SUBROUTINES.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1207
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1207
BLOCK 02
# SINGLE PRECISION SINE AND COSINE
COUNT 02/INTER
SPCOS AD HALF # ARGUMENTS SCALED AT PI
SPSIN TS TEMK
TCF SPT
CS TEMK
SPT DOUBLE
TS TEMK
TCF POLLEY
XCH TEMK
INDEX TEMK
AD LIMITS
COM
AD TEMK
TS TEMK
TCF POLLEY
TCF ARG90
POLLEY EXTEND
MP TEMK
TS SQ
EXTEND
MP C5/2
AD C3/2
EXTEND
MP SQ
AD C1/2
EXTEND
MP TEMK
DDOUBL
TS TEMK
TC Q
ARG90 INDEX A
CS LIMITS
TC Q # RESULT SCALED AT 1
# SPROOT WAS DELETED IN REV 51 OF MASTER. ASS. CONT. HAS CARDS.

View File

@ -1,422 +0,0 @@
# Copyright: Public domain.
# Filename: STABLE_ORBIT.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 525-532
# Mod history: 2009-05-10 HG Started adapting from the Colossus249/ file
# of the same name, using Comanche055 page
# images 0525.jpg - 0532.jpg.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 525
# STABLE ORBIT RENDEZVOUS PROGRAMS (P38 AND P78)
#
# MOD NO -1 LOG SECTION - STABLE ORBIT - P38-P39
# MOD BY RUDNICKI.S DATE 25JAN68
#
# FUNCTIONAL DESCRIPTION
#
# P38 AND P78 CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL
# CONDITIONS REQUIRED BY THE AGC TO (1) PUT THE ACTIVE VEHICLE
# ON A TRANSFER TRAJECTORY THAT INTERCEPTS THE PASSIVE VEHICLE
# ORBIT A GIVEN DISTANCE, DELTA R, EITHER AHEAD OF OR BEHIND THE
# PASSIVE VEHICLE AND (2) ACTUALLY PLACE THE ACTIVE VEHICLE IN THE
# PASSIVE VEHICLE ORBIT WITH A DELTA R SEPARATION BETWEEN THE TWO
# VEHICLES
#
# CALLING SEQUENCE
#
# ASTRONAUT REQUEST THRU DSKY
#
# V37E38E IF THIS VEHICLE IS ACTIVE VEHICLE
# V37E78E IF OTHER VEHICLE IS ACTIVE VEHICLE
#
# INPUT
#
# (1) SOI MANEUVER
#
# (A) TIG TIME OF SOI MANEUVER
# (B) CENTANG ORBITAL CENTRAL ANGLE OF THE PASSIVE VEHICLE
# DURING TRANSFER FROM TIG TO TIME OF INTERCEPT
# (C) DELTAR THE DESIRED SEPARATION OF THE TWO VEHICLES
# SPECIFIED AS A DISTANCE ALONG THE PASSIVE VEHICLE
# ORBIT
# (D) OPTION EQUALS 1 FOR SOI
#
# (2) SOR MANEUVER
#
# (A) TIG TIME OF SOR MANEUVER
# (B) CENTANG AN OPTIONAL RESPECIFICATION OF 1 (B) ABOVE
# (C) OPTION EQUALS 2 FOR SOR
# (D) DELTTIME THE TIME REQUIRED TO TRAVERSE DELTA R WHEN
# TRAVELING AT A VELOCITY EQUAL TO THE HORIZONTAL
# VELOCITY OF THE PASSIVE VEHICLE - SAVED FROM
# SOI PHASE
# (E) TINT TIME OF INTERCEPT (SOI) - SAVED FROM SOI PHASE
#
# OUTPUT
#
# (1) TRKMKCNT NUMBER OF MARKS
# (2) TTOGO TIME TO GO
# (3) +MGA MIDDLE GIMBAL ANGLE
# Page 526
# (4) DSPTEM1 TIME OF INTERCEPT OF PASSIVE VEHICLE ORBIT
# (FOR SOI ONLY)
# (5) POSTTPI PERIGEE ALTITUDE OF ACTIVE VEHICLE ORBIT AFTER
# THE SOI (SOR) MANEUVER
# (6) DELVTPI MAGNITUDE OF DELTA V AT SOI (SOR) TIME
# (7) DELVTPF MAGNITUDE OF DELTA V AT INTERCEPT TIME
# (8) DELVLVC DELTA VELOCITY AT SOI (AND SOR) - LOCAL VERTICAL
# COORDINATES
#
# SUBROUTINES USED
#
# AVFLAGA
# AVFLAGP
# VNDSPLY
# BANKCALL
# GOFLASHR
# GOTOPOOH
# BLANKET
# ENDOFJOB
# PREC/TT
# SELECTMU
# INTRPVP
# MAINRTNE
BANK 04
SETLOC STBLEORB
BANK
EBANK= SUBEXIT
COUNT* $$/P3879
P38 TC AVFLAGA # THIS VEHICLE ACTIVE
TC +2
P78 TC AVFLAGP # OTHER VEHICLE ACTIVE
TC P20FLGON # SET UPDATFLG, TRACKFLG
CAF V06N33SR # DISPLAY TIG
TC VNDSPLY
CAF V06N55SR # DISPLAY CENTANG
TCR BANKCALL
CADR GOFLASHR
TCF GOTOPOOH # TERMINATE
TCF +5 # PROCEED
TCF -5 # RECYCLE
CAF THREE # IMMEDIATE RETURN - BLANK R1, R2
TCR BLANKET
TCF ENDOFJOB
CAF FIVE
TS OPTION1
CAF ONE
TS OPTION2 # OPTION CODE IS SET TO 1
# Page 527
CAF V04N06SR # DISPLAY OPTION CODE - 1 = SOI, 2 = SOR
TCR BANKCALL
CADR GOFLASHR
TCF GOTOPOOH # TERMINATE
TCF +5 # PROCEED
TCF -5 # RECYCLE
CAF BIT3 # IMMEDIATE RETURN - BLANK R3
TCR BLANKET
TCF ENDOFJOB
TC INTPRET
SSP
NN
2
SLOAD SR1
OPTION2
BHIZ DLOAD
OPTN1
TINT
STORE TINTSOI # STORE FOR SOR PHASE
CLRGO
OPTNSW # OPTNSW; ON = SOI, OFF = SOR
JUNCTN1
OPTN1 SET CLEAR # SOI
OPTNSW
UPDATFLG
CALL
PREC/TT
SET DAD
UPDATFLG
TIG
STORE TINT # TI = TIG + TF
STORE DSPTEM1 # FOR DISPLAY
EXIT
CAF V06N57SR # DISPLAY DELTA R
TCR BANKCALL
CADR GOFLASHR
TCF GOTOPOOH # TERMINATE
TCF +5 # PROCEED
TCF -5 # RECYCLE
CAF SIX # IMMEDIATE RETURN - BLANK R2, R3
TCR BLANKET
TCF ENDOFJOB
CAF V06N34SR # DISPLAY TIME OF INTERCEPT
TC VNDSPLY
TC INTPRET
JUNCTN1 CLEAR CALL
P39/79SW
SELECTMU # SELECT MU, CLEAR FINALFLG, GO TO VN1645
RECYCLE CALL
PREC/TT
# Page 528
BOFF DLOAD
OPTNSW
OPTN2
TINT
STCALL TDEC1 # PRECISION UPDATE PASSIVE VEHICLE TO
INTRPVP # INTERCEPT TIME
VLOAD UNIT
RATT # RP/(RP)
PDVL VXV
VATT
ABVAL NORM # (VP X RP/(RP))
X1
PDDL DDV
DELTAR
SL* # DELTA R / (VP X RP/RP)
0 -7,1
STCALL DELTTIME # DELTA T = (RP) DELTA R / (VP X RP)
JUNCTN2
OPTN2 DLOAD DAD
TINTSOI
T
STORE TINT # TI = TI + TF
JUNCTN2 DLOAD DSU
TINT
DELTTIME
STORE TARGTIME # TT = TI - DELTA T
# .... MAINRTNE ....
# SUBROUTINES USED
#
# S3435.25
# PERIAPO1
# SHIFTR1
# VNDSPLY
# BANKCALL
# GOFLASH
# GOTOPOOH
# VN1645
MAINRTNE STCALL TDEC1 # PRECISION UPDATE PASSIVE VEHICLE TO
INTRPVP # TARGET TIME
DLOAD
TIG
STORE INTIME
SSP VLOAD
SUBEXIT
TEST3979
RATT
CALL
S3435.25
TEST3979 BOFF BON
# Page 529
P39/79SW
MAINRTN1
FINALFLG
P39P79
SET
UPDATFLG
P39P79 EXIT
TC DSPLY81 # FOR P39 AND P79
MAINRTN1 VLOAD ABVAL
DELVEET3
STOVL DELVTPI # DELTA V
VPASS4
VSU ABVAL
VTPRIME
STOVL DELVTPF # DELTA V (FINAL) = V'T - VT
RACT3
PDVL CALL
VIPRIME
PERIAPO1 # GET PERIGEE ALTITUDE
CALL
SHIFTR1
STORE POSTTPI
BON SET
FINALFLG
DSPLY58
UPDATFLG
DSPLY58 EXIT
CAF V06N58SR # DISPLAY HP, DELTA V, DELTA V (FINAL)
TC VNDSPLY
DSPLY81 CAF V06N81SR # DISPLAY DELTA V (LV)
TC VNDSPLY
TC INTPRET
CLEAR VLOAD
XDELVFLG
DELVEET3
STCALL DELVSIN
VN1645 # DISPLAY TRKMKCNT, TTOGO, +MGA
BON GOTO
P39/79SW
P39/P79B
RECYCLE
# STABLE ORBIT MIDCOURSE PROGRAM (P39 AND P79)
#
# MOD NO -1 LOG SECTION - STABLE ORBIT - P38-P39
# MOD BY RUDNICKI, S DATE 25JAN68
#
# FUNCTIONAL DESCRIPTION
#
# P39 AND P79 CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL
# CONDITIONS REQUIRED BY THE AGC TO MAKE A MIDCOURSE CORRECTION
# Page 530
# MANEUVER AFTER COMPLETING THE SOI MANEUVER BUT BEFORE MAKING
# THE SOR MANEUVER
#
# CALLING SEQUENCE
#
# ASTRONAUT REQUEST THRU DSKY
#
# V37E39E IF THIS VEHICLE IS ACTIVE VEHICLE
# V37E79E IF OTHER VEHICLE IS ACTIVE VEHICLE
#
# INPUT
#
# (1) TPASS4 TIME OF INTERCEPT - SAVED FROM P38/P78
# (2) TARGTIME TIME THAT PASSIVE VEHICLE IS AT INTERCEPT POINT -
# SAVED FROM P38/P78
#
# OUTPUT
#
# (1) TRKMKCNT NUMBER OF MARKS
# (2) TTOGO TIME TO GO
# (3) +MGA MIDDLE GIMBAL ANGLE
# (4) DELVLVC DELTA VELOCITY AT MID - LOCAL VERTICAL COORDINATES
#
# SUBROUTINES USED
#
# AVFLAGA
# AVFLAGP
# LOADTIME
# SELECTMU
# PRECSET
# S34/35.1
# MAINRTNE
P39 TC AVFLAGA # THIS VEHICLE ACTIVE
EXTEND
DCA ATIGINC
TC P39/P79A
P79 TC AVFLAGP # OTHER VEHICLE ACTIVE
EXTEND
DCA PTIGINC
P39/P79A DXCH KT # TIME TO PREPARE FOR BURN
TC P20FLGON # SET UPDATFLG, TRACKFLG
TC INTPRET
SET CALL
P39/79SW
SELECTMU # SELECT MU, CLEAR FINALFLG, GO TO VN1645
P39/P79B RTB DAD
LOADTIME
KT
STORE TIG # TIG = T (PRESENT) + PREPARATION TIME
# Page531
STCALL TDEC1 # PRECISION UPDATE ACTIVE AND PASSIVE
PRECSET # VEHICLES TO TIG
CALL
S34/35.1 # GET UNIT NORMAL
DLOAD GOTO
TARGTIME
MAINRTNE # CALCULATE DELTA V AND DELTA V (LV)
# .... PREC/TT ....
# SUBROUTINES USED
#
# PRECSET
# TIMETHET
# S34/35.1
PREC/TT STQ DLOAD
RTRN
TIG
STCALL TDEC1 # PRECISION UPDATE ACTIVE AND PASSIVE
PRECSET # VEHICLES TO TIG
VLOAD VSR*
RPASS3
0,2
STODL RVEC
CENTANG
PUSH COS
STODL CSTH
SIN SET
RVSW
STOVL SNTH
VPASS3
VSR*
0,2
STCALL VVEC # GET TRANSFER TIME BASED ON CENTANG OF
TIMETHET # PASSIVE VEHICLE
CALL
S34/35.1 # GET UNIT NORMAL
DLOAD GOTO
T
RTRN
# .... INTRPVP ....
# SUBROUTINES USED
#
# CSMPREC
# LEMPREC
INTRPVP STQ BOFF # PRECISION UPDATE PASSIVE VEHICLE TO
RTRN # TDEC1
AVFLAG
OTHERV
CALL
# Page 532
CSMPREC
GOTO
RTRN
OTHERV CALL
LEMPREC
GOTO
RTRN
# .... VNDSPLY ....
# SUBROUTINES USED
#
# BANKCALL
# GOFLASH
# GOTOPOOH
VNDSPLY EXTEND # FLASH DISPLAY
QXCH RTRN
TS VERBNOUN
CA VERBNOUN
TCR BANKCALL
CADR GOFLASH
TCF GOTOPOOH # TERMINATE
TC RTRN # PROCEED
TCF -5 # RECYCLE
V06N33SR VN 0633
V06N55SR VN 0655
V04N06SR VN 0406
V06N57SR VN 0657
V06N34SR VN 0634
V06N58SR VN 0658
V06N81SR VN 0681
# *** END OF COMEKISS.020 ***

View File

@ -1,193 +0,0 @@
# Copyright: Public domain.
# Filename: STAR_TABLES.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1389-1393
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
# from the Colossus249/ file of the same
# name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1389
BANK 32
SETLOC STARTAB
BANK
COUNT 14/STARS
2DEC +.8342971408 B-1 # STAR 37 X
2DEC -.2392481515 B-1 # STAR 37 Y
2DEC -.4966976975 B-1 # STAR 37 Z
2DEC +.8139832631 B-1 # STAR 36 X
2DEC -.5557243189 B-1 # STAR 36 Y
2DEC +.1691204557 B-1 # STAR 36 Z
2DEC +.4541086270 B-1 # STAR 35 X
2DEC -.5392368197 B-1 # STAR 35 Y
2DEC +.7092312789 B-1 # STAR 35 Z
2DEC +.3201817378 B-1 # STAR 34 X
2DEC -.4436021946 B-1 # STAR 34 Y
2DEC -.8370786986 B-1 # STAR 34 Z
2DEC +.5520184464 B-1 # STAR 33 X
2DEC -.7933187400 B-1 # STAR 33 Y
2DEC -.2567508745 B-1 # STAR 33 Z
2DEC +.4537196908 B-1 # STAR 32 X
2DEC -.8779508801 B-1 # STAR 32 Y
2DEC +.1527766153 B-1 # STAR 32 Z
2DEC +.2069525789 B-1 # STAR 31 X
2DEC -.8719885748 B-1 # STAR 31 Y
2DEC -.4436288486 B-1 # STAR 31 Z
2DEC +.1217293692 B-1 # STAR 30 X
# Page 1390
2DEC -.7702732847 B-1 # STAR 30 Y
2DEC +.6259880410 B-1 # STAR 30 Z
2DEC -.1124304773 B-1 # STAR 29 X
2DEC -.9694934200 B-1 # STAR 29 Y
2DEC +.2178116072 B-1 # STAR 29 Z
2DEC -.1146237858 B-1 # STAR 28 X
2DEC -.3399692557 B-1 # STAR 28 Y
2DEC -.9334250333 B-1 # STAR 28 Z
2DEC -.3516499609 B-1 # STAR 27 X
2DEC -.8240752703 B-1 # STAR 27 Y
2DEC -.4441196390 B-1 # STAR 27 Z
2DEC -.5326876930 B-1 # STAR 26 X
2DEC -.7160644554 B-1 # STAR 26 Y
2DEC +.4511047742 B-1 # STAR 26 Z
2DEC -.7861763936 B-1 # STAR 25 X
2DEC -.5217996305 B-1 # STAR 25 Y
2DEC +.3311371675 B-1 # STAR 25 Z
2DEC -.6898393233 B-1 # STAR 24 X
2DEC -.4182330640 B-1 # STAR 24 Y
2DEC -.5909338474 B-1 # STAR 24 Z
2DEC -.5812035376 B-1 # STAR 23 X
2DEC -.2909171294 B-1 # STAR 23 Y
2DEC +.7599800468 B-1 # STAR 23 Z
2DEC -.9170097662 B-1 # STAR 22 X
2DEC -.3502146628 B-1 # STAR 22 Y
# Page 1391
2DEC -.1908999176 B-1 # STAR 22 Z
2DEC -.4523440203 B-1 # STAR 21 X
2DEC -.0493710140 B-1 # STAR 21 Y
2DEC -.8904759346 B-1 # STAR 21 Z
2DEC -.9525211695 B-1 # STAR 20 X
2DEC -.0593434796 B-1 # STAR 20 Y
2DEC -.2986331746 B-1 # STAR 20 Z
2DEC -.9656605484 B-1 # STAR 19 X
2DEC +.0525933156 B-1 # STAR 19 Y
2DEC +.2544280809 B-1 # STAR 19 Z
2DEC -.8608205219 B-1 # STAR 18 X
2DEC +.4636213989 B-1 # STAR 18 Y
2DEC +.2098647835 B-1 # STAR 18 Z
2DEC -.7742591356 B-1 # STAR 17 X
2DEC +.6152504197 B-1 # STAR 17 Y
2DEC -.1482892839 B-1 # STAR 17 Z
2DEC -.4657947941 B-1 # STAR 16 X
2DEC +.4774785033 B-1 # STAR 16 Y
2DEC +.7450164351 B-1 # STAR 16 Z
2DEC -.3612508532 B-1 # STAR 15 X
2DEC +.5747270840 B-1 # STAR 15 Y
2DEC -.7342932655 B-1 # STAR 15 Z
2DEC -.4118589524 B-1 # STAR 14 X
2DEC +.9065485360 B-1 # STAR 14 Y
2DEC +.0924226975 B-1 # STAR 14 Z
# Page 1392
2DEC -.1820751783 B-1 # STAR 13 X
2DEC +.9404899869 B-1 # STAR 13 Y
2DEC -.2869271926 B-1 # STAR 13 Z
2DEC -.0614937230 B-1 # STAR 12 X
2DEC +.6031563286 B-1 # STAR 12 Y
2DEC -.7952489957 B-1 # STAR 12 Z
2DEC +.1371725575 B-1 # STAR 11 X
2DEC +.6813721061 B-1 # STAR 11 Y
2DEC +.7189685267 B-1 # STAR 11 Z
2DEC +.2011399589 B-1 # STAR 10 X
2DEC +.9690337941 B-1 # STAR 10 Y
2DEC -.1432348512 B-1 # STAR 10 Z
2DEC +.3507315038 B-1 # STAR 9 X
2DEC +.8926333307 B-1 # STAR 9 Y
2DEC +.2831839492 B-1 # STAR 9 Z
2DEC +.4105636020 B-1 # STAR 8 X
2DEC +.4988110001 B-1 # STAR 8 Y
2DEC +.7632988371 B-1 # STAR 8 Z
2DEC +.7032235469 B-1 # STAR 7 X
2DEC +.7075846047 B-1 # STAR 7 Y
2DEC +.0692868685 B-1 # STAR 7 Z
2DEC +.5450107404 B-1 # STAR 6 X
2DEC +.5314955466 B-1 # STAR 6 Y
2DEC -.6484410356 B-1 # STAR 6 Z
2DEC +.0130968840 B-1 # STAR 5 X
# Page 1393
2DEC +.0078062795 B-1 # STAR 5 Y
2DEC +.9998837600 B-1 # STAR 5 Z
2DEC +.4917678276 B-1 # STAR 4 X
2DEC +.2204887125 B-1 # STAR 4 Y
2DEC -.8423473935 B-1 # STAR 4 Z
2DEC +.4775639450 B-1 # STAR 3 X
2DEC +.1166004340 B-1 # STAR 3 Y
2DEC +.8708254803 B-1 # STAR 3 Z
2DEC +.9342640400 B-1 # STAR 2 X
2DEC +.1735073142 B-1 # STAR 2 Y
2DEC -.3115219339 B-1 # STAR 2 Z
2DEC +.8748658918 B-1 # STAR 1 X
2DEC +.0260879174 B-1 # STAR 1 Y
2DEC +.4836621670 B-1 # STAR 1 Z
CATLOG DEC 6970

View File

@ -1,659 +0,0 @@
# Copyright: Public domain.
# Filename: SXTMARK.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 222-235
# Contact: Ron Burkey <info@sandroid.org>,
# Fabrizio Bernardini <fabrizio@spacecraft.it>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 16/05/09 FB Transcription Batch 2 Assignment.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 222
# PROGRAM NAME - SXTMARK DATE- 5 APRIL 1967
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS LOG SECTION SXTMARK
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
# FUNCTIONAL DESCRIPTION-
# SXTMARK IS CALLED FROM INTERNAL ROUTINES WHICH MAY REQUIRE STAR OR LANDMARK MARKINGS BY THE ASTRONAUT. IF
# THE MARK SYSTEM IS NOT IN USE, SXTMARK RESERVES A VAC AREA FOR MARKING AND REQUESTS EXECUTION OF THE MKVB51
# ROUTINE VIA THE EXECUTIVE JOB PRIORITY LIST. R21 USES THIS ROUTINE TO DETERMINE IF THE MARK SYSTEM CAN BE
# USED. IF YES, SXTMARK RETURNS TO R21 TO PERFORM ITS OWN MARK REQUESTS VIA THE V51 FLASH.
# CALLING SEQUENCE-
# CAF (NO. MARK REQUESTS IN BITS 1-3 OF A)
# TC BANKCALL
# CADR SXTMARK
# NORMAL EXIT MODE-
# SWRETURN
# ALARM OR ABORT EXIT MODE-
# ABORT
# OUTPUT-
# 1) MARKSTAT CONTAINS MARK VALUE (BITS 14-12) AND VAC AREA ADDRESS
# 2) QPRET = VAC AREA POINTER VALUE
# 3) 1ST WORD OF RESERVED VAC AREA SET TO +0
# 4) PRIO32 PLACED IN A REGISTER
# ERASABLE INITIALIZATION-
# 1) BITS 1-3 OF A = NO. MARKS REQUESTED
# 2) BITS 2,3 OF EXTVBACT =0
# 3) A VAC AREA MUST BE AVAILABLE (WORD 1 = ADDRESS OF VAC AREA)
# DEBRIS-
# A,Q,L,RUPTREG1,MARKSTAT,QPRET,BIT2 OF EXTVBACT
BANK 13
SETLOC SXTMARKE
BANK
EBANK= MRKBUF1
COUNT 07/SXTMK
SXTMARK INHINT
TS RUPTREG1 # NUMBER OF MARKS WANTED
CAF SIX # BIT2 = MARKING SYSTEM IN USE
MASK EXTVBACT # BIT3 = EXTENDED VERB IN PROGRESS
CCS A
TC MKABORT # SET THEREFORE ABORT
# Page 223
CAF BIT2 # NOT SET
ADS EXTVBACT # SET IT, RESET IN ENDMARK
TC MARKOK # YES, FIND VAC AREA
MKABORT TC BAILOUT
OCT 01211
MARKOK CCS VAC1USE # FIND VAC AREA
TC MKVACFND
CCS VAC2USE
TC MKVACFND
CCS VAC3USE
TC MKVACFND
CCS VAC4USE
TC MKVACFND
CCS VAC5USE
TC MKVACFND
TC BAILOUT
OCT 01207
MKVACFND AD TWO # ADDRESS OF VAC AREA
TS MARKSTAT
INDEX A
TS QPRET # STORE NEXT AVAILABLE MARK SLOT
CAF ZERO # STORE VAC AREA OCCUPIED
INDEX MARKSTAT
TS 0 -1
TC CHECKMM # BACKUP MARK ROUTINE USES SXTMARK
MM 53
TCF +2
TCF SWRETURN
TC CHECKMM
MM 54
TCF +2
TCF SWRETURN
CAF BIT12 # DESIRED NUMBER OF MARKS IN 12-14
EXTEND
MP RUPTREG1
XCH L
ADS MARKSTAT
CAF PRIO32 # ENTER MARK JOB
TC NOVAC
EBANK= MARKSTAT
2CADR MKVB51
RELINT
TCF SWRETURN # SAME AS MODEEXIT
# Page 224
# PROGRAM NAME - MKRELEAS DATE- 5 APRIL 1967
# PROGRAM MODIFIED BY 248/278 PROGRAMMERS LOG SECTION SXTMARK
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
# FUNCTIONAL DESCRIPTION-
# MKRELEAS IS EXECUTED BY INTERNAL ROUTINES TO RELEASE THE MARK SYSTEM TO MAKE IT AVAILABLE TO OTHER INTERNAL
# SYSTEM ROUTINES. IT ALSO CLEARS THE COARSE OPTICS FLAG BIT AND DISABLES THE OPTICS ERROR COUNTER.
# CALLING SEQUENCE-
# TC BANKCALL
# CADR MKRELEAS
# NORMAL EXIT MODE-
# SWRETURN
# ALARM OR ABORT EXIT MODE- NONE
# OUTPUT-
# 1) BIT9 OPTMODES SET TO 0
# 2) OPTIND SET TO -1
# 3) 1ST WORD OF VAC AREA SET TO VAC ADDRESS TO SIGNIFY AVAILABILITY.
# 4) MARKSTAT CLEARED
# 5) BIT2 CHANNEL 12 SET TO 0
# ERASABLE INITIALIZATION- NONE
# DEBRIS-
# A,MARKSTAT,BIT9,OPTMODES OPTIND,BIT2 CHANNEL 12
MKRELEAS CAF ZERO # SHOW MARK SYSTEM NOW AVAILABLE
XCH MARKSTAT
MASK LOW9
CCS A
INDEX A
TS 0
MKRLEES INHINT
CS BIT9 # COARSE OPTICS RETURN FLAG.
MASK OPTMODES
TS OPTMODES
CA NEGONE
TS OPTIND # KILL COARSE OPTICS
CS BIT2 # DISABLE OPTICS ERROR COUNTER
EXTEND
WAND CHAN12
RELINT
TC SWRETURN
# Page 225
# PROGRAM NAME - MARKRUPT DATE- 5 APRIL 1967
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS LOG SECTION SXTMARK
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
# FUNCTIONAL DESCRIPTION-
# MARKRUPT STORES CDUS,OPTICS AND TIME AND TRANSFERS CONTROL TO THE MARKIT,MARK REJECT OR KEYCOM ROUTINES IF
# BITS IN CHANNEL 16 ARE SET AS REQUIRED.
# CALLING SEQUENCE-
# ROUTINE ENTERED VIA KEYRUPT2 WHEN MARK,MARK REJECT OR DSKY KEYS DEPRESSED BY THE OPERATOR.
# NORMAL EXIT MODE-
# MARKIT, MKREJECT, OR POSTJUMP ROUTINES (MARK,MARK REJECT, OR DSKY CODE)
# ALARM OR ABORT EXIT MODE-
# ALARM AND RESUME
# OUTPUT-
# RUPTSTOR+5 = CDUT, RUPTSTOR+3 = CDUS, RUPTSTOR+2 = CDUY,
# RUPTREG3 = CDUZ, RUPTSTOR+6 = CDUX, RUPTSTOR+1 AND SAMPTIME+1 =TIME1,
# RUPTSTOR AND SAMPTIME = TIME2
# ERASABLE INITIALIZATION-
# CDUT,CDUS,CDUY,CDUZ,CDUX,TIME2,TIME1,CHANNEL 16 BITS 6,7 OR 1-5
# DEBRIS-
# A,QRUPT,RUPTREG3,SAMPTIME,SAMPTIME+1,RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4 (LOCATION 67)
MARKRUPT TS BANKRUPT # STORE CDUS AND OPTICS NOW
CA CDUT
TS MKCDUT
CA CDUS
TS MKCDUS
CA CDUY
TS MKCDUY
CA CDUZ
TS MKCDUZ
CA CDUX
TS MKCDUX
EXTEND
DCA TIME2 # GET TIME
DXCH MKT2T1
EXTEND
DCA MKT2T1
DXCH SAMPTIME # RUPT TIME FOR NOUN 65.
XCH Q
TS QRUPT
CAF BIT6 # SEE IF MARK OR MKREJECT
# Page 226
EXTEND
RAND NAVKEYIN
CCS A
TC MARKIT # ITS A MARK
CAF BIT7 # NOT A MARK, SEE IF MKREJECT
EXTEND
RAND NAVKEYIN
CCS A
TC MKREJECT # ITS A MARK REJECT
KEYCALL CAF OCT37 # NOT MARK OR MKREJECT, SEE IF KEYCODE
EXTEND
RAND NAVKEYIN
EXTEND
BZF +3 # IF NO INBITS
TC POSTJUMP
CADR KEYCOM # IT,S A KEY CODE, NOT A MARK.
+3 TC ALARM # ALARM IF NO INBITS
OCT 113
TC RESUME
# Page 227
# PROGRAM NAME - MARKCONT DATE- 19 SEPT 1967
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS LOG SECTION SXTMARK
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
# FUNCTIONAL DESCRIPTION-
# MARKCONT IS USED TO PERFORM A SPECIAL MARK FUNCTION FOR R21, TO EXECUTE A SPECIAL DISPLAY OF OPTICS AND TIME OR
# TO PERFORM A MARK OF THE STAR OR LAND SIGHTING BASED UPON FLASHING V-N.
# CALLING SEQUENCE-
# FROM MARKDIF
# NORMAL EXIT MODE-
# TASKOVER
# ALARM OR ABORT EXIT MODE-
# ALARM AND TASKOVER
# OUTPUT-
# 1) FOR R21-
# EBANK=EBANK7
# MRKBUF1 TO MRKBUF1+6 = TIME2,TIME1,CDUY,OPTICX,CDUZ,OPTICSY,CDUX OF CURRENT R21 MARK FUNCTION.
# MRKBUF2 TO MRKBUF2+6 CONTAINS PREVIOUS R21 MARK VALUES.
# 2) FOR SPECIAL DISPLAY JOB-
# RUPTREG1 AND MRKBUF1 = CDUS,RUPTREG2 AND MRKBUF1 +1 = CDUT.
# RUPTREG3 AND MRKBUF1 +2 = TIME2,RUPTREG4 AND MRKBUF1 +3 = TIME1
# 3) FOR NORMAL MARKING-
# DECREMENT BITS14-12 OF MARKSTAT BY 1,
# BIT10 MARKSTAT SET TO 1,INCREMENT QPRET BY 7,
# STORE TIME2,TIME1,CDUY,CDUS,CDUZ,CDUT AND CDUX IN VAC+1 TO VAC+7
# ERASABLE INITIALIZATION-
# 1) FOR R21-
# BIT14 OF STATE+2 =1, MRKBUF1 TO MRKBUF1+6, ITEMP1, RUPTREG3,
# RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4
# 2) FOR SPECIAL DISPLAY JOB-
# BIT14 OF STATE+2 =0,MARKSTAT =+0,RUPTREG1,RUPTREG2,RUPTREG3
# RUPTREG4,RUPTSTOR,RUPTSTOR+1,RUPTSTOR+3,RUPTSTOR+5,
# BIT12 OF STATE+5 (V59 FLAG),MRKBUF1 THRU MRKBUF1+3
# 3) FOR NORMAL MARKING-
# BIT14 OF STATE+2 =0,MARKSTAE =VAC ADDRESS, A REG, ITEMP1, RUPTREG3,
# RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4.
# DEBRIS-
# 1) FOR R21-
# A,ITEMP1,MRKBUF1,MRKBUF2
# 2) FOR SPECIAL DISPLAY JOB-
# A,RUPTREG1,RUPTREG2,RUPTREG3,RUPTREG4,MPAC TO MPAC+3
# 3) FOR NORMAL MARKING-
# A,MARKSTAT,ITEMP1,QPRET,VAC+1 TO VAC+7 OF VAC AREA IN USE
# Page 228
MARKCONT CAF BIT14
MASK STATE +2 # R21 MARK (SPECIAL MARKING FOR R21)
EXTEND
BZF MARKET # NOT SET THEREFORE REGULAR MARKING
MARKIT1 CAF SIX # SPECIAL FOR R21
TC GENTRAN # TRANSFER MRKBUF1 TO MRKBUF2
ADRES MRKBUF1
ADRES MRKBUF2
CAF SIX # TRANSFER CURRENT MARK DATA TO MARKBUF1
TC GENTRAN
ADRES MKT2T1
ADRES MRKBUF1
TCF TASKOVER
MARKET CCS MARKSTAT # SEE IF MARKS CALLED FOR
TC MARK2 # COLLECT MARKS
CAF TWO # IS MARKING SYSTEM IN USE (BIT2)
MASK EXTVBACT
EXTEND
BZF MARKET3 # MARKING NOT CALLED FOR
CAF BIT12
MASK STATE +5 # V59FLAG
EXTEND
BZF MARKET3 # IF V59FLAG NOT SET-MARK UNCALLED FOR
CAF PRIO5 # CALIBRATION MARK (SET) FOR P23
TC NOVAC # SPECIAL DISPLAY JOB
EBANK= MRKBUF1
2CADR MARKDISP
CAF SIX
TC GENTRAN # TRANSFER MARK DATE TO MARKDOWN
ADRES MKT2T1
ADRES MARKDOWN
CAF SIX
TC GENTRAN # TRANSFER MARK DATA TO MRKBUF1 FOR
ADRES MKT2T1 # SPECIAL DISPLAY OF SHAFT AND TRUNNION
ADRES MRKBUF1 # IF V59 ACTING
TCF TASKOVER
MARKET3 TC ALARM
OCT 122 # MARKING NOT CALLED FOR
TCF TASKOVER
114ALM TC ALARM # MARK NOT WANTED
OCT 114
TCF TASKOVER
# Page 229
# STORE MARK DATA IN MKVAC AND INCREMENT POINTER
MARK2 AD 74K # SEE IF MARKS WANTED-REDUCE MARKS WANTED
EXTEND
BZMF 114ALM # MARK NOT WANTED-ALARM
TS MARKSTAT
COM
MASK BIT10 # SET BIT10 TO ENABLE REJECT
ADS MARKSTAT
MASK LOW9
TS ITEMP1
INDEX A
XCH QPRET # PICK UP MARK SLOT-POINTER
TS ITEMP2 # SAVE CURRENT POINTER
AD SEVEN # INCREMENT POINTER
INDEX ITEMP1
TS QPRET # STORE ADVANCED POINTER
VACSTOR EXTEND
DCA MKT2T1
INDEX ITEMP2
DXCH 0
CA MKCDUY
INDEX ITEMP2
TS 2
CA MKCDUS
INDEX ITEMP2
TS 3
CA MKCDUZ
INDEX ITEMP2
TS 4
CA MKCDUT
INDEX ITEMP2
TS 5
CA MKCDUX
INDEX ITEMP2
TS 6
CAF PRIO34 # IF ALL MARKS MADE FLASH VB50
MASK MARKSTAT
EXTEND
BZF +2
TCF TASKOVER
CAF PRIO32
TC NOVAC
EBANK= MARKSTAT
2CADR MKVB50
TCF TASKOVER
# Page 230
# PROGRAM NAME - MKREJECT DATE- 5 APRIL 1967
# PROGRAM MODIFIED BY 258/276 PROGRAMMERS LOG SECTION SXTMARK
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
# FUNCTIONAL DESCRIPTION-
# ROUTINE ALLOWS OPEATOR TO REJECT MARK MADE PRIOR TO ACCEPTANCE AND ALLOWS A NEW MARK TO BE MADE BY ASTRONAUT
# CALLING SEQUENCE-
# FROM MARKRUPT IF BIT7 OF CHANNEL 16 IS 1.
# NORMAL EXIT MODE-
# RESUME
# ALARM OR ABORT EXIT MODE-
# ALARM AND RESUME
# OUTPUT-
# 1) FOR R21-
# MRKRUP1 SET TO -1
# 2) FOR NORMAL MARKING-
# BIT10 MARKSTAT =0,INCREMENT NO. MARKS BY 1,DECREMENT QPRET BY 7
# ERASABLE INITIALIZATION-
# 1) FOR R21-
# BIT14 OF STATE+2 SET TO 1
# 2) FOR NORMAL MARKING-
# BIT14 OF STATE+2 SET TO 0, MARKSTAT,QPRET
# DEBRIS-
# 1) FOR R21-
# A,MARKSTAT,EBANK
# 2) FOR NORMAL MARKING-
# A,MARKSTAT,ITEMP1,QPRET
MKREJECT CAF BIT14
MASK STATE +2 # R21 MARK (SPECIAL MARKING FOR R21)
EXTEND
BZF MRKREJCT # NOT SET THEREFORE REGULAR REJECT
CA NEGONE # -1 (FOR R22)
TS MRKBUF1 # -0 IN TIME IS FLAG TO R22 SIGNIFYING A
TC RESUME # REJECTED MARK
MRKREJCT CCS MARKSTAT # SEE IF MARKS BEING ACCEPTED
TC REJECT2
TC ALARM # MARKS NOT BEING ACCEPTED
OCT 112
TC RESUME
REJECT2 CS BIT10 # SEE IF MARK HAD BEEN MADE SINCE LAST
MASK MARKSTAT # REJECT, AND SET BIT10 TO ZERO TO
XCH MARKSTAT # SHOW MARK REJECT
# Page 231
MASK BIT10
CCS A
TC REJECT3
TC ALARM # DONT ACCEPT TWO REJECTS TOGETHER
OCT 110
TC RESUME
REJECT3 CAF LOW9 # DECREMENT POINTER TO REJECT MARK
MASK MARKSTAT
TS ITEMP1
CS SEVEN
INDEX ITEMP1
ADS QPRET # NEW POINTER
CAF BIT12 # INCREMENT MARKS WANTED AND IF FIELD
AD MARKSTAT # IS NOW NON-ZERO, CHANGE TO VB51 TO
XCH MARKSTAT # INDICATE MORE MARKS WANTED
MASK PRIO34 # INDICATE MORE MARKS WANTED
CCS A
TC RESUME
CAF PRIO32
TC NOVAC
EBANK= MARKSTAT
2CADR MKVB51
TC RESUME
# Page 232
# PROGRAM DESCRIPTION MKVB51 AND MKVB50
# AUTHOR-BARNERT DATE-2-15-67 MOD-0
# PURPOSE FLASH V51N70,V51N43, OR V51 TO REQUEST MARKING,
# AND V50N25 R1=16 TO REQUEST TERMINATE MARKING.
# CALLING SEQUENCE AS JOB WITHIN SXTMARK
# EXIT TO ENDMARK UPON RECEIPT OF V33, V34 CAUSES GOTOPOOH, ENTER
# RECYCLES THE DISPLAY
# NOTE- SXTMARK AUTOMATICALLY CHANGES FROM CALLING MKVB51 TO MKVB50 WHEN
# SUFFICIENT MARKS HAVE BEEN MADE, AND THE REVERSE WHEN A MARK
# REJECT REDUCES THE NUMBER MADE BELOW THAT REQUIRED
# SUBROUTINES CALLED- BANKCALL, GOMARK2,GOODEND,ENDMARK,WAITLIST
# ALARM OR ABORT MODES - NONE
# ERASABLE USED-VERBREG,MARKSTAT,QPRET,DSPTEM1
# OUTPUT MARKSTAT=VAC ADDRESS
# QPRET= NO.MARKS
MKVB51 TC BANKCALL # CLEAR DISPLAY FOR MARK VERB
CADR KLEENEX
CAF VB51 # DISPLAY MARK VB51
TC BANKCALL
CADR GOMARK4
TCF TERMSXT # VB34-TERMINATE
TCF ENTANSWR # V33-PROCEED-MARKING DONE
TCF MKVB5X # ENTER-RECYCLE TO INITIAL MARK DISPLAY
TERMSXT TC CLEARMRK # CLEAR MARK ACTIVITY.
TC CHECKMM
MM 03
TCF +2
TC TERMP03
TC POSTJUMP
CADR TERM52
TERMP03 TC UPFLAG
ADRES TRM03FLG
ENTANSWR CAF LOW9 # PUT VAC ADR IN MARKSTAT AND NO. OF
MASK MARKSTAT # MARKS MADE IN QPRET BEFORE LEAVING
TS MARKSTAT # SXTMARK
COM
INDEX MARKSTAT
AD QPRET
# Page 233
EXTEND
BZMF JAMIT # NO MARKS MADE, SHOW IT IN QPRET, R53
EXTEND # WILL PICK IT UP AND RECYCLE
MP BIT12 # THIS PUTS NUMBER MARKS-1 IN A
AD ONE
JAMIT INDEX MARKSTAT # STORE NO OF MARKS MADE
TS QPRET
INHINT # SERVICE OPTSTALL INTERFACE WITH
CAF FIVE
TC WAITLIST
EBANK= MARKSTAT
2CADR ENDMARKS
TC ENDMARK # KNOCKS DOWN MARKING FLAG + DOES ENDOFJOB
ENDMARKS CAF ONE
TC IBNKCALL
CADR GOODEND
MKVB5X CAF PRIO34
MASK MARKSTAT # RE-DISPLAY VB51 IF MORE MARKS WANTED
CCS A # AND VB50 IF ALL IN
TCF MKVB51
MKVB50 CAF R1D1 # OCT 16
TS DSPTEM1
CAF V50N25
TCF MKVB51 +3
V50N25 VN 5025
VB51 VN 5100
OCT37 = LOW5
# PROGRAM NAME - MARKIT DATE- 19 SEPT 1967
# CALLING SEQUENCE
# FROM MARKRUPT IF CHAN 16 BIT 6 = 1
# EXIT
# RESUME
# INPUT
# CDUCHKWD. ALSO ALL INITIALIZATION FOR MARKCONT
# OUTPUT
# MKT2T1,MKCDUX,MKCDUY,MKCDUZ,MKCDUS,MKCDUT
# ALARM EXIT
# NONE
MARKIT CCS CDUCHKWD
TCF +3 # DELAY OF CDUCHKWD CS IF PNZ
# Page 234
TCF +2
CAF ZERO
AD ONE # 10 MS IF NO CHECK
TC WAITLIST
EBANK= MRKBUF1
2CADR MARKDIF
TCF RESUME
SETLOC SXTMARK1
BANK
COUNT 20/SXTMK
# PROGRAM NAME - MARKDIF DATE- 19 SEPT 1967
# CALLING SEQUENCE
# WAITLIST FROM MARKIT
# EXIT
# TASKOVER TO IBNKCALL TO MARKCONT
# INPUT
# OUTPUT FROM MARKIT, INPUT TO MARKCONT, CDUCHKWD
# OUTPUT
# RUPTSTOR - RUPTSTOR+3,RUPTREG3,RUPTSTOR+5 - RUPTSTOR+6
# ALARM EXIT
# ALARM AND TASKOVER
MARKDIF CA CDUCHKWD # IF DELAY CHECK IS ZERO OR NEG,ACP MARK
EXTEND
BZMF MKACPT
CS BIT1
TS MKNDX # SET INDEX -1
CA MKCDUX
TC DIFCHK # SEE IF VEHICLE RATE TO MUCH AT MARK
CA MKCDUY
TC DIFCHK
CA MKCDUZ
TC DIFCHK
MKACPT TC IBNKCALL
CADR MARKCONT # MARK DATA OK, WHAT DO WE DO WITH IT
DIFCHK INCR MKNDX # INCREMENT INDEX
EXTEND
INDEX MKNDX
# Page 235
MSU CDUX # GET MARK(ICDU) - CURRENT(ICDU)
CCS A
TCF +4
TC Q
TCF +2
TC Q
AD NEG2 # SEE IF DIFFERENCE GREATER THAN 3 BITS
EXTEND
BZMF -3 # NOT GREATER
TC ALARM # COUPLED WITH PROGRAM ALARM
OCT 00121
TCF TASKOVER # DO NOT ACCEPT

View File

@ -1,150 +0,0 @@
# Copyright: Public domain.
# Filename: SYSTEM_TEST_STANDARD_LEAD_INS.agc
# Purpose: Part of the source code for Comanche, build 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 420-422
# Contact: Onno Hommes <ohommes@cmu.edu>.
# Website: www.ibiblio.org/apollo.
# Mod history: 05/07/09 OH Transcription Batch 1 Assignment
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further information.
# Please report any errors to info@sandroid.org.
# Page 420
EBANK= XSM
BANK 33
SETLOC E/PROG1
BANK
COUNT* $$/P07
# SPECIAL PROGRAMS TO EASE THE PANGS OF ERASABLE MEMORY PROGRAMS.
#
# E/BKCALL FOR DOING BANKCALLS FROM AND RETURNING TO ERASABLE.
#
# THIS ROUTINE IS CALLABLE FROM ERASABLE OR FIXED. LIKE BANKCALL, HOWEVER, SWITCHING BETWEEN S3 AND S4
# IS NOT POSSIBLE.
#
# THE CALLING SEQUENCE IS:
#
# TC BANKCALL
# CADR E/BKCALL
# CADR ROUTINE # WHERE YOU WANT TO GO IN FIXED.
# RETURN HERE FROM DISPLAY TERMINATE, BAD STALL OR TC Q.
# RETURN HERE FROM DISPLAY PROCEED OR GOOD RETURN FROM STALL.
# RETURN HERE FROM DISPLAY ENTER OR RECYCLE.
#
# THIS ROUTINE REQUIRES TWO ERASABLES (EBUF2, +1) IN UNSWITCHED WHICH ARE UNSHARED BY INTERRUPTS AND
# OTHER EMEMORY PROGRAMS.
#
# A + L ARE PRESERVED THROUGH BANKCALL AND E/BKCALL.
E/BKCALL DXCH BUF2 # SAVE A,L AND GET DP RETURN.
DXCH EBUF2 # SAVE DP RETURN.
INCR EBUF2 # RETURN +1 BECAUSE DOUBLE CADR.
CA BBANK
MASK LOW10 # GET CURRENT EBANK. (SBANK SOMEDAY)
ADS EBUF2 +1 # FORM BBCON. (WAS FBANK)
NDX EBUF2
CA 0 -1 # GET CADR OF ROUTINE.
TC SWCALL # GO TO ROUTINE, SETTING Q TO SWRETURN
# AND RESTORING A + L.
TC +4 # TX Q, V34, OR BAD STALL RETURN.
TC +2 # PROCEED OR GOOD STALL RETURN.
INCR EBUF2 # ENTER OR RECYCLE RETURN.
INCR EBUF2
E/SWITCH DXCH EBUF2
DTCB
# Page 421
# E/CALL FOR CALLING A FIXED MEMORY INTERPRETIVE SUBROUTINE FROM ERASABLE AND RETURNING TO ERASABLE.
#
# THE CALLING SEQUENCE IS...
#
# RTB
# E/CALL
# CADR ROUTINE # THE INTERPRETIVE SUBROUTINE YOU WANT.
# # RETURNS HERE IN INTERPRETIVE.
E/CALL LXCH LOC # ADRES -1 OF CADR.
INDEX L
CA L # CADR IN A.
INCR L
INCR L # RETURN ADRES IN L.
DXCH EBUF2 # STORE CADR AND RETURN.
TC INTPRET
CALL
EBUF2 # INDIRECTLY EXECUTE ROUTING. IT MUST
EXIT # LEAVE VIA RVQ OR EQUIVALENT.
LXCH EBUF2 +1 # PICK UP RETURN.
TCF INTPRET +2 # SET LOC AND RETURB TO CALLER
# Page 422
# E/JOBWAK FOR WAKING UP ERASABLE MEMORY JOBS.
#
# THIS ROUTINE MUST BE CALLED IN INTERRUPT OR WITH INTERRUPTS INHIBITED.
#
# THE CALLING SEQUENCE IS:
#
# INHINT
# .
# .
# CA WAKEADR # ADDRESS OF SLEEPING JOB
# TC IBNKCALL
# CADR E/JOBWAK
# . # RETURNS HERE
# .
# .
# RELINT # IF YOU DID AN INHINT.
BANK 33
SETLOC E/PROG
BANK
COUNT* $$/P07
E/JOBWAK TC JOBWAKE # ARRIVE IWTH ADRES IN A.
CS BIT11
NDX LOCCTR
ADS LOC # KNOCK FIXED MEMORY BIT OUT OF ADRES.
TC RUPTREG3 # RETURN
# THESE PROGRAMS ARE PROVIDED TO ALLOW OVERLAY OF BANKS 30 THRU 33 OF THE 205 VERSIONS OF SYSTEM TESTS AND
# PRELAUNCH ALIGN. THE INTENT IS TO ALLOW THE STG AND HYBRID LABS TO RUN ALL THE TESTS WITH COLOSSUS.
BANK 33
SETLOC TESTLEAD
BANK
COUNT 33/COMST
EBANK= QPLACE
COMPVER TC GCOMPVER # MUST BE 33,2000.
GTSCPSS1 TC GTSCPSS # MUST BE AT 33,2001
REDO TC NEWMODEX # DISPLAY MM 07.
MM 07 # FALL INTO IMUTEST

File diff suppressed because it is too large Load Diff

View File

@ -1,435 +0,0 @@
# Copyright: Public domain.
# Filename: TAGS_FOR_RELATIVE_SETLOC.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Mod history: 2009-05-05 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrected R32 -> R31.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 27
# TAGS FOR RELATIVE SETLOC AND BLANK BANK CARDS
FIXED MEMORY 120000 - 167777
COUNT BANKSUM
# MODULE 1 CONTAINS BANKS 0 THROUGH 5
BLOCK 02
FFTAG1 EQUALS
FFTAG2 EQUALS
FFTAG3 EQUALS
FFTAG4 EQUALS
FFTAG7 EQUALS
FFTAG8 EQUALS
FFTAG9 EQUALS
FFTAG10 EQUALS
FFTAG12 EQUALS
P30SUBS EQUALS
STOPRAT EQUALS
P23S EQUALS
BNKSUM 02
BLOCK 03
FFTAG5 EQUALS
FFTAG6 EQUALS
DAPS9 EQUALS
FFTAG13 EQUALS
BNKSUM 03
BANK 00
DLAYJOB EQUALS
BNKSUM 00
BANK 01
RESTART EQUALS
BNKSUM 01
BANK 4
VERB37 EQUALS
CONICS1 EQUALS
PINBALL4 EQUALS
CSI/CDH1 EQUALS
INTPRET2 EQUALS
IMUCAL1 EQUALS
# Page 28
STBLEORB EQUALS
E/PROG EQUALS
MIDDGIM EQUALS
BNKSUM 04
BANK 5
FRANDRES EQUALS
DOWNTELM EQUALS
DAPMASS EQUALS
CDHTAG EQUALS
BNKSUM 05
# MODULE 2 CONTAINS BANKS 6 THROUGH 13
BANK 6
IMUCOMP EQUALS
T4RUP EQUALS
IMUCAL2 EQUALS
CSIPROG EQUALS
BNKSUM 06
BANK 7
SXTMARKE EQUALS
R02 EQUALS
MODESW EQUALS
XANG EQUALS
KEYRUPT EQUALS
CSIPROG6 EQUALS
BNKSUM 07
BANK 10
DISPLAYS EQUALS
PHASETAB EQUALS
COMGEOM2 EQUALS
SXTMARK1 EQUALS
P60S4 EQUALS
OPTDRV EQUALS
CSIPROG8 EQUALS
BNKSUM 10
BANK 11
ORBITAL EQUALS
ORBITAL1 EQUALS # CONSTANTS
# Page 29
INTVEL EQUALS
S52/2 EQUALS
CSIPROG5 EQUALS
INTINIT1 EQUALS
BNKSUM 11
BANK 12
CONICS EQUALS
CSIPROG2 EQUALS
CSI/CDH2 EQUALS
MODCHG2 EQUALS
BNKSUM 12
BANK 13
P76LOC EQUALS
LATLONG EQUALS
INTINIT EQUALS
SR52/1 EQUALS
ORBITAL2 EQUALS
CDHTAGS EQUALS
E/PROG1 EQUALS
MODCHG3 EQUALS
BNKSUM 13
# SPACER
# MODULE 3 CONTAINS BANKS 14 THROUGH 21
BANK 14
STARTAB EQUALS
RT53 EQUALS
P50S1 EQUALS
MEASINC2 EQUALS
CSI/CDH3 EQUALS
BNKSUM 14
BANK 15
P50S EQUALS
ETRYDAP EQUALS
S52/3 EQUALS
BNKSUM 15
BANK 16
P40S1 EQUALS
# Page 30
DAPROLL EQUALS
P50S2 EQUALS
P23S1 EQUALS
RTE2 EQUALS
BNKSUM 16
BANK 17
DAPS4 EQUALS
DAPS5 EQUALS
DAPS7 EQUALS
P50S3 EQUALS
BNKSUM 17
BANK 20
DAPS6 EQUALS
DAPS1 EQUALS
DAPS2 EQUALS
MANUSTUF EQUALS
R36CM EQUALS
VAC5LOC EQUALS
BNKSUM 20
BANK 21
DAPS3 EQUALS
MYSUBS EQUALS
KALCMON3 EQUALS
BNKSUM 21
# MODULE 4 CONTAINS BANKS 22 THROUGH 27
BANK 22
RTBCODES EQUALS
RTBCODE1 EQUALS
DAPS8 EQUALS
APOPERI EQUALS
P40S5 EQUALS
KALCMON2 EQUALS
KALCMON1 EQUALS
CSIPROG3 EQUALS
BNKSUM 22
# Page 31
BANK 23
P20S2 EQUALS
INFLIGHT EQUALS
COMGEOM1 EQUALS
POWFLITE EQUALS
POWFLIT1 EQUALS
RENDGUID EQUALS
POWFLIT2 EQUALS
R30LOC EQUALS
P11FOUR EQUALS
CSIPROG4 EQUALS
BNKSUM 23
BANK 24
LOADDAP EQUALS
P40S EQUALS
CSIPROG7 EQUALS
BNKSUM 24
BANK 25
REENTRY EQUALS
CDHTAG1 EQUALS
BNKSUM 25
BANK 26
INTPRET1 EQUALS
REENTRY1 EQUALS
P60S EQUALS
P60S1 EQUALS
P60S2 EQUALS
P60S3 EQUALS
PLANTIN EQUALS # LUNAR ROT
EPHEM EQUALS
P05P06 EQUALS
26P50S EQUALS
BNKSUM 26
BANK 27
TOF-FF EQUALS
TOF-FF1 EQUALS
MANUVER EQUALS
MANUVER1 EQUALS
# Page 32
VECPT EQUALS
UPDATE1 EQUALS
UPDATE2 EQUALS
R22S1 EQUALS
P60S5 EQUALS
P40S2 EQUALS
BNKSUM 27
# MODULE 5 CONTAINS BANKS 30 THROUGH 35
BANK 30
IMUSUPER EQUALS
LOWSUPER EQUALS
FCSTART EQUALS # STANDARD LOCATION FOR THIS. (FOR EXTV8)
LOPC EQUALS
P20S1 EQUALS
P20S6 EQUALS
P40S3 EQUALS
R35A EQUALS
BNKSUM 30
BANK 31
R35 EQUALS
RT23 EQUALS
P30S1A EQUALS
R34 EQUALS
CDHTAG2 EQUALS
CSIPROG9 EQUALS
R31 EQUALS
P22S EQUALS
RTE3 EQUALS
BNKSUM 31
BANK 32
MSGSCAN1 EQUALS
RTE EQUALS
DELRSPL1 EQUALS
IMUCAL3 EQUALS
BNKSUM 32
BANK 33
TESTLEAD EQUALS
# Page 33
IMUCAL EQUALS
BNKSUM 33
BANK 34
P11ONE EQUALS
P20S3 EQUALS
P20S4 EQUALS
RTECON EQUALS
BNKSUM 34
BANK 35
RTECON1 EQUALS
CSI/CDH EQUALS
P30S1 EQUALS
P30S EQUALS
P17S1 EQUALS
MEASINC3 EQUALS
INTINIT2 EQUALS
BNKSUM 35
# MODULE 6 CONTAINS BANKS 36 THROUGH 43
BANK 36
MEASINC EQUALS
MEASINC1 EQUALS
P17S EQUALS
RTE1 EQUALS
S3435LOC EQUALS
BNKSUM 36
BANK 37
P20S EQUALS
BODYATT EQUALS
RENDEZ EQUALS
SERVICES EQUALS
P11TWO EQUALS
CDHTAG3 EQUALS
BNKSUM 37
BANK 40
PINSUPER EQUALS
# Page 34
SELFSUPR EQUALS
PINBALL1 EQUALS
R36CM1 EQUALS
BNKSUM 40
BANK 41
PINBALL2 EQUALS
R36LM EQUALS
BNKSUM 41
BANK 42
SBAND EQUALS
PINBALL3 EQUALS
EXTVBS EQUALS
R36LM1 EQUALS
BNKSUM 42
BANK 43
SELFCHEC EQUALS
EXTVERBS EQUALS
BNKSUM 43
HI6ZEROS EQUALS ZEROVECS # ZERO VECTOR ALWAYS IN HIGH MEMORY
LO6ZEROS EQUALS ZEROVEC # ZERO VECTOR ALWAYS IN LOW MEMORY
HIDPHALF EQUALS UNITX
LODPHALF EQUALS XUNIT
HIDP1/4 EQUALS DP1/4TH
LODP1/4 EQUALS D1/4 # 2DEC .25
HIUNITX EQUALS UNITX
HIUNITY EQUALS UNITY
HIUNITZ EQUALS UNITZ
LOUNITX EQUALS XUNIT # 2DEC .5
LOUNITY EQUALS YUNIT # 2DEC 0
LOUNITZ EQUALS ZUNIT # 2DEC 0
3/4LOWDP EQUALS 3/4 # 2DEC 3.0 B-2
SBANK= LOWSUPER
# ROPE SPECIFIC ASSIGNS OBVIATING NEED TO CHECK COMPUTER FLAG IN DETVRUZVING INTEGRATION AREA ENTRIES
OTHPREC EQUALS LEMPREC
ATOPOTH EQUALS ATOPLEM
ATOPTHIS EQUALS ATOPCSM
MOONTHIS EQUALS CMOONFLG
# Page 35
MOONOTH EQUALS LMOONFLG
MOVATHIS EQUALS MOVEACSM
STATEST EQUALS V83CALL # * TEMPORARY
THISPREC EQUALS CSMPREC
THISAXIS = UNITX
ERASID EQUALS LOW10 # DOWNLINK ERASABLE DUMP ID
DELAYNUM EQUALS THREE
#***************************************************************************************************************
# THE FOLLOWING ECADRS ARE DEFINED TO FACILITATE EBANK SWITCHING. THEY ALSO MAKE IT EASIER FOR
# ERASABLE CONTROL TO REARRANGE ERASABLE MEMORY WITHOUT DISRUPTING THE PROGRAMS WHICH SET EBANKS.
# PRIOR TO ROPE RELEASE FIXED MEMORY CAN BE SAVED BY SETTING EACH EBXXXX =EBANKX (X=4,5,6,7).EBANKX OF COURSE
# WILL BE THE BANK WHERE THE ERASABLES REFERENCED IN EBXXXX WILL BE STORED.
BANK 7
EBANK= MARKDOWN
EBMARKDO ECADR MARKDOWN
EBANK= MRKBUF1
EBMRKBUF ECADR MRKBUF1
BANK 24
EBANK= DVCNTR
EBDVCNTR ECADR DVCNTR
EBANK= P40TMP
EBP40TMP ECADR P40TMP
BANK 34
EBANK= DVCNTR
EBDVCNT ECADR DVCNTR
EBANK= QPLACES
EBQPLACE ECADR QPLACES
BANK 37
EBANK= RN1
EBRN1 ECADR RN1
#***************************************************************************************************************
# Page 36
# *** END OF MAIN PROGRAM ***

View File

@ -1,683 +0,0 @@
# Copyright: Public domain.
# Filename: TIME_OF_FREE_FALL.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1373-1388
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
# from the Colossus249/ file of the same
# name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1373
# THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
# KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE AND 1/SQRT(MU) AT THE
# APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
# EARTH ORIGIN POSITION -29 METERS
# VELOCITY -7 METERS/CENTISECOND
# 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
# MOON ORIGIN POSITION -27 METERS
# VELOCITY -5 METERS/CENTISECONDS
# 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
# ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
# THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
# LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
# THE USER MUST STORE THE STATE VECTOR IN RONE, VONE AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
# AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
# THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
# PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
# RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
#
# THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
#
# BELOW E: IS USED FOR EARTH ORIGIN SCALE
# M: IS USED FOR MOON ORIGIN SCALE
#TFFSW = 119D # BIT1 0 = CALCTFF 1 = CALCTPER
TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
#RPER = 14D # PERIGEE RADIUS M E: (-29) M: (-27)
TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
#SDELF/2 # SIN(THETA) /2
CDELF/2 = 14D # COS(THETA) /2
#RAPO = 16D # APOGEE RADIUS M E: (-29) M: (-27)
NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
# M: (-27+NR)
RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
# M: (-20-2 NA)
TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
# M: (-36+2 NR)
TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
# M: (-27+NR)
TFFX = 34D #
TFFTEM = 36D # TEMPORARY
# Page 1374
# REGISTERS S1, S2 ARE UNTOUCHED BY ANY TFF SUBROUTINE
# INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
# LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
# SUBROUTINES.
# -NR C(X1) = NORM COUNT OF RMAG
# -NA C(X2)= NORM COUNT OF SQRT(ABS(ALFA))
# Page 1375
# SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL
# MOD BY: RR BAIRNSFATHER
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
# MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
# FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
# SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
# THE EQUATIONS ARE:
# - - -
# H = RN*VN ANGULAR MOMENTUM
# - -
# LCP = H.H / MU SEMI LATUS RECTUM
# - -
# ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
# AND ALFA IS POS FOR ELLIPTIC ORBITS
# 0 FOR PARABOLIC ORBITS
# NEG FOR HYPERBOLIC ORBITS.
# SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
# CALLING SEQUENCE:
# TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
# 1/SQRT(MU). THE PROGRAM WILL SAVE IN TFF/RTMU . THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
# ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
# VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
# TFF ROUTINES.
# ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
# TO SPECIFY MU: DLOAD CALL # IF MU ALREADY STORED: CALL
# YOURMU # 1/RTMU E:(17) M:(14) TFFCONMU
# TFFCONIC
# PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
# SUBROUTINES CALLED: NONE
# NORMAL EXIT MODES: RVQ
# ALARMS: NONE
# OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
# RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
# NRMAG E:(-29+NR) M RMAG, NORMALIZED
# M:(-27+NR)
# X1 -NR, NORM COUNT
# TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC
# M:(-36+2NR)
# TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
# TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY,NORMLIZED. FOR VGAMCALC
# TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
# M:(24-NR)
# TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
# M:(9+NA)
# Page 1376
# X2 -NA, NORM COUNT
# TFF1/ALF E: (-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
# M: (-20-2NA)
# PUSHLOC AT PDL+0
# THE FOLLOWING IS STORED IN GENERAL ERASABLE
# VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
# ERASABLE INITIALIZATION REQUIRED:
# RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
# VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
# TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
# DEBRIS: QPRET. PDL+0 ... PDL+3
#
BANK 33
SETLOC TOF-FF
BANK
COUNT* $$/TFF
TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E: (17) M: (14)
TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
RONE # SAVED RN. M E: (-29) M: (-27)
PDDL # UR/2 TO PDL+0, +5
36D # MAGNITUDE
STORE RMAG1 # M E:(-29) M:(-27)
NORM
X1 # -NR
STOVL NRMAG # RMAG M E: (-29+NR) M: (-27+NR)
VONE # SAVED VN. M/CS E: (-7) M: (-5)
VXSC
TFF/RTMU # E:(17) M:(14)
STORE VONE' # VN/SQRT(MU) E: (10) M: (9)
VXSC VXV
NRMAG # E: (-29+NR) M: (-27+NR)
# UR/2 FROM PDL
VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
# SAVE ALSO FOR VGAMCALC
TFF1/4
DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
VONE' # SAVED VN. E:(10) M:(9)
VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
# SAVE FOR VGAMCALC
SR* DAD
# Page 1377
0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
STADR
# 2/RMAG FROM PDL+2
STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
0 -6,1
ABS SQRT # E:(10) M:(9)
NORM
X2 # X2 = -NA
STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
DSQ SIGN # NOT SO ACCURATE, BUT OK
# ALFA FROM PDL+2 E:(20) M:(18)
BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
+2
TFF1/4
+2 STORE TFF1/ALF # 1/ALFA E:(-22-2 NA) M:(-20-2 NA)
DUMPCNIC RVQ
# 39 W
# Page 1378
# SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
# ALSO IMPROVE ACCURACY OF RAPO.
# FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
# APOGEE RADIUS FOR A GENERAL CONIC.
# PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
# RP = P /(1+E) RA = (1+E) / ALFA
# WHERE 2
# E = 1 - P ALFA
# IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
# 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
# 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
# 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
# THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
# CALLING SEQUENCE: CALL
# TFFRP/RA
# PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
# C(MPAC) UNSPECIFIED
# SUBROUTINES CALLED: NONE
# NORMAL EXIT MODE: RVQ
# IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
# OTHERWISE, RAPO = POSMAX.
# ALARMS: NONE
# OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
# RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
# RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
# PUSHLOC AT PDL+0
# ERASABLE INITIALIZATION REQUIRED:
# TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
# M:(24-NR)
# TFFNP E: (-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
# M: (-36+2NR)
# X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
# X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
# DEBRIS: QPRET, PDL+0 ... PDL+1
# Page 1379
RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
TFFRP/RA DLOAD DMP
TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
SR* DCOMP # ALFA P (-12+NR)
0 -8D,1 # ALFA P (-4)
DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
# (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
DP2(-4)
SQRT DAD # E SQ = (1- P ALFA) (-4)
TFF1/4
PUSH BDDV # (1+E) (-2) TO PDL+0
TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
0,1 # X1=-NR
0 -7,1 # (EFFECTIVE SL)
STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
# (1+E) (-2) FROM PDL+0
DMP BOVB
TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
TCDANZIG # CLEAR OVFIND, IF ON.
BZE SL*
MAXRA # SET POSMAX, IF ALFA=0
0 -5,2 # -5+NA
SL* BOV
0,2
MAXRA # SET POSMAX IF OVFL.
BPL # CONTINUE WITH VALID RAPO.
+3
MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
NEARONE # POSMAX AS A TAG.
+3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
DUMPRPRA RVQ
# 30 W
# Page 1380
# SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL
# MOD BY: RR BAIRNSFATHER
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
# MOD BY: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
# MOD BY: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
# MOD BY: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
# FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
# VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM , SUPPLIED BY THE USER. THE POSITION VECTOR
# RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
# THE EQUATIONS ARE
# Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
# - -
# Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
# Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
# WHERE, IF INBOUND
# NUM = RTERM -RN LEQ +- 2 LCE/ALFA
# DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
# AND, IF OUTBOUND
# NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
# DEN = 2 - ALFA (RTERM + RN) . LEQ +- 2 LCE
# IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
# THEN X = ALFA Z Z
# AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
# EXCEPT IF ALFA PNZ, AND IF TFF NEG,
# THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
# OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
# THEN X = 1/ALFA Z Z
# AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
# WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
# 2 3 2
# 1/3 -X/5 +X /7 -X /9... (X < 1.0)
# CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE
# CALL CALL
# CALCTFF CALCTPER
# C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
# FOR EITHER, E: (-29) M: (-27)
# FOR EITHER, PUSHLOC = PDL+0 , ARBITRARY IF LEQ 8D.
# Page 1381
#
# SUBROUTINES CALLED: T(X), VIA RTB
# NORMAL EXIT MODE: RVQ
# HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
# A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
# B. (THIS OPTION IS NO LONGER USED.)
# C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
# THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
# OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
# TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
# NRTERM E: (-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
# M: (-27+NR)
# TFFTEM E: (-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
# M: (-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
# NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
# RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
# TFFQ1 E:(-16) M:(-15) PDL 14D
# TFFDELQ E:(-16) M:(-15) PDL 10D
# PUSHLOC AT PDL+0
# ERASABLE INITIALIZATION REQUIRED:
# RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
# VONE' E:(+10) M:(+9) VN/SQRT(NU) LEFT BY TFF/CONIC
# RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
# C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
#
# THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
# TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
# NRMAG E: (-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
# M: (-27+NR)
# X1 -NR, NORM COUNT LEFT BY TFFCONIC
# TFFNP E: (-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
# M: (-36+2NR)
# TFFALFA E: (26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
# M: (24-NR)
# TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
# M:(9+NA)
# X2 -NA, NORM COUNT LEFT BY TFFCONIC
# TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
# M:(-20-2NA)
# DEBRIS: QPRET, PDL+0 ... PDL+3
# RTERM E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
# RAPO E:(-29) M:(-27) PDL 16D (=NRTERM)
# RPER E:(-29) M:(-27) PDL 14D (=TFFQ1)
# Page 1382
CALCTPER SETGO # ENTER WITH RPER IN MPAC
TFFSW
+3
CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
TFFSW
+3 STORE RTERM # E: (-29) M: (-27)
SL*
0,1 # X1=-NR
STORE NRTERM # RTERM E: (-29+NR) M: (-27+NR)
DMP BDSU
TFFALFA # ALFA E:(26-NR) M:(24-NR)
TFF1/4
PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
NRTERM # E: (-29+NR) M: (-27+NR)
PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
# E: (-32+NR) M: (-30+NR)
TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
0 -6,1 # X1 = -NR
DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
# RTERM(2-ALFA RTERM) FROM PDL+2
# E: (-32+NR) M: (-30+NR)
SR* # LEAVE E: (-32) M: (-30)
0,1 # X1 = -NR
BOFF DLOAD # CHECK TFF / TPER SWITCH
TFFSW
+2 # IF TFF, CONTINUE
TFFZEROS # IF TPER, SET Q2 = 0
+2 BMN SQRT # E: (-16) M: (-15)
MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
# RESET PDL, SET TFF=POSMAX, AND EXIT.
DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
TCDANZIG # ANY PORT IN A STORM.
STOVL TFFTEM # Q2 E: (-16) M: (-15)
VONE' # VN/SQRT(MU) E: (10) M: (9)
DOT SL3
RONE # SAVED RN. E: (-29) M: (-27)
STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
# E: (-16) M: (-15)
BMN BDSU
INBOUND # USE ALTERNATE Z
TFFTEM # Q2 E: (-16) M: (-15)
# OUTBOUND Z CALC CONTINUES HERE
STODL TFFX # NUM=Q2-Q1 E: (-16) M: (-15)
TFFALFA # ALFA E: (26-NR) M: (24-NR)
DMP BDSU
# Page 1383
NRMAG # RMAG E: (-29+NR) M: (-27+NR)
# (2-RTERM ALFA) (-3) FROM PDL+0
SAVEDEN PUSH ABS # DEN TO PDL+0 E: (-3) OR (-16)
# M: (-3) OR (-15)
DAD BOV # INDETERMINANCY TEST
LIM(-22) # =1.0-B(-22)
TFFXTEST # GO IF DEN >/= B(-22)
DLOAD PDDL # SET DEN=0 OTHERWISE
TFFZEROS
# XCH ZERO WITH PDL+0
DLOAD DCOMP
TFFALFA # ALFA E: (26-NR) M:( 24-NR)
BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
# Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
DUMPTFF1 RVQ # RETURN TFF =0
# INBOUND Z CALC CONTINUES HERE
INBOUND DLOAD # RESET PDL+0
DLOAD DSU # ALTERNATE Z CALC
RTERM # E: (-29) M: (-27)
RMAG1 # E: (-29) M: (-27)
STODL TFFX # NUM=RTERM-RN E: (-29) M: (-27)
TFFTEM # Q2 E: (-16) M: (-15)
DAD GOTO
TFFQ1 # Q1 E: (-16) M: (-15)
SAVEDEN # DEN = Q2+Q1 E: (-16) M: (-15)
TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2)) E: (-3) OR (-16)
# M: (-3) OR (-15)
DP(-22) # RESTORE ABS(DEN) TO MPAC
TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
DMP SR*
TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
0 -3,2 # X2=-NA
DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
# M:(-3) OR (-15)
# ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
# M:(-3) OR (-15)
DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
TFFX # NUM E: (-16) OR (-29) M:(-15) OR (-27)
TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
# OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
DDV STADR
# DEN FROM PDL+0 E: (-3) OR (-16)
# M: (-3) OR (-15)
STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
# Page 1384
# E: (-13) M: (-12)
PUSH DSQ # Z TO PDL+0
PUSH DMP # Z SQ TO PDL+2 E: (-26) M: (-24)
TFFNP # LC P E: (-38+2NR) M: (-36+2NR)
SL SIGN
5
TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
STODL TFFTEM # P ZSQ E: (-59+2NR) M: (-55+2NR)
# (ARG IS USED IN TFF/TRIG)
# ZSQ FROM PDL+2 E: (-26) M: (-24)
PUSH DMP # RESTORE PUSH LOC
TFFALFA # ALFA E: (26-NR) M: (24-NR)
SL*
0,1 # X1=-NR
STORE TFFX # X
RTB DMP
T(X) # POLY
# ZSQ FROM PDL+2 E: (-26) M: (-24)
SR2 BDSU # 2 ZSQ T(X) E: (-29) M: (-27)
RTERM # RTERM E: (-29) M: (-27)
DAD DMP
RMAG1 # E: (-29) M: (-27)
# Z FROM PDL+0 E: (-13) M: (-12)
SR3 BPL # TFF SQRT(MU) E: (-45) M: (-42)
ENDTFF # (NO PUSH UP)
PUSH SIGN # TFF SQRT(MU) TO PDL+0
TFFQ1 # Q1 FOR GONEPAST TEST
BPL DLOAD # GONE PAST ?
NEGTFF # YES. TFF < 0 .
TFF1/ALF # 1/ALFA E: (-22-2NA) M: (-20-2NA)
DCOMP BPL # ALFA > 0 ?
NEGTFF # NO. TFF IS NEGATIVE.
# CORRECT FOR ORBITAL PERIOD.
DCOMP # YES. CORRECT FOR ORB PERIOD.
DMP DDV
PI/16 # 2 PI (-5)
TFFRTALF # SQRT(ALFA) E: (10+NA) M: (9+NA)
SL* SL*
0 -4,2 # X2=-NA
0 -4,2
SL* DAD
0,2
# TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
TFF/RTMU # E: (17) M: (14)
MAXTFF # SET POSMAX IN OVFL.
DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
# Page 1385
NEGTFF DLOAD
# TFF SQRT(MU) FROM PDL+0, NEGATIVE.
GOTO
ENDTFF
MAXTFF1 DLOAD # RESET PDL
MAXTFF DLOAD RVQ
NEARONE
# TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
# NUM FROM TFFX. E: (-16) OR (-29)
# M: (-15) OR (-27)
TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
BDDV PUSH # TEMP SAVE D/N IN PDL+0
# DEN FROM PDL+0 E:(-3)/( 16) M:(-3)/(-15)
# N/D TO PDL+0 E: (11) M: (10)
TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
TFFTEM # Q2 E: (-16) M: (-15)
TFFQ1 # Q1 E: (-16) M: (-15)
STODL TFFDELQ # Q2-Q1 E: (-16) M: (-15)
# D/N FROM PDL+0
STADR
STORE TFFTEM # D/N E: (11) M: (10)
DMP SL*
TFF1/ALF # 1/ALFA E: (-22-2NA) M: (-20-2NA)
0,2 # 1/ALFA Z E: (-11-NA) M: (-10-NA)
PUSH DMP # TO PDL+0
TFFTEM # 1/Z E: (11) M: (10)
SL* BOVB
0,2 # X2= -NA
SIGNMPAC # IN CASE X= 1.0, CONTINUE
STORE TFFX # X=1/ALFA ZSQ
RTB DMP
T(X) # POLY
TFFX
SR3 DSU
DP2(-3)
DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA)
# M:(-14-NA)
# 1/ALFA Z FROM PDL+0 E:(-11-NA)
# M:(-10-NA)
DLOAD DMP # GET SIGN FOR SDELF
TFFTEM # 1/Z E: (11) M: (10)
RMAG1 # E: (-29) M: (-27)
SL2 DAD
TFFQ1 # Q1 E: (-16) M: (-15)
STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15
TFFNP # LC P E: (-38+2NR) M: (-36+2NR)
DMP SL* # CALC FOR ARG FOR TFF/TRIG.
# Page 1386
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
1,2 # X2=-NA
SIGN SL*
TFFTEM # AFFIX SIGN FOR SDELF
0,2
STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
# (ARG FOR USE IN TFF/TRIG)
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
SQRT DMP
PI/16 # PI (-4)
DAD
# 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
# M:(-14-NA)
SL* DSU
0 -1,2
TFFDELQ # Q2-Q1 E: (-16) M: (-15)
DMP SL*
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
0 -3,2
SL* GOTO
0 -4,2
ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
# Page 1387
# PROGRAM NAME: T(X) DATE: 01.17.67
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL
# MOD BY: RR BAIRNSFATHER
# FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
# CALCTPER TO APPROXIMATE THE SERIES
# 2 3
# 1/3 -X/5 +X /7 -X /9 ...
# WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
# X = 1/(ALFA Z Z ) IF ALFA Z Z G 1
# ALSO X IS NEG FOR HYPERBOLIC ORBITS
# X = 0 FOR PARABOLIC ORBITS
# X IS POSITIVE FOR ELLIPTIC ORBITS
# FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
# DEVIATION FROM THE SERIES OF 2 E-5 (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
# MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1). )
# CALLING SEQUENCE: RTB
# T(X)
# C(MPAC) = X
# SUBROUTINE CALLED: NONE
# NORMAL EXIT MODE: TC DANZIG
# ALARMS: NONE
# OUTPUT: C(MPAC) = T(X)
# ERASABLE INITIALIZATION REQUIRED:
# C(MPAC) = X
# DEBRIS: NONE
T(X) TC POLY
DEC 4 # N-1
2DEC 3.333333333 E-1
2DEC* -1.999819135 E-1*
2DEC* 1.418148467 E-1*
2DEC* -1.01310997 E-1*
2DEC* 5.609004986 E-2*
2DEC* -1.536156925 E-2*
ENDT(X) TC DANZIG
TCDANZIG = ENDT(X)
# Page 1388
# TFF CONSTANTS
BANK 32
SETLOC TOF-FF1
BANK
# # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
#MUE = 3.990 815 471 E10 # M CUBE/CS SQ
#RTMUE = 1.997702549 E5 B-18* # MODIFIED EARTH MU
1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU
# # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
#MUM = 4.902 778 E8 # M CUBE /CS SQ
#RTMUM 2DEC* 2.21422176 E4 B-18*
PI/16 2DEC 3.141592653 B-4
LIM(-22) 2OCT 3777737700 # 1.0 -B(-22)
DP(-22) 2OCT 0000000100 # B(-22)
DP2(-3) 2DEC 1 B-3
DP2(-4) 2DEC 1 B-4 # 1/16
# RPAD1 2DEC 6373338 B-29 # M (-29) =20 909 901.57 FT
RPAD1 = RPAD
R300K 2DEC 6464778 B-29 # (-29) M
NEARONE 2DEC .999999999
TFFZEROS EQUALS HI6ZEROS
TFF1/4 EQUALS HIDP1/4

View File

@ -1,552 +0,0 @@
# Copyright: Public domain.
# Filename: TPI_SEARCH.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 551-561
# Mod history: 2009-05-15 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrections: On p. 551, "SETLOC P17S" -> P17S1.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 551
# TPI SEARCH
# PROGRAM DESCRIPTION S17.1 AND S17.2
# FUNCTIONAL DESCRIPTION
# THE TPI SEARCH ROUTINE DETERMINES THE MINIMUM TOTAL VELOCITY TRANSFER TRAJECTORY FROM A GIVEN TPI
# MANEUVER TIME WITHIN THE CONSTRAINT OF A SAFE PERICENTER. THIS VELOCITY IS THE SUM OF THE IMPULSIVE VELOCITIES
# FOR THE TPI AND TPF MANEUVERS.
# THE S17.1 ROUTINE EXTRAPOLATES THE STATE VECTORS OF BOTH VEHICLES TO THE TPI TIME AND COMPUTES THE
# RELATIVE PHASE ANGLE BETWEEN THE VEHICLES, THE ALTITUDE DIFFERENCE(I.E. THE MAGNITUDE DIFFERENCE OF THE
# POSITION VECTORS) AND SELECTS A SEARCH SECTOR BASED ON THE SIGN OF THE ALTITUDE DIFFERENCE.
# THE S17.2 ROUTINE FURTHER DEFINES THE SEARCH SECTOR BY COMPUTING ANGULAR LIMITS AND USES THE TIME THETA
# SUBROUTINE TO COMPUTE THE SEARCH START AND END TIMES. THE SEARCH IS THEN MADE IN AN ITERATIVE LOOP USING THE
# LAMBERT SUBROUTINE TO COMPUTE THE VELOCITIES REQUIRED AT TPI TIME AND AT TPF TIME. EXIT FROM THE SEARCH LOOP
# IS MADE WHEN SOLUTION CRITERIA ARE MET (NORMAL EXIT) OR AS SOON AS IT IS EVIDENT THAT NO SOLUTION EXISTS IN
# THE SECTOR SEARCHED.
# CALLING SEQUENCE
# BOTH ROUTINES ARE CALLED IN INTERPRETIVE CODE AND RETURN VIA QPRET. S17.1 HAS ONLY A NORMAL EXIT.
# S17.2 RETURNS VIA QPRET FOR NORMAL EXIT AND TO ALARUMS FOR ERROR EXIT.
# SUBROUTINES CALLED
#
# CSMCONIC
# LEMCONIC
# TIMETHET
# INITVEL
BANK 36
SETLOC P17S1
BANK
COUNT 36/TPI
EBANK= RACT3
# **** TEMPORARY ****
HPE 2DEC 157420.0 B-29 # EARTH'S MIN. PERICENTER ALTITUDE 85 N.M.
HPL 2DEC 10668.0213 B-29 # MOON:S MIN. PERICENTER ALTITUDE 35000FT
CDSEC 2DEC 40000
CLSEC 2DEC 15000
PIINVERS 2DEC .3183098862
SEC1THET 2DEC .1944444444
# Page 552
SEC2THET 2DEC .9166666667
MANYFEET 2DEC -1.0 B-2
LIMVEL 2DEC .6096 E-2 B-7 # 2FPS
DFTMOON 2DEC .1524 E3 B-29 # 500 FEET
DP-.002 2DEC 0.002
SETLOC P17S
BANK
S17.1 STQ DLOAD
NORMEX
TTPI
STCALL TDEC1 # ADVANCE PASSIVE VEHICLE TO TPI
LEMCONIC
CALL
LEMSTORE
DLOAD
TTPI
STCALL TDEC1 # ADVANCE ACTIVE VEHICLE TO TPI
CSMCONIC
CALL
CSMSTORE
VLOAD
RACT3
ABVAL PDVL # /RA/ 0D PL 2D
RPASS3
UNIT PDDL # UNIT RP 0D PL 6D
BDSU SET
36D # /RP/ -/RA/
KFLAG # OFF = +
BMN CLEAR
+2
KFLAG # ON = -
STOVL DELHITE
0D
VXV UNIT
VPASS3
STOVL E2 # ALMOST IT SAVE FOR 17.2
RACT3
PUSH VPROJ
E2
VSL2 BVSU # RPA
UNIT DOT
0D
SL1 ACOS
PDVL
VXV DOT
# Page 553
RACT3
E2
PDDL SIGN
STADR
STODL THETZERO # CENTRAL ANGLE
X1
STCALL XRS # SAVE INDICES FOR FURTHER USE
NORMEX # += ACTIVE AHEAD -= ACTIVE BEHIND
S17.2 STQ VLOAD # COMPUTE SEARCH SECTOR LIMITS
QTEMP
RACT3
UNIT DOT
E2
ABS SQRT
SL1 DAD
DP-.002 # ADD .002 RADIANS TO IT
BON DCOMP # GIVES CORRECT SINE, COSINE MUST BE
KFLAG # COMP. ADD .5 FOR ANGLE
+1
# PHI(0)=180-(-(THETAZERO +K5IT)), PHI(I)=180-(-THETAZERO+K2IT))
# SIN(180-ALPHA)=SIN(ALPHA) ETC
DMP SETPD
PIINVERS # REVOLUTIONARY HERES TWO IT
0D
PUSH DSU
THETZERO
STORE IT # PHI(I) , -(THETZERO + K2IT)
PDDL PUSH
SR1 DAD
DAD PUSH # PHI(0) , -(THETZERO + K5IT)
SIN SET
RVSW
STODL SNTH
COS BMN
+2
DCOMP
STODL CSTH
XRS
STOVL X1
RPASS3
VSR*
0,2
STOVL RVEC
VPASS3
VSR*
0,2
STCALL VVEC
TIMETHET
DLOAD # SAVE START TIME AND GET END TIME
T
# Page 554
STORE TF
STODL TFO
IT
PUSH SIN
STODL SNTH
COS BMN
+2
DCOMP
STORE CSTH
LXA,1 CALL
XRS
TIMETHET
# INITIALIZE LOOP
DLOAD CLEAR
T
ITSWICH
STODL TFI # SAVE TIME FOR LOOP TEST
DPPOSMAX
STODL DELVEE
MANYFEET
STODL HP
SEC1THET # 70 DEGREES
BON DLOAD
KFLAG
+2
SEC2THET # 330 DEGREES
STCALL THETL
CONCAUL
BIS DLOAD SR1
CSTH
STODL COSTH
SNTH
SR1
STCALL SINTH # GET 4 QUADRANT THETA
ARCTRIG
BPL DAD
+2
DPPOSMAX # PUT THETA BETWEEN 0,1
BDSU PDDL
THETL
TF
DSU SIGN # FAST TIMES
TFI
BMN
RNGETEST # TIME MUST HAVE A STOP
# ADVANCE PASSIVE FOR TARGET VECTOR
CONCAUL DLOAD
TTPI
DAD BON
TF
# Page 555
AVFLAG
ADVCSM
STCALL TDEC1
LEMCONIC
GOTO
JUNCT3
ADVCSM STCALL TDEC1
CSMCONIC
# SAVE BACK VALUES OF HP AND DELVEE
JUNCT3 VLOAD
VATT
STOVL VPASS4
RATT
STORE RPASS4
STODL RTARG
TF
STODL DELLT4
HP
STODL HPO
DELVEE
STODL DELVEO
# PREPARE FOR LAMBERT
TTPI
STODL INTIME
XRS
STODL RTX1
HI6ZEROS
SETPD PDDL
0D
EPSFOUR
PDVL
RACT3
STOVL RINIT
VACT3
STCALL VINIT
INITVEL
# COMPUTE H ET CETERA
VLOAD VSU
VTPRIME
VPASS4
ABVAL PUSH
STOVL RELDELV # /V2-VP(TPI+TF)/
DELVEET3 # V1-VA
ABVAL # /V1-VA/
STORE MAGVTPI
DAD STADR
STODL DELVEE
XRS
STOVL X1
VIPRIME
# Page 556
VSR*
0,2
STOVL VVEC
RACT3
VSR*
0,2
STCALL RVEC
PERIAPO
LXA,2 DLOAD
XRS +1
SL*
0,2
STORE HP
# ITSWICH DENOTES INTERPOLATION--SOLUTION ACCEPTANCE IS FORCED
BON DLOAD
ITSWICH
ENDEN
HPERMIN
DSU BMN
HP
HALFSAFE
PDDL DSU # WAS PERICENTER ALT SAFE
HPERMIN
HPO
BMN DSU # (HPLIM-HPO)-(HPLIM-HP)=HP-HPO
INTERP # SOLUTION AT HAND
BMN DLOAD
ALARUMS # IT'S GETTING WORSE - SOUND THE ALARM
CDSEC
JUNCT1 BOFF DCOMP # OFF IS PLUS ON IS MINUS
KFLAG
+1
STORE DELTEE
JUNCT2 DLOAD DAD
DELTEE
TF
STCALL TF
BIS # RECYCLE
INTERP SET DSU # HP-HPO
ITSWICH
NORM PDDL
X1
DFTMOON
DAD DSU
HPERMIN
HP
NORM SR1
X2
XSU,2 DDV
X1
# Page 557
DMP SR*
DELTEE
0 -1,2
STCALL DELTEE
JUNCT2
HALFSAFE PDDL DSU # SAVE HP-HPLIM FOR POSSIBLE
DELVEE
DELVEO # SAVE THIS TOO
PUSH ABS
DSU BMN
LIMVEL # 2 FT PS
ENDEN
DLOAD DSU
HPERMIN
HPO
PDDL
BMN DLOAD
LRGRDVO
BPL DLOAD
INTERP
DELTEE
SR1 DCOMP
STCALL DELTEE
JUNCT2
LRGRDVO DLOAD
BMN DLOAD
JUNCT2
CLSEC
GOTO
JUNCT1
# TIME RAN OUT ASSUME SOLUTION IF SAVE PERICENTER
RNGETEST DLOAD DSU
HP
HPERMIN
BMN DLOAD
ALARUMS
TF
DSU
DELTEE
STORE TF # TIME OF SOLUTION
ENDEN VLOAD
VTPRIME
DOT PDDL # SG2 WITH MAGNITUDE
RPASS4
RELDELV
SIGN STADR # NOW SIGN(RELDELV)=SIGN(SG2)
STCALL RELDELV
TRANSANG # COMPUTE OMEGA T , CENTRAL ANGLE
VLOAD DOT
RACT3
# Page 558
VIPRIME # SG1
SIGN BPL # IF POSITIVE THEN SG1 = SG2 OTHERWISE
RELDELV
USEKAY # SIGN(SG2-SG1)=SIGN(SG2)=SIGN(RELDELV)
SLOAD DCOMP
DECTWO
SIGN BPL
RELDELV
NEXUS
DCOMP GOTO
USEKAY +4
USEKAY SLOAD BON
DECTWO
KFLAG
NEXUS
DSU
P21ONENN
NEXUS STODL NN1
HP
STCALL POSTTPI
QTEMP
BANK 07
SETLOC XANG
BANK
COUNT 07/XANG
# CENTRAL ANGLE SUBROUTINE
# THIS SUBROUTINE COMPUTES THE CENTRAL ANGLE OF TRAVEL OF THE
# PASSIVE VEHICLE DURING THE TRANSFER.
TRANSANG STQ SETPD
SUBEXIT
0
LXA,1 LXA,2
XRS
XRS +1
VLOAD VSR*
VPASS4
0,2
STODL* VVEC
MUTABLE +2,1
PDVL VSR* # SQRT MU (+18 OR +15) 00D
RPASS4
0,2
ABVAL PDDL* # MAGNITUDE OF R (+29 OR +27) 02D
MUTABLE,1
PDVL VSQ # 1/MU (+34 OR +28) 04D
VVEC
NORM DMPR # PUSH LIST AT 02D
X1
# Page 559
DMP SRR*
02D
0 -3,1
BDSU # R V**/MU (+6)
D1/32
NORM PDDL
X1 # (2 - R V**/MU) (+6-N)
SR1R DDV # MAGNITUDE OF R (+30 OR +28)
SL* PUSH # R/(2 - R V**/MU) (+29 OR +27)02D
0 -5,1
SR1 SQRT
DMP
NORM PDDL # ASUBP*** 00D
X1
SR1 DDV
DMP SL*
TF
0,1
PDDL NORM
2PISC
X1
PDDL DDV
SL*
0 -3,1 # CENTANG = (SQRT(MU/ASUP***)TF)
STCALL CENTANG # IN REVOLUTIONS B-0
SUBEXIT
BANK 35
SETLOC P17S1
BANK
COUNT 35/P17
# TPI SEARCH DISPLAY ROUTNE
P17 TC AVFLAGA # AVFLAG = CSM , SET TRACK + UPDATE FLAGS
TC P17.1
P77 TC AVFLAGP # AVFLAG = LEM , SET TRACK + UPDATE FLAGS
P17.1 TC P20FLGON # SET UPDATE FLAG
CAF V06N37 # DISPLAY TTPI TIME
TC VNPOOH
TC INTPRET
CLEAR CALL
UPDATFLG
S17.1 # UPDATE STATE VECTORS TO TTPI
SET AXT,1
UPDATFLG
DEC 2 # DELTA H = 2 K POSITIVE , KFLAG OFF
BOFF AXT,1
KFLAG
+2
DEC 1 # DELTA H = 1 K NEGATIVE , KFLAG ON
# Page 560
SXA,1 EXIT
OPTION2
CAF V06N72 # DISPLAY PHI , DELTA H , SEARCH OPTION K
TC VNCOMP17
TC INTPRET
CLEAR SET
UPDATFLG
KFLAG
SLOAD DSU
OPTION2 # RESET KFLAG ON FOR OPTION =1
P21ONENN # OFF FOR OPTION =2
BHIZ CLEAR
+2
KFLAG
SLOAD BHIZ
XRS +1
+4
DLOAD GOTO
HPL
P17.2
DLOAD
HPE
P17.2 STCALL HPERMIN
S17.2
SET EXIT
UPDATFLG
P17.3 CAF V06N58 # DISPLAY DELTA VTPI , DELTA VTPF , AND H
TC VNCOMP17
CAF V06N55 # DISPLAY PERICENTER CODE AND CENTRAL ANG.
TC BANKCALL
CADR GOFLASHR
TC GOTOPOOH # TERMINATE PROGRAM
TC GOTOPOOH # END PROGRAM
TC P17.1 # RECYCLE WITH NEW TTPI OR SEARCH OPTION
CAF TWO # BLANK R2
TC BLANKET
TCF ENDOFJOB
EBANK= RTRN
VNCOMP17 EXTEND
QXCH QSAVED
TS VERBNOUN
CA VERBNOUN
TCR BANKCALL
CADR GOFLASH
TC -3 # TERMINATE ILLEGAL REDISPLAY
TC QSAVED # PROCEED
CS MPAC # RECYCLE WITH NEW TPI TIME
AD BIT6 # OR PROCEED WITH NEW SEARCH OPTION
EXTEND
# Page 561
BZF P17.1
TC VNCOMP17 +3
ALARUMS SET EXIT
UPDATFLG
TC ALARM
OCT 00124 # NO SAFE PERICENTER IN THIS SECTOR
CAF V05N09
TC VNCOMP17
TC GOTOPOOH # PROCEED ILLEGAL TERMINATE PROGRAM
V06N72 VN 0672

View File

@ -1,784 +0,0 @@
# Copyright: Public domain.
# Filename: TVCDAPS.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 961-978
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrections: Eliminated an extraneous EXTEND,
# added a missing instruction to PFORWARD.
# 2000-05-21 RSB Wrong opcode was used with DELBRTMP and
# DELBRTMP +1 operands in 4 places. Corrected
# an MP operation in 2CASFLTR.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 961
# PROGRAM NAME....TVCDAP, CONSISTING OF PITCHDAP, YAWDAP, ETC.
# LOG SECTION...TVCDAPS SUBROUTINE...DAPCSM
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
# FUNCTIONAL DESCRIPTION....
# SELF-PERPETUATING T5 TASKS WHICH GENERATE THE COMMAND SIGNALS
# FOR THE PITCH AND YAW SPS GIMBAL ACTUATORS DURING TVC (SPS) BURNS,
# IN RESPONSE TO BODY-AXIS RATE COMMANDS FROM CROSS-PRODUCT STEERING
# (S40.8). IF NO STEERING (IMPULSIVE BURNS) MAINTAINS ATTITUDE-HOLD
# ABOUT THE REFERENCE (INITIAL) DIRECTIONS (ZERO RATE COMMANDS).
# THE PITCH AND YAW LOOPS ARE SEPARATE, BUT STRUCTURED IDENTICALLY.
# EACH ATTITUDE-RATE LOOP INCLUDES GIMBAL ANGLE RATE DERIVATION,
# GIMBAL/BODY AXIS TRANSFORMATION, BODY-AXIS ATTITUDE ERROR
# INTEGRATION WITH ERROR LIMITING, THE GENERALIZED 6TH-ORDER FILTER
# FOR CSM OR CSM/LM OPERATION. A FILTER OUTPUT LIMITER.
# CG-OFFSET TRACKER FILTER, AND THE CG-TRACKER MINOR LOOP.
# THE DAPS ARE CYCLIC, CALLING EACH OTHER AT 1/2 THE DAP SAMPLE
# TIME, AS DETERMINED BY T5TVCDT. THE ACTUATOR COMMANDS ARE
# REGENERATED AS ANALOG VOLTAGES BY THE OPTICS ERROR COUNTERS, WHICH
# TRANSMIT THE SIGNAL TO THE ACTUATOR SERVOS WHEN THERE IS PROPER CDU
# MODING.
# CALLING SEQUENCE.... (TYPICALLY)
# T5 CALL OF TVCDAPON (TVCINITIALIZE) BY DOTVCON (P40)
# T5 CALL OF DAPINIT (TVCDAPS) BY TVCINIT4 (TVCINITIALIZE)
# T5 CALL OF PITCHDAP BY DAPINIT
# T5 CALL OF YAWDAP BY PITCHDAP
# T5 CALL OF PITCHDAP BY YAWDAP
# ETC.
# (AUTOMATIC SEQUENCING FROM TVCDAPON)
# NORMAL EXIT MODE....RESUME
# ALARM OR ABORT EXIT MODES....NONE
# SUBROUTINES CALLED....
# HACK FOR STROKE TEST (V68) WAVEFORM GENERATION
# PCOPY, YCOPY FOR COPY-CYCLES (USED ALSO BY TVC RESTART PACKAGE)
# DAPINIT FOR INITIAL CDUS FOR RATE MEASUREMENTS
# ERRORLIM, ACTLIM FOR INPUT (ATTITUDE-ERROR INTEGRATION) AND
# OUTPUT (ACTUATOR COMMAND) LIMITING, COMMON TO PITCH AND
# YAW DAPS
# FWDFLTR (INCLUDING OPTVARK) AND PRECOMP, TO COMPUTE FILTER
# OUTPUTS AND STORAGE VALUES
# RESUME
# Page 962
# OTHER INTERFACES....
# S40.8 CROSS-PRODUCT STEERING FOR BODY AXIS RATE COMMANDS OMEGAY,ZC
# S40.15 FOR THE INITIAL DAP GAINS VARK AND 1/CONACC
# TVCEXECUTIVE FOR DAP GAIN UPDATES AND TMC LOOP OPERATIONS
# TVCRESTART PACKAGE FOR TVC RESTART PROTECTION.
# ERASABLE INITIALIZATION REQUIRED....
# PAD-LOAD ERASABLES ( SEE ERASABLE ASSIGNMENTS )
# CONFIGURATION BITS (14, 13) OF DAPDATR1 AS IN R03
# ENGINE-ON BIT (11.13) FOR RESTARTS
# TVCPHASE FOR RESTARTS ( SEE DOTVCON, AND TVCINIT4 )
# T5 BITS (15,14 OF FLAGWRD6) FOR RESTARTS
# MISCELLANEOUS VARIABLES SET UP OR COMPUTED BY TVCDAPON....TVCINIT4,
# INCLUDING THE ZEROING OF TEMPORARIES BY MRCLEAN
# CDUX,Y,Z AND SINCDUX....COSCDUX AS PREPARED BY QUICTRIG (WITH
# UPDATES EVERY 1/2 SECOND)
# ALSO G+N PRIMARY, TVC ENABLE, AND OPTICS ERROR COUNTER ENABLE
# UNLESS BENCH-TESTING.
#
# OUTPUT....
#
# TVCPITCH AND TVCYAW WITH COUNTER RELEASE (11.14 AND 11.13 INCREMEN-
# TAL COMMANDS TO OPTICS ERROR COUNTERS), FILTER NODES, BODY-
# AXIS ATTITUDE ERROR INTEGRATOR, TOTAL ACTUATOR COMMANDS,
# OFFSET-TRACKER-FILTER OUTPUTS, ETC.
# DEBRIS....
# MUCH, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
BANK 17
SETLOC DAPS2
BANK
EBANK= BZERO
COUNT* $$/DAPS
# Page 963
# PITCH TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
PITCHDAP LXCH BANKRUPT # T5 ENTRY, NORMAL OR VIA DAPINIT
EXTEND
QXCH QRUPT
CAF YAWT5 # SET UP T5 CALL FOR YAW AUTOPILOT (LOW-
TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
CAE T5TVCDT
TS TIME5
PSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST
TC HACK # TEST-START OR TEST-IN-PROGRESS
TCF +2 # NO-TEST
TC HACK # TEST-IN-PROGRESS
PCDUDOTS CAE CDUY # COMPUTE CDUYDOT (USED BY PITCH AND YAW)
XCH PCDUYPST
EXTEND
MSU PCDUYPST
TCR RLIMTEST # RATE TEST
TS MCDUYDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
CAE CDUZ # COMPUTE CDUZDOT (USED BY PITCH AND YAW)
XCH PCDUZPST
EXTEND
MSU PCDUZPST
TCR RLIMTEST # RATE TEST
TS MCDUZDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
TCF PINTEGRL
RLIMTEST TS TTMP1 # TEST FOR EXCESSIVE CDU RATES (GREATER
EXTEND # THAN 2.33 DEG IN ONE SAMPLE PERIOD)
MP 1/RTLIM
EXTEND
BZF +3
CAF ZERO
TS TTMP1
CAE TTMP1
TC Q
PINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS PITCH-RATE
DCA PERRB # ERROR, SC.AT B-1 REVS
DXCH ERRBTMP
EXTEND
DCA OMEGAYC
DAS ERRBTMP
# Page 964
CS COSCDUZ # PREPARE BODY-AXIS PITCH RATE, OMEGAYB
EXTEND
MP COSCDUX
DDOUBL
EXTEND
MP MCDUYDOT
DDOUBL
DXCH OMEGAYB
CS MCDUZDOT
EXTEND
MP SINCDUX
DDOUBL
DAS OMEGAYB # (COMPLETED OMEGAYB, SC.AT 1/2TVCDT REVS)
EXTEND # PICK UP -OMEGAYB (SIGN CHNG, INTEGRATE)
DCS OMEGAYB
DAS ERRBTMP
PERORLIM TCR ERRORLIM # PITCH BODY-AXIS-ERROR INPUT LIMITER
PFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
DCA PTMP1 # FOR THE PITCH CHANNEL
DXCH TMP1
EXTEND
DCA PTMP3
DXCH TMP3
EXTEND
DCA PTMP5
DXCH TMP5
TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
# (INCLUDES VARIABLE GAIN PACKAGE)
POFFSET EXTEND
DCA PDELOFF
DAS CMDTMP # NO SCALED AT B+0 ASCREV
PACLIM TCR ACTLIM # ROUND OFF & LIMIT PITCH ACTUATOR COMMAND
POUT CS PCMD # INCREMENTAL PITCH COMMAND
AD CMDTMP
ADS TVCPITCH # UPDATE THE ERROR COUNTER (NO RESTART-
# PROTECT. SINCE ERROR CNTR ZEROED)
CAF BIT11 # BIT FOR TVCPITCH COUNT RELEASE
EXTEND
WOR CHAN14
PPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR PITCH
# Page 965
DCA PTMP2
DXCH TMP2
EXTEND
DCA PTMP4
DXCH TMP4
EXTEND
DCA PTMP6
DXCH TMP6
TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
DELBARP CAE DELPBAR +1 # UPDATE PITCH OFFSET-TRACKER-FILTER
EXTEND
MP E(-AT)
TS DELBRTMP +1
CAE DELPBAR
EXTEND
MP E(-AT)
DAS DELBRTMP
CAE CMDTMP
EXTEND
MP 1-E(-AT)
DAS DELBRTMP
PCOPYCYC TCR PCOPY # PITCH COPYCYCLE
PDAPEND TCF RESUME # PITCH DAP COMPLETED
# Page 966
# PITCH TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA PITCH TVCDAP OR TVC RESTART PACKAGE)
PCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (1)
# NOTE POSSIBLE RE-ENTRY FROM RESTART
# PACKAGE, SHOULD A RESTART OCCUR
# DURING PITCH COPYCYCLE.
EXTEND
DCA TMP1
DXCH PTMP1
EXTEND
DCA TMP2
DXCH PTMP2
EXTEND
DCA TMP3
DXCH PTMP3
EXTEND
DCA TMP4
DXCH PTMP4
EXTEND
DCA TMP5
DXCH PTMP5
EXTEND
DCA TMP6
DXCH PTMP6
PMISC EXTEND # MISC....PITCH-RATE-ERROR INTEGRATOR
DCA ERRBTMP
TS AK1 # FOR PITCH NEEDLES, SC.AT B-1 REVS
DXCH PERRB
CAE CMDTMP # PITCH ACTUATOR COMMAND
TS PCMD
EXTEND # PITCH OFFSET-TRACKER-FILTER
DCA DELBRTMP
DXCH DELPBAR
INCR TVCPHASE # PITCH COPYCYCLE COMPLETED (2)
TC Q
# Page 967
# YAW TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
YAWDAP LXCH BANKRUPT # T5 ENTRY, NORMAL
EXTEND
QXCH QRUPT
CAF PITCHT5 # SET UP T5 CALL FOR PITCH AUTOPILOT (LOW-
TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
CAE T5TVCDT
TS TIME5
YSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST
TC HACK # TEST-START OR TEST-IN-PROGRESS
TCF +2 # NO-TEST
TC HACK # TEST-IN-PROGRESS
# USE BODY RATES FROM PITCHDAP (PCDUDOTS)
YINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS YAW-RATE
DCA YERRB # ERROR, SC.AT B-1 REVS
DXCH ERRBTMP
EXTEND
DCA OMEGAZC
DAS ERRBTMP
CAE COSCDUZ # PREPARE BODY-AXIS YAW-RATE, OMEGAZB
EXTEND
MP SINCDUX
DDOUBL
EXTEND
MP MCDUYDOT
DDOUBL
DXCH OMEGAZB
CS MCDUZDOT
EXTEND
MP COSCDUX
DDOUBL
DAS OMEGAZB # (COMPLETED OMEGAZB, SC.AT 1/2TVCDT REVS)
EXTEND # PICK UP -OMEGAZB (SIGN CHNG, INTEGRATE)
DCS OMEGAZB
DAS ERRBTMP
YERORLIM TCR ERRORLIM # YAW BODY-AXIS-ERROR INPUT LIMITER
YFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
DCA YTMP1 # FOR THE YAW CHANNEL
# Page 968
DXCH TMP1
EXTEND
DCA YTMP3
DXCH TMP3
EXTEND
DCA YTMP5
DXCH TMP5
TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
# (INCLUDES VARIABLE GAIN PACKAGE)
YOFFSET EXTEND
DCA YDELOFF
DAS CMDTMP # NOW SCALED AT B+0 ASCREV
YACLIM TCR ACTLIM # ROUND OFF & LIMIT YAW ACTUATOR COMMAND
YOUT CS YCMD # INCREMENTAL YAW COMMAND
AD CMDTMP
ADS TVCYAW # UPDATE THE ERROR COUNTER (NO RESTART-
# PROTECT, SINCE ERROR CNTR ZEROED)
CAF BIT12 # BIT FOR TVCYAW COUNT RELEASE
EXTEND
WOR CHAN14
YPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR YAW
DCA YTMP2
DXCH TMP2
EXTEND
DCA YTMP4
DXCH TMP4
EXTEND
DCA YTMP6
DXCH TMP6
TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
DELBARY CAE DELYBAR +1 # UPDATE YAW OFFSET-TRACKER-FILTER
EXTEND
MP E(-AT)
TS DELBRTMP +1
CAE DELYBAR
EXTEND
MP E(-AT)
DAS DELBRTMP
CAE CMDTMP
EXTEND
MP 1-E(-AT)
DAS DELBRTMP
# Page 969
YCOPYCYC TCR YCOPY # YAW COPYCYCLE
YDAPEND TCF RESUME # YAW DAP COMPLETED
# Page 970
# TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA YAW TVCDAP OR TVC RESTART PACKAGE)
YCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (3)
# NOTE POSSIBLE RE-ENTRY FROM RESTART
# PACKAGE, SHOULD A RESTART OCCUR
# DURING YAW COPYCYCLE.
EXTEND
DCA TMP1
DXCH YTMP1
EXTEND
DCA TMP2
DXCH YTMP2
EXTEND
DCA TMP3
DXCH YTMP3
EXTEND
DCA TMP4
DXCH YTMP4
EXTEND
DCA TMP5
DXCH YTMP5
EXTEND
DCA TMP6
DXCH YTMP6
YMISC EXTEND # MISC....YAW-RATE-ERROR INTEGRATOR
DCA ERRBTMP
TS AK2 # FOR YAW NEEDLES, SC.AT B-1 REVS
DXCH YERRB
CAE CMDTMP
TS YCMD
EXTEND
DCA DELBRTMP
DXCH DELYBAR
CAF ZERO # YAW COPYCYCLE COMPLETED
TS TVCPHASE # RESET TVCPHASE
TC Q
# Page 971
# SUBROUTINES COMMON TO BOTH PITCH AND YAW DAPS....
# INITIALIZATION PACKAGE FOR CDURATES....
DAPINIT LXCH BANKRUPT # T5 RUPT ENTRY (CALLED BY TVCINT4)
CAF NEGONE # SET UP
AD T5TVCDT # T5 CALL FOR PITCHDAP IN TVCDT SECS
AD NEGMAX # (T5TVCDT = POSMAX - TVCDT/2 +1)
AD T5TVCDT
TS TIME5
CAF PITCHT5 # (BBCON ALREADY THERE)
TS T5LOC
CAE CDUY # READ AND STORE CDUS FOR DIFFERENTIATOR
TS PCDUYPST # PAST-VALUES
CAE CDUZ
TS PCDUZPST
TCF NOQRSM
# BODY-AXIS-ERROR INPUT LIMITER PACKAGE....
ERRORLIM CAE ERRBTMP # CHECK FOR INPUT-ERROR LIMIT
EXTEND # CHECKS UPPER WORD ONLY
MP 1/ERRLIM
EXTEND
BZF +6
CCS ERRBTMP
CAF ERRLIM
TCF +2
CS ERRLIM
TS ERRBTMP # LIMIT WRITES OVER UPPER WORD ONLY
TC Q
# ACTUATOR-COMMAND LIMITER PACKAGE....
ACTLIM CAE CMDTMP +1 # ROUND UP FOR OUTPUT
DOUBLE
TS L
CAF ZERO
AD CMDTMP
EXTEND # CHECK FOR ACTUATOR COMMAND LIMIT
MP 1/ACTSAT
EXTEND
# Page 972
BZF +6
CCS CMDTMP # APPLY LIMITS
CAF ACTSAT
TCF +2
CS ACTSAT
TS CMDTMP # LIMITS WRITE OVER CMDTMP
TC Q
# FILTER COMPUTATIONS FOR PRESENT OUTPUT................
FWDFLTR CAF ZERO
TS DAP1
TS DAP2
TS DAP3
TS CMDTMP
TS DELBRTMP
1DAPCAS CAE ERRBTMP +1 # FIRST DAP CASCADE
EXTEND
MP N10 # N10
TS DAP1 +1
CA ERRBTMP
EXTEND
MP N10 # N10
DAS DAP1
DXCH TMP1
DAS DAP1
2DAPCAS CAE DAP1 +1 # SECOND DAP CASCADE
EXTEND
MP N10 +5 # N20
TS DAP2 +1
CA DAP1
EXTEND
MP N10 +5 # N20
DAS DAP2
DXCH TMP3
DAS DAP2
CAE DAPDATR1 # TEST FOR LEM ON OR OFF
MASK BIT14
CCS A
TCF 3DAPCAS # LEM ON
EXTEND # LEM OFF
DCA DAP2
DXCH DAP3
TCF OPTVARK
# Page 973
3DAPCAS CAE DAP2 +1 # THIRD DAP CASCADE
EXTEND
MP N10 +10D # N30
TS DAP3 +1
CA DAP2
EXTEND
MP N10 +10D # N30
DAS DAP3
DXCH TMP5
DAS DAP3
OPTVARK CS DAP3 +1 # VARIABLE GAIN PACKAGE
EXTEND # (ALSO, SIGN CHANGE IN FORWARD LOOP)
MP VARK # SCALED AT 1/(8 ASCREV) OF ACTUAL VALUE
TS CMDTMP +1
CS DAP3
EXTEND
MP VARK
DAS CMDTMP
DXCH CMDTMP # FIX UP SCALING - SCALED B+3 ASCREVS
DDOUBL
DDOUBL
DXCH CMDTMP # - SCALED B+1 ASCREVS
# NOTE - THERE IS AN INHERANT GAIN OF
# (B+1 ASCREVS) ON THE OUTPUT DACS.
TC Q
# FILTER PRECOMPUTATIONS FOR NEXT PASS................
PRECOMP CAF ZERO # ***** FIRST CASCADE FILTER **********
TS TTMP1
TS TTMP2
CA ERRBTMP +1 # MULTIPLY INPUT BY
EXTEND
MP N10 +1 # N11/2
TS TTMP1 +1
CA ERRBTMP
EXTEND
MP N10 +1 # N11/2
DAS TTMP1
CS DAP1 +1 # MULTIPLY OUTPUT BY
EXTEND
MP N10 +3 # D11/2
TS TTMP2 +1
CS DAP1
# Page 974
EXTEND
MP N10 +3 # D11/2
DAS TTMP2
DXCH TTMP2
DAS TTMP1
DXCH TTMP1
DDOUBL
DAS TMP2
DXCH TMP2
DXCH TMP1
CAF ZERO
TS TTMP1
TS TMP2
CA ERRBTMP +1 # MULTIPLY INPUT BY
EXTEND # SECOND-ORDER NUMERATOR COEFF.
MP N10 +2 # N12
TS TTMP1 +1
CA ERRBTMP
EXTEND
MP N10 +2 # N12
DAS TTMP1
CS DAP1 +1 # MULTIPLY OUTPUT BY
EXTEND
MP N10 +4 # D12
TS TMP2 +1
CS DAP1
EXTEND
MP N10 +4 # D12
DAS TMP2
DXCH TTMP1
DAS TMP2
2CASFLTR CAF ZERO # *****SECOND CASCADE FILTER*****
TS TTMP1
TS TTMP2
CA DAP1 +1 # MULTIPLY INPUT BY
EXTEND
MP N10 +6 # N21/2
TS TTMP1 +1
CA DAP1
EXTEND
MP N10 +6 # N21/2
# Page 975
DAS TTMP1
CS DAP2 +1 # MULTIPLY OUTPUT BY
EXTEND
MP N10 +8D # D21/2
TS TTMP2 +1
CS DAP2
EXTEND
MP N10 +8D # D21/2
DAS TTMP2
DXCH TTMP2
DAS TTMP1
DXCH TTMP1
DDOUBL
DAS TMP4
DXCH TMP4
DXCH TMP3
CAF ZERO
TS TTMP1
TS TMP4
CA DAP1 +1 # MULTIPLY INPUT BY
EXTEND
MP N10 +7 # N22
TS TTMP1 +1
CA DAP1
EXTEND
MP N10 +7 # N22
DAS TTMP1
CS DAP2 +1 # MULTIPLY OUTPUT BY
EXTEND
MP N10 +9D # D22
TS TMP4 +1
CS DAP2
EXTEND
MP N10 +9D # D22
DAS TMP4
DXCH TTMP1
DAS TMP4
CAE DAPDATR1 # TEST FOR LEM ON OR OFF
MASK BIT13
CCS A
TC Q # EXIT IF LEM OFF
# Page 976
3CASFLTR CAF ZERO # *****THIRD CASCADE FILTER*****
TS TTMP1
TS TTMP2
CA DAP2 +1 # MULTIPLY INPUT BY (1/2)
EXTEND
MP N10 +11D # N31/2
TS TTMP1 +1
CA DAP2
EXTEND
MP N10 +11D # N31/2
DAS TTMP1
CS DAP3 +1
EXTEND
MP N10 +13D # D31/2
TS TTMP2 +1
CS DAP3
EXTEND
MP N10 +13D # D31/2
DAS TTMP2
DXCH TTMP2
DAS TTMP1
DXCH TTMP1
DDOUBL
DAS TMP6
DXCH TMP6
DXCH TMP5
CAF ZERO
TS TTMP1
TS TMP6
CA DAP2 +1 # MULTIPLY INPUT BY
EXTEND
MP N10 +12D # N32
TS TTMP1 +1
CA DAP2
EXTEND
MP N10 +12D # N32
DAS TTMP1
CS DAP3 +1
EXTEND
MP N10 +14D # D32
TS TMP6 +1
CS DAP3
EXTEND
# Page 977
MP N10 +14D # D32
DAS TMP6
DXCH TTMP1
DAS TMP6
TC Q
# Page 978
# CONSTANTS FOR AUTOPILOTS
# NOTE....1 ASCREV (ACTUATOR CMD SCALING) = 85.41 ARCSEC/BIT OR 1.07975111 REVS (85.41x16384/3600/360)
# 1 SPASCREV (SPECIAL ACTUATOR CMD SCALING) = 1.04620942 REVS
ACTSAT DEC 253 # ACTUATOR LIMIT (6 DEG), SC.AT 1ASCREV
1/ACTSAT DEC .0039525692 # RECIPROCAL (1/253)
ERRLIM EQUALS BIT13 # FILTER INPUT LIMIT....B-3 REVS (45DEG),
1/ERRLIM EQUALS BIT3 # SC.AT B-1 REV, AND ITS RECIPROCAL
PITCHT5 GENADR PITCHDAP # UPPER WORDS OF T5 2CADRS, LOWER WORDS
DAPT5 GENADR DAPINIT # (BBCON) ALREADY THERE. ORDER IS
YAWT5 GENADR YAWDAP # REQUIRED.
1/RTLIM DEC 0.004715 # .004715(CDUDIF) = 0 IF CDUIF < 2.33 DEG
1-E(-AT) OCT 00243 # AT = .01SEC....EITHER(1/A=4SEC, T=40MS),
E(-AT) OCT 37535 # OR(1/A=8SEC, T=80MS)

View File

@ -1,276 +0,0 @@
# Copyright: Public domain.
# Filename: TVCEXECUTIVE.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 945-950
# Mod history: 2009-05-12 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrections: CAE -> CAF in one place.
# 2009-05-21 RSB In 1SHOTCHK, a CAF SEVEN was corrected to
# CAF SIX.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 945
# PROGRAM NAME.... TVCEXECUTIVE, CONSISTING OF TVCEXEC, NEEDLEUP, VARGAINS
# 1SHOTCHK, REPCHEK, CG.CORR, COPYCYCLES, ETC.
# LOG SECTION...TVCEXECUTIVE SUBROUTINE...DAPCSM
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
# FUNCTIONAL DESCRIPTION....
#
# *A SELF-PERPETUATING WAITLIST TASK AT 1/2 SECOND INTERVALS WHICH:
# PREPARES THE ROLL DAP WITH OGA (CDUX)
# PREPARES THE ROLL FDAI NEEDLE (FLY-TO OGA ERROR)
# PREPARES THE ROLL PHASE PLANE OGAERR (FLY-FROM OGA ERROR)
# PREPARES THE TVC ROLLDAP TASK WAITLIST CALL (3 CS DELAY)
# UPDATES THE NEEDLES DISPLAY
# UPDATES VEHICLE MASS AND CALLS MASSPROP TO UPDATE INERTIA DATA
# UPDATES PITCH, YAW, AND ROLL DAP GAINS FROM MASSPROP DATA
# PERFORMS ONE-SHOT CORRECTION FOR TMC LOOP 0-3 SEC AFTER IGNITION
# PERFORMS REPETITIVE UPDATES FOR TMC LOOP AFTER THE ONE-SHOT CORR.
#
# CALLING SEQUENCE....
#
# *TVCEXEC CALLED AS A WAITLIST TASK, IN PARTICULAR BY TVCINIT4 AND BY
# ITSELF, BOTH AT 1/2 SECOND INTERVALS
#
# NORMAL EXIT MODE.... TASKOVER
#
# ALARM OR ABORT EXIT MODES.... NONE
#
# SUBROUTINES CALLED....NEEDLER, S40.15, MASSPROP, TASKOVER, IBNKCALL
#
# OTHER INTERFACES....
#
# *TVCRESTART PACKAGE FOR RESTARTS
# *PITCHDAP, YAWDAP FOR VARIABLE GAINS AND ENGINE TRIM ANGLES
# ERASABLE INITIALIZATION REQUIRED....
#
# *SEE TVCDAPON....TVCINIT4
# *VARK AND 1/CONACC (S40.15 OF TVCINITIALIZE)
# *PAD LOAD EREPFRAC
# *BITS 15,14 OF FLAGWRD6 (T5 BITS)
# *TVCEXPHS FOR RESTARTS
# *ENGINE-ON BIT (11.13) FOR RESTARTS
# *CDUX, OGAD
#
# OUTPUT....
#
# *ROLL DAP OGANOW, FDAI NEEDLE (AK), AND PHASE PLANE OGAERR
# *VARIABLE GAINS FOR PITCH/YAW AND ROLL TVC DAPS
# *SINGLE-SHOT AND REPETITIVE CORRECTIONS TO ENGINE TRIM ANGLES
# PACTOFF AND YACTOFF
#
# DEBRIS.... MUCH, BUT SHAREABLE WITH RCS/ENTRY, ALL IN EBANK6
# Page 946
BANK 16
SETLOC DAPROLL
BANK
EBANK= BZERO
COUNT* $$/TVCX
TVCEXEC CS FLAGWRD6 # CHECK FOR TERMINATION (BITS 15,14 READ
MASK OCT60000 # 10 FROM TVCDAPON TO RCSDAPON)
EXTEND
BZMF TVCEXFIN # TERMINATE
CAF .5SEC # W.L. CALL TO PERPETUATE TVCEXEC
TC WAITLIST
EBANK= BZERO
2CADR TVCEXEC
ROLLPREP CAE CDUX # UPDATE ROLL LADDERS (NO NEED TO RESTART-
XCH OGANOW # PROTECT, SINCE ROLL DAPS RE-START)
XCH OGAPAST
CAE OGAD # PREPARE ROLL FDAI NEEDLE WITH FLY-TO
EXTEND # ERROR (COMMAND - MEASURED)
MSU OGANOW
TS AK # FLY-TO OGA ERROR, SC.AT B-1 REVS
EXTEND # PREPARE ROLL DAP PHASE PLANE OGAERR
MP -BIT14
TS OGAERR # PHASE-PLANE (FLY-FROM) OGAERROR,
# SC.AT B+0 REVS
CAF THREE # SET UP ROLL DAP TASK (ALLOW SOME TIME)
TC WAITLIST
EBANK= BZERO
2CADR ROLLDAP
NEEDLEUP TC IBNKCALL # DO A NEEDLES UPDATE (RETURNS AFTER CADR)
CADR NEEDLER # (NEEDLES RESTARTS ITSELF)
VARGAINS CAF BIT13 # CHECK ENGINE-ON BIT TO INHIBIT VARIABLE
EXTEND # GAINS AND MASS IF ENGINE OFF
RAND DSALMOUT # CHANNEL 11
CCS A
TCF +4 # ON , SO OK TO UPDATE GAINS AND MASS
+5 CAF TWO # OFF, SO BYPASS MASS/GAIN UPDATES,
TS TVCEXPHS # ALSO ENTRY FROM CCS BELOW WITH
TCF 1SHOTCHK # VCNTR = -0 (V97 R40 ENGFAIL)
CCS VCNTR # TEST FOR GAIN OF UPDATE TIME
TCF +4 # NOT YET
# Page 947
TCF GAINCHNG # NOW
TCF +0 # NOT USED
TCF VARGAINS +5 # NO, LOTHRUST (S40.8 R40)
+4 TS VCNTRTMP # PROTECT VCNTR AND
CAE CSMMASS # CSMMASS DURING AN IMPULSIVE BURN
TS MASSTMP
TCF EXECCOPY
GAINCHNG TC IBNKCALL # UPDATE IXX, IAVG, IAVG/TLX
CADR FIXCW # MASSPROP ENTRY (ALREADY INITIALIZED)
TC IBNKCALL # UPDATE 1/CONACC, VARK
CADR S40.15 # (S40.15 IS IN TVCINITIALIZE)
CS TENMDOT # UPDATE MASS FOR NEXT 10 SEC. OF BURN
AD CSMMASS
TS MASSTMP # KG B+16
CAF NINETEEN # RESET THE VARIABLE-GAIN UPDATE COUNTER
TS VCNTRTMP
EXECCOPY INCR TVCEXPHS # RESTART-PROTECT THE COPYCYCLE (1)
CAE MASSTMP # CSMMASS KG B+16
TS CSMMASS
CAE VCNTRTMP # VCNTR
TS VCNTR
TS V97VCNTR # FOR ENGFAIL (R41) MASS UPDATES AT SPSOFF
INCR TVCEXPHS # COPYCYCLE OVER (2)
1SHOTCHK CCS CNTR # CHECK TIME FOR ONE-SHOT OR REPCORR
TCF +4 # NOT YET
TCF 1SHOTOK # NOW
TCF REPCHEK # ONE-SHOT OVER, ON TO REPCORR
TCF 1SHOTOK # NOW (ONE-SHOT ONLY, NO REPCORR)
+4 TS CNTRTMP # COUNT DOWN
CAF SIX # SET UP TVCEXPHS FOR ENTRY AT CNTRCOPY
TS TVCEXPHS
TCF CNTRCOPY
REPCHEK CAE REPFRAC # CHECK FOR REPETITIVE UPDATES
EXTEND
BZMF TVCEXFIN # NO, OVER-AND-OUT
TS TEMPDAP +1 # YES, SET UP CORRECTION FRACTION
CAF FOUR # SET UP TVCEXPHS FOR ENTRY AT CORSETUP
TS TVCEXPHS
TCF CORSETUP
# Page 948
1SHOTOK CAF BIT13 # CHECK ENGINE-ON BIT, NOT PERMITTING
EXTEND # ONE-SHOT DURING ENGINE-SHUTDOWN
RAND DSALMOUT
CCS A
TCF +2 # ONE-SHOT OK
TCF TVCEXFIN # NO, TERMINATE
INCR TVCEXPHS # (3)
# RSB 2009. The following instruction was previously "CAE FCORFRAC", but FCORFRAC
# is not in erasable memory as implied by the use of CAE. I've accordingly changed
# it to CAF instead to indicate fixed memory.
TEMPSET CAF FCORFRAC # SET UP CORRECTION FRACTION
TS TEMPDAP +1
INCR TVCEXPHS # ENTRY FROM REPCHECK AT NEXT LOCATION (4)
CORSETUP CAE DAPDATR1 # CHECK FOR LEM-OFF/ON
MASK BIT13 # (NOTE, SHOWS LEM-OFF)
EXTEND
BZF +2 # LEM IS ON, PICK UP TEMPDAP+1
CAE TEMPDAP +1 # LEM IS OFF, PICK UP 2(TEMPDAP+1)
AD TEMPDAP +1
TS TEMPDAP # CG.CORR USES TEMPDAP
CAF NEGONE # SET UP FOR CNTR = -1 (ONE-SHOT DONE)
TS CNTRTMP # (COPYCYCLE AT .CNTRCOPY. )
CG.CORR EXTEND # PITCH TMC LOOP
DCA PDELOFF
DXCH PACTTMP
EXTEND
DCS PDELOFF
DDOUBL
DDOUBL
DXCH TTMP1
EXTEND
DCA DELPBAR
DDOUBL
DDOUBL
DAS TTMP1
EXTEND
DCA TTMP1
EXTEND
MP TEMPDAP
DAS PACTTMP
EXTEND # YAW TMC LOOP
DCA YDELOFF
DXCH YACTTMP
EXTEND
DCS YDELOFF
DDOUBL
# Page 949
DDOUBL
DXCH TTMP1
EXTEND
DCA DELYBAR
DDOUBL
DDOUBL
DAS TTMP1
EXTEND
DCA TTMP1
EXTEND
MP TEMPDAP
DAS YACTTMP
CORCOPY INCR TVCEXPHS # RESTART PROTECT THE COPYCYCLE (5)
EXTEND # TRIM-ESTIMATES, AND
DCA PACTTMP
TS PACTOFF # TRIMS
DXCH PDELOFF
EXTEND
DCA YACTTMP
TS YACTOFF
DXCH YDELOFF
INCR TVCEXPHS # ENTRY FROM 1SHOTCHK AT NEXT LOCATION (6)
CNTRCOPY CAE CNTRTMP # UPDATE CNTR (RESTARTS OK, FOLLOWS CPYCY)
TS CNTR
TVCEXFIN CAF ZERO # RESET TVCEXPHS
TS TVCEXPHS
TCF TASKOVER # TVCEXECUTIVE FINISHED
FCORFRAC OCT 10000 # ONE-SHOT CORRECTION FRACTION
# Page 950 (page is empty)

View File

@ -1,414 +0,0 @@
# Copyright: Public domain.
# Filename: TVCINITIALIZE.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Jim Lawton <jim.lawton@gmail.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 936-944
# Mod history: 2009-05-11 JVL Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
# 2009-05-20 RSB Corrections: +80 -> +8D, added 4 missing
# lines in TVCINIT1, changed the capitalization
# of a couple of the "Page N" comments,
# corrected a couple of lines in LOADCOEFF.
# 2009-05-22 RSB In LOADCOEF, DXCH N10 +14D corrected to
# TS N10 +14D. Also, various comment-marks
# were added to comments following this
# change.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 937
# NAME TVCDAPON (TVC DAP INITIALIZATION AND STARTUP CALL)
# LOG SECTION...TVCINITIALIZE SUBROUTINE...DAPCSM
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
# FUNCTIONAL DESCRIPTION
# PERFORMS TVCDAP INITIALIZATION (GAINS, TIMING PARAMETERS, FILTER VARIABLES, ETC.)
# COMPUTES STEERING (S40.8) GAIN KPRIMEDT, AND ZEROES PASTDELV,+1 VARIABLE
# MAKES INITIALIZATION CALL TO "NEEDLER" FOR TVC DAP NEEDLES-SETUP
# PERFORMS INITIALIZATION FOR ROLL DAP
# CALLS TVCEXECUTIVE AT TVCEXEC, VIA WAITLIST
# CALLS TVCDAP CDU-RATE INITIALIZATION PKG AT DAPINIT VIA T5
# PROVIDES FOR LOADING OF LOW-BANDWIDTH COEFFS AND GAINS AT SWICHOVR
# CALLING SEQUENCE - T5LOC=2CADR(TVCDAPON,EBANK=BZERO), T5=.6SECT5
# IN PARTICULAR, CALLED BY "DOTVCON" IN P40
# MRCLEAN AND TVCINIT4 ARE POSSIBLE TVC-RESTART ENTRY POINTS
# NORMAL EXIT MODE
# TCF RESUME
# SUBROUTINES CALLED
# NEEDLER, MASSPROP
# ALARM OR ABORT EXIT MODES
# NONE
# ERASABLE INITIALIZATION REQUIRED
# CSMMASS, LEMMASS, DAPDATR1 (FOR MASSPROP SUBROUTINE)
# TVC PAD LOADS (SEE EBANK6 IN ERASABLE ASSIGNMENTS)
# PACTOFF, YACTOFF, CDUX
# TVCPHASE AND THE T5 BITS OF FLAGWRD6 (SET AT DOTVCON IN P40)
# OUTPUT
# ALL TVC AND ROLL DAP ERASABLES, FLAGWRD6 (BITS 13,14), T5, WAITLIST
# DEBRIS
# NONE
COUNT* $$/INIT
BANK 17
SETLOC DAPS7
BANK
EBANK= BZERO
TVCDAPON LXCH BANKRUPT # T5 RUPT ARRIVAL (CALL BY DOTVCON - P40)
EXTEND # SAVE Q REQUIRED IN RESTARTS (MRCLEAN AND
QXCH QRUPT # TVCINIT4 ARE ENTRIES)
MRCLEAN CAF NZERO # NUMBER TO ZERO, LESS ONE (MUST BE ODD)
# TVC RESTARTS ENTER HERE (NEW BANK)
+1 CCS A
TS CNTR
CAF ZERO
TS L
INDEX CNTR
DXCH OMEGAYC # FIRST (LAST) TWO LOCATIONS
CCS CNTR
TCF MRCLEAN +1
# Page 938
EXTEND # SET UP ANOTHER T5 RUPT TO CONTINUE
DCA INITLOC2 # INITIALIZATION AT TVCINIT1
DXCH T5LOC # THE PHSCHK2 ENTRY (REDOTVC) AT TVCDAPON
CAF POSMAX # +3 IS IN ANOTHER BANK. MUST RESET
TS TIME5 # BBCON TOO (FULL 2CADR), FOR THAT
ENDMRC TCF RESUME # ENTRY.
TVCINIT1 LXCH BANKRUPT
EXTEND
QXCH QRUPT
TC IBNKCALL # UPDATE IXX, IAVG/TLX FOR DAP GAINS (R03
CADR MASSPROP # OR NOUNS 46 AND 47 MUST BE CORRECT)
CAE EMDOT # SPS FLOW RATE, SCALED B+3 KG/CS
EXTEND
MP ONETHOU
TS TENMDOT # 10-SEC MASS LOSS B+16 KG
COM
AD CSMMASS
TS MASSTMP # DECREMENT FOR FIRST 10 SEC OF BURN
CAE DAPDATR1 # CHECK LEM-ON/OFF
MASK BIT14
CCS A
CAF BIT1 # LEM-ON (BIT1)
TS CNTR # LEM-OFF (ZERO)
INDEX CNTR # LOAD THE FILTER COEFFICIENTS
CAF CSMCFADR
TS COEFFADR
TC LOADCOEF
INDEX CNTR # PICK UP LM-OFF,-ON KTLX/I
CAE EKTLX/I # SCALED AT 1/(8 ASCREV) OF ACTUAL VALUE
TS KTLX/I
TCR S40.15 # COMPUTE 1/CONACC , VARK
TVCINIT2 CS CNTR # PICK LM-OFF,-ON VALUE FOR FILTER PERIOD
INDEX A # DETERMINATION:
CAF BIT2 # BIT2 FOR CSM ONLY 40MS FILTER
TS KPRIMEDT # BIT3 FOR CSM/LM 80MS FILTER
COM # PREPARE T5TVCDT
AD POSMAX
AD BIT1
TS T5TVCDT
CS BIT15 # RESET SWTOVER FLAG
# Page 939
MASK FLAGWRD9
TS FLAGWRD9
INDEX CNTR # PICK UP LEM-OFF,-ON KPRIME
CAE EKPRIME # SCALED (100 PI)/16
EXTEND
MP KPRIMEDT # (TVCDT/2, SC.AT B+14CS)
LXCH A # SC.AT PI/8 (DIMENSIONLESS)
DXCH KPRIMEDT
INDEX CNTR # PICK UP LEM-OFF,-ON REPFRAC
CAE EREPFRAC
TS REPFRAC
INDEX CNTR # PICK UP ONE-SHOT CORRECTION TIME
CAF TCORR
TS CNTR
CAF NEGONE # PREVENT STROKE TEST UNTIL CALLED
TS STRKTIME
CAF NINETEEN # SET VCNTR FOR VARIABLE-GAIN UPDATES IN
TS VCNTR # 10 SECONDS (TVCEXEC 1/2 SEC RATE)
TS V97VCNTR # FOR ENGFAIL (R41) LOGIC
TVCINIT3 CAE PACTOFF # TRIM VALUES TO TRIM-TRACKERS, OUTPUT
TS PDELOFF # TRACKERS, OFFSET-UPDATES, AND
TS PCMD # OFFSET-TRACKER FILTERS
TS DELPBAR # NOTE, LO-ORDER DELOFF,DELBAR ZEROED
CAE YACTOFF
TS YDELOFF
TS YCMD
TS DELYBAR
ATTINIT CAE DAPDATR1 # ATTITUDE-ERROR INITIALIZATION LOGIC
MASK BIT13 # TEST FOR CSM OR CSM/LM
EXTEND
BZF NEEDLEIN # BYPASS INITIALIZATION FOR CSM/LM
CAF BIT1 # SET UP TEMPORARY COUNTER
+5 TS TTMP1
INDEX TTMP1
CA ERRBTMP # ERRBTMP CONTAINS RCS ATTITUDE ERRORS
EXTEND # ERRORY & ERRORZ (P40 AT DOTVCON)
MP 1/ATTLIM # .007325(ERROR) = 0 IF ERROR < 1.5 DEG
EXTEND
BZF +8D # |ERROR| LESS THAN 1.5 DEG
EXTEND
# Page 940
BZMF +3 # |ERROR| > 1.5 DEG, AND NEG
CA ATTLIM # |ERROR| > 1.5 DEG, AND POS
TCF +2
+3 CS ATTLIM
+2 INDEX TTMP1
TS ERRBTMP
+8 CCS TTMP1 # TEST TEMPORARY COUNTER
TCF ATTINIT +5 # BACK TO REPEAT FOR PITCH ERROR
CA ERRBTMP # ERRORS ESTABLISHED AND LIMITED
TS PERRB
CA ERRBTMP +1
TS YERRB
NEEDLEIN CS RCSFLAGS # SET BIT 3 FOR INITIALIZATION PASS AND GO
MASK BIT3 # TO NEEDLER. WILL CLEAR FOR TVC DAP
ADS RCSFLAGS # (RETURNS AFTER CADR)
TC IBNKCALL
CADR NEEDLER
TVCINIT4 CAF ZERO # SET TVCPHASE TO INDICATE TVCDAPON-THRU-
TS TVCPHASE # NEEDLEIN INITIALIZATION FINISHED.
# (POSSIBLE TVC-RESTART ENTRY)
CAE CDUX # PREPARE ROLL DAP
TS OGANOW
CAF BIT13 # IF ENGINE IS ALREADY OFF, ENGINOFF HAS
EXTEND # ALREADY ESTABLISHED THE POST-BURN
RAND DSALMOUT # CSMMASS (MASSBACK DOES IT). DONT
EXTEND # TOUCH CSMMASS. IF ENGINE IS ON,
BZF +3 # THEN ITS OK TO DO THE COPYCYCLE
# EVEN BURNS LESS THAN 0.4 SEC ARE AOK
CAE MASSTMP # COPYCYCLE
TS CSMMASS
+3 CAF .5SEC # CALL TVCEXECUTIVE (ROLLDAP CALL, ETC)
TC WAITLIST
EBANK= BZERO
2CADR TVCEXEC
EXTEND # CALL FOR DAPINIT
DCA DAPINIT5
DXCH T5LOC
CAE T5TVCDT # (ALLOW TIME FOR RESTART COMPUTATIONS)
TS TIME5
# Page 941
ENDTVCIN TCF RESUME
PRESWTCH TCR SWICHOVR # ENTRY FROM V46
TC POSTJUMP # THIS PROVIDES AN EXIT FROM SWITCH-OVER
CADR PINBRNCH # (PINBRNCH DOES A RELINT)
SWICHOVR INHINT
CA TVCPHASE # SAVE TVCPHASE
TS PHASETMP
CS BIT2 # SET TVCPHASE = -2 (INDICATES SWITCH-OVER
TS TVCPHASE # TO RESTART LOGIC)
+5 EXTEND # SAVE Q FOR RETURN (RESTART ENTRY POINT,
QXCH RTRNLOC # TVCPHASE AND PHASETMP ALREADY SET)
CAF NZEROJR # ZEROING LOOP FOR FILTER STORAGE LOCS
+8 TS CNTRTMP
MCLEANJR CA ZERO
TS L
INDEX CNTRTMP
DXCH PTMP1 -1
CCS CNTRTMP
CCS A
TCF SWICHOVR +8D
CS FLAGWRD9 # SET SWITCHOVER FLAG FOR DOWNLINK
MASK BIT15
ADS FLAGWRD9
CAE EKTLX/I +2 # LOW BANDWIDTH GAINS - DAP
TS KTLX/I
TCR S40.15 +7
CAF FKPRIMDT # - STEERING
TS KPRIMEDT
CAF FREPFRAC # - TMC LOOP
TS REPFRAC
EXTEND # UPDATE TRIM ESTIMATES
DCA DELPBAR
DXCH PDELOFF
EXTEND
DCA DELYBAR
DXCH YDELOFF
CA LBCFADR
# Page 942
TS COEFFADR
TC LOADCOEF
CAE PHASETMP # RESTORE TVCPHASE
TS TVCPHASE
TC RTRNLOC # BACK TO PRESWTCH OR TVCRESTARTS
LOADCOEF EXTEND # LOAD DAP FILTER COEFFICIENTS
INDEX COEFFADR # FROM: ERASABLE FOR CSM/LM HB
DCA 0 # FIXED FOR CSM/LM LB
DXCH N10 # FIXED FOR CSM
EXTEND # NOTE: FOR CSM/LM, NORMAL COEFFICIENT
INDEX COEFFADR # LOAD WILL BE HIGH BANDWIDTH PAD LOAD
DCA 2 # ERASABLES. DURING CSM/LM SWITCHOVER,
DXCH N10 +2 # THIS LOGIC IS USED TO LOAD LOW BANDWIDTH
# COEFFICIENTS FROM FIXED MEMORY.
EXTEND
INDEX COEFFADR
DCA 4
DXCH N10 +4
EXTEND
INDEX COEFFADR
DCA 6
DXCH N10 +6
EXTEND
INDEX COEFFADR
DCA 8D
DXCH N10 +8D
EXTEND
INDEX COEFFADR
DCA 10D
DXCH N10 +10D
EXTEND
INDEX COEFFADR
DCA 12D
DXCH N10 +12D
INDEX COEFFADR
CA 14D
TS N10 +14D
TC Q
# Page 943
S40.15 CAE IXX # GAIN COMPUTATIONS (1/CONACC, VARK)
EXTEND # ENTERED FROM TVCINITIALIZE AND TVCEXEC
MP 2PI/M # 2PI/M SCALED 1/(B+8 N M)
DDOUBL # IXX SCALED B+20 KG-MSQ
DDOUBL
DDOUBL
TS 1/CONACC # SCALED B+9 SEC-SQ/REV
+7 CAE KTLX/I # ENTRY FROM CSM/LM V46 SWITCH-OVER
EXTEND # SCALED (B+3 ASCREV) 1/SECSQ
MP IAVG/TLX # SCALED B+2 SECSQ
DDOUBL
DDOUBL
TS VARK # SCALED (B+3 ASCREV)
TC Q
CSMN10 DEC .99999 # N10 CSM ONLY FILTER COEFFICIENTS
DEC -.2549 # N11/2
DEC .0588 # N12
DEC -.7620 # D11/2
DEC .7450 # D12
DEC .99999 # N20
DEC -.4852 # N21/2
DEC 0 # N22
DEC -.2692 # D22/2
DEC 0 # D22
LBN10 DEC +.99999 # N10 LOW BANDWIDTH FILTER COEFFICIENTS
DEC -.3285 # N11/2
DEC -.3301 # N12
DEC -.9101 # D11/2
DEC +.8460 # D12
DEC +.03125 # N20
DEC 0 # N21/2
DEC 0 # N22
DEC -.9101 # D21/2
DEC +.8460 # D22
DEC +.5000 # N30
DEC -.47115 # N31/2
DEC +.4749 # N32
DEC -.9558 # D31/2
DEC +.9372 # D32
CSMCFADR GENADR CSMN10 # CSM ONLY COEFFICIENTS ADDRESS
HBCFADR GENADR HBN10 # HIGH BANDWIDTH COEFFICIENTS ADDRESS
# Page 944
LBCFADR GENADR LBN10 # LOW BANDWIDTH COEFFICIENTS ADDRESS
NZERO DEC 51 # MUST BE ODD FOR MRCLEAN
NZEROJR DEC 23 # MUST BE ODD FOR MCLEANJR
ATTLIM DEC 0.00833 # INITIAL ATTITUDE ERROR LIMIT (1.5 DEG)
1/ATTLIM DEC 0.007325 # .007325(ERROR) = 0 IF ERROR < 1.5 DEG
TCORR OCT 00005 # CSM
+1 OCT 00000 # CSM/LM (HB,LB)
FKPRIMDT DEC .0102 # CSM/LM (LB), (.05 X .08) SCALED AT PI/8
FREPFRAC DEC .0375 B-2 # CSM/LM (LB), 0.0375 SCALED AT B+2
NINETEEN = VD1
2PI/M DEC .00331017 B+8 # 2PI/M, SCALED AT 1/(B+8 N-M)
ONETHOU DEC 1000 B-13 # KG/CS B3 TO KG/10SEC B16 CONVERSION
EBANK= BZERO
DAPINIT5 2CADR DAPINIT
EBANK= BZERO
INITLOC2 2CADR TVCINIT1

View File

@ -1,245 +0,0 @@
# Copyright: Public domain.
# Filename: TVCMASSPROP.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 951-955
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 951
# PROGRAM NAME....MASSPROP
# LOG SECTION....TVCMASSPROP PROGRAMMER...MELANSON (ENGEL, SCHLUNDT)
#
#
# FUNCTIONAL DESCRIPTION:
#
# MASSPROP OPERATES IN TWO MODES:(1)IF LEM MASS OR CONFIGURATION ARE UPDATED (MASSPROP DOES NOT TEST
# FOR THIS) THE ENTIRE PROGRAM MUST BE RUN THROUGH, BREAKPOINT VALUES AND DERIVATIVES OF THE OUTPUTS WITH
# RESPECT TO CSM MASS BEING CALCULATED PRIOR TO CALCULATION OF THE OUTPUTS. (2)OTHERWISE, THE OUTPUTS CAN BE
# CALCULATED USING PREVIOUSLY COMPUTED BREAKPOINT VALUES AND DERIVATIVES.
#
# CALLING SEQUENCES
#
# IF LEM MASS OR CONFIGURATION HAS BEEN UPDATED, TRANSFER TO MASSPROP, OTHERWISE TRANSFER TO FIXCW.
# L TC BANKCALL OR IBNKCALL
# L+1 CADR MASSPROP
# OR
# L+1 CADR FIXCW
#
# L+2 RETURNS VIA Q
#
# CALLED IN PARTICULAR BY DONOUN47 (JOB) AND TVCEXECUTIVE (TASK)
#
# JOBS OR TASKS INITIATED - NONE
#
# SUBROUTINES CALLED - NONE
#
# ERASABLE INITIALIZATION REQUIRED
#
# LEMMASS MUST CONTAIN LEM MASS SCALED AT B+16 KILOGRAMS
# CSMMASS MUST CONTAIN CSM MASS SCALED AT B+16 KILOGRAMS
#
# DAPDATR1 MUST BE SET TO INDICATE VEHICLE CONFIGURATION.
# BITS (15,14,13) = ( 0 , 0 , 1 ) LEM OFF
# ( 0 , 1 , 0 ) LEM ON (ASCNT,DSCNT)
# ( 1 , 1 , 0 ) LEM ON (ASCNT ONLY)
#
#
# ALARMS - NONE
#
# EXIT - TC Q
#
# OUTPUTS:
#
# (1)IXX, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
# (2)IAVG, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
# (3)IAVG/TLX, SINGLE PRECISION, SCALED AT B+2 SEC-SQD
# THEY ARE STORED IN CONSECUTIVE REGISTERS IXX0, IXX1, IXX2
#
# CONVERSION FACTOR : (SLUG-FTSQ) = 0.737562 (KG-MSQ)
# Page 952
#
# OUTPUTS ARE CALCULATED AS FOLLOWS:
#
# (1) IF LEM DOCKED, LEMMASS IS FIRST ELIMINATED AS A PARAMETER
#
# VARST0 = INTVALUE0 + LEMMASS(SLOPEVAL0) IXX BREAKPOINT VALUE
# VARST1 = INTVALUE1 + LEMMASS(SLOPEVAL1) IAVG BREAKPOINT VALUE
# VARST2 = INTVALUE2 + LEMMASS(SLOPEVAL2) IAVG/TLX BREAKPOINT VALUE
#
# VARST3 = INTVALUE3 + LEMMASS(SLOPEVAL3) IAVG/TLX SLOPE FOR CSMMASS > 33956 LBS ( SPS > 10000 LBS)
# VARST4 = INTVALUE4 + LEMMASS(SLOPEVAL4) IAVG SLOPE FOR CSMMASS > 33956 LBS ( SPS > 10000 LBS)
#
# VARST5 = INTVALUE5 + LEMMASS(SLOPEVAL5) IXX SLOPE FOR ALL VALUES OF CSMMASS
#
# VARST6 = INTVALUE6 + LEMMASS(SLOPEVAL6) IAVG SLOPE FOR CSMMASS < 33956 LBS ( SPS < 10000 LBS)
# VARST7 = INTVALUE7 + LEMMASS(SLOPEVAL7) IAVG/TLX SLOPE FOR CSMMASS < 33956 LBS ( SPS < 10000 LBS)
#
# VARST8 = INTVALUE8 + LEMMASS(SLOPEVAL8) IAVG DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
# VARST9 = INTVALUE9 + LEMMASS(SLOPEVAL9) IAVG/TLX DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
#
# (2) IF LEM NOT DOCKED
#
# VARST0 = NOLEMVAL0 WHERE THE MEANING AND SCALING OF VARST0
# . . TO VARST9 ARE THE SAME AS GIVEN ABOVE
# . .
# . . NOTE... FOR THIS CASE, VARST8,9 HAVE NO
# VARST9 = NOLEMVAL9 MEANING (THEY ARE COMPUTED BUT NOT USED)
#
# (3) THE FINAL OUTPUT CALCULATIONS ARE THEN DONE
#
# IXX0 = VARST0 + (CSMMASS + NEGBPW)VARST5 IXX
#
# IXX1 = VARST1 + (CSMMASS + NEGBPW)VARST(4 OR 6) IAVG
#
# IXX2 = VARST2 + (CSMMASS + NEGBPW)VARST(3 OR 7) IAVG/TLX
#
#
# THE DATA USED CAME FROM CSM/LM SPACECRAFT OPERATIONAL DATA BOOK.
# VOL. 3, NASA DOCUMENT SNA-8-D-027 (MARCH 1968)
#
# PERTINENT MASS DATA : CSM WEIGHT (FULL) 64100 LBS.
# (EMPTY) 23956 LBS.
# LEM WEIGHT (FULL) 32000 LBS.
# (EMPTY) 14116 LBS.
#
# (WEIGHTS ARE FROM AMENDMENT #1 (APRIL 24,1968) TO ABOVE DATA BOOK)
# Page 953
BANK 25
SETLOC DAPMASS
BANK
EBANK= BZERO
COUNT* $$/MASP
MASSPROP CAF NINE # MASSPROP USES TVC/RCS INTERRUPT TEMPS
TS PHI333 # SET UP TEN PASSES
LEMTEST CAE DAPDATR1 # DETERMINE LEM STATUS
MASK BIT13
EXTEND
BZF LEMYES
LEMNO INDEX PHI333 # LEM NOT ATTACHED
CAF NOLEMVAL
TCF STOINST
LEMYES CAE LEMMASS # LEM IS ATTACHED
DOUBLE
EXTEND
INDEX PHI333
MP SLOPEVAL
DDOUBL
INDEX PHI333
AD INTVALUE
STOINST INDEX PHI333 # STORAGE INST BEGIN HERE
TS VARST0
CCS PHI333 # ARE ALL TEN PASSES COMPLETED
TCF MASSPROP +1 # NO - GO DECREMENT PHI333
DXTEST CCS DAPDATR1 # IF NEG, BIT15 IS 1, LEM DSCNT STAGE OFF
TCF FIXCW
TCF FIXCW
DXCH VARST0 +8D
DAS VARST0 +1
CA DXITFIX
ADS VARST0 +7
FIXCW CAF BIT2 # COMPUTATION PHASE BEGINS HERE. SET UP
TS PHI333 # THREE PASSES
TS PSI333
CAE CSMMASS # GET DELTA CSM WEIGHT - SIGN DETERMINES
AD NEGBPW # SLOPE LOCATIONS.
DOUBLE
TS TEMP333
# Page 954
EXTEND
BZMF PEGGY # DETERMINE CORRECT SLOPE
CAF NEG2
TS PHI333
PEGGY INDEX PHI333 # ALL IS READY - CALCULATE OUTPUTS NOW
CAE VARST5 # GET SLOPE
EXTEND
MP TEMP333 # MULT BY DELTA CSM WEIGHT
DOUBLE
INDEX PSI333
AD VARST0 # ADD BREAKPOINT VALUE
INDEX PSI333
TS IXX # ****** OUTPUTS (IXX0, IXX1, IXX2) ******
CCS PSI333 # BOOKKEEPING - MASSPROP FINISHED OR NOT
TCF BOKKEP2 # NO - GO TAKE CARE OF INDEXING REGISTERS
CAE DAPDATR1 # UPDATE WEIGHT/G
MASK BIT14
CCS A
CA LEMMASS
AD CSMMASS
TS WEIGHT/G # SCALED AT B+16 KILOGRAMS
ENDMASSP TC Q
BOKKEP2 TS PSI333 # REDUCE PSI BY ONE
EXTEND
DIM PHI333
TCF PEGGY
# Page 955
NOLEMVAL DEC 25445 B-20
DEC 87450 B-20
DEC .30715 B-2
DEC 1.22877 E-5 B+12
DEC 1.6096 B-6
DEC 1.54 B-6
DEC 7.77177 B-6
DEC 3.46458 E-5 B+12
INTVALUE DEC 26850 B-20
DEC 127518 B-20
DEC .54059 B-2
DEC .153964 E-4 B+12
DEC -.742923 B-6
DEC 1.5398 B-6
DEC 9.68 B-6
DEC .647625 E-4 B+12
DEC -27228 B-20
DEC -.206476 B-2
SLOPEVAL DEC 1.96307 B-6
DEC 27.5774 B-6
DEC 2.3548 E-5 B+12
DEC 2.1777 E-9 B+26
DEC 1.044 E-3 B+8
DEC 0
DEC 2.21068 E-3 B+8
DEC 1.5166 E-9 B+26
DEC -1.284 B-6
DEC 2 E-5 B+12
NEGBPW DEC -15402.17 B-16
DXITFIX DEC* -1.88275 E-5 B+12*

View File

@ -1,256 +0,0 @@
# Copyright: Public domain.
# Filename: TVCRESTARTS.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 956-960
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrections: TCF -> BZF in one place.
# 2009-05-21 RSB In PHSCHK2, CS TVCPHASE corrected to
# CCS TVCPHASE and CCS 4 corrected to CCS A.
# Page 924 corrected to 961. CORCOPY +2
# corrected to CORCOPY +1.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 956
# NAME....TVCRESTART PACKAGE, CONSISTING OF REDOTVC, ENABL1, 2, CMDSOUT, PHSCHK2, ETC.
# LOG SECTION...TVCRESTARTS SUBROUTINE....DAPCSM
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
# FUNCTIONAL DESCRIPTION....
#
# *RESTART-PROOFS THE TVC DAPS, INCLUDING PITCHDAP, YAWDAP,
# TVCEXECUTIVE, ROLLDAP, TVCINIT4, TVCDAPON, AND CSM/LM V46 SWTCHOVR.
# *TVC RESTARTS DESERVE SPECIAL CONSIDERATION IN SEVERAL AREAS.
# RESTART DOWN-TIME IS IMPORTANT BECAUSE OF THE TRANSIENTS INTRODUCED
# BY THE THRUST VECTOR RETURN TO THE ACTUATOR MECHANICAL NULLS
# FOLLOWING TVC- AND OPTICS-ERROR-COUNTER-DISENABLES (CHANNEL 12).
# TVC USES A MIXTURE OF WAITLIST, T5, T6, AND JOB CALLS. THERE IS
# FILTER MEMORY (UP TO 6TH ORDER) TO BE PROTECTED IF WILD TRANSIENTS
# ARE TO BE AVOIDED. COUNTERS ARE INVOLVED FOR ONE-SHOT
# CORRECTIONS AND GAIN UPDATES. THE GIMBAL TRIM ESTIMATORS AND THE
# BODY AXIS ATTITUDE ERROR INTEGRATORS INVOLVE DIGITAL SUMMATION.
# DIGITAL DIFFERENTIATORS ARE INVOLVED IN THE BODY AXIS RATE ESTIMA-
# TIONS AND IN THE OUTPUTTING OF ACTUATOR COMMANDS. THERE IS AN
# OFFSET-TRACKER-FILTER TO PROTECT. ETC., ETC.
# *THOSE QUANTITIES WHICH MUST BE PROTECTED ARE STORED IN TEMPORARY
# REGISTERS AS THEY ARE COMPUTED, FOR UPDATING THE REAL REGISTERS
# DURING COPYCYCLES.
# *THE SEVERAL COPYCYCLES ARE EACH PROTECTED BY PHASE POINTS AT THEIR
# BEGINNING AND AT THEIR TERMINATION. THE PHASE POINTS ARE SIMPLY
# ..INCR.. INSTRUCTIONS, EITHER ..INCR TVCEXPHS.. FOR COPYCYCLES
# IN THE TVCEXECUTIVE, OR ..INCR TVCPHASE.. FOR THE PITCH AND YAW
# COPYCYCLES. INDEXING ON EACH OF THESE POINTERS THEN PERMITS A
# RETURN TO THE APPROPRIATE RESTART POINTS.
# *IF A RESTART OCCURS DURING EITHER COPYCYCLE, THAT COPYCYCLE IS
# COMPLETED. THEN THE NORMAL TVCINIT4....DAPINIT....PITCHDAP STARTUP
# SEQUENCE IS CALLED UPON TO GET THINGS GOING AGAIN.
# *TVC-ENABLE AND OPTICS-ERROR-COUNTER ENABLE MUST BE SET ASAP
# (ALLOWING FOR PROCEDURAL DELAYS). THEN THE ENGINES ARE COMMANDED
# TO THE P,YACTOFF TRIM VALUES. THE DAPS ARE THEN READY TO GO ON THE
# AIR, WITH THE REGULAR STARTUP SEQUENCE, EITHER AT MRCLEAN FOR A
# COMPLETE INITIALIZATION OR AT TVCINIT4 FOR A PARTIAL INITIALIZATION
# *FOR RESTARTS PRIOR TO THE SETTING OF THE T5 BITS AT DOTVCON THE
# PRE40.6 SECTION OF S40.6 TAKES CARE OF RE-ESTABLISHING TRIMS.
# *IF A RESTART OCCURS DURING THE TVCEXEC....TVCEXFIN SEQUENCE THE
# COMPUTATIONS WILL BE COMPLETED, STARTING AT THE APPROPRIATE RESTART
# POINT, AFTER THE DAPS ARE READY TO GO ON THE AIR.
# *IF A RESTART OCCURS PRIOR TO TVCINIT4 (TVCPHASE = -1) E.G. DURING
# THE EARLY DAP INITIALIZATION PHASE, THE DAP STARTUP SEQUENCE IS
# ENTERED AT MRCLEAN FOR A FULL INITIALIZATION.
# *FOR RESTARTS DURING CSM/LM V46 SWITCH-OVER, TVCPHASE IS SET TO -2,
# AND THE RESTART LOGIC GOES BACK TO REDO SWITCH-OVER (AFTER THE
# NORMAL DAP RESTART SEQUENCE IS FOLLOWED).
# *RESTARTS ARE NOT CRITICAL TO THE ROLL DAP PERFORMANCES HENCE THE
# ROLL DAP IS MERELY RESTARTED.
# *RESTARTS DURING A STROKE TEST (STROKER IS NON-ZERO) WILL CAUSE THE
# Page 957
# STROKE TEST TO BE TERMINATED. A NEW V68 ENTRY WILL BE REQUIRED
# TO GET IT GOING AGAIN (NO AUTOMATIC RESTART).
# *REDOTVC IS REACHED FOLLOWING ANY RESTART WHICH FINDS THE T5 BITS
# (BITS 15,14 OF FLAGWRD6) SET FOR TVC. DOTVCON SETS TVCPHASE = -1
# AND TVC EXPHS = 0 JUST BEFORE SETTING THESE BITS, JUST BEFORE
# MAKING THE T5 CALL TO TVCDAPON. ON A NORMAL SHUTDOWN DOTVCRCS
# CALLS RCSDAPON, WHICH RESETS THE T5 BIT FOR RCS.
# CALLING SEQUENCE....T5, IN PARTICULAR BY ELRSKIP OF FRESH START/RESTART
#
# NORMAL EXIT MODES....RESUME, NOQRSM, POSTJUMP (TO TVCINIT4 OR MRCLEAN)
#
# ALARM OR ABORT EXIT MODES....NONE
#
# SUBROUTINES CALLED....
#
# *PCOPY+1, YCOPY+1 (PITCH AND YAW COPYCYCLES)
# *ENABLE1,2, CMDSOUT (RE-ESTABLISH ACTUATOR TRIMS)
# *MRCLEAN OR TVCINIT4 (TVCDAP INITIALIZATIONS)
# *SWICHOVR +5 (CSM/LM V46 SWITCH-OVER)
# *EXRSTRT AND TVCEXECUTIVE PHASE POINTS 1 THRU 6
# *WAITLIST, IBNKCALL, POSTJUMP, ISWCALL
#
# OTHER INTERFACES....DOTVCON AND RCSDAPON (T5 BITS), ELRSKIP (CALLS IT)
# ERASABLE INITIALIZATION REQUIRED....
#
# *T5 BITS (1,0), TVCPHASE (-2,-1,0,1,2,3), TVCEXPHS (1 THRU 6)
# *TVC DAP VARIABLES
# *OPERATIONS PERFORMED BY REDOTVC ARE BASED ON THE ASSUMPTION THAT
# THE TVC DAPS ARE RUNNING NORMALLY
#
# OUTPUT....
#
# *PITCH AND YAW TVC DAP COPYCYCLES COMPLETED IF INTERUPTED
# *TVCEXECUTIVE COMPLETED IF INTERUPTED
# *STROKE TEST TERMINATED IF INTERRUPTED
# *CSM/LM V46 SWITCH-OVER REPEATED IF INTERRUPTED
# *ACTUATOR TRIMS RE-ESTABLISHED (ACTUATORS BACK ON THE AIR)
# *TVC DAP INITIALIZATION AS REQUIRED
# *ALL TVC DAP OPERATIONS ON THE AIR
#
# DEBRIS....TVC TEMPORARIES IN EBANK6
# Page 958
BANK 16
SETLOC DAPROLL
BANK
EBANK= TVCPHASE
COUNT* $$/RSRT
REDOTVC LXCH BANKRUPT # TVC RESTART PACKAGE
EXTEND
QXCH QRUPT # ( ..TCR.. IN ..FINCOPY.. )
EXECPHS CCS TVCEXPHS # CHECK TVCEXECUTIVE PHASE
TCF +2 # MUST RESTART TVCEXECUTIVE
TCF TVCDAPHS # NO NEED TO RESTART TVCEXECUTIVE
CAF NINE # 9CS DELAY TO FORCE EXRSTRT TO OCCUR
TC WAITLIST # BEFORE PITCHDAP, AFTER CMDSOUT
EBANK= TVCEXPHS
2CADR EXRSTRT
TVCDAPHS CS OCT37776 # CHECK BITS 15 AND 1 OF TVCPHASE TO SEE
MASK TVCPHASE # DAP RESTART LOCATION (-1,1,2,3)
CCS A
TCF FINCOPY # FINISH THE COPYCYCLE FIRST
TCF ENABL1 # JUST PREPARE THE OUTCOUNTERS AND GO
CS TVCPHASE # TEST FOR TVCPHASE = -2
MASK BIT2 # (THIS INDICATES RESTART OCCURRED
EXTEND # DURING CSM/LM V46 SWITCH-OVER)
BZF TRIM/CMD # NO. TVCPHASE = -1. RSTRT WAS IN TVCINIT
ENABL1 CAF BIT8 # TVC ENABLE, FOLLOWED BY 40 MS (MIN) WAIT
AD BIT11 # SET BIT FOR OPTICS-DAC-ENABLE ALSO
EXTEND # (ENABL1 ENTERED FROM TVCDAPHS / FINCOPY)
WOR CHAN12
CAF TVCADDR # WAIT. CALLING ENABL2 (BBCON THERE)
TS T5LOC
CAF TVCADDR +4 # 60 MS (TVCEXADR)
TS TIME5
TCF RESUME
ENABL2 LXCH BANKRUPT # CONTINUE PREPARATION OF OUTCOUNTERS
CAF BIT2 # OPTICS ERROR CNTR ENABLE. 4MS MIN WAIT
EXTEND
WOR CHAN12
# Page 959
CAF TVCADDR +2 # WAIT, CALLING CMDSOUT (BBCON THERE)
TS T5LOC
CAF OCT37776 # 20MS
TS TIME5
TCF NOQRSM
CMDSOUT LXCH BANKRUPT # CONTINUE PREPARATION OF OUTCOUNTERS
EXTEND
QXCH QRUPT
CS ZERO # MOST RECENT ACTUATOR COMMANDS
AD PCMD # (AVOID +0)
TS TVCPITCH
CS ZERO
AD YCMD
TS TVCYAW
CAF PRIO6 # RELEASE THE COUNTERS (BITS 11,12)
EXTEND
WOR CHAN14
PHSCHK2 CCS TVCPHASE # CHECK TVCPHASE AGAIN
TCF CHKSTRK
TCF CHKSTRK
CCS A # A CONTAINS THE DIMINISHED ABSOLUTE OF
TC +3 # TVCPHASE (-2 BECOMES +1, -1 BECOMES +0)
TC POSTJUMP # REPEAT TVC INITIALIZATION
CADR MRCLEAN # (DO NOT RETURN)
+3 TC IBNKCALL # REPEAT CSM/LM V46 SWITCH-OVER
CADR SWICHOVR +5 # (RETURN TO CHECK FOR STROKE TEST)
CHKSTRK CCS STROKER # CHECK FOR STROKE TEST IN PROGRESS
TCF TSTINITJ # YES, KILL IT
TCF +2 # NO, PROCEED
TCF TSTINITJ # YES, KILL IT
+4 TC POSTJUMP # IF POSITIVE OR ZERO, RESTART AT
CADR TVCINIT4 # TVCINIT4 (ZEROS TVCPHASE, AND
# CALLS TVC DAPS VIA DAPINIT)
FINCOPY INDEX TVCPHASE # PICK UP THE APPROPRIATE COPYCYCLE
CAF TVCCADR
TCR ISWCALL # RE-ENTER THE COPYCYCLE, RETURN AT END
TCF ENABL1 # NOW PREPARE THE OUTCOUNTERS
TRIM/CMD EXTEND # TVCDAPON INITIALIZATION NOT COMPLETED,
# Page 960
DCA PACTOFF # EG. P,YCMD MAY NOT BE SET. SET...
DXCH PCMD
TCF ENABL1 # NOW PREPARE THE OUTCOUNTERS
TSTINITJ CAF ZERO # DISABLE STROKE TEST (-0 SHOWS PRIOR V68)
TS STROKER # (+0 MEANS NEW V68 REQUIRED FOR STARTUP)
TCF CHKSTRK +4
EXRSTRT INDEX TVCEXPHS # TVCEXECUTIVE RESTARTS....GO TO
CAF TVCEXADR # APPROPRIATE RESTART POINT
INDEX A
TCF 0
# TVC RESTART TABLES.... ORDER IS REQUIRED. HI-ORDER WORDS ONLY, OF 2CADRS, SINCE BBCON IS ALREADY THERE.
TVCADDR = TVCCADR # TABLE OF CADRS, UNUSED LOCS FOR GENADRS
TVCCADR GENADR ENABL2 # (FOR T5 CALL, UNUSED TABLE LOC)
+1 CADR PCOPY +1 # PITCH COPYCYCLE
+2 GENADR CMDSOUT # (FOR T5 CALL, UNUSED TABLE LOC)
+3 CADR YCOPY +1 # YAW COPYCYCLE
TVCEXADR OCT 37772 # (UNUSED TABLE LOC, FILL WITH 60MS, T5)
+1 GENADR EXECCOPY +1 # TVCEXECUTIVE RESTART POINTS (ORDERED)
+2 GENADR 1SHOTCHK
+3 GENADR TEMPSET
+4 GENADR CORSETUP
+5 GENADR CORCOPY +1
+6 GENADR CNTRCOPY

View File

@ -1,619 +0,0 @@
# Copyright: Public domain.
# Filename: TVCROLLDAP.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 984-998
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 984
# PROGRAM NAME...TVC ROLL AUTOPILOT
# LOG SECTION...TVCROLLDAP SUBROUTINE...DAPCSM
# MOD BY SCHLUNDT 21 OCTOBER 1968
# FUNCTIONAL DESCRIPTION....
# *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER
# *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN
# BY IGNITION (P40)
# *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE
# *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3
# *USES T6 CLOCK TO TIME JET FIRINGS
# *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER
# *MINIMUM JET FIRING TIME = 15 MS
# *JET PAIRS FIRE ALTERNATELY
# *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED
# *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION
# OF A JET FIRING TIME IS MADE ON A LATER PASS
# CALLING SEQUENCE....
# *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC)
# WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.)
# NORMAL EXIT MODES.... ENDOFJOB
# ALARM OR ABORT EXIT MODES.... NONE
# SUBROUTINES CALLED.....NONE
# OTHER INTERFACES....
# *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC
# EVERY 10 SECONDS (VIA MASSPROP AND S40.15)
# *RESTARTS SUSPEND ROLL DAP COMPUTATIONS UNTIL THE NEXT 1/2 SEC
# SAMPLE PERIOD. (THE PART OF TVCEXECUTIVE THAT CALLS ROLL DAP IS
# NOT RESTARTED.) THE OGAD FROM IGNITION IS MAINTAINED.
# ERASABLE INITIALIZATION REQUIRED....
# *1/CONACC (S40.15)
# *OGAD (CDUX AT IGNITION)
# *OGANOW (CDUX AT TVCINIT4 AND TVCEXECUTIVE)
# *OGAPAST (OGANOW AT TVCEXECUTIVE)
# *ROLLFIRE = TEMREG = ROLLWORD = 0 (MRCLEAN LOOP IN TVCDAPON)
#
# OUTPUT....
# *ROLL JET PAIR FIRINGS
# Page 985
# DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
# Page 986
# SOME NOTES ON THE ROLL AUTOPILOT, AND IN PARTICULAR, ON ITS SWITCHING
# LOGIC. SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS.
# SWITCHING LOGIC IN THE PHASE PLANE....
# OGARATE
# *
# *
# * * * * * * * * * * * *
# * (REGION 1, SEE TEXT BELOW)
# * *
# *
# * * * * * * * (COAST) * ...PARABOLA (SWITCHING = CONTROL)
# * * .
# * * *
# * * (FIRE NEG ROLL JETS)
# * * *
# (-DB,+LMCRATE)....* *
# * * *
# * * OGAERROR
# ************************************************************************
# * * (-AK, OGAERR)
# * * * (REGION 6-PRIME)
# * * (SEE TEXT BELOW)
# * * *
# * * ...STRAIGHT LINE
# (FIRE POS ROLL JETS) * * * .
# * (COAST) *
# * * * * * * * * * * *
# * -MINLIM
# * *
# *
# * * * * * * * * * * * * * * * *
# * -MAXLIM
# *
# *
# SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF
# CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC
# ROLL DAP GAIN (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE). JET
# FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE,
# SUBJECT TO THE LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION,
# ABOVE.
# THE THREE CONTROL REGIONS (+, -, AND ZERO TORQUE) ARE COMPRIZED OF
# TWELVE SUBSET REGIONS ( 1...6, AND THE CORRESPONDING 1-PRIME...
# 6-PRIME ) SEE SECTION 3 OF THE GSOP (SUNDISK OR COLOSSUS)
# Page 987
#
# GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE
# IS AT THE POINT OF PENETRATION OF THE COAST REGION BY THE CONTROL
# PARABOLA WHICH PASSES THROUGH THE OPERATING POINT. FOR REGION 3
# DESIRED OGARATE IS SIMPLY +-MAXLIM. FOR REGIONS 1 OR 6 THE SOLUTION
# TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT
# LINE OR MINLIM BOUNDRY SWITCH LINES). AN APPROXIMATION IS MADE
# INSTEAD. TAKE AN OPERATING POINT IN REGION 6' . PASS A TANGENT TO
# THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS
# INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE...
# THE INTERSECTION DEFINES THE DESIRED OGARATE. IF THE OPERATING POINT IS
# CLOSE TO THE SWITCH LINE, THE APPROXIMATION IS QUITE GOOD (INDEED
# THE APPROXIMATE AND QUADRATIC SOLUTIONS CONVERGE IN THE LIMIT AS
# THE SWITCH LINE IS APPROACHED). IF THE OPERATING POINT IS NOT CLOSE
# TO THE SWITCH LINE, THE APPROXIMATE SOLUTION GIVES VALID TREND
# INFORMATION (DIRECTION OF DESIRED OGARATE) AT LEAST. THE
# RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2
# SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE
# APPROXIMATION.
# FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDARY BEFORE
# INTERSECTING THE STRAIGHT LINE SWITCH. HOWEVER THE MINLIM IS
# IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO
# THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO.
# IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING
# THE DESIRED INTERSECTION (IE. IN THE REGION BETWEEN THE MINLIM
# AND THE STRAIGHT LINE SWITCH) IT WILL EXHIBIT NORMAL COAST-REGION
# BEHAVIOR AND TURN OFF THE JETS. THE PURPOSE OF THIS FIRING POLICY
# IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET
# FAILED-ON.
# WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS
# MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT,
# DEFINED BY.. OGAERROR = INTERSECTION OF CONTROL PARABOLA AND
# OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF
# REAL OPERATING POINT RATE. WHEN THE OPERATING POINT HAS PASSED
# FROM REGION 1 TO REGION 6', THE DUMMY POINT IS NO LONGER REQUIRED,
# AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6' POINT.
# EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE)....
# 2
# SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE)
# EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT....
# SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP
# WHERE INTERCEP = DB(-SLOPE) - LMCRATE
# Page 988
#
# EQUATION FOR INTERSECTION, CONTROL PARABOLA AND STRAIGHT SWITCH LINE....
# DOGADOT = NUM/DEN, WHERE
# 2
# NUM = (-SLOPE)(OGARATE) (1/CONACC)
# +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB))
# +LMCRATE
# DEN = (-SLOPE)(LMCRATE)(1/CONACC) - SGN(DELOGA)
# 2
# DELOGA = OGAERROR - (DB - (OGADOT) (1/CONACC)/2) SGN(OGARATE)
# FOR REGIONS 6 AND 6-PRIME USE ACTUAL OPERATING POINT (OGA, OGARATE)
# FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE.
# FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR
# AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY....
# OGAERROR= DELOGA + DB SGN(OGARATE)
# OGARATE= -LMCRATE SGN(OGARATE)
#
# NOTE, OGAERROR = OGA - OGAD USES DUMMY REGISTER OGA IN ROLL DAP CODING
# ALSO, AT POINT WHERE DOGARATE IS COMPUTED, REGISTER DELOGA IS USED
# AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE
# Page 989
# ROLLDAP CODING....
SETLOC DAPROLL
BANK
EBANK= OGANOW
COUNT* $$/ROLL
ROLLDAP CAE OGANOW # OGA RATE ESTIMATOR...SIMPLE FIRST-ORDER
EXTEND # DIFFERENCE (SAMPLE TIME = 1/2 SEC)
MSU OGAPAST
EXTEND
MP BIT5
LXCH A
TS OGARATE # SC.AT B-4 REV/SEC
# COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER)
# EXAMINE DURATION OF LAST JET FIRING IF JETS ARE NOW ON.
DURATION CA ROLLFIRE # SAME SGN AS PRESENT TORQ,MAGN=POSMAX
EXTEND
BZF +2 # ROLL JETS ARE NOW OFF.
TCF ROLLOGIC # ENTER LOGIC,JETS NOW ON.
CAE TEMREG # EXAMINE LAST FIRING INTERVAL
EXTEND # IF POSITIVE, DONT FIRE
BZF ROLLOGIC # ENTER LOGIC, JETS NOW OFF.
CAF ZERO # JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT
TS TEMREG # RESET TEMREG
WAIT1/2 TCF TASKOVER # EXIT ROLL DAP
# COMPUTE DB-(1/2 CONACC) (OGARATE)SQ (1/2 IN THE SCALING)
ROLLOGIC CS OGARATE # SCALED AT 2(-4) REV/SEC
EXTEND
MP 1/CONACC # SCALED AT 2(+9) SEC SQ /REV
EXTEND
MP OGARATE
AD DB # SCALED AT 2(+0) REV
TS TEMREG # QUANTITY SCALED AT 2(+0) REV.
# GET SIGN OF OGARATE
CA OGARATE
EXTEND
BZMF +3 # LET SGN(0) BE NEGATIVE
CA BIT1
TCF +2
CS BIT1
TS SGNRT # + OR - 2(-14)
# Page 990
# CALCULATE DISTANCE FROM SWITCH PARABOLA (DELOGA)
EXTEND
MP TEMREG # SGN(OGARATE) TEMREG NOW IN L
CS L
AD OGA # SCALED AT 2(+0) REV
DELOGAC TS DELOGA # SC.AT B+0 REV, PLUS TO RIGHT OF C-PARAB
# EXAMINE SGN(DELOGA) AND CREATE CA OR CS INSTR. DEPENDING UPON SIGN.
EXTEND
BZMF +3
CAF PRIO30 # =CA (30000)
TCF +2
CAF BIT15 # =CS (40000)
TS I
INDEX I # TSET ON I SGN(OGARATE)
0 SGNRT # CA OR CS
COM
EXTEND
REG1TST BZMF ROLLON # IF REGION 1 (DELOGA OGARATE SAME SIGN)
# NO JET FIRE YET. TEST FOR MAX OGARATE
INDEX I
0 OGARATE # CA OR CS...BOTH MUST BE NEG. HERE
TS IOGARATE # I.E. I OGARATE
AD MAXLIM # SCALED AT 2(-4) REV/SEC
EXTEND
REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS)
# COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT..NOTE THAT STR. LINE
# SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG, A NEG QUANTITY
CA OGARATE
EXTEND
MP BIT14
TS TEMREG
CA OGA
EXTEND
MP -SLOPE
DDOUBL
DDOUBL
DDOUBL # (OGA ERROR MUST BE LESS THAN +-225 DEG)
AD TEMREG
INDEX I
0 A # I((-SLOPE)OGA+OGARATE) AT 2(-3)REV/SEC
COM
# Page 991
AD INTERCEP # SCALED AT 2(-3) REV.
COM
EXTEND
REG2TST BZMF NOROLL # IP REGION 2 (COAST SIDE OF STRT LINE)
# CHECK TO SEE IF OGARATE IS ABOVE MINLIM BOUNDARY
CA IOGARATE # ALWAYS NEGATIVE
AD MINLIM # SCALED AT 2(-4) REV/SEC
EXTEND
REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM)
# ALL AREAS CHECKED EXCEPT LAST AREA...NO FIRE IN THIS SMALL SEGMENT
INDEX I
0 OGA
COM
AD DB
COM
EXTEND
REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB)
# JETS MUST FIRE NOW.OGARATE IS NEG.(OR VICE VERSA).USE DIRECT STR. LINE.
# DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN THE SOLUTION OF A
# STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION
# OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE. THE STRAIGHT
# LINE IS THE TANGENT TO THE CONTROL PARABOLA AT THE OPERATING POINT. (FOR
# OPERATING POINTS IN REGIONS 6 AND 6')
REGION6 CAE OGA # USE ACTUAL OPERATING POINT FOR TANGENT
TS DELOGA # ACTUAL STATE
CA OGARATE
TS DELOGART # ACTUAL STATE,I.E. DEL OGARATE
TCF ONROLL
# JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS (VICE VERSA),USE INDIRECT
# STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT ((DELOGA
# + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) ) (THIS IS THE DUMMY
# OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1' )
ROLLON INDEX I
0 DB
ADS DELOGA # DELOGA WAS DIST. FROM SWITCH PARABOLA
CS LMCRATE # LIMIT CYCLE RATE AT 2(-4) REV/SEC
INDEX I
0 A
TS DELOGART # EVALUATE STATE FOR INDIRECT LINE.
# Page 992
# SOLVE STRAIGHT LINES SIMULTANEOUSLY TO OBTAIN DESIRED OGARATE.
ONROLL EXTEND # DELOGART IN ACC. ON ARRIVAL
MP 1/CONACC
DOUBLE
EXTEND
MP -SLOPE
TS TEMREG # 2(-SLOPE)RATE /CONACC
EXTEND
MP DELOGART
TS DELOGART # 2(-SLOPE)(RATESQ)/CONACC
CS BIT11
INDEX I
0 A
RATEDEN ADS TEMREG # DENOMINATOR COMPLETED
INDEX I
0 DELOGA
COM
AD DB
COM
EXTEND
MP -SLOPE
ADS DELOGART
CA LMCRATE
EXTEND
MP BIT11
RATENUM AD DELOGART # NUMERATOR COMPLETED
XCH L # PLACE NUMERATOR IN L FOR OVERFL. CHECK
CA ZERO
EXTEND
DV TEMREG # OVERFLOW, IF ANYTHING, NOW APPEARS IN A
EXTEND
BZF DVOK # NO OVERFLOW....(0,L)/TEMREG = 0,L
MINLIMAP CCS A
CAF POSMAX # POSITIVE OVERFLOW
TCF ROLLSET
CS POSMAX # NEGATIVE OVERFLOW
TCF ROLLSET
DVOK LXCH A # PUT NUMERATOR BACK INTO A, 0 INTO L
EXTEND
DV TEMREG # RESULT OF DIVISION IS DESIRED OGARATE
TCF ROLLSET # ( SCALED AT B-4 REV/SEC )
RATELIM CS MAXLIM
INDEX I
# Page 993
0 A # IF I = CA, DESIRED RATE IS -MAXLIM
# COMPUTE JET FIRE TIME, BASED ON DESIRED RATE MINUS PRESENT RATE
ROLLSET TS TEMREG # STORE DESIRED OGARATE (SCALED B-4)
EXTEND
SU OGARATE # RATE DIFF. SCALED AT 2(-4) REV/SEC
TS TEMREG # OVERFLOW PROTECT
TCF +3 # " "
INDEX A # " "
CS LIMITS # " "
EXTEND
MP T6SCALE # T6SCALE = 8/10.24
EXTEND
MP 1/CONACC # SCALED AT B+9 SECSQ/REV (MAX < .60)
DDOUBL
DDOUBL
TS TEMREG # OVERFLOW PROTECT
TCF +3 # " "
INDEX A # " "
CS LIMITS # " "
TS TEMREG # JET FIRE TIME AT 625 MICROSEC/BIT
EXTEND # POS MEANS POSITIVE ROLL TORQUE.
BZF NOROLL
# JET FIRE TIME IS NZ, TEST FOR JETS NOW ON.
CAE TEMREG # DESIRED CHANGE IN OGARATE
EXTEND
MP ROLLFIRE # (SGN OF TORQUE..ZERO IF JETS NOW OFF)
CCS A
TCF MOREROLL # CONTINUE FIRING WITH PRESENT POLARITY
TCF NEWROLL # START NEW FIRING NOW, PLUS
TCF NOROLL # TERMINATE OLD FIRING, NEW SIGN REQUESTED
TCF NEWROLL # START NEW FIRING NOW, MINUS
# CONTINUE PRESENT FIRING
MOREROLL CAF ZERO
TS I # USE TEMP. AS MOREROLL SWITCH
TCF MAXTFIRE
# START NEW FIRING BUT CHECK IF GREATER THAN MIN FIRE TIME.
NEWROLL CCS TEMREG # CALL THIS T6FIRE
AD ONE
TCF +2
AD ONE
COM # -MAG(T6FIRE)
AD TMINFIRE # TMINFIRE-MAG(T6FIRE)
# Page 994
COM
EXTEND
MINTST BZMF NOROLL # IF NOT GREATER THAN TMINFIRE (NEW FIRE)
# PROCEED WITH NEW FIRING BUT NOT LONGER THAN TMAXFIRE.
MAXTFIRE CA TEMREG
EXTEND
MP 1/TMXFIR # I.E. 1/TMAXFIRE
EXTEND
MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE
CCS A
CAF TMAXFIRE # USE MAXIMUM
TCF +2
CS TMAXFIRE # USE MAXIMUM
TS TEMREG
# SET UP SIGN OF REQUIRED TORQUE.
NOMXFIRE CCS TEMREG # FOR TORQUE SIGN
CA POSMAX # POSITIVE TORQUE REQUIRED
TCF +2
CA NEGMAX # NEGATIVE TORQUE REQUIRED
TS ROLLFIRE # SET ROLLFIRE FOR + OR - TORQUE
COM # COMPLEMENT... POS. FOR NEG. TORQUE
EXTEND
BZMF +3 # POSITIVE TORQUE REQUIRED
CS TEMREG
TS TEMREG
FIRELOOK CA I # IS IT MOREROLL
EXTEND
BZF FIREPLUG # YES
TCF JETROLL # MAG(T6FIRE) NOW IN TEMREG
FIREPLUG CAE TIME6 # CHECK FOR EXTENDED FIRING
EXTEND
SU TEMREG
EXTEND
EXTENTST BZMF TASKOVER # IF EXTENSION WANTED, DONT, EXIT ROLL DAP
TCF JETROLL
NOROLL CS ZERO # COAST....(NEG ZERO FOR TIME6)
TS ROLLFIRE # NOTE, JETS CAN FIRE NEXT PASS
TS TEMREG
JETROLL EXTEND
DCA NOROL1T6
# Page 995
DXCH T6LOC
CA TEMREG # ENTER JET FIRING TIME
TS TIME6
CA I # I=0 IF MOREROLL,KEEP SAME JETS ON
EXTEND
SAMEJETS BZF TASKOVER # IF JETS ON KEEP SAME JETS. EXIT ROLL DAP
CCS ROLLFIRE
TCF +TORQUE
TCF T6ENABL
TCF -TORQUE
TCF T6ENABL
# PROCEED WITH + TORQUE
+TORQUE CA ROLLWORD # WHAT WAS THE LAST +TORQUE COMBINATION
MASK BIT1 # WAS IT NO.9-11
EXTEND
BZF NO.9-11 # NOT 9-11, SO USE IT THIS TIME
NO.13-15 CS BIT1
MASK ROLLWORD
TS ROLLWORD # CHANGE BIT 1 TO ZERO
CAF +ROLL2
EXTEND
WRITE CHAN6
TCF T6ENABL
NO.9-11 CAF BIT1 # 1ST + JETS TO FIRE (MRCLEAN OS ROLLWORD)
ADS ROLLWORD # CHANGE BIT 1 TO ONE
CAF +ROLL1
EXTEND
WRITE CHAN6
TCF T6ENABL
-TORQUE CA ROLLWORD # WHAT WAS LAST -TORQUE COMBINATION
MASK BIT2 # WAS IT NO.12-10
EXTEND
BZF NO.12-10 # NOT 12-10, SO USE IT THIS TIME
NO.16-14 CS BIT2
MASK ROLLWORD
TS ROLLWORD # CHANGE BIT 2 TO ZERO
CAF -ROLL2
EXTEND
WRITE CHAN6
TCF T6ENABL
NO.12-10 CAF BIT2 # 1ST -JETS TO FIRE (MRCLEAN OS ROLLWORD)
# Page 996
ADS ROLLWORD # CHANGE BIT 2 TO ONE
CAF -ROLL1
EXTEND
WRITE CHAN6
T6ENABL CAF BIT15
EXTEND
WOR CHAN13
RDAPEND TCF TASKOVER # EXIT ROLL DAP
# Page 997
# THIS T6 TASK SHUTS OFF ALL ROLL JETS
NOROLL1 LXCH BANKRUPT # SHUT OFF ALL (ROLL) JETS, (A T6 TASK
CAF ZERO # CALLED BY ..JETROLL..)
TS ROLLFIRE # ZERO INDICATES JETS NOW OFF
EXTEND
KILLJETS WRITE CHAN6
TCF NOQRSM
# Page 998
# CONSTANTS FOR ROLL AUTOPILOT....
EBANK= BZERO
NOROL1T6 2CADR NOROLL1
DB DEC .01388889 # DEAD BAND (5 DEG), SC.AT B+0 REV
-SLOPE DEC 0.2 # -SWITCHLINE SLOPE(0.2 PER SEC) SC.AT B+0
# PER SEC
LMCRATE DEC .00027778 B+4 # LIMIT CYCLE RATE (0.1 DEG/SEC) SC.AT
# B-4 REV/SEC
INTERCEP DEC .0025 B+3 # DB(-SLOPE) - LMCRATE, SC.AT B-3 REV/SC
MINLIM DEC .00277778 B+4 # RATELIM,MIN (1DEG/SEC), SC.AT B-4 REV/SC
1/MINLIM DEC 360 B-18 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT
MAXLIM DEC .01388889 B+4 # RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC
TMINFIRE DEC 1.5 B+4 # 15 MS (14MIN), SC.AT 16 BITS/CS
TMAXFIRE DEC 250 B+4 # 2.5 SEC, SC.AT 16 BITS/CS
1/TMXFIR = BIT3 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT,
# ROUNDS TO OCT00004, SO ALLOWS 2.56
# SEC FIRINGS BEFORE APPLYING LIMIT
T6SCALE = PRIO31 # (B+3) (16 BITS/CS) (100CS/SEC)
+ROLL1 = FIVE # ONBITS FOR JETS 9 AND 11
+ROLL2 = OCT120 # ONBITS FOR JETS 13 AND 15
-ROLL1 = TEN # ONBITS FOR JETS 12 NAD 10
-ROLL2 OCT 240 # ONBITS FOR JETS 16 AND 14

View File

@ -1,260 +0,0 @@
# Copyright: Public domain.
# Filename: TVCSTROKETEST.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 979-983
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 979
# NAME STROKE TEST PACKAGE (INCLUDING INITIALIZATION PACKAGE)
# LOG SECTION...TVCSTROKETEST SUBROUTINE...DAPCSM
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
#
# FUNCTIONAL DESCRIPTION....
# STROKE TEST PACKAGE GENERATES A WAVEFORM DESIGNED TO EXCITE BENDING
# STRKTSTI (STROKE TEST INITIALIZATION) IS CALLED AS A JOB BY VB68.
# IT INITIALIZES ALL ERASABLES REQD FOR A STROKE TEST, AND
# THEN TESTS FOR CSM/LM (BIT 13 OF DAPDATR1). IF CSM/LM,
# IN EITHER HIGH OR LOW-BANDWIDTH MODE, THE TEST IS STARTED
# IMMEDIATELY. IF NOT CSM/LM, PROGRAM EXITS WITH NO ACTION.
# HACK (STROKE TEST) GENERATES THE WAVEFORM BY DUMPING PULSE BURSTS
# OF PROPER SIGN AND IN PROPER SEQUENCE DIRECTLY INTO
# TVCPITCH, WORKING IN CONJUNCTION WITH BOTH PITCH AND YAW
# TVC DAPS, WITH INTERMEDIATE WAITLIST CALLS. NOTE, HOWEVER
# THAT THE STROKE TEST IS PERFORMED ONLY IN THE PITCH AXIS.
# AN EXAMPLE WAVEFORM IS GIVEN BELOW, TO DEMONSTRATE STROKE-
# TEST PARAMETER SELECTION.
# RESTARTS CAUSE TEST TO BE TERMINATED. ANOTHER V68 REQD IF TEST
# IS TO BE RE-RUN.
# PULSE BURST SIZE IS PAD-LOADED (ESTROKER) SO THAT AMPLITUDE OF
# WAVEFORM CAN BE CHANGED. THERE ARE TEN PULSE BURSTS IN
# THE HALF-AMPLITUDE OF THE FIRST FREQUENCY SET IN THE
# STANDARD WAVEFORM. AMPLITUDE IS 10(ESTROKER)(1/42.15),
# NOMINALLY 50/42.15 = 1.185 DEG
#
# CALLING SEQUENCE....
# EXTENDED VERB 68 SETS UP STRKTSTI JOB
# PITCH AND YAW TVCDAPS, FINDING STROKER NON-ZERO, DO A ..TC HACK..
# AN INTERNALLY-GENERATED WAITLIST CALL ENTERS AT ..HACKWLST..
#
# NORMAL EXIT MODES....
# TC BUNKER (..Q.. IF ENTRY FROM DAP, ..TCTSKOVR.. IF FROM WAITLIST) LIST
#
# SUBROUTINES CALLED....
# WAITLIST
#
# ALARM OR ABORT EXIT MODES....
# NONE
#
# ERASABLE INITIALIZATION REQUIRED....
# ESTROKER (PAD-LOAD)
# STROKER, CADDY, REVS, CARD, N
#
# OUTPUT....
# STRKTSTI...INITIALIZATION FOR STROKE TEST
# HACK, HACKWLST...PULSE BURSTS INTO TVCPITCH VIA..ADS..
# RESETS STROKER = +0 WHEN TEST COMPLETED
#
# DEBRIS....
# N = CADDY = +0, CARD = -0, REVS = -1
# BUNKER
# Page 980
#
# EXAMPLE STROKE TEST WAVE FORM, DEMONSTRATING PARAMETER SELECTION
# NOTE....THIS IS NOT THE OFFICIAL WAVEFORM....
#
# ** **
# ** **
# ** ** EXAMPLE WAVEFORM (EACH * REPRESENTS
# * * * * (85.41 ARCSEC OF ACTUATOR CMND)
# * * * *
# * * * *
# * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# ----------------------------------------------------------------------------------------------------
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * *
# * * * *
# * * * *
# ** **
# ** **
# ** **
#
# FOR THIS (UNOFFICIAL, EXAMPLE) WAVEFORM, THE REQUIRED PARAMETERS ARE AS FOLLOWS....
#
# FCARD = +3 (NUMBER OF SETS)
# ESTROKER = +3 (PULSE BURST SIZE, SC.AT 85.41 ARCSEC/BIT)
#
# SET1:
# FREVS = +3 (NUMBER REVERSALS MINUS 1)
# FCADDY = +4 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
# SET2:
# FCARD1 = +9 (NUMBER REVERSALS MINUS 1)
# FCARD4 = +2 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
# SET3:
# FCARD2 = +9 (NUMBER REVERSALS MINUS 1)
# FCARD5 = +1 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
# SET4:
# FCARD3 = +0 (NUMBER OF REVERSALS MINUS 1)
# FCARD6 = +0 (NUMBER OF PULSE BURSTS IN 1/2 AMPLUTUDE)
# Page 981
# STROKE TEST INITIALIZATION PACKAGE (AS A JOB, FROM VERB 68)
BANK 17
SETLOC DAPS2
BANK
COUNT* $$/STRK
EBANK= CADDY
STRKTSTI TCR TSTINIT # STROKE TEST INITIALIZATION PKG (CALLED
# AS A JOB BY VERB68)
STRKCHK INHINT
CAE DAPDATR1 # CHECK FOR CSM/LM CONFIGURATION
MASK BIT14
EXTEND
BZF +3
CAE ESTROKER # BEGIN ON NEXT DAP PASS (PITCH OR YAW)
TS STROKER # (STROKING DONE IN PITCH ONLY, HOWEVER)
TCF ENDOFJOB
TSTINIT CS FCADDY # NORMAL ENTRY FROM STRKTSTI
TS CADDY
TS N # NOTE SGN CHNG FCADDY(+) TO CADDY(-)
CAF FREVS
TS REVS
CS FCARD # NOTE SGN CHNG FCARD(+) TO CARD(-)
TS CARD
TC Q # RETURN TO STRKTSTI+1 (OR CHKSTRK+2OR+4)
# Page 982
# THE OFFICIAL STROKE TEST WAVEFORM (3 JAN, 1967) CONSISTS OF FOUR STROKE SETS, AS FOLLOWS....
#
# SET 1...10 BURSTS IN 1/2 AMP, 4 REVERSALS
# SET 2... 6 BURSTS IN 1/2 AMP, 6 REVERSALS
# SET 3... 5 BURSTS IN 1/2 AMP, 10 REVERSALS
# SET 4... 4 BURSTS IN 1/2 AMP, 14 REVERSALS
#
# THE PULSE BURST SIZE (ESTROKER) IS PAD-LOADED (5 BITS AS OF 3JAN,1967)
# THE REMAINING WAVEFORM-GENERATING PARAMETERS ARE AS FOLLOWS....
FCADDY DEC 10 # NO. PULSE BURSTS IN 1/2 AMP, SET1..(+10)
FREVS DEC 3 # NO. REVERSALS MINUS 1, SET1........( 3)
FCARD DEC 4 # NO. STROKE SETS....................(+ 4)
FCARD1 DEC 5 # NO. REVERSALS MINUS 1, SET2........( 5)
FCARD2 DEC 9 # 3........( 9)
FCARD3 DEC 13 # 4........( 13)
FCARD4 DEC 6 # NO. PULSE BURSTS IN 1/2 AMP, SET2..(+ 6)
FCARD5 DEC 5 # SET3..(+ 5)
FCARD6 DEC 4 # SET4..(+ 4)
20MS = BIT2
# STROKE TEST PACKAGE PROPER....
EBANK= BUNKER
HACK EXTEND # ENTRY (IN T5 RUPT) FROM TVCDAPS
QXCH BUNKER # SAVE Q FOR DAP RETURN
CAF 20MS # 2DAPSX2(PASSES/DAP)X2(CS/PASS)=8CS=TVCDT
TC WAITLIST
EBANK= BUNKER
2CADR HACKWLST
TCF +3
HACKWLST CAF TCTSKOVR # ENTRY FROM WAITLIST
TS BUNKER # BUNKER IS TC TASKOVER
CA STROKER # STROKE
ADS TVCPITCH
CAF BIT11 # RELEASE THE ERROR COUNTERS
EXTEND
WOR CHAN14
INCR CADDY # COUNT DOWN THE NO. BURSTS, THIS SLOPE
# Page 983
CS CADDY
EXTEND
BZMF +2
TC BUNKER # EXIT, WHILE ON A SLOPE
CCS REVS
TCF REVUP # POSITIVE REVS
TCF REVUP +4 # FINAL REVERSAL, THIS SET
INCR CARD # NEGATIVE REVS SET LAST PASS, READY FOR
CS CARD # THE NEXT SET. CHECK IF NO MORE SETS
EXTEND
BZF STROKILL # ALL SETS COMPLETED
INDEX CARD
CAF FCARD +4 # PICK UP NO. REVERSALS (-), NEXT SET
TS REVS # REINITIALIZE
INDEX CARD
CS FCARD +7 # PICK UP NO. BURSTS IN 1/2AMP, NEXT SET
TS N # REINITIALIZE
TS CADDY
TC BUNKER # EXIT, AT END OF SET
STROKILL TS STROKER # RESET (TO +0) TO END TEST
TC BUNKER # EXIT, STROKE TEST FINIS
REVUP TS REVS # ALL REVERSALS EXCEPT LAST OF SET
CA N
DOUBLE # 2 x 1/2AMP
TCF +4
+4 CS ONE # FINAL REVERSAL, THIS SET
TS REVS # PREPARE TO BRANCH TO NEW BURST
CA N # JUST RETURN TO ZERO, FINAL SLOPE OF SET
TS CADDY # CADUP
CS STROKER # CHANGE SIGN OF SLOPE
TS STROKER
TC BUNKER # EXIT AT A REVERSAL (SLOPE CHANGE)

View File

@ -1,555 +0,0 @@
# Copyright: Public domain.
# Filename: UPDATE_PROGRAM.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1497-1507
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-07 RSB Adapted from Colossus249/UPDATE_PROGRAM.agc
# and page images. Corrected various typos
# in the transcription of program comments,
# and these should be back-ported to
# Colossus249.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1497
# PROGRAM NAME: P27
# WRITTEN BY: KILROY/ DE WOLF
#
# MOD NO: 0
# MOD BY: KILROY
# DATE: 01DEC67
#
# LOG SECTION: UPDATE PROGRAM.
#
# FUNCT. DESCR.: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
# INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
# THE P27 PROGRAM WILL ACCEPT UPDATES
# ONLY DURING P00 FOR THE LM, AND ONLY DURING P00,
# P02, AND FRESH START FOR THE CSM.
#
# CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72, AND 73.
#
# SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
# INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
#
# NORMAL EXIT: TC ENDEXT
#
# ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT
#
# RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS ...
# 1. PRIOR TO VERIFLAG INVERSION(WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
# DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
# NO PROTECTION EXCEPT PRE-P27 MODE IS RESTORED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINE
# ACTIVITY LIGHT IS TURNED OFF.(JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
# V70,V71,V72 OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
# 2. AFTER VERIFLAG INVERSION(WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
# PROTECTED AGAINST RESTARTS.
#
# DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS.
# UPVERB (1) VERB NUMBER MINUS 70D (E.G. FOR V72, UPVERB = 72D - 70D = 2)
# UPOLDMOD(1) FOR MAJOR MODE INTERRUPTED BY P27.
# COMPNUMB(1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
# UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED.
# UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE
#
# INPUT:
#
# ENTRY: DESCRIPTION
#
# V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
# IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
# VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
# THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
# Page 1498
# V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS,XXXXX,
# XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
# XXXXXE IT IS .GE. 3 .AND. .LE. 20D.,
# AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
# NEXT BANK.
# . SCALING IS SAME AS INTERNAL REGISTERS.
#
# V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS,XXXXX, ARE
# AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA.
# AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
# . SCALING IS SAME AS INTERNAL REGISTERS.
#
# V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
# INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
# CENTISECONDS SCALED AT (2)28.
# THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
#
# OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
# COMPLEMENT BIT3 OF FLAGWORD7.
#
# ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES --
# 1. CSM/LM STATE VECTOR UPDATE
# 2. REFSMMAT UPDATE
#
# THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE ---
#
# 1. CSM/LM STATE VECTOR UPDATE(ALL DATA ENTRIES IN OCTAL)
# ENTRIES: DATA DEFINITION: SCALE FACTORS:
# V71E CONTIGUOUS BLOCK UPDATE VERB
# 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
# AAAAE ECADR OF 'UPSVFLAG'
# XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM - EARTH SPHERE OF INFLUENCE SCALING
# 00002 FOR CSM, 77775 FOR LEM - LUNAR SPHERE OF INFLUENCE SCALING
# XXXXXEXXXXXE X POSITION
# XXXXXEXXXXXE Y POSITION
# XXXXXEXXXXXE Z POSITION
# XXXXXEXXXXXE X VELOCITY
# XXXXXEXXXXXE Y VELOCITY
# XXXXXEXXXXXE Z VELOCITY
# XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO
# V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
#
# 2. REFSMMAT(ALL DATA ENTRIES IN OCTAL)
# ENTRIES: DATA DEFINITIONS: SCALE FACTORS:
# Page 1499
# V71E CONTIGUOUS BLOCK UPDATE VERB
# 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
# AAAAE ECADR OF 'REFSMMAT'
# XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1)
# XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1)
# XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1)
# XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1)
# XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1)
# XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1)
# XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1)
# XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1)
# XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1)
# V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED.
BANK 07
SETLOC EXTVERBS
BANK
EBANK= TEPHEM
COUNT* $$/P27
V70UPDAT CAF UP70 # COMES HERE ON V70E
TCF V73UPDAT +1
V71UPDAT CAF UP71 # COMES HERE ON V71E
TCF V73UPDAT +1
V72UPDAT CAF UP72 # COMES HERE ON V72E
TCF V73UPDAT +1
V73UPDAT CAF UP73 # COMES HERE ON V73E
+1 TS UPVERBSV # SAVE UPVERB UNTIL IT'S OK TO ENTER P27
TC TESTXACT # GRAB DISPLAY IF AVAILABLE, OTHERWISE
# TURN*OPERATOR ERROR* ON AND TERMINATE JOB
CA MODREG # CHECK IF UPDATE ALLOWED
EXTEND # FIRST CHECK FOR MODREG = +0, -0
BZF +2 # (+0 = P00, -0 = FRESH START)
TC CKMDMORE # NOW CHECK FOR PROGRAM WHICH CAN BE
# INTERRUPTED BY P27.
CAE MODREG # UPDATE ALLOWED.
TS UPOLDMOD # SAVE CURRENT MAJOR MODE
# Page 1500
CAE UPVERBSV # SET UPVERB TO INDICDATE TO P27
TS UPVERB # WHICH EXTENDED VERB CALLED IT.
CAF ONE
TS UPCOUNT # INITIALIZE UPCOUNT TO 1
TC POSTJUMP # LEAVE EXTENDED VERB BANK AND
CADR UPPART2 # GO TO UPDATE PROGRAM(P27) BANK.
CKMDMORE CS FLAGWRD5
MASK BIT8 # CHECK IF COMPUTER IS LGC
CCS A # IS COMPUER LGC OR AGC
UPERLEM TCF UPERROR # ERROR- IT'S THE LEM + MODE IS NOT P00.
CS TWO
MASK MODREG
CCS A
UPERCMC TCF UPERROR # ERROR- IT'S THE CMC AND MODE IS NOT
# P00 OR P02.
TC Q # ALLOW UPDATE TO PROCEED
UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT
CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT
SBANK= LOWSUPER
UP70 EQUALS ZERO
UP71 EQUALS ONE
UP72 EQUALS TWO
UP73 EQUALS THREE
BANK 04
SETLOC UPDATE2
BANK
COUNT* $$/P27
UPPART2 EQUALS # UPDATE PROGRAM - PART 2
TC PHASCHNG # SET RESTART GROUP 6 TO RESTORE OLD MODE
OCT 07026 # AND DOWNLIST AND EXIT IF RESTART OCCURS.
OCT 30000 # PRIORITY SAME AS CHRPRIO
EBANK= UPBUFF
2CADR UPOUT +1
CAF ONE
TS DNLSTCOD # DOWNLIST
TC NEWMODEX # SET MAJOR MODE = 27
# Page 1501
DEC 27
INDEX UPVERB # BRANCH DEPENDING ON WHETHER THE UPDATE
TCF +1 # VERB REQUIRES A FIXED OR VARIABLE NUMBER
TCF +3 # V70 FIXED. (OF COMPONENTS.
TCF OHWELL1 # V71 VARIABLE - GO GET NO. OF COMPONENTS
TCF OHWELL1 # V72 VARIABLE - GO GET NO. OF COMPONENTS
CA TWO # V73 (AND V70) FIXED
TS COMPNUMB # SET NUMBER OF COMPONENTS TO 2.
TCF OHWELL2 # GO GET THE TWO UPDATE COMPONENTS
OHWELL1 CAF ADUPBUFF # * REQUEST USER TO SEND NUMBER *
TS MPAC +2 # * OF COMPONENTS PARAMETER(II). *
+2 CAF UPLOADNV # (CKV432 RETURNS HERE IF V32 ENCOUNTERED)
TC BANKCALL # DISPLAY A FLASHING V21N01
CADR GOXDSPF # TO REQUEST II.
TCF UPOUT4 # V34 TERMINATE UPDATE(P27) RETURN
TCF OHWELL1 +2
TC CK4V32 # DATA OR V32 RETURN
CS BIT2
AD UPBUFF # IS II(NUMBER OF COMPONENTS PARAMETER)
EXTEND # .GE. 3 AND .LE. 20D.
BZMF OHWELL1 +2
CS UPBUFF
AD UP21
EXTEND
BZMF OHWELL1 +2
CAE UPBUFF
TS COMPNUMB # SAVE II IN COMPNUMB
# UPBUFF LOADING SEQUENCE
INCR UPCOUNT # INCREMENT COUNT OF COMPONENTS RECEIVED.
OHWELL2 CAF ADUPBFM1 # CALCULATE LOCATION(ECADR) IN UPBUFF
AD UPCOUNT # WHERE NEXT COMPONENT SHOULD BE STORED.
+2 TS MPAC +2 # PLACE ECADR INTO R3.
+3 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
TC BANKCALL # DISPLAY A FLASHING V21N01
CADR GOXDSPF # TO REQUEST DATA.
TCF UPOUT4 # V34 TERMINATE UPDATE(P27) RETURN.
TCF OHWELL2 +3 # V33 PROCEED RETURN
TC CK4V32 # DATA OR V32 RETURN
CS UPCOUNT # HAVE WE FINISHED RECEIVING ALL
AD COMPNUMB # THE DATA WE EXPECTED.
EXTEND
BZMF UPVERIFY # YES- GO TO VERIFICATION SEQUENCE
TCF OHWELL2 -1 # NO- REQUEST ADDITIONAL DATA.
# Page 1502
# VERIFY SEQUENCE
UPVERIFY CAF ADUPTEMP # PLACE ECADR WHERE COMPONENT NO. INDEX
TS MPAC +2 # IS TO BE STORED INTO R3.
CAF UPVRFYNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
TC BANKCALL # DISPLAY A FLASHING V21N02 TO REQUEST
CADR GOXDSPF # DATA CORRECTION OR VERIFICATION.
TCF UPOUT4 # V34 TERMINATE UPDATE(P27) RETURN
TCF UPSTORE # V33 DATA SENT IS GOOD. GO STORE IT.
TC CK4V32 # COMPONENT NO. INDEX OR V32 RETURN
CA UPTEMP # DOES THE COMPONENT NO. INDEX JUST SENT
EXTEND # SPECIFY A LEGAL COMPONENT NUMBER?
BZMF UPVERIFY # NO, IT IS NOT POSITIVE NONZERO
CS UPTEMP
AD COMPNUMB
AD BIT1
EXTEND
BZMF UPVERIFY # NO
CAF ADUPBFM1 # YES- BASED ON THE COMPONENT NO. INDEX
AD UPTEMP # CALCULATE THE ECADR OF LOCATION IN
TCF OHWELL2 +2 # UPBUFF WHICH USER WANTS TO CHANGE.
UPOUT4 EQUALS UPOUT +1 # COMES HERE ON V34 TC TERMINATE UPDATE
# CHECK FOR VERB 32 SEQUENCE
CK4V32 CS MPAC # ON DATA RETURN FROM 'GOXDSPF'
MASK BIT6 # ON DATA RETURN FROM "GOXDSP"& THE CON-
CCS A # TENTS OF MPAC = VERB. SO TEST FOR V32.
TC Q # IT'S NOT A V32, IT'S DATA. PROCEED.
INDEX Q
TC 0 -6 # V32 ENCOUNTERED - GO BACK AND GET DATA
ADUPTEMP ADRES UPTEMP # ADDRESS OF TEMP STORAGE FOR CORRECTIONS
ADUPBUFF ADRES UPBUFF # ADDRESS OF UPDATE DATA STORAGE BUFFER
UPLOADNV VN 2101 # VERB 21 NOUN 01
UPVRFYNV VN 2102 # VERB 21 NOUN 02
UP21 = MD1 # DEC 21 = MAX NO OF COMPONENTS +1
UPDTPHAS EQUALS FIVE
# PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
UPSTORE EQUALS # GROUND HAS VERIFIED UPDATE. STORE DATA.
INHINT
CAE FLAGWRD7 # INVERT VERIFLAG(BIT3 OF FLAGWRD7) TO
XCH L # INDICATE TO THE GROUND(VIA DOWNLINK)
CAF BIT3 # THAT THE V33(WHICH THE GROUND SENT TO
# Page 1503
EXTEND # VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
RXOR LCHAN # RECEIVED BY THE UPDATE PROGRAM
TS FLAGWRD7
TC PHASCHNG # SET RESTART GROUP 6 TO REDO THE UPDATE
OCT 04026 # DATA STORE IF A RESTART OCCURS.
INHINT # (BECAUSE PHASCHNG DID A RELINT)
CS TWO # GO TO UPFNDVAC IF INSTALL IS REQUIRED,
AD UPVERB # THAT IS, IF IT'S A V70 - V72.
EXTEND # GO TO UPEND73 IF IT'S A V73.
BZMF UPFNDVAC
# VERB 73 BRANCH
UPEND73 EXTEND # V73-PERFORM DP OCTAL AGC CLOCK INCREMENT
DCA UPBUFF
DXCH UPBUFF +8D
TC TIMEDIDL
TC FALTON # ERROR- TURN ON *OPERATOR ERROR* LIGHT
TC UPOUT +1 # GO TO COMMON UPDATE PROGRAM EXIT
UPFNDVAC CAF CHRPRIO # (USE EXTENDED VERB PRIORITY)
TC FINDVAC # GET VAC AREA FOR 'CALL INTSTALL'
EBANK= TEPHEM
2CADR UPJOB # (NOTE: THIS WILL ALSO SET EBANK FOR
TC ENDOFJOB # 'TEPHEM' UPDATE BY V70)
UPJOB TC INTPRET # THIS COULD BE A STATE VECTOR UPDATE--SO
CALL # WAIT(PUT JOB TO SLEEP) IF ORBIT INT(OI)
INTSTALL # IS IN PROGRESS--OR--GRAB OI AND RETURN
# TO UPWAKE IF OI IS NOT IN PROGRESS.
UPWAKE EXIT
TC PHASCHNG # RESTART PROTECT(GROUP 6)
OCT 04026
TC UPFLAG # SET INTEGRATION RESTART BIT
ADRES REINTFLG
INHINT
UPPART3 EQUALS
INDEX UPVERB # BRANCH TO THE APPROPRIATE UPDATE VERB
TCF +1 # ROUTINE TO ACTUALLY PERFORM THE UPDATE
TCF UPEND70 # V70
TCF UPEND71 # V71
TCF UPEND72 # V72
# Page 1504
# ROUTINE TO INCREMENT CLOCK(TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
TIMEDIDL EXTEND
QXCH UPTEMP # SAVE Q FOR RETURN
CAF ZERO # ZERO AND SAVE TIME2,TIME1
ZL
DXCH TIME2
DXCH UPBUFF +18D # STORE IN CASE OF OVERFLOW
CAF UPDTPHAS # DO
TS L # A
COM # QUICK
DXCH -PHASE6 # PHASCHNG
TIMEDIDR INHINT
CAF ZERO
ZL # PICK UP INCREMENTER(AND ZERO
TS MPAC +2 # IT IN CASE OF RESTARTS) AND
DXCH UPBUFF +8D # STORE IT
DXCH MPAC # INTO MPAC FOR TPAGREE.
EXTEND
DCA UPBUFF +18D
DAS MPAC # FORM SUM IN MPAC
EXTEND
BZF DELTATOK # TEST FOR OVERFLOW
CAF ZERO
DXCH UPBUFF +18D # OVERFLOW, RESTORE OLD VALUE OF CLOCK
DAS TIME2 # AND TURN ON OPERATOR ERROR
TC PHASCHNG # RESTART PROTECT(GROUP 6)
OCT 04026
TC UPTEMP # GO TO ERROR EXIT
DELTATOK TC TPAGREE # FORCE SIGN AGREEMENT
DXCH MPAC
DAS TIME2 # INCREMENT TIME2,TIME1
TC PHASCHNG # RESTART PROTECT(GROUP 6)
OCT 04026
INHINT
INDEX UPTEMP # (CODED THIS WAY FOR RESTART PROTECTION)
TC 1 # NORMAL RETURN
# VERB 71 BRANCH
UPEND71 CAE UPBUFF +1 # SET EBANK
TS EBANK # AND
# Page 1505
MASK LOW8 # CALCULATE
TS UPTEMP # S-REG VALUE OF RECEIVING AREA
AD NEG3 # IN THE PROCESS OF
AD COMPNUMB # PERFORMING
EXTEND # THIS UPDATE
BZF STORLP71 # WILL WE
MASK BIT9 # OVERFLOW
CCS A # INTO THE NEXT EBANK....
TCF UPERROUT # YES
CA NEG3 # NO- CALCULATE NUMBER OF
AD COMPNUMB # WORDS TO BE STORED MINUS ONE
STORLP71 TS MPAC # SAVE NO. OF WORDS REMAINING MINUS ONE
INDEX A # TAKE NEXT UPDATE WORD FROM
CA UPBUFF +2 # UPBUFF AND
TS L # SAVE IT IN L
CA MPAC # CALCULATE NEXT
AD UPTEMP # RECEIVING ADDRESS
INDEX A
EBANK= 1400
LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
EBANK= TEPHEM
CCS MPAC # ARE THERE ANY WORDS LEFT TO BE STORED
TCF STORLP71 # YES
TCF UPOUT # NO- THEN EXIT UPDATE PROGRAM
ADUPBFM1 ADRES UPBUFF -1 # SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
TCF UPOUT # NO- EXIT UPDATE(HERE WHEN COMPNUMB = 3)
# VERB 72 BRANCH
UPEND72 CAF BIT1 # HAVE AN ODD NO. OF COMPONENTS
MASK COMPNUMB # BEEN SENT FOR A V72 UPDATE...
CCS A
TCF +2 # YES
TCF UPERROUT # ERROR- SHOULD BE ODD NO. OF COMPONENTS
CS BIT2
AD COMPNUMB
LDLOOP72 TS MPAC # NOW PERFORM THE UPDATE
INDEX A
CAE UPBUFF +1 # PICK UP NEXT UPDATE WORD
LXCH A
CCS MPAC # SET POINTER TO ECADR(MUST BE CCS)
TS MPAC
INDEX A
CAE UPBUFF +1 # PICK UP NEXT ECADR OF REG TO BE UPDATED
TS EBANK # SET EBANK
MASK LOW8 # ISOLATE RELATIVE ADDRESS
INDEX A
# Page 1506
EBANK= 1400
LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
EBANK= TEPHEM
CCS MPAC # ARE WE THORUGH THE V72 UPDATE...
TCF LDLOOP72 # NO
# NORMAL FINISH OF P27
UPOUT EQUALS
TC INTWAKEU # RELEASE GRAB OF ORBITAL INTEGRATION
+1 CAE UPOLDMOD # RESTORE PRIOR P27 MODE
TC NEWMODEX +3
CAF ZERO
TS DNLSTCOD
TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
EXTEND # KILL GROUP 6
DCA NEG0
DXCH -PHASE6
TC ENDEXT # EXTENDED VERB EXIT
# VERB 70 BRANCH
UPEND70 EXTEND # V70 DOES THE FOLLOWING WITH DP DELTA
DCS UPBUFF # TIME IN UPBUFF
DXCH UPBUFF +8D
TC TIMEDIDL # DECREMENT AGC CLOCK
TC UPERROUT # ERROR WHILE DECREMENTING CLOCK -- EXIT
EBANK= TEPHEM
EXTEND
DCS UPBUFF # COPY DECREMENTERS FOR
DXCH UPBUFF +10D # RESTART PROTECTION
EXTEND
DCS UPBUFF
DXCH UPBUFF +12D
TC PHASCHNG # RESTART PROTECT(GROUP 6)
OCT 04026
CAF ZERO
ZL
DXCH UPBUFF +10D # DECREMENT CSM STATE VECTOR TIME
DAS TETCSM
CAF ZERO
# Page 1507
ZL
DXCH UPBUFF +12D # DECREMENT LEM STATE VECTOR TIME
DAS TETLEM
CAF ZERO
ZL
DXCH UPBUFF
DAS TEPHEM +1 # INCREMENT TP TEPHEM
ADS TEPHEM
TC PHASCHNG # RESTART PROTECT(GROUP 6)
OCT 04026
EBANK= UPBUFF
TC UPOUT # GO TO STANDARD UPDATE PROGRAM EXIT
# ERROR SEQUENCE
UPERROUT TC FALTON # TURN ON *OPERATOR ERROR* LIGHT
TCF UPOUT # GO TO COMMON UPDATE PROGRAM EXIT
+2 TC FALTON # TURN ON 'OPERATOR ERROR' LIGHT
TC UPACTOFF # TURN OFF'UPLINK ACTIVITY'LIGHT
TC ENDEXT # EXTENDED VERB EXIT
# (THE PURPOSE OF UPERROUT +2 EXIT IS
# TO PROVIDE AN ERROR EXIT WHICH DOES NOT
# RESET ANY RESTART GROUPS)
# :UPACTOFF: IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM(P27).
UPACTOFF CS BIT3
EXTEND # TURN OFF UPLINK ACTIVITY LIGHT
WAND DSALMOUT # (BIT 3 OF CHANNEL 11)
TC Q

View File

@ -1,556 +0,0 @@
# Copyright: Public domain.
# Filename: WAITLIST.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1221-1235
# Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum. The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
# thanks to both. The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo. If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. 10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 1221
# PROGRAM DESCRIPTION DATE - 10 OCTOBER 1966
# MOD NO - 2 LOG SECTION - WAITLIST
# MOD BY - MILLER (DTMAX INCREASED TO 162.5 SEC) ASSEMBLY SUNBURST REV 5
# MOD 3 BY KERNAN (INHINT INSERTED AT WAITLIST) 2/28/68 SKIPPER REV 4
# MOD 4BY KERNAN (TWIDDLE IN 54) 3/28/68 SKIPPER REV 13.
#
# FUNCTIONAL DESCRIPTION-
# PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED TO CALL A PROGRAM, (CALLED A TASK),
# WHICH IS TO BEGIN IN C(A) CENTISECONDS. WAITLIST UPDATES TIME3, LST1 AND LST2. THE MEANING OF THESE LISTS
# FOLLOW.
#
# C(TIME3) = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
#
# C(LST1) = -(T2-T1)+1
# C(LST1 +1) = -(T3-T2)+1
# C(LST1 +2) = -(T4-T3)+1
# ...
# C(LST1 +6) = -(T8-T7)+1
# C(LST1 +7) = -(T9-T8)+1
#
# C(LST2) = 2CADR OF TASK1
# C(LST2 +2) = 2CADR OF TASK2
# ...
# C(LST2 +14) = 2CADR OF TASK8
# C(LST2 +16) = 2CADR OF TASK9
#
# WARNINGS-
# --------
# 1) 1 <= C(A) <= 16250D (1 CENTISECOND TO 162.5 SEC)
# 2) 9 TASKS MAXIMUM
# 3) TASKS CALLED UNDER INTERRUPT INHIBITED
# 4) TASKS END BY TC TASKOVER
#
# CALLING SEQUENCE-
#
# L-1 CA DELTAT (TIME IN CENTISECONDS TO TASK START)
# L TC WAITLIST
# L+1 2CADR DESIRED TASK
# L+2 (MINOR OF 2CADR)
# L+3 RELINT (RETURNS HERE)
#
# TWIDDLE-
# -------
# TWIDDLE IS FOR USE WHEN THE TASK BEING SET UP IS IN THE SAME EBANK AND FBANK AS THE USER. IN
# SUCH CASES, IT IMPROVES UPON WAITLIST BY ELIMINATING THE NEED FOR THE BBCON HALF OF THE 2CADR,
# Page 1222
# SAVING A WORD. TWIDDLE IS LIKE WAITLIST IN EVERY RESPECT EXCEPT CALLING SEQUENCE, TO WIT-
#
# L-1 CA DELTAT
# L TC TWIDDLE
# L+1 ADRES DESIRED TASK
# L+2 RELINT (RETURNS HERE)
#
# NORMAL EXIT MODES-
#
# AT L+3 OF CALLING SEQUENCE
#
# ALARM OR ABORT EXIT MODES-
#
# TC ABORT
# OCT 1203 (WAITLIST OVERFLOW - TOO MANY TASKS)
#
# ERASABLE INITIALIZATION REQUIRED-
#
# ACCOMPLISHED BY FRESH START,-- LST2,..., LST2 +16 =ENDTASK
# LST1,..., LST1 +7 =NEG1/2
#
# OUTPUT--
#
# LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
# DEBRIS-
# CENTRALS- A,Q,L
# OTHER - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
# DETAILED ANALYSIS OF TIMING-
#
# CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR) IN EXACTLY DELTA T CENTISECONDS.
# THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS
#
# LET T0 = THE TIME OF THE TC WAITLIST
# LET TS = T0 +147U + COUNTER INCREMENTS (SET UP TIME)
# LET X = TS -(100TS)/100 (VARIANCE FROM COUNTERS)
# LET Y = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
# LET Z = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
# (Z=0, USUALLY)
# LET DELTD = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
# THEN DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
# *THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
#
# IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK'S
# INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
# OF OTHER TASKS INHIBITING THE INTERRUPT.
BLOCK 02
# Page 1223
EBANK= LST1 # TASK LISTS IN SWITCHED E BANK.
COUNT 02/WAIT
TWIDDLE INHINT
TS L # SAVE DELAY TIME IN L
CA POSMAX
ADS Q # CREATING OVERFLOW AND Q-1 IN Q
CA BBANK
EXTEND
ROR SUPERBNK
XCH L
WAITLIST INHINT
EXTEND
BZMF WATLST0-
XCH Q # SAVE DELTA T IN Q AND RETURN IN
TS WAITEXIT # WAITEXIT.
EXTEND
INDEX WAITEXIT # IF TWIDDLING, THE TS SKIPS TO HERE
DCA 0 # PICK UP 2CADR OF TASK.
-1 TS WAITADR # BBCON WILL REMAIN IN L
DLY2 CAF WAITBB # ENTRY FROM FIXDELAY AND VARDELAY.
XCH BBANK
TCF WAIT2
WATLST0- TC POODOO
OCT 1204 # WAITLIST CALL WITH ZERO OR NEG DT
# RETURN TO CALLER AFTER TASK INSERTION:
LVWTLIST DXCH WAITEXIT
AD TWO
DTCB
EBANK= LST1
WAITBB BBCON WAIT2
# RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
FIXDELAY INDEX Q # BOTH ROUTINES MUST BE CALLED UNDER
CAF 0 # WAITLIST CONTROL AND TERMINATE THE TASK
INCR Q # IN WHICH THEY WERE CALLED.
# RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
VARDELAY XCH Q # DT TO Q. TASK ADRES TO WAITADR.
TS WAITADR
CA BBANK # BBANK IS SAVED DURING DELAY.
EXTEND
# Page 1224
ROR SUPERBNK # ADD SBANK TO BBCON.
TS L
CAF DELAYEX
TS WAITEXIT # GO TO TASKOVER AFTER TASK ENTRY.
TCF DLY2
DELAYEX TCF TASKOVER -2 # RETURNS TO TASKOVER
# Page 1225
# ENDTASK MUST ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
EBANK= LST1
ENDTASK -2CADR SVCT3
SVCT3 CCS FLAGWRD2 # DRIFT FLAG
TCF TASKOVER
TCF TASKOVER
TCF +1
CCS IMUCADR # DON'T DO NBDONLY IF SOMEONE ELSE IS IN
TCF SVCT3X
TCF +3
TCF SVCT3X
TCF SVCT3X
+3 CAF PRIO35 # COMPENSATE FOR NBD COEFFICIENTS ONLY.
TC NOVAC # ENABLE EVERY 81.93 SECONDS
EBANK= NBDX
2CADR NBDONLY
TCF TASKOVER
SETLOC FFTAG6
BANK
SVCT3X TC FIXDELAY # DELAY MAX OF 2 TIMES FOR IMU ZERO
DEC 500
TC SVCT3 # CHECK DRIFT FLAG AGAIN
# Page 1226
# BEGIN TASK INSERTION.
BANK 01
COUNT 01/WAIT
WAIT2 TS WAITBANK # BBANK OF CALLING PROGRAM.
CS TIME3
AD BIT8 # BIT 8 = OCT 200
CCS A # TEST 200 - C(TIME3). IF POSITIVE,
# IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS TIME3 AND THAT
# C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T). THE FOLLOWING FOUR
# ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
AD OCT40001 # OVERFLOW HAS OCCURRED. SET C(A) =
CS A # T - T1 + 1.0 - 201
# NORMAL CASE (C(A) NNZ) YIELDS SAME C(A): -( -(1.0-(T1-T)) + 200) - 1
AD OCT40201
AD Q # RESULT = TD - T1 + 1.
CCS A # TEST TD - T1 + 1
AD LST1 # IF TD - T1 POS, GO TO WTLST5 WITH
TCF WTLST5 # C(A) = (TD - T1) + C(LST1) = TD-T2+1
NOOP
CS Q
# NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
# SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1. (G/E
# SYMBOL MEANS GREATER THAN OR EQUAL TO). THUS THERE NEED BE NO CON-
# CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
AD POS1/2 # WHEN TD IS NEXT, FORM QUANTITY
AD POS1/2 # 1.0 - DELTA T = 1.0 - (TD - T)
XCH TIME3
AD NEGMAX
AD Q # 1.0 - DELTAT T NOW COMPLETE.
EXTEND # ZERO INDEX Q.
QXCH 7 # (ZQ)
# Page 1227
WTLST4 XCH LST1
XCH LST1 +1
XCH LST1 +2
XCH LST1 +3
XCH LST1 +4
XCH LST1 +5
XCH LST1 +6
XCH LST1 +7
CA WAITADR # (MINOR PART OF TASK CADR HAS BEEN IN L.)
INDEX Q
TCF +1
DXCH LST2
DXCH LST2 +2
DXCH LST2 +4
DXCH LST2 +6
DXCH LST2 +8D
DXCH LST2 +10D # AT END, CHECK THAT C(LST2 +10) IS STD
DXCH LST2 +12D
DXCH LST2 +14D
DXCH LST2 +16D
AD ENDTASK # END ITEM, AS CHECK FOR EXCEEDING
# THE LENGTH OF THE LIST.
EXTEND # DUMMY TASK ADRES SHOULD BE IN FIXED-
BZF LVWTLIST # FIXED SO ITS ADRES ALONE DISTINGUISHES
TCF WTABORT # IT.
# Page 1228
WTLST5 CCS A # TEST TD - T2 + 1
AD LST1 +1
TCF +4
AD ONE
TC WTLST2
OCT 1
+4 CCS A # TEST TD - T3 + 1
AD LST1 +2
TCF +4
AD ONE
TC WTLST2
OCT 2
+4 CCS A # TEST TD - T4 + 1
AD LST1 +3
TCF +4
AD ONE
TC WTLST2
OCT 3
+4 CCS A # TEST TD - T5 + 1
AD LST1 +4
TCF +4
AD ONE
TC WTLST2
OCT 4
+4 CCS A # TEST TD - T6 + 1
AD LST1 +5
TCF +4
AD ONE
TC WTLST2
OCT 5
+4 CCS A # TEST TD - T7 + 1
AD LST1 +6
TCF +4
AD ONE
TC WTLST2
OCT 6
# Page 1229
+4 CCS A
AD LST1 +7
TCF +4
AD ONE
TC WTLST2
OCT 7
+4 CCS A
WTABORT TC BAILOUT # NO ROOM IN THE INN.
OCT 1203
AD ONE
TC WTLST2
OCT 10
OCT40201 OCT 40201
# Page 1230
# THE ENTRY TO WTLST2 JUST PRECEDING OCT N IS FOR T LE TD LE T -1.
# N N+1
#
# (LE MEANS LESS THAN OR EQUAL TO). AT ENTRY, C(A) = -(TD - T + 1)
# N+1
#
# THE LST1 ENTRY-(T -T +1) IS TO BE REPLACED BY -(TD - T + 1), AND
# N+1 N N
#
# THE ENTRY-(T - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
# N+1
WTLST2 TS WAITTEMP # C(A) = -(TD - T + 1)
INDEX Q
CAF 0
TS Q # INDEX VALUE INTO Q.
CAF ONE
AD WAITTEMP
INDEX Q # C(A) = -(TD - T ) + 1.
ADS LST1 -1 # N
CS WAITTEMP
INDEX Q
TCF WTLST4
# Page 1231
# ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
T3RUPT EXTEND
ROR SUPERBNK # READ CURRENT SUPERBANK VALUE AND
TS BANKRUPT # SAVE WITH E AND F BANK VALUES.
EXTEND
QXCH QRUPT
T3RUPT2 CAF NEG1/2 # DISPATCH WAITLIST TASK.
XCH LST1 +7
XCH LST1 +6
XCH LST1 +5
XCH LST1 +4 # 1. MOVE UP LST1 CONTENTS, ENTERING
XCH LST1 +3 # A VALUE OF 1/2 +1 AT THE BOTTOM
XCH LST1 +2 # FOR T6-T5, CORRESPONDING TO THE
XCH LST1 +1 # INTERVAL 81.91 SEC FOR ENDTASK.
XCH LST1
AD POSMAX # 2. SET T3 = 1.0 - T2 - T USING LIST 1.
ADS TIME3 # SO T3 WONT TICK DURING UPDATE.
TS RUPTAGN
CS ZERO
TS RUPTAGN # SETS RUPTAGN TO +1 ON OVERFLOW.
EXTEND # DISPATCH TASK.
DCS ENDTASK
DXCH LST2 +16D
DXCH LST2 +14D
DXCH LST2 +12D
DXCH LST2 +10D
DXCH LST2 +8D
DXCH LST2 +6
DXCH LST2 +4
DXCH LST2 +2
DXCH LST2
XCH L
EXTEND
WRITE SUPERBNK # SET SUPERBANK FROM BBCON OF 2CADR
XCH L # RESTORE TO L FOR DXCH Z.
DTCB
# Page 1232
# RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
BLOCK 02
COUNT 02/WAIT
TASKOVER CCS RUPTAGN # IF +1 RETURN TO T3RUPT, IF -0 RESUME.
CAF WAITBB
TS BBANK
TCF T3RUPT2 # DISPATCH NEXT TASK IF IT WAS DUE.
CA BANKRUPT
EXTEND
WRITE SUPERBNK # RESTORE SUPERBANK BEFORE RESUME IS DONE
RESUME EXTEND
QXCH QRUPT
NOQRSM CA BANKRUPT
XCH BBANK
NOQBRSM DXCH ARUPT
RELINT
RESUME
# Page 1233
# LONGCALL
#
# PROGRAM DESCRIPTION DATE- 17 MARCH 1967
# PROGRAM WRITTEN BY W.H. VANDEVER LOG SECTION WAITLIST
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 100
#
# FUNCTIONAL DESCRIPTION-
# LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
# IMMEDIATELY FOLLOWING THE TC LONGCALL. FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
# A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
# START
#
# CALLING SEQUENCE-
# EXTEND
# DCA TIMELOC
# TC LONGCALL
# 2CADR TASKTODO
#
# NORMAL EXIT MODE-
# 1). TC WAITLIST
# 2). DTCB (TC L+3 OF CALLING ROUTINE 1ST PASS THRU LONGCYCL)
# 3). DTCB (TO TASKOVER ON SUBSEQUENT PASSES THRU LONGCYCL)
#
# ALARM OR ABORT EXIT MODE-
# NONE
#
# OUTPUT-
# LONGTIME AND LONGTIME+1 = DELTA TIME
# LONGEXIT AND LONGEXIT+1 = RETURN 2CADR
# LONGCADR AND LONGCADR+1 = TASK 2CADR
# A = SINGLE PRECISION TIME FOR WAITLIST
#
# ERASABLE INITIALIZATION-
# A = MOST SIGNIFICANT PART OF DELTA TIME
# L = LEAST SIGNIFICANT PART OF DELTA TIME
# Q = ADDRESS OF 2CADR TASK VALUE
#
# DEBRIS-
# A,Q,L
# LONGCADR AND LONGCADR+1
# LONGEXIT AND LONGEXIT+1
# LONGTIME AND LONGTIME+1
#
# *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE ***
BLOCK 02
EBANK= LST1
LONGCALL DXCH LONGTIME # OBTAIN THE DELTA TIME
EXTEND # OBTAIN THE 2CADR
# Page 1234
NDX Q
DCA 0
DXCH LONGCADR
EXTEND # NOW GO TO THE APPROPRIATE SWITCHED BANK
DCA LGCL2CDR # FOR THE REST OF LONGCALL
DTCB
EBANK= LST1
LGCL2CDR 2CADR LNGCALL2
# *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
BANK 01
COUNT 01/WAIT
LNGCALL2 LXCH LONGEXIT +1 # SAVE THE CORRECT BB FOR RETURN
CA TWO # OBTAIN THE RETURN ADDRESS
ADS Q
TS LONGEXIT
# *** WAITLIST TASK LONGCYCL ***
LONGCYCL EXTEND # CAN WE SUCCESFULLY TAKE ABOUT 1.25
DCS DPBIT14 # MINUTES OFF OF LONGTIME
DAS LONGTIME
CCS LONGTIME +1 # THE REASONING BEHIND THIS PART IS
TCF MUCHTIME # INVOLVED, TAKING INTO ACCOUNT THAT THE
# WORDS MAY NOT BE SIGNED CORRECTED (DP
# BASIC INSTRUCTIONS
# DO NOT SIGN CORRECT) AND THAT WE SUBTRAC-
# TED BIT14 (1 OVER HALF THE POS. VALUE
# REPRESENTABLE IN SINGLE WORD)
NOOP # CAN'T GET HERE **********
TCF +1
CCS LONGTIME
TCF MUCHTIME
DPBIT14 OCT 00000
OCT 20000
# LONGCALL
LASTTIME CA BIT14 # GET BACK THE CORRECT DELTA TFOR WAITLIST
ADS LONGTIME +1
TC WAITLIST
EBANK= LST1
2CADR GETCADR # THE ENTRY TO OUR LONGCADR
LONGRTRN CA TSKOVCDR # SET IT UP SO THAT ONLY THE FIRST EXIT IS
# Page 1235
DXCH LONGEXIT # TO THE CALLER OF LONGCALL
DTCB # THE REST ARE TO TASKOVER
MUCHTIME CA BIT14 # WE HAVE OVER OUR ABOUT 1.25 MINUTES
TC WAITLIST # SO SET UP FOR ANOTHER CYCLE THROUGH HERE
EBANK= LST1
2CADR LONGCYCL
TCF LONGRTRN # NOW EXIT PROPERLY
# *** WAITLIST TASK GETCADR ***
GETCADR DXCH LONGCADR # GET THE LONGCALL THAT WE WISHED TO START
DTCB # AND TRANSFER CONTROL TO IT
TSKOVCDR GENADR TASKOVER

View File

@ -1,19 +0,0 @@
# Public Domain Mark 1.0
## No Copyright
This work has been identified as being free of known restrictions under copyright law, including all related and neighboring rights.
You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. See Other Information below.
## Other Information
- The work may not be free of known copyright restrictions in all jurisdictions.
- Persons may have other rights in or related to the work, such as patent or trademark rights, and others may have rights in how the work is used, such as publicity or privacy rights.
- In some jurisdictions moral rights of the author may persist beyond the term of copyright. These rights may include the right to be identified as the author and the right to object to derogatory treatments.
- Unless expressly stated otherwise, the person who identified the work makes no warranties about the work, and disclaims liability for all uses of the work, to the fullest extent permitted by applicable law.
- When using or citing the work, you should not imply endorsement by the author or the person who identified the work.

View File

@ -1,513 +0,0 @@
# Copyright: Public domain.
# Filename: AGC_BLOCK_TWO_SELF_CHECK.agc
# Purpose: Part of the source code for Luminary 1A build 099.
# It is part of the source code for the Lunar Module's (LM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Onno Hommes <ohommes@cmu.edu>.
# Website: www.ibiblio.org/apollo.
# Pages: 1284-1293
# Mod history: 2009-05-27 OH Transcribed from page images.
#
# This source code has been transcribed or otherwise adapted from
# digitized images of a hardcopy from the MIT Museum. The digitization
# was performed by Paul Fjeld, and arranged for by Deborah Douglas of
# the Museum. Many thanks to both. The images (with suitable reduction
# in storage size and consequent reduction in image quality as well) are
# available online at www.ibiblio.org/apollo. If for some reason you
# find that the images are illegible, contact me at info@sandroid.org
# about getting access to the (much) higher-quality images which Paul
# actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 001 of AGC program LMY99 by NASA 2021112-061
# 16:27 JULY 14, 1969
# Page 1284
# PROGRAM DESCRIPTION DATE: 20 DECEMBER 1967
# PROGRAM NAME -- SELF-CHECK LOG SECTION: AGC BLOCK TWO SELF-CHECK
# MOD NO -- 1 ASSEMBLY SUBROUTINE UTILITYM REV 25
# MOD BY -- GAUNTT
#
#
# FUNCTIONAL DESCRIPTION
#
# PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
# PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
# STARTING VERB.
# THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
# THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
# IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
# FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
# THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
# A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
# OCTAL, TO LOAD INTO SMODE.
# +-4 ERASABLE MEMORY
# +-5 FIXED MEMORY
# +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5.
# -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED.
# +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
#
#
# WARNINGS
#
# USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
# SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
#
#
# CALLING SEQUENCE
#
# TO CALL SELF-CHECK KEY IN
# V 21 N 27 E OPTION NUMBER E
# TO CALL SHOW-BANKSUM KEY IN
# V 91 E DISPLAYS FIRST BANK
# V 33 E PROCEED, DISPLAYS NEXT BANK
#
#
# EXIT MODES, NORMAL AND ALARM
# SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
# COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
#
# THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
# SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP.
#
#
# OUTPUT
# Page 1285
# SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
# TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
# INFORMATION HE MAY KEY IN V 05 N 08 E, THE DSKY DISPLAY IN R1 WILL BE ADDRESS+1 OF WHERE THE ERROR WAS DETECTED,
# IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
# INITIATED FRESH START (SLAP1).
# SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
# THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
#
#
# ERASABLE INITIALIZATION REQUIRED
#
# ACCOMPLISHED BY FRESH START
# SMODE SET TO +0
#
#
# DEBRIS
#
# ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
# EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
# E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
BANK 25
SETLOC SELFCHEC
BANK
COUNT* $$/SELF
SBIT1 EQUALS BIT1
SBIT2 EQUALS BIT2
SBIT3 EQUALS BIT3
SBIT4 EQUALS BIT4
SBIT5 EQUALS BIT5
SBIT6 EQUALS BIT6
SBIT7 EQUALS BIT7
SBIT8 EQUALS BIT8
SBIT9 EQUALS BIT9
SBIT10 EQUALS BIT10
SBIT11 EQUALS BIT11
SBIT12 EQUALS BIT12
SBIT13 EQUALS BIT13
SBIT14 EQUALS BIT14
SBIT15 EQUALS BIT15
S+ZERO EQUALS ZERO
S+1 EQUALS BIT1
S+2 EQUALS BIT2
S+3 EQUALS THREE
S+4 EQUALS FOUR
S+5 EQUALS FIVE
S+6 EQUALS SIX
# Page 1286
S+7 EQUALS SEVEN
S8BITS EQUALS LOW8 # 00377
CNTRCON = OCT50 # USED IN CNTRCHK
ERASCON1 OCTAL 00061 # USED IN ERASCHK
ERASCON2 OCTAL 01373 # USED IN ERASCHK
ERASCON6 = OCT1400 # USED IN ERASCHK
ERASCON3 OCTAL 01461 # USED IN ERASCHK
ERASCON4 OCTAL 01773 # USED IN ERASCHK
S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK
SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK
-MAXADRS = HI5 # FOR ROPECHK
SIXTY OCTAL 00060
SUPRCON OCTAL 60017 # USED IN ROPECHK
S13BITS OCTAL 17777
CONC+S1 OCTAL 25252 # USED IN CYCLSHFT
CONC+S2 OCTAL 52400 # USED IN CYCLSHFT
ERASCON5 OCTAL 76777
S-7 = OCT77770
S-4 EQUALS NEG4
S-3 EQUALS NEG3
S-2 EQUALS NEG2
S-1 EQUALS NEGONE
S-ZERO EQUALS NEG0
EBANK= LST1
ADRS1 ADRES SKEEP1
SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT
# IN SELFRET WHEN GOING FROM SELFCHK TO
# SHOWSUM AND PUT IN SKEEP1 WHEN GOING
# FROM SHOWSUM TO SELF-CHECK.
PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE
EXTEND
BZF ERRORS # NO
EXTEND
DCA SKEEP5
INDEX SKEEP7
DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS
CA S+ZERO
TS ERESTORE
ERRORS INHINT
CA Q
TS SFAIL # SAVE Q FOR FAILURE LOCATION
TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT
INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
TCALARM2 TC ALARM2
OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR
CCS SMODE
SIDLOOP CA S+ZERO
TS SMODE
# Page 1287
TC SELFCHK # GO TO IDLE LOOP
TC SFAIL # CONTINUE WITH SELF-CHECK
-1CHK CCS A
TCF PRERRORS
TCF PRERRORS
CCS A
TCF PRERRORS
TC Q
SMODECHK EXTEND
QXCH SKEEP1
TC CHECKNJ # CHECK FOR NEW JOB
CCS SMODE
TC SOPTIONS
TC SMODECHK +2 # TO BACKUP IDLE LOOP
TC SOPTIONS
INCR SCOUNT
TC SKEEP1 # CONTINUE WITH SELF-CHECK
SOPTIONS AD S-7
EXTEND
BZMF +2 # FOR OPTIONS BELOW NINE.
BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP.
INCR SCOUNT # FOR OPTIONS BELOW NINE.
AD S+7
INDEX A
TC SOPTION1
SOPTION1 TC SKEEP1 # WAS TC+TCF
SOPTION2 TC SKEEP1 # WAS IN:OUT1
SOPTION3 TC SKEEP1 # WAS COUNTCHK
SOPTION4 TC ERASCHK
SOPTION5 TC ROPECHK
SOPTION6 TC SKEEP1
SOPTION7 TC SKEEP1
SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK
CHECKNJ EXTEND
QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB
TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
CADR ADVAN
SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE
# SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
# SKEEP6 HOLDS B(X+1).
# SKEEP5 HOLDS B(X).
# SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ.
# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
# Page 1288
# SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
# ERASCHK TAKES APPROXMATELY 7 SECONDS
ERASCHK CA S+1
TS SKEEP2
0EBANK CA S+ZERO
TS EBANK
CA ERASCON3 # 01461
TS SKEEP7 # STARTING ADDRESS
CA S10BITS # 01777
TS SKEEP3 # LAST ADDRESS CHECKED
TC ERASLOOP
E134567B CA ERASCON6 # 01400
TS SKEEP7 # STARTING ADDRESS
CA S10BITS # 01777
TS SKEEP3 # LAST ADDRESS CHECKED
TC ERASLOOP
2EBANK CA ERASCON6 # 01400
TS SKEEP7 # STARTING ADDRESS
CA ERASCON4 # 01773
TS SKEEP3 # LAST ADDRESS CHECKED
TC ERASLOOP
NOEBANK TS SKEEP2 # +0
CA ERASCON1 # 00061
TS SKEEP7 # STARTING ADDRESS
CA ERASCON2 # 01373
TS SKEEP3 # LAST ADDRESS CHECKED
ERASLOOP INHINT
CA EBANK # STORES C(EBANK)
TS SKEEP4
EXTEND
NDX SKEEP7
DCA 0000
DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
CA SKEEP7
TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1)
TS L
INCR L
NDX A
DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1
NDX SKEEP7
CS 0001 # CS X+1
NDX SKEEP7
AD 0000 # AD X
TC -1CHK
CA ERESTORE # HAS ERASABLE BEEN RESTORED
EXTEND
# Page 1289
BZF ELOOPFIN # YES, EXIT ERASLOOP.
EXTEND
NDX SKEEP7
DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1
NDX SKEEP7
DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1
NDX SKEEP7
CS 0000 # CS X
NDX SKEEP7
AD 0001 # AD X+1
TC -1CHK
CA ERESTORE # HAS ERASABLE BEEN RESTORED
EXTEND
BZF ELOOPFIN # YES, EXIT ERASLOOP.
EXTEND
DCA SKEEP5
NDX SKEEP7
DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1
CA S+ZERO
TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1)
ELOOPFIN RELINT
TC CHECKNJ # CHECK FOR NEW JOB
CA SKEEP4 # REPLACES B(EBANK)
TS EBANK
INCR SKEEP7
CS SKEEP7
AD SKEEP3
EXTEND
BZF +2
TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK
CCS SKEEP2
TC NOEBANK
INCR SKEEP2 # PUT +1 IN SKEEP2.
CA EBANK
AD SBIT9
TS EBANK
AD ERASCON5 # 76777, CHECK FOR BANK E2
EXTEND
BZF 2EBANK
CCS EBANK
TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7
CA ERASCON6 # END OF ERASCHK
TS EBANK
# CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
# INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
CNTRCHK CA CNTRCON # 00050
CNTRLOOP TS SKEEP2
AD SBIT4 # +10 OCTAL
INDEX A
CS 0000
# Page 1290
CCS SKEEP2
TC CNTRLOOP
# CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
CYCLSHFT CA CONC+S1 # 25252
TS CYR # C(CYR) = 12525
TS CYL # C(CYL) = 52524
TS SR # C(SR) = 12525
TS EDOP # C(EDOP) = 00125
AD CYR # 37777 C(CYR) = 45252
AD CYL # 00-12524 C(CYL) = 25251
AD SR # 00-25251 C(SR) = 05252
AD EDOP # 00-25376 C(EDOP) = +0
AD CONC+S2 # C(CONC+S2) = 52400
TC -1CHK
AD CYR # 45252
AD CYL # 72523
AD SR # 77775
AD EDOP # 77775
AD S+1 # 77776
TC -1CHK
INCR SCOUNT +1
TC SMODECHK
# SKEEP1 HOLDS SUM
# SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
# SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
# SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
# (04000 TO 07777 IN FXFX BANKS)
# SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
# SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
# SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
# SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
# SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
ROPECHK CA S-ZERO # *
TS SKEEP6 # * -0 FOR ROPECHK.
STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK
TS SKEEP4 # BANK NUMBER
CA S+1
COMMFX TS SKEEP7
CA S+ZERO
TS SKEEP1
TS SKEEP3
CA S+1
TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
COMADRS CA SKEEP4
TS L # TO SET SUPER BANK
MASK HI5
# Page 1291
AD SKEEP3
TC SUPDACAL # SUPER DATA CALL
TC ADSUM
AD SBIT11 # 02000
TC ADRSCHK
FXFX CS A
TS SKEEP7
EXTEND
BZF +3
CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02
TC +2
CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03
TS SKEEP3
CA S+ZERO
TS SKEEP1
CA S+1
TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
FXADRS INDEX SKEEP3
CA 0000
TC ADSUM
TC ADRSCHK
ADSUM TS SKEEP2
AD SKEEP1
TS SKEEP1
CAF S+ZERO
AD SKEEP1
TS SKEEP1
CS SKEEP2
AD SKEEP3
TC Q
ADRSCHK LXCH A
CA SKEEP3
MASK LOW10 # RELATIVE ADDRESS
AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777.
EXTEND
BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS.
CCS SKEEP5 # IS CHECKSUM FINISHED
TC +3 # NO
TC +2 # NO
TC SOPTION # GO TO ROPECHK SHOWSUM OPTION
CCS L # -0 MEANS A TC SELF WORD.
TC CONTINU
TC CONTINU
TC CONTINU
CCS SKEEP5
TC CONTINU +1
CA S-1
# Page 1292
TC CONTINU +1 # AD IN THE BUGGER WORD
CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
TS SKEEP5
CCS SKEEP6 # *
CCS NEWJOB # * +1, SHOWSUM
TC CHANG1 # *
TC +2 # *
TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK
ADRS+1 INCR SKEEP3
CCS SKEEP7
TC COMADRS
TC COMADRS
TC FXADRS
TC FXADRS
NXTBNK CS SKEEP4
AD LSTBNKCH # LAST BANK TO BE CHECKED
EXTEND
BZF ENDSUMS # END OF SUMMING OF BANKS.
CA SKEEP4
AD SBIT11
TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
TC CHKSUPR
17TO20 CA SBIT15
ADS SKEEP4 # SET FOR BANK 20
TC GONXTBNK
CHKSUPR MASK HI5
EXTEND
BZF NXTSUPR # INCREMENT SUPER BANK
27TO30 AD S13BITS
EXTEND
BZF +2 # BANK SET FOR 30
TC GONXTBNK
CA SIXTY # FIRST SUPER BANK
ADS SKEEP4
TC GONXTBNK
NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL
ADS SKEEP4 # ERC BIT OF THE 37 TO 40 ADVANCE.
GONXTBNK CCS SKEEP7
TC COMMFX
CA S+1
TC FXFX
CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS.
TC COMMFX
SOPTION CA SKEEP4
MASK HI5 # = BANK BITS
TC LEFT5
TS L # BANK NUMBER BEFORE SUPER BANK
# Page 1293
CA SKEEP4
MASK S8BITS # = SUPER BANK BITS
EXTEND
BZF SOPT # BEFORE SUPER BANK
TS SR # SUPER BANK NECESSARY
CA L
MASK SEVEN
AD SR
TS L # BANK NUMBER WITH SUPER BANK
SOPT CA SKEEP6 # *
EXTEND # *
BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK.
TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM.
CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE.
TC +2
TC +2
AD S+1
TS SKEEP1
BNKCHK CS L # = - BANK NUMBER
AD SKEEP1
AD S-1
TC -1CHK # CHECK SUM
TC NXTBNK
EBANK= NEWJOB
LSTBNKCH BBCON* # * CONSTANT, LAST BANK.

Some files were not shown because too many files have changed in this diff Show More