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. |
051318,000002: ## Copyright: Public domain.
051319,000003: ## Filename: INTERPRETIVE_CONSTANTS.agc
051320,000004: ## Purpose: A section of Comanche revision 051.
051321,000005: ## It is part of the reconstructed source code for the
051322,000006: ## original release of the flight software for the Command
051323,000007: ## Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
051324,000008: ## The code has been recreated from a copy of Comanche 055. It
051325,000009: ## has been adapted such that the resulting bugger words
051326,000010: ## exactly match those specified for Comanche 51 in NASA drawing
051327,000011: ## 2021153D, which gives relatively high confidence that the
051328,000012: ## reconstruction is correct.
051329,000013: ## Reference: pp. 1205-1206
051330,000014: ## Assembler: yaYUL
051331,000015: ## Contact: Ron Burkey <info@sandroid.org>.
051332,000016: ## Website: www.ibiblio.org/apollo/index.html
051333,000017: ## Mod history: 2019-07-30 MAS Created from Comanche 55.
051334,000018:
Page 1205 |
051336,000020: 26,2000 SETLOC INTPRET1
051337,000021: 26,2000 BANK
051338,000022:
051339,000023: 26,3324 COUNT 23/ICONS
051340,000024:
051341,000025: 26,3324 10000 00000 DP1/4TH 2DEC .25
051342,000026:
051343,000027: 26,3326 00000 00000 UNITZ 2DEC 0 B-28
051344,000028:
051345,000029: 26,3330 00000 00000 UNITY 2DEC 0 B-28
051346,000030:
051347,000031: 26,3332 20000 00000 UNITX 2DEC .5
051348,000032:
051349,000033: 26,3334 00000 00000 ZEROVECS 2DEC 0 B-28
051350,000034:
051351,000035: 26,3336 00000 00000 2DEC 0 B-28
051352,000036:
051353,000037: 26,3340 00000 00000 2DEC 0 B-28
051354,000038:
051355,000039: 26,3342 26,3332 DPHALF = UNITX
051356,000040: 26,3342 37777 DPPOSMAX OCT 37777
051357,000041: 26,3343 37777 OCT 37777
051358,000042:
Page 1206 |
051360,000044: # INTERPRETIVE CONSTANTS IN THE OTHER HALF-MEMORY
051361,000045:
051362,000046: 04,2000 SETLOC INTPRET2
051363,000047: 04,2000 BANK
051364,000048:
051365,000049: 04,3557 COUNT 14/ICONS
051366,000050:
051367,000051: 04,3557 00000 00000 ZUNIT 2DEC 0 B-28
051368,000052:
051369,000053: 04,3561 00000 00000 YUNIT 2DEC 0 B-28
051370,000054:
051371,000055: 04,3563 20000 00000 XUNIT 2DEC .5
051372,000056:
051373,000057: 04,3565 00000 00000 ZEROVEC 2DEC 0 B-28
051374,000058:
051375,000059: 04,3567 00000 00000 2DEC 0 B-28
051376,000060:
051377,000061: 04,3571 00000 00000 2DEC 0 B-28
051378,000062:
051379,000063: 04,3573 77777 OCT 77777 # -0, -6, -12 MUST REMAIN IN THIS ORDER
051380,000064: 04,3574 77771 DEC-6 DEC -6 B-14
051381,000065: 04,3575 77763 DEC-12 DEC -12 B-14
051382,000066: 04,3576 37777 37777 LODPMAX 2OCT 3777737777 # THESE TWO CONSTANTS MUST REMAIN
051383,000067:
051384,000068: 04,3600 37777 37777 LODPMAX1 2OCT 3777737777 # ADJACENT AND THE SAME FOR INTEGRATION
051385,000069:
051386,000070: 04,3602 04,3565 ZERODP = ZEROVEC
051387,000071: 04,3602 04,3563 HALFDP = XUNIT
051388,000072:
051389,000073:
051390,000074:
051391,000075:
End of include-file INTERPRETIVE_CONSTANTS.agc. Parent file is MAIN.agc