Source Code

058728,000001: # Copyright: Public domain. 058729,000002: # Filename: ALARM_AND_ABORT.agc 058730,000003: # Purpose: Part of the source code for Luminary 1A build 099. 058731,000004: # It is part of the source code for the Lunar Module's (LM) 058732,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 058733,000006: # Assembler: yaYUL 058734,000007: # Contact: Ron Burkey <info@sandroid.org>. 058735,000008: # Website: www.ibiblio.org/apollo. 058736,000009: # Pages: 1381-1385 058737,000010: # Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting 058738,000011: # from the Luminary131/ file of the same 058739,000012: # name, using Luminary099 page images. 058740,000013: # 2009-06-05 RSB Fixed a type. 058741,000014: # 2011-01-06 JL Fixed pseudo-label indentation. 058742,000015: 058743,000016: # This source code has been transcribed or otherwise adapted from 058744,000017: # digitized images of a hardcopy from the MIT Museum. The digitization 058745,000018: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 058746,000019: # the Museum. Many thanks to both. The images (with suitable reduction 058747,000020: # in storage size and consequent reduction in image quality as well) are 058748,000021: # available online at www.ibiblio.org/apollo. If for some reason you 058749,000022: # find that the images are illegible, contact me at info@sandroid.org 058750,000023: # about getting access to the (much) higher-quality images which Paul 058751,000024: # actually created. 058752,000025: 058753,000026: # Notations on the hardcopy document read, in part: 058754,000027: 058755,000028: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 058756,000029: # 16:27 JULY 14, 1969 058757,000030: 058758,000031: # Page 1381 058759,000032: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED 058760,000033: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL. 058761,000034: 058762,000035: # CALLING SEQUENCE IS AS FOLLOWS: 058763,000036: # TC ALARM 058764,000037: # OCT AAANN # ALARM NO. NN IN GENERAL AREA AAA. 058765,000038: # # (RETURNS HERE) 058766,000039: 058767,000040: 5567 BLOCK 02 058768,000041: 4000 SETLOC FFTAG7 058769,000042: 4000 BANK 058770,000043: 058771,000044: 5567 0375 EBANK= FAILREG 058772,000045: 058773,000046: 5567 COUNT* $$/ALARM 058774,000047: 058775,000048: # ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY. 058776,000049: 058777,000050: 5567 00004 ALARM INHINT 058778,000051: 058779,000052: 5570 30002 CA Q 058780,000053: 5571 55363 ALARM2 TS ALMCADR 058781,000054: 5572 50002 INDEX Q 058782,000055: 5573 30000 CA 0 058783,000056: 5574 54001 BORTENT TS L 058784,000057: 058785,000058: 5575 30006 PRIOENT CA BBANK 058786,000059: 5576 00006 +1 EXTEND 058787,000060: 5577 04007 ROR SUPERBNK # ADD SUPER BITS. 058788,000061: 5600 55364 TS ALMCADR +1 058789,000062: 058790,000063: 5601 30002 LARMENT CA Q # STORE RETURN FOR ALARM 058791,000064: 5602 54061 TS ITEMP1 058792,000065: 058793,000066: 5603 10375 CHKFAIL1 CCS FAILREG # IS ANYTHING IN FAILREG 058794,000067: 5604 15607 TCF CHKFAIL2 # YES TRY NEXT REG 058795,000068: 5605 22375 LXCH FAILREG 058796,000069: 5606 15621 TCF PROGLARM # TURN ALARM LIGHT ON FOR FIRST ALARM 058797,000070: 058798,000071: 5607 10376 CHKFAIL2 CCS FAILREG +1 058799,000072: 5610 15613 TCF FAIL3 058800,000073: 5611 22376 LXCH FAILREG +1 058801,000074: 5612 15624 TCF MULTEXIT 058802,000075: 058803,000076: 5613 30377 FAIL3 CA FAILREG +2 058804,000077: 5614 74733 MASK POSMAX 058805,000078: 5615 10000 CCS A 058806,000079: 5616 15630 TCF MULTFAIL 058807,000080: 5617 22377 LXCH FAILREG +2 058808,000081: 5620 15624 TCF MULTEXIT 058809,000082: 058810,000083: # Page 1382 058811,000084: 058812,000085: 5621 41036 PROGLARM CS DSPTAB +11D 058813,000086: 5622 75642 MASK OCT40400 058814,000087: 5623 27036 ADS DSPTAB +11D 058815,000088: 058816,000089: 058817,000090: 5624 56061 MULTEXIT XCH ITEMP1 # OBTAIN RETURN ADDRESS IN A 058818,000091: 5625 00003 RELINT 058819,000092: 5626 50000 INDEX A 058820,000093: 5627 00001 TC 1 058821,000094: 058822,000095: 5630 30001 MULTFAIL CA L 058823,000096: 5631 64735 AD BIT15 058824,000097: 5632 54377 TS FAILREG +2 058825,000098: 058826,000099: 5633 15624 TCF MULTEXIT 058827,000100: 058828,000101: # PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND 058829,000102: # AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS, 058830,000103: # CAF OCTXX # ALARM CODE 058831,000104: # TC BANKCALL 058832,000105: # CADR PRIOLARM 058833,000106: # ... ... 058834,000107: # ... ... 058835,000108: # ... ... # ASTRONAUT RETURN 058836,000109: # TC PHASCHNG # IMMEDIATE RETURN TO USER. RESTART 058837,000110: # OCT X.1 # PHASE CHANGE FOR PRIO DISPLAY 058838,000111: 058839,000112: 10,3562 BANK 10 058840,000113: 10,2000 SETLOC DISPLAYS 058841,000114: 10,2000 BANK 058842,000115: 058843,000116: 10,3562 COUNT* $$/DSPLA 058844,000117: 10,3562 00004 PRIOLARM INHINT # * * * KEEP IN DISPLAY ROUTINES BANK 058845,000118: 10,3563 54001 TS L # SAVE ALARM CODE 058846,000119: 058847,000120: 10,3564 30133 CA BUF2 # 2 CADR OF PRIOLARM USER 058848,000121: 10,3565 55363 TS ALMCADR 058849,000122: 10,3566 30134 CA BUF2 +1 058850,000123: 10,3567 05576 TC PRIOENT +1 # * LEAVE L ALONE 058851,000124: 10,3570 77467 -2SEC DEC -200 B-14 # *** DONT MOVE 058852,000125: 10,3571 35006 CAF V05N09 058853,000126: 10,3572 12504 TCF PRIODSPR 058854,000127: 058855,000128: 5634 BLOCK 02 058856,000129: 4000 SETLOC FFTAG7 058857,000130: 4000 BANK 058858,000131: 058859,000132: 5634 COUNT* $$/ALARM 058860,000133: 5634 00004 BAILOUT INHINT 058861,000134: 5635 30002 CA Q 058862,000135: # Page 1383 058863,000136: 5636 55363 TS ALMCADR 058864,000137: 058865,000138: 5637 50002 INDEX Q 058866,000139: 5640 30000 CAF 0 058867,000140: 5641 05574 TC BORTENT 058868,000141: 5642 40400 OCT40400 OCT 40400 058869,000142: 058870,000143: 5643 00004 INHINT 058871,000144: 5644 34752 WHIMPER CA TWO 058872,000145: 5645 60005 AD Z 058873,000146: 5646 54017 TS BRUPT 058874,000147: 5647 50017 RESUME 058875,000148: 5650 04635 TC POSTJUMP # RESUME SENDS CONTROL HERE 058876,000149: 5651 12765 CADR ENEMA 058877,000150: 5652 00004 P00DOO INHINT 058878,000151: 5653 30002 CA Q 058879,000152: 5654 55363 ABORT2 TS ALMCADR 058880,000153: 5655 50002 INDEX Q 058881,000154: 5656 30000 CAF 0 058882,000155: 5657 05574 TC BORTENT 058883,000156: 5660 77770 OCT77770 OCT 77770 # DON'T MOVE 058884,000157: 058885,000158: 5661 34765 CAF OCT35 # 4.35SPOT FOR GOP00DOO 058886,000159: 5662 54001 TS L 058887,000160: 5663 40000 COM 058888,000161: 5664 52761 DXCH -PHASE4 058889,000162: 5665 00004 GOP00DOO INHINT 058890,000163: 5666 04616 TC BANKCALL # RESET STATEFLG, REINTFLG, AND NODOFLAG. 058891,000164: 5667 27755 CADR FLAGS 058892,000165: 5670 30103 CA FLAGWRD7 # IS SERVICER CURRENTLY IN OPERATION? 058893,000166: 5671 74746 MASK V37FLBIT 058894,000167: 5672 10000 CCS A 058895,000168: 5673 15701 TCF STRTIDLE 058896,000169: 5674 04616 TC BANKCALL # TERMINATE GRPS 1, 3, 5, AND 6 058897,000170: 5675 12652 CADR V37KLEAN 058898,000171: 5676 04616 TC BANKCALL # TERMINATE GRPS 2, 4, 1, 3, 5, AND 6 058899,000172: 5677 12643 CADR MR.KLEAN # (I.E., GRP 4 LAST) 058900,000173: 5700 15644 TCF WHIMPER 058901,000174: 5701 35743 STRTIDLE CAF BBSERVDL 058902,000175: 5702 04727 TC SUPERSW 058903,000176: 5703 04616 TC BANKCALL # PUT SERVICER INTO ITS "GROUND" STATE 058904,000177: 5704 57321 CADR SERVIDLE # AND PROCED TO GOTOP00H. 058905,000178: 5705 00004 CCSHOLE INHINT 058906,000179: 5706 30002 CA Q 058907,000180: 5707 05654 TC ABORT2 058908,000181: 5710 01103 OCT21103 OCT 1103 058909,000182: 5711 00004 CURTAINS INHINT 058910,000183: 5712 30002 CA Q 058911,000184: 5713 05571 TC ALARM2 058912,000185: 5714 00217 OCT217 OCT 00217 058913,000186: # Page 1384 058914,000187: 5715 01363 TC ALMCADR # RETURN TO USER 058915,000188: 058916,000189: 5716 00004 BAILOUT1 INHINT 058917,000190: 5717 53364 DXCH ALMCADR 058918,000191: 5720 35742 CAF ADR40400 058919,000192: 5721 54061 BOTHABRT TS ITEMP1 058920,000193: 5722 50002 INDEX Q 058921,000194: 5723 30000 CAF 0 058922,000195: 5724 54001 TS L 058923,000196: 5725 15603 TCF CHKFAIL1 058924,000197: 5726 00004 P00DOO1 INHINT 058925,000198: 5727 53364 DXCH ALMCADR 058926,000199: 5730 35741 CAF ADR77770 058927,000200: 5731 15721 TCF BOTHABRT 058928,000201: 058929,000202: 5732 00004 ALARM1 INHINT 058930,000203: 5733 53364 DXCH ALMCADR 058931,000204: 5734 00004 ALMNCADR INHINT 058932,000205: 5735 50002 INDEX Q 058933,000206: 5736 30000 CA 0 058934,000207: 5737 54001 TS L 058935,000208: 5740 15601 TCF LARMENT 058936,000209: 058937,000210: 5741 15660 ADR77770 TCF OCT77770 058938,000211: 5742 15642 ADR40400 TCF OCT40400 058939,000212: 5743 5155 DOALARM EQUALS ENDOFJOB 058940,000213: 5743 E7,1515 EBANK= DVCNTR 058941,000214: 5743 56067 BBSERVDL BBCON SERVIDLE 058942,000215: 058943,000216: # CALLING SEQUENCE FOR VARALARM 058944,000217: # CAF (ALARM) 058945,000218: # TC VARALARM 058946,000219: 058947,000220: # VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY 058948,000221: 058949,000222: 5744 00004 VARALARM INHINT 058950,000223: 058951,000224: 5745 54001 TS L # SAVE USER'S ALARM CODE 058952,000225: 058953,000226: 5746 30002 CA Q # SAVE USERS Q 058954,000227: 5747 55363 TS ALMCADR 058955,000228: 058956,000229: 5750 05575 TC PRIOENT 058957,000230: 5751 00014 OCT14 OCT 14 # DONT MOVE 058958,000231: 058959,000232: 5752 01363 TC ALMCADR # RETURN TO USER 058960,000233: 058961,000234: 5753 5644 ABORT EQUALS WHIMPER 058962,000235: 13,3755 BANK 13 058963,000236: 13,2000 SETLOC ABTFLGS 058964,000237: 13,2000 BANK 058965,000238: # Page 1385 058966,000239: 13,3755 COUNT* $$/ALARM 058967,000240: 058968,000241: 13,3755 44747 FLAGS CS STATEBIT 058969,000242: 13,3756 70077 MASK FLAGWRD3 058970,000243: 13,3757 54077 TS FLAGWRD3 058971,000244: 13,3760 44745 CS REINTBIT 058972,000245: 13,3761 70106 MASK FLGWRD10 058973,000246: 13,3762 54106 TS FLGWRD10 058974,000247: 13,3763 44753 CS NODOBIT 058975,000248: 13,3764 70076 MASK FLAGWRD2 058976,000249: 13,3765 54076 TS FLAGWRD2 058977,000250: 13,3766 00002 TC Q 058978,000251: End of include-file ALARM_AND_ABORT.agc. Parent file is MAIN.agc