Source Code
These source-code files are part of a reconstructed copy of Comanche 51, the
initial release (though not the final mission release) of the Apollo 11
Command Module (CM) Apollo Guidance Computer (AGC) software. The flown, final
release was Comanche 55. The reconstruction is believed to be exactly accurate,
but in the absence of an actual Apollo-era listing of Comanche 51, some
explanation of the reconstruction process is needed to insure confidence in
that accuracy.
The starting point was the source code of Comanche 55, whose original source code is available. Comanche 55 source code was then modified by undoing changes known to have been made between revisions 51 and 55. The most-significant steps involved reverting changes related to the R-2 lunar potential model, the details of which were known from the previous, separate, independent reconstruction of the Apollo 10 Lunar Module software Luminary 69/2. The now-reconstructed Comanche 51 source code was verified by assembling it and checking that the assembled code had the expected known-correct memory-bank checksums. Note that page numbers in the reconstructed code match those on the Comanche 55 or Luminary 69 printouts, although the source code would likely have different page numbers in a contemporary Comanche 51 listing. Annotations that were not present in the contemporary source code have been added to the reconstructed code to justify each change relative to Comanche 55. Here's a guide to some of the Apollo documentation relevant to those annotations:
Comments expected to have been present in 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. |
005341,000002: ## Copyright: Public domain.
005342,000003: ## Filename: INTERRUPT_LEAD_INS.agc
005343,000004: ## Purpose: A section of Comanche revision 051.
005344,000005: ## It is part of the reconstructed source code for the
005345,000006: ## original release of the flight software for the Command
005346,000007: ## Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
005347,000008: ## The code has been recreated from a copy of Comanche 055. It
005348,000009: ## has been adapted such that the resulting bugger words
005349,000010: ## exactly match those specified for Comanche 51 in NASA drawing
005350,000011: ## 2021153D, which gives relatively high confidence that the
005351,000012: ## reconstruction is correct.
005352,000013: ## Reference: pp. 131-132
005353,000014: ## Assembler: yaYUL
005354,000015: ## Contact: Ron Burkey <info@sandroid.org>.
005355,000016: ## Website: www.ibiblio.org/apollo/index.html
005356,000017: ## Mod history: 2019-07-30 MAS Created from Comanche 55.
005357,000018:
Page 131 |
005359,000020: 4000 SETLOC 4000
005360,000021:
005361,000022: 4000 COUNT 02/RUPTS
005362,000023:
005363,000024: 4000 00004 INHINT # GO
005364,000025: 4001 34054 CAF GOBB
005365,000026: 4002 56006 XCH BBANK
005366,000027: 4003 12526 TCF GOPROG
005367,000028:
005368,000029: 4004 52011 DXCH ARUPT # T6RUPT
005369,000030: 4005 00006 EXTEND
005370,000031: 4006 31311 DCA T6LOC
005371,000032: 4007 52006 DTCB
005372,000033:
005373,000034: 4010 52011 DXCH ARUPT # T5RUPT
005374,000035: 4011 40030 CS TIME5
005375,000036: 4012 65036 AD .5SEC
005376,000037: 4013 14065 TCF T5RUPT
005377,000038:
005378,000039: 4014 52011 DXCH ARUPT # T3RUPT
005379,000040: 4015 34055 CAF T3RPTBB
005380,000041: 4016 56006 XCH BBANK
005381,000042: 4017 13416 TCF T3RUPT
005382,000043:
005383,000044: 4020 52011 DXCH ARUPT # T4RUPT
005384,000045: 4021 34063 CAF T4RPTBB
005385,000046: 4022 56006 XCH BBANK
005386,000047: 4023 12000 TCF T4RUPT
005387,000048:
005388,000049: 4024 52011 DXCH ARUPT # KEYRUPT1
005389,000050: 4025 34056 CAF KEYRPTBB
005390,000051: 4026 56006 XCH BBANK
005391,000052: 4027 13673 TCF KEYRUPT1
005392,000053:
005393,000054: 4030 52011 DXCH ARUPT # KEYRUPT2
005394,000055: 4031 34057 CAF MKRUPTBB
005395,000056: 4032 56006 XCH BBANK
005396,000057: 4033 12104 TCF MARKRUPT
005397,000058:
005398,000059: 4034 52011 DXCH ARUPT # UPRUPT
005399,000060: 4035 34056 CAF UPRPTBB
005400,000061: 4036 56006 XCH BBANK
005401,000062: 4037 13716 TCF UPRUPT
005402,000063:
005403,000064: 4040 52011 DXCH ARUPT # DOWNRUPT
005404,000065: 4041 34060 CAF DWNRPTBB
005405,000066: 4042 56006 XCH BBANK
005406,000067: 4043 13521 TCF DODOWNTM
005407,000068:
005408,000069: 4044 52011 DXCH ARUPT # RADAR RUPT
Page 132 |
005410,000071: 4045 34061 CAF RDRPTBB
005411,000072: 4046 56006 XCH BBANK
005412,000073: 4047 12504 TCF VHFREAD
005413,000074:
005414,000075: 4050 52011 DXCH ARUPT # HAND CONTROL RUPT
005415,000076: 4051 34062 CAF HCRUPTBB
005416,000077: 4052 56006 XCH BBANK
005417,000078: 4053 15336 TCF RESUME +3 # NOT USED
005418,000079:
005419,000080: 4054 E3,1400 EBANK= LST1 # RESTART USES E0,E3
005420,000081: 4054 12063 GOBB BBCON GOPROG
005421,000082:
005422,000083: 4055 E3,1400 EBANK= LST1
005423,000084: 4055 02063 T3RPTBB BBCON T3RUPT
005424,000085:
005425,000086: 4056 0073 EBANK= KEYTEMP1
005426,000087: 4056 16060 KEYRPTBB BBCON KEYRUPT1
005427,000088:
005428,000089: 4057 E7,1725 EBANK= MRKBUF1
005429,000090: 4057 16067 MKRUPTBB BBCON MARKRUPT
005430,000091:
005431,000092: 4060 4056 UPRPTBB = KEYRPTBB
005432,000093:
005433,000094: 4060 0340 EBANK= DNTMBUFF
005434,000095: 4060 12060 DWNRPTBB BBCON DODOWNTM
005435,000096:
005436,000097: 4061 E7,1603 EBANK= DATATEST
005437,000098: 4061 56067 RDRPTBB BBCON VHFREAD
005438,000099:
005439,000100: 4062 0025 EBANK= TIME1
005440,000101: 4062 04060 HCRUPTBB BBCON RESUME # NOT USED
005441,000102:
005442,000103: 4063 1302 EBANK= DSRUPTSW
005443,000104: 4063 14062 T4RPTBB BBCON T4RUPT
005444,000105:
005445,000106: 4064 0025 EBANK= TIME1
005446,000107: 4064 04060 T5RPTBB BBCON T5RUPT
005447,000108:
005448,000109: 4065 00006 T5RUPT EXTEND
005449,000110: 4066 65337 BZMF NOQBRSM
005450,000111: 4067 00006 EXTEND
005451,000112: 4070 31313 DCA T5LOC
005452,000113: 4071 52006 DTCB
005453,000114:
005454,000115:
005455,000116:
End of include-file INTERRUPT_LEAD_INS.agc. Parent file is MAIN.agc