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