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