Source Code
055319,000001: # Copyright: Public domain.
055320,000002: # Filename: KEYRUPT_UPRUPT.agc
055321,000003: # Purpose: A section of Luminary 1C, revision 131.
055322,000004: # It is part of the source code for the Lunar Module's (LM)
055323,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14.
055324,000006: # This file is intended to be a faithful transcription, except
055325,000007: # that the code format has been changed to conform to the
055326,000008: # requirements of the yaYUL assembler rather than the
055327,000009: # original YUL assembler.
055328,000010: # Reference: pp. 1335-1337 of 1729.pdf.
055329,000011: # Contact: Ron Burkey <info@sandroid.org>.
055330,000012: # Website: www.ibiblio.org/apollo/index.html
055331,000013: # Mod history: 06/06/03 RSB. Began transcribing.
055332,000014: # 05/14/05 RSB Corrected website reference above.
055333,000015:
055334,000016: # Page 1335
055335,000017: 14,3775 BANK 14
055336,000018: 04,2000 SETLOC KEYRUPT
055337,000019: 04,2000 BANK
055338,000020: 04,3253 COUNT* $$/KEYUP
055339,000021:
055340,000022: 04,3253 54016 KEYRUPT1 TS BANKRUPT
055341,000023: 04,3254 56002 XCH Q
055342,000024: 04,3255 54012 TS QRUPT
055343,000025: 04,3256 04400 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
055344,000026: 04,3257 34346 CAF LOW5
055345,000027: 04,3260 00006 EXTEND
055346,000028: 04,3261 02015 RAND MNKEYIN # CHECK IF KEYS 5M-1M ON
055347,000029: 04,3262 54073 KEYCOM TS RUPTREG4
055348,000030: 04,3263 40101 CS FLAGWRD5
055349,000031: 04,3264 74735 MASK DSKYFBIT
055350,000032: 04,3265 26101 ADS FLAGWRD5
055351,000033:
055352,000034: 04,3266 34355 ACCEPTUP CAF CHRPRIO # (NOTE: RUPTREG4 = KEYTEMP1)
055353,000035: 04,3267 05072 TC NOVAC
055354,000036: 04,3270 0776 EBANK= DSPCOUNT
055355,000037: 04,3270 02077 60101 2CADR CHARIN
055356,000038:
055357,000039: 04,3272 30073 CA RUPTREG4
055358,000040: 04,3273 50064 INDEX LOCCTR
055359,000041: 04,3274 54154 TS MPAC # LEAVE 5 BIT KEY CODE IN MPAC FOR CHARIN
055360,000042: 04,3275 05270 TC RESUME
055361,000043:
055362,000044: # Page 1336
055363,000045: # UPRUPT PROGRAM
055364,000046:
055365,000047: 04,3276 54016 UPRUPT TS BANKRUPT
055366,000048: 04,3277 56002 XCH Q
055367,000049: 04,3300 54012 TS QRUPT
055368,000050: 04,3301 04400 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
055369,000051: 04,3302 34755 CAF ZERO
055370,000052: 04,3303 56045 XCH INLINK
055371,000053: 04,3304 54073 TS KEYTEMP1
055372,000054: 04,3305 34751 CAF BIT3 # TURN ON UPACT LIGHT
055373,000055: 04,3306 00006 EXTEND # (BIT 3 OF CHANNEL 11)
055374,000056: 04,3307 05011 WOR DSALMOUT
055375,000057: 04,3310 34346 UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
055376,000058: 04,3311 70073 MASK KEYTEMP1 # LOW5 OF WORD
055377,000059: 04,3312 56073 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
055378,000060: 04,3313 00006 EXTEND
055379,000061: 04,3314 74742 MP BIT10 # SHIFT RIGHT 5
055380,000062: 04,3315 54332 TS KEYTEMP2
055381,000063: 04,3316 74346 MASK LOW5 # MID 5
055382,000064: 04,3317 63353 AD HI10
055383,000065: 04,3320 03350 TC UPTEST
055384,000066: 04,3321 34742 CAF BIT10
055385,000067: 04,3322 00006 EXTEND
055386,000068: 04,3323 70332 MP KEYTEMP2 # SHIFT RIGHT 5
055387,000069: 04,3324 74346 MASK LOW5 # HIGH 5
055388,000070: 04,3325 40000 COM
055389,000071: 04,3326 03350 TC UPTEST
055390,000072:
055391,000073: 04,3327 43356 UPCK CS ELRCODE # CODE IS GOOD. IF CODE = `ERROR RESET',
055392,000074: 04,3330 60073 AD KEYTEMP1 # CLEAR UPLOCKFL (SET BIT4 OF FLAGWRD7 = 0)
055393,000075: 04,3331 00006 EXTEND # IF CODE DOES NOT = `ERROR RESET', ACCEPT
055394,000076: 04,3332 13340 BZF CLUPLOCK # CODE ONLY IF UPLOCKFL IS CLEAR (=0).
055395,000077:
055396,000078: 04,3333 34750 CAF UPLOCBIT # TEST UPLOCKFL FOR 0 OR 1
055397,000079: 04,3334 70103 MASK FLAGWRD7
055398,000080: 04,3335 10000 CCS A
055399,000081: 04,3336 05270 TC RESUME # UPLOCKFL = 1
055400,000082: 04,3337 03266 TC ACCEPTUP # UPLOCKFL = 0
055401,000083:
055402,000084: 04,3340 44750 CLUPLOCK CS UPLOCBIT # CLEAR UPLOCKFL (I.E., SET BIT 4 OF
055403,000085: 04,3341 70103 MASK FLAGWRD7 # FLAGWRD7 = 0)
055404,000086: 04,3342 54103 TS FLAGWRD7
055405,000087: 04,3343 03266 TC ACCEPTUP
055406,000088:
055407,000089: # CODE IS BAD
055408,000090: 04,3344 40103 TMFAIL2 CS FLAGWRD7 # LOCK OUT FURTHER UPLINK ACTIVITY
055409,000091: 04,3345 74750 MASK UPLOCBIT # (BY SETTING UPLOCKFL = 1) UNTIL
055410,000092: 04,3346 26103 ADS FLAGWRD7 # `ERROR RESET' IS SENT VIA UPLINK.
055411,000093: 04,3347 05270 TC RESUME
055412,000094: 04,3350 60073 UPTEST AD KEYTEMP1
055413,000095: # Page 1337
055414,000096: 04,3351 10000 CCS A
055415,000097: 04,3352 03344 TC TMFAIL2
055416,000098: 04,3353 77740 HI10 OCT 77740
055417,000099: 04,3354 03344 TC TMFAIL2
055418,000100: 04,3355 00002 TC Q
055419,000101:
055420,000102: 04,3356 00022 ELRCODE OCT 22
055421,000103:
055422,000104: # `UPLINK ACTIVITY LIGHT' IS TURNED OFF BY .....
055423,000105: # 1. VBRELDSP
055424,000106: # 2. ERROR RESET
055425,000107: # 3. UPDATE PROGRAM (P27) ENTERED BY V70,V71,V72, AND V73.
055426,000108:
055427,000109: # THE RECEPTION OF A BAD CODE (I.E., CCC FAILURE) LOCKS OUT FURTHER UPLINK ACTIVITY BY SETTING BIT4 OF FLAGWRD7 = 1.
055428,000110: # THIS INDICATION WILL BE TRANSFERRED TO THE GROUND BY THE DOWNLINK WHICH DOWNLINKS ALL FLAGWORDS.
055429,000111: # WHEN UPLINK ACTIVITY IS LOCKED OUT, IT CAN BE ALLOWED WHEN THE GROUND UPLINS AND `ERROR RESET' CODE.
055430,000112: # (IT IS RECOMMENDED THAT THE `ERROR LIGHT RESET' CODE IS PRECEEDED BY 16 BITS THE FIRST OF WHICH IS 1 FOLLOWED
055431,000113: # BY 15 ZEROS. THIS WILL ELIMINATE EXTRANEOUS BITS FROM INLINK WHICH MAY HAVE BEEN LEFT OVER FROM THE ORIGINAL
055432,000114: # FAILURE).
055433,000115:
055434,000116: # UPLINK ACTIVITY IS ALSO ALLOWED (UNLOCKED) DURING FRECH START WHEN FRESH START SETS BIT4 OF FLAGWRD7 = 0.
End of include-file KEYRUPT_UPRUPT.agc. Parent file is MAIN.agc