Source Code
|
This is a reconstructed version of Luminary 130, the initial AGC program released
in November 1969 for the Apollo 13 LM. Three more releases
followed before the flown revision was finally manufactured in February 1970.
This reconstruction was created from a previous transcription of the original listing of Luminary 131, combined with Luminary memo #129 which describes the small difference between the Luminary 130 and 131. The reconstructed source code was verified by matching memory-bank checksums to those listed for Luminary 130 in drawing 2021152G. In this source code, program comments from the original (Luminary 131) code are prefixed with '#', while those added later by the Virtual AGC project are prefixed with '##'. |
056327,000002: ## Copyright: Public domain.
056328,000003: ## Filename: KEYRUPT,_UPRUPT.agc
056329,000004: ## Purpose: A section of the reconstructed source code for Luminary 130.
056330,000005: ## This was the original program released for the Apollo 13 LM,
056331,000006: ## although several more revisions would follow. It has been
056332,000007: ## reconstructed from a listing of Luminary 131, from which it
056333,000008: ## differs on only two lines in P70-P71. The difference is
056334,000009: ## described in detail in Luminary memo #129, which was used
056335,000010: ## to perform the reconstruction. This file is intended to be a
056336,000011: ## faithful reconstruction, except that the code format has been
056337,000012: ## changed to conform to the requirements of the yaYUL assembler
056338,000013: ## rather than the original YUL assembler.
056339,000014: ## Reference: pp. 1330-1332
056340,000015: ## Contact: Ron Burkey <info@sandroid.org>.
056341,000016: ## Website: www.ibiblio.org/apollo/index.html
056342,000017: ## Mod history: 06/06/03 RSB. Began transcribing.
056343,000018: ## 05/14/05 RSB Corrected website reference above.
056344,000019: ## 2017-01-06 RSB Page numbers now agree with those on the
056345,000020: ## original hardcopy, as opposed to the PDF page
056346,000021: ## numbers in 1701.pdf.
056347,000022: ## 2017-02-27 RSB Proofed comment text using octopus/ProoferComments.
056348,000023: ## 2017-03-13 RSB Comment-text fixes noted in proofing Luminary 116.
056349,000024: ## 2018-09-04 MAS Copied from Luminary 131 for Luminary 130.
056350,000025:
|
Page 1330 |
056352,000027: 14,3775 BANK 14
056353,000028: 04,2000 SETLOC KEYRUPT
056354,000029: 04,2000 BANK
056355,000030: 04,3253 COUNT* $$/KEYUP
056356,000031:
056357,000032: 04,3253 54016 KEYRUPT1 TS BANKRUPT
056358,000033: 04,3254 56002 XCH Q
056359,000034: 04,3255 54012 TS QRUPT
056360,000035: 04,3256 04400 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
056361,000036: 04,3257 34346 CAF LOW5
056362,000037: 04,3260 00006 EXTEND
056363,000038: 04,3261 02015 RAND MNKEYIN # CHECK IF KEYS 5M-1M ON
056364,000039: 04,3262 54073 KEYCOM TS RUPTREG4
056365,000040: 04,3263 40101 CS FLAGWRD5
056366,000041: 04,3264 74735 MASK DSKYFBIT
056367,000042: 04,3265 26101 ADS FLAGWRD5
056368,000043:
056369,000044: 04,3266 34355 ACCEPTUP CAF CHRPRIO # (NOTE: RUPTREG4 = KEYTEMP1)
056370,000045: 04,3267 05072 TC NOVAC
056371,000046: 04,3270 0776 EBANK= DSPCOUNT
056372,000047: 04,3270 02077 60101 2CADR CHARIN
056373,000048:
056374,000049: 04,3272 30073 CA RUPTREG4
056375,000050: 04,3273 50064 INDEX LOCCTR
056376,000051: 04,3274 54154 TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
056377,000052: 04,3275 05270 TC RESUME
056378,000053:
|
Page 1331 |
056380,000055: # UPRUPT PROGRAM
056381,000056:
056382,000057: 04,3276 54016 UPRUPT TS BANKRUPT
056383,000058: 04,3277 56002 XCH Q
056384,000059: 04,3300 54012 TS QRUPT
056385,000060: 04,3301 04400 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
056386,000061: 04,3302 34755 CAF ZERO
056387,000062: 04,3303 56045 XCH INLINK
056388,000063: 04,3304 54073 TS KEYTEMP1
056389,000064: 04,3305 34751 CAF BIT3 # TURN ON UPACT LIGHT
056390,000065: 04,3306 00006 EXTEND # (BIT 3 OF CHANNEL 11)
056391,000066: 04,3307 05011 WOR DSALMOUT
056392,000067: 04,3310 34346 UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
056393,000068: 04,3311 70073 MASK KEYTEMP1 # LOW5 OF WORD
056394,000069: 04,3312 56073 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
056395,000070: 04,3313 00006 EXTEND
056396,000071: 04,3314 74742 MP BIT10 # SHIFT RIGHT 5
056397,000072: 04,3315 54332 TS KEYTEMP2
056398,000073: 04,3316 74346 MASK LOW5 # MID 5
056399,000074: 04,3317 63353 AD HI10
056400,000075: 04,3320 03350 TC UPTEST
056401,000076: 04,3321 34742 CAF BIT10
056402,000077: 04,3322 00006 EXTEND
056403,000078: 04,3323 70332 MP KEYTEMP2 # SHIFT RIGHT 5
056404,000079: 04,3324 74346 MASK LOW5 # HIGH 5
056405,000080: 04,3325 40000 COM
056406,000081: 04,3326 03350 TC UPTEST
056407,000082:
056408,000083: 04,3327 43356 UPCK CS ELRCODE # CODE IS GOOD. IF CODE = 'ERROR RESET',
056409,000084: 04,3330 60073 AD KEYTEMP1 # CLEAR UPLOCKFL (SET BIT4 OF FLAGWRD7 = 0)
056410,000085: 04,3331 00006 EXTEND # IF CODE DOES NOT = 'ERROR RESET', ACCEPT
056411,000086: 04,3332 13340 BZF CLUPLOCK # CODE ONLY IF UPLOCKFL IS CLEAR (=0).
056412,000087:
056413,000088: 04,3333 34750 CAF UPLOCBIT # TEST UPLOCKFL FOR 0 OR 1
056414,000089: 04,3334 70103 MASK FLAGWRD7
056415,000090: 04,3335 10000 CCS A
056416,000091: 04,3336 05270 TC RESUME # UPLOCKFL = 1
056417,000092: 04,3337 03266 TC ACCEPTUP # UPLOCKFL = 0
056418,000093:
056419,000094: 04,3340 44750 CLUPLOCK CS UPLOCBIT # CLEAR UPLOCKFL (I.E., SET BIT 4 OF )
056420,000095: 04,3341 70103 MASK FLAGWRD7 # FLAGWRD7 = 0)
056421,000096: 04,3342 54103 TS FLAGWRD7
056422,000097: 04,3343 03266 TC ACCEPTUP
056423,000098:
056424,000099: # CODE IS BAD
056425,000100: 04,3344 40103 TMFAIL2 CS FLAGWRD7 # LOCK OUT FURTHER UPLINK ACTIVITY
056426,000101: 04,3345 74750 MASK UPLOCBIT # (BY SETTING UPLOCKFL = 1) UNTIL
056427,000102: 04,3346 26103 ADS FLAGWRD7 # 'ERROR RESET' IS SENT VIA UPLINK.
056428,000103: 04,3347 05270 TC RESUME
056429,000104: 04,3350 60073 UPTEST AD KEYTEMP1
|
Page 1332 |
056431,000106: 04,3351 10000 CCS A
056432,000107: 04,3352 03344 TC TMFAIL2
056433,000108: 04,3353 77740 HI10 OCT 77740
056434,000109: 04,3354 03344 TC TMFAIL2
056435,000110: 04,3355 00002 TC Q
056436,000111:
056437,000112: 04,3356 00022 ELRCODE OCT 22
056438,000113:
056439,000114: # 'UPLINK ACTIVITY LIGHT' IS TURNED OFF BY .....
056440,000115: # 1. VBRELDSP
056441,000116: # 2. ERROR RESET
056442,000117: # 3. UPDATE PROGRAM (P27) ENTERED BY V70,V71,V72, AND V73.
056443,000118: # -
056444,000119: # THE RECEPTION OF A BAD CODE (I.E CCC FAILURE) LOCKS OUT FURTHER UPLINK ACTIVITY BY SETTING BIT4 OF FLAGWRD7 = 1.
056445,000120: # THIS INDICATION WILL BE TRANSFERRED TO THE GROUND BY THE DOWNLINK WHICH DOWNLINKS ALL FLAGWORDS.
056446,000121: # WHEN UPLINK ACTIVITY IS LOCKED OUT, IT CAN BE ALLOWED WHEN THE GROUND UPLINKS AND 'ERROR RESET' CODE.
056447,000122: # (IT IS RECOMMENDED THAT THE 'ERROR LIGHT RESET' CODE IS PRECEEDED BY 16 BITS THE FIRST OF WHICH IS 1 FOLLOWED
056448,000123: # BY 15 ZEROES. THIS WILL ELIMINATE EXTRANEOUS BITS FROM INLINK WHICH MAY HAVE BEEN LEFT OVER FROM THE ORIGINAL
056449,000124: # FAILURE)
056450,000125:
056451,000126: # 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