Source Code

These source-code files are part of a reconstructed copy of Comanche 45/2 (AKA Manche45 revision 2), the final, flown mission release of the Apollo 10 Command Module (CM) Apollo Guidance Computer (AGC) software. Comanche 45/2 was preceded by Comanche 44 and Comanche 45. The reconstruction is believed to be exactly accurate, but in the absence of an actual Apollo-era listing of Comanche 45/2, some explanation of the reconstruction process is needed to insure confidence in that accuracy.

The starting point was the source code of Comanche 45 (itself previously accurately reconstructed). Comanche 45 source code was then modified by incorporating changes known from contemporary documentation to have been made between revisions 45 and 45/2. The now-reconstructed Comanche 45/2 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 tend to match those in the Comanche 55, the most-similar revision of Comanche for which we have access to an actual non-reconstructed hardcopy; the source code would likely have different page numbers in a contemporary Comanche 45 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 44. Here's a guide to the Apollo documentation referenced in 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.

040672,000002:                                                                                                  ## Copyright:   Public domain.
040673,000003:                                                                                                  ## Filename:    S-BAND_ANTENNA_FOR_CM.agc
040674,000004:                                                                                                  ## Purpose:     A section of Manche45 revision 2.
040675,000005:                                                                                                  ##              It is part of the reconstructed source code for the
040676,000006:                                                                                                  ##              final, flown release of the flight software for the Command
040677,000007:                                                                                                  ##              Module's (CM) Apollo Guidance Computer (AGC) for Apollo 10.
040678,000008:                                                                                                  ##              The code has been recreated from a copy of Comanche 055. It
040679,000009:                                                                                                  ##              has been adapted such that the resulting bugger words
040680,000010:                                                                                                  ##              exactly match those specified for Manche 45/2 in NASA drawing
040681,000011:                                                                                                  ##              2021153D, which gives relatively high confidence that the
040682,000012:                                                                                                  ##              reconstruction is correct.
040683,000013:                                                                                                  ## Assembler:   yaYUL
040684,000014:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
040685,000015:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
040686,000016:                                                                                                  ## Mod history: 2020-12-24 MAS  Created from Comanche 45.
040687,000017: 

Page 934

040689,000019: 23,3205                                           BANK     23                                    
040690,000020: 42,2000                                           SETLOC   SBAND                                 
040691,000021: 42,2000                                           BANK                                           
040692,000022: 
040693,000023: 42,3652                                           COUNT*   $$/R05                                
040694,000024: 42,3652  E4,1417                                  EBANK=   EMSALT                                
040695,000025: 
040696,000026: 42,3652           04662        SBANDANT           TC       BANKCALL                              #  V 64 E GETS US HERE
040697,000027: 42,3653           17653                           CADR     R02BOTH                               #  CHECK IF IMU IS ON AND ALIGNED
040698,000028: 42,3654           06006                           TC       INTPRET                               
040699,000029: 42,3655           45034                           RTB      CALL                                  
040700,000030: 42,3656           45510                                    LOADTIME                              #  PICKUP CURRENT TIME SCALED B-28
040701,000031: 42,3657           47477                                    CDUTRIG                               #  COMPUTE SINES AND COSINES OF CDU ANGLES
040702,000032: 42,3660           34041                           STCALL   TDEC1                                 #  ADVANCE INTEGRATION TO TIME IN TDEC1
040703,000033: 42,3661           27114                                    CSMCONIC                              #  USING CONIC INTEGRATION
040704,000034: 42,3662           46135                           SLOAD    BHIZ                                  #  ORIGIN OF REFERENCE INERTIAL SYSTEM IS
040705,000035: 42,3663           00050                                    X2                                    #  EARTH = 0, MOON = 2
040706,000036: 42,3664           65677                                    EISOI                                 
040707,000037: 42,3665           77775                           VLOAD                                          
040708,000038: 42,3666           00001                                    RATT                                  
040709,000039: 42,3667           00003                           STORE    RCM                                   #  MOVE RATT TO PREVENT WIPEOUT
040710,000040: 42,3670           45145                           DLOAD    CALL                                  #  MOON, PUSH ON
040711,000041: 42,3671           00015                                    TAT                                   #  GET ORIGINAL TIME
040712,000042: 42,3672           54115                                    LUNPOS                                #  COMPUTE POSITION VECTOR OF MOON
040713,000043: 42,3673           57455                           VAD      VCOMP                                 #  R= -(REM+RCM) = NEG. OF S/C POS. VEC
040714,000044: 42,3674           00003                                    RCM                                   
040715,000045: 42,3675           77650                           GOTO                                           
040716,000046: 42,3676           65701                                    EISOI      +2                         
040717,000047: 42,3677           57575        EISOI              VLOAD    VCOMP                                 #  EARTH, R= -RCM
040718,000048: 42,3700           00001                                    RATT                                  
040719,000049: 42,3701           64201                           SETPD    MXV                                   #  RCS TO STABLE MEMBER- B-1X B-29X B+1
040720,000050: 42,3702           00003                                    2D                                    #  2D
040721,000051: 42,3703           01736                                    REFSMMAT                              #  STABLE MEMBER.  B-1X B-29X B+1= B-29
040722,000052: 42,3704           65372                           VSL1     PDDL                                  #  8D
040723,000053: 42,3705           15335                                    HI6ZEROS                              
040724,000054: 42,3706           24025                           STOVL    YAWANG                                #  ZERO OUT YAWANG, SET UP FOR SMNB
040725,000055: 42,3707           00003                                    RCM                                   #  TRANSFORMATION.  SM COORD.  SCALED B-29
040726,000056: 42,3710           77624                           CALL                                           
040727,000057: 42,3711           47644                                    *SMNB*                                
040728,000058: 42,3712           00003                           STORE    R                                     #  SAVE NAV. BASE COORDINATES
040729,000059: 42,3713           63256                           UNIT     PDVL                                  #  14D
040730,000060: 42,3714           00003                                    R                                     
040731,000061: 42,3715           72431                           VPROJ    VSL2                                  #  COMPUTE PROJECTION OF VECTOR INTO CM
040732,000062: 42,3716           15327                                    HIUNITZ                               #  XY-PLANE, R-(R.UZ)UZ
040733,000063: 42,3717           40045                           BVSU     BOV                                   #  CLEAR OVERFLOW INDICATOR IF SET
040734,000064: 42,3720           00003                                    R                                     
040735,000065: 42,3721           65722                                    COVCNV                                
040736,000066: 42,3722           40056        COVCNV             UNIT     BOV                                   #  TEST OVERFLOW FOR INDICATION OF NULL
040737,000067: 42,3723           65737                                    NOADJUST                              #  VECTOR
040738,000068: 42,3724           50206                           PUSH     DOT                                   #  20D

Page 935

040740,000070: 42,3725           15333                                    HIUNITX                               #  COMPUTE YAW ANGLE = ACOS (URP.UX)
040741,000071: 42,3726           65552                           SL1      ACOS                                  #  REVOLUTIONS SCALED B0
040742,000072: 42,3727           50315                           PDVL     DOT                                   #  22D YAWANG
040743,000073: 42,3730           00017                                    URP                                   
040744,000074: 42,3731           15331                                    HIUNITY                               #  COMPUTE FOLLOWING- URP.UY
040745,000075: 42,3732           51152                           SL1      BPL                                   #  POSITIVE
040746,000076: 42,3733           65737                                    NOADJUST                              #  YES, 0-180 DEGREES
040747,000077: 42,3734           45345                           DLOAD    DSU                                   #  NO, 181-360 DEGREES 20D
040748,000078: 42,3735           15343                                    DPPOSMAX                              #  COMPUTE 2 PI MINUS YAW ANGLE
040749,000079: 42,3736           77606                           PUSH                                           #  22D YAWANG
040750,000080: 42,3737           50375        NOADJUST           VLOAD    DOT                                   #  COMPUTE PITCH ANGLE
040751,000081: 42,3740           00011                                    UR                                    #  ACOS (UR.UZ) - PI/2
040752,000082: 42,3741           15327                                    HIUNITZ                               
040753,000083: 42,3742           65552                           SL1      ACOS                                  #  REVOLUTIONS B0
040754,000084: 42,3743           77625                           DSU                                            
040755,000085: 42,3744           15325                                    HIDP1/4                               
040756,000086: 42,3745           16321                           STODL    RHOSB                                 
040757,000087: 42,3746           00025                                    YAWANG                                
040758,000088: 42,3747           02323                           STORE    GAMMASB                               #  PATCH FOR CHECKOUT
040759,000089: 42,3750           77776                           EXIT                                           
040760,000090: 42,3751           31044                           CA       EXTVBACT                              #  IS BIT 5 STILL ON
040761,000091: 42,3752           75013                           MASK     BIT5                                  
040762,000092: 42,3753           00006                           EXTEND                                         
040763,000093: 42,3754           15534                           BZF      ENDEXT                                #  NO, WE HAVE BEEN ANSWERED
040764,000094: 42,3755           33771                           CAF      V06N51                                #  DISPLAY ANGLES
040765,000095: 42,3756           04662                           TC       BANKCALL                              
040766,000096: 42,3757           20600                           CADR     GOMARKFR                              
040767,000097: 42,3760           05625                           TC       B5OFF                                 #  TERMINATE
040768,000098: 42,3761           05625                           TC       B5OFF                                 
040769,000099: 42,3762           05217                           TC       ENDOFJOB                              #  RECYCLE
040770,000100: 42,3763           35015                           CAF      BIT3                                  #  IMMEDIATE RETURN
040771,000101: 42,3764           05526                           TC       BLANKET                               #  BLANK R3
040772,000102: 42,3765           35017                           CAF      BIT1                                  #  DELAY MINIMUM TIME TO ALLOW DISPLAY IN
040773,000103: 42,3766           04662                           TC       BANKCALL                              
040774,000104: 42,3767           01732                           CADR     DELAYJOB                              
040775,000105: 42,3770           13654                           TCF      SBANDANT   +2                         
040776,000106: 42,3771           01463        V06N51             VN       0651                                  
040777,000107: 42,3772                        RCM                EQUALS   2D                                    
040778,000108: 42,3772                        UR                 EQUALS   8D                                    
040779,000109: 42,3772                        URP                EQUALS   14D                                   
040780,000110: 42,3772                        YAWANG             EQUALS   20D                                   
040781,000111: 42,3772                        PITCHANG           EQUALS   22D                                   
040782,000112: 42,3772  0000002               R                  EQUALS   RCM                                   
040783,000113: 42,3772  30,2000                                  SBANK=   LOWSUPER                              
040784,000114: 

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