Source Code
|
These source-code files are part of a reconstructed copy of Comanche 051, the
original release of the Apollo 11 Command Module (CM) Apollo Guidance Computer
(AGC) software.
The reconstruction began with source code of Comanche 055 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes related to the R-2 lunar potential model, using hints from program comments and change-indicating asterisks in the Comanche 055 listing as a guide. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021153D. Note that page numbers in the reconstructed code match those on the Comanche 055 printout, although the added code would likely have changed page numbers for a real Comanche 051 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. |
063280,000002: ## Copyright: Public domain.
063281,000003: ## Filename: ALARM_AND_ABORT.agc
063282,000004: ## Purpose: A section of Comanche revision 051.
063283,000005: ## It is part of the reconstructed source code for the
063284,000006: ## original release of the flight software for the Command
063285,000007: ## Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
063286,000008: ## The code has been recreated from a copy of Comanche 055. It
063287,000009: ## has been adapted such that the resulting bugger words
063288,000010: ## exactly match those specified for Comanche 51 in NASA drawing
063289,000011: ## 2021153D, which gives relatively high confidence that the
063290,000012: ## reconstruction is correct.
063291,000013: ## Reference: pp. 1493-1496
063292,000014: ## Assembler: yaYUL
063293,000015: ## Contact: Ron Burkey <info@sandroid.org>.
063294,000016: ## Website: www.ibiblio.org/apollo/index.html
063295,000017: ## Mod history: 2019-07-30 MAS Created from Comanche 55.
063296,000018:
|
Page 1493 |
063298,000020: # THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
063299,000021: # EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
063300,000022:
063301,000023: # CALLING SEQUENCE IS AS FOLLOWS:
063302,000024: # TC ALARM
063303,000025: # OCT NNNNN
063304,000026: # (RETURNS HERE)
063305,000027:
063306,000028: 5650 BLOCK 02
063307,000029: 4000 SETLOC FFTAG7
063308,000030: 4000 BANK
063309,000031:
063310,000032: 5650 0375 EBANK= FAILREG
063311,000033:
063312,000034: 5650 COUNT 02/ALARM
063313,000035:
063314,000036: # ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
063315,000037:
063316,000038: 5650 00004 ALARM INHINT
063317,000039:
063318,000040: 5651 30002 CA Q
063319,000041: 5652 55363 ALARM2 TS ALMCADR
063320,000042: 5653 50002 INDEX Q
063321,000043: 5654 30000 CA 0
063322,000044: 5655 54001 BORTENT TS L
063323,000045:
063324,000046: 5656 30006 PRIOENT CA BBANK
063325,000047: 5657 00006 +1 EXTEND
063326,000048: 5660 04007 ROR SUPERBNK # ADD SUPER BITS.
063327,000049: 5661 55364 TS ALMCADR +1
063328,000050:
063329,000051: 5662 30002 LARMENT CA Q # STORE RETURN FOR ALARM
063330,000052: 5663 54061 TS ITEMP1
063331,000053:
063332,000054: 5664 30164 CA LOC
063333,000055: 5665 54057 TS LOCALARM
063334,000056: 5666 30165 CA BANKSET
063335,000057: 5667 54060 TS BANKALRM
063336,000058:
063337,000059: 5670 10375 CHKFAIL1 CCS FAILREG # IS ANYTHING IN FAILREG
063338,000060: 5671 15674 TCF CHKFAIL2 # YES TRY NEXT REG
063339,000061: 5672 22375 LXCH FAILREG
063340,000062: 5673 15706 TCF PROGLARM # TURN ALARM LIGHT ON FOR FIRST ALARM
063341,000063:
063342,000064: 5674 10376 CHKFAIL2 CCS FAILREG +1
063343,000065: 5675 15700 TCF FAIL3
063344,000066: 5676 22376 LXCH FAILREG +1
063345,000067: 5677 15711 TCF MULTEXIT
063346,000068:
063347,000069: 5700 30377 FAIL3 CA FAILREG +2
|
Page 1494 |
063349,000071: 5701 74777 MASK POSMAX
063350,000072: 5702 10000 CCS A
063351,000073: 5703 15715 TCF MULTFAIL
063352,000074: 5704 22377 LXCH FAILREG +2
063353,000075: 5705 15711 TCF MULTEXIT
063354,000076:
063355,000077: 5706 41036 PROGLARM CS DSPTAB +11D
063356,000078: 5707 77765 MASK OCT40400
063357,000079: 5710 27036 ADS DSPTAB +11D
063358,000080:
063359,000081: 5711 56061 MULTEXIT XCH ITEMP1 # OBTAIN RETURN ADDRESS IN A
063360,000082: 5712 00003 RELINT
063361,000083: 5713 50000 INDEX A
063362,000084: 5714 00001 TC 1
063363,000085:
063364,000086: 5715 30001 MULTFAIL CA L
063365,000087: 5716 65001 AD BIT15
063366,000088: 5717 54377 TS FAILREG +2
063367,000089:
063368,000090: 5720 15711 TCF MULTEXIT
063369,000091:
063370,000092: # PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
063371,000093: # AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS,
063372,000094: # CAF OCTXX ALARM CODE
063373,000095: # TC BANKCALL
063374,000096: # CADR PRIOLARM
063375,000097:
063376,000098: # ... ...
063377,000099: # ... ...
063378,000100: # ... ... ASTRONAUT RETURN
063379,000101: # TC PHASCHNG IMMEDIATE RETURN TO USER. RESTART
063380,000102: # OCT X.1 PHASE CHANGE FOR PRIO DISPLAY
063381,000103:
063382,000104: 10,3766 BANK 10
063383,000105: 10,2000 SETLOC DISPLAYS
063384,000106: 10,2000 BANK
063385,000107:
063386,000108: 10,3766 COUNT 10/DSPLA
063387,000109: 10,3766 00004 PRIOLARM INHINT # * * * KEEP IN DISPLAY ROUTINES BANK
063388,000110: 10,3767 54001 TS L # SAVE ALARM CODE
063389,000111:
063390,000112: 10,3770 30133 CA BUF2 # 2 CADR OF PRIOLARM USER
063391,000113: 10,3771 55363 TS ALMCADR
063392,000114: 10,3772 30134 CA BUF2 +1
063393,000115: 10,3773 05657 TC PRIOENT +1 # * LEAVE L ALONE
063394,000116: 10,3774 77467 -2SEC DEC -200 B-14 # *** DONT MOVE
063395,000117: 10,3775 35050 CAF V05N09
063396,000118: 10,3776 12726 TCF PRIODSPR
063397,000119:
|
Page 1495 |
063399,000121:
063400,000122: 5721 BLOCK 02
063401,000123: 6000 SETLOC FFTAG13
063402,000124: 6000 BANK
063403,000125:
063404,000126: 7755 COUNT 02/ALARM
063405,000127:
063406,000128: 7755 00004 BAILOUT INHINT
063407,000129: 7756 30002 CA Q
063408,000130: 7757 55363 TS ALMCADR
063409,000131:
063410,000132: 7760 04662 TC BANKCALL
063411,000133: 7761 40000 CADR VAC5STOR
063412,000134:
063413,000135: 7762 51363 INDEX ALMCADR
063414,000136: 7763 30000 CAF 0
063415,000137: 7764 05655 TC BORTENT
063416,000138: 7765 40400 OCT40400 OCT 40400
063417,000139:
063418,000140: 7766 00004 INHINT
063419,000141: 7767 35016 WHIMPER CA TWO
063420,000142: 7770 60005 AD Z
063421,000143: 7771 54017 TS BRUPT
063422,000144: 7772 50017 RESUME
063423,000145: 7773 04701 TC POSTJUMP # RESUME SENDS CONTROL HERE
063424,000146: 7774 12651 CADR ENEMA
063425,000147:
063426,000148: 4000 SETLOC FFTAG7
063427,000149: 4000 BANK
063428,000150:
063429,000151: 5721 00004 POODOO INHINT
063430,000152: 5722 30002 CA Q
063431,000153: 5723 55363 TS ALMCADR
063432,000154:
063433,000155: 5724 04662 TC BANKCALL
063434,000156: 5725 40000 CADR VAC5STOR # STORE ERASABLES FOR DEBUGGING PURPOSES.
063435,000157:
063436,000158: 5726 51363 INDEX ALMCADR
063437,000159: 5727 30000 CAF 0
063438,000160: 5730 05655 ABORT2 TC BORTENT
063439,000161: 5731 77770 OCT77770 OCT 77770 # DONT MOVE
063440,000162: 5732 35012 CA V37FLBIT # IS AVERAGE G ON
063441,000163: 5733 70103 MASK FLAGWRD7
063442,000164: 5734 10000 CCS A
063443,000165: 5735 07766 TC WHIMPER -1 # YES. DONT DO POODOO. DO BAILOUT.
063444,000166:
063445,000167: 5736 05560 TC DOWNFLAG
063446,000168: 5737 00067 ADRES STATEFLG
063447,000169:
063448,000170: 5740 05560 TC DOWNFLAG
063449,000171:
|
Page 1496 |
063451,000173: 5741 00236 ADRES REINTFLG
063452,000174:
063453,000175: 5742 05560 TC DOWNFLAG
063454,000176: 5743 00054 ADRES NODOFLAG
063455,000177:
063456,000178: 5744 04662 TC BANKCALL
063457,000179: 5745 12501 CADR MR.KLEAN
063458,000180: 5746 07767 TC WHIMPER
063459,000181:
063460,000182: 5747 00004 CCSHOLE INHINT
063461,000183: 5750 30002 CA Q
063462,000184: 5751 55363 TS ALMCADR
063463,000185: 5752 04662 TC BANKCALL
063464,000186: 5753 40000 CADR VAC5STOR
063465,000187: 5754 35756 CA OCT1103
063466,000188: 5755 05730 TC ABORT2
063467,000189: 5756 01103 OCT1103 OCT 1103
063468,000190: 5757 00004 CURTAINS INHINT
063469,000191: 5760 30002 CA Q
063470,000192: 5761 05652 TC ALARM2
063471,000193: 5762 00217 OCT217 OCT 00217
063472,000194: 5763 01363 TC ALMCADR # RETURN TO USER
063473,000195:
063474,000196: 5764 5217 DOALARM EQUALS ENDOFJOB
063475,000197:
063476,000198: # CALLING SEQUENCE FOR VARALARM
063477,000199:
063478,000200: # CAF (ALARM)
063479,000201: # TC VARALARM
063480,000202:
063481,000203: # VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
063482,000204:
063483,000205: 5764 00004 VARALARM INHINT
063484,000206:
063485,000207: 5765 54001 TS L # SAVE USERS ALARM CODE
063486,000208:
063487,000209: 5766 30002 CA Q # SAVE USERS Q
063488,000210: 5767 55363 TS ALMCADR
063489,000211:
063490,000212: 5770 05656 TC PRIOENT
063491,000213: 5771 00014 OCT14 OCT 14 # DONT MOVE
063492,000214:
063493,000215: 5772 01363 TC ALMCADR # RETURN TO USER
063494,000216:
063495,000217: 5773 7755 ABORT EQUALS BAILOUT # *** TEMPORARY UNTIL ABORT CALLS OUT
End of include-file ALARM_AND_ABORT.agc. Parent file is MAIN.agc