Source Code
These source-code files are part of a reconstructed copy of Sunrise 69, the
final release of the Block I Command Module (CM) Apollo Guidance Computer
(AGC) system test software.
They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 1003133-18, 1003133-19, 1003133-20, and 1003733-071. Corresponding portions of code have been copied from Solarium 55 where applicable. Extensive use was also made of the AGC Information Series documents, which were specifically written about the Sunrise software. Since only binary dumps (rather than listings) of Sunrise 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. |
010805,000002: ## Copyright: Public domain.
010806,000003: ## Filename: KEYRUPT_UPRUPT_FRESH_START.agc
010807,000004: ## Purpose: A section of Sunrise 69.
010808,000005: ## It is part of the reconstructed source code for the final
010809,000006: ## release of the Block I Command Module system test software. No
010810,000007: ## original listings of this program are available; instead, this
010811,000008: ## file was created via disassembly of dumps of Sunrise core rope
010812,000009: ## memory modules and comparison with the later Block I program
010813,000010: ## Solarium 55.
010814,000011: ## Assembler: yaYUL --block1
010815,000012: ## Contact: Ron Burkey <info@sandroid.org>.
010816,000013: ## Website: www.ibiblio.org/apollo/index.html
010817,000014: ## Mod history: 2023-06-19 MAS Created from Sunrise 45.
010818,000015:
010819,000016:
010820,000017: 04,7265 BANK 4
010821,000018: 04,7265 72765 KEYRUPT1 MASK LOW5 # C(IN0) IN A
010822,000019: 04,7266 64504 AD BIT11
010823,000020: 04,7267 50702 TS TMKEYBUF
010824,000021: 04,7270 32774 CAF PRIO30
010825,000022: 04,7271 02043 TC NOVAC
010826,000023: 04,7272 50010 CADR CHARIN
010827,000024: 04,7273 32765 CAF LOW5
010828,000025: 04,7274 70702 MASK TMKEYBUF
010829,000026: 04,7275 20574 INDEX LOCCTR
010830,000027: 04,7276 50114 TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
010831,000028: 04,7277 02211 TC RESUME
010832,000029:
010833,000030:
010834,000031: 04,7300 35500 UPRUPTB CAF ZERO
010835,000032: 04,7301 30041 XCH UPLINK # ZERO UPLINK
010836,000033: 04,7302 50573 TS KEYTEMP1
010837,000034: 04,7303 10737 CCS DSPTAB +7 # TURN ON UPACT LIGHT
010838,000035: 04,7304 07306 TC +2 # UPACT = BIT 11 OF DSPTAB +7
010839,000036: 04,7305 37370 CAF B12-1 # SAFETY PLAY
010840,000037: 04,7306 64516 AD ONE
010841,000038: 04,7307 50564 TS KEYTEMP2 # MAG OF DSPTAB +7 INTO KEYTEMP2
010842,000039: 04,7310 74504 MASK BIT11
010843,000040: 04,7311 10000 CCS A
010844,000041: 04,7312 07322 TC UPRPT1 # BIT 11 ALREADY ONE
010845,000042: 04,7313 30564 XCH KEYTEMP2 # BIT 11 = 0
010846,000043: 04,7314 64504 AD BIT11
010847,000044: 04,7315 40000 CS A # STORE NEGATIVELY
010848,000045: 04,7316 30737 XCH DSPTAB +7
010849,000046: 04,7317 10000 CCS A
010850,000047: 04,7320 07371 TC INCNOUTU # PREVIOUS CONTENTS WAS +
010851,000048: 04,7321 30000 NOOP # SAFETY PLAY
010852,000049: 04,7322 32765 UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
010853,000050: 04,7323 70573 MASK KEYTEMP1 # LOW5 OF WORD
010854,000051: 04,7324 30573 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
010855,000052: 04,7325 30021 XCH SR # WHOLE WORD INTO SR
010856,000053: 04,7326 50564 TS KEYTEMP2 # ORIGINAL SR INTO KEYTEMP2
010857,000054: 04,7327 07352 TC SRGHT5
010858,000055: 04,7330 72765 MASK LOW5 # MID 5
010859,000056: 04,7331 67367 AD HI10
010860,000057: 04,7332 07361 TC UPTEST
010861,000058: 04,7333 07352 TC SRGHT5
010862,000059: 04,7334 72765 MASK LOW5 # HIGH 5
010863,000060: 04,7335 40000 COM
010864,000061: 04,7336 07361 TC UPTEST
010865,000062: 04,7337 07346 UPOK TC RESTORSR # CODE IS GOOD
010866,000063: 04,7340 30573 XCH KEYTEMP1
010867,000064: 04,7341 64511 AD BIT6
010868,000065: 04,7342 07266 TC KEYRUPT1 +1
010869,000066:
010870,000067: 04,7343 07346 TMFAIL2 TC RESTORSR # CODE IS BAD
010871,000068: 04,7344 02361 TC TMFAIL
010872,000069: 04,7345 02211 TC RESUME
010873,000070:
010874,000071: 04,7346 30564 RESTORSR XCH KEYTEMP2
010875,000072: 04,7347 60000 DOUBLE
010876,000073: 04,7350 50021 TS SR
010877,000074: 04,7351 00001 TC Q
010878,000075:
010879,000076: 04,7352 40021 SRGHT5 CS SR
010880,000077: 04,7353 40021 CS SR
010881,000078: 04,7354 40021 CS SR
010882,000079: 04,7355 40021 CS SR
010883,000080: 04,7356 40021 CS SR
010884,000081: 04,7357 40000 CS A
010885,000082: 04,7360 00001 TC Q # DELIVERS WORD UNCOMPLEMENTED
010886,000083:
010887,000084: 04,7361 60573 UPTEST AD KEYTEMP1
010888,000085: 04,7362 10000 CCS A
010889,000086: 04,7363 07343 TC TMFAIL2
010890,000087: 04,7365 LOC +1
010891,000088: 04,7365 07343 TC TMFAIL2
010892,000089: 04,7366 00001 TC Q
010893,000090:
010894,000091: 04,7367 77740 HI10 OCT 77740
010895,000092: 04,7370 2066 UPBANK EQUALS EXECBANK # IN SAME BANK AS EXEC.
010896,000093:
010897,000094: 04,7370 03777 B12-1 OCT 3777
010898,000095:
010899,000096: 04,7371 30727 INCNOUTU XCH NOUT
010900,000097: 04,7372 64516 AD ONE
010901,000098: 04,7373 50727 TS NOUT
010902,000099: 04,7374 20001 INDEX Q
010903,000100: 04,7375 00001 UPLAST TC 1
010904,000101:
010905,000102: # UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
010906,000103:
010907,000104:
010908,000105: # THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
010909,000106: # BY PLACING A 1 INTO UPLOCK (BIT2 OF STATE). BIT9 (AND BIT11) OF TMKEYBUF
010910,000107: # IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
010911,000108: # THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
010912,000109: # UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
010913,000110:
010914,000111:
010915,000112: 3200 SETLOC 3200
010916,000113:
010917,000114: 3200 32066 UPRUPT CAF UPBANK
010918,000115: 3201 30015 XCH BANKREG
010919,000116: 3202 50575 TS BANKRUPT
010920,000117: 3203 07300 TC UPRUPTB
End of include-file KEYRUPT_UPRUPT_FRESH_START.agc. Parent file is MAIN.agc