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