Source Code

These source-code files were derived from scans of the Colossus 237 (Apollo 8 Command Module) program listing from the private collection of original AGC developer Fred Martin. Scanning was by Ron Burkey. Pre-existing Colossus 249 (Apollo 9 CM) source files were used as a template, and changes between Colossus 249 and Colossus 237 were manually transcribed by a team of volunteers. Note that the page images presented online are of reduced quality, and that additional images are available. Report any conversion errors or legibility problems in page images to info@sandroid.org. Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 237 OF AGC PROGRAM COLOSSUS 
	BY NASA 2021111-031  1:17 AUG. 24, 1968
Note that the date is the date of the printout, not the date of the program revision.

039560,000002:                                                                                                  ## Copyright:   Public domain.
039561,000003:                                                                                                  ## Filename:    TVCMASSPROP.agc
039562,000004:                                                                                                  ## Purpose:     Part of the source code for Colossus build 237.
039563,000005:                                                                                                  ##              This is for the Command Module's (CM) Apollo Guidance
039564,000006:                                                                                                  ##              Computer (AGC), for Apollo 8.
039565,000007:                                                                                                  ## Assembler:   yaYUL
039566,000008:                                                                                                  ## Contact:     Jim Lawton <jim DOT lawton AT gmail DOT com>
039567,000009:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
039568,000010:                                                                                                  ## Page Scans:  www.ibiblio.org/apollo/ScansForConversion/Colossus237/
039569,000011:                                                                                                  ## Mod history: 2011-03-06 JL   Adapted from corresponding Colossus 249 file.
039570,000012:                                                                                                  ##              2017-01-01 RSB  Proofed comment text using octopus/ProoferComments,
039571,000013:                                                                                                  ##                              and fixed errors found.
039572,000014: 

Page 908

039574,000016:                                                                                                  #  PROGRAM NAME....MASSPROP
039575,000017:                                                                                                  #  LOG SECTION....TVCMASSPROP      PROGRAMMER...MELANSON (ENGEL , SCHLUNDT)
039576,000018: 
039577,000019: 
039578,000020:                                                                                                  #  FUNCTIONAL DESCRIPTION:
039579,000021: 
039580,000022:                                                                                                  #       MASSPROP OPERATES IN TWO MODES:(1)IF LEM MASS OR CONFIGURATION ARE UPDATED (MASSPROP DOES NOT TEST
039581,000023:                                                                                                  #  FOR THIS) THE ENTIRE PROGRAM MUST BE RUN THROUGH, BREAKPOINT VALUES AND DERIVATIVES OF THE OUTPUTS WITH
039582,000024:                                                                                                  #  RESPECT TO CSM MASS BEING CALCULATED PRIOR TO CALCULATION OF THE OUTPUTS. (2)OTHERWISE, THE OUTPUTS CAN BE
039583,000025:                                                                                                  #  CALCULATED USING PREVIOUSLY COMPUTED BREAKPOINT VALUES AND DERIVATIVES.
039584,000026: 
039585,000027:                                                                                                  #  CALLING SEQUENCES
039586,000028: 
039587,000029:                                                                                                  #     IF LEM MASS OR CONFIGURATION HAS BEEN UPDATED, TRANSFER TO MASSPROP, OTHERWISE TRANSFER TO FIXCW.
039588,000030:                                                                                                  #           L      TC     BANKCALL OR IBNKCALL
039589,000031:                                                                                                  #           L+1    CADR   MASSPROP
039590,000032:                                                                                                  #                     OR
039591,000033:                                                                                                  #           L+1    CADR   FIXCW
039592,000034: 
039593,000035:                                                                                                  #           L+2    RETURNS VIA Q
039594,000036: 
039595,000037:                                                                                                  #  CALLED   IN PARTICULAR BY DONOUN47 (JOB) AND TVCEXECUTIVE (TASK)
039596,000038: 
039597,000039:                                                                                                  #  JOBS OR TASKS INITIATED - NONE
039598,000040: 
039599,000041:                                                                                                  #  SUBROUTINES CALLED - NONE
039600,000042: 
039601,000043:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED
039602,000044: 
039603,000045:                                                                                                  #       LEMMASS MUST CONTAIN LEM MASS SCALED AT B+16 IN KILOGRAMS
039604,000046:                                                                                                  #       CSMMASS MUST CONTAIN CSM MASS SCALED AT B+16 IN KILOGRAMS
039605,000047: 
039606,000048:                                                                                                  #       DAPDATR1 MUST BE SET TO INDICATE VEHICLE CONFIGURATION.
039607,000049:                                                                                                  #                BITS (15,14,13)  =  ( 0 , 0 , 1 )     LEM OFF
039608,000050:                                                                                                  #                                    ( 0 , 1 , 0 )     LEM ON (ASCNT,DSCNT)
039609,000051:                                                                                                  #                                    ( 1 , 1 , 0 )     LEM ON (ASCNT ONLY)
039610,000052: 
039611,000053: 
039612,000054:                                                                                                  #  ALARMS - NONE
039613,000055: 
039614,000056:                                                                                                  #  EXIT -   TC     Q
039615,000057: 
039616,000058:                                                                                                  #  OUTPUTS:
039617,000059: 
039618,000060:                                                                                                  #       (1)IXX, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
039619,000061:                                                                                                  #       (2)IAVG, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
039620,000062:                                                                                                  #       (3)IAVG/TLX, SINGLE PRECISION, SCALED AT B+2 SEC-SQD
039621,000063:                                                                                                  #       THEY ARE STORED IN CONSECUTIVE REGISTERS IXX0, IXX1, IXX2
039622,000064: 
039623,000065:                                                                                                  #       CONVERSION FACTOR :  (SLUG-FTSQ) = 0.737562 (KG-MSQ)

Page 909

039625,000067:                                                                                                  #  OUTPUTS ARE CALCULATED AS FOLLOWS:
039626,000068: 
039627,000069:                                                                                                  #   (1) IF LEM DOCKED, LEMMASS IS FIRST ELIMINATED AS A PARAMETER
039628,000070: 
039629,000071:                                                                                                  #       VARST0 = INTVALUE0 + LEMMASS(SLOPEVAL0)       IXX       BREAKPOINT VALUE
039630,000072:                                                                                                  #       VARST1 = INTVALUE1 + LEMMASS(SLOPEVAL1)       IAVG      BREAKPOINT VALUE
039631,000073:                                                                                                  #       VARST2 = INTVALUE2 + LEMMASS(SLOPEVAL2)       IAVG/TLX  BREAKPOINT VALUE
039632,000074: 
039633,000075:                                                                                                  #       VARST3 = INTVALUE3 + LEMMASS(SLOPEVAL3)       IAVG/TLX  SLOPE  FOR CSMMASS > 33956 LBS  ( SPS > 10000 LBS)
039634,000076:                                                                                                  #       VARST4 = INTVALUE4 + LEMMASS(SLOPEVAL4)       IAVG      SLOPE  FOR CSMMASS > 33956 LBS  ( SPS > 10000 LBS)
039635,000077: 
039636,000078:                                                                                                  #       VARST5 = INTVALUE5 + LEMMASS(SLOPEVAL5)       IXX       SLOPE  FOR ALL VALUES OF CSMMASS
039637,000079: 
039638,000080:                                                                                                  #       VARST6 = INTVALUE6 + LEMMASS(SLOPEVAL6)       IAVG      SLOPE  FOR CSMMASS < 33956 LBS ( SPS < 10000 LBS)
039639,000081:                                                                                                  #       VARST7 = INTVALUE7 + LEMMASS(SLOPEVAL7)       IAVG/TLX  SLOPE  FOR CSMMASS < 33956 LBS ( SPS < 10000 LBS)
039640,000082: 
039641,000083:                                                                                                  #       VARST8 = INTVALUE8 + LEMMASS(SLOPEVAL8)       IAVG      DECREMENT  TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
039642,000084:                                                                                                  #       VARST9 = INTVALUE9 + LEMMASS(SLOPEVAL9)       IAVG/TLX  DECREMENT  TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
039643,000085: 
039644,000086: 
039645,000087:                                                                                                  #   (2) IF LEM NOT DOCKED
039646,000088: 
039647,000089:                                                                                                  #       VARST0 = NOLEMVAL0    WHERE THE MEANING AND SCALING OF VARST0
039648,000090:                                                                                                  #          .          .       TO VARST9 ARE THE SAME AS GIVEN ABOVE
039649,000091:                                                                                                  #          .          .
039650,000092:                                                                                                  #          .          .       NOTE... FOR THIS CASE, VARST8,9 HAVE NO
039651,000093:                                                                                                  #       VARST9 = NOLEMVAL9    MEANING (THEY ARE COMPUTED BUT NOT USED)
039652,000094: 
039653,000095: 
039654,000096:                                                                                                  #   (3) THE FINAL OUTPUT CALCULATIONS ARE THEN DONE
039655,000097: 
039656,000098:                                                                                                  #       IXX0 =  VARST0 + (CSMMASS + NEGBPW)VARST5            IXX
039657,000099: 
039658,000100:                                                                                                  #       IXX1 =  VARST1 + (CSMMASS + NEGBPW)VARST(4 OR 6)     IAVG
039659,000101: 
039660,000102:                                                                                                  #       IXX2 =  VARST2 + (CSMMASS + NEGBPW)VARST(3 OR 7)     IAVG/TLX
039661,000103: 
039662,000104:                                                                                                  #  THE DATA USED CAME FROM CSM/LM SPACECRAFT OPERATIONAL DATA BOOK.
039663,000105:                                                                                                  #       VOL. 3, NASA DOCUMENT SNA-8-D-027 (MARCH 1968)
039664,000106: 
039665,000107:                                                                                                  #  PERTINENT MASS DATA :           CSM WEIGHT  (FULL)  64100 LBS
039666,000108:                                                                                                  #                                              (EMPTY) 23956 LBS
039667,000109:                                                                                                  #                                  LEM WEIGHT  (FULL)  32000 LBS
039668,000110:                                                                                                  #                                              (EMPTY) 14116 LBS
039669,000111: 
039670,000112:                                                                                                  #  (WEIGHTS ARE FROM AMENDMENT #1 (APRIL 24,1968) TO ABOVE DATA BOOK)
039671,000113: 

Page 910

039673,000115: 25,3766                                           BANK     25                                    
039674,000116: 05,2000                                           SETLOC   DAPMASS                               
039675,000117: 05,2000                                           BANK                                           
039676,000118: 05,3176  E6,1742                                  EBANK=   BZERO                                 
039677,000119: 05,3176                                           COUNT*   $$/MASP                               
039678,000120: 
039679,000121: 05,3176           34334        MASSPROP           CAF      NINE                                  #  MASSPROP USES TVC/RCS INTERUPT TEMPS
039680,000122: 05,3177           55506                           TS       PHI333                                #  SET UP TEN PASSES
039681,000123: 
039682,000124: 05,3200           31466        LEMTEST            CAE      DAPDATR1                              #  DETERMINE LEM STATUS
039683,000125: 05,3201           74676                           MASK     BIT13                                 
039684,000126: 05,3202           00006                           EXTEND                                         
039685,000127: 05,3203           13207                           BZF      LEMYES                                
039686,000128: 
039687,000129: 05,3204           51506        LEMNO              INDEX    PHI333                                #  LEM NOT ATTACHED
039688,000130: 05,3205           33273                           CAF      NOLEMVAL                              
039689,000131: 05,3206           13217                           TCF      STOINST                               
039690,000132: 
039691,000133: 05,3207           31473        LEMYES             CAE      LEMMASS                               #  LEM IS ATTACHED
039692,000134: 05,3210           60000                           DOUBLE                                         
039693,000135: 05,3211           00006                           EXTEND                                         
039694,000136: 05,3212           51506                           INDEX    PHI333                                
039695,000137: 05,3213           73315                           MP       SLOPEVAL                              
039696,000138: 05,3214           20001                           DDOUBL                                         
039697,000139: 05,3215           51506                           INDEX    PHI333                                
039698,000140: 05,3216           63303                           AD       INTVALUE                              
039699,000141: 
039700,000142: 05,3217           51506        STOINST            INDEX    PHI333                                #  STORAGE INST BEGIN HERE
039701,000143: 05,3220           55511                           TS       VARST0                                
039702,000144: 05,3221           11506                           CCS      PHI333                                #  ARE ALL TEN PASSES COMPLETED
039703,000145: 05,3222           13177                           TCF      MASSPROP   +1                         #  NO - GO DECREMENT PHI333
039704,000146: 
039705,000147: 05,3223           11466        DXTEST             CCS      DAPDATR1                              #  IF NEG, BIT15 IS 1, LEM DSCNT STAGE OFF
039706,000148: 05,3224           13232                           TCF      FIXCW                                 
039707,000149: 05,3225           13232                           TCF      FIXCW                                 
039708,000150: 05,3226           53522                           DXCH     VARST0     +8D                        
039709,000151: 05,3227           21513                           DAS      VARST0     +1                         
039710,000152: 05,3230           33330                           CA       DXITFIX                               
039711,000153: 05,3231           27520                           ADS      VARST0     +7                         
039712,000154: 
039713,000155: 05,3232           34711        FIXCW              CAF      BIT2                                  #  COMPUTATION PHASE BEGINS HERE.  SET UP
039714,000156: 05,3233           55506                           TS       PHI333                                #  THREE PASSES
039715,000157: 05,3234           55507                           TS       PSI333                                
039716,000158: 
039717,000159: 05,3235           31474                           CAE      CSMMASS                               #  GET DELTA CSM WEIGHT - SIGN DETERMINES
039718,000160: 05,3236           63327                           AD       NEGBPW                                #  SLOPE LOCATIONS.
039719,000161: 05,3237           60000                           DOUBLE                                         
039720,000162: 05,3240           55510                           TS       TEMP333                               

Page 911

039722,000164: 05,3241           00006                           EXTEND                                         
039723,000165: 05,3242           63245                           BZMF     PEGGY                                 #  DETERMINE CORRECT SLOPE
039724,000166: 05,3243           37715                           CAF      NEG2                                  
039725,000167: 05,3244           55506                           TS       PHI333                                
039726,000168: 
039727,000169: 05,3245           51506        PEGGY              INDEX    PHI333                                #  ALL IS READY - CALCULATE OUTPUTS NOW
039728,000170: 05,3246           31516                           CAE      VARST5                                #  GET SLOPE
039729,000171: 05,3247           00006                           EXTEND                                         
039730,000172: 05,3250           71510                           MP       TEMP333                               #  MULT BY DELTA CSM WEIGHT
039731,000173: 05,3251           60000                           DOUBLE                                         
039732,000174: 05,3252           51507                           INDEX    PSI333                                
039733,000175: 05,3253           61511                           AD       VARST0                                #  ADD BREAKPOINT VALUE
039734,000176: 05,3254           51507                           INDEX    PSI333                                
039735,000177: 05,3255           55470                           TS       IXX                                   #  ****** OUTPUTS (IXX0, IXX1, IXX2) ******
039736,000178: 
039737,000179: 
039738,000180: 05,3256           11507                           CCS      PSI333                                #  BOOKKEEPING  - MASSPROP FINISHED OR NOT
039739,000181: 05,3257           13267                           TCF      BOKKEP2                               #  NO - GO TAKE CARE OF INDEXING REGISTERS
039740,000182: 
039741,000183: 05,3260           31466                           CAE      DAPDATR1                              #  UPDATE WEIGHT/G
039742,000184: 05,3261           74675                           MASK     BIT14                                 
039743,000185: 05,3262           10000                           CCS      A                                     
039744,000186: 05,3263           31473                           CA       LEMMASS                               
039745,000187: 05,3264           61474                           AD       CSMMASS                               
039746,000188: 05,3265           55475                           TS       WEIGHT/G                              #  SCALED AT B+16 IN KILOGRAMS
039747,000189: 05,3266           00002        ENDMASSP           TC       Q                                     
039748,000190: 
039749,000191: 05,3267           55507        BOKKEP2            TS       PSI333                                #  REDUCE PSI BY ONE
039750,000192: 05,3270           00006                           EXTEND                                         
039751,000193: 05,3271           27506                           DIM      PHI333                                
039752,000194: 05,3272           13245                           TCF      PEGGY                                 
039753,000195: 

Page 912

039755,000197: 05,3273           00616        NOLEMVAL           DEC      25445.     B-20                       
039756,000198: 05,3274           02526                           DEC      87450.     B-20                       
039757,000199: 05,3275           02352                           DEC      .30715     B-2                        
039758,000200: 05,3276           01471                           DEC      1.22877    E-5        B+12            
039759,000201: 05,3277           00634                           DEC      1.6096     B-6                        
039760,000202: 05,3300           00612                           DEC      1.54       B-6                        
039761,000203: 05,3301           03706                           DEC      7.77177    B-6                        
039762,000204: 05,3302           04425                           DEC      3.46458    E-5        B+12            
039763,000205: 
039764,000206: 05,3303           00644        INTVALUE           DEC      26850      B-20                       
039765,000207: 05,3304           03710                           DEC      127518     B-20                       
039766,000208: 05,3305           04246                           DEC      .54059     B-2                        
039767,000209: 05,3306           02011                           DEC      .153964    E-4        B+12            
039768,000210: 05,3307           77501                           DEC      -.742923   B-6                        
039769,000211: 05,3310           00612                           DEC      1.5398     B-6                        
039770,000212: 05,3311           04656                           DEC      9.68       B-6                        
039771,000213: 05,3312           10372                           DEC      .647625    E-4        B+12            
039772,000214: 05,3313           77126                           DEC      -27228.    B-20                       
039773,000215: 05,3314           76261                           DEC      -.206476   B-2                        
039774,000216: 
039775,000217: 05,3315           00767        SLOPEVAL           DEC      1.96307    B-6                        
039776,000218: 05,3316           15624                           DEC      27.5774    B-6                        
039777,000219: 05,3317           03054                           DEC      2.3548     E-5        B+12            
039778,000220: 05,3320           04532                           DEC      2.1777     E-9        B+26            
039779,000221: 05,3321           10433                           DEC      1.044      E-3        B+8             
039780,000222: 05,3322           00000                           DEC      0          B-14                       
039781,000223: 05,3323           22070                           DEC      2.21068    E-3        B+8             
039782,000224: 05,3324           03204                           DEC      1.5166     E-9        B+26            
039783,000225: 05,3325           77266                           DEC      -1.284     B-6                        
039784,000226: 05,3326           02476                           DEC      2.         E-5        B+12            
039785,000227: 
039786,000228: 05,3327           70364        NEGBPW             DEC      -15402.17  B-16                       
039787,000229: 05,3330           75420        DXITFIX            DEC*     -1.88275   E-5        B+12*           

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