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.

051394,000002:                                                                                                  ## Copyright:   Public domain.
051395,000003:                                                                                                  ## Filename:    SINGLE_PRECISION_SUBROUTINES.agc
051396,000004:                                                                                                  ## Purpose:     A section of Comanche revision 051.
051397,000005:                                                                                                  ##              It is part of the reconstructed source code for the
051398,000006:                                                                                                  ##              original release of the flight software for the Command
051399,000007:                                                                                                  ##              Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
051400,000008:                                                                                                  ##              The code has been recreated from a copy of Comanche 055. It
051401,000009:                                                                                                  ##              has been adapted such that the resulting bugger words
051402,000010:                                                                                                  ##              exactly match those specified for Comanche 51 in NASA drawing
051403,000011:                                                                                                  ##              2021153D, which gives relatively high confidence that the
051404,000012:                                                                                                  ##              reconstruction is correct.
051405,000013:                                                                                                  ## Reference:   p.  1207
051406,000014:                                                                                                  ## Assembler:   yaYUL
051407,000015:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
051408,000016:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
051409,000017:                                                                                                  ## Mod history: 2019-07-30 MAS  Created from Comanche 55.
051410,000018: 

Page 1207

051412,000020:    5074                                           BLOCK    02                                    
051413,000021: 
051414,000022:                                                                                                  #  SINGLE PRECISION SINE AND COSINE
051415,000023: 
051416,000024:    5074                                           COUNT    02/INTER                              
051417,000025: 
051418,000026:    5074           65002        SPCOS              AD       HALF                                  #  ARGUMENTS SCALED AT PI
051419,000027:    5075           55075        SPSIN              TS       TEMK                                  
051420,000028:    5076           15100                           TCF      SPT                                   
051421,000029:    5077           41075                           CS       TEMK                                  
051422,000030:    5100           60000        SPT                DOUBLE                                         
051423,000031:    5101           55075                           TS       TEMK                                  
051424,000032:    5102           15113                           TCF      POLLEY                                
051425,000033:    5103           57075                           XCH      TEMK                                  
051426,000034:    5104           51075                           INDEX    TEMK                                  
051427,000035:    5105           65000                           AD       LIMITS                                
051428,000036:    5106           40000                           COM                                            
051429,000037:    5107           61075                           AD       TEMK                                  
051430,000038:    5110           55075                           TS       TEMK                                  
051431,000039:    5111           15113                           TCF      POLLEY                                
051432,000040:    5112           15131                           TCF      ARG90                                 
051433,000041:    5113           00006        POLLEY             EXTEND                                         
051434,000042:    5114           71075                           MP       TEMK                                  
051435,000043:    5115           55076                           TS       SQ                                    
051436,000044:    5116           00006                           EXTEND                                         
051437,000045:    5117           75047                           MP       C5/2                                  
051438,000046:    5120           67706                           AD       C3/2                                  
051439,000047:    5121           00006                           EXTEND                                         
051440,000048:    5122           71076                           MP       SQ                                    
051441,000049:    5123           67666                           AD       C1/2                                  
051442,000050:    5124           00006                           EXTEND                                         
051443,000051:    5125           71075                           MP       TEMK                                  
051444,000052:    5126           20001                           DDOUBL                                         
051445,000053:    5127           55075                           TS       TEMK                                  
051446,000054:    5130           00002                           TC       Q                                     
051447,000055:    5131           50000        ARG90              INDEX    A                                     
051448,000056:    5132           45000                           CS       LIMITS                                
051449,000057:    5133           00002                           TC       Q                                     #  RESULT SCALED AT 1
051450,000058: 
051451,000059:                                                                                                  #  SPROOT WAS DELETED IN REV 51 OF MASTER. ASS. CONT. HAS CARDS.
051452,000060: 
051453,000061: 
051454,000062: 
051455,000063: 

End of include-file SINGLE_PRECISION_SUBROUTINES.agc.  Parent file is MAIN.agc