Source Code
These source code files are an attempted reconstruction of Sundance revision 306, the Apollo 9
LM (Lunar Module) AGC (Apollo Guidance Computer) flight software, created from binary dumps of
original core rope program modules, as follows:
|
052560,000002: ## Copyright: Public domain.
052561,000003: ## Filename: KEYRUPT,_UPRUPT.agc
052562,000004: ## Purpose: A section of an attempt to reconstruct Sundance revision 306
052563,000005: ## as closely as possible with available information. Sundance
052564,000006: ## 306 is the source code for the Lunar Module's (LM) Apollo
052565,000007: ## Guidance Computer (AGC) for Apollo 9. This program was created
052566,000008: ## using the mixed-revision SundanceXXX as a starting point, and
052567,000009: ## pulling back features from Luminary 69 believed to have been
052568,000010: ## added based on memos, checklists, observed address changes,
052569,000011: ## or the Sundance GSOPs.
052570,000012: ## Assembler: yaYUL
052571,000013: ## Contact: Ron Burkey <info@sandroid.org>.
052572,000014: ## Website: www.ibiblio.org/apollo/index.html
052573,000015: ## Mod history: 2020-07-24 MAS Created from SundanceXXX.
052574,000016: ## 2021-05-30 ABS UPCK -> UPOK
052575,000017:
052576,000018:
052577,000019:
052578,000020: 14,3734 BANK 14
052579,000021: 04,2000 SETLOC KEYRUPT
052580,000022: 04,2000 BANK
052581,000023: 04,3107 COUNT* $$/KEYUP
052582,000024:
052583,000025: 04,3107 54016 KEYRUPT1 TS BANKRUPT
052584,000026: 04,3110 56002 XCH Q
052585,000027: 04,3111 54012 TS QRUPT
052586,000028: 04,3112 04412 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
052587,000029: 04,3113 34360 CAF LOW5
052588,000030: 04,3114 00006 EXTEND
052589,000031: 04,3115 02015 RAND MNKEYIN # CHECK IF KEYS 5M-1M ON
052590,000032: 04,3116 54073 KEYCOM TS RUPTREG4
052591,000033: 04,3117 40101 CS FLAGWRD5
052592,000034: 04,3120 75010 MASK DSKYFBIT
052593,000035: 04,3121 26101 ADS FLAGWRD5
052594,000036:
052595,000037: 04,3122 34367 ACCEPTUP CAF CHRPRIO # (NOTE: RUPTREG4 = KEYTEMP1)
052596,000038: 04,3123 05142 TC NOVAC
052597,000039: 04,3124 1000 EBANK= DSPCOUNT
052598,000040: 04,3124 02212 60102 2CADR CHARIN
052599,000041:
052600,000042: 04,3126 30073 CA RUPTREG4
052601,000043: 04,3127 50064 INDEX LOCCTR
052602,000044: 04,3130 54154 TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
052603,000045: 04,3131 05340 TC RESUME
052604,000046:
052605,000047: # UPRUPT PROGRAM
052606,000048:
052607,000049: 04,3132 54016 UPRUPT TS BANKRUPT
052608,000050: 04,3133 56002 XCH Q
052609,000051: 04,3134 54012 TS QRUPT
052610,000052: 04,3135 04412 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
052611,000053: 04,3136 35030 CAF ZERO
052612,000054: 04,3137 56045 XCH INLINK
052613,000055: 04,3140 54073 TS KEYTEMP1
052614,000056: 04,3141 35024 CAF BIT3 # TURN ON UPACT LIGHT
052615,000057: 04,3142 00006 EXTEND # (BIT 3 OF CHANNEL 11)
052616,000058: 04,3143 05011 WOR DSALMOUT
052617,000059: 04,3144 34360 UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
052618,000060: 04,3145 70073 MASK KEYTEMP1 # LOW5 OF WORD
052619,000061: 04,3146 56073 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
052620,000062: 04,3147 00006 EXTEND
052621,000063: 04,3150 75015 MP BIT10 # SHIFT RIGHT 5
052622,000064: 04,3151 54734 TS KEYTEMP2
052623,000065: 04,3152 74360 MASK LOW5 # MID 5
052624,000066: 04,3153 63207 AD HI10
052625,000067: 04,3154 03204 TC UPTEST
052626,000068: 04,3155 35015 CAF BIT10
052627,000069: 04,3156 00006 EXTEND
052628,000070: 04,3157 70734 MP KEYTEMP2 # SHIFT RIGHT 5
052629,000071: 04,3160 74360 MASK LOW5 # HIGH 5
052630,000072: 04,3161 40000 COM
052631,000073: 04,3162 03204 TC UPTEST
052632,000074:
052633,000075: 04,3163 43212 UPOK CS ELRCODE # CODE IS GOOD. IF CODE = 'ERROR RESET',
052634,000076: 04,3164 60073 AD KEYTEMP1 # CLEAR UPLOCKFL(SET BIT4 OF FLAGWRD7 = 0)
052635,000077: 04,3165 00006 EXTEND # IF CODE DOES NOT = 'ERROR RESET', ACCEPT
052636,000078: 04,3166 13174 BZF CLUPLOCK # CODE ONLY IF UPLOCKFL IS CLEAR (=0).
052637,000079:
052638,000080: 04,3167 35023 CAF UPLOCBIT # TEST UPLOCKFL FOR 0 OR 1
052639,000081: 04,3170 70103 MASK FLAGWRD7
052640,000082: 04,3171 10000 CCS A
052641,000083: 04,3172 05340 TC RESUME # UPLOCKFL = 1
052642,000084: 04,3173 03122 TC ACCEPTUP # UPLOCKFL = 0
052643,000085:
052644,000086: 04,3174 45023 CLUPLOCK CS UPLOCBIT # CLEAR UPLOCKFL (I.E., SET BIT 4 OF )
052645,000087: 04,3175 70103 MASK FLAGWRD7 # FLAGWRD7 = 0)
052646,000088: 04,3176 54103 TS FLAGWRD7
052647,000089: 04,3177 03122 TC ACCEPTUP
052648,000090:
052649,000091: # CODE IS BAD
052650,000092: 04,3200 40103 TMFAIL2 CS FLAGWRD7 # LOCK OUT FURTHER UPLINK ACTIVITY
052651,000093: 04,3201 75023 MASK UPLOCBIT # (BY SETTING UPLOCKFL = 1) UNTIL
052652,000094: 04,3202 26103 ADS FLAGWRD7 # 'ERROR RESET' IS SENT VIA UPLINK.
052653,000095: 04,3203 05340 TC RESUME
052654,000096: 04,3204 60073 UPTEST AD KEYTEMP1
052655,000097: 04,3205 10000 CCS A
052656,000098: 04,3206 03200 TC TMFAIL2
052657,000099: 04,3207 77740 HI10 OCT 77740
052658,000100: 04,3210 03200 TC TMFAIL2
052659,000101: 04,3211 00002 TC Q
052660,000102:
052661,000103: 04,3212 00022 ELRCODE OCT 22
052662,000104:
052663,000105: # 'UPLINK ACTIVITY LIGHT' IS TURNED OFF BY .....
052664,000106: # 1. VBRELDSP
052665,000107: # 2. ERROR RESET
052666,000108: # 3. UPDATE PROGRAM (P27) ENTERED BY V70,V71,V72,AND V73.
052667,000109: # -
052668,000110: # THE RECEPTION OF A BAD CODE (I.E CCC FAILURE) LOCKS OUT FURTHER UPLINK ACTIVITY BY SETTING BIT4 OF FLAGWRD7 = 1.
052669,000111: # THIS INDICATION WILL BE TRANSFERRED TO THE GROUND BY THE DOWNLINK WHICH DOWNLINKS ALL FLAGWORDS.
052670,000112: # WHEN UPLINK ACTIVITY IS LOCKED OUT, IT CAN BE ALLOWED WHEN THE GROUND UPLINKS AND 'ERROR RESET' CODE.
052671,000113: # (IT IS RECOMMENDED THAT THE 'ERROR LIGHT RESET' CODE IS PRECEEDED BY 16 BITS THE FIRST OF WHICH IS 1 FOLLOWED
052672,000114: # BY 15 ZEROES. THIS WILL ELIMINATE EXTRANEOUS BITS FROM INLINK WHICH MAY HAVE BEEN LEFT OVER FROM THE ORIGINAL
052673,000115: # FAILURE)
052674,000116:
052675,000117: # UPLINK ACTIVITY IS ALSO ALLOWED (UNLOCKED) DURING FRESH START WHEN FRESH START SETS BIT4 OF FLAGWRD7 = 0.
End of include-file KEYRUPT,_UPRUPT.agc. Parent file is MAIN.agc