Source Code

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