Source Code
057090,000001: # Copyright: Public domain.
057091,000002: # Filename: ALARM_AND_ABORT.agc
057092,000003: # Purpose: A section of Luminary 1C, revision 131.
057093,000004: # It is part of the source code for the Lunar Module's (LM)
057094,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14.
057095,000006: # This file is intended to be a faithful transcription, except
057096,000007: # that the code format has been changed to conform to the
057097,000008: # requirements of the yaYUL assembler rather than the
057098,000009: # original YUL assembler.
057099,000010: # Reference: pp. 1378-1382 of 1729.pdf.
057100,000011: # Contact: Ron Burkey <info@sandroid.org>.
057101,000012: # Website: www.ibiblio.org/apollo/index.html
057102,000013: # Mod history: 06/07/03 RSB. Began transcribing.
057103,000014: # 05/14/05 RSB Corrected website reference above.
057104,000015: # 2010-10-25 JL Indentation fixes.
057105,000016: # 2011-06-07 JL Removed workarounds.
057106,000017:
057107,000018: # Page 1378
057108,000019: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
057109,000020: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
057110,000021:
057111,000022: # THE CALLING SEQUENCE IS AS FOLLOWS:
057112,000023: # TC ALARM
057113,000024: # OCT AAANN # ALARM NO. NN IN GENERAL AREA AAA.
057114,000025: # # (RETURNS HERE)
057115,000026:
057116,000027: 5567 BLOCK 02
057117,000028: 4000 SETLOC FFTAG7
057118,000029: 4000 BANK
057119,000030:
057120,000031: 5567 0375 EBANK= FAILREG
057121,000032:
057122,000033: 5567 COUNT* $$/ALARM
057123,000034:
057124,000035: # ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
057125,000036:
057126,000037: 5567 00004 ALARM INHINT
057127,000038:
057128,000039: 5570 30002 CA Q
057129,000040: 5571 55363 ALARM2 TS ALMCADR
057130,000041: 5572 50002 INDEX Q
057131,000042: 5573 30000 CA 0
057132,000043: 5574 54001 BORTENT TS L
057133,000044:
057134,000045: 5575 30006 PRIOENT CA BBANK
057135,000046: 5576 00006 +1 EXTEND
057136,000047: 5577 04007 ROR SUPERBNK # ADD SUPER BITS.
057137,000048: 5600 55364 TS ALMCADR +1
057138,000049:
057139,000050: 5601 30002 LARMENT CA Q # STORE RETURN FOR ALARM
057140,000051: 5602 54061 TS ITEMP1
057141,000052:
057142,000053: 5603 10375 CHKFAIL1 CCS FAILREG # IS ANYTHING IN FAILREG
057143,000054: 5604 15610 TCF CHKFAIL2 # YES TRY NEXT REG
057144,000055: 5605 30001 CA L
057145,000056: 5606 54375 TS FAILREG
057146,000057: 5607 15614 TCF PROGLARM # TURN ALARM LIGHT ON FOR FIRST ALARM
057147,000058:
057148,000059: 5610 10376 CHKFAIL2 CCS FAILREG +1
057149,000060: 5611 15614 TCF PROGLARM
057150,000061: 5612 30001 CA L
057151,000062: 5613 54376 TS FAILREG +1
057152,000063:
057153,000064: 5614 22377 PROGLARM LXCH FAILREG +2 # STORE AS "MCST RECENT" ALARM CODE
057154,000065:
057155,000066: 5615 41035 CS DSPTAB +11D # TURN ON PROGRAM ALARM IF OFF
057156,000067: 5616 75632 MASK OCT40400
057157,000068: 5617 27035 ADS DSPTAB +11D
057158,000069:
057159,000070: # Page 1379
057160,000071: 5620 56061 MULTEXIT XCH ITEMP1 # OBTAIN RETURN ADDRESS IN A
057161,000072: 5621 00003 RELINT
057162,000073: 5622 50000 INDEX A
057163,000074: 5623 00001 TC 1
057164,000075:
057165,000076: # PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
057166,000077: # AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS,
057167,000078: # CAF OCTXX # ALARM CODE
057168,000079: # TC BANKCALL
057169,000080: # CADR PRIOLARM
057170,000081: # ... ...
057171,000082: # ... ...
057172,000083: # ... ... # ASTRONAUT RETURN
057173,000084: # TC PHASCHNG # IMMEDIATE RETURN TO USER. RESTART
057174,000085: # OCT X.1 # PHASE CHANGE FOR PRIO DISPLAY
057175,000086:
057176,000087: 10,3563 BANK 10
057177,000088: 10,2000 SETLOC DISPLAYS
057178,000089: 10,2000 BANK
057179,000090:
057180,000091: 10,3563 COUNT* $$/DSPLA
057181,000092: 10,3563 00004 PRIOLARM INHINT # * * * KEEP IN DISPLAY ROUTINE'S BANK
057182,000093: 10,3564 54001 TS L # SAVE ALARM CODE
057183,000094:
057184,000095: 10,3565 30133 CA BUF2 # 2 CADR OF PRIOLARM USER
057185,000096: 10,3566 55363 TS ALMCADR
057186,000097: 10,3567 30134 CA BUF2 +1
057187,000098: 10,3570 05576 TC PRIOENT +1 # * LEAVE L ALONE
057188,000099: 10,3571 77467 -2SEC DEC -200 B-14 # *** DON'T MOVE
057189,000100: 10,3572 35006 CAF V05N09
057190,000101: 10,3573 12505 TCF PRIODSPR
057191,000102:
057192,000103: 5624 BLOCK 02
057193,000104: 4000 SETLOC FFTAG7
057194,000105: 4000 BANK
057195,000106:
057196,000107: 5624 COUNT* $$/ALARM
057197,000108: 5624 00004 BAILOUT INHINT
057198,000109: 5625 30002 CA Q
057199,000110: 5626 55363 TS ALMCADR
057200,000111:
057201,000112: 5627 50002 INDEX Q
057202,000113: 5630 30000 CAF 0
057203,000114: 5631 05574 TC BORTENT
057204,000115: 5632 40400 OCT40400 OCT 40400
057205,000116:
057206,000117: 5633 00004 INHINT
057207,000118: 5634 34752 WHIMPER CA TWO
057208,000119: 5635 60005 AD Z
057209,000120: # Page 1380
057210,000121: 5636 54017 TS BRUPT
057211,000122: 5637 50017 RESUME
057212,000123: 5640 04635 TC POSTJUMP # RESUME SENDS CONTROL HERE
057213,000124: 5641 12763 CADR ENEMA
057214,000125: 5642 00004 P00DOO INHINT
057215,000126: 5643 30002 CA Q
057216,000127: 5644 55363 ABORT2 TS ALMCADR
057217,000128: 5645 50002 INDEX Q
057218,000129: 5646 30000 CAF 0
057219,000130: 5647 05574 TC BORTENT
057220,000131: 5650 77770 OCT77770 OCT 77770 # DON'T MOVE
057221,000132:
057222,000133: 5651 34765 CAF OCT35 # 4.35SPOT FOR GOP00DOO
057223,000134: 5652 54001 TS L
057224,000135: 5653 40000 COM
057225,000136: 5654 52760 DXCH -PHASE4
057226,000137: 5655 00004 GOP00DOO INHINT
057227,000138: 5656 04616 TC BANKCALL # RESET STATEFLG, REINTFLG, AND NODOFLAG.
057228,000139: 5657 27746 CADR FLAGS
057229,000140: 5660 30103 CA FLAGWRD7 # IS SERVICER CURRENTLY IN OPERATION?
057230,000141: 5661 74746 MASK V37FLBIT
057231,000142: 5662 10000 CCS A
057232,000143: 5663 15671 TCF STRTIDLE
057233,000144: 5664 04616 TC BANKCALL # TERMINATE GRPS 1, 3, 5, AND 6
057234,000145: 5665 12650 CADR V37KLEAN
057235,000146: 5666 04616 TC BANKCALL # TERMINATE GRPS 2, 4, 1, 3, 5, AND 6
057236,000147: 5667 12641 CADR MR.KLEAN # (I.E., GRP 4 LAST)
057237,000148: 5670 15634 TCF WHIMPER
057238,000149: 5671 35733 STRTIDLE CAF BBSERVDL
057239,000150: 5672 04727 TC SUPERSW
057240,000151: 5673 04616 TC BANKCALL # PUT SERVICER INTO ITS "GROUND" STATE
057241,000152: 5674 57322 CADR SERVIDLE # AND PROCED TO GOTOP00H.
057242,000153: 5675 00004 CCSHOLE INHINT
057243,000154: 5676 30002 CA Q
057244,000155: 5677 05644 TC ABORT2
057245,000156: 5700 21103 OCT21103 OCT 21103
057246,000157: 5701 00004 CURTAINS INHINT
057247,000158: 5702 30002 CA Q
057248,000159: 5703 05571 TC ALARM2
057249,000160: 5704 00217 OCT217 OCT 00217
057250,000161: 5705 01363 TC ALMCADR # RETURN TO USER
057251,000162:
057252,000163: 5706 00004 BAILOUT1 INHINT
057253,000164: 5707 53364 DXCH ALMCADR
057254,000165: 5710 35732 CAF ADR40400
057255,000166: 5711 54061 BOTHABRT TS ITEMP1
057256,000167: 5712 50002 INDEX Q
057257,000168: 5713 30000 CAF 0
057258,000169: 5714 54001 TS L
057259,000170: 5715 15603 TCF CHKFAIL1
057260,000171:
057261,000172: # Page 1381
057262,000173: 5716 00004 P00DOO1 INHINT
057263,000174: 5717 53364 DXCH ALMCADR
057264,000175: 5720 35731 CAF ADR77770
057265,000176: 5721 15711 TCF BOTHABRT
057266,000177:
057267,000178: 5722 00004 ALARM1 INHINT
057268,000179: 5723 53364 DXCH ALMCADR
057269,000180: 5724 00004 ALMNCADR INHINT
057270,000181: 5725 50002 INDEX Q
057271,000182: 5726 30000 CA 0
057272,000183: 5727 54001 TS L
057273,000184: 5730 15601 TCF LARMENT
057274,000185:
057275,000186: 5731 15650 ADR77770 TCF OCT77770
057276,000187: 5732 15632 ADR40400 TCF OCT40400
057277,000188: 5733 5155 DOALARM EQUALS ENDOFJOB
057278,000189: 5733 E7,1515 EBANK= DVCNTR
057279,000190: 5733 56067 BBSERVDL BBCON SERVIDLE
057280,000191:
057281,000192: # CALLING SEQUENCE FOR VARALARM
057282,000193: # CAF (ALARM)
057283,000194: # TC VARALARM
057284,000195:
057285,000196: # VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
057286,000197:
057287,000198: 5734 00004 VARALARM INHINT
057288,000199:
057289,000200: 5735 54001 TS L # SAVE USER'S ALARM CODE
057290,000201:
057291,000202: 5736 30002 CA Q # SAVE USER'S Q
057292,000203: 5737 55363 TS ALMCADR
057293,000204:
057294,000205: 5740 05575 TC PRIOENT
057295,000206: 5741 00014 OCT14 OCT 14 # DON'T MOVE
057296,000207:
057297,000208: 5742 01363 TC ALMCADR # RETURN TO USER
057298,000209:
057299,000210: 5743 5634 ABORT EQUALS WHIMPER
057300,000211: 13,3746 BANK 13
057301,000212: 13,2000 SETLOC ABTFLGS
057302,000213: 13,2000 BANK
057303,000214: 13,3746 COUNT* $$/ALARM
057304,000215:
057305,000216: 13,3746 44747 FLAGS CS STATEBIT
057306,000217: 13,3747 70077 MASK FLAGWRD3
057307,000218: 13,3750 54077 TS FLAGWRD3
057308,000219: 13,3751 44745 CS REINTBIT
057309,000220: 13,3752 70106 MASK FLGWRD10
057310,000221: 13,3753 54106 TS FLGWRD10
057311,000222: 13,3754 44753 CS NODOBIT
057312,000223: 13,3755 70076 MASK FLAGWRD2
057313,000224:
057314,000225: # Page 1382
057315,000226: 13,3756 54076 TS FLAGWRD2
057316,000227: 13,3757 00002 TC Q
057317,000228:
057318,000229:
End of include-file ALARM_AND_ABORT.agc. Parent file is MAIN.agc