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