Source Code

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