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