Source Code
059383,000001: # Copyright: Public domain.
059384,000002: # Filename: TIME_OF_FREE_FALL.agc
059385,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
059386,000004: # It is part of the source code for the Command Module's (CM)
059387,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
059388,000006: # Assembler: yaYUL
059389,000007: # Contact: Ron Burkey <info@sandroid.org>.
059390,000008: # Website: www.ibiblio.org/apollo.
059391,000009: # Pages: 1373-1388
059392,000010: # Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
059393,000011: # from the Colossus249/ file of the same
059394,000012: # name, using Comanche055 page images.
059395,000013:
059396,000014: # This source code has been transcribed or otherwise adapted from digitized
059397,000015: # images of a hardcopy from the MIT Museum. The digitization was performed
059398,000016: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
059399,000017: # thanks to both. The images (with suitable reduction in storage size and
059400,000018: # consequent reduction in image quality as well) are available online at
059401,000019: # www.ibiblio.org/apollo. If for some reason you find that the images are
059402,000020: # illegible, contact me at info@sandroid.org about getting access to the
059403,000021: # (much) higher-quality images which Paul actually created.
059404,000022:
059405,000023: # Notations on the hardcopy document read, in part:
059406,000024:
059407,000025: # Assemble revision 055 of AGC program Comanche by NASA
059408,000026: # 2021113-051. 10:28 APR. 1, 1969
059409,000027:
059410,000028: # This AGC program shall also be referred to as
059411,000029: # Colossus 2A
059412,000030:
059413,000031: # Page 1373
059414,000032: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
059415,000033: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE, AND 1/SQRT(MU) AT THE
059416,000034: # APPROPIRATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
059417,000035:
059418,000036: # EARTH ORIGIN POSITION -29 METERS
059419,000037: # VELOCITY -7 METERS/CENTISECOND
059420,000038: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
059421,000039:
059422,000040: # MOON ORIGIN POSITION -27 METERS
059423,000041: # VELOCITY -5 METERS/CENTISECONDS
059424,000042: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
059425,000043:
059426,000044: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
059427,000045: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
059428,000046: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
059429,000047:
059430,000048: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE, AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
059431,000049: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
059432,000050: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
059433,000051:
059434,000052: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
059435,000053: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
059436,000054:
059437,000055: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
059438,000056:
059439,000057: # BELOW E: IS USED FOR EARTH ORIGIN SCALE
059440,000058: # M: IS USED FOR MOON ORIGIN SCALE
059441,000059:
059442,000060: # TFFSW = 119D # BIT1 0 = CALCTFF 1 = CALCTPER
059443,000061: 23,3772 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
059444,000062: 23,3772 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
059445,000063: # RPER = 14D # PERIGEE RADIUS M E: (-29) M: (-27)
059446,000064: 23,3772 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
059447,000065: # SDELF/2 # SIN(THETA) /2
059448,000066: 23,3772 CDELF/2 = 14D # COS(THETA) /2
059449,000067: # RAPO = 16D # APOGEE RADIUS M E: (-29) M: (-27)
059450,000068: 23,3772 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
059451,000069: # M: (-27+NR)
059452,000070: 23,3772 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
059453,000071: 23,3772 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
059454,000072: 23,3772 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
059455,000073: # M: (-20-2 NA)
059456,000074: 23,3772 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
059457,000075: 23,3772 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
059458,000076: 23,3772 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
059459,000077: # M: (-36+2 NR)
059460,000078: 23,3772 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
059461,000079: 23,3772 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
059462,000080: # M: (-27+NR)
059463,000081: 23,3772 TFFX = 34D
059464,000082: 23,3772 TFFTEM = 36D # TEMPORARY
059465,000083: # Page 1374
059466,000084: # REGISTERS S1, S2 ARE UNTOUCED BY ANY TFF SUBROUTINE
059467,000085: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
059468,000086: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
059469,000087: # SUBROUTINES.
059470,000088: # -NR C(X1) = NORM COUNT OF RMAG
059471,000089: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
059472,000090:
059473,000091: # Page 1375
059474,000092: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
059475,000093: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
059476,000094: # MOD BY: RR BAIRNSFATHER
059477,000095: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
059478,000096: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
059479,000097: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
059480,000098:
059481,000099: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
059482,000100: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
059483,000101: # THE EQUATIONS ARE:
059484,000102: # _ __ __
059485,000103: # H = RN*VN ANGULAR MOMENTUM
059486,000104: # _ _
059487,000105: # LCP = H.H / MU SEMI LATUS RECTUM
059488,000106: # __ __
059489,000107: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
059490,000108:
059491,000109: # AND ALFA IS POS FOR ELLIPTIC ORBITS
059492,000110: # 0 FOR PARABOLIC ORBITS
059493,000111: # NEG FOR HYPERBOLIC ORBITS.
059494,000112: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
059495,000113:
059496,000114: # CALLING SEQUENCE:
059497,000115: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
059498,000116: # 1/SQRT(MU). THE PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
059499,000117: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
059500,000118: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
059501,000119: # TFF ROUTINES.
059502,000120:
059503,000121: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
059504,000122:
059505,000123: # TO SPECIFY MU: DLOAD CALL # IF MU ALREADY STORED: CALL
059506,000124: # YOURMU # 1/RTMU E:(17) M:(14) TFFCONMU
059507,000125: # TFFCONIC
059508,000126: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
059509,000127:
059510,000128: # SUBROUTINES CALLED: NONE
059511,000129:
059512,000130: # NORMAL EXIT MODES: RVQ
059513,000131:
059514,000132: # ALARMS: NONE
059515,000133:
059516,000134: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
059517,000135: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
059518,000136: # NRMAG E:(-29+NR) M RMAG, NORMALIZED
059519,000137: # M:(-27+NR)
059520,000138: # X1 -NR, NORM COUNT
059521,000139: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC.
059522,000140: # M:(-36+2NR)
059523,000141: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
059524,000142: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORMLIZED. FOR VGAMCALC
059525,000143: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
059526,000144: # M:(24-NR)
059527,000145: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
059528,000146: # M:(9+NA)
059529,000147: # Page 1376
059530,000148: # X2 -NA, NORM COUNT
059531,000149: # TFF1/ALF E:(-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
059532,000150: # M:(-20-2NA)
059533,000151: # PUSHLOC AT PDL+0
059534,000152:
059535,000153: # THE FOLLOWING IS STORED IN GENERAL ERASABLE
059536,000154: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
059537,000155:
059538,000156: # ERASABLE INITIALIZATION REQUIRED:
059539,000157: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
059540,000158: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
059541,000159: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
059542,000160:
059543,000161: # DEBRIS: QPRET PDL+0 ... PDL+3
059544,000162:
059545,000163: 33,3776 BANK 33
059546,000164: 27,2000 SETLOC TOF-FF
059547,000165: 27,2000 BANK
059548,000166:
059549,000167: 27,2757 COUNT* $$/TFF
059550,000168:
059551,000169: 27,2757 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14)
059552,000170:
059553,000171: 27,2760 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
059554,000172: 27,2761 02327 RONE # SAVED RN. M E:(-29) M:(-27)
059555,000173: 27,2762 77725 PDDL # UR/2 TO PDL+0, +5
059556,000174: 27,2763 00045 36D # MAGNITUDE
059557,000175: 27,2764 00015 STORE RMAG1 # M E:(-29) M:(-27)
059558,000176:
059559,000177: 27,2765 77701 NORM
059560,000178: 27,2766 00047 X1 # -NR
059561,000179: 27,2767 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
059562,000180: 27,2770 02335 VONE # SAVED VN. M/CS E:(-7) M:(-5)
059563,000181: 27,2771 77761 VXSC
059564,000182: 27,2772 00037 TFF/RTMU # E:(17) M:(14)
059565,000183: 27,2773 02372 STORE VONE' # VN/SQRT(MU) E:(10) M:(9)
059566,000184:
059567,000185: 27,2774 47361 VXSC VXV
059568,000186: 27,2775 00041 NRMAG # E:(-29+NR) M:(-27+NR)
059569,000187: # UR/2 FROM PDL
059570,000188: 27,2776 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
059571,000189: 27,2777 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
059572,000190: # SAVE ALSO FOR VGAMCALC
059573,000191: 27,3000 15325 TFF1/4
059574,000192: 27,3001 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
059575,000193: 27,3002 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
059576,000194: 27,3003 02372 VONE' # SAVED VN. E:(10) M:(9)
059577,000195: 27,3004 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
059578,000196: 27,3005 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
059579,000197: # SAVE FOR VGAMCALC
059580,000198: 27,3006 43257 SR* DAD
059581,000199: # Page 1377
059582,000200: 27,3007 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
059583,000201: 27,3010 77626 STADR
059584,000202: # 2/RMAG FROM PDL+2
059585,000203: 27,3011 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
059586,000204: 27,3012 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
059587,000205: 27,3013 20173 0 -6,1
059588,000206: 27,3014 75446 ABS SQRT # E:(10) M:(9)
059589,000207: 27,3015 77701 NORM
059590,000208: 27,3016 00050 X2 # X2 = -NA
059591,000209: 27,3017 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
059592,000210: 27,3020 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK
059593,000211: # ALFA FROM PDL+2 E:(20) M:(18)
059594,000212: 27,3021 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
059595,000213: 27,3022 57024 +2
059596,000214: 27,3023 15325 TFF1/4
059597,000215: 27,3024 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059598,000216: 27,3025 77616 DUMPCNIC RVQ
059599,000217: # 39 W
059600,000218: # Page 1378
059601,000219: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
059602,000220: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
059603,000221: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
059604,000222: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
059605,000223: # ALSO IMPROVE ACCURACY OF RAPO.
059606,000224:
059607,000225: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
059608,000226: # APOGEE RADIUS FOR A GENERAL CONIC.
059609,000227: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
059610,000228: # RP = P/(1+E) RA = (1+E) / ALFA
059611,000229: # WHERE 2
059612,000230: # E = 1 - P ALFA
059613,000231: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
059614,000232: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
059615,000233: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
059616,000234: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
059617,000235:
059618,000236: # THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
059619,000237:
059620,000238: # CALLING SEQUENCE: CALL
059621,000239: # TFFRP/RA
059622,000240: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
059623,000241: # C(MPAC) UNSPECIFIED
059624,000242:
059625,000243: # SUBROUTINES CALLED: NONE
059626,000244:
059627,000245: # NORMAL EXIT MODE: RVQ
059628,000246: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
059629,000247: # OTHERWISE, RAPO = POSMAX.
059630,000248:
059631,000249: # ALARMS: NONE
059632,000250:
059633,000251: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
059634,000252: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
059635,000253: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
059636,000254: # PUSHLOC AT PDL+0
059637,000255:
059638,000256: # ERASABLE INITIALIZATION REQUIRED:
059639,000257: # TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
059640,000258: # M:(24-NR)
059641,000259: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
059642,000260: # M:(-36+2NR)
059643,000261: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
059644,000262: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
059645,000263:
059646,000264: # DEBRIS: QPRET, PDL+0 ... PDL+1
059647,000265:
059648,000266: # Page 1379
059649,000267: 27,3026 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
059650,000268: 27,3026 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
059651,000269:
059652,000270: 27,3026 41345 TFFRP/RA DLOAD DMP
059653,000271: 27,3027 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
059654,000272: 27,3030 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
059655,000273: 27,3031 57457 SR* DCOMP # ALFA P (-12+NR)
059656,000274: 27,3032 20571 0 -8D,1 # ALFA P (-4)
059657,000275: 27,3033 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
059658,000276: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
059659,000277: 27,3034 17366 DP2(-4)
059660,000278: 27,3035 43366 SQRT DAD # E SQ = (1- P ALFA) (-4)
059661,000279: 27,3036 15325 TFF1/4
059662,000280: 27,3037 55206 PUSH BDDV # (1+E) (-2) TO PDL+0
059663,000281: 27,3040 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
059664,000282: 27,3041 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
059665,000283: 27,3042 20601 0,1 # X1=-NR
059666,000284: 27,3043 20572 0 -7,1 # (EFFECTIVE SL)
059667,000285: 27,3044 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
059668,000286: # (1+E) (-2) FROM PDL+0
059669,000287: 27,3045 41005 DMP BOVB
059670,000288: 27,3046 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
059671,000289: 27,3047 57352 TCDANZIG # CLEAR OVFIND, IF ON.
059672,000290: 27,3050 53654 BZE SL*
059673,000291: 27,3051 57060 MAXRA # SET POSMAX IF ALFA=0
059674,000292: 27,3052 57603 0 -5,2 # -5+NA
059675,000293: 27,3053 40057 SL* BOV
059676,000294: 27,3054 57576 0,2
059677,000295: 27,3055 57060 MAXRA # SET POSMAX IF OVFL.
059678,000296: 27,3056 77644 BPL # CONTINUE WITH VALID RAPO.
059679,000297: 27,3057 57062 +3
059680,000298: 27,3060 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
059681,000299: 27,3061 17372 NEARONE # POSMAX AS A TAG.
059682,000300: 27,3062 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
059683,000301: 27,3063 77616 DUMPRPRA RVQ
059684,000302: # 30 W
059685,000303: # Page 1380
059686,000304: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
059687,000305: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
059688,000306: # MOD BY: RR BAIRNSFATHER
059689,000307: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
059690,000308: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
059691,000309: # MOD BY: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
059692,000310: # MOD BY: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
059693,000311: # MOD BY: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
059694,000312:
059695,000313: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
059696,000314: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR
059697,000315: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
059698,000316: # THE EQUATIONS ARE:
059699,000317:
059700,000318: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE) LEQ +- LCE/SQRT(ALFA)
059701,000319: # __ __
059702,000320: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
059703,000321:
059704,000322: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
059705,000323:
059706,000324: # WHERE, IF INBOUND
059707,000325: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA
059708,000326: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
059709,000327:
059710,000328: # AND, IF OUTBOUND
059711,000329: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
059712,000330: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE
059713,000331:
059714,000332: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
059715,000333: # THEN X = ALFA Z Z
059716,000334: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
059717,000335: # EXCEPT IF ALFA PNZ, AND IF TFF NEG,
059718,000336: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
059719,000337: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
059720,000338: # THEN X = 1/ALFA Z Z
059721,000339: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
059722,000340: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
059723,000341: # 2 3 2
059724,000342: # 1/3 - X/5 + X /7 - X /8 ... (X < 1.0)
059725,000343:
059726,000344: # CALLING SEQUENC: TIME TO RTERM TIME TO PERIGEE
059727,000345: # CALL CALL
059728,000346: # CALCTFF CALCTPER
059729,000347: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
059730,000348: # FOR EITHER, E:(-29) M:(-27)
059731,000349: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D.
059732,000350: # Page 1381
059733,000351:
059734,000352: # SUBROUTINES CALLED: T(X), VIA RTB
059735,000353:
059736,000354: # NORMAL EXIT MODE: RVQ
059737,000355: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
059738,000356: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
059739,000357: # B. (THIS OPTION IS NO LONGER USED.)
059740,000358: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
059741,000359: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
059742,000360:
059743,000361: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
059744,000362: # TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
059745,000363: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
059746,000364: # M:(-27+NR)
059747,000365: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
059748,000366: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
059749,000367: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
059750,000368: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
059751,000369: # TFFQ1 E:(-16) M:(-15) PDL 14D
059752,000370: # TFFDELQ E:(-16) M:(-15) PDL 10D
059753,000371: # PUSHLOC AT PDL+0
059754,000372:
059755,000373: # ERASABLE INITIALIZATION REQUIRED:
059756,000374: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
059757,000375: # VONE' E:(+10) M:(+9) VN/SQRT(NU) LEFT BY TFF/CONIC
059758,000376: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
059759,000377: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
059760,000378:
059761,000379: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
059762,000380: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
059763,000381: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
059764,000382: # M:(-27+NR)
059765,000383: # X1 -NR, NORM COUNT LEFT BY TFFCONIC
059766,000384: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
059767,000385: # M:(-36+2N4)
059768,000386: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
059769,000387: # M:(24-NR)
059770,000388: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
059771,000389: # M:(9+NA)
059772,000390: # X2 -NA, NORM COUNT LEFT BY TFFCONIC
059773,000391: # TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
059774,000392: # M:(-20-2NA)
059775,000393:
059776,000394: # DEBRIS: QPRET, PDL+0 ... PDL+3
059777,000395: # RTERM E:(-29) M(-27) RTERM, TERMINAL RADIUS LENGTH
059778,000396: # RAPO E:(-29) M(-27) PDL 16D (=NRTERM)
059779,000397: # RPER E:(-29) M(-27) PDL 14D (=TFFQ1)
059780,000398:
059781,000399: # Page 1382
059782,000400: 27,3064 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC
059783,000401: 27,3065 03436 TFFSW
059784,000402: 27,3066 57071 +3
059785,000403: 27,3067 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
059786,000404: 27,3070 03676 TFFSW
059787,000405: 27,3071 00023 +3 STORE RTERM # E:(-29) M:(-27)
059788,000406: 27,3072 77657 SL*
059789,000407: 27,3073 20201 0,1 # X1=-NR
059790,000408: 27,3074 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR)
059791,000409: 27,3075 44205 DMP BDSU
059792,000410: 27,3076 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
059793,000411: 27,3077 15325 TFF1/4
059794,000412: 27,3100 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
059795,000413: 27,3101 00021 NRTERM # E:(-29+NR) M:(-27+NR)
059796,000414: 27,3102 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
059797,000415: # E:(-32+NR) M:(-30+NR)
059798,000416: 27,3103 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
059799,000417: 27,3104 20573 0 -6,1 # X1 = -NR
059800,000418: 27,3105 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
059801,000419: # RTERM(2-ALFA RTERM) FROM PDL +2
059802,000420: # E:(-32+NR) M:(-30+NR)
059803,000421: 27,3106 77657 SR* # LEAVE E:(-32) M:(-30)
059804,000422: 27,3107 20601 0,1 # X1 = -NR
059805,000423: 27,3110 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH
059806,000424: 27,3111 03756 TFFSW
059807,000425: 27,3112 57114 +2 # IF TFF, CONTINUE
059808,000426: 27,3113 15335 TFFZEROS # IF TPER, SET Q2 = 0
059809,000427: 27,3114 75440 +2 BMN SQRT # E:(-16) M:(-15)
059810,000428: 27,3115 57247 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
059811,000429: # RESET PDL, SET TFF=POSMAX, AND EXIT.
059812,000430:
059813,000431: 27,3116 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
059814,000432: 27,3117 57352 TCDANZIG # ANY PORT IN A STORM.
059815,000433: 27,3120 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15)
059816,000434: 27,3121 02372 VONE' # VN/SQRT(MU) E:(10) M:(9)
059817,000435: 27,3122 52441 DOT SL3
059818,000436: 27,3123 02327 RONE # SAVED RN. E:(-29) M:(-27)
059819,000437: 27,3124 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
059820,000438: # E:(-16) M:(-15)
059821,000439: 27,3125 44240 BMN BDSU
059822,000440: 27,3126 57147 INBOUND # USE ALTERNATE Z
059823,000441: 27,3127 00045 TFFTEM # Q2 E:(-16) M:(-15)
059824,000442:
059825,000443: # OUTBOUND Z CALC CONTINUES HERE
059826,000444:
059827,000445: 27,3130 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15)
059828,000446: 27,3131 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
059829,000447: 27,3132 44205 DMP BDSU
059830,000448: # Page 1383
059831,000449: 27,3133 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR)
059832,000450: # (2-RTERM ALFA) (-3) FROM PDL+0
059833,000451: 27,3134 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16)
059834,000452: # M:(-3) OR (-15)
059835,000453: 27,3135 40015 DAD BOV # INDETERMINANCY TEST
059836,000454: 27,3136 17360 LIM(-22) # =1.0-B(-22)
059837,000455: 27,3137 57160 TFFXTEST # GO IF DEN >/= B(-22)
059838,000456: 27,3140 65345 DLOAD PDDL # SET DEN=0 OTHERWISE
059839,000457: 27,3141 15335 TFFZEROS
059840,000458: # XCH ZERO WITH PDL+0
059841,000459: 27,3142 57545 DLOAD DCOMP
059842,000460: 27,3143 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
059843,000461: 27,3144 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
059844,000462: 27,3145 57254 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
059845,000463:
059846,000464: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
059847,000465: 27,3146 77616 DUMPTFF1 RVQ # RETURN TFF =0
059848,000466:
059849,000467: # INBOUND Z CALC CONTINUES HERE
059850,000468:
059851,000469: 27,3147 77745 INBOUND DLOAD # RESET PDL+0
059852,000470: 27,3150 45345 DLOAD DSU # ALTERNATE Z CALC
059853,000471: 27,3151 00023 RTERM # E:(-29) M:(-27)
059854,000472: 27,3152 00015 RMAG1 # E:(-29) M:(-27)
059855,000473: 27,3153 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27)
059856,000474: 27,3154 00045 TFFTEM # Q2 E:(-16) M:(-15)
059857,000475: 27,3155 52015 DAD GOTO
059858,000476: 27,3156 00017 TFFQ1 # Q1 E:(-16) M:(-15)
059859,000477: 27,3157 57134 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15)
059860,000478:
059861,000479: 27,3160 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2) E:(-3) OR (-16)
059862,000480: # M:(-3) OR (-15)
059863,000481: 27,3161 17362 DP(-22) # RESTORE ABS(DEN) TO MPAC
059864,000482: 27,3162 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
059865,000483: 27,3163 53605 DMP SR*
059866,000484: 27,3164 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
059867,000485: 27,3165 57201 0 -3,2 # X2=-NA
059868,000486: 27,3166 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
059869,000487: # M:(-3) OR (-15)
059870,000488: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
059871,000489: # M:(-3) OR (-15)
059872,000490: 27,3167 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
059873,000491: 27,3170 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
059874,000492: 27,3171 57252 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
059875,000493:
059876,000494: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
059877,000495:
059878,000496: 27,3172 45471 DDV STADR
059879,000497: # DEN FROM PDL+0 E:(-3) OR (-16)
059880,000498: # M:(-3) OR (-15)
059881,000499: 27,3173 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
059882,000500: # Page 1384
059883,000501: # E:(-13) M:(-12)
059884,000502: 27,3174 63406 PUSH DSQ # Z TO PDL+0
059885,000503: 27,3175 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24)
059886,000504: 27,3176 00035 TFFNP # LC P E:(-38+2NR) M:(-36+NR)
059887,000505: 27,3177 75261 SL SIGN
059888,000506: 27,3200 20206 5
059889,000507: 27,3201 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
059890,000508: 27,3202 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR)
059891,000509: # (ARG IS USED IN TFF/TRIG)
059892,000510: # ZSQ FROM PDL+2 E:(-26) M:(-24)
059893,000511: 27,3203 41206 PUSH DMP # RESTORE PUSH LOC
059894,000512: 27,3204 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
059895,000513: 27,3205 77657 SL*
059896,000514: 27,3206 20201 0,1 # X1=-NR
059897,000515: 27,3207 00043 STORE TFFX # X
059898,000516: 27,3210 41234 RTB DMP
059899,000517: 27,3211 57334 T(X) # POLY
059900,000518: # ZSQ FROM PDL+2 E:(-26) M:(-24)
059901,000519: 27,3212 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27)
059902,000520: 27,3213 00023 RTERM # RTERM E:(-29) M:(-27)
059903,000521: 27,3214 41215 DAD DMP
059904,000522: 27,3215 00015 RMAG1 # E:(-29) M:(-27)
059905,000523: # Z FROM PDL+0 E:(-13) M:(-12)
059906,000524: 27,3216 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42)
059907,000525: 27,3217 57240 ENDTFF # (NO PUSH UP)
059908,000526: 27,3220 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0
059909,000527: 27,3221 00017 TFFQ1 # Q1 FOR GONEPAST TEST
059910,000528: 27,3222 71244 BPL DLOAD # GONE PAST ?
059911,000529: 27,3223 57244 NEGTFF # YES. TFF < 0.
059912,000530: 27,3224 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059913,000531: 27,3225 51076 DCOMP BPL # ALFA > 0 ?
059914,000532: 27,3226 57244 NEGTFF # NO. TFF IS NEGATIVE.
059915,000533:
059916,000534: # CORRECT FOR ORBITAL PERIOD.
059917,000535:
059918,000536: 27,3227 77676 DCOMP # YES. CORRECT FOR ORB PERIOD.
059919,000537: 27,3230 56205 DMP DDV
059920,000538: 27,3231 17356 PI/16 # 2 PI (-5)
059921,000539: 27,3232 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
059922,000540: 27,3233 53657 SL* SL*
059923,000541: 27,3234 57602 0 -4,2 # X2=-NA
059924,000542: 27,3235 57602 0 -4,2
059925,000543: 27,3236 43257 SL* DAD
059926,000544: 27,3237 57576 0,2
059927,000545: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
059928,000546: 27,3240 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
059929,000547: 27,3241 00037 TFF/RTMU # E:(17) M:(14)
059930,000548: 27,3242 57250 MAXTFF # SET POSMAX IN OVFL.
059931,000549:
059932,000550: 27,3243 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
059933,000551:
059934,000552: # Page 1385
059935,000553: 27,3244 77745 NEGTFF DLOAD
059936,000554: # TFF SQRT(MU) FROM PDL+0, NEGATIVE.
059937,000555: 27,3245 77650 GOTO
059938,000556: 27,3246 57240 ENDTFF
059939,000557:
059940,000558: 27,3247 77745 MAXTFF1 DLOAD # RESET PDL
059941,000559: 27,3250 43545 MAXTFF DLOAD RVQ
059942,000560: 27,3251 17372 NEARONE
059943,000561:
059944,000562: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
059945,000563:
059946,000564: # NUM FROM TFFX. E:(-16) OR (-29)
059947,000565: # M:(-15) OR (-27)
059948,000566: 27,3252 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
059949,000567: 27,3253 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0
059950,000568: # DEN FROM PDL+0 E:(-3)/(-16) M:(-3)/(-15)
059951,000569: # N/D TO PDL+0 E:(11) M:(10)
059952,000570: 27,3254 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
059953,000571: 27,3255 00045 TFFTEM # Q2 E:(-16) M:(-15)
059954,000572: 27,3256 00017 TFFQ1 # Q1 E:(-16) M:(-15)
059955,000573: 27,3257 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15)
059956,000574: # D/N FROM PDL+0
059957,000575: 27,3260 77626 STADR
059958,000576: 27,3261 77732 STORE TFFTEM # D/N E:(11) M:(10)
059959,000577: 27,3262 53605 DMP SL*
059960,000578: 27,3263 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059961,000579: 27,3264 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA)
059962,000580: 27,3265 41206 PUSH DMP # TO PDL+0
059963,000581: 27,3266 00045 TFFTEM # 1/Z E:(11) M:(10)
059964,000582: 27,3267 41057 SL* BOVB
059965,000583: 27,3270 57576 0,2 # X2= -NA
059966,000584: 27,3271 45712 SIGNMPAC # IN CASE X= 1.0, CONTINUE
059967,000585: 27,3272 00043 STORE TFFX # X=1/ALFA ZSQ
059968,000586: 27,3273 41234 RTB DMP
059969,000587: 27,3274 57334 T(X) # POLY
059970,000588: 27,3275 00043 TFFX
059971,000589: 27,3276 45242 SR3 DSU
059972,000590: 27,3277 17364 DP2(-3)
059973,000591: 27,3300 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA)
059974,000592: # M:(-14-NA)
059975,000593: # 1/ALFA Z FROM PDL+0 E:(-11-NA)
059976,000594: # M:(-10-NA)
059977,000595: 27,3301 41345 DLOAD DMP # GET SIGN FOR SDELF
059978,000596: 27,3302 00045 TFFTEM # 1/Z E:(11) M:(10)
059979,000597: 27,3303 00015 RMAG1 # E:(-29) M:(-27)
059980,000598: 27,3304 43312 SL2 DAD
059981,000599: 27,3305 00017 TFFQ1 # Q1 E:(-16) M:(-15)
059982,000600: 27,3306 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15)
059983,000601: 27,3307 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
059984,000602: 27,3310 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG.
059985,000603: # Page 1386
059986,000604: 27,3311 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059987,000605: 27,3312 57575 1,2 # X2=-NA
059988,000606: 27,3313 53765 SIGN SL*
059989,000607: 27,3314 00045 TFFTEM # AFFIX SIGN FOR SDELF
059990,000608: 27,3315 57576 0,2
059991,000609: 27,3316 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
059992,000610: # (ARG FOR USE IN TFF/TRIG)
059993,000611: 27,3317 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059994,000612: 27,3320 41366 SQRT DMP
059995,000613: 27,3321 17356 PI/16 # PI (-4)
059996,000614: 27,3322 77615 DAD
059997,000615: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
059998,000616: # M:(-14-NA)
059999,000617: 27,3323 45257 SL* DSU
060000,000618: 27,3324 57577 0 -1,2
060001,000619: 27,3325 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15)
060002,000620: 27,3326 53605 DMP SL*
060003,000621: 27,3327 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
060004,000622: 27,3330 57601 0 -3,2
060005,000623: 27,3331 52057 SL* GOTO
060006,000624: 27,3332 57602 0 -4,2
060007,000625: 27,3333 57240 ENDTFF # TFF SQRT(MU) IN MPAC E:(-145) M:(-42)
060008,000626:
060009,000627: # Page 1387
060010,000628: # PROGRAM NAME: T(X) DATE: 01.17.67
060011,000629: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
060012,000630: # MOD BY: RR BAIRNSFATHER
060013,000631:
060014,000632: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
060015,000633: # CALCTPER TO APPROXIMATE THE SERIES
060016,000634: # 2 3
060017,000635: # 1/3 -X/5 +X /7 -X /9 ...
060018,000636:
060019,000637: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
060020,000638: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1
060021,000639:
060022,000640: # ALSO X IS NEG FOR HYPERBOLIC ORBITS
060023,000641: # X = 0 FOR PARABOLIC ORBITS
060024,000642: # X IS POSITIVE FOR ELLIPTIC ORBITS
060025,000643:
060026,000644: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
060027,000645: # DEVIATION FROM THE SERIES OF 2 E-5. (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
060028,000646: # MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).)
060029,000647:
060030,000648: # CALLING SEQUENCE: RTB
060031,000649: # T(X)
060032,000650: # C(MPAC) = X
060033,000651:
060034,000652: # SUBROUTINE CALLED: NONE
060035,000653:
060036,000654: # NORMAL EXIT MODE: TC DANZIG
060037,000655:
060038,000656: # ALARMS: NONE
060039,000657:
060040,000658: # OUTPUT: C(MPAC) = T(X)
060041,000659:
060042,000660: # ERASABLE INITIALIZATION REQUIRED:
060043,000661: # C(MPAC) = X
060044,000662:
060045,000663: # DEBRIS: NONE
060046,000664:
060047,000665: 27,3334 07171 T(X) TC POLY
060048,000666: 27,3335 00004 DEC 4 B-14 # N-1
060049,000667: 27,3336 12525 12525 2DEC 3.333333333 E-1
060050,000668: 27,3340 71463 57703 2DEC* -1.999819135 E-1*
060051,000669: 27,3342 04423 17645 2DEC* 1.418148467 E-1*
060052,000670: 27,3344 74604 43667 2DEC* -1.01310997 E-1*
060053,000671: 27,3346 01626 37256 2DEC* 5.609004986 E-2*
060054,000672: 27,3350 77404 52071 2DEC* -1.536156925 E-2*
060055,000673:
060056,000674: 27,3352 06030 ENDT(X) TC DANZIG
060057,000675:
060058,000676: 27,3353 27,3352 TCDANZIG = ENDT(X)
060059,000677:
060060,000678: # Page 1388
060061,000679: # TFF CONSTANTS
060062,000680:
060063,000681: 32,3770 BANK 32
060064,000682:
060065,000683: 27,2000 SETLOC TOF-FF1
060066,000684: 27,2000 BANK
060067,000685:
060068,000686: # # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
060069,000687: # MUE = 3.990815471 E10 # M CUBE/CS SQ
060070,000688: # RTMUE = 1.997702549 E5 B-18* # MODIFIED EARTH MU
060071,000689:
060072,000690: 27,3353 24775 30424 1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU
060073,000691:
060074,000692: # # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
060075,000693: # MUM = 4.902778 E8 # M CUBE/CS SQ
060076,000694: # RTMUM 2DEC* 2.21422176 E4 B-18*
060077,000695: 27,3355 06220 37553 PI/16 2DEC 3.141592653 B-4
060078,000696: 27,3357 37777 37700 LIM(-22) 2OCT 3777737700 # 1.0 -B(-22)
060079,000697: 27,3361 00000 00100 DP(-22) 2OCT 0000000100 # B(-22)
060080,000698: 27,3363 04000 00000 DP2(-3) 2DEC 1 B-3
060081,000699: 27,3365 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16
060082,000700:
060083,000701: # RPAD1 2DEC 6373338 B-29 # M (-29) = 20909901.57 FT
060084,000702: 27,3367 22,3151 RPAD1 = RPAD
060085,000703:
060086,000704: 27,3367 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M
060087,000705: 27,3371 37777 37777 NEARONE 2DEC .999999999
060088,000706: 27,3373 26,3334 TFFZEROS EQUALS HI6ZEROS
060089,000707: 27,3373 26,3324 TFF1/4 EQUALS HIDP1/4
060090,000708:
060091,000709:
060092,000710:
End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc