Source Code
|
These source-code files are part of a reconstructed copy of Artemis 071, the
first release of the Apollo 15 through 17 Command Module (CM) Apollo Guidance
Computer (AGC) software.
The reconstruction began with source code of Artemis 072 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes between the two versions. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021154-. Note that page numbers in the reconstructed code match those on the Artemis 072 printout, although the changed code would likely have changed page numbers for a real Artemis 071 listing. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
063592,000002: ## Copyright: Public domain.
063593,000003: ## Filename: ALARM_AND_ABORT.agc
063594,000004: ## Purpose: A section of Artemis revision 071.
063595,000005: ## It is part of the reconstructed source code for the first
063596,000006: ## release of the flight software for the Command Module's
063597,000007: ## (CM) Apollo Guidance Computer (AGC) for Apollo 15 through
063598,000008: ## 17. The code has been recreated from a copy of Artemis 072.
063599,000009: ## It has been adapted such that the resulting bugger words
063600,000010: ## exactly match those specified for Artemis 071 in NASA
063601,000011: ## drawing 2021154-, which gives relatively high confidence
063602,000012: ## that the reconstruction is correct.
063603,000013: ## Reference: 1486
063604,000014: ## Assembler: yaYUL
063605,000015: ## Contact: Ron Burkey <info@sandroid.org>.
063606,000016: ## Website: www.ibiblio.org/apollo/index.html
063607,000017: ## Mod history: 2019-08-14 MAS Created from Artemis 072.
063608,000018:
|
Page 1486 |
063610,000020:
063611,000021: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
063612,000022: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
063613,000023:
063614,000024: # CALLING SEQUENCE IS AS FOLLOWS:
063615,000025:
063616,000026: # TC ALARM
063617,000027: # OCT NNNNN
063618,000028: # (RETURNS HERE)
063619,000029:
063620,000030: 4000 SETLOC FFTAG7
063621,000031: 4000 BANK
063622,000032:
063623,000033: 5671 0375 EBANK= FAILREG
063624,000034:
063625,000035: 5671 COUNT* $$/ALARM
063626,000036:
063627,000037: # ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
063628,000038:
063629,000039: 5671 00004 ALARM INHINT
063630,000040:
063631,000041: 5672 30002 CA Q
063632,000042: 5673 55363 ALARM2 TS ALMCADR
063633,000043: 5674 50002 INDEX Q
063634,000044: 5675 30000 CA 0
063635,000045: 5676 54001 BORTENT TS L
063636,000046:
063637,000047: 5677 30006 PRIOENT CA BBANK
063638,000048: 5700 00006 +1 EXTEND
063639,000049: 5701 04007 ROR SUPERBNK # ADD SUPER BITS.
063640,000050: 5702 55364 TS ALMCADR +1
063641,000051:
063642,000052: 5703 30002 LARMENT CA Q # STORE RETURN FOR ALARM
063643,000053: 5704 54061 TS ITEMP1
063644,000054:
063645,000055: 5705 10375 CHKFAIL1 CCS FAILREG # IS ANYTHING IN FAILREG
063646,000056: 5706 15712 TCF CHKFAIL2 # YES TRY NEXT REG
063647,000057: 5707 30001 CA L
063648,000058: 5710 54375 TS FAILREG
063649,000059: 5711 15716 TCF PROGLARM # TURN ALARM LIGHT ON FOR FIRST ALARM
063650,000060:
063651,000061: 5712 10376 CHKFAIL2 CCS FAILREG +1
063652,000062: 5713 15716 TCF PROGLARM
063653,000063: 5714 30001 CA L
063654,000064: 5715 54376 TS FAILREG +1
063655,000065:
063656,000066: 5716 22377 PROGLARM LXCH FAILREG +2 # STORE AS "MOST RECENT" ALARM CODE
063657,000067:
063658,000068: 5717 41241 CS DSPTAB +11D # TURN ON PROGRAM ALARM IF OFF
063659,000069: 5720 77716 MASK BIT15+9
063660,000070: 5721 27241 ADS DSPTAB +11D
063661,000071:
063662,000072: 5722 56061 MULTEXIT XCH ITEMP1 # OBTAIN RETURN ADDRESS IN A
|
Page 1487 |
063664,000074: 5723 00003 RELINT
063665,000075: 5724 50000 INDEX A
063666,000076: 5725 00001 TC 1
063667,000077:
063668,000078: # PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
063669,000079: # AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS,
063670,000080: # CAF OCTXX ALARM CODE
063671,000081: # TC BANKCALL
063672,000082: # CADR PRIOLARM
063673,000083:
063674,000084: # ... ...
063675,000085: # ... ...
063676,000086: # ... ... ASTRONAUT RETURN
063677,000087: # TC PHASCHNG IMMEDIATE RETURN TO USER. RESTART
063678,000088: # OCT X.1 PHASE CHANGE FOR PRIO DISPLAY
063679,000089:
063680,000090: 10,2000 SETLOC DISPLAYS
063681,000091: 10,2000 BANK
063682,000092:
063683,000093: 10,3766 COUNT* $$/DSPLA
063684,000094: 10,3766 00004 PRIOLARM INHINT # * * * KEEP IN DISPLAY ROUTINES BANK
063685,000095: 10,3767 54001 TS L # SAVE ALARM CODE
063686,000096:
063687,000097: 10,3770 30133 CA BUF2 # 2 CADR OF PRIOLARM USER
063688,000098: 10,3771 55363 TS ALMCADR
063689,000099: 10,3772 30134 CA BUF2 +1
063690,000100: 10,3773 05700 TC PRIOENT +1 # * LEAVE L ALONE
063691,000101: 10,3774 77467 -2SEC DEC -200 B-14 # *** DONT MOVE
063692,000102: 10,3775 35023 CAF V05N09
063693,000103: 10,3776 12750 TCF PRIODSPR
063694,000104:
063695,000105: 6000 SETLOC FFTAG13
063696,000106: 6000 BANK
063697,000107:
063698,000108: 7706 COUNT* $$/ALARM
063699,000109: 7706 00004 BAILOUT INHINT
063700,000110: 7707 30002 CA Q
063701,000111: 7710 55363 TS ALMCADR
063702,000112:
063703,000113: 7711 04636 TC BANKCALL
063704,000114: 7712 40000 CADR VAC5STOR
063705,000115:
063706,000116: 7713 51363 INDEX ALMCADR
063707,000117: 7714 30000 CAF 0
063708,000118: 7715 05676 TC BORTENT
063709,000119: 7716 40400 BIT15+9 OCT 40400
063710,000120:
063711,000121: 7717 00004 -1 INHINT
063712,000122: 7720 34767 WHIMPER CA TWO
063713,000123: 7721 60005 AD Z
|
Page 1488 |
063715,000125: 7722 54017 TS BRUPT
063716,000126: 7723 50017 RESUME
063717,000127: 7724 04655 TC POSTJUMP # RESUME SENDS CONTROL HERE
063718,000128: 7725 12712 CADR ENEMA
063719,000129:
063720,000130: 4000 SETLOC FFTAG7
063721,000131: 4000 COUNT* $$/ALARM
063722,000132: 4000 BANK
063723,000133:
063724,000134: 5726 00004 POODOO INHINT
063725,000135: 5727 30002 CA Q
063726,000136: 5730 55363 TS ALMCADR
063727,000137:
063728,000138: 5731 04636 TC BANKCALL
063729,000139: 5732 40000 CADR VAC5STOR # STORE ERASABLES FOR DEBUGGING PURPOSES.
063730,000140:
063731,000141: 5733 51363 INDEX ALMCADR
063732,000142: 5734 30000 CAF 0
063733,000143: 5735 05676 ABORT2 TC BORTENT
063734,000144:
063735,000145: 5736 77770 OCT77770 OCT 77770 # DONT MOVE
063736,000146: 5737 34763 CA V37FLBIT # IS AVERAGE G ON
063737,000147: 5740 70103 MASK FLAGWRD7
063738,000148: 5741 10000 CCS A
063739,000149: 5742 07717 TC WHIMPER -1 # YES. DONT DO POODOO. DO BAILOUT.
063740,000150:
063741,000151: 5743 44753 CS BIT14 # DISREGARD ENTRY SETTING
063742,000152: 5744 71247 MASK EXTVBACT # EXTENDED VBS ACTIVE?
063743,000153: 5745 10000 CCS A
063744,000154: 5746 17717 TCF WHIMPER -1 # YES DONT DO POODOO DO BAILOUT
063745,000155:
063746,000156: 5747 05561 TC DOWNFLAG
063747,000157: 5750 00067 ADRES STATEFLG
063748,000158:
063749,000159: 5751 05561 TC DOWNFLAG
063750,000160: 5752 00236 ADRES AUTOSEQ
063751,000161:
063752,000162: 5753 05561 TC DOWNFLAG
063753,000163: 5754 00230 ADRES REINTFLG
063754,000164:
063755,000165: 5755 05561 TC DOWNFLAG
063756,000166: 5756 00176 ADRES UTFLAG
063757,000167: 5757 05561 TC DOWNFLAG
063758,000168: 5760 00010 ADRES RNDVZFLG
063759,000169: 5761 05561 TC DOWNFLAG
063760,000170: 5762 00031 ADRES TRACKFLG # FORCE STOPRATE
063761,000171: 5763 05561 TC DOWNFLAG
063762,000172: 5764 00054 ADRES NODOFLAG
063763,000173:
063764,000174: 5765 04636 TC BANKCALL
|
Page 1489 |
063766,000176: 5766 12536 CADR MR.KLEAN
063767,000177: 5767 07720 TC WHIMPER
063768,000178:
063769,000179: 5770 5205 DOALARM EQUALS ENDOFJOB
063770,000180:
063771,000181: # CALLING SEQUENCE FOR VARALARM
063772,000182: # CAF (ALARM)
063773,000183: # TC VARALARM
063774,000184:
063775,000185: # VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
063776,000186:
063777,000187: 5770 00004 VARALARM INHINT
063778,000188:
063779,000189: 5771 54001 TS L # SAVE USERS ALARM CODE
063780,000190:
063781,000191: 5772 30002 CA Q # SAVE USERS Q
063782,000192: 5773 55363 TS ALMCADR
063783,000193:
063784,000194: 5774 05677 TC PRIOENT
063785,000195: 5775 00014 OCT14 OCT 14 # DONT MOVE
063786,000196:
063787,000197: 5776 01363 TC ALMCADR # RETURN TO USER
063788,000198:
063789,000199: 5777 7706 ABORT EQUALS BAILOUT # *** TEMPORARY UNTIL ABORT CALLS OUT
End of include-file ALARM_AND_ABORT.agc. Parent file is MAIN.agc