Source Code
These source-code files are part of a reconstructed copy of Luminary 69/2,
the flown, final release of the Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.
The reconstruction is based on the source code of Luminary 69 — i.e., the initial, unflown version, "revision 0" — of which a contemporary listing was available. The code was then updated by incorporating the differences between Luminary 69 and Luminary 69/2, known from other contemporary documentation. The only such difference is the implementation in Luminary 69/2 of the "R-2 Lunar Potential Model", the source code for which was taken from program Luminary 99/1 (Apollo 11 LM), of which a contemporary listing was also available. Finally, the now-reconstructed Luminary 69/2 was then validated by assembling it to executable form and verifying that its memory banks had the correct checksums, known from still other contemporary documentation. Note that page numbers in the reconstructed code match those in the original Luminary 69 program listing, or in the ORBITAL INTEGRATION log section, in Luminary 99/1. Page numbers would certainly differ somewhat in a contemporary Luminary 69/2 listing. Moreover, annotations that were not present in the contemporary source code have been added to the reconstructed code to justify each change in Luminary 69/2 relative to Luminary 69. Here's a guide to the Apollo documentation referenced in those annotations:
|
054418,000002: ## Copyright: Public domain.
054419,000003: ## Filename: TIME_OF_FREE_FALL.agc
054420,000004: ## Purpose: A section of LUM69 revision 2.
054421,000005: ## It is part of the reconstructed source code for the flown
054422,000006: ## version of the flight software for the Lunar Module's (LM)
054423,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
054424,000008: ## been recreated from a copy of Luminary revsion 069, using
054425,000009: ## changes present in Luminary 099 which were described in
054426,000010: ## Luminary memos 75 and 78. The code has been adapted such
054427,000011: ## that the resulting bugger words exactly match those specified
054428,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
054429,000013: ## relatively high confidence that the reconstruction is correct.
054430,000014: ## Reference: pp. 1262-1277
054431,000015: ## Assembler: yaYUL
054432,000016: ## Contact: Ron Burkey <info@sandroid.org>.
054433,000017: ## Website: www.ibiblio.org/apollo/index.html
054434,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
054435,000019:
Page 1262 |
054437,000021: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
054438,000022: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE AND 1/SQRT(MU) AT THE
054439,000023: # APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
054440,000024:
054441,000025: # EARTH ORIGIN POSITION -29 METERS
054442,000026: # VELOCITY -7 METERS/CENTISECOND
054443,000027: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
054444,000028:
054445,000029: # MOON ORIGIN POSITION -27 METERS
054446,000030: # VELOCITY -5 METERS/CENTISECONDS
054447,000031: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
054448,000032:
054449,000033: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
054450,000034: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
054451,000035: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
054452,000036: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
054453,000037: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
054454,000038: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
054455,000039: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
054456,000040: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
054457,000041:
054458,000042: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
054459,000043:
054460,000044: # BELOW E: IS USED FOR EARTH ORIGIN SCALE
054461,000045: # M: IS USED FOR MOON ORIGIN SCALE
054462,000046:
054463,000047: # TFFSW = 119D BIT1 0 = CALCTFF 1 = CALCTPER
054464,000048: 23,3723 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
054465,000049: 23,3723 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
054466,000050: # RPER = 14D PERIGEE RADIUS M E: (-29) M: (-27)
054467,000051: 23,3723 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
054468,000052: # SDELF/2 SIN(THETA) /2
054469,000053: 23,3723 CDELF/2 = 14D # COS(THETA) /2
054470,000054: # RAPO = 16D APOGEE RADIUS M E: (-29) M: (-27)
054471,000055: 23,3723 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
054472,000056: # M: (-27+NR)
054473,000057: 23,3723 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
054474,000058: 23,3723 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
054475,000059: 23,3723 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
054476,000060: # M: (-20-2 NA)
054477,000061: 23,3723 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
054478,000062: 23,3723 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
054479,000063: 23,3723 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
054480,000064: # M: (-36+2 NR)
054481,000065: 23,3723 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
054482,000066: 23,3723 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
054483,000067: # M: (-27+NR)
054484,000068: 23,3723 TFFX = 34D
054485,000069: 23,3723 TFFTEM = 36D # TEMPORARY
Page 1263 |
054487,000071: # REGISTERS S1, S2 ARE UNTOUCHED BY ANY TFF SUBROUTINE
054488,000072: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
054489,000073: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
054490,000074: # SUBROUTINES.
054491,000075: # -NR C(X1) = NORM COUNT OF RMAG
054492,000076: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
054493,000077:
Page 1264 |
054495,000079: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
054496,000080: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
054497,000081: # MOD BY: RR BAIRNSFATHER
054498,000082: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
054499,000083: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
054500,000084: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
054501,000085:
054502,000086: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
054503,000087: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
054504,000088: # THE EQUATIONS ARE
054505,000089: # - - -
054506,000090: # H = RN*VN ANGULAR MOMENTUM
054507,000091: # - -
054508,000092: # LCP = H.H / MU SEMI LATUS RECTUM
054509,000093: # - -
054510,000094: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
054511,000095:
054512,000096: # AND ALFA IS POS FOR ELLIPTIC ORBITS
054513,000097: # 0 FOR PARABOLIC ORBITS
054514,000098: # NEG FOR HYPERBOLIC ORBITS.
054515,000099: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
054516,000100:
054517,000101: # CALLING SEQUENCE:
054518,000102: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
054519,000103: # 1/SQRT(MU). PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
054520,000104: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
054521,000105: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
054522,000106: # TFF ROUTINES.
054523,000107:
054524,000108: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
054525,000109:
054526,000110: # TO SPECIFY MU: DLOAD CALL IF MU ALREADY STORED: CALL
054527,000111: # YOURMU 1/RTMU E:(17) M:(14) TFFCONMU
054528,000112: # TFFCONIC
054529,000113: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
054530,000114:
054531,000115: # SUBROUTINES CALLED: NONE
054532,000116:
054533,000117: # NORMAL EXIT MODES: RVQ
054534,000118:
054535,000119: # ALARMS: NONE
054536,000120:
054537,000121: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
054538,000122: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
054539,000123: # NRMAG E:(-29+NR) M RMAG, NORMALIZED
054540,000124: # M:(-27+NR)
054541,000125: # X1 -NR, NORM COUNT
054542,000126: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC
054543,000127: # M:(-36+2NR)
054544,000128: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
054545,000129: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY,NORMLIZED. FOR VGAMCALC
054546,000130: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
054547,000131: # M:(24-NR)
054548,000132: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
054549,000133: # M:(9+NA)
Page 1265 |
054551,000135: # X2 -NA, NORMCOUNT
054552,000136: # TFF1/ALF E:(-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
054553,000137: # M:(-20-2NA)
054554,000138: # PUSHLOC AT PDL+0
054555,000139:
054556,000140: # THE FOLLOWING IS STORED IN GENERAL ERASABLE
054557,000141: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
054558,000142:
054559,000143: # ERASABLE INITIALIZATION REQUIRED:
054560,000144: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
054561,000145: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
054562,000146: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
054563,000147:
054564,000148: # DEBRIS: QPRET, PDL+0 ... PDL+3
054565,000149:
054566,000150: 33,3755 BANK 33
054567,000151: 27,2000 SETLOC TOF-FF
054568,000152: 27,2000 BANK
054569,000153:
054570,000154: 27,3332 COUNT* $$/TFF
054571,000155:
054572,000156: 27,3332 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14)
054573,000157:
054574,000158: 27,3333 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
054575,000159: 27,3334 02213 RONE # SAVED RN. M E:(-29) M:(-27)
054576,000160: 27,3335 77725 PDDL # UR/2 TO PDL+0, +5
054577,000161: 27,3336 00045 36D # MAGNITUDE
054578,000162: 27,3337 00015 STORE RMAG1 # M E:(-29) M:(-27)
054579,000163:
054580,000164: 27,3340 77701 NORM
054581,000165: 27,3341 00047 X1 # -NR
054582,000166: 27,3342 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
054583,000167: 27,3343 02221 VONE # SAVED VN. M/CS E:(-7) M:(-5)
054584,000168: 27,3344 77761 VXSC
054585,000169: 27,3345 00037 TFF/RTMU # E:(17) M:(14)
054586,000170: 27,3346 02170 STORE VONE' # VN/SQRT(MU) E:(10) M:(9)
054587,000171:
054588,000172: 27,3347 47361 VXSC VXV
054589,000173: 27,3350 00041 NRMAG # E:(-29+NR) M:(-27+NR)
054590,000174: # UR/2 FROM PDL
054591,000175: 27,3351 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
054592,000176: 27,3352 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
054593,000177: # SAVE ALSO FOR VGAMCALC
054594,000178: 27,3353 06414 TFF1/4
054595,000179: 27,3354 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
054596,000180: 27,3355 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
054597,000181: 27,3356 02170 VONE' # SAVED VN. E:(10) M:(9)
054598,000182: 27,3357 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
054599,000183: 27,3360 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
054600,000184: # SAVE FOR VGAMCALC
054601,000185: 27,3361 43257 SR* DAD
Page 1266 |
054603,000187: 27,3362 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
054604,000188: 27,3363 77626 STADR
054605,000189: # 2/RMAG FROM PDL+2
054606,000190: 27,3364 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
054607,000191: 27,3365 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
054608,000192: 27,3366 20173 0 -6,1
054609,000193: 27,3367 75446 ABS SQRT # E:(10) M:(9)
054610,000194: 27,3370 77701 NORM
054611,000195: 27,3371 00050 X2 # X2 = -NA
054612,000196: 27,3372 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
054613,000197: 27,3373 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK
054614,000198: # ALFA FROM PDL+2 E:(20) M:(18)
054615,000199: 27,3374 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
054616,000200: 27,3375 57377 +2
054617,000201: 27,3376 06414 TFF1/4
054618,000202: 27,3377 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
054619,000203: 27,3400 77616 DUMPCNIC RVQ
054620,000204:
054621,000205: # 39 W
Page 1267 |
054623,000207: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
054624,000208: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
054625,000209: # MOD BY: RR BAIRNSFATHER
054626,000210: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
054627,000211: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
054628,000212: # ALSO IMPROVE ACCURACY OF RAPO.
054629,000213:
054630,000214: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
054631,000215: # APOGEE RADIUS FOR A GENERAL CONIC.
054632,000216: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
054633,000217: # RP = P/(1+E) RA = (1+E) / ALFA
054634,000218: # WHERE 2
054635,000219: # E = 1 - P ALFA
054636,000220: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
054637,000221: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
054638,000222: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
054639,000223: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
054640,000224:
054641,000225: # THIS SUBROUTINE REQUIRES THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
054642,000226:
054643,000227: # CALLING SEQUENCE: CALL
054644,000228: # TFFRP/RA
054645,000229: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
054646,000230: # C(MPAC) UNSPECIFIED
054647,000231:
054648,000232: # SUBROUTINES CALLED: NONE
054649,000233:
054650,000234: # NORMAL EXIT MODE: RVQ
054651,000235: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
054652,000236: # OTHERWISE, RAPO = POSMAX.
054653,000237:
054654,000238: # ALARMS: NONE
054655,000239:
054656,000240: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
054657,000241: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
054658,000242: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
054659,000243: # PUSHLOC AT PDL+0
054660,000244:
054661,000245: # ERASABLE INITIALIZATION REQUIRED:
054662,000246: # TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
054663,000247: # M:(24-NR)
054664,000248: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
054665,000249: # M:(-36+2NR)
054666,000250: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
054667,000251: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
054668,000252:
054669,000253: # DEBRIS: QPRET, PDL+0 ... PDL+1
054670,000254:
Page 1268 |
054672,000256: 27,3401 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
054673,000257: 27,3401 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
054674,000258:
054675,000259: 27,3401 41345 TFFRP/RA DLOAD DMP
054676,000260: 27,3402 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
054677,000261: 27,3403 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
054678,000262: 27,3404 57457 SR* DCOMP # ALFA P (-12+NR)
054679,000263: 27,3405 20571 0 -8D,1 # ALFA P (-4)
054680,000264: 27,3406 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
054681,000265: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
054682,000266: 27,3407 17737 DP2(-4)
054683,000267: 27,3410 43366 SQRT DAD # E SQ = (1- P ALFA) (-4)
054684,000268: 27,3411 06414 TFF1/4
054685,000269: 27,3412 55206 PUSH BDDV # (1+E) (-2) TO PDL+0
054686,000270: 27,3413 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
054687,000271: 27,3414 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
054688,000272: 27,3415 20601 0,1 # X1=-NR
054689,000273: 27,3416 20572 0 -7,1 # (EFFECTIVE SL)
054690,000274: 27,3417 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
054691,000275: # (1+E) (-2) FROM PDL+0
054692,000276: 27,3420 41005 DMP BOVB
054693,000277: 27,3421 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
054694,000278: 27,3422 57725 TCDANZIG # CLEAR OVFIND, IF ON.
054695,000279: 27,3423 53654 BZE SL*
054696,000280: 27,3424 57433 MAXRA # SET POSMAX, IF ALFA=0
054697,000281: 27,3425 57603 0 -5,2 # -5+NA
054698,000282: 27,3426 40057 SL* BOV
054699,000283: 27,3427 57576 0,2
054700,000284: 27,3430 57433 MAXRA # SET POSMAX IF OVFL.
054701,000285: 27,3431 77644 BPL # CONTINUE WITH VALID RAPO.
054702,000286: 27,3432 57435 +3
054703,000287: 27,3433 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
054704,000288: 27,3434 17743 NEARONE # POSMAX AS A TAG.
054705,000289: 27,3435 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
054706,000290: 27,3436 77616 DUMPRPRA RVQ
054707,000291:
054708,000292: # 30 W
Page 1269 |
054710,000294: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
054711,000295: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
054712,000296: # MOD BY: RR BAIRNSFATHER
054713,000297: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
054714,000298: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
054715,000299: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
054716,000300: # MOD NO: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
054717,000301: # MOD NO: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
054718,000302:
054719,000303: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
054720,000304: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR
054721,000305: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
054722,000306: # THE EQUATIONS ARE
054723,000307:
054724,000308: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
054725,000309: # - -
054726,000310: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
054727,000311:
054728,000312: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
054729,000313:
054730,000314: # WHERE, IF INBOUND
054731,000315: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA
054732,000316: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
054733,000317:
054734,000318: # AND, IF OUTBOUND
054735,000319: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
054736,000320: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE
054737,000321:
054738,000322: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
054739,000323: # THEN X = ALFA Z Z
054740,000324: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
054741,000325: # EXCEPT IF ALFA PNZ, AND IF TFF NEG,
054742,000326: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
054743,000327: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
054744,000328: # THEN X = 1/ALFA Z Z
054745,000329: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
054746,000330: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
054747,000331: # 2 3 2
054748,000332: # 1/3 - X/5 + X /7 - X /9 ... (X < 1.0)
054749,000333:
054750,000334: # CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE
054751,000335: # CALL CALL
054752,000336: # CALCTFF CALCTPER
054753,000337: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
054754,000338: # FOR EITHER, E:(-29) M:(-27)
054755,000339: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D.
Page 1270 |
054757,000341:
054758,000342: # SUBROUTINES CALLED: T(X), VIA RTB
054759,000343:
054760,000344: # NORMAL EXIT MODE: RVQ
054761,000345: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
054762,000346: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
054763,000347: # B. (THIS OPTION IS NO LONGER USED.)
054764,000348: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
054765,000349: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
054766,000350:
054767,000351: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
054768,000352: # TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
054769,000353: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
054770,000354: # M:(-27+NR)
054771,000355: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
054772,000356: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
054773,000357: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
054774,000358: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
054775,000359: # TFFQ1 E:(-16) M:(-15) PDL 14D
054776,000360: # TFFDELQ E:(-16) M:(-15) PDL 10D
054777,000361: # PUSHLOC AT PDL+0
054778,000362:
054779,000363: # ERASABLE INITIALIZATION REQUIRED:
054780,000364: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
054781,000365: # VONE' E:(+10) M:(+9) VN/SQRT(MU) LEFT BY TFF/CONIC
054782,000366: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
054783,000367: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
054784,000368:
054785,000369: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
054786,000370: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
054787,000371: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
054788,000372: # M:(-27+NR)
054789,000373: # X1 -NR, NORM COUNT LEFT BY TFFCONIC
054790,000374: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
054791,000375: # M:(-36+2NR)
054792,000376: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
054793,000377: # M:(24-NR)
054794,000378: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
054795,000379: # M:(9+NA)
054796,000380: # X2 -NA, NORMCOUNT LEFT BY TFFCONIC
054797,000381: # TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
054798,000382: # M:(-20-2NA)
054799,000383:
054800,000384: # DEBRIS: QPRET, PDL+0 ... PDL+3
054801,000385: # RTERM E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
054802,000386: # RAPO E:(-29) M:(-27) PDL 16D (=NRTERM)
054803,000387: # RPER E:(-29) M:(-27) PDL 14D (=TFFQ1)
054804,000388:
Page 1271 |
054806,000390: 27,3437 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC
054807,000391: 27,3440 03436 TFFSW
054808,000392: 27,3441 57444 +3
054809,000393: 27,3442 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
054810,000394: 27,3443 03676 TFFSW
054811,000395: 27,3444 00023 +3 STORE RTERM # E:(-29) M:(-27)
054812,000396: 27,3445 77657 SL*
054813,000397: 27,3446 20201 0,1 # X1=-NR
054814,000398: 27,3447 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR)
054815,000399: 27,3450 44205 DMP BDSU
054816,000400: 27,3451 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
054817,000401: 27,3452 06414 TFF1/4
054818,000402: 27,3453 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
054819,000403: 27,3454 00021 NRTERM # E:(-29+NR) M:(-27+NR)
054820,000404: 27,3455 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
054821,000405: # E:(-32+NR) M:(-30+NR)
054822,000406: 27,3456 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
054823,000407: 27,3457 20573 0 -6,1 # X1 = -NR
054824,000408: 27,3460 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
054825,000409: # RTERM(2-ALFA RTERM) FROM PDL +2
054826,000410: # E:(-32+NR) M:(-30+NR)
054827,000411: 27,3461 77657 SR* # LEAVE E:(-32) M:(-30)
054828,000412: 27,3462 20601 0,1 # X1 = -NR
054829,000413: 27,3463 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH
054830,000414: 27,3464 03756 TFFSW
054831,000415: 27,3465 57467 +2 # IF TFF, CONTINUE
054832,000416: 27,3466 06424 TFFZEROS # IF TPER, SET Q2 = 0
054833,000417: 27,3467 75440 +2 BMN SQRT # E:(-16) M:(-15)
054834,000418:
054835,000419: 27,3470 57622 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
054836,000420: # RESET PDL, SET TFF=POSMAX, AND EXIT.
054837,000421:
054838,000422: 27,3471 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
054839,000423: 27,3472 57725 TCDANZIG # ANY PORT IN A STORM.
054840,000424: 27,3473 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15)
054841,000425: 27,3474 02170 VONE' # VN/SQRT(MU) E:(10) M:(9)
054842,000426: 27,3475 52441 DOT SL3
054843,000427: 27,3476 02213 RONE # SAVED RN. E:(-29) M:(-27)
054844,000428: 27,3477 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
054845,000429: # E:(-16) M:(-15)
054846,000430: 27,3500 44240 BMN BDSU
054847,000431: 27,3501 57522 INBOUND # USE ALTERNATE Z
054848,000432: 27,3502 00045 TFFTEM # Q2 E:(-16) M:(-15)
054849,000433:
054850,000434: # OUTBOUND Z CALC CONTINUES HERE
054851,000435:
054852,000436: 27,3503 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15)
054853,000437: 27,3504 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
054854,000438: 27,3505 44205 DMP BDSU
Page 1272 |
054856,000440: 27,3506 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR)
054857,000441: # (2-RTERM ALFA) (-3) FROM PDL+0
054858,000442: 27,3507 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16)
054859,000443: # M:(-3) OR (-15)
054860,000444: 27,3510 40015 DAD BOV # INDETERMINANCY TEST
054861,000445: 27,3511 17731 LIM(-22) # =1.0-B(-22)
054862,000446: 27,3512 57533 TFFXTEST # GO IF DEN >/= B(-22)
054863,000447: 27,3513 65345 DLOAD PDDL # SET DEN=0 OTHERWISE
054864,000448: 27,3514 06424 TFFZEROS
054865,000449: # XCH ZERO WITH PDL+0
054866,000450: 27,3515 57545 DLOAD DCOMP
054867,000451: 27,3516 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
054868,000452: 27,3517 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
054869,000453: 27,3520 57627 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
054870,000454:
054871,000455: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
054872,000456: 27,3521 77616 DUMPTFF1 RVQ # RETURN TFF =0
054873,000457:
054874,000458: # INBOUND Z CALC CONTINUES HERE
054875,000459:
054876,000460: 27,3522 77745 INBOUND DLOAD # RESET PDL+0
054877,000461: 27,3523 45345 DLOAD DSU # ALTERNATE Z CALC
054878,000462: 27,3524 00023 RTERM # E:(-29) M:(-27)
054879,000463: 27,3525 00015 RMAG1 # E:(-29) M:(-27)
054880,000464: 27,3526 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27)
054881,000465: 27,3527 00045 TFFTEM # Q2 E:(-16) M:(-15)
054882,000466: 27,3530 52015 DAD GOTO
054883,000467: 27,3531 00017 TFFQ1 # Q1 E:(-16) M:(-15)
054884,000468: 27,3532 57507 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15)
054885,000469:
054886,000470: 27,3533 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2)) E:(-3) OR (-16)
054887,000471: # M:(-3) OR (-15)
054888,000472: 27,3534 17733 DP(-22) # RESTORE ABS(DEN) TO MPAC
054889,000473: 27,3535 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
054890,000474: 27,3536 53605 DMP SR*
054891,000475: 27,3537 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
054892,000476: 27,3540 57201 0 -3,2 # X2=-NA
054893,000477: 27,3541 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
054894,000478: # M:(-3) OR (-15)
054895,000479: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
054896,000480: # M:(-3) OR (-15)
054897,000481: 27,3542 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
054898,000482: 27,3543 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
054899,000483: 27,3544 57625 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
054900,000484:
054901,000485: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
054902,000486:
054903,000487: 27,3545 45471 DDV STADR
054904,000488: # DEN FROM PDL+0 E:(-3) OR (-16)
054905,000489: # M:(-3) OR (-15)
054906,000490: 27,3546 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
Page 1273 |
054908,000492: # E:(-13) M:(-12)
054909,000493: 27,3547 63406 PUSH DSQ # Z TO PDL+0
054910,000494: 27,3550 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24)
054911,000495: 27,3551 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
054912,000496: 27,3552 75261 SL SIGN
054913,000497: 27,3553 20206 5
054914,000498: 27,3554 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
054915,000499: 27,3555 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR)
054916,000500: # (ARG IS USED IN TFF/TRIG)
054917,000501: # ZSQ FROM PDL+2 E:(-26) M:(-24)
054918,000502: 27,3556 41206 PUSH DMP # RESTORE PUSH LOC
054919,000503: 27,3557 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
054920,000504: 27,3560 77657 SL*
054921,000505: 27,3561 20201 0,1 # X1=-NR
054922,000506: 27,3562 00043 STORE TFFX # X
054923,000507: 27,3563 41234 RTB DMP
054924,000508: 27,3564 57707 T(X) # POLY
054925,000509: # ZSQ FROM PDL+2 E:(-26) M:(-24)
054926,000510: 27,3565 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27)
054927,000511: 27,3566 00023 RTERM # RTERM E:(-29) M:(-27)
054928,000512: 27,3567 41215 DAD DMP
054929,000513: 27,3570 00015 RMAG1 # E:(-29) M:(-27)
054930,000514: # Z FROM PDL+0 E:(-13) M:(-12)
054931,000515: 27,3571 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42)
054932,000516: 27,3572 57613 ENDTFF # (NO PUSH UP)
054933,000517: 27,3573 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0
054934,000518: 27,3574 00017 TFFQ1 # Q1 FOR GONEPAST TEST
054935,000519: 27,3575 71244 BPL DLOAD # GONE PAST ?
054936,000520: 27,3576 57617 NEGTFF # YES. TFF < 0.
054937,000521: 27,3577 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
054938,000522: 27,3600 51076 DCOMP BPL # ALFA > 0 ?
054939,000523: 27,3601 57617 NEGTFF # NO. TFF IS NEGATIVE.
054940,000524:
054941,000525: # CORRECT FOR ORBITAL PERIOD.
054942,000526:
054943,000527: 27,3602 77676 DCOMP # YES. CORRECT FOR ORB PERIOD.
054944,000528: 27,3603 56205 DMP DDV
054945,000529: 27,3604 17727 PI/16 # 2 PI (-5)
054946,000530: 27,3605 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
054947,000531: 27,3606 53657 SL* SL*
054948,000532: 27,3607 57602 0 -4,2 # X2=-NA
054949,000533: 27,3610 57602 0 -4,2
054950,000534: 27,3611 43257 SL* DAD
054951,000535: 27,3612 57576 0,2
054952,000536: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
054953,000537: 27,3613 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
054954,000538: 27,3614 00037 TFF/RTMU # E:(17) M:(14)
054955,000539: 27,3615 57623 MAXTFF # SET POSMAX IF OVFL.
054956,000540:
054957,000541: 27,3616 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
054958,000542:
Page 1274 |
054960,000544: 27,3617 77745 NEGTFF DLOAD
054961,000545: # TFF SQRT(MU) FROM PDL+0, NEGATIVE.
054962,000546: 27,3620 77650 GOTO
054963,000547: 27,3621 57613 ENDTFF
054964,000548:
054965,000549: 27,3622 77745 MAXTFF1 DLOAD # RESET PDL
054966,000550: 27,3623 43545 MAXTFF DLOAD RVQ
054967,000551: 27,3624 17743 NEARONE
054968,000552:
054969,000553: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
054970,000554:
054971,000555: # NUM FROM TFFX. E:(-16) OR (-29)
054972,000556: # M:(-15) OR (-27)
054973,000557: 27,3625 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
054974,000558: 27,3626 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0
054975,000559: # DEN FROM PDL+0 E:(-3)/( 16) M:(-3)/(-15)
054976,000560: # N/D TO PDL+0 E:(11) M:(10)
054977,000561: 27,3627 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
054978,000562: 27,3630 00045 TFFTEM # Q2 E:(-16) M:(-15)
054979,000563: 27,3631 00017 TFFQ1 # Q1 E:(-16) M:(-15)
054980,000564: 27,3632 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15)
054981,000565: # D/N FROM PDL+0
054982,000566: 27,3633 77626 STADR
054983,000567: 27,3634 77732 STORE TFFTEM # D/N E:(11) M:(10)
054984,000568: 27,3635 53605 DMP SL*
054985,000569: 27,3636 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
054986,000570: 27,3637 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA)
054987,000571: 27,3640 41206 PUSH DMP # TO PDL+0
054988,000572: 27,3641 00045 TFFTEM # 1/Z E:(11) M:(10)
054989,000573: 27,3642 41057 SL* BOVB
054990,000574: 27,3643 57576 0,2 # X2= -NA
054991,000575: 27,3644 21664 SIGNMPAC # IN CASE X= 1.0, CONTINUE
054992,000576: 27,3645 00043 STORE TFFX # X=1/ALFA ZSQ
054993,000577: 27,3646 41234 RTB DMP
054994,000578: 27,3647 57707 T(X) # POLY
054995,000579: 27,3650 00043 TFFX
054996,000580: 27,3651 45242 SR3 DSU
054997,000581: 27,3652 17735 DP2(-3)
054998,000582: 27,3653 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA)
054999,000583: # M:(-14-NA)
055000,000584: # 1/ALFA Z FROM PDL+0 E:(-11-NA)
055001,000585: # M:(-10-NA)
055002,000586: 27,3654 41345 DLOAD DMP # GET SIGN FOR SDELF
055003,000587: 27,3655 00045 TFFTEM # 1/Z E:(11) M:(10)
055004,000588: 27,3656 00015 RMAG1 # E:(-29) M:(-27)
055005,000589: 27,3657 43312 SL2 DAD
055006,000590: 27,3660 00017 TFFQ1 # Q1 E:(-16) M:(-15)
055007,000591: 27,3661 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15
055008,000592: 27,3662 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
055009,000593: 27,3663 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG.
Page 1275 |
055011,000595: 27,3664 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
055012,000596: 27,3665 57575 1,2 # X2=-NA
055013,000597: 27,3666 53765 SIGN SL*
055014,000598: 27,3667 00045 TFFTEM # AFFIX SIGN FOR SDELF
055015,000599: 27,3670 57576 0,2
055016,000600: 27,3671 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
055017,000601: # (ARG FOR USE IN TFF/TRIG)
055018,000602: 27,3672 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
055019,000603: 27,3673 41366 SQRT DMP
055020,000604: 27,3674 17727 PI/16 # PI (-4)
055021,000605: 27,3675 77615 DAD
055022,000606: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
055023,000607: # M:(-14-NA)
055024,000608: 27,3676 45257 SL* DSU
055025,000609: 27,3677 57577 0 -1,2
055026,000610: 27,3700 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15)
055027,000611: 27,3701 53605 DMP SL*
055028,000612: 27,3702 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
055029,000613: 27,3703 57601 0 -3,2
055030,000614: 27,3704 52057 SL* GOTO
055031,000615: 27,3705 57602 0 -4,2
055032,000616: 27,3706 57613 ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
055033,000617:
Page 1276 |
055035,000619: # PROGRAM NAME: T(X) DATE: 01.17.67
055036,000620: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
055037,000621: # MOD BY: RR BAIRNSFATHER
055038,000622:
055039,000623: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
055040,000624: # CALCTPER TO APPROXIMATE THE SERIES
055041,000625: # 2 3
055042,000626: # 1/3 -X/5 +X /7 -X /9 ...
055043,000627:
055044,000628: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
055045,000629: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1
055046,000630:
055047,000631: # ALSO X IS NEG FOR HYPERBOLIC ORBITS
055048,000632: # X = 0 FOR PARABOLIC ORBITS
055049,000633: # X IS POSITIVE FOR ELLIPTIC ORBITS
055050,000634:
055051,000635: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
055052,000636: # DEVIATION FROM THE SERIES OF 2 E-5 (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
055053,000637: # MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).)
055054,000638:
055055,000639: # CALLING SEQUENCE: RTB
055056,000640: # T(X)
055057,000641: # C(MPAC) = X
055058,000642:
055059,000643: # SUBROUTINES CALLED: NONE
055060,000644:
055061,000645: # NORMAL EXIT MODE: TC DANZIG
055062,000646:
055063,000647: # ALARMS: NONE
055064,000648:
055065,000649: # OUTPUT: C(MPAC) = T(X)
055066,000650:
055067,000651: # ERASABLE INITIALIZATION REQUIRED:
055068,000652: # C(MPAC) = X
055069,000653:
055070,000654: # DEBRIS: NONE
055071,000655:
055072,000656: 27,3707 07221 T(X) TC POLY
055073,000657: 27,3710 00004 DEC 4 B-14 # N-1
055074,000658: 27,3711 12525 12525 2DEC 3.333333333 E-1
055075,000659:
055076,000660: 27,3713 71463 57703 2DEC* -1.999819135 E-1*
055077,000661:
055078,000662: 27,3715 04423 17645 2DEC* 1.418148467 E-1*
055079,000663:
055080,000664: 27,3717 74604 43667 2DEC* -1.01310997 E-1*
055081,000665:
055082,000666: 27,3721 01626 37256 2DEC* 5.609004986 E-2*
055083,000667:
055084,000668: 27,3723 77404 52071 2DEC* -1.536156925 E-2*
055085,000669:
055086,000670: 27,3725 06060 ENDT(X) TC DANZIG
055087,000671:
055088,000672: 27,3726 27,3725 TCDANZIG = ENDT(X)
055089,000673:
Page 1277 |
055091,000675: # TFF CONSTANTS
055092,000676:
055093,000677: 32,3766 BANK 32
055094,000678:
055095,000679: 27,2000 SETLOC TOF-FF1
055096,000680: 27,2000 BANK
055097,000681:
055098,000682: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
055099,000683: # MUE = 3.990815471 E10 M CUBE/CS SQ
055100,000684: # RTMUE = 1.997702549 E5 B-18* MODIFIED EARTH MU
055101,000685:
055102,000686: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
055103,000687: # MUM = 4.902778 E8 M CUBE/CS SQ
055104,000688: # RTMUM 2DEC* 2.21422176 E4 B-18*
055105,000689:
055106,000690: 27,3726 06220 37553 PI/16 2DEC 3.141592653 B-4
055107,000691:
055108,000692: 27,3730 37777 37700 LIM(-22) 2OCT 37777 37700 # 1.0 -B(-22)
055109,000693:
055110,000694: 27,3732 00000 00100 DP(-22) 2OCT 00000 00100 # B(-22)
055111,000695:
055112,000696: 27,3734 04000 00000 DP2(-3) 2DEC 1 B-3
055113,000697:
055114,000698: 27,3736 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16
055115,000699:
055116,000700: # RPAD1 2DEC 6373338 B-29 M (-29) = 20909901.57 FT
055117,000701:
055118,000702: 27,3740 23,2275 RPAD1 = RPAD
055119,000703:
055120,000704: 27,3740 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M
055121,000705:
055122,000706: 27,3742 37777 37777 NEARONE 2DEC .999999999
055123,000707:
055124,000708: 27,3744 23,2423 TFFZEROS EQUALS HI6ZEROS
055125,000709: 27,3744 23,2413 TFF1/4 EQUALS HIDP1/4
055126,000710:
End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc