Source Code

053865,000001: # Copyright: Public domain. 053866,000002: # Filename: TIME_OF_FREE_FALL.agc 053867,000003: # Purpose: Part of the source code for Luminary 1A build 099. 053868,000004: # It is part of the source code for the Lunar Module's (LM) 053869,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 053870,000006: # Assembler: yaYUL 053871,000007: # Contact: Ron Burkey <info@sandroid.org>. 053872,000008: # Website: www.ibiblio.org/apollo. 053873,000009: # Pages: 1268-1283 053874,000010: # Mod history: 2009-05-26 RSB Adapted from the corresponding 053875,000011: # Luminary131 file, using page 053876,000012: # images from Luminary 1A. 053877,000013: # 2011-01-06 JL Fixed pseudo-label indentation. 053878,000014: 053879,000015: # This source code has been transcribed or otherwise adapted from 053880,000016: # digitized images of a hardcopy from the MIT Museum. The digitization 053881,000017: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 053882,000018: # the Museum. Many thanks to both. The images (with suitable reduction 053883,000019: # in storage size and consequent reduction in image quality as well) are 053884,000020: # available online at www.ibiblio.org/apollo. If for some reason you 053885,000021: # find that the images are illegible, contact me at info@sandroid.org 053886,000022: # about getting access to the (much) higher-quality images which Paul 053887,000023: # actually created. 053888,000024: 053889,000025: # Notations on the hardcopy document read, in part: 053890,000026: 053891,000027: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 053892,000028: # 16:27 JULY 14, 1969 053893,000029: 053894,000030: # Page 1268 053895,000031: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER 053896,000032: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE, AND 1/SQRT(MU) AT THE 053897,000033: # APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY. 053898,000034: 053899,000035: # EARTH ORIGIN POSITION -29 METERS 053900,000036: # VELOCITY -7 METERS/CENTISECOND 053901,000037: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED) 053902,000038: 053903,000039: # MOON ORIGIN POSITION -27 METERS 053904,000040: # VELOCITY -5 METERS/CENTISECONDS 053905,000041: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED) 053906,000042: 053907,000043: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES, 053908,000044: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND 053909,000045: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN. 053910,000046: 053911,000047: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE, AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU 053912,000048: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA, 053913,000049: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED. 053914,000050: 053915,000051: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT 053916,000052: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY. 053917,000053: 053918,000054: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST. 053919,000055: 053920,000056: # BELOW E: IS USED FOR EARTH ORIGIN SCALE 053921,000057: # M: IS USED FOR MOON ORIGIN SCALE 053922,000058: 053923,000059: # TFFSW = 119D # BIT1 0 = CALCTFF 1 = CALCTPER 053924,000060: 10,2213 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15) 053925,000061: 10,2213 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27) 053926,000062: # RPER = 14D # PERIGEE RADIUS M E: (-29) M: (-27) 053927,000063: 10,2213 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15) 053928,000064: # SDELF/2 # SIN(THETA) /2 053929,000065: 10,2213 CDELF/2 = 14D # COS(THETA) /2 053930,000066: # RAPO = 16D # APOGEE RADIUS M E: (-29) M: (-27) 053931,000067: 10,2213 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR) 053932,000068: # M: (-27+NR) 053933,000069: 10,2213 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27) 053934,000070: 10,2213 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18) 053935,000071: 10,2213 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA) 053936,000072: # M: (-20-2 NA) 053937,000073: 10,2213 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA) 053938,000074: 10,2213 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR) 053939,000075: 10,2213 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR) 053940,000076: # M: (-36+2 NR) 053941,000077: 10,2213 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14) 053942,000078: 10,2213 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR) 053943,000079: # M: (-27+NR) 053944,000080: 10,2213 TFFX = 34D 053945,000081: 10,2213 TFFTEM = 36D # TEMPORARY 053946,000082: # Page 1269 053947,000083: # REGISTERS S1, S2 ARE UNTOUCED BY ANY TFF SUBROUTINE 053948,000084: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB- 053949,000085: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT 053950,000086: # SUBROUTINES. 053951,000087: # -NR C(X1) = NORM COUNT OF RMAG 053952,000088: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA)) 053953,000089: 053954,000090: # Page 1270 053955,000091: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67 053956,000092: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 053957,000093: # MOD BY: RR BAIRNSFATHER 053958,000094: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 053959,000095: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU. 053960,000096: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES 053961,000097: 053962,000098: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF 053963,000099: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT. 053964,000100: # THE EQUATIONS ARE: 053965,000101: # _ __ __ 053966,000102: # H = RN*VN ANGULAR MOMENTUM 053967,000103: # _ _ 053968,000104: # LCP = H.H / MU SEMI LATUS RECTUM 053969,000105: # __ __ 053970,000106: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI-MAJOR AXIS, SIGNED 053971,000107: 053972,000108: # AND ALFA IS POS FOR ELLIPTIC ORBITS 053973,000109: # 0 FOR PARABOLIC ORBITS 053974,000110: # NEG FOR HYPERBOLIC ORBITS 053975,000111: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG. 053976,000112: 053977,000113: # CALLING SEQUENCE: 053978,000114: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM 053979,000115: # 1/SQRT(MU). THE PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON 053980,000116: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE, 053981,000117: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE 053982,000118: # TFF ROUTINES. 053983,000119: 053984,000120: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED. 053985,000121: 053986,000122: # TO SPECIFY MU: DLOAD CALL IF MU ALREADY STORED: CALL 053987,000123: # YOURMU 1/RTMU E:(17) M:(14) TFFCONMU 053988,000124: # TFFCONIC 053989,000125: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D 053990,000126: 053991,000127: # SUBROUTINES CALLED: NONE 053992,000128: 053993,000129: # NORMAL EXIT MODES: RVQ 053994,000130: 053995,000131: # ALARMS: NONE 053996,000132: 053997,000133: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA. 053998,000134: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH. 053999,000135: # NRMAG E:(-29+NR) M RMAG, NORMALIZED 054000,000136: # M:(-27+NR) 054001,000137: # X1 -NR, NORM COUNT 054002,000138: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC. 054003,000139: # M:(-36+2NR) 054004,000140: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) 054005,000141: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORMALIZED. FOR VGAMCALC 054006,000142: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR 054007,000143: # M:(24-NR) 054008,000144: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED 054009,000145: # M:(9+NA) 054010,000146: # Page 1271 054011,000147: # X2 -NA, NORMCOUNT 054012,000148: # TFF1/ALF E:(-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA 054013,000149: # M:(-20-2NA) 054014,000150: # PUSHLOC AT PDL+0 054015,000151: 054016,000152: # THE FOLLOWING IS STORED IN GENERAL ERASABLE 054017,000153: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY 054018,000154: 054019,000155: # ERASABLE INITIALIZATION REQUIRED: 054020,000156: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER 054021,000157: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER 054022,000158: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU. 054023,000159: 054024,000160: # DEBRIS: QPRET PDL+0 ... PDL+3 054025,000161: 054026,000162: 33,3777 BANK 33 054027,000163: 27,2000 SETLOC TOF-FF 054028,000164: 27,2000 BANK 054029,000165: 054030,000166: 27,3360 COUNT* $$/TFF 054031,000167: 054032,000168: 27,3360 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14) 054033,000169: 054034,000170: 27,3361 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED. 054035,000171: 27,3362 02207 RONE # SAVED RN. M E:(-29) M:(-27) 054036,000172: 27,3363 77725 PDDL # UR/2 TO PDL+0, +5 054037,000173: 27,3364 00045 36D # MAGNITUDE 054038,000174: 27,3365 00015 STORE RMAG1 # M E:(-29) M:(-27) 054039,000175: 054040,000176: 27,3366 77701 NORM 054041,000177: 27,3367 00047 X1 # -NR 054042,000178: 27,3370 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR) 054043,000179: 27,3371 02215 VONE # SAVED VN. M/CS E:(-7) M:(-5) 054044,000180: 27,3372 77761 VXSC 054045,000181: 27,3373 00037 TFF/RTMU # E:(17) M:(14) 054046,000182: 27,3374 02170 STORE VONE' # VN/SQRT(MU) E:(10) M:(9) 054047,000183: 054048,000184: 27,3375 47361 VXSC VXV 054049,000185: 27,3376 00041 NRMAG # E:(-29+NR) M:(-27+NR) 054050,000186: # UR/2 FROM PDL 054051,000187: 27,3377 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR) 054052,000188: 27,3400 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR) 054053,000189: # SAVE ALSO FOR VGAMCALC 054054,000190: 27,3401 06512 TFF1/4 054055,000191: 27,3402 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR) 054056,000192: 27,3403 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR) 054057,000193: 27,3404 02170 VONE' # SAVED VN. E:(10) M:(9) 054058,000194: 27,3405 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT. 054059,000195: 27,3406 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18) 054060,000196: # SAVE FOR VGAMCALC 054061,000197: 27,3407 43257 SR* DAD 054062,000198: # Page 1272 054063,000199: 27,3410 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR) 054064,000200: 27,3411 77626 STADR 054065,000201: # 2/RMAG FROM PDL+2 054066,000202: 27,3412 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR) 054067,000203: 27,3413 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18) 054068,000204: 27,3414 20173 0 -6,1 054069,000205: 27,3415 75446 ABS SQRT # E:(10) M:(9) 054070,000206: 27,3416 77701 NORM 054071,000207: 27,3417 00050 X2 # X2 = -NA 054072,000208: 27,3420 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA) 054073,000209: 27,3421 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK 054074,000210: # ALFA FROM PDL+2 E:(20) M:(18) 054075,000211: 27,3422 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA 054076,000212: 27,3423 57425 +2 054077,000213: 27,3424 06512 TFF1/4 054078,000214: 27,3425 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 054079,000215: 27,3426 77616 DUMPCNIC RVQ 054080,000216: 054081,000217: # 39 W 054082,000218: # Page 1273 054083,000219: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67 054084,000220: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 054085,000221: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 054086,000222: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES 054087,000223: # ALSO IMPROVE ACCURACY OF RAPO. 054088,000224: 054089,000225: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO 054090,000226: # APOGEE RADIUS FOR A GENERAL CONIC. 054091,000227: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY 054092,000228: # RP = P/(1+E) RA = (1+E) / ALFA 054093,000229: # WHERE 2 054094,000230: # E = 1 - P ALFA 054095,000231: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE 054096,000232: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA 054097,000233: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA 054098,000234: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE. 054099,000235: 054100,000236: # THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI-LATUS RECTUM AS DATA. 054101,000237: 054102,000238: # CALLING SEQUENCE: CALL 054103,000239: # TFFRP/RA 054104,000240: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D 054105,000241: # C(MPAC) UNSPECIFIED 054106,000242: 054107,000243: # SUBROUTINES CALLED: NONE 054108,000244: 054109,000245: # NORMAL EXIT MODE: RVQ 054110,000246: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT. 054111,000247: # OTHERWISE, RAPO = POSMAX. 054112,000248: 054113,000249: # ALARMS: NONE 054114,000250: 054115,000251: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC. 054116,000252: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG. 054117,000253: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER 054118,000254: # PUSHLOC AT PDL+0 054119,000255: 054120,000256: # ERASABLE INITIALIZATION REQUIRED: 054121,000257: # TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC 054122,000258: # M:(24-NR) 054123,000259: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC 054124,000260: # M:(-36+2NR) 054125,000261: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC 054126,000262: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC 054127,000263: 054128,000264: # DEBRIS: QPRET, PDL+0 ... PDL+1 054129,000265: 054130,000266: # Page 1274 054131,000267: 27,3427 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27) 054132,000268: 27,3427 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27) 054133,000269: 054134,000270: 27,3427 41345 TFFRP/RA DLOAD DMP 054135,000271: 27,3430 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR) 054136,000272: 27,3431 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR) 054137,000273: 27,3432 57457 SR* DCOMP # ALFA P (-12+NR) 054138,000274: 27,3433 20571 0 -8D,1 # ALFA P (-4) 054139,000275: 27,3434 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT) 054140,000276: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0) 054141,000277: 27,3435 17765 DP2(-4) 054142,000278: 27,3436 43366 SQRT DAD # E SQ = (1- P ALFA) (-4) 054143,000279: 27,3437 06512 TFF1/4 054144,000280: 27,3440 55206 PUSH BDDV # (1+E) (-2) TO PDL+0 054145,000281: 27,3441 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR) 054146,000282: 27,3442 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL) 054147,000283: 27,3443 20601 0,1 # X1=-NR 054148,000284: 27,3444 20572 0 -7,1 # (EFFECTIVE SL) 054149,000285: 27,3445 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27) 054150,000286: # (1+E) (-2) FROM PDL+0 054151,000287: 27,3446 41005 DMP BOVB 054152,000288: 27,3447 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA) 054153,000289: 27,3450 57753 TCDANZIG # CLEAR OVFIND, IF ON. 054154,000290: 27,3451 53654 BZE SL* 054155,000291: 27,3452 57461 MAXRA # SET POSMAX IF ALFA=0 054156,000292: 27,3453 57603 0 -5,2 # -5+NA 054157,000293: 27,3454 40057 SL* BOV 054158,000294: 27,3455 57576 0,2 054159,000295: 27,3456 57461 MAXRA # SET POSMAX IF OVFL. 054160,000296: 27,3457 77644 BPL # CONTINUE WITH VALID RAPO. 054161,000297: 27,3460 57463 +3 054162,000298: 27,3461 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO = 054163,000299: 27,3462 17771 NEARONE # POSMAX AS A TAG. 054164,000300: 27,3463 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27) 054165,000301: 27,3464 77616 DUMPRPRA RVQ 054166,000302: 054167,000303: # 30 W 054168,000304: # Page 1275 054169,000305: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67 054170,000306: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 054171,000307: # MOD BY: RR BAIRNSFATHER 054172,000308: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67 054173,000309: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67 054174,000310: # MOD BY: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST) 054175,000311: # MOD BY: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU. 054176,000312: # MOD BY: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES 054177,000313: 054178,000314: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND 054179,000315: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR 054180,000316: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE. 054181,000317: # THE EQUATIONS ARE: 054182,000318: 054183,000319: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE) LEQ +- LCE/SQRT(ALFA) 054184,000320: # __ __ 054185,000321: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA) 054186,000322: 054187,000323: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA) 054188,000324: 054189,000325: # WHERE, IF INBOUND 054190,000326: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA 054191,000327: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA) 054192,000328: 054193,000329: # AND, IF OUTBOUND 054194,000330: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA) 054195,000331: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE 054196,000332: 054197,000333: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG) 054198,000334: # THEN X = ALFA Z Z 054199,000335: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU) 054200,000336: # EXCEPT IF ALFA PNZ, AND IF TFF NEG, 054201,000337: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF 054202,000338: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG) 054203,000339: # THEN X = 1/ALFA Z Z 054204,000340: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU) 054205,000341: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES 054206,000342: # 2 3 2 054207,000343: # 1/3 - X/5 + X /7 - X /8 ... (X < 1.0) 054208,000344: 054209,000345: # CALLING SEQUENC: TIME TO RTERM TIME TO PERIGEE 054210,000346: # CALL CALL 054211,000347: # CALCTFF CALCTPER 054212,000348: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M 054213,000349: # FOR EITHER, E:(-29) M:(-27) 054214,000350: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D. 054215,000351: # Page 1276 054216,000352: 054217,000353: # SUBROUTINES CALLED: T(X), VIA RTB 054218,000354: 054219,000355: # NORMAL EXIT MODE: RVQ 054220,000356: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE. 054221,000357: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD. 054222,000358: # B. (THIS OPTION IS NO LONGER USED.) 054223,000359: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO 054224,000360: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA. 054225,000361: 054226,000362: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE 054227,000363: # TFFX (0) X LEFT FOR ENTRY DISPLAY TFF ROUTINES 054228,000364: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES 054229,000365: # M:(-27+NR) 054230,000366: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES 054231,000367: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES 054232,000368: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:. 054233,000369: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED. 054234,000370: # TFFQ1 E:(-16) M:(-15) PDL 14D 054235,000371: # TFFDELQ E:(-16) M:(-15) PDL 10D 054236,000372: # PUSHLOC AT PDL+0 054237,000373: 054238,000374: # ERASABLE INITIALIZATION REQUIRED: 054239,000375: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER 054240,000376: # VONE' E:(+10) M:(+9) VN/SQRT(NU) LEFT BY TFF/CONIC 054241,000377: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC 054242,000378: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER 054243,000379: 054244,000380: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA. 054245,000381: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC. 054246,000382: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC 054247,000383: # M:(-27+NR) 054248,000384: # X1 -NR, NORM COUNT LEFT BY TFFCONIC 054249,000385: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC 054250,000386: # M:(-36+2N4) 054251,000387: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC 054252,000388: # M:(24-NR) 054253,000389: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC 054254,000390: # M:(9+NA) 054255,000391: # X2 -NA, NORMCOUNT LEFT BY TFFCONIC 054256,000392: # TFF1/ALF E:(-22-2NA) SIGNED SEMI-MAJOR AXIS, WEIGHTED BY NA LEFT BY TFFCONIC 054257,000393: # M:(-20-2NA) 054258,000394: 054259,000395: # DEBRIS: QPRET, PDL+0 ... PDL+3 054260,000396: # RTERM E:(-29) M(-27) RTERM, TERMINAL RADIUS LENGTH 054261,000397: # RAPO E:(-29) M(-27) PDL 16D (=NRTERM) 054262,000398: # RPER E:(-29) M(-27) PDL 14D (=TFFQ1) 054263,000399: 054264,000400: # Page 1277 054265,000401: 27,3465 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC 054266,000402: 27,3466 03436 TFFSW 054267,000403: 27,3467 57472 +3 054268,000404: 27,3470 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC 054269,000405: 27,3471 03676 TFFSW 054270,000406: 27,3472 00023 +3 STORE RTERM # E:(-29) M:(-27) 054271,000407: 27,3473 77657 SL* 054272,000408: 27,3474 20201 0,1 # X1=-NR 054273,000409: 27,3475 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR) 054274,000410: 27,3476 44205 DMP BDSU 054275,000411: 27,3477 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 054276,000412: 27,3500 06512 TFF1/4 054277,000413: 27,3501 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0 054278,000414: 27,3502 00021 NRTERM # E:(-29+NR) M:(-27+NR) 054279,000415: 27,3503 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2 054280,000416: # E:(-32+NR) M:(-30+NR) 054281,000417: 27,3504 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR) 054282,000418: 27,3505 20573 0 -6,1 # X1 = -NR 054283,000419: 27,3506 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT 054284,000420: # RTERM(2-ALFA RTERM) FROM PDL +2 054285,000421: # E:(-32+NR) M:(-30+NR) 054286,000422: 27,3507 77657 SR* # LEAVE E:(-32) M:(-30) 054287,000423: 27,3510 20601 0,1 # X1 = -NR 054288,000424: 27,3511 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH 054289,000425: 27,3512 03756 TFFSW 054290,000426: 27,3513 57515 +2 # IF TFF, CONTINUE 054291,000427: 27,3514 06522 TFFZEROS # IF TPER, SET Q2 = 0 054292,000428: 27,3515 75440 +2 BMN SQRT # E:(-16) M:(-15) 054293,000429: 054294,000430: 27,3516 57650 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE 054295,000431: # RESET PDL, SET TFF=POSMAX, AND EXIT. 054296,000432: 054297,000433: 27,3517 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0 054298,000434: 27,3520 57753 TCDANZIG # ANY PORT IN A STORM. 054299,000435: 27,3521 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15) 054300,000436: 27,3522 02170 VONE' # VN/SQRT(MU) E:(10) M:(9) 054301,000437: 27,3523 52441 DOT SL3 054302,000438: 27,3524 02207 RONE # SAVED RN. E:(-29) M:(-27) 054303,000439: 27,3525 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST. 054304,000440: # E:(-16) M:(-15) 054305,000441: 27,3526 44240 BMN BDSU 054306,000442: 27,3527 57550 INBOUND # USE ALTERNATE Z 054307,000443: 27,3530 00045 TFFTEM # Q2 E:(-16) M:(-15) 054308,000444: 054309,000445: # OUTBOUND Z CALC CONTINUES HERE 054310,000446: 054311,000447: 27,3531 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15) 054312,000448: 27,3532 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 054313,000449: 27,3533 44205 DMP BDSU 054314,000450: # Page 1278 054315,000451: 27,3534 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR) 054316,000452: # (2-RTERM ALFA) (-3) FROM PDL+0 054317,000453: 27,3535 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16) 054318,000454: # M:(-3) OR (-15) 054319,000455: 27,3536 40015 DAD BOV # INDETERMINANCY TEST 054320,000456: 27,3537 17757 LIM(-22) # =1.0-B(-22) 054321,000457: 27,3540 57561 TFFXTEST # GO IF DEN >/= B(-22) 054322,000458: 27,3541 65345 DLOAD PDDL # SET DEN=0 OTHERWISE 054323,000459: 27,3542 06522 TFFZEROS 054324,000460: # XCH ZERO WITH PDL+0 054325,000461: 27,3543 57545 DLOAD DCOMP 054326,000462: 27,3544 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 054327,000463: 27,3545 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90. 054328,000464: 27,3546 57655 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N 054329,000465: 054330,000466: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB. 054331,000467: 27,3547 77616 DUMPTFF1 RVQ # RETURN TFF =0 054332,000468: 054333,000469: # INBOUND Z CALC CONTINUES HERE 054334,000470: 054335,000471: 27,3550 77745 INBOUND DLOAD # RESET PDL+0 054336,000472: 27,3551 45345 DLOAD DSU # ALTERNATE Z CALC 054337,000473: 27,3552 00023 RTERM # E:(-29) M:(-27) 054338,000474: 27,3553 00015 RMAG1 # E:(-29) M:(-27) 054339,000475: 27,3554 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27) 054340,000476: 27,3555 00045 TFFTEM # Q2 E:(-16) M:(-15) 054341,000477: 27,3556 52015 DAD GOTO 054342,000478: 27,3557 00017 TFFQ1 # Q1 E:(-16) M:(-15) 054343,000479: 27,3560 57535 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15) 054344,000480: 054345,000481: 27,3561 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2) E:(-3) OR (-16) 054346,000482: # M:(-3) OR (-15) 054347,000483: 27,3562 17761 DP(-22) # RESTORE ABS(DEN) TO MPAC 054348,000484: 27,3563 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27) 054349,000485: 27,3564 53605 DMP SR* 054350,000486: 27,3565 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA) 054351,000487: 27,3566 57201 0 -3,2 # X2=-NA 054352,000488: 27,3567 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16) 054353,000489: # M:(-3) OR (-15) 054354,000490: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16) 054355,000491: # M:(-3) OR (-15) 054356,000492: 27,3570 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL) 054357,000493: 27,3571 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27) 054358,000494: 27,3572 57653 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90 054359,000495: 054360,000496: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN 054361,000497: 054362,000498: 27,3573 45471 DDV STADR 054363,000499: # DEN FROM PDL+0 E:(-3) OR (-16) 054364,000500: # M:(-3) OR (-15) 054365,000501: 27,3574 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF. 054366,000502: # Page 1279 054367,000503: # E:(-13) M:(-12) 054368,000504: 27,3575 63406 PUSH DSQ # Z TO PDL+0 054369,000505: 27,3576 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24) 054370,000506: 27,3577 00035 TFFNP # LC P E:(-38+2NR) M:(-36+NR) 054371,000507: 27,3600 75261 SL SIGN 054372,000508: 27,3601 20206 5 054373,000509: 27,3602 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY) 054374,000510: 27,3603 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR) 054375,000511: # (ARG IS USED IN TFF/TRIG) 054376,000512: # ZSQ FROM PDL+2 E:(-26) M:(-24) 054377,000513: 27,3604 41206 PUSH DMP # RESTORE PUSH LOC 054378,000514: 27,3605 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 054379,000515: 27,3606 77657 SL* 054380,000516: 27,3607 20201 0,1 # X1=-NR 054381,000517: 27,3610 00043 STORE TFFX # X 054382,000518: 27,3611 41234 RTB DMP 054383,000519: 27,3612 57735 T(X) # POLY 054384,000520: # ZSQ FROM PDL+2 E:(-26) M:(-24) 054385,000521: 27,3613 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27) 054386,000522: 27,3614 00023 RTERM # RTERM E:(-29) M:(-27) 054387,000523: 27,3615 41215 DAD DMP 054388,000524: 27,3616 00015 RMAG1 # E:(-29) M:(-27) 054389,000525: # Z FROM PDL+0 E:(-13) M:(-12) 054390,000526: 27,3617 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42) 054391,000527: 27,3620 57641 ENDTFF # (NO PUSH UP) 054392,000528: 27,3621 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0 054393,000529: 27,3622 00017 TFFQ1 # Q1 FOR GONEPAST TEST 054394,000530: 27,3623 71244 BPL DLOAD # GONE PAST ? 054395,000531: 27,3624 57645 NEGTFF # YES. TFF < 0. 054396,000532: 27,3625 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 054397,000533: 27,3626 51076 DCOMP BPL # ALFA > 0 ? 054398,000534: 27,3627 57645 NEGTFF # NO. TFF IS NEGATIVE. 054399,000535: 054400,000536: # CORRECT FOR ORBITAL PERIOD. 054401,000537: 054402,000538: 27,3630 77676 DCOMP # YES. CORRECT FOR ORB PERIOD. 054403,000539: 27,3631 56205 DMP DDV 054404,000540: 27,3632 17755 PI/16 # 2 PI (-5) 054405,000541: 27,3633 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA) 054406,000542: 27,3634 53657 SL* SL* 054407,000543: 27,3635 57602 0 -4,2 # X2=-NA 054408,000544: 27,3636 57602 0 -4,2 054409,000545: 27,3637 43257 SL* DAD 054410,000546: 27,3640 57576 0,2 054411,000547: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42) 054412,000548: 27,3641 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42) 054413,000549: 27,3642 00037 TFF/RTMU # E:(17) M:(14) 054414,000550: 27,3643 57651 MAXTFF # SET POSMAX IN OVFL. 054415,000551: 054416,000552: 27,3644 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC. 054417,000553: 054418,000554: # Page 1280 054419,000555: 27,3645 77745 NEGTFF DLOAD 054420,000556: # TFF SQRT(MU) FROM PDL+0, NEGATIVE. 054421,000557: 27,3646 77650 GOTO 054422,000558: 27,3647 57641 ENDTFF 054423,000559: 054424,000560: 27,3650 77745 MAXTFF1 DLOAD # RESET PDL 054425,000561: 27,3651 43545 MAXTFF DLOAD RVQ 054426,000562: 27,3652 17771 NEARONE 054427,000563: 054428,000564: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90. 054429,000565: 054430,000566: # NUM FROM TFFX. E:(-16) OR (-29) 054431,000567: # M:(-15) OR (-27) 054432,000568: 27,3653 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25) 054433,000569: 27,3654 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0 054434,000570: # DEN FROM PDL+0 E:(-3)/(-16) M:(-3)/(-15) 054435,000571: # N/D TO PDL+0 E:(11) M:(10) 054436,000572: 27,3655 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0) 054437,000573: 27,3656 00045 TFFTEM # Q2 E:(-16) M:(-15) 054438,000574: 27,3657 00017 TFFQ1 # Q1 E:(-16) M:(-15) 054439,000575: 27,3660 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15) 054440,000576: # D/N FROM PDL+0 054441,000577: 27,3661 77626 STADR 054442,000578: 27,3662 77732 STORE TFFTEM # D/N E:(11) M:(10) 054443,000579: 27,3663 53605 DMP SL* 054444,000580: 27,3664 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 054445,000581: 27,3665 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA) 054446,000582: 27,3666 41206 PUSH DMP # TO PDL+0 054447,000583: 27,3667 00045 TFFTEM # 1/Z E:(11) M:(10 054448,000584: 27,3670 41057 SL* BOVB 054449,000585: 27,3671 57576 0,2 # X2= -NA 054450,000586: 27,3672 21712 SIGNMPAC # IN CASE X= 1.0, CONTINUE 054451,000587: 27,3673 00043 STORE TFFX # X=1/ALFA ZSQ 054452,000588: 27,3674 41234 RTB DMP 054453,000589: 27,3675 57735 T(X) # POLY 054454,000590: 27,3676 00043 TFFX 054455,000591: 27,3677 45242 SR3 DSU 054456,000592: 27,3700 17763 DP2(-3) 054457,000593: 27,3701 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA) 054458,000594: # M:(-14-NA) 054459,000595: # 1/ALFA Z FROM PDL+0 E:(-11-NA) 054460,000596: # M:(-10-NA) 054461,000597: 27,3702 41345 DLOAD DMP # GET SIGN FOR SDELF 054462,000598: 27,3703 00045 TFFTEM # 1/Z E:(11) M:(10) 054463,000599: 27,3704 00015 RMAG1 # E:(-29) M:(-27) 054464,000600: 27,3705 43312 SL2 DAD 054465,000601: 27,3706 00017 TFFQ1 # Q1 E:(-16) M:(-15) 054466,000602: 27,3707 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15) 054467,000603: 27,3710 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR) 054468,000604: 27,3711 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG. 054469,000605: # Page 1281 054470,000606: 27,3712 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 054471,000607: 27,3713 57575 1,2 # X2=-NA 054472,000608: 27,3714 53765 SIGN SL* 054473,000609: 27,3715 00045 TFFTEM # AFFIX SIGN FOR SDELF 054474,000610: 27,3716 57576 0,2 054475,000611: 27,3717 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR) 054476,000612: # (ARG FOR USE IN TFF/TRIG) 054477,000613: 27,3720 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 054478,000614: 27,3721 41366 SQRT DMP 054479,000615: 27,3722 17755 PI/16 # PI (-4) 054480,000616: 27,3723 77615 DAD 054481,000617: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA) 054482,000618: # M:(-14-NA) 054483,000619: 27,3724 45257 SL* DSU 054484,000620: 27,3725 57577 0 -1,2 054485,000621: 27,3726 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15) 054486,000622: 27,3727 53605 DMP SL* 054487,000623: 27,3730 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 054488,000624: 27,3731 57601 0 -3,2 054489,000625: 27,3732 52057 SL* GOTO 054490,000626: 27,3733 57602 0 -4,2 054491,000627: 27,3734 57641 ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42) 054492,000628: 054493,000629: # Page 1282 054494,000630: # PROGRAM NAME: T(X) DATE: 01.17.67 054495,000631: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 054496,000632: # MOD BY: RR BAIRNSFATHER 054497,000633: 054498,000634: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND 054499,000635: # CALCTPER TO APPROXIMATE THE SERIES 054500,000636: # 2 3 054501,000637: # 1/3 -X/5 +X /7 -X /9 ... 054502,000638: 054503,000639: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1 054504,000640: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1 054505,000641: 054506,000642: # ALSO X IS NEG FOR HYPERBOLIC ORBITS 054507,000643: # X = 0 FOR PARABOLIC ORBITS 054508,000644: # X IS POSITIVE FOR ELLIPTIC ORBITS 054509,000645: 054510,000646: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM 054511,000647: # DEVIATION FROM THE SERIES OF 2 E-5. (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING 054512,000648: # MAX PROGRAM AUTOCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).) 054513,000649: 054514,000650: # CALLING SEQUENCE: RTB 054515,000651: # T(X) 054516,000652: # C(MPAC) = X 054517,000653: 054518,000654: # SUBROUTINE CALLED: NONE 054519,000655: 054520,000656: # NORMAL EXIT MODE: TC TANZIG 054521,000657: 054522,000658: # ALARMS: NONE 054523,000659: 054524,000660: # OUTPUT: C(MPAC) = T(X) 054525,000661: 054526,000662: # ERASABLE INITIALIZATION REQUIRED: 054527,000663: # C(MPAC) = X 054528,000664: 054529,000665: # DEBRIS: NONE 054530,000666: 054531,000667: 27,3735 07222 T(X) TC POLY 054532,000668: 27,3736 00004 DEC 4 B-14 # N-1 054533,000669: 27,3737 12525 12525 2DEC 3.333333333 E-1 054534,000670: 054535,000671: 27,3741 71463 57703 2DEC* -1.999819135 E-1* 054536,000672: 054537,000673: 27,3743 04423 17645 2DEC* 1.418148467 E-1* 054538,000674: 054539,000675: 27,3745 74604 43667 2DEC* -1.01310997 E-1* 054540,000676: 054541,000677: 27,3747 01626 37256 2DEC* 5.609004986 E-2* 054542,000678: 054543,000679: 27,3751 77404 52071 2DEC* -1.536156925 E-2* 054544,000680: 054545,000681: 27,3753 06061 ENDT(X) TC DANZIG 054546,000682: 054547,000683: 27,3754 27,3753 TCDANZIG = ENDT(X) 054548,000684: 054549,000685: # Page 1283 054550,000686: # TFF CONSTANTS 054551,000687: 054552,000688: 32,3773 BANK 32 054553,000689: 054554,000690: 27,2000 SETLOC TOF-FF1 054555,000691: 27,2000 BANK 054556,000692: 054557,000693: # # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ. 054558,000694: # MUE = 3.990815471 E10 # M CUBE/CS SQ 054559,000695: # RTMUE = 1.997702549 E5 B-18* # MODIFIED EARTH MU 054560,000696: 054561,000697: # # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ. 054562,000698: # MUM = 4.902778 E8 # M CUBE/CS SQ 054563,000699: # RTMUM 2DEC* 2.21422176 E4 B-18* 054564,000700: 054565,000701: 27,3754 06220 37553 PI/16 2DEC 3.141592653 B-4 054566,000702: 054567,000703: 27,3756 37777 37700 LIM(-22) 2OCT 3777737700 # 1.0 -B(-22) 054568,000704: 054569,000705: 27,3760 00000 00100 DP(-22) 2OCT 0000000100 # B(-22) 054570,000706: 054571,000707: 27,3762 04000 00000 DP2(-3) 2DEC 1 B-3 054572,000708: 054573,000709: 27,3764 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16 054574,000710: 054575,000711: # RPAD1 2DEC 6373338 B-29 # M (-29) = 20909901.57 FT 054576,000712: 054577,000713: 27,3766 23,2314 RPAD1 = RPAD 054578,000714: 054579,000715: 27,3766 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M 054580,000716: 054581,000717: 27,3770 37777 37777 NEARONE 2DEC .999999999 054582,000718: 054583,000719: 27,3772 23,2521 TFFZEROS EQUALS HI6ZEROS 054584,000720: 27,3772 23,2511 TFF1/4 EQUALS HIDP1/4 054585,000721: End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc