Source Code

056867,000001: # Copyright: Public domain. 056868,000002: # Filename: KEYRUPT_UPRUPT.agc 056869,000003: # Purpose: Part of the source code for Luminary 1A build 099. 056870,000004: # It is part of the source code for the Lunar Module's (LM) 056871,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 056872,000006: # Assembler: yaYUL 056873,000007: # Contact: Ron Burkey <info@sandroid.org>. 056874,000008: # Website: www.ibiblio.org/apollo. 056875,000009: # Pages: 1338-1340 056876,000010: # Mod history: 2009-05-27 RSB Adapted from the corresponding 056877,000011: # Luminary131 file, using page 056878,000012: # images from Luminary 1A. 056879,000013: 056880,000014: # This source code has been transcribed or otherwise adapted from 056881,000015: # digitized images of a hardcopy from the MIT Museum. The digitization 056882,000016: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 056883,000017: # the Museum. Many thanks to both. The images (with suitable reduction 056884,000018: # in storage size and consequent reduction in image quality as well) are 056885,000019: # available online at www.ibiblio.org/apollo. If for some reason you 056886,000020: # find that the images are illegible, contact me at info@sandroid.org 056887,000021: # about getting access to the (much) higher-quality images which Paul 056888,000022: # actually created. 056889,000023: 056890,000024: # Notations on the hardcopy document read, in part: 056891,000025: 056892,000026: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 056893,000027: # 16:27 JULY 14, 1969 056894,000028: 056895,000029: # Page 1338 056896,000030: 14,3774 BANK 14 056897,000031: 04,2000 SETLOC KEYRUPT 056898,000032: 04,2000 BANK 056899,000033: 04,3274 COUNT* $$/KEYUP 056900,000034: 056901,000035: 04,3274 54016 KEYRUPT1 TS BANKRUPT 056902,000036: 04,3275 56002 XCH Q 056903,000037: 04,3276 54012 TS QRUPT 056904,000038: 04,3277 04400 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65. 056905,000039: 04,3300 34346 CAF LOW5 056906,000040: 04,3301 00006 EXTEND 056907,000041: 04,3302 02015 RAND MNKEYIN # CHECK IF KEYS 5M-1M ON 056908,000042: 04,3303 54073 KEYCOM TS RUPTREG4 056909,000043: 04,3304 40101 CS FLAGWRD5 056910,000044: 04,3305 74735 MASK DSKYFBIT 056911,000045: 04,3306 26101 ADS FLAGWRD5 056912,000046: 056913,000047: 04,3307 34355 ACCEPTUP CAF CHRPRIO # (NOTE: RUPTREG4 = KEYTEMP1) 056914,000048: 04,3310 05072 TC NOVAC 056915,000049: 04,3311 0777 EBANK= DSPCOUNT 056916,000050: 04,3311 02077 60101 2CADR CHARIN 056917,000051: 056918,000052: 04,3313 30073 CA RUPTREG4 056919,000053: 04,3314 50064 INDEX LOCCTR 056920,000054: 04,3315 54154 TS MPAC # LEAVE 5 BIT KEY CODE IN MPAC FOR CHARIN 056921,000055: 04,3316 05270 TC RESUME 056922,000056: 056923,000057: # Page 1339 056924,000058: # UPRUPT PROGRAM 056925,000059: 056926,000060: 04,3317 54016 UPRUPT TS BANKRUPT 056927,000061: 04,3320 56002 XCH Q 056928,000062: 04,3321 54012 TS QRUPT 056929,000063: 04,3322 04400 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65. 056930,000064: 04,3323 34755 CAF ZERO 056931,000065: 04,3324 56045 XCH INLINK 056932,000066: 04,3325 54073 TS KEYTEMP1 056933,000067: 04,3326 34751 CAF BIT3 # TURN ON UPACT LIGHT 056934,000068: 04,3327 00006 EXTEND # (BIT 3 OF CHANNEL 11) 056935,000069: 04,3330 05011 WOR DSALMOUT 056936,000070: 04,3331 34346 UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY 056937,000071: 04,3332 70073 MASK KEYTEMP1 # LOW5 OF WORD 056938,000072: 04,3333 56073 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1 056939,000073: 04,3334 00006 EXTEND 056940,000074: 04,3335 74742 MP BIT10 # SHIFT RIGHT 5 056941,000075: 04,3336 54734 TS KEYTEMP2 056942,000076: 04,3337 74346 MASK LOW5 # MID 5 056943,000077: 04,3340 63374 AD HI10 056944,000078: 04,3341 03371 TC UPTEST 056945,000079: 04,3342 34742 CAF BIT10 056946,000080: 04,3343 00006 EXTEND 056947,000081: 04,3344 70734 MP KEYTEMP2 # SHIFT RIGHT 5 056948,000082: 04,3345 74346 MASK LOW5 # HIGH 5 056949,000083: 04,3346 40000 COM 056950,000084: 04,3347 03371 TC UPTEST 056951,000085: 056952,000086: 04,3350 43377 UPCK CS ELRCODE # CODE IS GOOD. IF CODE = `ERROR RESET', 056953,000087: 04,3351 60073 AD KEYTEMP1 # CLEAR UPLOCKFL (SET BIT4 OF FLAGWRD7 = 0) 056954,000088: 04,3352 00006 EXTEND # IF CODE DOES NOT = `ERROR RESET', ACCEPT 056955,000089: 04,3353 13361 BZF CLUPLOCK # CODE ONLY IF UPLOCKFL IS CLEAR (=0). 056956,000090: 056957,000091: 04,3354 34750 CAF UPLOCBIT # TEST UPLOCKFL FOR 0 OR 1 056958,000092: 04,3355 70103 MASK FLAGWRD7 056959,000093: 04,3356 10000 CCS A 056960,000094: 04,3357 05270 TC RESUME # UPLOCKFL = 1 056961,000095: 04,3360 03307 TC ACCEPTUP # UPLOCKFL = 0 056962,000096: 056963,000097: 04,3361 44750 CLUPLOCK CS UPLOCBIT # CLEAR UPLOCKFL (I.E., SET BIT 4 OF 056964,000098: 04,3362 70103 MASK FLAGWRD7 # FLAGWRD7 = 0) 056965,000099: 04,3363 54103 TS FLAGWRD7 056966,000100: 04,3364 03307 TC ACCEPTUP 056967,000101: 056968,000102: # CODE IS BAD 056969,000103: 04,3365 40103 TMFAIL2 CS FLAGWRD7 # LOCK OUT FURTHER UPLINK ACTIVITY 056970,000104: 04,3366 74750 MASK UPLOCBIT # (BY SETTING UPLOCKFL = 1) UNTIL 056971,000105: 04,3367 26103 ADS FLAGWRD7 # `ERROR RESET' IS SENT VIA UPLINK. 056972,000106: 04,3370 05270 TC RESUME 056973,000107: 04,3371 60073 UPTEST AD KEYTEMP1 056974,000108: # Page 1340 056975,000109: 04,3372 10000 CCS A 056976,000110: 04,3373 03365 TC TMFAIL2 056977,000111: 04,3374 77740 HI10 OCT 77740 056978,000112: 04,3375 03365 TC TMFAIL2 056979,000113: 04,3376 00002 TC Q 056980,000114: 056981,000115: 04,3377 00022 ELRCODE OCT 22 056982,000116: 056983,000117: # `UPLINK ACTIVITY LIGHT' IS TURNED OFF BY ..... 056984,000118: # 1. VBRELDSP 056985,000119: # 2. ERROR RESET 056986,000120: # 3. UPDATE PROGRAM (P27) ENTERED BY V70,V71,V72, AND V73. 056987,000121: # _ 056988,000122: # THE RECEPTION OF A BAD CODE (I.E., CCC FAILURE) LOCKS OUT FURTHER UPLINK ACTIVITY BY SETTING BIT4 OF FLAGWRD7 = 1. 056989,000123: # THIS INDICATION WILL BE TRANSFERRED TO THE GROUND BY THE DOWNLINK WHICH DOWNLINKS ALL FLAGWORDS. 056990,000124: # WHEN UPLINK ACTIVITY IS LOCKED OUT, IT CAN BE ALLOWED WHEN THE GROUND UPLINKS AND `ERROR RESET' CODE. 056991,000125: # (IT IS RECOMMENDED THAT THE `ERROR LIGHT RESET' CODE IS PRECEEDED BY 16 BITS THE FIRST OF WHICH IS 1 FOLLOWED 056992,000126: # BY 15 ZEROS. THIS WILL ELIMINATE EXTRANEOUS BITS FROM INLINK WHICH MAY HAVE BEEN LEFT OVER FROM THE ORIGINAL 056993,000127: # FAILURE). 056994,000128: 056995,000129: # UPLINK ACTIVITY IS ALSO ALLOWED (UNLOCKED) DURING FRESH START WHEN FRESH START SETS BIT4 OF FLAGWRD7 = 0. 056996,000130: 056997,000131: 04,3400 44753 CS XDSPBIT 056998,000132: End of include-file KEYRUPT_UPRUPT.agc. Parent file is MAIN.agc