Source Code
These source-code files are part of a reconstructed copy of Sundial E, the
final release of the Block II 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 2003053-121, 2003053-151, and 2003972-211, belonging to the MIT Museum. Since only binary dumps (rather than listings) of Sundial 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. |
008239,000002: ## Copyright: Public domain.
008240,000003: ## Filename: KEYRUPT,_UPRUPT.agc
008241,000004: ## Purpose: A section of Sundial E.
008242,000005: ## It is part of the reconstructed source code for the final
008243,000006: ## release of the Block II Command Module system test software. No
008244,000007: ## original listings of this program are available; instead, this
008245,000008: ## file was created via disassembly of dumps of Sundial core rope
008246,000009: ## modules and comparison with other AGC programs.
008247,000010: ## Assembler: yaYUL
008248,000011: ## Contact: Ron Burkey <info@sandroid.org>.
008249,000012: ## Website: www.ibiblio.org/apollo/index.html
008250,000013: ## Mod history: 2023-06-22 MAS Created from Aurora 12.
008251,000014: ## 2023-06-30 MAS Updated for Sundial E.
008252,000015:
008253,000016: 01,2773 SETLOC ENDWAITS
008254,000017:
008255,000018: 01,2773 54016 KEYRUPT1 TS BANKRUPT
008256,000019: 01,2774 56002 XCH Q
008257,000020: 01,2775 54012 TS QRUPT
008258,000021: 01,2776 05510 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
008259,000022: 01,2777 35455 CAF LOW5
008260,000023: 01,3000 00006 EXTEND
008261,000024: 01,3001 02015 RAND MNKEYIN
008262,000025: 01,3002 54077 KEYCOM TS RUPTREG4
008263,000026: 01,3003 35464 CAF CHRPRIO
008264,000027: 01,3004 04276 TC NOVAC
008265,000028: 01,3005 0264 EBANK= DSPCOUNT
008266,000029: 01,3005 02002 10000 2CADR CHARIN
008267,000030: 01,3007 30077 CA RUPTREG4
008268,000031: 01,3010 50071 INDEX LOCCTR
008269,000032: 01,3011 54140 TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
008270,000033: 01,3012 04511 TC RESUME
008271,000034:
008272,000035: # UPRUPT PROGRAM
008273,000036:
008274,000037: 01,3013 54016 UPRUPT TS BANKRUPT
008275,000038: 01,3014 56002 XCH Q
008276,000039: 01,3015 54012 TS QRUPT
008277,000040: 01,3016 05510 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
008278,000041: 01,3017 37657 CAF ZERO
008279,000042: 01,3020 56045 XCH INLINK
008280,000043: 01,3021 54077 TS KEYTEMP1
008281,000044: 01,3022 37650 CAF BIT3 # TURN ON UPACT LIGHT
008282,000045: 01,3023 00006 EXTEND # (BIT 3 OF CHANNEL 11)
008283,000046: 01,3024 05011 WOR DSALMOUT
008284,000047: 01,3025 35455 UPRUPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
008285,000048: 01,3026 70077 MASK KEYTEMP1 # LOW5 OF WORD
008286,000049: 01,3027 56077 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
008287,000050: 01,3030 56021 XCH SR # WHOLE WORD INTO SR
008288,000051: 01,3031 55071 TS KEYTEMP2 # ORIGINAL SR INTO KEYTEMP2
008289,000052: 01,3032 03076 TC SRGHT5
008290,000053: 01,3033 75455 MASK LOW5 # MID 5
008291,000054: 01,3034 63110 AD HI10
008292,000055: 01,3035 03105 TC UPTEST
008293,000056: 01,3036 03076 TC SRGHT5
008294,000057: 01,3037 75455 MASK LOW5 # HIGH 5
008295,000058: 01,3040 40000 COM
008296,000059: 01,3041 03105 TC UPTEST
008297,000060: 01,3042 03072 UPOK TC RESTORSR # CODE IS GOOD
008298,000061: 01,3043 43047 CS ELRCODE # IF CODE = ERROR LIGHT RESET, PUT +0
008299,000062: 01,3044 60077 AD KEYTEMP1 # INTO BIT1 OF UPLOCK.
008300,000063: 01,3045 10000 CCS A # IF CODE NOT= ELR, PASS CODE ONLY IF
008301,000064: 01,3046 03055 TC TSTUPLOK # BIT1 OF UPLOCK = 0.
008302,000065: 01,3047 00022 ELRCODE OCT 22
008303,000066: 01,3050 03055 TC TSTUPLOK
008304,000067: 01,3051 47652 CS BIT1 # PUT 0 INTO BIT1 OF UPLOCK
008305,000068: 01,3052 70342 MASK UPLOCK
008306,000069: 01,3053 54342 TS UPLOCK
008307,000070: 01,3054 03061 TC ACCEPTUP
008308,000071: 01,3055 37652 TSTUPLOK CAF BIT1
008309,000072: 01,3056 70342 MASK UPLOCK
008310,000073: 01,3057 10000 CCS A
008311,000074: 01,3060 04511 TC RESUME # BIT1 OF UPLOCK = 1.
008312,000075: 01,3061 56077 ACCEPTUP XCH KEYTEMP1 # BIT1 OF UPLOCK = 0.
008313,000076: 01,3062 03002 TC KEYCOM
008314,000077:
008315,000078: 01,3063 03072 TMFAIL2 TC RESTORSR # CODE IS BAD
008316,000079: 01,3064 47652 CS BIT1 # LOCK OUT FURTHER UPLINK ACTIVITY (BY
008317,000080: 01,3065 70342 MASK UPLOCK # PUTTING 1 INTO BIT1 OF UPLOCK) UNTIL ELR
008318,000081: 01,3066 67652 AD BIT1 # IS SENT UP UPLINK.
008319,000082: 01,3067 54342 TS UPLOCK
008320,000083: 01,3070 04511 TMFAIL1 TC TMALM
008321,000084: 01,3071 04511 TC RESUME
008322,000085: 01,3072 57071 RESTORSR XCH KEYTEMP2
008323,000086: 01,3073 60000 DOUBLE
008324,000087: 01,3074 54021 TS SR
008325,000088: 01,3075 00002 TC Q
008326,000089:
008327,000090: 01,3076 4511 TMALM = RESUME # FOR NOW
008328,000091:
008329,000092: 01,3076 40021 SRGHT5 CS SR
008330,000093: 01,3077 40021 CS SR
008331,000094: 01,3100 40021 CS SR
008332,000095: 01,3101 40021 CS SR
008333,000096: 01,3102 40021 CS SR
008334,000097: 01,3103 40000 CS A
008335,000098: 01,3104 00002 TC Q # DELIVERS WORD UNCOMPLEMENTED
008336,000099:
008337,000100: 01,3105 60077 UPTEST AD KEYTEMP1
008338,000101: 01,3106 10000 CCS A
008339,000102: 01,3107 03063 TC TMFAIL2
008340,000103: 01,3110 77740 HI10 OCT 77740
008341,000104: 01,3111 03063 TC TMFAIL2
008342,000105: 01,3112 00002 TC Q
008343,000106:
008344,000107: # UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
008345,000108: # THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
008346,000109: # BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
008347,000110: # IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
008348,000111: # THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
008349,000112: # UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
008350,000113:
008351,000114: 01,3113 ENDKRURS EQUALS
End of include-file KEYRUPT,_UPRUPT.agc. Parent file is MAIN.agc