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, 1968Note 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