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