Source Code

063098,000001: # Copyright: Public domain. 063099,000002: # Filename: ALARM_AND_ABORT.agc 063100,000003: # Purpose: Part of the source code for Colossus, build 249. 063101,000004: # It is part of the source code for the Command Module's (CM) 063102,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 063103,000006: # Assembler: yaYUL 063104,000007: # Reference: Starts on p. 1483 of 1701.pdf. 063105,000008: # Contact: Ron Burkey <info@sandroid.org>. 063106,000009: # Website: www.ibiblio.org/apollo. 063107,000010: # Mod history: 08/30/04 RSB Adapted from corresponding Luminary131 file. 063108,000011: # 2010-10-24 JL Indentation fixes. 063109,000012: # 2011-05-07 JL Removed workarounds. 063110,000013: 063111,000014: # The contents of the "Colossus249" files, in general, are transcribed 063112,000015: # from a scanned document obtained from MIT's website, 063113,000016: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 063114,000017: # document read, in part: 063115,000018: 063116,000019: # Assemble revision 249 of AGC program Colossus by NASA 063117,000020: # 2021111-041. October 28, 1968. 063118,000021: 063119,000022: # This AGC program shall also be referred to as 063120,000023: # Colossus 1A 063121,000024: 063122,000025: # Prepared by 063123,000026: # Massachusetts Institute of Technology 063124,000027: # 75 Cambridge Parkway 063125,000028: # Cambridge, Massachusetts 063126,000029: # under NASA contract NAS 9-4065. 063127,000030: 063128,000031: # Refer directly to the online document mentioned above for further information. 063129,000032: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 063130,000033: 063131,000034: # In some cases, where the source code for Luminary 131 overlaps that of 063132,000035: # Colossus 249, this code is instead copied from the corresponding Luminary 131 063133,000036: # source file, and then is proofed to incorporate any changes. 063134,000037: 063135,000038: # Page 1483 063136,000039: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED 063137,000040: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL. 063138,000041: 063139,000042: # THE CALLING SEQUENCE IS AS FOLLOWS: 063140,000043: # TC ALARM 063141,000044: # OCT AAANN # ALARM NO. NN IN GENERAL AREA AAA. 063142,000045: # # (RETURNS HERE) 063143,000046: 063144,000047: 5537 BLOCK 02 063145,000048: 4000 SETLOC FFTAG7 063146,000049: 4000 BANK 063147,000050: 063148,000051: 5537 0375 EBANK= FAILREG 063149,000052: 063150,000053: 5537 COUNT 02/ALARM 063151,000054: 063152,000055: # ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY. 063153,000056: 063154,000057: 5537 00004 ALARM INHINT 063155,000058: 063156,000059: 5540 30002 CA Q 063157,000060: 5541 55363 ALARM2 TS ALMCADR 063158,000061: 5542 50002 INDEX Q 063159,000062: 5543 30000 CA 0 063160,000063: 5544 54001 BORTENT TS L 063161,000064: 063162,000065: 5545 30006 PRIOENT CA BBANK 063163,000066: 5546 00006 +1 EXTEND 063164,000067: 5547 04007 ROR SUPERBNK # ADD SUPER BITS. 063165,000068: 5550 55364 TS ALMCADR +1 063166,000069: 063167,000070: 5551 30002 LARMENT CA Q # STORE RETURN FOR ALARM 063168,000071: 5552 54061 TS ITEMP1 063169,000072: 063170,000073: 5553 10375 CHKFAIL1 CCS FAILREG # IS ANYTHING IN FAILREG 063171,000074: 5554 15557 TCF CHKFAIL2 # YES TRY NEXT REG 063172,000075: 5555 22375 LXCH FAILREG 063173,000076: 5556 15571 TCF PROGLARM # TURN ALARM LIGHT ON FOR FIRST ALARM 063174,000077: 063175,000078: 5557 10376 CHKFAIL2 CCS FAILREG +1 063176,000079: 5560 15563 TCF FAIL3 063177,000080: 5561 22376 LXCH FAILREG +1 063178,000081: 5562 15574 TCF MULTEXIT 063179,000082: 063180,000083: 5563 30377 FAIL3 CA FAILREG +2 063181,000084: 5564 74672 MASK POSMAX 063182,000085: 5565 10000 CCS A 063183,000086: 5566 15600 TCF MULTFAIL 063184,000087: 5567 22377 LXCH FAILREG +2 063185,000088: # Page 1484 063186,000089: 5570 15574 TCF MULTEXIT 063187,000090: 063188,000091: 5571 41036 PROGLARM CS DSPTAB +11D # TURN ON PROGRAM ALARM IF OFF 063189,000092: 5572 75612 MASK OCT40400 063190,000093: 5573 27036 ADS DSPTAB +11D 063191,000094: 063192,000095: 5574 56061 MULTEXIT XCH ITEMP1 # OBTAIN RETURN ADDRESS IN A 063193,000096: 5575 00003 RELINT 063194,000097: 5576 50000 INDEX A 063195,000098: 5577 00001 TC 1 063196,000099: 063197,000100: 5600 30001 MULTFAIL CA L 063198,000101: 5601 64674 AD BIT15 063199,000102: 5602 54377 TS FAILREG +2 063200,000103: 063201,000104: 5603 15574 TCF MULTEXIT 063202,000105: 063203,000106: # PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND 063204,000107: # AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS, 063205,000108: # CAF OCTXX # ALARM CODE 063206,000109: # TC BANKCALL 063207,000110: # CADR PRIOLARM 063208,000111: # ... ... 063209,000112: # ... ... 063210,000113: # ... ... # ASTRONAUT RETURN 063211,000114: # TC PHASCHNG # IMMEDIATE RETURN TO USER. RESTART 063212,000115: # OCT X.1 # PHASE CHANGE FOR PRIO DISPLAY 063213,000116: 063214,000117: 10,3671 BANK 10 063215,000118: 10,2000 SETLOC DISPLAYS 063216,000119: 10,2000 BANK 063217,000120: 063218,000121: 10,3671 COUNT 10/DSPLA 063219,000122: 10,3671 00004 PRIOLARM INHINT # * * * KEEP IN DISPLAY ROUTINE'S BANK 063220,000123: 10,3672 54001 TS L # SAVE ALARM CODE 063221,000124: 063222,000125: 10,3673 30133 CA BUF2 # 2 CADR OF PRIOLARM USER 063223,000126: 10,3674 55363 TS ALMCADR 063224,000127: 10,3675 30134 CA BUF2 +1 063225,000128: 10,3676 05546 TC PRIOENT +1 # * LEAVE L ALONE 063226,000129: 10,3677 77467 -2SEC DEC -200 B-14 # *** DON'T MOVE 063227,000130: 10,3700 34743 CAF V05N09 063228,000131: 10,3701 12632 TCF PRIODSPR 063229,000132: 063230,000133: 5604 BLOCK 02 063231,000134: 4000 SETLOC FFTAG7 063232,000135: 4000 BANK 063233,000136: 063234,000137: # Page 1485 063235,000138: 5604 COUNT 02/ALARM 063236,000139: 063237,000140: 5604 00004 BAILOUT INHINT 063238,000141: 5605 30002 CA Q 063239,000142: 5606 55363 TS ALMCADR 063240,000143: 063241,000144: 5607 50002 INDEX Q 063242,000145: 5610 30000 CAF 0 063243,000146: 5611 05544 TC BORTENT 063244,000147: 5612 40400 OCT40400 OCT 40400 063245,000148: 063246,000149: 5613 00004 INHINT 063247,000150: 5614 34711 WHIMPER CA TWO 063248,000151: 5615 60005 AD Z 063249,000152: 5616 54017 TS BRUPT 063250,000153: 5617 50017 RESUME 063251,000154: 5620 04574 TC POSTJUMP # RESUME SENDS CONTROL HERE 063252,000155: 5621 12641 CADR ENEMA 063253,000156: 5622 00004 P00DOO INHINT 063254,000157: 5623 30002 CA Q 063255,000158: 5624 55363 ABORT2 TS ALMCADR 063256,000159: 5625 50002 INDEX Q 063257,000160: 5626 30000 CAF 0 063258,000161: 5627 05544 TC BORTENT 063259,000162: 5630 77770 OCT77770 OCT 77770 # DON'T MOVE 063260,000163: 5631 34705 CA V37FLBIT # IS AVERAGE G ON 063261,000164: 5632 70103 MASK FLAGWRD7 063262,000165: 5633 10000 CCS A 063263,000166: 5634 05613 TC WHIMPER -1 # YES. DON'T DO P00DOO. DO BAILOUT. 063264,000167: 063265,000168: 5635 04555 TC BANKCALL 063266,000169: 5636 12474 CADR MR.KLEAN 063267,000170: 5637 05614 TC WHIMPER 063268,000171: 063269,000172: 5640 00004 CCSHOLE INHINT 063270,000173: 5641 30002 CA Q 063271,000174: 5642 05624 TC ABORT2 063272,000175: 5643 01103 OCT1103 OCT 1103 063273,000176: 5644 00004 CURTAINS INHINT 063274,000177: 5645 30002 CA Q 063275,000178: 5646 05541 TC ALARM2 063276,000179: 5647 00217 OCT217 OCT 00217 063277,000180: 5650 01363 TC ALMCADR # RETURN TO USER 063278,000181: 063279,000182: 5651 5112 DOALARM EQUALS ENDOFJOB 063280,000183: 063281,000184: # CALLING SEQUENCE FOR VARALARM 063282,000185: # CAF (ALARM) 063283,000186: # TC VARALARM 063284,000187: # Page 1486 063285,000188: 063286,000189: # VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY 063287,000190: 063288,000191: 5651 00004 VARALARM INHINT 063289,000192: 063290,000193: 5652 54001 TS L # SAVE USER'S ALARM CODE 063291,000194: 063292,000195: 5653 30002 CA Q # SAVE USER'S Q 063293,000196: 5654 55363 TS ALMCADR 063294,000197: 063295,000198: 5655 05545 TC PRIOENT 063296,000199: 5656 00014 OCT14 OCT 14 # DON'T MOVE 063297,000200: 063298,000201: 5657 01363 TC ALMCADR # RETURN TO USER 063299,000202: 063300,000203: 5660 5604 ABORT EQUALS BAILOUT # *** TEMPORARY UNTIL ABORT CALLS OUT End of include-file ALARM_AND_ABORT.agc. Parent file is MAIN.agc