Source Code
040227,000001: # Copyright: Public domain.
040228,000002: # Filename: TVCMASSPROP.agc
040229,000003: # Purpose: Part of the source code for Colossus, build 249.
040230,000004: # It is part of the source code for the Command Module's (CM)
040231,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9.
040232,000006: # Assembler: yaYUL
040233,000007: # Reference: Begins on p. 915 of 1701.pdf.
040234,000008: # Contact: Ron Burkey <info@sandroid.org>.
040235,000009: # Website: www.ibiblio.org/apollo/index.html
040236,000010: # Mod history: 08/23/04 RSB. Began transcribing.
040237,000011: # 05/14/05 RSB. Corrected website reference above.
040238,000012:
040239,000013: # The contents of the "Colossus249" files, in general, are transcribed
040240,000014: # from a scanned document obtained from MIT's website,
040241,000015: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this
040242,000016: # document read, in part:
040243,000017:
040244,000018: # Assemble revision 249 of AGC program Colossus by NASA
040245,000019: # 2021111-041. October 28, 1968.
040246,000020:
040247,000021: # This AGC program shall also be referred to as
040248,000022: # Colossus 1A
040249,000023:
040250,000024: # Prepared by
040251,000025: # Massachusetts Institute of Technology
040252,000026: # 75 Cambridge Parkway
040253,000027: # Cambridge, Massachusetts
040254,000028: # under NASA contract NAS 9-4065.
040255,000029:
040256,000030: # Refer directly to the online document mentioned above for further information.
040257,000031: # Please report any errors (relative to 1701.pdf) to info@sandroid.org.
040258,000032:
040259,000033: # In some cases, where the source code for Luminary 131 overlaps that of
040260,000034: # Colossus 249, this code is instead copied from the corresponding Luminary 131
040261,000035: # source file, and then is proofed to incorporate any changes.
040262,000036:
040263,000037: # Page 915
040264,000038: # PROGRAM NAME....MASSPROP
040265,000039: # LOG SECTION....TVCMASSPROP PROGRAMMER...MELANSON (ENGEL, SCHLUNDT)
040266,000040:
040267,000041: # FUNCTIONAL DESCRIPTION:
040268,000042:
040269,000043: # MASSPROP OPERATES IN TWO MODES: (1) IF LEM MASS OR CONFIGURATION ARE UPDATED (MASSPROP DOES NOT TEST
040270,000044: # FOR THIS) THE ENTIRE PROGRAM MUST BE RUN THROUGH, BREAKPOINT VALUES AND DERIVATIVES OF THE OUTPUTS WITH
040271,000045: # RESPECT TO CSM MASS BEING CALCULATED PRIOR TO CALCULATION OF THE OUTPUTS. (2) OTHERWISE, THE OUTPUTS CAN BE
040272,000046: # CALCULATED USING PREVIOUSLY COMPUTED BREAKPOINT VALUES AND DERIVATIVES.
040273,000047:
040274,000048: # CALLING SEQUENCES
040275,000049:
040276,000050: # IF LEM MASS OR CONFIGURATION HAS BEEN UPDATED, TRANSFER TO MASSPROP, OTHERWISE TRANSFER TO FIXCW.
040277,000051: # L TC BANKCALL or IBNKCALL
040278,000052: # L+1 CADR MASSPROP
040279,000053: # or
040280,000054: # L+1 CADR FIXCW
040281,000055: # L+2 RETURNS VIA Q
040282,000056:
040283,000057: # CALLED: IN PARTICULAR BY DONOUN47 (JOB) AND TVCEXECUTIVE (TASK)
040284,000058:
040285,000059: # JOBS OR TASKS INITIATED: NONE
040286,000060:
040287,000061: # SUBROUTINES CALLED: NONE
040288,000062:
040289,000063: # ERASABLE INITIALIZATION REQUIRED
040290,000064:
040291,000065: # LEMMASS MUST CONTAIN LEM MASS SCALED AT B+16 KILOGRAMS
040292,000066: # CSMMASS MUST CONTAIN CSM MASS SCALED AT B+16 KILOGRAMS
040293,000067: # DAPDATR1 MUST BE SET TO INDICATE VEHICLE CONFIGURATION.
040294,000068: # BITS (15,14,13) = ( 0 , 0 , 1 ) LEM OFF
040295,000069: # ( 0 , 1 , 0 ) LEM ON (ASCNT,DSCNT)
040296,000070: # ( 1 , 1 , 0 ) LEM ON (ASCNT ONLY)
040297,000071:
040298,000072: # ALARMS: NONE
040299,000073:
040300,000074: # EXIT: TC Q
040301,000075:
040302,000076: # OUTPUTS:
040303,000077:
040304,000078: # (1) IXX, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
040305,000079: # (2) IAVG, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
040306,000080: # (3) IAVG/TLX, SINGLE PRECISION, SCALED AT B+2 SEC-SQD
040307,000081: #
040308,000082: # THEY ARE STORED IN CONSECUTIVE REGISTERS IXX0, IXX1, IXX2
040309,000083: # CONVERSION FACTOR: (SLUG-FTSQ) = 0.737562 (KG-MSQ)
040310,000084: # Page 916
040311,000085:
040312,000086: # OUTPUTS ARE CALCULATED AS FOLLOWS:
040313,000087:
040314,000088: # (1) IF LEM DOCKED, LEMMASS IS FIRST ELIMINATED AS A PARAMETER
040315,000089:
040316,000090: # VARST0 = INTVALUE0 + LEMMASS(SLOPEVAL0) IXX BREAKPOINT VALUE
040317,000091: # VARST1 = INTVALUE1 + LEMMASS(SLOPEVAL1) IAVG BREAKPOINT VALUE
040318,000092: # VARST2 = INTVALUE2 + LEMMASS(SLOPEVAL2) IAVG/TLX BREAKPOINT VALUE
040319,000093:
040320,000094: # VARST3 = INTVALUE3 + LEMMASS(SLOPEVAL3) IAVG/TLX SLOPE FOR CSMMASS > 33956 LBS (SPS > 10000 LBS)
040321,000095: # VARST4 = INTVALUE4 + LEMMASS(SLOPEVAL4) IAVG SLOPE FOR CSMMASS > 33956 LBS (SPS > 10000 LBS)
040322,000096:
040323,000097: # VARST5 = INTVALUE5 + LEMMASS(SLOPEVAL5) IXX SLOPE FOR ALL VALUES OF CSMMASS
040324,000098:
040325,000099: # VARST6 = INTVALUE6 + LEMMASS(SLOPEVAL6) IAVG SLOPE FOR CSMMASS < 33956 LBS (SPS < 10000 LBS)
040326,000100: # VARST7 = INTVALUE7 + LEMMASS(SLOPEVAL7) IAVG/TLX SLOPE FOR CSMMASS < 33956 LBS (SPS < 10000 LBS)
040327,000101:
040328,000102: # VARST8 = INTVALUE8 + LEMMASS(SLOPEVAL8) IAVG DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
040329,000103: # VARST9 = INTVALUE9 + LEMMASS(SLOPEVAL9) IAVG/TLX DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
040330,000104:
040331,000105: # (2) IF LEM NOT DOCKED
040332,000106:
040333,000107: # VARST0 = NOLEMVAL0 WHERE THE MEANING AND SCALING OF VARST0
040334,000108: # . TO VARST9 ARE THE SAME AS GIVEN ABOVE
040335,000109: # .
040336,000110: # . NOTE... FOR THIS CASE, VARST8,9 HAVE NO
040337,000111: # VARST9 = NOLEMVAL9 MEANING (THEY ARE COMPUTED BUT NOT USED)
040338,000112:
040339,000113: # (3) THE FINAL OUTPUT CALCULATIONS ARE THEN DONE
040340,000114:
040341,000115: # IXX0 = VARST0 + (CSMMASS + NEGBPW)VARST5 IXX
040342,000116:
040343,000117: # IXX1 = VARST1 + (CSMMASS + NEGBPW)VARST(4 OR 6) IAVG
040344,000118:
040345,000119: # IXX2 = VARST2 + (CSMMASS + NEGBPW)VARST(3 OR 7) IAVG/TLX
040346,000120:
040347,000121: # THE DATA USED CAME FROM THE CSM/LM SPACECRAFT OPERATIONAL DATA BOOK
040348,000122: # VOL. 3, NASA DOCUMENT SNA-8-D-027 (MARCH 1968)
040349,000123:
040350,000124: # PERTINENT MASS DATA: CSM WEIGHT (FULL) 64100 LBS.
040351,000125: # (EMPTY) 23956 LBS.
040352,000126: # LEM WEIGHT (FULL) 32000 LBS.
040353,000127: # (EMPTY) 14116 LBS.
040354,000128:
040355,000129: # (WEIGHTS ARE FROM AMMENDMENT ?1 (APRIL 24, 1968) TO ABOVE DATA BOOK)
040356,000130: # Page 917
040357,000131:
040358,000132: 25,3766 BANK 25
040359,000133: 05,2000 SETLOC DAPMASS
040360,000134: 05,2000 BANK
040361,000135: 05,3207 E6,1742 EBANK= BZERO
040362,000136: 05,3207 COUNT* $$/MASP
040363,000137:
040364,000138: 05,3207 34334 MASSPROP CAF NINE # MASSPROP USES TVC/RCS INTERRUPT TEMPS
040365,000139: 05,3210 55506 TS PHI333 # SET UP TEN PASSES
040366,000140:
040367,000141: 05,3211 31466 LEMTEST CAE DAPDATR1 # DETERMINE LEM STATUS
040368,000142: 05,3212 74676 MASK BIT13
040369,000143: 05,3213 00006 EXTEND
040370,000144: 05,3214 13220 BZF LEMYES
040371,000145:
040372,000146: 05,3215 51506 LEMNO INDEX PHI333 # LEM NOT ATTACHED
040373,000147: 05,3216 33304 CAF NOLEMVAL
040374,000148: 05,3217 13230 TCF STOINST
040375,000149:
040376,000150: 05,3220 31473 LEMYES CAE LEMMASS # LEM IS ATTACHED
040377,000151: 05,3221 60000 DOUBLE
040378,000152: 05,3222 00006 EXTEND
040379,000153: 05,3223 51506 INDEX PHI333
040380,000154: 05,3224 73326 MP SLOPEVAL
040381,000155: 05,3225 20001 DDOUBL
040382,000156: 05,3226 51506 INDEX PHI333
040383,000157: 05,3227 63314 AD INTVALUE
040384,000158:
040385,000159: 05,3230 51506 STOINST INDEX PHI333 # STORAGE INST BEGIN HERE
040386,000160: 05,3231 55511 TS VARST0
040387,000161: 05,3232 11506 CCS PHI333 # ARE ALL TEN PASSES COMPLETED
040388,000162: 05,3233 13210 TCF MASSPROP +1 # NO: GO DECREMENT PHI333
040389,000163:
040390,000164: 05,3234 11466 DXTEST CCS DAPDATR1 # IF NEG, BIT15 IS 1, LEM DSCNT STAGE OFF
040391,000165: 05,3235 13243 TCF FIXCW
040392,000166: 05,3236 13243 TCF FIXCW
040393,000167: 05,3237 53522 DXCH VARST0 +8D
040394,000168: 05,3240 21513 DAS VARST0 +1
040395,000169: 05,3241 33341 CA DXITFIX
040396,000170: 05,3242 27520 ADS VARST0 +7
040397,000171:
040398,000172: 05,3243 34711 FIXCW CAF BIT2 # COMPUTATION PHASE BEGINS HERE. SET UP
040399,000173: 05,3244 55506 TS PHI333 # THREE PASSES
040400,000174: 05,3245 55507 TS PSI333
040401,000175:
040402,000176: 05,3246 31474 CAE CSMMASS # GET DELTA CSM WEIGHT: SIGN DETERMINES
040403,000177: 05,3247 63340 AD NEGBPW # SLOPE LOCATIONS.
040404,000178: 05,3250 60000 DOUBLE
040405,000179: 05,3251 55510 TS TEMP333
040406,000180: # Page 918
040407,000181: 05,3252 00006 EXTEND
040408,000182: 05,3253 63256 BZMF PEGGY # DETERMINE CORRECT SLOPE
040409,000183: 05,3254 37715 CAF NEG2
040410,000184: 05,3255 55506 TS PHI333
040411,000185:
040412,000186: 05,3256 51506 PEGGY INDEX PHI333 # ALL IS READY: CALCULATE OUTPUTS NOW
040413,000187: 05,3257 31516 CAE VARST5 # GET SLOPE
040414,000188: 05,3260 00006 EXTEND
040415,000189: 05,3261 71510 MP TEMP333 # MULT BY DELTA CSM WEIGHT
040416,000190: 05,3262 60000 DOUBLE
040417,000191: 05,3263 51507 INDEX PSI333
040418,000192: 05,3264 61511 AD VARST0 # ADD BREAKPOINT VALUE
040419,000193: 05,3265 51507 INDEX PSI333
040420,000194: 05,3266 55470 TS IXX # ***** OUTPUTS (IXX0, IXX1, IXX2) *****
040421,000195: 05,3267 11507 CCS PSI333 # BOOKKEEPING: MASSPROP FINISHED OR NOT
040422,000196: 05,3270 13300 TCF BOKKEP2 # NO: GO TAKE CARE OF INDEXING REGISTERS
040423,000197:
040424,000198: 05,3271 31466 CAE DAPDATR1 # UPDATE WEIGHT/G
040425,000199: 05,3272 74675 MASK BIT14
040426,000200: 05,3273 10000 CCS A
040427,000201: 05,3274 31473 CA LEMMASS
040428,000202: 05,3275 61474 AD CSMMASS
040429,000203: 05,3276 55475 TS WEIGHT/G # SCALED AT B+16 KILOGRAMS
040430,000204: 05,3277 00002 ENDMASSP TC Q
040431,000205:
040432,000206: 05,3300 55507 BOKKEP2 TS PSI333 # REDUCE PSI BY ONE
040433,000207: 05,3301 00006 EXTEND
040434,000208: 05,3302 27506 DIM PHI333
040435,000209: 05,3303 13256 TCF PEGGY
040436,000210:
040437,000211: # Page 919
040438,000212: 05,3304 00616 NOLEMVAL DEC 25445 B-20
040439,000213: 05,3305 02526 DEC 87450 B-20
040440,000214: 05,3306 02352 DEC .30715 B-2
040441,000215: 05,3307 01471 DEC 1.22877 E-5 B+12
040442,000216: 05,3310 00634 DEC 1.6096 B-6
040443,000217: 05,3311 00612 DEC 1.54 B-6
040444,000218: 05,3312 03706 DEC 7.77177 B-6
040445,000219: 05,3313 04425 DEC 3.46458 E-5 B+12
040446,000220:
040447,000221: 05,3314 00644 INTVALUE DEC 26850 B-20
040448,000222: 05,3315 03710 DEC 127518 B-20
040449,000223: 05,3316 04246 DEC .54059 B-2
040450,000224: 05,3317 02011 DEC .153964 E-4 B+12
040451,000225: 05,3320 77501 DEC -.742923 B-6
040452,000226: 05,3321 00612 DEC 1.5398 B-6
040453,000227: 05,3322 04656 DEC 9.68 B-6
040454,000228: 05,3323 10372 DEC .647625 E-4 B+12
040455,000229: 05,3324 77126 DEC -27228 B-20
040456,000230: 05,3325 76261 DEC -.206476 B-2
040457,000231:
040458,000232: 05,3326 00767 SLOPEVAL DEC 1.96307 B-6
040459,000233: 05,3327 15624 DEC 27.5774 B-6
040460,000234: 05,3330 03054 DEC 2.3548 E-5 B+12
040461,000235: 05,3331 04532 DEC 2.1777 E-9 B+26
040462,000236: 05,3332 10433 DEC 1.044 E-3 B+8
040463,000237: 05,3333 00000 DEC 0 B-14
040464,000238: 05,3334 22070 DEC 2.21068 E-3 B+8
040465,000239: 05,3335 03204 DEC 1.5166 E-9 B+26
040466,000240: 05,3336 77266 DEC -1.284 B-6
040467,000241: 05,3337 02476 DEC 2 E-5 B+12
040468,000242:
040469,000243: 05,3340 70364 NEGBPW DEC -15402.17 B-16
040470,000244: 05,3341 75420 DXITFIX DEC* -1.88275 E-5 B+12*
040471,000245:
End of include-file TVCMASSPROP.agc. Parent file is MAIN.agc