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