Source Code

057949,000001: # Copyright: Public domain. 057950,000002: # Filename: TIME_OF_FREE_FALL.agc 057951,000003: # Purpose: Part of the source code for Colossus, build 249. 057952,000004: # It is part of the source code for the Command Module's (CM) 057953,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 057954,000006: # Assembler: yaYUL 057955,000007: # Reference: Begins on p. 1363 of 1701.pdf. 057956,000008: # Contact: Ron Burkey <info@sandroid.org>. 057957,000009: # Website: www.ibiblio.org/apollo. 057958,000010: # Mod history: 08/30/04 RSB. Began adapting from corresponding Luminary131 file. 057959,000011: # 2010-10-24 JL Indentation fixes. 057960,000012: 057961,000013: # The contents of the "Colossus249" files, in general, are transcribed 057962,000014: # from a scanned document obtained from MIT's website, 057963,000015: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 057964,000016: # document read, in part: 057965,000017: 057966,000018: # Assemble revision 249 of AGC program Colossus by NASA 057967,000019: # 2021111-041. October 28, 1968. 057968,000020: 057969,000021: # This AGC program shall also be referred to as 057970,000022: # Colossus 1A 057971,000023: 057972,000024: # Prepared by 057973,000025: # Massachusetts Institute of Technology 057974,000026: # 75 Cambridge Parkway 057975,000027: # Cambridge, Massachusetts 057976,000028: # under NASA contract NAS 9-4065. 057977,000029: 057978,000030: # Refer directly to the online document mentioned above for further information. 057979,000031: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 057980,000032: 057981,000033: # In some cases, where the source code for Luminary 131 overlaps that of 057982,000034: # Colossus 249, this code is instead copied from the corresponding Luminary 131 057983,000035: # source file, and then is proofed to incorporate any changes. 057984,000036: 057985,000037: # Page 1363 057986,000038: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER 057987,000039: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE, AND 1/SQRT(MU) AT THE 057988,000040: # APPROPIRATE SCALE LEVEL FOR THE PROPER PRIMARY BODY. 057989,000041: 057990,000042: # EARTH ORIGIN POSITION -29 METERS 057991,000043: # VELOCITY -7 METERS/CENTISECOND 057992,000044: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED) 057993,000045: 057994,000046: # MOON ORIGIN POSITION -27 METERS 057995,000047: # VELOCITY -5 METERS/CENTISECONDS 057996,000048: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED) 057997,000049: 057998,000050: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES, 057999,000051: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND 058000,000052: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN. 058001,000053: 058002,000054: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE, AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU 058003,000055: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA, 058004,000056: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED. 058005,000057: 058006,000058: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT 058007,000059: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY. 058008,000060: 058009,000061: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST. 058010,000062: 058011,000063: # BELOW E: IS USED FOR EARTH ORIGIN SCALE 058012,000064: # M: IS USED FOR MOON ORIGIN SCALE 058013,000065: 058014,000066: # TFFSW = 119D # BIT1 0 = CALCTFF 1 = CALCTPER 058015,000067: 23,3725 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15) 058016,000068: 23,3725 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27) 058017,000069: # RPER = 14D # PERIGEE RADIUS M E: (-29) M: (-27) 058018,000070: 23,3725 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15) 058019,000071: # SDELF/2 # SIN(THETA) /2 058020,000072: 23,3725 CDELF/2 = 14D # COS(THETA) /2 058021,000073: # RAPO = 16D # APOGEE RADIUS M E: (-29) M: (-27) 058022,000074: 23,3725 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR) 058023,000075: # M: (-27+NR) 058024,000076: 23,3725 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27) 058025,000077: 23,3725 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18) 058026,000078: 23,3725 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA) 058027,000079: # M: (-20-2 NA) 058028,000080: 23,3725 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA) 058029,000081: 23,3725 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR) 058030,000082: 23,3725 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR) 058031,000083: # M: (-36+2 NR) 058032,000084: 23,3725 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14) 058033,000085: 23,3725 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR) 058034,000086: # M: (-27+NR) 058035,000087: 23,3725 TFFX = 34D 058036,000088: 23,3725 TFFTEM = 36D # TEMPORARY 058037,000089: # Page 1364 058038,000090: # REGISTERS S1, S2 ARE UNTOUCED BY ANY TFF SUBROUTINE 058039,000091: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB- 058040,000092: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT 058041,000093: # SUBROUTINES. 058042,000094: # -NR C(X1) = NORM COUNT OF RMAG 058043,000095: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA)) 058044,000096: 058045,000097: # Page 1365 058046,000098: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67 058047,000099: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 058048,000100: # MOD BY: RR BAIRNSFATHER 058049,000101: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 058050,000102: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU. 058051,000103: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES 058052,000104: 058053,000105: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF 058054,000106: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT. 058055,000107: # THE EQUATIONS ARE: 058056,000108: # _ __ __ 058057,000109: # H = RN*VN ANGULAR MOMENTUM 058058,000110: # _ _ 058059,000111: # LCP = H.H / MU SEMI LATUS RECTUM 058060,000112: # __ __ 058061,000113: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI-MAJOR AXIS, SIGNED 058062,000114: 058063,000115: # AND ALFA IS POS FOR ELLIPTIC ORBITS 058064,000116: # 0 FOR PARABOLIC ORBITS 058065,000117: # NEG FOR HYPERBOLIC ORBITS 058066,000118: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG. 058067,000119: 058068,000120: # CALLING SEQUENCE: 058069,000121: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM 058070,000122: # 1/SQRT(MU). THE PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON 058071,000123: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE, 058072,000124: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE 058073,000125: # TFF ROUTINES. 058074,000126: 058075,000127: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED. 058076,000128: 058077,000129: # TO SPECIFY MU: DLOAD CALL # IF MU ALREADY STORED: CALL 058078,000130: # YOURMU # 1/RTMU E:(17) M:(14) TFFCONMU 058079,000131: # TFFCONIC 058080,000132: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D 058081,000133: 058082,000134: # SUBROUTINES CALLED: NONE 058083,000135: 058084,000136: # NORMAL EXIT MODES: RVQ 058085,000137: 058086,000138: # ALARMS: NONE 058087,000139: 058088,000140: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA. 058089,000141: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH. 058090,000142: # NRMAG E:(-29+NR) M RMAG, NORMALIZED 058091,000143: # M:(-27+NR) 058092,000144: # X1 -NR, NORM COUNT 058093,000145: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC. 058094,000146: # M:(-36+2NR) 058095,000147: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) 058096,000148: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORMALIZED. FOR VGAMCALC 058097,000149: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR 058098,000150: # M:(24-NR) 058099,000151: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED 058100,000152: # M:(9+NA) 058101,000153: # Page 1366 058102,000154: # X2 -NA, NORMCOUNT 058103,000155: # TFF1/ALF E:(-22-2NA) SIGNED SEMI-MAJOR AXIS, WEIGHTED BY NA 058104,000156: # M:(-20-2NA) 058105,000157: # PUSHLOC AT PDL+0 058106,000158: 058107,000159: # THE FOLLOWING IS STORED IN GENERAL ERASABLE 058108,000160: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY 058109,000161: 058110,000162: # ERASABLE INITIALIZATION REQUIRED: 058111,000163: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER 058112,000164: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER 058113,000165: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU. 058114,000166: 058115,000167: # DEBRIS: QPRET PDL+0 ... PDL+3 058116,000168: 058117,000169: 33,3772 BANK 33 058118,000170: 27,2000 SETLOC TOF-FF 058119,000171: 27,2000 BANK 058120,000172: 058121,000173: 27,2750 COUNT* $$/TFF 058122,000174: 058123,000175: 27,2750 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14) 058124,000176: 058125,000177: 27,2751 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED. 058126,000178: 27,2752 02327 RONE # SAVED RN. M E:(-29) M:(-27) 058127,000179: 27,2753 77725 PDDL # UR/2 TO PDL+0, +5 058128,000180: 27,2754 00045 36D # MAGNITUDE 058129,000181: 27,2755 00015 STORE RMAG1 # M E:(-29) M:(-27) 058130,000182: 058131,000183: 27,2756 77701 NORM 058132,000184: 27,2757 00047 X1 # -NR 058133,000185: 27,2760 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR) 058134,000186: 27,2761 02335 VONE # SAVED VN. M/CS E:(-7) M:(-5) 058135,000187: 27,2762 77761 VXSC 058136,000188: 27,2763 00037 TFF/RTMU # E:(17) M:(14) 058137,000189: 27,2764 02372 STORE VONE' # VN/SQRT(MU) E:(10) M:(9) 058138,000190: 058139,000191: 27,2765 47361 VXSC VXV 058140,000192: 27,2766 00041 NRMAG # E:(-29+NR) M:(-27+NR) 058141,000193: # UR/2 FROM PDL 058142,000194: 27,2767 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR) 058143,000195: 27,2770 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR) 058144,000196: # SAVE ALSO FOR VGAMCALC 058145,000197: 27,2771 15322 TFF1/4 058146,000198: 27,2772 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR) 058147,000199: 27,2773 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR) 058148,000200: 27,2774 02372 VONE' # SAVED VN. E:(10) M:(9) 058149,000201: 27,2775 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT. 058150,000202: 27,2776 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18) 058151,000203: # SAVE FOR VGAMCALC 058152,000204: 27,2777 43257 SR* DAD 058153,000205: # Page 1367 058154,000206: 27,3000 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR) 058155,000207: 27,3001 77626 STADR 058156,000208: # 2/RMAG FROM PDL+2 058157,000209: 27,3002 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR) 058158,000210: 27,3003 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18) 058159,000211: 27,3004 20173 0 -6,1 058160,000212: 27,3005 75446 ABS SQRT # E:(10) M:(9) 058161,000213: 27,3006 77701 NORM 058162,000214: 27,3007 00050 X2 # X2 = -NA 058163,000215: 27,3010 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA) 058164,000216: 27,3011 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK 058165,000217: # ALFA FROM PDL+2 E:(20) M:(18) 058166,000218: 27,3012 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA 058167,000219: 27,3013 57015 +2 058168,000220: 27,3014 15322 TFF1/4 058169,000221: 27,3015 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 058170,000222: 27,3016 77616 DUMPCNIC RVQ 058171,000223: # 39 W 058172,000224: # Page 1368 058173,000225: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67 058174,000226: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 058175,000227: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67 058176,000228: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES 058177,000229: # ALSO IMPROVE ACCURACY OF RAPO. 058178,000230: 058179,000231: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO 058180,000232: # APOGEE RADIUS FOR A GENERAL CONIC. 058181,000233: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY 058182,000234: # RP = P/(1+E) RA = (1+E) / ALFA 058183,000235: # WHERE 2 058184,000236: # E = 1 - P ALFA 058185,000237: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE 058186,000238: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA 058187,000239: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA 058188,000240: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE. 058189,000241: 058190,000242: # THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI-MAJOR AXIS, ALFA, AND SEMI-LATUS RECTUM AS DATA. 058191,000243: 058192,000244: # CALLING SEQUENCE: CALL 058193,000245: # TFFRP/RA 058194,000246: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D 058195,000247: # C(MPAC) UNSPECIFIED 058196,000248: 058197,000249: # SUBROUTINES CALLED: NONE 058198,000250: 058199,000251: # NORMAL EXIT MODE: RVQ 058200,000252: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT. 058201,000253: # OTHERWISE, RAPO = POSMAX. 058202,000254: 058203,000255: # ALARMS: NONE 058204,000256: 058205,000257: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC. 058206,000258: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG. 058207,000259: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER 058208,000260: # PUSHLOC AT PDL+0 058209,000261: 058210,000262: # ERASABLE INITIALIZATION REQUIRED: 058211,000263: # TFFALFA E:(26-NR) M 1/SEMI-MAJOR AXIS LEFT BY TFFCONIC 058212,000264: # M:(24-NR) 058213,000265: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC 058214,000266: # M:(-36+2NR) 058215,000267: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC 058216,000268: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC 058217,000269: 058218,000270: # DEBRIS: QPRET, PDL+0 ... PDL+1 058219,000271: 058220,000272: # Page 1369 058221,000273: 27,3017 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27) 058222,000274: 27,3017 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27) 058223,000275: 058224,000276: 27,3017 41345 TFFRP/RA DLOAD DMP 058225,000277: 27,3020 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR) 058226,000278: 27,3021 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR) 058227,000279: 27,3022 57457 SR* DCOMP # ALFA P (-12+NR) 058228,000280: 27,3023 20571 0 -8D,1 # ALFA P (-4) 058229,000281: 27,3024 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT) 058230,000282: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0) 058231,000283: 27,3025 17357 DP2(-4) 058232,000284: 27,3026 43366 SQRT DAD # E SQ = (1- P ALFA) (-4) 058233,000285: 27,3027 15322 TFF1/4 058234,000286: 27,3030 55206 PUSH BDDV # (1+E) (-2) TO PDL+0 058235,000287: 27,3031 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR) 058236,000288: 27,3032 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL) 058237,000289: 27,3033 20601 0,1 # X1=-NR 058238,000290: 27,3034 20572 0 -7,1 # (EFFECTIVE SL) 058239,000291: 27,3035 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27) 058240,000292: # (1+E) (-2) FROM PDL+0 058241,000293: 27,3036 41005 DMP BOVB 058242,000294: 27,3037 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA) 058243,000295: 27,3040 57343 TCDANZIG # CLEAR OVFIND, IF ON. 058244,000296: 27,3041 53654 BZE SL* 058245,000297: 27,3042 57051 MAXRA # SET POSMAX IF ALFA=0 058246,000298: 27,3043 57603 0 -5,2 # -5+NA 058247,000299: 27,3044 40057 SL* BOV 058248,000300: 27,3045 57576 0,2 058249,000301: 27,3046 57051 MAXRA # SET POSMAX IF OVFL. 058250,000302: 27,3047 77644 BPL # CONTINUE WITH VALID RAPO. 058251,000303: 27,3050 57053 +3 058252,000304: 27,3051 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO = 058253,000305: 27,3052 17363 NEARONE # POSMAX AS A TAG. 058254,000306: 27,3053 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27) 058255,000307: 27,3054 77616 DUMPRPRA RVQ 058256,000308: # 30 W 058257,000309: # Page 1370 058258,000310: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67 058259,000311: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 058260,000312: # MOD BY: RR BAIRNSFATHER 058261,000313: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67 058262,000314: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67 058263,000315: # MOD BY: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST) 058264,000316: # MOD BY: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU. 058265,000317: # MOD BY: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES 058266,000318: 058267,000319: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND 058268,000320: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR 058269,000321: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE. 058270,000322: # THE EQUATIONS ARE: 058271,000323: 058272,000324: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE) LEQ +- LCE/SQRT(ALFA) 058273,000325: # __ __ 058274,000326: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA) 058275,000327: 058276,000328: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA) 058277,000329: 058278,000330: # WHERE, IF INBOUND 058279,000331: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA 058280,000332: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA) 058281,000333: 058282,000334: # AND, IF OUTBOUND 058283,000335: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA) 058284,000336: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE 058285,000337: 058286,000338: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG) 058287,000339: # THEN X = ALFA Z Z 058288,000340: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU) 058289,000341: # EXCEPT IF ALFA PNZ, AND IF TFF NEG, 058290,000342: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF 058291,000343: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG) 058292,000344: # THEN X = 1/ALFA Z Z 058293,000345: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU) 058294,000346: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES 058295,000347: # 2 3 2 058296,000348: # 1/3 - X/5 + X /7 - X /8 ... (X < 1.0) 058297,000349: 058298,000350: # CALLING SEQUENC: TIME TO RTERM TIME TO PERIGEE 058299,000351: # CALL CALL 058300,000352: # CALCTFF CALCTPER 058301,000353: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M 058302,000354: # FOR EITHER, E:(-29) M:(-27) 058303,000355: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D. 058304,000356: # Page 1371 058305,000357: 058306,000358: # SUBROUTINES CALLED: T(X), VIA RTB 058307,000359: 058308,000360: # NORMAL EXIT MODE: RVQ 058309,000361: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE. 058310,000362: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD. 058311,000363: # B. (THIS OPTION IS NO LONGER USED.) 058312,000364: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO 058313,000365: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA. 058314,000366: 058315,000367: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE 058316,000368: # TFFX (0) X LEFT FOR ENTRY DISPLAY TFF ROUTINES 058317,000369: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES 058318,000370: # M:(-27+NR) 058319,000371: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES 058320,000372: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES 058321,000373: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:. 058322,000374: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED. 058323,000375: # TFFQ1 E:(-16) M:(-15) PDL 14D 058324,000376: # TFFDELQ E:(-16) M:(-15) PDL 10D 058325,000377: # PUSHLOC AT PDL+0 058326,000378: 058327,000379: # ERASABLE INITIALIZATION REQUIRED: 058328,000380: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER 058329,000381: # VONE' E:(+10) M:(+9) VN/SQRT(NU) LEFT BY TFF/CONIC 058330,000382: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC 058331,000383: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER 058332,000384: 058333,000385: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA. 058334,000386: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC. 058335,000387: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC 058336,000388: # M:(-27+NR) 058337,000389: # X1 -NR, NORM COUNT LEFT BY TFFCONIC 058338,000390: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC 058339,000391: # M:(-36+2N4) 058340,000392: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC 058341,000393: # M:(24-NR) 058342,000394: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC 058343,000395: # M:(9+NA) 058344,000396: # X2 -NA, NORMCOUNT LEFT BY TFFCONIC 058345,000397: # TFF1/ALF E:(-22-2NA) SIGNED SEMI-MAJOR AXIS, WEIGHTED BY NA LEFT BY TFFCONIC 058346,000398: # M:(-20-2NA) 058347,000399: 058348,000400: # DEBRIS: QPRET, PDL+0 ... PDL+3 058349,000401: # RTERM E:(-29) M(-27) RTERM, TERMINAL RADIUS LENGTH 058350,000402: # RAPO E:(-29) M(-27) PDL 16D (=NRTERM) 058351,000403: # RPER E:(-29) M(-27) PDL 14D (=TFFQ1) 058352,000404: 058353,000405: # Page 1372 058354,000406: 27,3055 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC 058355,000407: 27,3056 03436 TFFSW 058356,000408: 27,3057 57062 +3 058357,000409: 27,3060 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC 058358,000410: 27,3061 03676 TFFSW 058359,000411: 27,3062 00023 +3 STORE RTERM # E:(-29) M:(-27) 058360,000412: 27,3063 77657 SL* 058361,000413: 27,3064 20201 0,1 # X1=-NR 058362,000414: 27,3065 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR) 058363,000415: 27,3066 44205 DMP BDSU 058364,000416: 27,3067 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 058365,000417: 27,3070 15322 TFF1/4 058366,000418: 27,3071 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0 058367,000419: 27,3072 00021 NRTERM # E:(-29+NR) M:(-27+NR) 058368,000420: 27,3073 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2 058369,000421: # E:(-32+NR) M:(-30+NR) 058370,000422: 27,3074 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR) 058371,000423: 27,3075 20573 0 -6,1 # X1 = -NR 058372,000424: 27,3076 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT 058373,000425: # RTERM(2-ALFA RTERM) FROM PDL +2 058374,000426: # E:(-32+NR) M:(-30+NR) 058375,000427: 27,3077 77657 SR* # LEAVE E:(-32) M:(-30) 058376,000428: 27,3100 20601 0,1 # X1 = -NR 058377,000429: 27,3101 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH 058378,000430: 27,3102 03756 TFFSW 058379,000431: 27,3103 57105 +2 # IF TFF, CONTINUE 058380,000432: 27,3104 15332 TFFZEROS # IF TPER, SET Q2 = 0 058381,000433: 27,3105 75440 +2 BMN SQRT # E:(-16) M:(-15) 058382,000434: 27,3106 57240 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE 058383,000435: # RESET PDL, SET TFF=POSMAX, AND EXIT. 058384,000436: 058385,000437: 27,3107 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0 058386,000438: 27,3110 57343 TCDANZIG # ANY PORT IN A STORM. 058387,000439: 27,3111 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15) 058388,000440: 27,3112 02372 VONE' # VN/SQRT(MU) E:(10) M:(9) 058389,000441: 27,3113 52441 DOT SL3 058390,000442: 27,3114 02327 RONE # SAVED RN. E:(-29) M:(-27) 058391,000443: 27,3115 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST. 058392,000444: # E:(-16) M:(-15) 058393,000445: 27,3116 44240 BMN BDSU 058394,000446: 27,3117 57140 INBOUND # USE ALTERNATE Z 058395,000447: 27,3120 00045 TFFTEM # Q2 E:(-16) M:(-15) 058396,000448: 058397,000449: # OUTBOUND Z CALC CONTINUES HERE 058398,000450: 058399,000451: 27,3121 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15) 058400,000452: 27,3122 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 058401,000453: 27,3123 44205 DMP BDSU 058402,000454: # Page 1373 058403,000455: 27,3124 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR) 058404,000456: # (2-RTERM ALFA) (-3) FROM PDL+0 058405,000457: 27,3125 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16) 058406,000458: # M:(-3) OR (-15) 058407,000459: 27,3126 40015 DAD BOV # INDETERMINANCY TEST 058408,000460: 27,3127 17351 LIM(-22) # =1.0-B(-22) 058409,000461: 27,3130 57151 TFFXTEST # GO IF DEN >/= B(-22) 058410,000462: 27,3131 65345 DLOAD PDDL # SET DEN=0 OTHERWISE 058411,000463: 27,3132 15332 TFFZEROS 058412,000464: # XCH ZERO WITH PDL+0 058413,000465: 27,3133 57545 DLOAD DCOMP 058414,000466: 27,3134 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 058415,000467: 27,3135 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90. 058416,000468: 27,3136 57245 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N 058417,000469: 058418,000470: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB. 058419,000471: 27,3137 77616 DUMPTFF1 RVQ # RETURN TFF =0 058420,000472: 058421,000473: # INBOUND Z CALC CONTINUES HERE 058422,000474: 058423,000475: 27,3140 77745 INBOUND DLOAD # RESET PDL+0 058424,000476: 27,3141 45345 DLOAD DSU # ALTERNATE Z CALC 058425,000477: 27,3142 00023 RTERM # E:(-29) M:(-27) 058426,000478: 27,3143 00015 RMAG1 # E:(-29) M:(-27) 058427,000479: 27,3144 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27) 058428,000480: 27,3145 00045 TFFTEM # Q2 E:(-16) M:(-15) 058429,000481: 27,3146 52015 DAD GOTO 058430,000482: 27,3147 00017 TFFQ1 # Q1 E:(-16) M:(-15) 058431,000483: 27,3150 57125 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15) 058432,000484: 058433,000485: 27,3151 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2) E:(-3) OR (-16) 058434,000486: # M:(-3) OR (-15) 058435,000487: 27,3152 17353 DP(-22) # RESTORE ABS(DEN) TO MPAC 058436,000488: 27,3153 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27) 058437,000489: 27,3154 53605 DMP SR* 058438,000490: 27,3155 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA) 058439,000491: 27,3156 57201 0 -3,2 # X2=-NA 058440,000492: 27,3157 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16) 058441,000493: # M:(-3) OR (-15) 058442,000494: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16) 058443,000495: # M:(-3) OR (-15) 058444,000496: 27,3160 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL) 058445,000497: 27,3161 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27) 058446,000498: 27,3162 57243 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90 058447,000499: 058448,000500: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN 058449,000501: 058450,000502: 27,3163 45471 DDV STADR 058451,000503: # DEN FROM PDL+0 E:(-3) OR (-16) 058452,000504: # M:(-3) OR (-15) 058453,000505: 27,3164 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF. 058454,000506: # Page 1374 058455,000507: # E:(-13) M:(-12) 058456,000508: 27,3165 63406 PUSH DSQ # Z TO PDL+0 058457,000509: 27,3166 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24) 058458,000510: 27,3167 00035 TFFNP # LC P E:(-38+2NR) M:(-36+NR) 058459,000511: 27,3170 75261 SL SIGN 058460,000512: 27,3171 20206 5 058461,000513: 27,3172 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY) 058462,000514: 27,3173 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR) 058463,000515: # (ARG IS USED IN TFF/TRIG) 058464,000516: # ZSQ FROM PDL+2 E:(-26) M:(-24) 058465,000517: 27,3174 41206 PUSH DMP # RESTORE PUSH LOC 058466,000518: 27,3175 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR) 058467,000519: 27,3176 77657 SL* 058468,000520: 27,3177 20201 0,1 # X1=-NR 058469,000521: 27,3200 00043 STORE TFFX # X 058470,000522: 27,3201 41234 RTB DMP 058471,000523: 27,3202 57325 T(X) # POLY 058472,000524: # ZSQ FROM PDL+2 E:(-26) M:(-24) 058473,000525: 27,3203 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27) 058474,000526: 27,3204 00023 RTERM # RTERM E:(-29) M:(-27) 058475,000527: 27,3205 41215 DAD DMP 058476,000528: 27,3206 00015 RMAG1 # E:(-29) M:(-27) 058477,000529: # Z FROM PDL+0 E:(-13) M:(-12) 058478,000530: 27,3207 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42) 058479,000531: 27,3210 57231 ENDTFF # (NO PUSH UP) 058480,000532: 27,3211 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0 058481,000533: 27,3212 00017 TFFQ1 # Q1 FOR GONEPAST TEST 058482,000534: 27,3213 71244 BPL DLOAD # GONE PAST ? 058483,000535: 27,3214 57235 NEGTFF # YES. TFF < 0. 058484,000536: 27,3215 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 058485,000537: 27,3216 51076 DCOMP BPL # ALFA > 0 ? 058486,000538: 27,3217 57235 NEGTFF # NO. TFF IS NEGATIVE. 058487,000539: 058488,000540: # CORRECT FOR ORBITAL PERIOD. 058489,000541: 058490,000542: 27,3220 77676 DCOMP # YES. CORRECT FOR ORB PERIOD. 058491,000543: 27,3221 56205 DMP DDV 058492,000544: 27,3222 17347 PI/16 # 2 PI (-5) 058493,000545: 27,3223 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA) 058494,000546: 27,3224 53657 SL* SL* 058495,000547: 27,3225 57602 0 -4,2 # X2=-NA 058496,000548: 27,3226 57602 0 -4,2 058497,000549: 27,3227 43257 SL* DAD 058498,000550: 27,3230 57576 0,2 058499,000551: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42) 058500,000552: 27,3231 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42) 058501,000553: 27,3232 00037 TFF/RTMU # E:(17) M:(14) 058502,000554: 27,3233 57241 MAXTFF # SET POSMAX IN OVFL. 058503,000555: 058504,000556: 27,3234 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC. 058505,000557: 058506,000558: # Page 1375 058507,000559: 27,3235 77745 NEGTFF DLOAD 058508,000560: # TFF SQRT(MU) FROM PDL+0, NEGATIVE. 058509,000561: 27,3236 77650 GOTO 058510,000562: 27,3237 57231 ENDTFF 058511,000563: 058512,000564: 27,3240 77745 MAXTFF1 DLOAD # RESET PDL 058513,000565: 27,3241 43545 MAXTFF DLOAD RVQ 058514,000566: 27,3242 17363 NEARONE 058515,000567: 058516,000568: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90. 058517,000569: 058518,000570: # NUM FROM TFFX. E:(-16) OR (-29) 058519,000571: # M:(-15) OR (-27) 058520,000572: 27,3243 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25) 058521,000573: 27,3244 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0 058522,000574: # DEN FROM PDL+0 E:(-3)/(-16) M:(-3)/(-15) 058523,000575: # N/D TO PDL+0 E:(11) M:(10) 058524,000576: 27,3245 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0) 058525,000577: 27,3246 00045 TFFTEM # Q2 E:(-16) M:(-15) 058526,000578: 27,3247 00017 TFFQ1 # Q1 E:(-16) M:(-15) 058527,000579: 27,3250 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15) 058528,000580: # D/N FROM PDL+0 058529,000581: 27,3251 77626 STADR 058530,000582: 27,3252 77732 STORE TFFTEM # D/N E:(11) M:(10) 058531,000583: 27,3253 53605 DMP SL* 058532,000584: 27,3254 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 058533,000585: 27,3255 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA) 058534,000586: 27,3256 41206 PUSH DMP # TO PDL+0 058535,000587: 27,3257 00045 TFFTEM # 1/Z E:(11) M:(10 058536,000588: 27,3260 41057 SL* BOVB 058537,000589: 27,3261 57576 0,2 # X2= -NA 058538,000590: 27,3262 45707 SIGNMPAC # IN CASE X= 1.0, CONTINUE 058539,000591: 27,3263 00043 STORE TFFX # X=1/ALFA ZSQ 058540,000592: 27,3264 41234 RTB DMP 058541,000593: 27,3265 57325 T(X) # POLY 058542,000594: 27,3266 00043 TFFX 058543,000595: 27,3267 45242 SR3 DSU 058544,000596: 27,3270 17355 DP2(-3) 058545,000597: 27,3271 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA) 058546,000598: # M:(-14-NA) 058547,000599: # 1/ALFA Z FROM PDL+0 E:(-11-NA) 058548,000600: # M:(-10-NA) 058549,000601: 27,3272 41345 DLOAD DMP # GET SIGN FOR SDELF 058550,000602: 27,3273 00045 TFFTEM # 1/Z E:(11) M:(10) 058551,000603: 27,3274 00015 RMAG1 # E:(-29) M:(-27) 058552,000604: 27,3275 43312 SL2 DAD 058553,000605: 27,3276 00017 TFFQ1 # Q1 E:(-16) M:(-15) 058554,000606: 27,3277 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15) 058555,000607: 27,3300 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR) 058556,000608: 27,3301 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG. 058557,000609: # Page 1376 058558,000610: 27,3302 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 058559,000611: 27,3303 57575 1,2 # X2=-NA 058560,000612: 27,3304 53765 SIGN SL* 058561,000613: 27,3305 00045 TFFTEM # AFFIX SIGN FOR SDELF 058562,000614: 27,3306 57576 0,2 058563,000615: 27,3307 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR) 058564,000616: # (ARG FOR USE IN TFF/TRIG) 058565,000617: 27,3310 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 058566,000618: 27,3311 41366 SQRT DMP 058567,000619: 27,3312 17347 PI/16 # PI (-4) 058568,000620: 27,3313 77615 DAD 058569,000621: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA) 058570,000622: # M:(-14-NA) 058571,000623: 27,3314 45257 SL* DSU 058572,000624: 27,3315 57577 0 -1,2 058573,000625: 27,3316 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15) 058574,000626: 27,3317 53605 DMP SL* 058575,000627: 27,3320 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA) 058576,000628: 27,3321 57601 0 -3,2 058577,000629: 27,3322 52057 SL* GOTO 058578,000630: 27,3323 57602 0 -4,2 058579,000631: 27,3324 57231 ENDTFF # TFF SQRT(MU) IN MPAC E:(-145) M:(-42) 058580,000632: 058581,000633: # Page 1377 058582,000634: # PROGRAM NAME: T(X) DATE: 01.17.67 058583,000635: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL 058584,000636: # MOD BY: RR BAIRNSFATHER 058585,000637: 058586,000638: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND 058587,000639: # CALCTPER TO APPROXIMATE THE SERIES 058588,000640: # 2 3 058589,000641: # 1/3 -X/5 +X /7 -X /9 ... 058590,000642: 058591,000643: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1 058592,000644: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1 058593,000645: 058594,000646: # ALSO X IS NEG FOR HYPERBOLIC ORBITS 058595,000647: # X = 0 FOR PARABOLIC ORBITS 058596,000648: # X IS POSITIVE FOR ELLIPTIC ORBITS 058597,000649: 058598,000650: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM 058599,000651: # DEVIATION FROM THE SERIES OF 2 E-5. (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING 058600,000652: # MAX PROGRAM AUTOCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).) 058601,000653: 058602,000654: # CALLING SEQUENCE: RTB 058603,000655: # T(X) 058604,000656: # C(MPAC) = X 058605,000657: 058606,000658: # SUBROUTINE CALLED: NONE 058607,000659: 058608,000660: # NORMAL EXIT MODE: TC TANZIG 058609,000661: 058610,000662: # ALARMS: NONE 058611,000663: 058612,000664: # OUTPUT: C(MPAC) = T(X) 058613,000665: 058614,000666: # ERASABLE INITIALIZATION REQUIRED: 058615,000667: # C(MPAC) = X 058616,000668: 058617,000669: # DEBRIS: NONE 058618,000670: 058619,000671: 27,3325 07171 T(X) TC POLY 058620,000672: 27,3326 00004 DEC 4 B-14 # N-1 058621,000673: 27,3327 12525 12525 2DEC 3.333333333 E-1 058622,000674: 27,3331 71463 57703 2DEC* -1.999819135 E-1* 058623,000675: 27,3333 04423 17645 2DEC* 1.418148467 E-1* 058624,000676: 27,3335 74604 43667 2DEC* -1.01310997 E-1* 058625,000677: 27,3337 01626 37256 2DEC* 5.609004986 E-2* 058626,000678: 27,3341 77404 52071 2DEC* -1.536156925 E-2* 058627,000679: 058628,000680: 27,3343 06030 ENDT(X) TC DANZIG 058629,000681: 058630,000682: 27,3344 27,3343 TCDANZIG = ENDT(X) 058631,000683: 058632,000684: # Page 1378 058633,000685: # TFF CONSTANTS 058634,000686: 058635,000687: 32,3755 BANK 32 058636,000688: 058637,000689: 27,2000 SETLOC TOF-FF1 058638,000690: 27,2000 BANK 058639,000691: 058640,000692: # # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ. 058641,000693: # MUE = 3.990815471 E10 # M CUBE/CS SQ 058642,000694: # RTMUE = 1.997702549 E5 B-18 # MODIFIED EARTH MU 058643,000695: 058644,000696: 27,3344 24775 30424 1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU 058645,000697: 058646,000698: # # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ. 058647,000699: # MUM = 4.902778 E8 # M CUBE/CS SQ 058648,000700: # RTMUM 2DEC* 2.21422176 E4 B-18* 058649,000701: 27,3346 06220 37553 PI/16 2DEC 3.141592653 B-4 058650,000702: 27,3350 37777 37700 LIM(-22) 2OCT 3777737700 # 1.0 -B(-22) 058651,000703: 27,3352 00000 00100 DP(-22) 2OCT 0000000100 # B(-22) 058652,000704: 27,3354 04000 00000 DP2(-3) 2DEC 1 B-3 058653,000705: 27,3356 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16 058654,000706: 058655,000707: # RPAD1 2DEC 6373338 B-29 # M (-29) = 20909901.57 FT 058656,000708: 27,3360 22,3310 RPAD1 = RPAD 058657,000709: 058658,000710: 27,3360 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M 058659,000711: 27,3362 37777 37777 NEARONE 2DEC .999999999 058660,000712: 27,3364 26,3331 TFFZEROS EQUALS HI6ZEROS 058661,000713: 27,3364 26,3321 TFF1/4 EQUALS HIDP1/4 058662,000714: 058663,000715: 058664,000716: End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc