Source Code

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