Source Code

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