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:
Among documentation not actually referenced in the annotations, there is a short writeup about the reconstruction process in our software repository that may be helpful in understanding it from a different perspective. There's also a handy table that lists what the number of memory-words should be for each routine in Comanche 51, which could make a nice double-check; however, we've not performed that double-check ourselves.

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