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