Source Code

These source-code files are part of a reconstructed copy of Comanche 051, the original release of the Apollo 11 Command Module (CM) Apollo Guidance Computer (AGC) software.

The reconstruction began with source code of Comanche 055 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes related to the R-2 lunar potential model, using hints from program comments and change-indicating asterisks in the Comanche 055 listing as a guide. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021153D. Note that page numbers in the reconstructed code match those on the Comanche 055 printout, although the added code would likely have changed page numbers for a real Comanche 051 listing.

Comments from 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.

041473,000002:                                                                                                  ## Copyright:   Public domain.
041474,000003:                                                                                                  ## Filename:    TVCMASSPROP.agc
041475,000004:                                                                                                  ## Purpose:     A section of Comanche revision 051.
041476,000005:                                                                                                  ##              It is part of the reconstructed source code for the
041477,000006:                                                                                                  ##              original release of the flight software for the Command
041478,000007:                                                                                                  ##              Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
041479,000008:                                                                                                  ##              The code has been recreated from a copy of Comanche 055. It
041480,000009:                                                                                                  ##              has been adapted such that the resulting bugger words
041481,000010:                                                                                                  ##              exactly match those specified for Comanche 51 in NASA drawing
041482,000011:                                                                                                  ##              2021153D, which gives relatively high confidence that the
041483,000012:                                                                                                  ##              reconstruction is correct.
041484,000013:                                                                                                  ## Reference:   pp. 951-955
041485,000014:                                                                                                  ## Assembler:   yaYUL
041486,000015:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
041487,000016:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
041488,000017:                                                                                                  ## Mod history: 2019-07-30 MAS  Created from Comanche 55.
041489,000018: 

Page 951

041491,000020:                                                                                                  #  PROGRAM NAME....MASSPROP
041492,000021:                                                                                                  #  LOG SECTION....TVCMASSPROP            PROGRAMMER...MELANSON (ENGEL, SCHLUNDT)
041493,000022: 
041494,000023:                                                                                                  #  FUNCTIONAL DESCRIPTION:
041495,000024: 
041496,000025:                                                                                                  #        MASSPROP OPERATES IN TWO MODES: (1) IF LEM MASS OR CONFIGURATION ARE UPDATED (MASSPROP DOES NOT TEST
041497,000026:                                                                                                  #        FOR THIS) THE ENTIRE PROGRAM MUST BE RUN THROUGH, BREAKPOINT VALUES AND DERIVATIVES OF THE OUTPUTS WITH
041498,000027:                                                                                                  #        RESPECT TO CSM MASS BEING CALCULATED PRIOR TO CALCULATION OF THE OUTPUTS.  (2) OTHERWISE, THE OUTPUTS CAN BE
041499,000028:                                                                                                  #        CALCULATED USING PREVIOUSLY COMPUTED BREAKPOINT VALUES AND DERIVATIVES.
041500,000029: 
041501,000030:                                                                                                  #  CALLING SEQUENCES
041502,000031: 
041503,000032:                                                                                                  #        IF LEM MASS OR CONFIGURATION HAS BEEN UPDATED, TRANSFER TO MASSPROP, OTHERWISE TRANSFER TO FIXCW.
041504,000033:                                                                                                  #                L       TC      BANKCALL OR IBNKCALL
041505,000034:                                                                                                  #                L+1     CADR    MASSPROP
041506,000035:                                                                                                  #                        OR
041507,000036:                                                                                                  #                L+1     CADR    FIXCW
041508,000037:                                                                                                  #                L+2     RETURNS VIA Q
041509,000038: 
041510,000039:                                                                                                  #  CALLED   IN PARTICULAR BY DONOUN47 (JOB) AND TVCEXECUTIVE (TASK)
041511,000040: 
041512,000041:                                                                                                  #  JOBS OR TASKS INITIATED - NONE
041513,000042: 
041514,000043:                                                                                                  #  SUBROUTINES CALLED - NONE
041515,000044: 
041516,000045:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED
041517,000046: 
041518,000047:                                                                                                  #        LEMMASS MUST CONTAIN LEM MASS SCALED AT B+16 IN KILOGRAMS
041519,000048:                                                                                                  #        CSMMASS MUST CONTAIN CSM MASS SCALED AT B+16 IN KILOGRAMS
041520,000049:                                                                                                  #        DAPDATR1 MUST BE SET TO INDICATE VEHICLE CONFIGURATION.
041521,000050:                                                                                                  #                BITS (15,14,13)  =  ( 0 , 0 , 1 )       LEM OFF
041522,000051:                                                                                                  #                                    ( 0 , 1 , 0 )       LEM ON (ASCNT,DSCNT)
041523,000052:                                                                                                  #                                    ( 1 , 1 , 0 )       LEM ON (ASCNT ONLY)
041524,000053: 
041525,000054:                                                                                                  #  ALARMS - NONE
041526,000055: 
041527,000056:                                                                                                  #  EXIT -   TC   Q
041528,000057: 
041529,000058:                                                                                                  #  OUTPUTS:
041530,000059: 
041531,000060:                                                                                                  #        (1)     IXX, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
041532,000061:                                                                                                  #        (2)     IAVG, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
041533,000062:                                                                                                  #        (3)     IAVG/TLX, SINGLE PRECISION, SCALED AT B+2 SEC-SQD
041534,000063:                                                                                                  #        
041535,000064:                                                                                                  #        THEY ARE STORED IN CONSECUTIVE REGISTERS IXX0, IXX1, IXX2
041536,000065:                                                                                                  #        CONVERSION FACTOR:  (SLUG-FTSQ) = 0.737562 (KG-MSQ)

Page 952

041538,000067: 
041539,000068:                                                                                                  #  OUTPUTS ARE CALCULATED AS FOLLOWS:
041540,000069: 
041541,000070:                                                                                                  #        (1)     IF LEM DOCKED, LEMMASS IS FIRST ELIMINATED AS A PARAMETER
041542,000071: 
041543,000072:                                                                                                  #                VARST0 = INTVALUE0 + LEMMASS(SLOPEVAL0)         IXX             BREAKPOINT VALUE
041544,000073:                                                                                                  #                VARST1 = INTVALUE1 + LEMMASS(SLOPEVAL1)         IAVG            BREAKPOINT VALUE
041545,000074:                                                                                                  #                VARST2 = INTVALUE2 + LEMMASS(SLOPEVAL2)         IAVG/TLX        BREAKPOINT VALUE
041546,000075: 
041547,000076:                                                                                                  #                VARST3 = INTVALUE3 + LEMMASS(SLOPEVAL3)         IAVG/TLX        SLOPE FOR CSMMASS > 33956 LBS (SPS > 10000 LBS)
041548,000077:                                                                                                  #                VARST4 = INTVALUE4 + LEMMASS(SLOPEVAL4)         IAVG            SLOPE FOR CSMMASS > 33956 LBS (SPS > 10000 LBS)
041549,000078: 
041550,000079:                                                                                                  #                VARST5 = INTVALUE5 + LEMMASS(SLOPEVAL5)         IXX             SLOPE FOR ALL VALUES OF CSMMASS
041551,000080: 
041552,000081:                                                                                                  #                VARST6 = INTVALUE6 + LEMMASS(SLOPEVAL6)         IAVG            SLOPE FOR CSMMASS < 33956 LBS (SPS < 10000 LBS)
041553,000082:                                                                                                  #                VARST7 = INTVALUE7 + LEMMASS(SLOPEVAL7)         IAVG/TLX        SLOPE FOR CSMMASS < 33956 LBS (SPS < 10000 LBS)
041554,000083: 
041555,000084:                                                                                                  #                VARST8 = INTVALUE8 + LEMMASS(SLOPEVAL8)         IAVG            DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
041556,000085:                                                                                                  #                VARST9 = INTVALUE9 + LEMMASS(SLOPEVAL9)         IAVG/TLX        DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
041557,000086: 
041558,000087:                                                                                                  #        (2)     IF LEM NOT DOCKED
041559,000088: 
041560,000089:                                                                                                  #                VARST0 = NOLEMVAL0      WHERE THE MEANING AND SCALING OF VARST0
041561,000090:                                                                                                  #                   .          .         TO VARST9 ARE THE SAME AS GIVEN ABOVE
041562,000091:                                                                                                  #                   .          .
041563,000092:                                                                                                  #                   .          .         NOTE... FOR THIS CASE, VARST8,9 HAVE NO
041564,000093:                                                                                                  #                VARST9 = NOLEMVAL9      MEANING (THEY ARE COMPUTED BUT NOT USED)
041565,000094: 
041566,000095:                                                                                                  #        (3)     THE FINAL OUTPUT CALCULATIONS ARE THEN DONE
041567,000096: 
041568,000097:                                                                                                  #                IXX0 = VARST0 + (CSMMASS + NEGBPW)VARST5                IXX
041569,000098: 
041570,000099:                                                                                                  #                IXX1 = VARST1 + (CSMMASS + NEGBPW)VARST(4 OR 6)         IAVG
041571,000100: 
041572,000101:                                                                                                  #                IXX2 = VARST2 + (CSMMASS + NEGBPW)VARST(3 OR 7)         IAVG/TLX
041573,000102: 
041574,000103:                                                                                                  #        THE DATA USED CAME FROM CSM/LM SPACECRAFT OPERATIONAL DATA BOOK.
041575,000104:                                                                                                  #                VOL. 3, NASA DOCUMENT SNA-8-D-027 (MARCH 1968)
041576,000105: 
041577,000106:                                                                                                  #        PERTINENT MASS DATA:            CSM WEIGHT      (FULL)  64100 LBS
041578,000107:                                                                                                  #                                                        (EMPTY) 23956 LBS
041579,000108:                                                                                                  #                                        LEM WEIGHT      (FULL)  32000 LBS
041580,000109:                                                                                                  #                                                        (EMPTY) 14116 LBS
041581,000110: 
041582,000111:                                                                                                  #        (WEIGHTS ARE FROM AMENDMENT #1 (APRIL 24, 1968) TO ABOVE DATA BOOK)

Page 953

041584,000113: 
041585,000114: 25,3774                                           BANK     25                                    
041586,000115: 05,2000                                           SETLOC   DAPMASS                               
041587,000116: 05,2000                                           BANK                                           
041588,000117: 05,3366  E6,1702                                  EBANK=   BZERO                                 
041589,000118: 05,3366                                           COUNT*   $$/MASP                               
041590,000119: 
041591,000120: 05,3366           34334        MASSPROP           CAF      NINE                                  #  MASSPROP USES TVC/RCS INTERUPT TEMPS
041592,000121: 05,3367           55506                           TS       PHI333                                #  SET UP TEN PASSES
041593,000122: 
041594,000123: 05,3370           31466        LEMTEST            CAE      DAPDATR1                              #  DETERMINE LEM STATUS
041595,000124: 05,3371           75003                           MASK     BIT13                                 
041596,000125: 05,3372           00006                           EXTEND                                         
041597,000126: 05,3373           13377                           BZF      LEMYES                                
041598,000127: 
041599,000128: 05,3374           51506        LEMNO              INDEX    PHI333                                #  LEM NOT ATTACHED
041600,000129: 05,3375           33463                           CAF      NOLEMVAL                              
041601,000130: 05,3376           13407                           TCF      STOINST                               
041602,000131: 
041603,000132: 05,3377           31473        LEMYES             CAE      LEMMASS                               #  LEM IS ATTACHED
041604,000133: 05,3400           60000                           DOUBLE                                         
041605,000134: 05,3401           00006                           EXTEND                                         
041606,000135: 05,3402           51506                           INDEX    PHI333                                
041607,000136: 05,3403           73505                           MP       SLOPEVAL                              
041608,000137: 05,3404           20001                           DDOUBL                                         
041609,000138: 05,3405           51506                           INDEX    PHI333                                
041610,000139: 05,3406           63473                           AD       INTVALUE                              
041611,000140: 
041612,000141: 05,3407           51506        STOINST            INDEX    PHI333                                #  STORAGE INST BEGIN HERE
041613,000142: 05,3410           55511                           TS       VARST0                                
041614,000143: 05,3411           11506                           CCS      PHI333                                #  ARE ALL TEN PASSES COMPLETED
041615,000144: 05,3412           13367                           TCF      MASSPROP   +1                         #  NO - GO DECREMENT PHI333
041616,000145: 
041617,000146: 05,3413           11466        DXTEST             CCS      DAPDATR1                              #  IF NEG, BIT15 IS 1, LEM DSCNT STAGE OFF
041618,000147: 05,3414           13422                           TCF      FIXCW                                 
041619,000148: 05,3415           13422                           TCF      FIXCW                                 
041620,000149: 05,3416           53522                           DXCH     VARST0     +8D                        
041621,000150: 05,3417           21513                           DAS      VARST0     +1                         
041622,000151: 05,3420           33520                           CA       DXITFIX                               
041623,000152: 05,3421           27520                           ADS      VARST0     +7                         
041624,000153: 
041625,000154: 05,3422           35016        FIXCW              CAF      BIT2                                  #  COMPUTATION PHASE BEGINS HERE. SET UP
041626,000155: 05,3423           55506                           TS       PHI333                                #  THREE PASSES
041627,000156: 05,3424           55507                           TS       PSI333                                
041628,000157: 
041629,000158: 05,3425           31474                           CAE      CSMMASS                               #  GET DELTA CSM WEIGHT - SIGN DETERMINES
041630,000159: 05,3426           63517                           AD       NEGBPW                                #  SLOPE LOCATIONS.
041631,000160: 05,3427           60000                           DOUBLE                                         
041632,000161: 05,3430           55510                           TS       TEMP333                               

Page 954

041634,000163: 05,3431           00006                           EXTEND                                         
041635,000164: 05,3432           63435                           BZMF     PEGGY                                 #  DETERMINE CORRECT SLOPE
041636,000165: 05,3433           37715                           CAF      NEG2                                  
041637,000166: 05,3434           55506                           TS       PHI333                                
041638,000167: 
041639,000168: 05,3435           51506        PEGGY              INDEX    PHI333                                #  ALL IS READY - CALCULATE OUTPUTS NOW
041640,000169: 05,3436           31516                           CAE      VARST5                                #  GET SLOPE
041641,000170: 05,3437           00006                           EXTEND                                         
041642,000171: 05,3440           71510                           MP       TEMP333                               #  MULT BY DELTA CSM WEIGHT
041643,000172: 05,3441           60000                           DOUBLE                                         
041644,000173: 05,3442           51507                           INDEX    PSI333                                
041645,000174: 05,3443           61511                           AD       VARST0                                #  ADD BREAKPOINT VALUE
041646,000175: 05,3444           51507                           INDEX    PSI333                                
041647,000176: 05,3445           55470                           TS       IXX                                   #  ****** OUTPUTS (IXX0, IXX1, IXX2) ******
041648,000177: 
041649,000178: 05,3446           11507                           CCS      PSI333                                #  BOOKKEEPING - MASSPROP FINISHED OR NOT
041650,000179: 05,3447           13457                           TCF      BOKKEP2                               #  NO - GO TAKE CARE OF INDEXING REGISTERS
041651,000180: 
041652,000181: 05,3450           31466                           CAE      DAPDATR1                              #  UPDATE WEIGHT/G
041653,000182: 05,3451           75002                           MASK     BIT14                                 
041654,000183: 05,3452           10000                           CCS      A                                     
041655,000184: 05,3453           31473                           CA       LEMMASS                               
041656,000185: 05,3454           61474                           AD       CSMMASS                               
041657,000186: 05,3455           55475                           TS       WEIGHT/G                              #  SCALED AT B+16 IN KILOGRAMS
041658,000187: 05,3456           00002        ENDMASSP           TC       Q                                     
041659,000188: 
041660,000189: 05,3457           55507        BOKKEP2            TS       PSI333                                #  REDUCE PSI BY ONE
041661,000190: 05,3460           00006                           EXTEND                                         
041662,000191: 05,3461           27506                           DIM      PHI333                                
041663,000192: 05,3462           13435                           TCF      PEGGY                                 
041664,000193: 

Page 955

041666,000195: 05,3463           00616        NOLEMVAL           DEC      25445      B-20                       
041667,000196: 05,3464           02526                           DEC      87450      B-20                       
041668,000197: 05,3465           02352                           DEC      .30715     B-2                        
041669,000198: 05,3466           01471                           DEC      1.22877    E-5        B+12            
041670,000199: 05,3467           00634                           DEC      1.6096     B-6                        
041671,000200: 05,3470           00612                           DEC      1.54       B-6                        
041672,000201: 05,3471           03706                           DEC      7.77177    B-6                        
041673,000202: 05,3472           04425                           DEC      3.46458    E-5        B+12            
041674,000203: 
041675,000204: 05,3473           00644        INTVALUE           DEC      26850      B-20                       
041676,000205: 05,3474           03710                           DEC      127518     B-20                       
041677,000206: 05,3475           04246                           DEC      .54059     B-2                        
041678,000207: 05,3476           02011                           DEC      .153964    E-4        B+12            
041679,000208: 05,3477           77501                           DEC      -.742923   B-6                        
041680,000209: 05,3500           00612                           DEC      1.5398     B-6                        
041681,000210: 05,3501           04656                           DEC      9.68       B-6                        
041682,000211: 05,3502           10372                           DEC      .647625    E-4        B+12            
041683,000212: 05,3503           77126                           DEC      -27228     B-20                       
041684,000213: 05,3504           76261                           DEC      -.206476   B-2                        
041685,000214: 
041686,000215: 05,3505           00767        SLOPEVAL           DEC      1.96307    B-6                        
041687,000216: 05,3506           15624                           DEC      27.5774    B-6                        
041688,000217: 05,3507           03054                           DEC      2.3548     E-5        B+12            
041689,000218: 05,3510           04532                           DEC      2.1777     E-9        B+26            
041690,000219: 05,3511           10433                           DEC      1.044      E-3        B+8             
041691,000220: 05,3512           00000                           DEC      0          B-14                       
041692,000221: 05,3513           22070                           DEC      2.21068    E-3        B+8             
041693,000222: 05,3514           03204                           DEC      1.5166     E-9        B+26            
041694,000223: 05,3515           77266                           DEC      -1.284     B-6                        
041695,000224: 05,3516           02476                           DEC      2          E-5        B+12            
041696,000225: 
041697,000226: 05,3517           70364        NEGBPW             DEC      -15402.17  B-16                       
041698,000227: 05,3520           75420        DXITFIX            DEC*     -1.88275   E-5        B+12*           
041699,000228: 

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