Source Code
These source-code files are part of a reconstructed copy of Corona 261, the
final, flown release of the Block I Command Module (CM) Apollo Guidance Computer
(AGC) software for the AS-202 mission.
They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on the mission, part numbers 1003733-171, 1003733-241, 1003733-191, 1003733-211, 1003733-221, and 1003733-241. The source code for the Apollo 4 and 6 software, Solarium 55, was used as a starting point, since it was directly derived from Corona and (at least in theory) only minimally modified. Since only binary dumps (rather than listings) of Corona are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
030359,000002: ## Copyright: Public domain.
030360,000003: ## Filename: VERIFICATION_ASSISTANCE_PROGRAMS.agc
030361,000004: ## Purpose: A section of Corona revision 261.
030362,000005: ## It is part of the source code for the Apollo Guidance Computer
030363,000006: ## (AGC) for AS-202. No original listings of this software are
030364,000007: ## available; instead, this file was created via disassembly of
030365,000008: ## the core rope modules actually flown on the mission.
030366,000009: ## Assembler: yaYUL
030367,000010: ## Contact: Ron Burkey <info@sandroid.org>.
030368,000011: ## Website: www.ibiblio.org/apollo/index.html
030369,000012: ## Mod history: 2023-05-27 MAS Created from Solarium 55.
030370,000013:
030371,000014:
030372,000015: # WAITLIST EXERCISE PROGRAM. TIMES ARE GIVEN IN THE FORM NN + NN/32 + YY, WHERE THE NS REFER TO TIME
030373,000016: # SINCE THE BEGINNING OF THE TEST, AND YS ADDITIONAL MCT.
030374,000017:
030375,000018: 13,7155 BANK 13
030376,000019: 13,7155 30006 WLTEST XCH IN2
030377,000020: 13,7156 10006 CCS IN2 # GET IN PHASE WITH T3 INCREMENTS.
030378,000021: 13,7157 07161 TC +2
030379,000022: 13,7160 07156 TC -2
030380,000023:
030381,000024: 13,7161 10006 CCS IN2
030382,000025: 13,7162 07161 TC -1
030383,000026: 13,7163 50042 TS OUTCR1 # TO INITIALIZE.
030384,000027:
030385,000028: # THE FIRST TASK IS ENTERED INTO SLOT 1 WITH A T3 INCREMENT BETWEEN THE TWO T3 REFERENCES. CALL AT
030386,000029: # 10 +00/32 -25. SPECIFY WAIT TO 30/32.
030387,000030:
030388,000031: 13,7164 07260 TC OUTCR1WT
030389,000032: 13,7165 00035 DEC 29 B-14
030390,000033:
030391,000034: 13,7166 07260 TC OUTCR1WT # GO WAIT FOR THIS AND SPECIFY RESET TO
030392,000035: 13,7167 00052 DEC 42 B-14 # 20 +8/32.
030393,000036:
030394,000037: # AT 30/32 +16, WAIT 12 MCT BEFORE ENTERING TASK 1.
030395,000038:
030396,000039: 13,7170 35501 CAF ZERO # TUNING CONSTANT.
030397,000040: 13,7171 10000 CCS A
030398,000041: 13,7172 07171 TC -1
030399,000042: 13,7173 34516 CAF ONE # TASK ENTRY WITH T3 INC BETWEEN TWO T3
030400,000043: 13,7174 02173 TC WAITLIST # REFERENCES.
030401,000044: 13,7175 42240 CADR NOPLWAIT +2 # TASK IN HIGH SWITCHED BANK.
030402,000045:
030403,000046: 13,7176 07260 TC OUTCR1WT # WAIT FOR 20 +8/32. CALL FOR RESET TO
030404,000047: 13,7177 00027 DEC 23 B-14 # 20 +31/32.
030405,000048:
030406,000049: 13,7200 34516 CAF ONE # AT 20 +8/32 + 16, ENTER TASK 2 DUE AT
030407,000050: 13,7201 02173 TC WAITLIST # 30.
030408,000051: 13,7202 27302 CADR QTSK2
030409,000052:
030410,000053:
030411,000054: # WAIT FOR 20 +31/32 +16 AND AT THAT TIME WAIT FOR T3 TO OVERFLOW BEFORE ENTERING TASK 3. REQUIRES RESET
030412,000055: # TO 30 +10/32.
030413,000056:
030414,000057: 13,7203 07260 TC OUTCR1WT
030415,000058: 13,7204 00013 DEC 11 B-14
030416,000059: 13,7205 10037 CCS TIME3
030417,000060: 13,7206 07205 TC -1
030418,000061: 13,7207 34516 CAF ONE # ENTER TASK 3 AFTER T3 OVF.
030419,000062: 13,7210 02173 TC WAITLIST
030420,000063: 13,7211 27303 CADR QTSK3
030421,000064:
030422,000065: 13,7212 07260 TC OUTCR1WT # TASK 3 IS DUE AT 40. WAIT FOR 30 +10/32
030423,000066: 13,7213 00065 DEC 53 B-14 # CALLING FOR RESET TO 40 +31/32.
030424,000067:
030425,000068: # AT 30 +10/32 +16, ENTER TASKS 4 AND 5 DUE SAME RUPT AT 50. THEY WILL BE INHIBITED FOR 6 MS SO THAT T3
030426,000069: # WILL TICK WHILE IT IS BEING RESET IN THE DISPATCH OF 5.
030427,000070:
030428,000071: 13,7214 35503 CAF TWO # ENTERED INTO SLOTS 2 AND 3.
030429,000072: 13,7215 02173 TC WAITLIST
030430,000073: 13,7216 27304 CADR QTSK4
030431,000074: 13,7217 35503 CAF TWO
030432,000075: 13,7220 02173 TC WAITLIST
030433,000076: 13,7221 03233 CADR TCTSKOVR # TASK IN FIXED-FIXED.
030434,000077:
030435,000078: 13,7222 07260 TC OUTCR1WT # WAIT FOR 40 +31/32 +16, CALLING FOR
030436,000079: 13,7223 00023 DEC 19 B-14 # RESET TO 50 +18/32.
030437,000080:
030438,000081: 13,7224 07261 TC OUTCR1WT +1 # AT 40 +31/32 +16, INHIBIT UNTIL
030439,000082: 13,7225 00030 DEC 24 B-14 # 50 +18/32 +16 AND RESET TO 60 +10/32.
030440,000083:
030441,000084: 13,7226 07260 TC OUTCR1WT # AT 50 +18/32 +16, WAIT UNTIL 60 10/32,
030442,000085: 13,7227 00025 DEC 21 B-14 # RESETTING TO 60 +31/32.
030443,000086:
030444,000087:
030445,000088: # AT 60 +10/32 +16, ENTER TASKS 6 AND 7 DUE AT 70 AND 8 DUE AT 80. T3 WILL INCREMENT DURING TASK 7
030446,000089: # DISPATCH, MAKING TASK 8 DUE THAT INTERRUPT.
030447,000090:
030448,000091: 13,7230 34516 CAF ONE
030449,000092: 13,7231 02173 TC WAITLIST # ENTER TWO TASKS DUE SAME T3 RUPT AND
030450,000093: 13,7232 27310 CADR QTSK6 # ANOTHER DUE THE FOLLOWING RUPT.
030451,000094: 13,7233 34516 CAF ONE
030452,000095: 13,7234 02173 TC WAITLIST
030453,000096: 13,7235 27312 CADR QTSK7
030454,000097: 13,7236 35503 CAF TWO # A T3 INC WILL OCCUR WHILE TASK 7 IS
030455,000098: 13,7237 02173 TC WAITLIST # SETTING T3 FOR THIS TASK AND CAUSE IT TO
030456,000099: 13,7240 27313 CADR QTSK8 # BE THE THIRD TASK DUE THAT RUPT.
030457,000100:
030458,000101: 13,7241 07260 TC OUTCR1WT # WAIT UNTIL 60 +31/32 +16, INHINTING
030459,000102: 13,7242 00023 DEC 19 B-14 # 70 +18/32 +16.
030460,000103: 13,7243 07261 TC OUTCR1WT +1
030461,000104: 13,7244 00001 DEC 1 B-14
030462,000105:
030463,000106: 13,7245 34477 CAF FIVE # SYSTEMMATICALLY ENTER TASKS IN ALL 6
030464,000107: 13,7246 50115 TS MPAC # SLOTS.
030465,000108:
030466,000109: 13,7247 20016 QTSKLOOP RELINT
030467,000110: 13,7250 20017 INHINT
030468,000111: 13,7251 40115 CS MPAC
030469,000112: 13,7252 65362 AD SEVEN
030470,000113: 13,7253 02173 TC WAITLIST
030471,000114: 13,7254 27314 CADR QTSK10
030472,000115: 13,7255 10115 CCS MPAC
030473,000116: 13,7256 07246 TC QTSKLOOP -1
030474,000117:
030475,000118: 13,7257 07257 QENDTEST TC -0
030476,000119:
030477,000120:
030478,000121: # THE FOLLOWING SUBROUTINE USES OUTCR1 AS A FINE TIMER DURING THE WAITLIST TEST.
030479,000122:
030480,000123: 13,7260 20016 OUTCR1WT RELINT
030481,000124: 13,7261 30001 XCH Q
030482,000125: 13,7262 50115 TS MPAC
030483,000126: 13,7263 20000 INDEX A
030484,000127: 13,7264 40000 CS 0 # NUMBER OF THIRTY-SECONDS OF 10MS TO WAIT
030485,000128: 13,7265 64522 AD HALF
030486,000129: 13,7266 64522 AD HALF
030487,000130: 13,7267 50116 TS MPAC +1 # NEW OUTCR SETTING.
030488,000131:
030489,000132: 13,7270 10042 CCS OUTCR1
030490,000133: 13,7271 07270 TC -1
030491,000134:
030492,000135: 13,7272 30116 OUTCR1W2 XCH MPAC +1
030493,000136: 13,7273 50042 TS OUTCR1
030494,000137: 13,7274 37301 CAF 1WTCODE
030495,000138: 13,7275 50012 TS OUT2
030496,000139: 13,7276 20017 INHINT
030497,000140: 13,7277 20115 INDEX MPAC
030498,000141: 13,7300 00001 TC 1
030499,000142:
030500,000143: 13,7301 26000 1WTCODE OCT 26000
030501,000144:
030502,000145:
030503,000146: # TASKS FOR WAITLIST TESTER.
030504,000147:
030505,000148: 13,7302 02256 QTSK2 TC TASKOVER
030506,000149: 13,7303 02256 QTSK3 TC TASKOVER
030507,000150: 13,7304 37315 QTSK4 CAF QTSK4DEL # WAIT SO THAT T3 WILL TICK DURING DISPTCH
030508,000151: 13,7305 10000 CCS A
030509,000152: 13,7306 07305 TC -1
030510,000153: 13,7307 02256 TC TASKOVER
030511,000154:
030512,000155: 13,7310 37316 QTSK6 CAF QTSK6DEL
030513,000156: 13,7311 07305 TC QTSK4 +1
030514,000157:
030515,000158: 13,7312 02256 QTSK7 TC TASKOVER
030516,000159: 13,7313 02256 QTSK8 TC TASKOVER
030517,000160: 13,7314 02256 QTSK10 TC TASKOVER
030518,000161:
030519,000162: 13,7315 00115 QTSK4DEL DEC 77 B-14 # TUNING CONSTANTS.
030520,000163: 13,7316 00116 QTSK6DEL DEC 78 B-14
End of include-file VERIFICATION_ASSISTANCE_PROGRAMS.agc. Parent file is MAIN.agc