Source Code
These source-code files are part of a reconstructed copy of Aurora 88, the
final release of the Lunar Module (LM) Apollo Guidance Computer (AGC) system
test software.
They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-011, 2003972-091, and 2003972-111, belonging to Steve Jurvetson. Since only binary dumps (rather than listings) of Aurora 88 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. |
009714,000002: ## Copyright: Public domain.
009715,000003: ## Filename: KEYRUPT,_UPRUPT.agc
009716,000004: ## Purpose: A section of Aurora 88.
009717,000005: ## It is part of the reconstructed source code for the final
009718,000006: ## release of the Lunar Module system test software. No original
009719,000007: ## listings of this program are available; instead, this file
009720,000008: ## was created via disassembly of dumps of Aurora 88 core rope
009721,000009: ## modules and comparison with other AGC programs.
009722,000010: ## Assembler: yaYUL
009723,000011: ## Contact: Ron Burkey <info@sandroid.org>.
009724,000012: ## Website: www.ibiblio.org/apollo/index.html
009725,000013: ## Mod history: 2023-06-30 MAS Created from Aurora 12.
009726,000014: ## 2023-07-12 MAS Updated for Aurora 88.
009727,000015:
009728,000016:
009729,000017: 12,3602 SETLOC ENDT4S
009730,000018:
009731,000019: 12,3602 54016 KEYRUPT1 TS BANKRUPT
009732,000020: 12,3603 56002 XCH Q
009733,000021: 12,3604 54012 TS QRUPT
009734,000022: 12,3605 05161 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
009735,000023: 12,3606 35126 CAF LOW5
009736,000024: 12,3607 00006 EXTEND
009737,000025: 12,3610 02015 RAND MNKEYIN
009738,000026: 12,3611 54077 KEYCOM TS RUPTREG4
009739,000027: 12,3612 35135 CAF CHRPRIO
009740,000028: 12,3613 04276 TC NOVAC
009741,000029: 12,3614 0264 EBANK= DSPCOUNT
009742,000030: 12,3614 02002 10000 2CADR CHARIN
009743,000031: 12,3616 30077 CA RUPTREG4
009744,000032: 12,3617 50071 INDEX LOCCTR
009745,000033: 12,3620 54140 TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
009746,000034: 12,3621 04511 TC RESUME
009747,000035:
009748,000036: # UPRUPT PROGRAM
009749,000037:
009750,000038: 12,3622 54016 UPRUPT TS BANKRUPT
009751,000039: 12,3623 56002 XCH Q
009752,000040: 12,3624 54012 TS QRUPT
009753,000041: 12,3625 05161 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
009754,000042: 12,3626 37657 CAF ZERO
009755,000043: 12,3627 56045 XCH INLINK
009756,000044: 12,3630 54077 TS KEYTEMP1
009757,000045: 12,3631 37650 CAF BIT3 # TURN ON UPACT LIGHT
009758,000046: 12,3632 00006 EXTEND # (BIT 3 OF CHANNEL 11)
009759,000047: 12,3633 05011 WOR DSALMOUT
009760,000048: 12,3634 35126 UPRUPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
009761,000049: 12,3635 70077 MASK KEYTEMP1 # LOW5 OF WORD
009762,000050: 12,3636 56077 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
009763,000051: 12,3637 56021 XCH SR # WHOLE WORD INTO SR
009764,000052: 12,3640 55071 TS KEYTEMP2 # ORIGINAL SR INTO KEYTEMP2
009765,000053: 12,3641 03705 TC SRGHT5
009766,000054: 12,3642 75126 MASK LOW5 # MID 5
009767,000055: 12,3643 63717 AD HI10
009768,000056: 12,3644 03714 TC UPTEST
009769,000057: 12,3645 03705 TC SRGHT5
009770,000058: 12,3646 75126 MASK LOW5 # HIGH 5
009771,000059: 12,3647 40000 COM
009772,000060: 12,3650 03714 TC UPTEST
009773,000061: 12,3651 03701 UPOK TC RESTORSR # CODE IS GOOD
009774,000062: 12,3652 43656 CS ELRCODE # IF CODE = ERROR LIGHT RESET, PUT +0
009775,000063: 12,3653 60077 AD KEYTEMP1 # INTO BIT1 OF UPLOCK.
009776,000064: 12,3654 10000 CCS A # IF CODE NOT= ELR, PASS CODE ONLY IF
009777,000065: 12,3655 03664 TC TSTUPLOK # BIT1 OF UPLOCK = 0.
009778,000066: 12,3656 00022 ELRCODE OCT 22
009779,000067: 12,3657 03664 TC TSTUPLOK
009780,000068: 12,3660 47652 CS BIT1 # PUT 0 INTO BIT1 OF UPLOCK
009781,000069: 12,3661 70342 MASK UPLOCK
009782,000070: 12,3662 54342 TS UPLOCK
009783,000071: 12,3663 03670 TC ACCEPTUP
009784,000072: 12,3664 37652 TSTUPLOK CAF BIT1
009785,000073: 12,3665 70342 MASK UPLOCK
009786,000074: 12,3666 10000 CCS A
009787,000075: 12,3667 04511 TC RESUME # BIT1 OF UPLOCK = 1.
009788,000076: 12,3670 56077 ACCEPTUP XCH KEYTEMP1 # BIT1 OF UPLOCK = 0.
009789,000077: 12,3671 03611 TC KEYCOM
009790,000078:
009791,000079: 12,3672 03701 TMFAIL2 TC RESTORSR # CODE IS BAD
009792,000080: 12,3673 47652 CS BIT1 # LOCK OUT FURTHER UPLINK ACTIVITY (BY
009793,000081: 12,3674 70342 MASK UPLOCK # PUTTING 1 INTO BIT1 OF UPLOCK) UNTIL ELR
009794,000082: 12,3675 67652 AD BIT1 # IS SENT UP UPLINK.
009795,000083: 12,3676 54342 TS UPLOCK
009796,000084: 12,3677 04511 TMFAIL1 TC TMALM
009797,000085: 12,3700 04511 TC RESUME
009798,000086: 12,3701 57071 RESTORSR XCH KEYTEMP2
009799,000087: 12,3702 60000 DOUBLE
009800,000088: 12,3703 54021 TS SR
009801,000089: 12,3704 00002 TC Q
009802,000090:
009803,000091: 12,3705 4511 TMALM = RESUME # FOR NOW
009804,000092:
009805,000093: 12,3705 40021 SRGHT5 CS SR
009806,000094: 12,3706 40021 CS SR
009807,000095: 12,3707 40021 CS SR
009808,000096: 12,3710 40021 CS SR
009809,000097: 12,3711 40021 CS SR
009810,000098: 12,3712 40000 CS A
009811,000099: 12,3713 00002 TC Q # DELIVERS WORD UNCOMPLEMENTED
009812,000100:
009813,000101: 12,3714 60077 UPTEST AD KEYTEMP1
009814,000102: 12,3715 10000 CCS A
009815,000103: 12,3716 03672 TC TMFAIL2
009816,000104: 12,3717 77740 HI10 OCT 77740
009817,000105: 12,3720 03672 TC TMFAIL2
009818,000106: 12,3721 00002 TC Q
009819,000107:
009820,000108: # UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
009821,000109: # THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
009822,000110: # BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
009823,000111: # IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
009824,000112: # THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
009825,000113: # UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
009826,000114:
009827,000115:
009828,000116:
MAS 2023: The following chunks of code (down to ENDKRURS) were added as patches between Aurora 85 and Aurora 88. They were placed here at the end of the bank so as to not change addresses of existing symbols. |
009832,000120:
009833,000121: 12,3722 00620 4SECS DEC 400 B-14
009834,000122:
009835,000123:
009836,000124:
009837,000125: 12,3723 25362 GOPROG1 INCR REDOCTR # ADVANCE RESTART COUNTER.
009838,000126:
009839,000127: 12,3724 31357 CA ERESTORE
009840,000128: 12,3725 00006 EXTEND
009841,000129: 12,3726 13733 BZF +5
009842,000130:
009843,000131: 12,3727 00006 EXTEND # RESTORE B(X) AND B(X+1) IF RESTART
009844,000132: 12,3730 31376 DCA SKEEP5 # HAPPENED WHILE SELF-CHECK HAD REPLACED
009845,000133: 12,3731 51377 NDX SKEEP7 # THEM WITH CHECKING WORDS.
009846,000134: 12,3732 52001 DXCH 0000
009847,000135:
009848,000136: 12,3733 02077 TC GOPROG +1
009849,000137:
009850,000138:
009851,000139:
009852,000140: 12,3734 55357 STARTSB1 TS ERESTORE # ERASCHK RESTORE FLAG
009853,000141: 12,3735 34445 CAF PRIO34 # ENABLE INTERRUPTS.
009854,000142: 12,3736 02252 TC STARTSB2
009855,000143:
009856,000144:
009857,000145:
009858,000146: 12,3737 04131 ENDTNON3 TC IBNKCALL # TURN OFF NO ATT LAMP.
009859,000147: 12,3740 27503 CADR NOATTOFF
009860,000148:
009861,000149: 12,3741 04660 UNZ2 TC ZEROICDU
009862,000150: 12,3742 03063 TC UNZ2B
009863,000151:
009864,000152:
009865,000153:
009866,000154: 12,3743 37647 OPONLY1 CAF BIT4 # IF OPERATE ON ONLY, AND WE ARE IN COARSE
009867,000155: 12,3744 00006 EXTEND # ALIGN, DONT ZERO THE CDUS BECAUSE WE
009868,000156: 12,3745 02012 RAND CHAN12 # MIGHT BE IN GIMBAL LOCK.
009869,000157: 12,3746 10000 CCS A
009870,000158: 12,3747 13126 TCF C33TEST
009871,000159:
009872,000160: 12,3750 37643 CAF IMUSEFLG # OTHERWISE, ZERO THE COUNTERS
009873,000161: 12,3751 03112 TC OPONLY +1 # UNLESS SOMEONE IS USING THE IMU.
009874,000162:
009875,000163:
009876,000164:
009877,000165: 12,3752 43760 CAGESUB1 CS OC40010 # TURN ON NO ATT LAMP.
009878,000166: 12,3753 70322 MASK DSPTAB +11D
009879,000167: 12,3754 63760 AD OC40010
009880,000168: 12,3755 54322 TS DSPTAB +11D
009881,000169: 12,3756 43452 CAGESUB2 CS OCT75 # SET FLAGS TO INDICATE CAGING OR TURN-ON,
009882,000170: 12,3757 13425 TCF CAGESUB3 # AND TO INHIBIT ALL ISS WARNING INFO.
009883,000171:
009884,000172: 12,3760 40010 OC40010 OCT 40010
009885,000173:
009886,000174: 12,3761 ENDKRURS EQUALS
End of include-file KEYRUPT,_UPRUPT.agc. Parent file is MAIN.agc