Source Code

031324,000001: # Copyright: Public domain. 031325,000002: # Filename: P40-P47.agc 031326,000003: # Purpose: A section of Luminary 1C, revision 131. 031327,000004: # It is part of the source code for the Lunar Module's (LM) 031328,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 031329,000006: # This file is intended to be a faithful transcription, except 031330,000007: # that the code format has been changed to conform to the 031331,000008: # requirements of the yaYUL assembler rather than the 031332,000009: # original YUL assembler. 031333,000010: # Reference: pp. 752-784 of 1729.pdf. 031334,000011: # Contact: Ron Burkey <info@sandroid.org>. 031335,000012: # Website: www.ibiblio.org/apollo 031336,000013: # Mod history: 05/24/03 RSB. Began transcribing. 031337,000014: # 2010-01-05 JL Fixed indentation of STADR instruction. 031338,000015: 031339,000016: # Page 752 031340,000017: # PROGRAM DESCRIPTION: F40BOTH DECEMBER 22, 1966 031341,000018: # MOD 03 BY PETER ADLER MARCH 3, 1967 031342,000019: # CALLED VIA JOB FROM V37E 031343,000020: 031344,000021: # FUNCTIONAL DESCRIPTION 031345,000022: # 1) TO COMPUTE A PREFERRED IMU ORIENTATION AND A PREFERRED VEHICLE ATTITUDE FOR A LM DPS 031346,000023: # THRUSTING MANEUVER. 031347,000024: # (There is no item #2 in the original program listing --- RSB 2003.) 031348,000025: # 3) TO DO THE VEHICLE MANEUVER TO THE THRUSTING ATTITUDE. 031349,000026: # 4) TO CONTROL THE PGNCS DURING COUNTDOWN, IGNITION, THRUSTING, AND THRUST TERMINATION OF A 031350,000027: # PGNCS CONTROLLED DPS MANEUVER. 031351,000028: # 5) IN POSTBURN --- ZERO RENDEZVOUS COUNTER, MAINTAIN VG CALCULATIONS FOR POSSIBLE RCS MANEUVER, 031352,000029: # SET MAXIMUM DEADBAND IN DAP, RESET STEERLAW CSTEER TO ZERO. 031353,000030: # NOTE: P42, WHICH IS IN THIS LOG SECTION, DOES THE SAME FOR AN APS BURN, AND AP41 DOES 1-3 FOR 031354,000031: # RCS PLUS DISPLAYS PARAMETERS FOR MANUAL CONTROL. 031355,000032: 031356,000033: # SUBROUTINES USED 031357,000034: # R02 IMU STATUS CHECK 031358,000035: # S40.1 COMPUTATION OF THRUST DIRECTION 031359,000036: # S40.13 LENGTH OF BURN 031360,000037: # S40.2,3 PREFERRED IMU ORIENTATION 031361,000038: # S40.8 X PRODUCT STEERING 031362,000039: # S40.9 LAMBERT VTOGAIN 031363,000040: # R60LEM ATTITUDE MANEUVER 031364,000041: # LEMPREC EXTRAPOLATE STATE VECTOR 031365,000042: # PREREAD AVERAGE G, SERVICER 031366,000043: # ALLCOAST DAP COASTING INITIALIZATION 031367,000044: # CLOKTASK ERGO CLOCKJOB -- COUNT DOWN 031368,000045: # PHASCHANG, INTPRET, FLAGUP, FLAGDOWN, WAITLIST, LONGCALL, GOFLASH, GOFLASHR, GOPERF1, ALARM, 031369,000046: # PRIOLARM, GOTOP00H, ENDOFJOB, BANKCALL, SETMAXDB, SETMINDB, CHECKMM, FLATOUT, OUTFLAT, 031370,000047: # KILLTASK, SGNAGREE, TPAGREE, ETC. 031371,000048: 031372,000049: # RESTARTS VIA GROUP 4 031373,000050: 031374,000051: # DISPLAYS 031375,000052: # V50N25 203 A/P TO PGNCS, AUTO-THROTTLE MODE, AUTO ATTITUDE CONTROL 031376,000053: # V06N40 TTI, VG, DELTAVM (DISPLAYED ONCE/SECOND BY CLOKTASK) 031377,000054: # V50N99 PLEASE PERFORM ENGINE ON ENABLE 031378,000055: # V06N40 TG (TIME TO GO TO CUTOFF), VG, DELTAVM -- ONCE/SECOND 031379,000056: # V16N40 FINAL VALUES OF TG, VG, DELTAVM 031380,000057: # V16N85 COMP OF VG (BODY AXES) FOR POSS. RCS MANUAL MANEUVER 031381,000058: # V05N09 POSSIBLE ALARMS 031382,000059: # V50N07 PLEASE SELECT P00 031383,000060: 031384,000061: # Page 753 031385,000062: # VIA R30 031386,000063: 031387,000064: # V06N44 HAPO, PERI, TFF 031388,000065: # V06N35 TIME TO PERIGEE, HMS 031389,000066: 031390,000067: # ALARM OR ABORT EXIT MODES 031391,000068: # PROGRAM ALARM, FLASHING DISPLAY OF ALARM CODE 1706 IF P40 SELECTED WITH DESCENT UNIT STAGED. 031392,000069: # V34E (TERMINATE) IS THE ONLY RESPONSE ACCEPTED. TC GOTOP00H. 031393,000070: 031394,000071: # PROGRAM ALARM, FLASH CODE 1703: TIG LESS THAN 45 SECS AWAY. V34E= GOTOP00H OR V33E= SLIP 031395,000072: # TIG BY 45 SECS. 031396,000073: 031397,000074: # ERASABLE INITIALIZATION 031398,000075: 031399,000076: # DEBRIS 031400,000077: 031401,000078: # OUTPUT 031402,000079: # SEE SUBROUTINES E.G.: S40.1, S40.2,3, S40.13, S40.8, S40.9, TRIMGIMB 031403,000080: # XDELVFLG = 1 FOR EXT DELV COMPUTATION 031404,000081: # = 0 FOR AIMPT (LAMBERT COMP 031405,000082: 031406,000083: 27,2246 COUNT* $$/P40 031407,000084: 27,2246 E7,1455 EBANK= WHICH 031408,000085: 031409,000086: 36,3153 BANK 36 031410,000087: 36,2000 SETLOC P40S 031411,000088: 36,2000 BANK 031412,000089: 031413,000090: 36,3153 05353 P40LM TC PHASCHNG 031414,000091: 36,3154 04024 OCT 04024 031415,000092: 031416,000093: 36,3155 33137 CAF P40ADRES # INITIALIZATION FOR BURNBABY 031417,000094: 36,3156 55455 TS WHICH 031418,000095: 031419,000096: 36,3157 30106 CA FLGWRD10 031420,000097: 36,3160 74737 MASK APSFLBIT 031421,000098: 36,3161 10000 CCS A 031422,000099: 36,3162 13125 TCF P40ALM 031423,000100: 36,3163 04616 TC BANKCALL # GO DO IMU STATUS CHECK ROUTINE. 031424,000101: 36,3164 11233 CADR R02BOTH 031425,000102: 031426,000103: 36,3165 40111 CS DAPBOOLS # INITIALIZE DVMON 031427,000104: 36,3166 74737 MASK CSMDOCKD 031428,000105: 36,3167 10000 CCS A 031429,000106: 36,3170 32022 CAF THRESH1 031430,000107: 36,3171 62023 AD THRESH3 031431,000108: 36,3172 55250 TS DVTHRUSH 031432,000109: 36,3173 34751 CAF FOUR 031433,000110: 36,3174 55515 TS DVCNTR 031434,000111: # Page 754 031435,000112: 36,3175 06042 TC INTPRET # LOAD CONSTANTS FOR DPS BURN 031436,000113: 36,3176 43175 VLOAD CLEAR # LOAD F, MDOT, TDECAY 031437,000114: 36,3177 34001 FDPS 031438,000115: 36,3200 02663 NOTHROTL 031439,000116: 36,3201 03735 STORE F 031440,000117: 36,3202 77735 SLOAD 031441,000118: 36,3203 26002 DPSVEX 031442,000119: 36,3204 70476 P40IN DCOMP SR1 031443,000120: 36,3205 37743 STCALL VEX # LOAD EXHAUST VELOCITY FOR TGO COMP. 031444,000121: 36,3206 56246 S40.1 # COMPUTES UT AND VGTIG 031445,000122: 36,3207 77624 CALL 031446,000123: 36,3210 56413 S40.2,3 # COMPUTES PREFERRED IMU ORIENTATION 031447,000124: 36,3211 77776 EXIT 031448,000125: 031449,000126: 36,3212 00004 INHINT 031450,000127: 36,3213 04674 TC IBNKCALL 031451,000128: 36,3214 40143 CADR PFLITEDB # ZERO ATTITUDE ERRORS, SET DB TO ONE DEG. 031452,000129: 031453,000130: 36,3215 03217 TC P40SXT4 031454,000131: 031455,000132: # ******************************** 031456,000133: 031457,000134: 36,3216 12130 TCF BURNBABY 031458,000135: 031459,000136: # ******************************** 031460,000137: 031461,000138: 36,3217 00006 P40SXT4 EXTEND 031462,000139: 36,3220 23141 QXCH P40/RET 031463,000140: 36,3221 00003 P41MANU RELINT 031464,000141: 031465,000142: 36,3222 05516 TC DOWNFLAG # CLEAR 3AXISFLG -- R60 USE VECPOINT. 031466,000143: 36,3223 00124 ADRES 3AXISFLG 031467,000144: 031468,000145: 36,3224 04616 TC BANKCALL 031469,000146: 36,3225 54123 CADR R60LEM # DO ATTITUDE MANEUVER ROUTINE 031470,000147: 36,3226 01141 TC P40/RET 031471,000148: 031472,000149: 36,3227 E7,1462 EBANK= TRKMKCNT 031473,000150: 36,3227 30005 POSTBURN CA Z 031474,000151: 36,3230 55162 TS DISPDEX 031475,000152: 36,3231 00006 EXTEND 031476,000153: 36,3232 32060 DCA ACADN85 031477,000154: 36,3233 53252 DXCH AVEGEXIT 031478,000155: 36,3234 33764 CAF V16N40 031479,000156: 36,3235 04616 TC BANKCALL 031480,000157: 36,3236 20636 CADR GOFLASHR 031481,000158: 36,3237 03262 TC TERM40 031482,000159: 36,3240 13245 TCF TIGNOW 031483,000160: 36,3241 03227 TC POSTBURN 031484,000161: # Page 755 031485,000162: 36,3242 05353 P40PHS1 TC PHASCHNG 031486,000163: 36,3243 00014 OCT 00014 031487,000164: 36,3244 15155 TCF ENDOFJOB 031488,000165: 031489,000166: 36,3245 00004 TIGNOW INHINT 031490,000167: 36,3246 04674 TC IBNKCALL 031491,000168: 36,3247 40154 CADR ZATTEROR 031492,000169: 36,3250 04674 TC IBNKCALL 031493,000170: 36,3251 40141 CADR SETMINDB 031494,000171: 36,3252 00003 RELINT 031495,000172: 36,3253 33765 CAF V16N85B 031496,000173: 36,3254 04616 TC BANKCALL 031497,000174: 36,3255 20463 CADR REFLASHR 031498,000175: 36,3256 03262 TC TERM40 031499,000176: 36,3257 13262 TCF TERM40 031500,000177: 36,3260 03253 TC -5 031501,000178: 031502,000179: 36,3261 13242 TCF P40PHS1 031503,000180: 031504,000181: 36,3262 00006 TERM40 EXTEND 031505,000182: 36,3263 32110 DCA SERVCADR 031506,000183: 36,3264 53252 DXCH AVEGEXIT 031507,000184: 36,3265 34755 CAF ZERO 031508,000185: 36,3266 55462 TS TRKMKCNT # ZERO RENDZVS CNTERS 031509,000186: 36,3267 30005 CA Z 031510,000187: 36,3270 55162 TS DISPDEX 031511,000188: 36,3271 00004 INHINT 031512,000189: 36,3272 04674 TC IBNKCALL 031513,000190: 36,3273 40115 CADR RESTORDB 031514,000191: 36,3274 00003 RELINT 031515,000192: 36,3275 06001 TC GOTOP00H 031516,000193: 031517,000194: 36,3276 E7,1455 EBANK= WHICH 031518,000195: 36,3276 COUNT* $$/P41 031519,000196: 36,3276 33140 P41LM CAF P41ADRES # INITIALIZATION FOR BURNBABY 031520,000197: 36,3277 55455 TS WHICH 031521,000198: 031522,000199: 36,3300 04616 TC BANKCALL 031523,000200: 36,3301 11233 CADR R02BOTH 031524,000201: 031525,000202: 36,3302 06042 TC INTPRET # BOTH LM 031526,000203: # In the original program listing, the following line has a hand-written notation in the 031527,000204: # label field which appears to be "rrPIN" or "PPPIN". I don't claim to know that this means, 031528,000205: # but I present it for your delectation.---RSB 2003. 031529,000206: 36,3303 71214 BON DLOAD # IF NJETSFLAG IS SET, LOAD Z JET F 031530,000207: 36,3304 00700 NJETSFLG 031531,000208: 36,3305 75311 P41FJET1 031532,000209: 36,3306 34017 FRCS4 # IF NJETSFLG IS CLEAR, LOAD 4 JET F 031533,000210: 031534,000211: 36,3307 37735 P41FJET STCALL F 031535,000212: 36,3310 75314 P41IN 031536,000213: 36,3311 77745 P41FJET1 DLOAD 031537,000214: # Page 756 031538,000215: 36,3312 34021 FRCS2 031539,000216: 36,3313 03735 STORE F 031540,000217: 031541,000218: 36,3314 77624 P41IN CALL 031542,000219: 36,3315 56246 S40.1 # BOTH 031543,000220: 36,3316 77624 P41NORM CALL 031544,000221: 36,3317 56413 S40.2,3 # CALCULATE PREFERRED IMU ORIENTATION AND 031545,000222: 36,3320 77776 EXIT # SET PFRATFLG. 031546,000223: 031547,000224: 36,3321 00004 INHINT 031548,000225: 36,3322 04674 TC IBNKCALL 031549,000226: 36,3323 40154 CADR ZATTEROR # ZERO ATTITUDE ERRORS 031550,000227: 36,3324 04674 TC IBNKCALL 031551,000228: 36,3325 40141 CADR SETMINDB # SET 0.3 DEGREE DEADBAND 031552,000229: 36,3326 03217 TC P40SXT4 031553,000230: 031554,000231: 36,3327 06042 TC INTPRET 031555,000232: 36,3330 45175 VLOAD CALL # TRANSFORM VELOCITY-TO-BE-GAINED AT TIG 031556,000233: 36,3331 03701 VGTIG # FROM REFERENCE COORDINATES TO LM BODY- 031557,000234: 36,3332 57267 S41.1 # AXIS COORDINATES FOR V16N85 DISPLAY. 031558,000235: 36,3333 03502 STORE VGBODY # (SCALED AT 2 (+7) METERS/CENTISECOND) 031559,000236: 36,3334 77776 EXIT 031560,000237: 031561,000238: 36,3335 33765 CAF V16N85B 031562,000239: 36,3336 04616 TC BANKCALL 031563,000240: 36,3337 20447 CADR GODSPRET 031564,000241: 031565,000242: 36,3340 35017 CAF PRIO5 031566,000243: 36,3341 55162 TS DISPDEX # FOR SAFETY ONLY 031567,000244: 36,3342 05105 TC FINDVAC 031568,000245: 36,3343 E7,1700 EBANK= VGPREV 031569,000246: 36,3343 03365 74067 2CADR DYNMDISP 031570,000247: 031571,000248: 36,3345 05327 TC 2PHSCHNG 031572,000249: 36,3346 00076 OCT 00076 # GROUP 6 RESTARTS AT REDO6.7 031573,000250: 36,3347 04024 OCT 04024 # GROUP 4 RESTARTS HERE 031574,000251: 031575,000252: # ******************************** 031576,000253: 031577,000254: 36,3350 12137 TCF B*RNB*B* 031578,000255: 031579,000256: # ******************************** 031580,000257: 031581,000258: 36,3351 34777 BLNKWAIT CAF 1SEC 031582,000259: 36,3352 04616 TC BANKCALL 031583,000260: 36,3353 01736 CADR DELAYJOB 031584,000261: 031585,000262: 36,3354 31162 REDO6.7 CA DISPDEX # ON A RESTART, DO NOT PUT UP DISPLAY IF 031586,000263: 36,3355 64752 AD TWO # BLANKING (BETWEEN TIG-35 AND TIG-30) 031587,000264: 031588,000265: # ******************************** 031589,000266: # Page 757 031590,000267: 031591,000268: 36,3356 00006 EXTEND 031592,000269: 36,3357 13351 BZF BLNKWAIT 031593,000270: 031594,000271: 36,3360 33765 CAF V16N85B 031595,000272: 36,3361 04616 TC BANKCALL 031596,000273: 36,3362 20447 CADR GODSPRET 031597,000274: 031598,000275: 36,3363 35017 CAF PRIO5 031599,000276: 36,3364 05146 TC PRIOCHNG 031600,000277: 031601,000278: 36,3365 31162 DYNMDISP CA DISPDEX # A NON-POSITIVE DISPDEX INDICATES PAST 031602,000279: 36,3366 00006 EXTEND # TIG-35, SO SERVICER WILL BE DOING THE 031603,000280: 36,3367 65155 BZMF ENDOFJOB # UPDATING OF NOUN 85. STOP DYNMDISP. 031604,000281: 36,3370 06042 TC INTPRET 031605,000282: 36,3371 45175 VLOAD CALL 031606,000283: 36,3372 03701 VGPREV 031607,000284: 36,3373 57267 S41.1 031608,000285: 36,3374 03502 STORE VGBODY 031609,000286: 36,3375 77776 EXIT 031610,000287: 36,3376 34777 CAF 1SEC 031611,000288: 36,3377 04616 TC BANKCALL 031612,000289: 36,3400 01736 CADR DELAYJOB 031613,000290: 36,3401 13365 TCF DYNMDISP 031614,000291: 031615,000292: 36,3402 06042 CALCN85 TC INTPRET 031616,000293: 36,3403 77624 CALL 031617,000294: 36,3404 75615 UPDATEVG 031618,000295: 36,3405 45175 VLOAD CALL 031619,000296: 36,3406 03701 VGPREV 031620,000297: 36,3407 57267 S41.1 031621,000298: 36,3410 03502 STORE VGBODY 031622,000299: 36,3411 77776 EXIT 031623,000300: 36,3412 04635 TC POSTJUMP 031624,000301: 36,3413 65746 CADR SERVEXIT 031625,000302: 031626,000303: 36,3414 COUNT* $$/P42 031627,000304: 36,3414 E7,1455 EBANK= WHICH 031628,000305: 031629,000306: 36,3414 05353 P42LM TC PHASCHNG 031630,000307: 36,3415 04024 OCT 04024 031631,000308: 031632,000309: 36,3416 33141 CAF P42ADRES # INITIALIZATION FOR BURNBABY. 031633,000310: 36,3417 55455 TS WHICH 031634,000311: 031635,000312: 36,3420 40106 CS FLGWRD10 031636,000313: 36,3421 74737 MASK APSFLBIT 031637,000314: 36,3422 10000 CCS A 031638,000315: 36,3423 03125 TC P40ALM 031639,000316: 36,3424 04616 P42STAGE TC BANKCALL 031640,000317: # Page 758 031641,000318: 36,3425 11233 CADR R02BOTH 031642,000319: 36,3426 36000 CAF THRESH2 # INITIALIZE DVMON 031643,000320: 36,3427 55250 TS DVTHRUSH 031644,000321: 36,3430 34751 CAF FOUR 031645,000322: 36,3431 55515 TS DVCNTR 031646,000323: 031647,000324: 36,3432 06042 TC INTPRET 031648,000325: 36,3433 77214 SET VLOAD # LOAD FAPS, MDOTAPS, AND ATDECAY INTO 031649,000326: 36,3434 01072 AVFLAG # F, MDOT, AND TDECAY BY VECTOR LOAD. 031650,000327: 36,3435 34007 FAPS 031651,000328: 36,3436 03735 STORE F 031652,000329: 36,3437 52135 SLOAD GOTO 031653,000330: 36,3440 26001 APSVEX 031654,000331: 36,3441 75204 P40IN 031655,000332: 031656,000333: 36,3442 E7,1455 EBANK= WHICH 031657,000334: 031658,000335: 36,3442 COUNT* $$/P47 031659,000336: 36,3442 04616 P47LM TC BANKCALL 031660,000337: 36,3443 11233 CADR R02BOTH 031661,000338: 36,3444 06042 TC INTPRET 031662,000339: 36,3445 77624 CALRB 031663,000340: 36,3446 27547 MIDTOAV2 031664,000341: 031665,000342: 36,3447 30155 CA MPAC +1 031666,000343: 36,3450 05173 TC TWIDDLE 031667,000344: 36,3451 03453 ADRES STARTP47 031668,000345: 031669,000346: 36,3452 15155 TCF ENDOFJOB 031670,000347: 031671,000348: 36,3453 05353 STARTP47 TC PHASCHNG 031672,000349: 36,3454 05014 OCT 05014 031673,000350: 36,3455 77777 OCT 77777 031674,000351: 031675,000352: 36,3456 00006 EXTEND 031676,000353: 36,3457 33770 DCA ACADN83 031677,000354: 36,3460 53252 DXCH AVEGEXIT 031678,000355: 36,3461 34736 CAF PRIO20 031679,000356: 36,3462 05105 TC FINDVAC 031680,000357: 36,3463 E7,1622 EBANK= DELVIMU 031681,000358: 36,3463 03517 74067 2CADR P47BODY 031682,000359: 031683,000360: 36,3465 12344 TCF REDO4.2 # CHECKS PHASE 5 AND GOES TO PREREAD 031684,000361: # SEE TIG-30 IN BURNBABY 031685,000362: 031686,000363: 36,3466 06042 CALCN83 TC INTPRET 031687,000364: 36,3467 53375 VLOAD VAD 031688,000365: 36,3470 03502 DELVCTL 031689,000366: 36,3471 03527 DELVREF 031690,000367: 36,3472 03656 STORE DELVSIN # TEMP STORAGE FOR RESTARTS 031691,000368: # Page 759 031692,000369: 36,3473 77624 CALL 031693,000370: 36,3474 57267 S41.1 031694,000371: 36,3475 03623 STORE DELVIMU 031695,000372: 36,3476 77776 EXIT 031696,000373: 36,3477 05353 TC PHASCHNG 031697,000374: 36,3500 10035 OCT 10035 # REREADAC AND HERE 031698,000375: 031699,000376: 36,3501 06042 TC INTPRET 031700,000377: 36,3502 77775 VLOAD 031701,000378: 36,3503 03656 DELVSIN 031702,000379: 36,3504 03502 STORE DELVCTL 031703,000380: 36,3505 77776 EXIT 031704,000381: 031705,000382: 36,3506 04635 TC POSTJUMP 031706,000383: 36,3507 65746 CADR SERVEXIT 031707,000384: 031708,000385: 36,3510 33766 P47BOD CAF V1683 031709,000386: 36,3511 04616 TC BANKCALL 031710,000387: 36,3512 20636 CADR GOFLASHR 031711,000388: 36,3513 06001 TC GOTOP00H 031712,000389: 36,3514 06001 TC GOTOP00H 031713,000390: 031714,000391: 36,3515 13517 TCF P47BODY 031715,000392: 031716,000393: 36,3516 13242 TCF P40PHS1 031717,000394: 031718,000395: 36,3517 06042 P47BODY TC INTPRET 031719,000396: 36,3520 77775 VLOAD 031720,000397: 36,3521 06524 HI6ZEROS 031721,000398: 36,3522 03623 STORE DELVIMU 031722,000399: 36,3523 03502 STORE DELVCTL 031723,000400: 36,3524 77776 EXIT 031724,000401: 36,3525 03510 TC P47BOD 031725,000402: 031726,000403: 36,3526 COUNT* $$/P40 031727,000404: 36,3526 31517 IMPLBURN CA TGO +1 031728,000405: 36,3527 03741 TC GETDT 031729,000406: 36,3530 05173 TC TWIDDLE 031730,000407: 36,3531 03546 ADRES ENGOFTSK 031731,000408: 36,3532 05516 TC DOWNFLAG # TURN OFF IGNFLAG 031732,000409: 36,3533 00153 ADRES IGNFLAG 031733,000410: 36,3534 05516 TC DOWNFLAG # TURN OFF ASTNFLG 031734,000411: 36,3535 00154 ADRES ASTNFLAG 031735,000412: 36,3536 05516 TC DOWNFLAG # TURN OFF IMPULSW 031736,000413: 36,3537 00044 ADRES IMPULSW 031737,000414: 36,3540 05353 TC PHASCHNG # RESTART PROTECT ENGOFTSK (ENGINOFF) 031738,000415: 36,3541 40114 OCT 40114 031739,000416: 031740,000417: 36,3542 05221 TC FIXDELAY # WAIT HALF A SECOND 031741,000418: 36,3543 00062 DEC 50 B-14 031742,000419: # Page 760 031743,000420: 36,3544 02657 TC NOULLAGE # TURN OFF ULLAGE 031744,000421: 031745,000422: 36,3545 05261 TC TASKOVER 031746,000423: 031747,000424: 36,3546 04674 ENGOFTSK TC IBNKCALL # THIS CODING ALLOWS ENGINOFF ET AL TO BE 031748,000425: 36,3547 75551 CADR ENGINOFF # USED BOTH BY WAITLIST AND BY TC IBNKCALL 031749,000426: 36,3550 05261 TC TASKOVER 031750,000427: 031751,000428: 36,3551 34644 ENGINOFF CAF PRIO12 # MUST BE LOWER PRIO THAN CLOCKJOB 031752,000429: 36,3552 05105 TC FINDVAC 031753,000430: 36,3553 E7,1462 EBANK= TRKMKCNT 031754,000431: 36,3553 03227 74067 2CADR POSTBURN 031755,000432: 031756,000433: 36,3555 34753 ENGINOF2 CAF BIT1 031757,000434: 36,3556 05203 TC WAITLIST 031758,000435: 36,3557 E6,1422 EBANK= OMEGAQ 031759,000436: 36,3557 03612 74066 2CADR COASTSET 031760,000437: 031761,000438: 36,3561 40103 ENGINOF1 CS FLAGWRD7 # SET THE IDLE BIT. 031762,000439: 36,3562 74745 MASK IDLEFBIT 031763,000440: 36,3563 26103 ADS FLAGWRD7 031764,000441: 031765,000442: 36,3564 02657 TC NOULLAGE 031766,000443: 031767,000444: 36,3565 00006 ENGINOF4 EXTEND 031768,000445: 36,3566 30025 DCA TIME2 031769,000446: 36,3567 53342 DXCH TEVENT 031770,000447: 031771,000448: 36,3570 44745 ENGINOF3 CS ENGONBIT # INSURE ENGONFLG IS CLEAR. 031772,000449: 36,3571 70101 MASK FLAGWRD5 031773,000450: 36,3572 54101 TS FLAGWRD5 031774,000451: 36,3573 44355 CS PRIO30 # ENGINOF3 IS USED AS A PRE-ENGINE ARM 031775,000452: 36,3574 00006 EXTEND # SUBROUTINE. 031776,000453: 36,3575 02011 RAND DSALMOUT 031777,000454: 36,3576 64736 AD PRIO20 # TURN OFF THE ENGINE -- DPS OR APS 031778,000455: 36,3577 00006 EXTEND 031779,000456: 36,3600 01011 WRITE DSALMOUT 031780,000457: 031781,000458: 36,3601 40111 CS DAPBOOLS # TURN OFF TRIM GIMBAL 031782,000459: 36,3602 74736 MASK USEQRJTS 031783,000460: 36,3603 26111 ADS DAPBOOLS 031784,000461: 031785,000462: 36,3604 44737 CS HIRTHROT # ZERO AUTO-THROTTLE WHENEVER THE ENGINE 031786,000463: 36,3605 54055 TS THRUST # IS TURNED OFF. 031787,000464: 36,3606 34750 CAF BIT4 # THE HARDWARE DOES SO ONLY WHEN THE 031788,000465: 36,3607 00006 EXTEND # ENGINE IS DISARMED. 031789,000466: 36,3610 05014 WOR CHAN14 031790,000467: 031791,000468: 36,3611 04707 TC ISWRETRN 031792,000469: # Page 761 031793,000470: 36,3612 04674 COASTSET TC IBNKCALL # DO DAP COASTING INITIALIZATION 031794,000471: 36,3613 40205 CADR ALLCOAST 031795,000472: 36,3614 05261 TC TASKOVER 031796,000473: 031797,000474: 36,3615 E6,1422 EBANK= OMEGAQ 031798,000475: 36,3615 45020 UPDATEVG STQ CALL 031799,000476: 36,3616 03665 QTEMP1 031800,000477: 36,3617 56447 S40.8 # X-PRODUCT STEERING 031801,000478: 36,3620 43014 BON BON 031802,000479: 36,3621 01307 XDELVFLG 031803,000480: 36,3622 03665 QTEMP1 031804,000481: 36,3623 03705 NORMSW 031805,000482: 36,3624 75637 180SETUP 031806,000483: 36,3625 45345 DLOAD DSU 031807,000484: 36,3626 01234 PIPTIME 031808,000485: 36,3627 03763 TIGSAVE 031809,000486: 36,3630 50025 DSU BMN 031810,000487: 36,3631 03432 TNEWA 031811,000488: 36,3632 75662 GETRANS 031812,000489: 36,3633 43345 DLOAD DAD 031813,000490: 36,3634 03763 TIGSAVE 031814,000491: 36,3635 03432 TNEWA 031815,000492: 36,3636 03765 STORE TIGSAVEP 031816,000493: 36,3637 77776 180SETUP EXIT 031817,000494: 36,3640 10754 CCS PHASE2 031818,000495: 36,3641 13667 TCF NO.9 031819,000496: 36,3642 34737 CAF PRIO10 031820,000497: 36,3643 00004 INHINT 031821,000498: 36,3644 05105 TC FINDVAC 031822,000499: 36,3645 E7,1706 EBANK= VG 031823,000500: 36,3645 02707 56067 2CADR S40.9 # LAMBERT VTOGAIN 031824,000501: 031825,000502: 36,3647 05327 TC 2PHSCHNG 031826,000503: 36,3650 00172 OCT 00172 # 2.17SPOT FOR S40.9 031827,000504: 36,3651 10035 OCT 10035 # HERE AND REREADAC AFTER RESTART 031828,000505: 031829,000506: 36,3652 06042 ENDSTEER TC INTPRET 031830,000507: 36,3653 77745 DLOAD 031831,000508: 36,3654 03765 TIGSAVEP 031832,000509: 36,3655 27763 STOVL TIGSAVE 031833,000510: 36,3656 01220 RN 031834,000511: 36,3657 26323 STOVL RINIT 031835,000512: 36,3660 01226 VN 031836,000513: 36,3661 02331 STORE VINIT 031837,000514: 36,3662 45345 GETRANS DLOAD DSU 031838,000515: 36,3663 03631 TPASS4 031839,000516: 36,3664 01234 PIPTIME 031840,000517: 36,3665 37452 STCALL DELLT4 031841,000518: 36,3666 03665 QTEMP1 031842,000519: 031843,000520: # Page 762 031844,000521: 36,3667 06042 NO.9 TC INTPRET 031845,000522: 36,3670 77650 GOTO 031846,000523: 36,3671 03665 QTEMP1 031847,000524: 36,3672 06042 STEERING TC INTPRET 031848,000525: 031849,000526: 36,3673 77624 CALL 031850,000527: 36,3674 75615 UPDATEVG 031851,000528: 36,3675 77776 EXIT 031852,000529: 031853,000530: 36,3676 E7,1515 EBANK= DVCNTR 031854,000531: 36,3676 00004 NSTEER INHINT 031855,000532: 36,3677 35016 CA EBANK7 031856,000533: 36,3700 54003 TS EBANK 031857,000534: 36,3701 40076 CS FLAGWRD2 # CHECK IMPULSE SWITCH. IT IS SET EITHER 031858,000535: 36,3702 74743 MASK IMPULBIT # BY S40.13 IF TBURN<6 SECS OR BY S40.8 IF 031859,000536: 36,3703 10000 CCS A # STEERING IS ALMOST DONE. 031860,000537: 031861,000538: 36,3704 13711 TCF +5 # IMPULSW = 0 EXIT 031862,000539: 36,3705 40103 CS FLAGWRD7 # IMPULSW = 1 WHY? CHECK IDLEFLAG 031863,000540: 36,3706 74745 MASK IDLEFBIT # (IDLEFLAG = 0 --> DVMON ON) 031864,000541: 36,3707 10000 CCS A 031865,000542: 36,3710 13713 TCF +3 # DVMON ON --> THRUSTING --> IMPULSW VIA S40.8 031866,000543: 36,3711 04635 TC POSTJUMP # DVMON OFF --> IMPULSW ON VIA S40.13 --> EXIT 031867,000544: 36,3712 65746 CADR SERVEXIT 031868,000545: 031869,000546: 36,3713 04674 TC IBNKCALL 031870,000547: 36,3714 40166 CADR STOPRATE 031871,000548: 031872,000549: 36,3715 05516 TC DOWNFLAG # TURN OFF IMPULSW 031873,000550: 36,3716 00044 ADRES IMPULSW 031874,000551: 031875,000552: 36,3717 05504 TC UPFLAG 031876,000553: 36,3720 00161 ADRES IDLEFLAG # TURN OFF DVMON 031877,000554: 031878,000555: 36,3721 00004 INHINT 031879,000556: 36,3722 00006 EXTEND 031880,000557: 36,3723 31442 DCA TIG 031881,000558: 36,3724 52155 DXCH MPAC 031882,000559: 36,3725 00006 EXTEND 031883,000560: 36,3726 40025 DCS TIME2 031884,000561: 36,3727 20155 DAS MPAC 031885,000562: 36,3730 07262 TC TPAGREE 031886,000563: 36,3731 30155 CAE MPAC +1 031887,000564: 36,3732 03741 TC GETDT 031888,000565: 36,3733 05173 TC TWIDDLE 031889,000566: 36,3734 03546 ADRES ENGOFTSK 031890,000567: 36,3735 05327 TC 2PHSCHNG 031891,000568: 36,3736 40114 OCT 40114 # ENGOFTSK (ENGINOFF) 031892,000569: 36,3737 00035 OCT 00035 # SERVICER -- REREADAC 031893,000570: # Page 763 031894,000571: 36,3740 15155 TCF ENDOFJOB 031895,000572: 031896,000573: 36,3741 10000 GETDT CCS A 031897,000574: 36,3742 13745 TCF +3 031898,000575: 36,3743 13745 TCF +2 031899,000576: 36,3744 34755 CAF ZERO 031900,000577: 36,3745 64753 AD ONE 031901,000578: 36,3746 56001 XCH L 031902,000579: 36,3747 34755 CAF ZERO 031903,000580: 36,3750 53517 DXCH TGO 031904,000581: 36,3751 31517 CA TGO +1 031905,000582: 36,3752 00002 TC Q 031906,000583: 031907,000584: # ************************************** 031908,000585: 031909,000586: 36,3753 00000 SEC15DP OCT 00000 # DON'T SEPARATE 031910,000587: 36,3754 02734 SEC15 DEC 1500 B-14 # DON'T SEPARATE 031911,000588: 36,3755 00000 05670 SEC30DP 2DEC 3000 B-28 031912,000589: 36,3757 00000 SEC45DP OCT 00000 # DON'T MOVE FROM JUST BEFORE SEC45 031913,000590: 36,3760 10624 SEC45 DEC 4500 B-14 031914,000591: 36,3761 00000 5SECDP OCT 00000 # DON'T MOVE FROM JUST BEFORE 5SEC 031915,000592: 36,3762 00764 5SEC DEC 500 B-14 031916,000593: 36,3763 05050 26SECS DEC 2600 B-14 031917,000594: 36,3764 04050 V16N40 VN 1640 031918,000595: 36,3765 04125 V16N85B VN 1685 031919,000596: 36,3766 04123 V1683 VN 1683 031920,000597: 36,3767 4777 SEC01 = 1SEC 031921,000598: 36,3767 36,2057 ACADN85 = P41TABLE +2 031922,000599: 031923,000600: 36,3767 E7,1622 EBANK= DELVIMU 031924,000601: 36,3767 03466 74067 ACADN83 2CADR CALCN83 031925,000602: 031926,000603: # ****************************************** 031927,000604: # Page 764 031928,000605: # PROGRAM DESCRIPTION: S40.1 DATE: 15 NOV 66 031929,000606: # MOD N02 LOG SECTION P40-P47 031930,000607: # MOD BY ZELDIN AND ADAPTED BY TALAYCO 031931,000608: 031932,000609: # FUNCTIONAL DESCRIPTION 031933,000610: # COMPUTE INITIAL THRUST DIRECTION(UT) AND INITIAL VALUE OF VG 031934,000611: # VECTOR(VGTIG). 031935,000612: 031936,000613: # CALLING SEQUENCE 031937,000614: # L CALL 031938,000615: # L+1 S40.1 031939,000616: 031940,000617: # NORMAL EXIT MODE 031941,000618: # AT L+2 OF CALLING SEQUENCE (GOTO L+2) NORMAL RETURN OR 031942,000619: # ERROR RETURN IF NOSOFLAG =1 031943,000620: 031944,000621: # SUBROUTINES CALLED 031945,000622: # LEMPREC 031946,000623: # INITVEL 031947,000624: # CALCGRAV 031948,000625: # MIDGIM 031949,000626: 031950,000627: # ALARM OR ABORT EXIT MODES 031951,000628: # L+2 OF CALLING SEQUENCE, UNSOLVABLE CONIC IF NOSOFLAG=1 031952,000629: 031953,000630: # ERASABLE INITIALIZATION REQUIRED 031954,000631: # WEIGHT/G ANTICIPATED VEHICLE MASS DP B16 KGM 031955,000632: # XDELVFLG 1=DELTA-V MANEUVER, 0=AIMPT STEER 031956,000633: # F THRUST FOR ENGINE USED 031957,000634: # IF DELTA-V MANEUVER: 031958,000635: # DELVSIN SPECIFIED DELTA-V REQUIRED IN 031959,000636: # INERTIAL COORDS. OF ACTIVE VEHICLE 031960,000637: # AT TIME OF IGNITION VECTOR B7 M/CS 031961,000638: # DELVSAB MAG. OF DELVSIN DP B7 M/CS 031962,000639: # RTIG POSITION AT TIME OF IGNITION VECTOR B29 M 031963,000640: # VTIG VELOCITY AT TIME OF IGNITION VECTOR B7 M/CS. 031964,000641: # IF AIMPT STEER: 031965,000642: # TIG TIME OF IGNITION DP B28 CS 031966,000643: # RTARG POSITION TARGET TIME VECTOR B29 M 031967,000644: # CSTEER C FOR STEER LAW DP B2 031968,000645: # DLTARG TARGET TIME-IGNITION TIME DP B28 CS 031969,000646: 031970,000647: # OUTPUT 031971,000648: # UT DESIRED THRUST DIRECTION VECT. B2 M/(CS.CS) 031972,000649: # VGTIG INITIAL VALUE OF VELOCITY 031973,000650: # TO BE GAINED (INERT. COORD.) VECTOR B7 M/CS 031974,000651: # DELVLVC VGTIG IN LOC. VERT. COORDS. B7 M/CS 031975,000652: # BDT V REQUIRED AT TIG -V REQUIRED AT (TIG-2SEC) 031976,000653: # -GDT FOR S40.13 VECT B7 M/CS 031977,000654: # RTIG CALC IN S40.1B (AIMPT) FOR S40.2,3 VECTOR B27M 031978,000655: # POSITION AT TIME OF IGNITION 031979,000656: 031980,000657: # DEBRIS QTEMP1 031981,000658: # MPAC, QPRET 031982,000659: # PUSHLIST 031983,000660: 031984,000661: 14,2347 BANK 14 031985,000662: 27,2000 SETLOC P40S1 031986,000663: 27,2000 BANK 031987,000664: # Page 765 031988,000665: 27,2246 COUNT* $$/S40.1 031989,000666: 27,2246 71220 S40.1 STQ DLOAD 031990,000667: 27,2247 03632 QTEMP 031991,000668: 27,2250 03442 TIG 031992,000669: 27,2251 03763 STORE TIGSAVE 031993,000670: 27,2252 77614 DELVTEST BOFF 031994,000671: 27,2253 01347 XDELVFLG 031995,000672: 27,2254 56336 S40.1B 031996,000673: 27,2255 77201 CALCTHET SETPD VLOAD 031997,000674: 27,2256 00001 0 031998,000675: 27,2257 03650 VTIG 031999,000676: 27,2260 02331 STORE VINIT 032000,000677: 27,2261 53435 VXV UNIT 032001,000678: 27,2262 03642 RTIG 032002,000679: 27,2263 27673 STOVL UT # UP IN UT 032003,000680: 27,2264 03642 RTIG 032004,000681: 27,2265 02323 STORE RINIT 032005,000682: 27,2266 65236 VSQ PDDL 032006,000683: 27,2267 00045 36D 032007,000684: 27,2270 56205 DMP DDV 032008,000685: 27,2271 16412 THETACON 032009,000686: 27,2272 41205 DMP DMP 032010,000687: 27,2273 03664 DELVSAB 032011,000688: 27,2274 01244 WEIGHT/G 032012,000689: 27,2275 77671 DDV 032013,000690: 27,2276 03735 F 032014,000691: 27,2277 24017 STOVL 14D 032015,000692: 27,2300 03656 DELVSIN 032016,000693: 032017,000694: 27,2301 74241 DOT VXSC 032018,000695: 27,2302 03673 UT 032019,000696: 27,2303 03673 UT 032020,000697: 27,2304 41552 VSL2 PUSH # (DELTAV.UP)UP SCALED AT 2(+7) P.D.L. 0 032021,000698: 27,2305 65245 BVSU PDDL # DELTA VP SCALED AT 2(+7) P.D.L. 6 032022,000699: 27,2306 03656 DELVSIN 032023,000700: 27,2307 00017 14D 032024,000701: 27,2310 63356 SIN PDVL 032025,000702: 27,2311 00007 6D 032026,000703: 27,2312 53435 VXV UNIT 032027,000704: 27,2313 03673 UT 032028,000705: 27,2314 45561 VXSC STADR 032029,000706: 27,2315 50076 STOVL VGTIG # UNIT(VP X UP)SIN(THETAT/2) IN VGTIG. 032030,000707: 27,2316 65256 UNIT PDDL # UNIT(DELTA VP) IN P.D.L. 6 032031,000708: 27,2317 00017 14D 032032,000709: 27,2320 74346 COS VXSC 032033,000710: 27,2321 74255 VAD VXSC 032034,000711: 27,2322 03701 VGTIG 032035,000712: 27,2323 00045 36D 032036,000713: 27,2324 53352 VSL2 VAD 032037,000714: 27,2325 77626 STADR 032038,000715: # Page 766 032039,000716: 27,2326 74076 STORE VGTIG # VG IGNITION SCALED AT 2(+7) M/CS 032040,000717: 032041,000718: 27,2327 77656 UNIT 032042,000719: 27,2330 27673 STOVL UT # THRUST DIRECTION SCALED AT 2(+1) 032043,000720: 27,2331 03701 VGTIG 032044,000721: 27,2332 45006 PUSH CALL 032045,000722: 27,2333 15741 GET.LVC # VGTIG IN LV COOR AT 2(+7) M/CS IN DELVLVC 032046,000723: 27,2334 77650 GOTO 032047,000724: 27,2335 03632 QTEMP 032048,000725: 27,2336 77745 S40.1B DLOAD 032049,000726: 27,2337 03442 TIG 032050,000727: 27,2340 00041 STORE TDEC1 032051,000728: 27,2341 77621 BDSU 032052,000729: 27,2342 03631 TPASS4 032053,000730: 27,2343 37452 STCALL DELLT4 # INTERCEPT TIME -- TIG. 032054,000731: 27,2344 27056 LEMPREC 032055,000732: 27,2345 40375 VLOAD SETPD # LOAD STATE VECTOR AT TIG FOR INITVEL. 032056,000733: 27,2346 00001 RATT 032057,000734: 27,2347 00001 0 032058,000735: 27,2350 03642 STORE RTIG 032059,000736: 27,2351 02323 STORE RINIT 032060,000737: 27,2352 77656 UNIT 032061,000738: 27,2353 27537 STOVL UNIT/R/ 032062,000739: 27,2354 00007 VATT 032063,000740: 27,2355 03650 STORE VTIG 032064,000741: 27,2356 02331 STORE VINIT 032065,000742: 27,2357 65345 DLOAD PDDL # NUMIT = 0 032066,000743: 27,2360 06524 ZEROVECS 032067,000744: 27,2361 16406 EPS1 032068,000745: 27,2362 43214 BOFF DAD 032069,000746: 27,2363 03745 NORMSW 032070,000747: 27,2364 56366 SMALLEPS 032071,000748: 27,2365 16410 EPS2 # EPSILON4 = 10 DEGREES OR 45 DEGREES. 032072,000749: 27,2366 66006 SMALLEPS PUSH SXA,1 032073,000750: 27,2367 02776 RTX1 032074,000751: 27,2370 45134 SXA,2 CALL 032075,000752: 27,2371 02777 RTX2 032076,000753: 27,2372 22000 INITVEL 032077,000754: 27,2373 41575 VLOAD PUSH 032078,000755: 27,2374 02366 DELVEET3 # VGTIG = VR-VN. 032079,000756: 27,2375 03701 STORE VGTIG 032080,000757: 27,2376 77656 UNIT # UT = UNIT (VGTIG) 032081,000758: 27,2377 17673 STODL UT 032082,000759: 27,2400 00045 36D 032083,000760: 27,2401 37664 STCALL VGDISP # CONVERT VGTIG (IN PUSHLIST) TO LOCAL 032084,000761: 27,2402 15741 GET.LVC # VERTICAL COORDINATES. 032085,000762: 27,2403 77650 GOTO 032086,000763: 27,2404 03632 QTEMP 032087,000764: 032088,000765: 27,2405 00707 03434 EPS1 2DEC* 2.777777778 E-2* # 10 DEGREES AT 1 REVOLUTION 032089,000766: # Page 767 032090,000767: 27,2407 03070 34344 EPS2 2DEC* 9.722222222 E-2* # 35 DEGREES AT 1 REVOLUTION. 032091,000768: 27,2411 00024 13714 THETACON 2DEC .31830989 B-8 032092,000769: 032093,000770: # Page 768 032094,000771: # SUBROUTINE NAME: S40.2,3 MOD. NO. 3, DATE APRIL 4, 1967 032095,000772: # MODIFICATION BY: JONATHON D. ADDELSTON (ADAMS ASSOCIATES) 032096,000773: # MOD. NO. 4: JULY 18, 1967: PETER ADLER (MIT/IL) 032097,000774: # MOD. NO. 5: OCTOBER 18, 1967: PETER ADLER (MIT/IL) 032098,000775: # ORIGINALLY BY: SAYDEAN ZELDIN (MIT INSTRUMENTATION LAB) AND RICHARD TALAYCO (SYSTEM DELVELOPMENT CORP) 032099,000776: 032100,000777: # S40.2,3 COMPUTES "POINTVSM" WHICH IS THE HALF-UNIT DESIRED THRUST VECTOR IN STABLE-MEMBER COORDINATES FROM "UT" 032101,000778: # WHICH IS THE SAME VECTOR IN REFERENCE COORDINATES. IT DETERMINES THE CORRECT VALUES FOR "SCAXIS" USING THE +X 032102,000779: # AXIS FOR DPS, APS, AND RCS BURNS. THE "WINGS-LEVEL HEADS-UP" LM ORIENTATION IS THEN COMPUTED IN REFERENCE 032103,000780: # COORDINATES. THESE VECTORS ALSO DEFINE THE "PREFERRED IMU ORIENTATION". UPON COMPLETION OF THIS CALCULATION, 032104,000781: # THE "PREFERRED ATTITUDE COMPUTED" FLAG IS SET (PFRATFLG). 032105,000782: 032106,000783: # CALLING SEQUENCE: 032107,000784: # L CALL # INTERPRETIVE CALL. 032108,000785: # L +1 S40.2,3 032109,000786: # L +2 (RETURN) # GIMBAL ANGLE VECTOR IN MPAC. 032110,000787: 032111,000788: # SUBROUTINES CALLED: NONE. 032112,000789: 032113,000790: # NORMAL RETURN: L +2 (SEE CALLING SEQUENCE ABOVE). 032114,000791: 032115,000792: # ALARM/ABORT MODES: NONE. 032116,000793: 032117,000794: # INPUT: 032118,000795: # 1. REFSMMAT MATRIX FROM REFERENCE TO STABLE-MEMBER COORDINATES SCALED AT 2. 032119,000796: # 2. UT HALF-UNIT DESIRED THRUST DIRECTION. 032120,000797: # 3. RTIG POSITION AT TIG IN REFERENCE COORDINATES. 032121,000798: 032122,000799: # OUTPUT: 032123,000800: # 1. `XSCREF' WINGS-LEVEL HEADS-UP LM ORIENTATION 032124,000801: # `YSCREF' IN REFERENCE COORDINATES 032125,000802: # `ZSCREF' (PREFERRED IMU ORIENTATION). 032126,000803: # 2. POINTVSM DESIRED THRUST DIRECTION IN STABLE-MEMBER COORDINATES. 032127,000804: # 3. SCAXIS HALF-UNIT OF AXIS TO ALIGN IN STABLE-MEMBER COORDINATES. 032128,000805: # 4. PFRATFLG INTERPRETIVE FLAG. ON: PREFERRED ORIENTATION COMPUTED; OFF: NOT COMPUTED. 032129,000806: 032130,000807: # DEBRIS: NONE 032131,000808: # Page 769 032132,000809: 032133,000810: 27,2413 COUNT* $$/S40.2 032134,000811: 27,2413 77775 S40.2,3 VLOAD # UT: DESIRED THRUST DIRECTION (HALF-UNIT) 032135,000812: 27,2414 03673 UT # (PUT INTO TOP OF PUSH-DOWN-LIST.) 032136,000813: 27,2415 76521 MXV VSL1 # TRANSFORM THRUST DIRECTION TO STABLE- 032137,000814: 27,2416 01734 REFSMMAT # MEMBER FROM REFERENCE COORDS (RESCALE). 032138,000815: 27,2417 27773 STOVL POINTVSM # SAVE FOR "VECPOINT" ROUTINE (LEMMANU). 032139,000816: 27,2420 06522 UNITX # SCAXIS SET TO +X, FOR P40 AND P42 AND 032140,000817: 27,2421 27765 STOVL SCAXIS # FOR P41 IF RCS NOT -X,+Y,-Y,+Z,-Z. 032141,000818: 27,2422 03673 UT # ASSUME +X BURN ALWAYS, EVEN FOR RCS. 032142,000819: 27,2423 03607 PLUSX STORE XSCREF # XSCREF = UT (DESIRED THRUST DIRECTION) 032143,000820: 27,2424 53435 VXV UNIT # RTIG = POSITION AT TIME-OF-IGNITION. 032144,000821: 27,2425 03642 RTIG # YSCREF = UNIT(UT X RTIG) 032145,000822: 27,2426 46125 PDDL BHIZ 032146,000823: 27,2427 00045 36D # TEST MAGNITUDE OF UT X RTIG 032147,000824: 27,2430 56441 FIXY # IF SMALL, USE UT X VTIG AS YSC 032148,000825: 27,2431 45575 STORY VLOAD STADR 032149,000826: 27,2432 74162 STORE YSCREF 032150,000827: 27,2433 76435 VXV VSL1 # COMPUTE (YSCREF X XCREF), BUT FOR A 032151,000828: 27,2434 03607 XSCREF # RIGHT HANDED SYSTEM, NEED (X CROSS Y). 032152,000829: 27,2435 77676 VCOMP # ZSCREF = - (YSCREF X XSCREF) 032153,000830: 27,2436 03623 STORE ZSCREF # = + (XSCREF X YSCREF) 032154,000831: 032155,000832: 27,2437 43414 SET RVQ 032156,000833: 27,2440 01073 PFRATFLG 032157,000834: 27,2441 47375 FIXY VLOAD VXV # IN THIS CASE, 032158,000835: 27,2442 03607 XSCREF # YSCREF = UNIT(XSCREF X VTIG) 032159,000836: 27,2443 03650 VTIG 032160,000837: 27,2444 41456 UNIT PUSH 032161,000838: 27,2445 77650 GOTO 032162,000839: 27,2446 56431 STORY 032163,000840: # Page 770 032164,000841: # SUBROUTINE S40.8 032165,000842: # MODIFIED APRIL 3, 1968 BY PETER ADLER, MIT/IL 032166,000843: 032167,000844: # DESCRIPTION 032168,000845: # S40.8 UPDATES THE VELOCITY-TO-BE-GAINED VECTOR, VG, (AND FOR LAMBERT TARGETTED BURNS ALSO EXTRAPOLATES VG 032169,000846: # USING THE BDT VECTOR) COMPUTES THE TIME FOR ISSUING THE ENGINE OFF COMMAND, TGO, AND CALLS THE ROUTINE 032170,000847: # "FINDCDUW", WHICH GENERATES STEERING COMMANDS FOR THE DAP. 032171,000848: 032172,000849: # CALLING SEQUENCE 032173,000850: # L-1 CALL 032174,000851: # L S40.8 032175,000852: # L+1 INTERPRETIVE RETURN 032176,000853: 032177,000854: # ALARM 032178,000855: # IF VG.DELVREF IS NEGATIVE (VG AND DELVREF OVER 90 DEGREES APART), BYPASS TGO AND STEERING COMPUTATIONS 032179,000856: # AND SET ALARM 1407. RETURN TO CALLER NORMALLY. 032180,000857: 032181,000858: # INPUT AND INITIALIZATION 032182,000859: # VGPREV REFERENCE 2(7) M/CS 032183,000860: # DELVREF REFERENCE 2(7) M/CS 032184,000861: # BDT REFERENCE 2(7) M/CS 032185,000862: # TDECAY TAIL-OFF TIME 2(28) CS 032186,000863: # XDELVFLG 1 = EXTERNAL DELTA-V; 0 = LAMBERT (AIMPOINT) 032187,000864: # STEERSW 1 = DO STEERING AND TGO COMPUTATIONS; 0 = VG UPDATE ONLY 032188,000865: # FIRSTFLG 1 = GONE TO LAMBERT AT LEAST ONCE; 0 = HAVEN'T GONE TO LAMBERT YET. 032189,000866: 032190,000867: # NOTE: VGTIG EQUALS VGPREV 032191,000868: 032192,000869: # OUTPUT 032193,000870: # STEERSW SEE INPUT 032194,000871: # INPULSW 1 = ENGINE OFF IN TGO CENTISECONDS; 0 = CONTINUE BURN 032195,000872: # TGO TIME TO CUT-OFF 2(28) CS 032196,000873: # SEE FINDCDUW FOR STEERING OUTPUTS. 032197,000874: 032198,000875: # SUBROUTINE CALLED 032199,000876: # FINDCDUW 032200,000877: 032201,000878: # DEBRIS 032202,000879: # MPACS, PUSHLIST 032203,000880: 032204,000881: 27,2447 COUNT* $$/S40.8 032205,000882: # Page 771 032206,000883: 27,2447 77614 S40.8 BOF # GENERATE VR IF NOT EXTERNAL DELTA-V BURN 032207,000884: 27,2450 01347 XDELVFLG 032208,000885: 27,2451 56731 RASTEER1 032209,000886: 27,2452 52375 VLOAD VSU 032210,000887: 27,2453 03701 VGPREV 032211,000888: 27,2454 03527 DELVREF 032212,000889: 27,2455 03707 VGAIN* STORE VG # VELOCITY TO BE GAINED SCALED AT (7) M/CS 032213,000890: 27,2456 76521 MXV VSL1 032214,000891: 27,2457 01734 REFSMMAT 032215,000892: 27,2460 03253 STORE UNFC/2 032216,000893: 27,2461 51575 BDTOK VLOAD ABVAL 032217,000894: 27,2462 03707 VG 032218,000895: 27,2463 03664 STORE VGDISP 032219,000896: 27,2464 77201 TGDCALC SETPD VLOAD 032220,000897: 27,2465 00001 0 032221,000898: 27,2466 03707 VG 032222,000899: 27,2467 27701 STOVL VGPREV 032223,000900: 27,2470 03527 DELVREF 032224,000901: 27,2471 57414 BOFF VCOMP 032225,000902: 27,2472 01344 STEERSW 032226,000903: 27,2473 00052 QPRET 032227,000904: 27,2474 77656 UNIT 032228,000905: 27,2475 41441 DOT PUSH 032229,000906: 27,2476 03707 VG 032230,000907: 27,2477 56244 BPL DDV 032231,000908: 27,2500 56526 ALARMIT # DELV IS MORE THAN 90 DEGREES FROM VG. 032232,000909: 27,2501 03743 VEX 032233,000910: 27,2502 41215 DAD DMP 032234,000911: 27,2503 06522 DPHALF 032235,000912: 27,2504 56261 SR DDV 032236,000913: 27,2505 20613 10D 032237,000914: 27,2506 00045 36D 032238,000915: 27,2507 43205 DMP DAD 032239,000916: 27,2510 16535 -FOURDT 032240,000917: 27,2511 03741 TDECAY 032241,000918: 27,2512 03517 STORE TGO 032242,000919: 27,2513 77615 DAD 032243,000920: 27,2514 01234 PIPTIME 032244,000921: 27,2515 17442 STODL TIG 032245,000922: 27,2516 03517 TGO 032246,000923: 27,2517 51025 DSU BPL 032247,000924: 27,2520 16537 FOURSECS # 400 CS 032248,000925: 27,2521 61100 FINDCDUW -2 032249,000926: 27,2522 43014 SET CLRGO 032250,000927: 27,2523 01066 IMPULSW 032251,000928: 27,2524 01224 STEERSW 032252,000929: 27,2525 00052 QPRET 032253,000930: 032254,000931: 27,2526 77776 ALARMIT EXIT 032255,000932: 032256,000933: # Page 772 032257,000934: 27,2527 05567 TC ALARM 032258,000935: 27,2530 01407 OCT 01407 032259,000936: 27,2531 06042 TC INTPRET 032260,000937: 27,2532 77650 GOTO # SKIP TGO COMPUTATION BUT CALL FINDCDUW. 032261,000938: 27,2533 61100 FINDCDUW -2 # FINDCDUW WILL EXIT TO UPDATEVG +3. 032262,000939: 032263,000940: 27,2534 77715 77777 -FOURDT 2DEC -800 B-18 # -4 (200 CS.) B(-18) 032264,000941: 27,2536 00000 00620 FOURSECS 2DEC 400 B-28 # 400 CS SCALED AT 2(+28) CS 032265,000942: 27,2540 E7,1742 2VEXHUST = VEX 032266,000943: 032267,000944: # Page 773 032268,000945: # NAME: S40.13 -- TIMEBURN 032269,000946: 032270,000947: # FUNCTION (1) DETERMINE WHETHER A GIVEN COMBINATION OF VELOCITY TO 032271,000948: # BE GAINED AND ENGINE CHOICE RESULT IN A BURN TIME 032272,000949: # SUFFICIENT TO ALLOW STEERING AT THE VEHICLE DURING THE 032273,000950: # BURN 032274,000951: # (2) THE MAGNITUDE OF THE RESULTING BURN TIME -- IF IT 032275,000952: # IS SHORT -- AND THE ASSOCIATED TIME OF THE ENGINE OFF 032276,000953: # SIGNAL 032277,000954: 032278,000955: # CALLING SEQUENCE VIA FINDVAC AS A NEW JOB 032279,000956: 032280,000957: # INPUT VGTIG -- VELOCITY TO BE GAINED VECTOR (METERS/CS) AT +7 032281,000958: # WEIGHT/G -- MASS OF VEHICLE IN KGM AT +16 032282,000959: # F -- APS ENGINE THRUST IN M.NEWTONS AT +7 032283,000960: # AND ALSO FOR RCS ENGINE 032284,000961: # MDOT -- RATE OF DECREASE OF VEHICLE MASS DURING ENGINE 032285,000962: # BURN IN KILOGRAMS/CS AT +3. THIS SCALING MAY 032286,000963: # REQUIRE MODIFICATION FOR SATURN BURNS. 032287,000964: # ENG1FLAG -- SWITCH TO DECIDE WHETHER APS OR DPS ENGINE IS USED 032288,000965: # =0 DPS 032289,000966: # =1 APS 032290,000967: 032291,000968: # OUTPUT IMPULSW ZERO FOR STEERING 032292,000969: # ONE FOR ATTITUDE HOLD 032293,000970: # NOTHROTL ZERO FOR THROTTLING 032294,000971: # ONE TO INHIBIT THROTTLING 032295,000972: # TGO TIME TO BURN IN CS 032296,000973: # THE QUANTITY M.NEWTON = 10000 NEWTONS WILL BE USED TO EXPRESS 032297,000974: # FORCE. 032298,000975: 032299,000976: 27,2540 E7,1516 EBANK= TGO 032300,000977: 27,2540 COUNT* $$/40.13 032301,000978: 27,2540 06042 S40.13 TC INTPRET 032302,000979: 27,2541 43001 SETPD CLEAR 032303,000980: 27,2542 00001 00D 032304,000981: 27,2543 01266 IMPULSW # ASSUME NO STEERING UNTIL FOUND OTHERWISE 032305,000982: 27,2544 51575 VLOAD ABVAL 032306,000983: 27,2545 03701 VGTIG # VELOCITY TO BE GAINED AT +7 032307,000984: 27,2546 41325 PDDL DMP # 00D = MAG OF VGTIG AT +7 032308,000985: 27,2547 21006 4SEC(17) # CORRECT VG FOR 4 SECS OF 2 JET ULLAGE 032309,000986: 27,2550 34021 FRCS2 032310,000987: 27,2551 72471 DDV SL1 # SCALE 032311,000988: 27,2552 01244 WEIGHT/G 032312,000989: 27,2553 41421 BDSU PUSH 032313,000990: 27,2554 43014 BOFF SET 032314,000991: 27,2555 05342 APSFLAG 032315,000992: 27,2556 56626 S40.13D # FOR DPS ENGINE 032316,000993: 27,2557 02463 NOTHROTL 032317,000994: 27,2560 56345 DLOAD DDV # 00D = MAG OF VGTIG CORRECTED 032318,000995: # In the following line in the original program listing, +24 is crossed 032319,000996: # out and +23 written in by hand.---RSB 2003 032320,000997: 27,2561 16001 K1VAL # M.NEWTONS-CS AT +23 032321,000998: 27,2562 01244 WEIGHT/G 032322,000999: 27,2563 50021 BDSU BMN 032323,001000: # Page 774 032324,001001: 27,2564 00001 00D 032325,001002: 27,2565 56610 S40.131 # TGO LESS THAN 100 CS 032326,001003: 27,2566 41325 PDDL DMP # 02D = TEMP1 AT +7 032327,001004: 27,2567 03737 MDOT 032328,001005: 032329,001006: # MDOT REPRESENTS THE RATE OF DECREAS OF VEHICLE MASS DURING ENGINE 032330,001007: # BURN IN KILOGRAMS/CS. WHEN SATURN IS USED, THE SCALING MAY 032331,001008: # REQUIRE ADJUSTMENT. 032332,001009: 032333,001010: 27,2570 16700 3.5SEC # 350 CS AT +14 032334,001011: 27,2571 65221 BDSU PDDL 032335,001012: 27,2572 01244 WEIGHT/G 032336,001013: 27,2573 03735 F 032337,001014: 27,2574 60405 DMP SR2 # SCALE 032338,001015: 27,2575 16702 5SECS 032339,001016: 27,2576 41471 DDV PUSH # 04D = TEMP2 032340,001017: 27,2577 51021 BDSU BPL 032341,001018: 27,2600 00003 02D 032342,001019: 27,2601 56626 S40.13D 032343,001020: 27,2602 55345 DLOAD BDDV 032344,001021: 27,2603 43205 DMP DAD 032345,001022: 27,2604 16702 5SECS 032346,001023: 27,2605 16676 1SEC2D # 100 CS AT +14 032347,001024: 27,2606 77650 GOTO 032348,001025: 27,2607 56616 S40.132 032349,001026: 27,2610 41345 S40.131 DLOAD DMP 032350,001027: 27,2611 01244 WEIGHT/G 032351,001028: # In the following line in the original program listing, PUSH is 032352,001029: # hand-circled.---RSB 2003 032353,001030: 27,2612 41542 SR1 PUSH 032354,001031: 27,2613 56215 DAD DDV 032355,001032: 27,2614 16003 K2VAL # M.NEWTON CS AT +24 032356,001033: 27,2615 16005 K3VAL # M.NEWTON (garbled) AT +10 032357,001034: 27,2616 77414 S40.132 SET EXIT 032358,001035: 27,2617 01066 IMPULSW 032359,001036: 27,2620 07262 S40.132* TC TPAGREE 032360,001037: 27,2621 30154 CA MPAC 032361,001038: # In the following line in the original program listing, 032362,001039: # TS TGO +1 is hand-written in the comment area.---RSB 2003 032363,001040: 27,2622 56001 XCH L 032364,001041: 27,2623 34755 CA ZERO 032365,001042: # In the original program listing, TS TGO is hand-written, 032366,001043: # seemingly between CA ZERO and DXCH TGO.---RSB 2003. 032367,001044: 27,2624 53517 DXCH TGO 032368,001045: 27,2625 12650 TCF S40.134 032369,001046: 032370,001047: 27,2626 41345 S40.13D DLOAD DMP # FOR DPS ENGINE 032371,001048: 27,2627 00001 00D 032372,001049: 27,2630 01244 WEIGHT/G 032373,001050: 27,2631 43006 PUSH BON 032374,001051: 27,2632 05302 APSFLAG 032375,001052: 27,2633 56671 APSTGO 032376,001053: 27,2634 43071 DDV CLEAR 032377,001054: 27,2635 16007 S40.136 032378,001055: 27,2636 02663 NOTHROTL 032379,001056: 27,2637 41400 BOV PUSH 032380,001057: # Page 775 032381,001058: 27,2640 56653 S40.130V 032382,001059: 27,2641 51025 S40.127 DSU BPL 032383,001060: 27,2642 16704 6SEC # 600.0 CS AT +14 032384,001061: 27,2643 56661 S40.138 032385,001062: 27,2644 52015 DAD GOTO 032386,001063: 27,2645 16704 6SEC 032387,001064: 27,2646 56616 S40.132 032388,001065: 27,2647 77776 S40.133 EXIT 032389,001066: 27,2650 05353 S40.134 TC PHASCHNG 032390,001067: 27,2651 00003 OCT 00003 032391,001068: 27,2652 05155 TC ENDOFJOB 032392,001069: 27,2653 40545 S40.130V DLOAD SR4 # RECOMPUTED TGO IN TIMER UNITS 032393,001070: 27,2654 77671 DDV 032394,001071: 27,2655 16011 S40.136_ # S40.136 SHIFTED LEFT 10 032395,001072: 27,2656 03517 STORE TGO 032396,001073: 27,2657 77776 EXIT 032397,001074: 27,2660 12650 TCF S40.134 # REJOIN COMMON CODING FOR RESTART PROTECT 032398,001075: 032399,001076: 27,2661 51025 S40.138 DSU BPL 032400,001077: 27,2662 16706 89SECS 032401,001078: 27,2663 56666 STORETGO 032402,001079: 27,2664 77614 SET 032403,001080: 27,2665 02463 NOTHROTL 032404,001081: 27,2666 77745 STORETGO DLOAD # LOAD TGO AT 2(14) 032405,001082: 27,2667 77776 EXIT 032406,001083: 27,2670 12620 TCF S40.132* 032407,001084: 032408,001085: 27,2671 62471 APSTGO DDV SL2 032409,001086: 27,2672 34007 FAPS 032410,001087: 27,2673 77650 GOTO 032411,001088: 27,2674 56667 STORETGO +1 032412,001089: 27,2675 00144 00000 1SEC2D 2DEC 100.0 B-14 # 100.0 CS AT +14 032413,001090: 27,2677 01274 00000 3.5SEC 2DEC 350.0 B-13 # 350 CS AT +13 032414,001091: 27,2701 00764 00000 5SECS 2DEC 500.0 B-14 # 500.0 CS AT +14 032415,001092: 27,2703 01130 00000 6SEC 2DEC 600.0 B-14 # 600.0 CS AT +14 032416,001093: 27,2705 21304 00000 89SECS 2DEC 8900.0 B-14 032417,001094: 032418,001095: # FUNCTION (1) GENERATES REQUIRED VELOCITY AND VELOCITY-TO-BE-GAINED 032419,001096: # VECTORS FOR USE DURING AIMPOINT MANEUVERS EVERY TWO 032420,001097: # COMPUTATION CYCLES (4 SECONDS). 032421,001098: # (2) UPDATES THE B VECTOR WHICH IS USED IN THE FINAL 032422,001099: # CALCULATION OF EXTRAPOLATING THE VELOCITY-TO-BE-GAINED 032423,001100: # THROUGH ONE 2-SECOND INTERVAL INTO THE FUTURE. 032424,001101: 032425,001102: # CALLING SEQUENCE VIA FINDVAC AS NEW JOB. 032426,001103: 032427,001104: # INPUT RN ACTIVE VEHICLE RADIUS VECTOR IN METERS AT +29 032428,001105: # VN ACTIVE VEHICLE VELOCITY VECTOR IN METERS/CS AT +7 032429,001106: # Page 776 032430,001107: # VPREV LAST COMPUTED VELOCITY REQUIRED VECTOR IN 032431,001108: # METERS/CS AT +7. 032432,001109: # TIG TIME OF IGNITION IN CS AT +28. 032433,001110: # DLTARG COMPUTATION CYCLE INTERVAL = 200 CS AT +28. 032434,001111: # PIPTIME TIME OF RN AND VN IN CS AT +28. 032435,001112: # GDT/2 HALF OF VELOCITY GAINED IN DELTA T TIME DUE TO 032436,001113: # ACELERATION OF GRAVITY IN METERS/CS AT +7. 032437,001114: # DELVREF CHANGE IN VELOCITY DURING LAST 2 SEC IN 032438,001115: # METERS/CS AT +7. 032439,001116: 032440,001117: # OUTPUT VGPREV VELOCITY TO BE GAINED VECTOR IN METERS/CS AT +7. 032441,001118: # VGDISP MAG OF VGPREV FOR DISPLAY PURPOSES. 032442,001119: # VRPREV VELOCTY REQUIRED VECTOR IN METERS/CS AT +7. 032443,001120: # BDT B VECTOR IN METERS/CS AT +7. 032444,001121: 032445,001122: # SUBROUTINES USED INITVEL 032446,001123: 032447,001124: 27,2707 E7,1700 EBANK= VGPREV 032448,001125: 27,2707 COUNT* $$/S40.9 032449,001126: 27,2707 06042 S40.9 TC INTPRET 032450,001127: 27,2710 77601 SETPD 032451,001128: 27,2711 00001 00D 032452,001129: 27,2712 71214 SET DLOAD 032453,001130: 27,2713 01072 AVFLAG # SET AVFLAG FOR LEM ACTIVE 032454,001131: 27,2714 06524 HI6ZEROS 032455,001132: 27,2715 77725 PDDL 032456,001133: 27,2716 16406 EPS1 032457,001134: 27,2717 43214 BOFF DAD # EPSILON4 = 10 OR 45 DEGREES. 032458,001135: 27,2720 03745 NORMSW 032459,001136: 27,2721 56723 EPSSMALL 032460,001137: 27,2722 16410 EPS2 032461,001138: 27,2723 45006 EPSSMALL PUSH CALL 032462,001139: 27,2724 22002 HAVEGUES 032463,001140: 27,2725 77776 ENDS40.9 EXIT 032464,001141: 27,2726 05353 TC PHASCHNG 032465,001142: 27,2727 00002 OCT 2 032466,001143: 27,2730 15155 TCF ENDOFJOB 032467,001144: 032468,001145: 27,2731 51575 RASTEER1 VLOAD ABVAL 032469,001146: 27,2732 01220 RN 032470,001147: 27,2733 53744 LXC,2 SL* 032471,001148: 27,2734 02777 RTX2 032472,001149: 27,2735 57576 0,2 032473,001150: 27,2736 27715 STOVL RMAG 032474,001151: 27,2737 03444 RTARG 032475,001152: 27,2740 47051 VSU RTB 032476,001153: 27,2741 01220 RN 032477,001154: 27,2742 21725 NORMUNX1 032478,001155: 27,2743 17656 STODL IC 032479,001156: 27,2744 00045 36D # C(36D) = ABVAL(C) 032480,001157: 27,2745 53674 XAD,2 SL* 032481,001158: 27,2746 00046 X1 032482,001159: # Page 777 032483,001160: 27,2747 57576 0,2 032484,001161: 27,2750 00037 STORE 30D 032485,001162: 27,2751 41301 NORM DMP 032486,001163: 27,2752 00050 X2 032487,001164: 27,2753 03715 RMAG 032488,001165: 27,2754 57101 NORM XAD,2 032489,001166: 27,2755 00047 X1 032490,001167: 27,2756 00046 X1 032491,001168: 27,2757 77734 SXA,2 032492,001169: 27,2760 03766 MUSCALE 032493,001170: 27,2761 17725 STODL R1C 032494,001171: 27,2762 00037 30D 032495,001172: 27,2763 65342 SR1 PDDL 032496,001173: 27,2764 03715 RMAG 032497,001174: 27,2765 65342 SR1 PDDL 032498,001175: 27,2766 03723 RTMAG 032499,001176: 27,2767 43342 SR1 DAD 032500,001177: 27,2770 45415 DAD STADR 032501,001178: 27,2771 74044 STORE SS # SS = (R1 + R2 + C)/2 032502,001179: 27,2772 41225 DSU DMP 032503,001180: 27,2773 00037 30D 032504,001181: 27,2774 03721 MU/A 032505,001182: 27,2775 77621 BDSU 032506,001183: 27,2776 03717 MUASTEER 032507,001184: # In the original program listing, the following line has a hand-written 032508,001185: # comment which appears to be something like 032509,001186: # (S - C) u 032510,001187: # ( u - --------- ) 032511,001188: # 2 a 032512,001189: # where `u' represents a lower-case Greek MU. Other similar handwritten 032513,001190: # comments are included below without further apology.---RSB 2003. 032514,001191: 27,2777 45325 PDDL DSU 032515,001192: 27,3000 03733 SS 032516,001193: 27,3001 03715 RMAG # (S-R) is written in by hand. 032517,001194: 27,3002 70501 NORM SR1 032518,001195: 27,3003 00047 X1 # (S - R) u (S - C) 032519,001196: 27,3004 41271 DDV DMP # 2 ------- ( u - --------- ) 032520,001197: 27,3005 03725 R1C # R C 2 a 032521,001198: 27,3006 53664 XSU,2 SL* 032522,001199: 27,3007 00046 X1 032523,001200: 27,3010 57575 1,2 032524,001201: 27,3011 77754 LXA,2 # 2 (S - R) u (S - C) 032525,001202: 27,3012 03766 MUSCALE # SQRT ( --------- (u - --------- ) ) 032526,001203: 27,3013 75366 SQRT SIGN # R C 2 a 032527,001204: 27,3014 02673 GEOMSGN # (GEOMSGN = SGNA) 032528,001205: 27,3015 00041 STORE 32D # + OR - A 032529,001206: # 2 (S - R) u (S - C) 032530,001207: # A = SGNA (SQRT ( --------- (u - ---------) ) ) 032531,001208: # R C 2 a 032532,001209: 27,3016 41345 DLOAD DMP 032533,001210: 27,3017 03733 SS 032534,001211: 27,3020 03721 MU/A # u S 032535,001212: 27,3021 77621 BDSU # u - ___ 032536,001213: 27,3022 03717 MUASTEER # 2 a 032537,001214: 27,3023 45325 PDDL DSU 032538,001215: 27,3024 03733 SS 032539,001216: 27,3025 03723 RTMAG 032540,001217: 27,3026 70501 NORM SR1 032541,001218: 27,3027 00047 X1 # 2 (S - R T) u S 032542,001219: 27,3030 41271 DDV DMP # ----------- ( u - --- ) 032543,001220: # R C 2 a 032544,001221: # Page 778 032545,001222: 27,3031 03725 R1C 032546,001223: 27,3032 53664 XSU,2 SL* 032547,001224: 27,3033 00046 X1 032548,001225: 27,3034 57575 1,2 032549,001226: 27,3035 65366 SQRT PDDL # -B (NO SIGN) 032550,001227: 27,3036 03733 SS 032551,001228: 27,3037 56225 DSU DDV 032552,001229: 27,3040 00037 30D 032553,001230: 27,3041 03733 SS 032554,001231: 27,3042 41566 SQRT PUSH 032555,001232: 27,3043 67542 SR1 ASIN # ASIN ( SQRT (S-C)/S ) ) 032556,001233: 27,3044 65205 DMP PDDL 032557,001234: 27,3045 17216 2PI+3 032558,001235: 27,3046 56325 PDDL DDV 032559,001236: 27,3047 00037 30D 032560,001237: 27,3050 03733 SS 032561,001238: 27,3051 77600 BOV # SQRT (C/S) SQRT ( (S-C)/S ) 032562,001239: 27,3052 57053 +1 032563,001240: 27,3053 41366 SQRT DMP # SQRT(C/S) SQRT((S-C)/S) = (1/S) SQRT(C(S-C)) 032564,001241: 27,3054 44242 SR3 BDSU 032565,001242: 27,3055 65365 SIGN PDDL 032566,001243: 27,3056 02673 GEOMSGN # SGNA( ARCSIN( SQRT((S-C)/S) ) - (1/S) SQRT(C(S-C)) ) 032567,001244: 27,3057 17216 2PI+3 032568,001245: 27,3060 45302 SR2 DSU # (C/S) (PI/2 - SGNA( ) ) 032569,001246: 27,3061 65205 DMP PDDL 032570,001247: 27,3062 03733 SS 032571,001248: 27,3063 03733 SS # 3 032572,001249: 27,3064 75442 SR3 SQRT # S SQRT(S) = SQRT(S ) 032573,001250: 27,3065 77605 DMP 032574,001251: 27,3066 52525 PDDL SL3 # 3 032575,001252: 27,3067 03717 MUASTEER # S 032576,001253: 27,3070 55366 SQRT BDDV # SQRT(---) 032577,001254: 27,3071 43225 DSU DAD # 2 u 032578,001255: 27,3072 03631 TPASS4 # TMIN ENERGY 032579,001256: 27,3073 01234 PIPTIME 032580,001257: 27,3074 14037 STODL 30D # (t - t ) 032581,001258: 27,3075 77765 SIGN # M 2 032582,001259: 27,3076 00037 30D # B WITH SIGN 032583,001260: 27,3077 00037 STORE 30D 032584,001261: 27,3100 77214 BON VLOAD 032585,001262: 27,3101 03705 NORMSW 032586,001263: 27,3102 57123 180MESS 032587,001264: 27,3103 03656 IC 032588,001265: 27,3104 53451 VSU UNIT 032589,001266: 27,3105 03537 UNIT/R/ 032590,001267: 27,3106 63361 VXSC PDVL # UNCM 032591,001268: 27,3107 00037 30D # B UNCM 032592,001269: 27,3110 03656 IC 032593,001270: 27,3111 53455 VAD UNIT 032594,001271: 27,3112 03537 UNIT/R/ # VNC 032595,001272: # Page 779 032596,001273: 27,3113 53361 GETVRVG1 VXSC VAD 032597,001274: 27,3114 00041 32D # A UNCP 032598,001275: 27,3115 53744 GETVRVG2 LXC,2 VSR* 032599,001276: 27,3116 02777 RTX2 032600,001277: 27,3117 57177 0 -1,2 032601,001278: 27,3120 02337 STORE VIPRIME 032602,001279: 27,3121 77650 GOTO 032603,001280: 27,3122 57166 ASTREND -2 032604,001281: 27,3123 50375 180MESS VLOAD DOT 032605,001282: 27,3124 03656 IC 032606,001283: 27,3125 03537 UNIT/R/ 032607,001284: 27,3126 77240 BMN VLOAD 032608,001285: 27,3127 57146 NEGPROD 032609,001286: 27,3130 03656 IC 032610,001287: 27,3131 63362 VSR1 PDVL 032611,001288: 27,3132 03537 UNIT/R/ 032612,001289: 27,3133 53362 VSR1 VAD 032613,001290: 27,3134 77656 UNIT 032614,001291: 27,3135 57406 PUSH VCOMP # FOR A 032615,001292: 27,3136 75235 VXV SIGN 032616,001293: 27,3137 02674 UN 032617,001294: 27,3140 02673 GEOMSGN 032618,001295: 27,3141 74256 UNIT VXSC 032619,001296: 27,3142 00037 30D 032620,001297: 27,3143 77715 PDVL # UNIT(IC-IR) +-B 032621,001298: 27,3144 77650 GOTO 032622,001299: 27,3145 57113 GETVRVG1 032623,001300: 27,3146 74575 NEGPROD VLOAD VSR1 032624,001301: 27,3147 03537 UNIT/R/ 032625,001302: 27,3150 74515 PDVL VSR1 032626,001303: 27,3151 03656 IC 032627,001304: 27,3152 53451 VSU UNIT 032628,001305: 27,3153 77606 PUSH 032629,001306: 27,3154 75235 VXV SIGN 032630,001307: 27,3155 02674 UN # FOR B 032631,001308: 27,3156 02673 GEOMSGN 032632,001309: 27,3157 74256 UNIT VXSC 032633,001310: 27,3160 00041 32D 032634,001311: 27,3161 77715 PDVL 032635,001312: 27,3162 53361 VXSC VAD 032636,001313: 27,3163 00037 30D 032637,001314: 27,3164 77650 GOTO 032638,001315: 27,3165 57115 GETVRVG2 032639,001316: 27,3166 77651 VSU 032640,001317: 27,3167 03553 VN1 032641,001318: 27,3170 02366 ASTREND STORE DELVEET3 032642,001319: 27,3171 53135 FIRSTTME SLOAD BZE 032643,001320: 27,3172 03000 RTX2 032644,001321: 27,3173 57177 GETGOBL 032645,001322: 27,3174 52175 VLOAD GOTO # NO OBLATENESS COMP IF IN MOON SPHERE 032646,001323: # Page 780 032647,001324: 27,3175 02366 DELVEET3 032648,001325: 27,3176 57212 NOGOBL 032649,001326: # In the original program listing, VLOAD UNIT RN below is circled, and connected to the 032650,001327: # comment after 34D ("34D = /RN/ etc.") with an arrow.---RSB 2003. 032651,001328: 27,3177 53575 GETGOBL VLOAD UNIT # CALCULATE OBLATENESS TERM. 032652,001329: 27,3200 01220 RN 032653,001330: 27,3201 45345 DLOAD DSU 032654,001331: 27,3202 01234 PIPTIME # 2 032655,001332: 27,3203 03512 GOBLTIME # G = -(MU/R )(UNITGOBL)(T-TIG) 032656,001333: 27,3204 56205 DMP DDV # OBL 032657,001334: 27,3205 16023 EARTHMU 032658,001335: 27,3206 00043 34D # 34D = /RN/ (2) FROM UNIT OPERATION. 032659,001336: 27,3207 53361 VXSC VAD 032660,001337: 27,3210 03521 UNITGOBL 032661,001338: 27,3211 02366 DELVEET3 # OUTPUT FROM INITVEL VG = VR - VN 032662,001339: 27,3212 02366 NOGOBL STORE DELVEET3 # VG = VR + GOBL - VN 032663,001340: 27,3213 77650 GOTO 032664,001341: 27,3214 56455 VGAIN* 032665,001342: 032666,001343: 27,3215 31103 36652 2PI+3 2DEC 3.141592653 B-2 032667,001344: 032668,001345: # Page 781 032669,001346: # TRIMGIMB (FORMERLY S40.6) 032670,001347: # MOD 0 24 FEB 67 PETER ADLER 032671,001348: 032672,001349: # FUNCTION: 032673,001350: # TRIMS DPS ENGINE TO MINIMIZE THRUST/CG OFFSET. ENGINE IS GIMBALLED TO FULL + PITCH AND + ROLL (TO LOCK) 032674,001351: # FOR REFERENCE AND IS THEN BROUGHT BACK TO TRIM POSITION BY RUNNING FOR THE PROPER TIMES (TO BE 032675,001352: # SPECIFIED BY GAEC) IN - PITCH AND - ROLL. 032676,001353: 032677,001354: # CALLING SEQUENCE: 032678,001355: # VIA WAITLIST FROM R03 032679,001356: 032680,001357: # INPUT: 032681,001358: # PITTIME TIME TO RUN FROM FULL + PITCH TO TRIM (CS) 032682,001359: # ROLLTIME TIME TO RUN FROM FULL + ROLL TO TRIM (CS) 032683,001360: 032684,001361: # SUBROUTINES USED: 032685,001362: # WAITLIST, FIXDELAY, VARDELAY, FLAGUP, FLAGDOWN, NOVAC 032686,001363: 032687,001364: 27,3217 COUNT* $$/S40.6 032688,001365: 27,3217 E6,1401 EBANK= ROLLTIME # OCTAL MASKS: PRIO5=05000 EBANK5=02400 032689,001366: 032690,001367: 27,3217 05516 TRIMGIMB TC DOWNFLAG # GMBDRVSW FLAG IS SET WHEN EITHER ROLL OR 032691,001368: 27,3220 00137 ADRES GMBDRVSW # PITCH IS COMPLETED, WHICHEVER IS FIRST. 032692,001369: 032693,001370: 27,3221 45017 CS PRIO5 # TURN OFF - PITCH, - ROLL, IF ON. 032694,001371: 27,3222 00006 EXTEND 032695,001372: 27,3223 03012 WAND CHAN12 032696,001373: 27,3224 35014 CAF EBANK5 # TURN ON + PITCH, + ROLL. 032697,001374: 27,3225 00006 EXTEND 032698,001375: 27,3226 05012 WOR CHAN12 032699,001376: 27,3227 05221 TC FIXDELAY # WAIT ONE MINUT TO MAKE SURE ENGINE IS 032700,001377: 27,3230 13560 DEC 6000 B-14 # AT FULL + PITCH AND FULL + ROLL 032701,001378: 27,3231 45014 CS EBANK5 # TURN OFF + PITCH, + ROLL. 032702,001379: 27,3232 00006 EXTEND 032703,001380: 27,3233 03012 WAND CHAN12 032704,001381: 27,3234 35017 CAF PRIO5 # TURN ON - PITCH, - ROLL. 032705,001382: 27,3235 00006 EXTEND 032706,001383: 27,3236 05012 WOR CHAN12 032707,001384: 27,3237 31402 CAE PITTIME # GET TIME TO SHUT OFF - PITCH AND SET UP 032708,001385: 27,3240 05173 TC TWIDDLE # TWIDDLE-TASK TO TURN IT OFF THEN 032709,001386: 27,3241 03260 ADRES PITCHOFF 032710,001387: 032711,001388: 27,3242 31401 CAE ROLLTIME # GET TIME TO SHUT OFF - ROLL AND GO AWAY 032712,001389: 27,3243 05224 TC VARDELAY # UNTIL THEN 032713,001390: 27,3244 44740 CS BIT12 032714,001391: 27,3245 00006 EXTEND 032715,001392: 27,3246 03012 WAND CHAN12 # SHUT OFF ROLL 032716,001393: 27,3247 30102 ROLLOVER CA FLAGWRD6 # IF HERE INLINE (ROLL DONE) IS PITCH DONE 032717,001394: 27,3250 74742 MASK GMBDRBIT # IF HERE FROM PITCHOFF, IS ROLL DONE? 032718,001395: 27,3251 00006 EXTEND 032719,001396: 27,3252 13264 BZF PITCHOFF +4 # NO. SET FLAG, ROLL OR PITCH DONE. 032720,001397: 27,3253 34737 CAF PRIO10 # RETURN TO R03. 032721,001398: 27,3254 05072 TC NOVAC 032722,001399: 27,3255 E7,1471 EBANK= WHOCARES 032723,001400: # Page 782 032724,001401: 27,3255 02325 02067 2CADR TRIMDONE 032725,001402: 032726,001403: 27,3257 05261 TC TASKOVER 032727,001404: 27,3260 44742 PITCHOFF CS BIT10 032728,001405: 27,3261 00006 EXTEND 032729,001406: 27,3262 03012 WAND CHAN12 # SHUT OFF PITCH 032730,001407: 27,3263 13247 TCF ROLLOVER # SEE IF ROLL HAS FINISHED ALSO. 032731,001408: 27,3264 05504 TC UPFLAG # ROLL DONE; OR PITCH DONE; BUT NOT BOTH. 032732,001409: 27,3265 00137 ADRES GMBDRVSW 032733,001410: 27,3266 05261 TC TASKOVER 032734,001411: 032735,001412: # Page 783 032736,001413: # SUBROUTINE NAME: S41.1 MOD. NO. 0 DATE: FEBRUARY 28, 1967 032737,001414: # MOD. NO. 1 DATE: JANUARY 23, 1968, BY PETER ADLER (MIT/IL) 032738,001415: 032739,001416: # AUTHOR: JONATHON D. ADDLESTON (ADAMS ASSOCIATES) 032740,001417: 032741,001418: # S41.1 PERFORMS THE COORDINATE SYSTEM TRANSFORMATION FROM THE REFERENCE FRAME TO THE BODY OF THE LM. 032742,001419: # SPECIFICALLY, IT IS USED TO TRANSFORM A VELOCITY (SCALED AT 2(+7) METERS/CENTISECOND) FROM REFERENCE TO LM AXIS 032743,001420: # COORDINATES. FIRST THE VECTOR IS TRANSFORMED TO THE STABLE MEMBER COORDINATES BY THE MATRIX REFSMMAT. THIS 032744,001421: # LEAVES THE VECTOR IN MPAC, SCALED AT 2(+8) METERS/CENTISECOND. THEN 032745,001422: # THE SUBROUTINE CDUTRIG IS CALLED TO SET UP THE DOUBLE-PRECISION CDU VECTOR ALONG WITH ITS SINES AND COSINES. 032746,001423: # THE VECTOR IS THEN TRANSFORMED FROM STABLE MEMBER COORDINATES TO SPACECRAFT (OR LM) COORDINATES BY THE 032747,001424: # SUBROUTINE *SMNB*. FINALLY, THE VECTOR IS RESCALED TO 2(+7) METERS/CENTISECOND, AND CONTROL IS RETURNED BO THE 032748,001425: # CALLER WITH C(MPAC) = VELOCITY(LM). 032749,001426: 032750,001427: # CALLING SEQUENCE: 032751,001428: # L VLOAD CALL 032752,001429: # L +1 VELOCITY(REF) # SCALED AT 2(+7) M/CS IN REFERENCE COORDS. 032753,001430: # L +2 S41.1 032754,001431: # L +3 STORE VELOCITY(LM) # SCALED AT 2(+7) M/CS IN LM BODY AXIS SYS. 032755,001432: 032756,001433: # SUBROUTINES CALLED: 032757,001434: # 1. CDUTRIG, 032758,001435: # WHICH CALLS CDULOGIC. 032759,001436: # 2. *SMNB* 032760,001437: 032761,001438: # NORMAL RETURN: L +3 (SEE CALLING SEQUENCE, ABOVE.) 032762,001439: 032763,001440: # ALARM/ABORT MODES: NONE. 032764,001441: 032765,001442: # RESTART PROTECTION: NONE. 032766,001443: 032767,001444: # Page 784 032768,001445: # INPUT: 032769,001446: # 1. REFSMMAT. 032770,001447: # 2. CDUX, CDUY, CDUZ. 032771,001448: # 3. VELOCITY (REF) IN MPAC. 032772,001449: 032773,001450: # OUTPUT: 032774,001451: # 1. CSUSPCT: DOUBLE PRECISION CDU VECTOR, ORDERED Y,Z,X. 032775,001452: # 2. SINCDU: HALF SINES OF CDUSPCT COMPONENTS 032776,001453: # 3. COSCDU: HALF COSINES OF CDUSPOT COMPONENTS. 032777,001454: # 4. MPAC: VELOCITY(LM) (SCALED AT 2(+7) METERS/CENTISECOND) 032778,001455: 032779,001456: # DEBRIS: NONE. 032780,001457: 032781,001458: # CHECKOUT STATUS: CODED 032782,001459: 032783,001460: 27,3267 COUNT* $$/S41.1 032784,001461: 27,3267 76521 S41.1 MXV VSL1 # CONVERT VECTOR IN MPAC FROM REF AT 2(+7) 032785,001462: 27,3270 01734 REFSMMAT # TO SM AND RESCALE DUE TO HALF-UNIT MATRIX 032786,001463: 27,3271 77650 GOTO # CONVERT TO BODY AT 2(+7) USING PRESENT 032787,001464: 27,3272 47650 CDU*SMNB # CDU ANGLES. CDU*SMNB WILL RETURN 032788,001465: # VIA RVQ TO THE CALLER OF S41.1. End of include-file P40-P47.agc. Parent file is MAIN.agc