Source Code

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