Source Code
![]() |
These source-code files were obtained by digitally photographing the
Colossus 237 program listing from the private collection of original
AGC developer Fred Martin, and then modifying pre-existing Colossus 249
(Apollo 9) source files to incorporate changes. 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 |
039363,000002: # Copyright: Public domain.
039364,000003: # Filename: TVCMASSPROP.agc
039365,000004: # Purpose: Part of the source code for Colossus build 237.
039366,000005: # This is for the Command Module's (CM) Apollo Guidance
039367,000006: # Computer (AGC), we believe for Apollo 8.
039368,000007: # Assembler: yaYUL
039369,000008: # Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
039370,000009: # Website: www.ibiblio.org/apollo/index.html
039371,000010: # Page scans: www.ibiblio.org/apollo/ScansForConversion/Colossus237/
039372,000011: # Mod history: 2011-03-06 JL Adapted from corresponding Colossus 249 file.
039373,000012:
039374,000013: # # Page 908
039375,000014: # PROGRAM NAME....MASSPROP
039376,000015: # LOG SECTION....TVCMASSPROP PROGRAMMER...MELANSON (ENGEL , SCHLUNDT)
039377,000016:
039378,000017:
039379,000018: # FUNCTIONAL DESCRIPTION:
039380,000019:
039381,000020: # MASSPROP OPERATES IN TWO MODES:(1)IF LEM MASS OR CONFIGURATION ARE UPDATED (MASSPROP DOES NOT TEST
039382,000021: # FOR THIS) THE ENTIRE PROGRAM MUST BE RUN THROUGH, BREAKPOINT VALUES AND DERIVATIVES OF THE OUTPUTS WITH
039383,000022: # RESPECT TO CSM MASS BEING CALCULATED PRIOR TO CALCULATION OF THE OUTPUTS. (2)OTHERWISE, THE OUTPUTS CAN BE
039384,000023: # CALCULATED USING PREVIOUSLY COMPUTED BREAKPOINT VALUES AND DERIVATIVES.
039385,000024:
039386,000025: # CALLING SEQUENCES
039387,000026:
039388,000027: # IF LEM MASS OR CONFIGURATION HAS BEEN UPDATED, TRANSFER TO MASSPROP, OTHERWISE TRANSFER TO FIXCW.
039389,000028: # L TC BANKCALL OR IBNKCALL
039390,000029: # L+1 CADR MASSPROP
039391,000030: # OR
039392,000031: # L+1 CADR FIXCW
039393,000032:
039394,000033: # L+2 RETURNS VIA Q
039395,000034:
039396,000035: # CALLED IN PARTICULAR BY DONOUN47 (JOB) AND TVCEXECUTIVE (TASK)
039397,000036:
039398,000037: # JOBS OR TASKS INITIATED - NONE
039399,000038:
039400,000039: # SUBROUTINES CALLED - NONE
039401,000040:
039402,000041: # ERASABLE INITIALIZATION REQUIRED
039403,000042:
039404,000043: # LEMMASS MUST CONTAIN LEM MASS SCALED AT B+16 KILOGRAMS
039405,000044: # CSMMASS MUST CONTAIN CSM MASS SCALED AT B+16 KILOGRAMS
039406,000045:
039407,000046: # DAPDATR1 MUST BE SET TO INDICATE VEHICLE CONFIGURATION.
039408,000047: # BITS (15,14,13) = ( 0 , 0 , 1 ) LEM OFF
039409,000048: # ( 0 , 1 , 0 ) LEM ON (ASCNT,DSCNT)
039410,000049: # ( 1 , 1 , 0 ) LEM ON (ASCNT ONLY)
039411,000050:
039412,000051:
039413,000052: # ALARMS - NONE
039414,000053:
039415,000054: # EXIT - TC Q
039416,000055:
039417,000056: # OUTPUTS:
039418,000057:
039419,000058: # (1)IXX, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
039420,000059: # (2)IAVG, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
039421,000060: # (3)IAVG/TLX, SINGLE PRECISION, SCALED AT B+2 SEC-SQD
039422,000061: # THEY ARE STORED IN CONSECUTIVE REGISTERS IXX0, IXX1, IXX2
039423,000062:
039424,000063: # CONVERSION FACTOR : (SLUG-FTSQ) = 0.737562 (KG-MSQ)
039425,000064: # # Page 909
039426,000065: # OUTPUTS ARE CALCULATED AS FOLLOWS:
039427,000066:
039428,000067: # (1) IF LEM DOCKED, LEMMASS IS FIRST ELIMINATED AS A PARAMETER
039429,000068:
039430,000069: # VARST0 = INTVALUE0 + LEMMASS(SLOPEVAL0) IXX BREAKPOINT VALUE
039431,000070: # VARST1 = INTVALUE1 + LEMMASS(SLOPEVAL1) IAVG BREAKPOINT VALUE
039432,000071: # VARST2 = INTVALUE2 + LEMMASS(SLOPEVAL2) IAVG/TLX BREAKPOINT VALUE
039433,000072:
039434,000073: # VARST3 = INTVALUE3 + LEMMASS(SLOPEVAL3) IAVG/TLX SLOPE FOR CSMMASS > 33956 LBS ( SPS > 10000 LBS)
039435,000074: # VARST4 = INTVALUE4 + LEMMASS(SLOPEVAL4) IAVG SLOPE FOR CSMMASS > 33956 LBS ( SPS > 10000 LBS)
039436,000075:
039437,000076: # VARST5 = INTVALUE5 + LEMMASS(SLOPEVAL5) IXX SLOPE FOR ALL VALUES OF CSMMASS
039438,000077:
039439,000078: # VARST6 = INTVALUE6 + LEMMASS(SLOPEVAL6) IAVG SLOPE FOR CSMMASS < 33956 LBS ( SPS < 10000 LBS)
039440,000079: # VARST7 = INTVALUE7 + LEMMASS(SLOPEVAL7) IAVG/TLX SLOPE FOR CSMMASS < 33956 LBS ( SPS < 10000 LBS)
039441,000080:
039442,000081: # VARST8 = INTVALUE8 + LEMMASS(SLOPEVAL8) IAVG DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
039443,000082: # VARST9 = INTVALUE9 + LEMMASS(SLOPEVAL9) IAVG/TLX DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
039444,000083:
039445,000084:
039446,000085: # (2) IF LEM NOT DOCKED
039447,000086:
039448,000087: # VARST0 = NOLEMVAL0 WHERE THE MEANING AND SCALING OF VARST0
039449,000088: # . TO VARST9 ARE THE SAME AS GIVEN ABOVE
039450,000089: # .
039451,000090: # . NOTE... FOR THIS CASE, VARST8,9 HAVE NO
039452,000091: # VARST9 = NOLEMVAL9 MEANING (THEY ARE COMPUTED BUT NOT USED)
039453,000092:
039454,000093:
039455,000094: # (3) THE FINAL OUTPUT CALCULATIONS ARE THEN DONE
039456,000095:
039457,000096: # IXX0 = VARST0 + (CSMMASS + NEGBPW)VARST5 IXX
039458,000097:
039459,000098: # IXX1 = VARST1 + (CSMMASS + NEGBPW)VARST(4 OR 6) IAVG
039460,000099:
039461,000100: # IXX2 = VARST2 + (CSMMASS + NEGBPW)VARST(3 OR 7) IAVG/TLX
039462,000101:
039463,000102: # THE DATA USED CAME FROM CSM/LM SPACECRAFT OPERATIONAL DATA BOOK.
039464,000103: # VOL. 3, NASA DOCUMENT SNA-8-D-027 (MARCH 1968)
039465,000104:
039466,000105: # PERTINENT MASS DATA : CSM WEIGHT (FULL) 64100 LBS
039467,000106: # (EMPTY) 23956 LBS
039468,000107: # LEM WEIGHT (FULL) 32000 LBS
039469,000108: # (EMPTY) 14116 LBS
039470,000109:
039471,000110: # (WEIGHTS ARE FROM AMMENDMENT #1 (APRIL 24,1968) TO ABOVE DATA BOOK)
039472,000111:
039473,000112: # # Page 910
039474,000113: 25,3766 BANK 25
039475,000114: 05,2000 SETLOC DAPMASS
039476,000115: 05,2000 BANK
039477,000116: 05,3176 E6,1742 EBANK= BZERO
039478,000117: 05,3176 COUNT* $$/MASP
039479,000118:
039480,000119: 05,3176 34334 MASSPROP CAF NINE # MASSPROP USES TVC/RCS INTERUPT TEMPS
039481,000120: 05,3177 55506 TS PHI333 # SET UP TEN PASSES
039482,000121:
039483,000122: 05,3200 31466 LEMTEST CAE DAPDATR1 # DETERMINE LEM STATUS
039484,000123: 05,3201 74676 MASK BIT13
039485,000124: 05,3202 00006 EXTEND
039486,000125: 05,3203 13207 BZF LEMYES
039487,000126:
039488,000127: 05,3204 51506 LEMNO INDEX PHI333 # LEM NOT ATTACHED
039489,000128: 05,3205 33273 CAF NOLEMVAL
039490,000129: 05,3206 13217 TCF STOINST
039491,000130:
039492,000131: 05,3207 31473 LEMYES CAE LEMMASS # LEM IS ATTACHED
039493,000132: 05,3210 60000 DOUBLE
039494,000133: 05,3211 00006 EXTEND
039495,000134: 05,3212 51506 INDEX PHI333
039496,000135: 05,3213 73315 MP SLOPEVAL
039497,000136: 05,3214 20001 DDOUBL
039498,000137: 05,3215 51506 INDEX PHI333
039499,000138: 05,3216 63303 AD INTVALUE
039500,000139:
039501,000140: 05,3217 51506 STOINST INDEX PHI333 # STORAGE INST BEGIN HERE
039502,000141: 05,3220 55511 TS VARST0
039503,000142: 05,3221 11506 CCS PHI333 # ARE ALL TEN PASSES COMPLETED
039504,000143: 05,3222 13177 TCF MASSPROP +1 # NO - GO DECREMENT PHI333
039505,000144:
039506,000145: 05,3223 11466 DXTEST CCS DAPDATR1 # IF NEG, BIT15 IS 1, LEM DSCNT STAGE OFF
039507,000146: 05,3224 13232 TCF FIXCW
039508,000147: 05,3225 13232 TCF FIXCW
039509,000148: 05,3226 53522 DXCH VARST0 +8D
039510,000149: 05,3227 21513 DAS VARST0 +1
039511,000150: 05,3230 33330 CA DXITFIX
039512,000151: 05,3231 27520 ADS VARST0 +7
039513,000152:
039514,000153: 05,3232 34711 FIXCW CAF BIT2 # COMPUTATION PHASE BEGINS HERE. SET UP
039515,000154: 05,3233 55506 TS PHI333 # THREE PASSES
039516,000155: 05,3234 55507 TS PSI333
039517,000156:
039518,000157: 05,3235 31474 CAE CSMMASS # GET DELTA CSM WEIGHT - SIGN DETERMINES
039519,000158: 05,3236 63327 AD NEGBPW # SLOPE LOCATIONS.
039520,000159: 05,3237 60000 DOUBLE
039521,000160: 05,3240 55510 TS TEMP333
039522,000161: # # Page 911
039523,000162: 05,3241 00006 EXTEND
039524,000163: 05,3242 63245 BZMF PEGGY # DETERMINE CORRECT SLOPE
039525,000164: 05,3243 37715 CAF NEG2
039526,000165: 05,3244 55506 TS PHI333
039527,000166:
039528,000167: 05,3245 51506 PEGGY INDEX PHI333 # ALL IS READY - CALCULATE OUTPUTS NOW
039529,000168: 05,3246 31516 CAE VARST5 # GET SLOPE
039530,000169: 05,3247 00006 EXTEND
039531,000170: 05,3250 71510 MP TEMP333 # MULT BY DELTA CSM WEIGHT
039532,000171: 05,3251 60000 DOUBLE
039533,000172: 05,3252 51507 INDEX PSI333
039534,000173: 05,3253 61511 AD VARST0 # ADD BREAKPOINT VALUE
039535,000174: 05,3254 51507 INDEX PSI333
039536,000175: 05,3255 55470 TS IXX # ****** OUTPUTS (IXX0, IXX1, IXX2) ******
039537,000176:
039538,000177:
039539,000178: 05,3256 11507 CCS PSI333 # BOOKKEEPING - MASSPROP FINISHED OR NOT
039540,000179: 05,3257 13267 TCF BOKKEP2 # NO - GO TAKE CARE OF INDEXING REGISTERS
039541,000180:
039542,000181: 05,3260 31466 CAE DAPDATR1 # UPDATE WEIGHT/G
039543,000182: 05,3261 74675 MASK BIT14
039544,000183: 05,3262 10000 CCS A
039545,000184: 05,3263 31473 CA LEMMASS
039546,000185: 05,3264 61474 AD CSMMASS
039547,000186: 05,3265 55475 TS WEIGHT/G # SCALED AT B+16 KILOGRAMS
039548,000187: 05,3266 00002 ENDMASSP TC Q
039549,000188:
039550,000189: 05,3267 55507 BOKKEP2 TS PSI333 # REDUCE PSI BY ONE
039551,000190: 05,3270 00006 EXTEND
039552,000191: 05,3271 27506 DIM PHI333
039553,000192: 05,3272 13245 TCF PEGGY
039554,000193:
039555,000194: # # Page 912
039556,000195: 05,3273 00616 NOLEMVAL DEC 25445. B-20
039557,000196: 05,3274 02526 DEC 87450. B-20
039558,000197: 05,3275 02352 DEC .30715 B-2
039559,000198: 05,3276 01471 DEC 1.22877 E-5 B+12
039560,000199: 05,3277 00634 DEC 1.6096 B-6
039561,000200: 05,3300 00612 DEC 1.54 B-6
039562,000201: 05,3301 03706 DEC 7.77177 B-6
039563,000202: 05,3302 04425 DEC 3.46458 E-5 B+12
039564,000203:
039565,000204: 05,3303 00644 INTVALUE DEC 26850 B-20
039566,000205: 05,3304 03710 DEC 127518 B-20
039567,000206: 05,3305 04246 DEC .54059 B-2
039568,000207: 05,3306 02011 DEC .153964 E-4 B+12
039569,000208: 05,3307 77501 DEC -.742923 B-6
039570,000209: 05,3310 00612 DEC 1.5398 B-6
039571,000210: 05,3311 04656 DEC 9.68 B-6
039572,000211: 05,3312 10372 DEC .647625 E-4 B+12
039573,000212: 05,3313 77126 DEC -27228. B-20
039574,000213: 05,3314 76261 DEC -.206476 B-2
039575,000214:
039576,000215: 05,3315 00767 SLOPEVAL DEC 1.96307 B-6
039577,000216: 05,3316 15624 DEC 27.5774 B-6
039578,000217: 05,3317 03054 DEC 2.3548 E-5 B+12
039579,000218: 05,3320 04532 DEC 2.1777 E-9 B+26
039580,000219: 05,3321 10433 DEC 1.044 E-3 B+8
039581,000220: 05,3322 00000 DEC 0 B-14
039582,000221: 05,3323 22070 DEC 2.21068 E-3 B+8
039583,000222: 05,3324 03204 DEC 1.5166 E-9 B+26
039584,000223: 05,3325 77266 DEC -1.284 B-6
039585,000224: 05,3326 02476 DEC 2. E-5 B+12
039586,000225:
039587,000226: 05,3327 70364 NEGBPW DEC -15402.17 B-16
039588,000227: 05,3330 75420 DXITFIX DEC* -1.88275 E-5 B+12*
End of include-file TVCMASSPROP.agc. Parent file is MAIN.agc