Source Code
|
This is a reconstructed version of Luminary 130, the initial AGC program released
in November 1969 for the Apollo 13 LM. Three more releases
followed before the flown revision was finally manufactured in February 1970.
This reconstruction was created from a previous transcription of the original listing of Luminary 131, combined with Luminary memo #129 which describes the small difference between the Luminary 130 and 131. The reconstructed source code was verified by matching memory-bank checksums to those listed for Luminary 130 in drawing 2021152G. In this source code, program comments from the original (Luminary 131) code are prefixed with '#', while those added later by the Virtual AGC project are prefixed with '##'. |
058157,000002: ## Copyright: Public domain.
058158,000003: ## Filename: ALARM_AND_ABORT.agc
058159,000004: ## Purpose: A section of the reconstructed source code for Luminary 130.
058160,000005: ## This was the original program released for the Apollo 13 LM,
058161,000006: ## although several more revisions would follow. It has been
058162,000007: ## reconstructed from a listing of Luminary 131, from which it
058163,000008: ## differs on only two lines in P70-P71. The difference is
058164,000009: ## described in detail in Luminary memo #129, which was used
058165,000010: ## to perform the reconstruction. This file is intended to be a
058166,000011: ## faithful reconstruction, except that the code format has been
058167,000012: ## changed to conform to the requirements of the yaYUL assembler
058168,000013: ## rather than the original YUL assembler.
058169,000014: ## Reference: pp. 1373-1377
058170,000015: ## Contact: Ron Burkey <info@sandroid.org>.
058171,000016: ## Website: www.ibiblio.org/apollo/index.html
058172,000017: ## Mod history: 06/07/03 RSB. Began transcribing.
058173,000018: ## 05/14/05 RSB Corrected website reference above.
058174,000019: ## 2010-10-25 JL Indentation fixes.
058175,000020: ## 2011-06-07 JL Removed workarounds.
058176,000021: ## 2017-01-06 RSB Page numbers now agree with those on the
058177,000022: ## original hardcopy, as opposed to the PDF page
058178,000023: ## numbers in 1701.pdf.
058179,000024: ## 2017-02-28 RSB Proofed comment text using octopus/ProoferComments.
058180,000025: ## 2017-03-10 RSB Comment-text fixes noted in proofing Luminary 116.
058181,000026: ## 2018-09-04 MAS Copied from Luminary 131 for Luminary 130.
058182,000027:
|
Page 1373 |
058184,000029: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
058185,000030: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
058186,000031:
058187,000032: # CALLING SEQUENCE IS AS FOLLOWS:
058188,000033: # TC ALARM
058189,000034: # OCT AAANN ALARM NO. NN IN GENERAL AREA AAA.
058190,000035: # (RETURNS HERE)
058191,000036:
058192,000037: 5567 BLOCK 02
058193,000038: 4000 SETLOC FFTAG7
058194,000039: 4000 BANK
058195,000040:
058196,000041: 5567 0375 EBANK= FAILREG
058197,000042:
058198,000043: 5567 COUNT* $$/ALARM
058199,000044:
058200,000045: # ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
058201,000046:
058202,000047: 5567 00004 ALARM INHINT
058203,000048:
058204,000049: 5570 30002 CA Q
058205,000050: 5571 55363 ALARM2 TS ALMCADR
058206,000051: 5572 50002 INDEX Q
058207,000052: 5573 30000 CA 0
058208,000053: 5574 54001 BORTENT TS L
058209,000054:
058210,000055: 5575 30006 PRIOENT CA BBANK
058211,000056: 5576 00006 +1 EXTEND
058212,000057: 5577 04007 ROR SUPERBNK # ADD SUPER BITS.
058213,000058: 5600 55364 TS ALMCADR +1
058214,000059:
058215,000060: 5601 30002 LARMENT CA Q # STORE RETURN FOR ALARM
058216,000061: 5602 54061 TS ITEMP1
058217,000062:
058218,000063: 5603 10375 CHKFAIL1 CCS FAILREG # IS ANYTHING IN FAILREG
058219,000064: 5604 15610 TCF CHKFAIL2 # YES TRY NEXT REG
058220,000065: 5605 30001 CA L
058221,000066: 5606 54375 TS FAILREG
058222,000067: 5607 15614 TCF PROGLARM # TURN ALARM LIGHT ON FOR FIRST ALARM
058223,000068:
058224,000069: 5610 10376 CHKFAIL2 CCS FAILREG +1
058225,000070: 5611 15614 TCF PROGLARM
058226,000071: 5612 30001 CA L
058227,000072: 5613 54376 TS FAILREG +1
058228,000073:
058229,000074: 5614 22377 PROGLARM LXCH FAILREG +2 # STORE AS "MOST RECENT" ALARM CODE
058230,000075:
058231,000076: 5615 41035 CS DSPTAB +11D # TURN ON PROGRAM ALARM IF OFF
058232,000077: 5616 75632 MASK OCT40400
058233,000078: 5617 27035 ADS DSPTAB +11D
058234,000079:
|
Page 1374 |
058236,000081: 5620 56061 MULTEXIT XCH ITEMP1 # OBTAIN RETURN ADDRESS IN A
058237,000082: 5621 00003 RELINT
058238,000083: 5622 50000 INDEX A
058239,000084: 5623 00001 TC 1
058240,000085:
058241,000086: # PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
058242,000087: # AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS,
058243,000088: # CAF OCTXX ALARM CODE
058244,000089: # TC BANKCALL
058245,000090: # CADR PRIOLARM
058246,000091: # ... ...
058247,000092: # ... ...
058248,000093: # ... ... ASTRONAUT RETURN
058249,000094: # TC PHASCHNG IMMEDIATE RETURN TO USER. RESTART
058250,000095: # OCT X.1 PHASE CHANGE FOR PRIO DISPLAY
058251,000096:
058252,000097: 10,3563 BANK 10
058253,000098: 10,2000 SETLOC DISPLAYS
058254,000099: 10,2000 BANK
058255,000100:
058256,000101: 10,3563 COUNT* $$/DSPLA
058257,000102: 10,3563 00004 PRIOLARM INHINT # * * * KEEP IN DISPLAY ROUTINES BANK
058258,000103: 10,3564 54001 TS L # SAVE ALARM CODE
058259,000104:
058260,000105: 10,3565 30133 CA BUF2 # 2 CADR OF PRIOLARM USER
058261,000106: 10,3566 55363 TS ALMCADR
058262,000107: 10,3567 30134 CA BUF2 +1
058263,000108: 10,3570 05576 TC PRIOENT +1 # * LEAVE L ALONE
058264,000109: 10,3571 77467 -2SEC DEC -200 B-14 # *** DONT MOVE
058265,000110: 10,3572 35006 CAF V05N09
058266,000111: 10,3573 12505 TCF PRIODSPR
058267,000112:
058268,000113: 5624 BLOCK 02
058269,000114: 4000 SETLOC FFTAG7
058270,000115: 4000 BANK
058271,000116:
058272,000117: 5624 COUNT* $$/ALARM
058273,000118: 5624 00004 BAILOUT INHINT
058274,000119: 5625 30002 CA Q
058275,000120: 5626 55363 TS ALMCADR
058276,000121:
058277,000122: 5627 50002 INDEX Q
058278,000123: 5630 30000 CAF 0
058279,000124: 5631 05574 TC BORTENT
058280,000125: 5632 40400 OCT40400 OCT 40400
058281,000126:
058282,000127: 5633 00004 INHINT
058283,000128: 5634 34752 WHIMPER CA TWO
058284,000129: 5635 60005 AD Z
|
Page 1375 |
058286,000131: 5636 54017 TS BRUPT
058287,000132: 5637 50017 RESUME
058288,000133: 5640 04635 TC POSTJUMP # RESUME SENDS CONTROL HERE
058289,000134: 5641 12763 CADR ENEMA
058290,000135: 5642 00004 POODOO INHINT
058291,000136: 5643 30002 CA Q
058292,000137: 5644 55363 ABORT2 TS ALMCADR
058293,000138: 5645 50002 INDEX Q
058294,000139: 5646 30000 CAF 0
058295,000140: 5647 05574 TC BORTENT
058296,000141: 5650 77770 OCT77770 OCT 77770 # DON'T MOVE
058297,000142:
058298,000143: 5651 34765 CAF OCT35 # 4.35SPOT FOR GOPOODOO
058299,000144: 5652 54001 TS L
058300,000145: 5653 40000 COM
058301,000146: 5654 52760 DXCH -PHASE4
058302,000147: 5655 00004 GOPOODOO INHINT
058303,000148: 5656 04616 TC BANKCALL # RESET STATEFLG, REINTFLG, AND NODOFLAG.
058304,000149: 5657 27746 CADR FLAGS
058305,000150: 5660 30103 CA FLAGWRD7 # IS SERVICER CURRENTLY IN OPERATION?
058306,000151: 5661 74746 MASK V37FLBIT
058307,000152: 5662 10000 CCS A
058308,000153: 5663 15671 TCF STRTIDLE
058309,000154: 5664 04616 TC BANKCALL # TERMINATE GRPS 1, 3, 5, AND 6
058310,000155: 5665 12650 CADR V37KLEAN
058311,000156: 5666 04616 TC BANKCALL # TERMINATE GRPS 2, 4, 1, 3, 5, AND 6
058312,000157: 5667 12641 CADR MR.KLEAN # (I.E., GRP 4 LAST)
058313,000158: 5670 15634 TCF WHIMPER
058314,000159: 5671 35733 STRTIDLE CAF BBSERVDL
058315,000160: 5672 04727 TC SUPERSW
058316,000161: 5673 04616 TC BANKCALL # PUT SERVICER INTO ITS "GROUND" STATE
058317,000162: 5674 57322 CADR SERVIDLE # AND PROCEED TO GOTOPOOH.
058318,000163: 5675 00004 CCSHOLE INHINT
058319,000164: 5676 30002 CA Q
058320,000165: 5677 05644 TC ABORT2
058321,000166: 5700 21103 OCT21103 OCT 21103
058322,000167: 5701 00004 CURTAINS INHINT
058323,000168: 5702 30002 CA Q
058324,000169: 5703 05571 TC ALARM2
058325,000170: 5704 00217 OCT217 OCT 00217
058326,000171: 5705 01363 TC ALMCADR # RETURN TO USER
058327,000172:
058328,000173: 5706 00004 BAILOUT1 INHINT
058329,000174: 5707 53364 DXCH ALMCADR
058330,000175: 5710 35732 CAF ADR40400
058331,000176: 5711 54061 BOTHABRT TS ITEMP1
058332,000177: 5712 50002 INDEX Q
058333,000178: 5713 30000 CAF 0
058334,000179: 5714 54001 TS L
058335,000180: 5715 15603 TCF CHKFAIL1
058336,000181:
|
Page 1376 |
058338,000183: 5716 00004 POODOO1 INHINT
058339,000184: 5717 53364 DXCH ALMCADR
058340,000185: 5720 35731 CAF ADR77770
058341,000186: 5721 15711 TCF BOTHABRT
058342,000187:
058343,000188: 5722 00004 ALARM1 INHINT
058344,000189: 5723 53364 DXCH ALMCADR
058345,000190: 5724 00004 ALMNCADR INHINT
058346,000191: 5725 50002 INDEX Q
058347,000192: 5726 30000 CA 0
058348,000193: 5727 54001 TS L
058349,000194: 5730 15601 TCF LARMENT
058350,000195:
058351,000196: 5731 15650 ADR77770 TCF OCT77770
058352,000197: 5732 15632 ADR40400 TCF OCT40400
058353,000198: 5733 5155 DOALARM EQUALS ENDOFJOB
058354,000199: 5733 E7,1515 EBANK= DVCNTR
058355,000200: 5733 56067 BBSERVDL BBCON SERVIDLE
058356,000201:
058357,000202: # CALLING SEQUENCE FOR VARALARM
058358,000203: # CAF (ALARM)
058359,000204: # TC VARALARM
058360,000205:
058361,000206: # VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
058362,000207:
058363,000208: 5734 00004 VARALARM INHINT
058364,000209:
058365,000210: 5735 54001 TS L # SAVE USERS ALARM CODE
058366,000211:
058367,000212: 5736 30002 CA Q # SAVE USERS Q
058368,000213: 5737 55363 TS ALMCADR
058369,000214:
058370,000215: 5740 05575 TC PRIOENT
058371,000216: 5741 00014 OCT14 OCT 14 # DONT MOVE
058372,000217:
058373,000218: 5742 01363 TC ALMCADR # RETURN TO USER
058374,000219:
058375,000220: 5743 5634 ABORT EQUALS WHIMPER
058376,000221: 13,3746 BANK 13
058377,000222: 13,2000 SETLOC ABTFLGS
058378,000223: 13,2000 BANK
058379,000224: 13,3746 COUNT* $$/ALARM
058380,000225:
058381,000226: 13,3746 44747 FLAGS CS STATEBIT
058382,000227: 13,3747 70077 MASK FLAGWRD3
058383,000228: 13,3750 54077 TS FLAGWRD3
058384,000229: 13,3751 44745 CS REINTBIT
058385,000230: 13,3752 70106 MASK FLGWRD10
058386,000231: 13,3753 54106 TS FLGWRD10
058387,000232: 13,3754 44753 CS NODOBIT
058388,000233: 13,3755 70076 MASK FLAGWRD2
058389,000234:
|
Page 1377 |
058391,000236: 13,3756 54076 TS FLAGWRD2
058392,000237: 13,3757 00002 TC Q
058393,000238:
058394,000239:
End of include-file ALARM_AND_ABORT.agc. Parent file is MAIN.agc