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