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.

040719,000002:                                                                                                  ## Copyright:   Public domain.
040720,000003:                                                                                                  ## Filename:    S-BAND_ANTENNA_FOR_CM.agc
040721,000004:                                                                                                  ## Purpose:     A section of Comanche revision 051.
040722,000005:                                                                                                  ##              It is part of the reconstructed source code for the
040723,000006:                                                                                                  ##              original release of the flight software for the Command
040724,000007:                                                                                                  ##              Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
040725,000008:                                                                                                  ##              The code has been recreated from a copy of Comanche 055. It
040726,000009:                                                                                                  ##              has been adapted such that the resulting bugger words
040727,000010:                                                                                                  ##              exactly match those specified for Comanche 51 in NASA drawing
040728,000011:                                                                                                  ##              2021153D, which gives relatively high confidence that the
040729,000012:                                                                                                  ##              reconstruction is correct.
040730,000013:                                                                                                  ## Reference:   pp. 934-935
040731,000014:                                                                                                  ## Assembler:   yaYUL
040732,000015:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
040733,000016:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
040734,000017:                                                                                                  ## Mod history: 2019-07-30 MAS  Created from Comanche 55.
040735,000018: 

Page 934

040737,000020: 23,3205                                           BANK     23                                    
040738,000021: 42,2000                                           SETLOC   SBAND                                 
040739,000022: 42,2000                                           BANK                                           
040740,000023: 
040741,000024: 42,3652                                           COUNT*   $$/R05                                
040742,000025: 42,3652  E4,1417                                  EBANK=   EMSALT                                
040743,000026: 
040744,000027: 42,3652           04662        SBANDANT           TC       BANKCALL                              #  V 64 E GETS US HERE
040745,000028: 42,3653           17653                           CADR     R02BOTH                               #  CHECK IF IMU IS ON AND ALIGNED
040746,000029: 42,3654           06006                           TC       INTPRET                               
040747,000030: 42,3655           45034                           RTB      CALL                                  
040748,000031: 42,3656           45510                                    LOADTIME                              #  PICKUP CURRENT TIME SCALED B-28
040749,000032: 42,3657           47477                                    CDUTRIG                               #  COMPUTE SINES AND COSINES OF CDU ANGLES
040750,000033: 42,3660           34041                           STCALL   TDEC1                                 #  ADVANCE INTEGRATION TO TIME IN TDEC1
040751,000034: 42,3661           27114                                    CSMCONIC                              #  USING CONIC INTEGRATION
040752,000035: 42,3662           46135                           SLOAD    BHIZ                                  #  ORIGIN OF REFERENCE INERTIAL SYSTEM IS
040753,000036: 42,3663           00050                                    X2                                    #  EARTH = 0, MOON = 2
040754,000037: 42,3664           65677                                    EISOI                                 
040755,000038: 42,3665           77775                           VLOAD                                          
040756,000039: 42,3666           00001                                    RATT                                  
040757,000040: 42,3667           00003                           STORE    RCM                                   #  MOVE RATT TO PREVENT WIPEOUT
040758,000041: 42,3670           45145                           DLOAD    CALL                                  #  MOON, PUSH ON
040759,000042: 42,3671           00015                                    TAT                                   #  GET ORIGINAL TIME
040760,000043: 42,3672           54115                                    LUNPOS                                #  COMPUTE POSITION VECTOR OF MOON
040761,000044: 42,3673           57455                           VAD      VCOMP                                 #  R= -(REM+RCM) = NEG. OF S/C POS. VEC
040762,000045: 42,3674           00003                                    RCM                                   
040763,000046: 42,3675           77650                           GOTO                                           
040764,000047: 42,3676           65701                                    EISOI      +2                         
040765,000048: 42,3677           57575        EISOI              VLOAD    VCOMP                                 #  EARTH, R= -RCM
040766,000049: 42,3700           00001                                    RATT                                  
040767,000050: 42,3701           64201                           SETPD    MXV                                   #  RCS TO STABLE MEMBER- B-1X B-29X B+1
040768,000051: 42,3702           00003                                    2D                                    #  2D
040769,000052: 42,3703           01736                                    REFSMMAT                              #  STABLE MEMBER.  B-1X B-29X B+1= B-29
040770,000053: 42,3704           65372                           VSL1     PDDL                                  #  8D
040771,000054: 42,3705           15335                                    HI6ZEROS                              
040772,000055: 42,3706           24025                           STOVL    YAWANG                                #  ZERO OUT YAWANG, SET UP FOR SMNB
040773,000056: 42,3707           00003                                    RCM                                   #  TRANSFORMATION.  SM COORD.  SCALED B-29
040774,000057: 42,3710           77624                           CALL                                           
040775,000058: 42,3711           47644                                    *SMNB*                                
040776,000059: 42,3712           00003                           STORE    R                                     #  SAVE NAV. BASE COORDINATES
040777,000060: 42,3713           63256                           UNIT     PDVL                                  #  14D
040778,000061: 42,3714           00003                                    R                                     
040779,000062: 42,3715           72431                           VPROJ    VSL2                                  #  COMPUTE PROJECTION OF VECTOR INTO CM
040780,000063: 42,3716           15327                                    HIUNITZ                               #  XY-PLANE, R-(R.UZ)UZ
040781,000064: 42,3717           40045                           BVSU     BOV                                   #  CLEAR OVERFLOW INDICATOR IF SET
040782,000065: 42,3720           00003                                    R                                     
040783,000066: 42,3721           65722                                    COVCNV                                
040784,000067: 42,3722           40056        COVCNV             UNIT     BOV                                   #  TEST OVERFLOW FOR INDICATION OF NULL
040785,000068: 42,3723           65737                                    NOADJUST                              #  VECTOR
040786,000069: 42,3724           50206                           PUSH     DOT                                   #  20D

Page 935

040788,000071: 42,3725           15333                                    HIUNITX                               #  COMPUTE YAW ANGLE = ACOS (URP.UX)
040789,000072: 42,3726           65552                           SL1      ACOS                                  #  REVOLUTIONS SCALED B0
040790,000073: 42,3727           50315                           PDVL     DOT                                   #  22D YAWANG
040791,000074: 42,3730           00017                                    URP                                   
040792,000075: 42,3731           15331                                    HIUNITY                               #  COMPUTE FOLLOWING- URP.UY
040793,000076: 42,3732           51152                           SL1      BPL                                   #  POSITIVE
040794,000077: 42,3733           65737                                    NOADJUST                              #  YES, 0-180 DEGREES
040795,000078: 42,3734           45345                           DLOAD    DSU                                   #  NO, 181-360 DEGREES 20D
040796,000079: 42,3735           15343                                    DPPOSMAX                              #  COMPUTE 2 PI MINUS YAW ANGLE
040797,000080: 42,3736           77606                           PUSH                                           #  22D YAWANG
040798,000081: 42,3737           50375        NOADJUST           VLOAD    DOT                                   #  COMPUTE PITCH ANGLE
040799,000082: 42,3740           00011                                    UR                                    #  ACOS (UR.UZ) - PI/2
040800,000083: 42,3741           15327                                    HIUNITZ                               
040801,000084: 42,3742           65552                           SL1      ACOS                                  #  REVOLUTIONS B0
040802,000085: 42,3743           77625                           DSU                                            
040803,000086: 42,3744           15325                                    HIDP1/4                               
040804,000087: 42,3745           16321                           STODL    RHOSB                                 
040805,000088: 42,3746           00025                                    YAWANG                                
040806,000089: 42,3747           02323                           STORE    GAMMASB                               #  PATCH FOR CHECKOUT
040807,000090: 42,3750           77776                           EXIT                                           
040808,000091: 42,3751           31044                           CA       EXTVBACT                              #  IS BIT 5 STILL ON
040809,000092: 42,3752           75013                           MASK     BIT5                                  
040810,000093: 42,3753           00006                           EXTEND                                         
040811,000094: 42,3754           15534                           BZF      ENDEXT                                #  NO, WE HAVE BEEN ANSWERED
040812,000095: 42,3755           33771                           CAF      V06N51                                #  DISPLAY ANGLES
040813,000096: 42,3756           04662                           TC       BANKCALL                              
040814,000097: 42,3757           20600                           CADR     GOMARKFR                              
040815,000098: 42,3760           05625                           TC       B5OFF                                 #  TERMINATE
040816,000099: 42,3761           05625                           TC       B5OFF                                 
040817,000100: 42,3762           05217                           TC       ENDOFJOB                              #  RECYCLE
040818,000101: 42,3763           35015                           CAF      BIT3                                  #  IMMEDIATE RETURN
040819,000102: 42,3764           05526                           TC       BLANKET                               #  BLANK R3
040820,000103: 42,3765           35017                           CAF      BIT1                                  #  DELAY MINIMUM TIME TO ALLOW DISPLAY IN
040821,000104: 42,3766           04662                           TC       BANKCALL                              
040822,000105: 42,3767           01732                           CADR     DELAYJOB                              
040823,000106: 42,3770           13654                           TCF      SBANDANT   +2                         
040824,000107: 42,3771           01463        V06N51             VN       0651                                  
040825,000108: 42,3772                        RCM                EQUALS   2D                                    
040826,000109: 42,3772                        UR                 EQUALS   8D                                    
040827,000110: 42,3772                        URP                EQUALS   14D                                   
040828,000111: 42,3772                        YAWANG             EQUALS   20D                                   
040829,000112: 42,3772                        PITCHANG           EQUALS   22D                                   
040830,000113: 42,3772  0000002               R                  EQUALS   RCM                                   
040831,000114: 42,3772  30,2000                                  SBANK=   LOWSUPER                              
040832,000115: 

End of include-file S-BAND_ANTENNA_FOR_CM.agc.  Parent file is MAIN.agc