Source Code
![]() |
These source-code files were transcribed from scans made from Don Eyles's personal
copy of Luminary 069. They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Onno Hommes. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are prefixed with a single '#' symbol,
whereas comments added later are prefixed by "##" or "###". In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the Luminary 69 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 069 OF AGC PROGRAM LUMINARY BY NASA 2021112-011 19:02 NOV. 25,1968Note that the date is the date of the printout, not the date of the program revision. |
054603,000002: ## Copyright: Public domain.
054604,000003: ## Filename: TIME_OF_FREE_FALL.agc
054605,000004: ## Purpose: The main source file for Luminary revision 069.
054606,000005: ## It is part of the source code for the original release
054607,000006: ## of the flight software for the Lunar Module's (LM) Apollo
054608,000007: ## Guidance Computer (AGC) for Apollo 10. The actual flown
054609,000008: ## version was Luminary 69 revision 2, which included a
054610,000009: ## newer lunar gravity model and only affected module 2.
054611,000010: ## This file is intended to be a faithful transcription, except
054612,000011: ## that the code format has been changed to conform to the
054613,000012: ## requirements of the yaYUL assembler rather than the
054614,000013: ## original YUL assembler.
054615,000014: ## Reference: pp. 1262-1277
054616,000015: ## Assembler: yaYUL
054617,000016: ## Contact: Ron Burkey <info@sandroid.org>.
054618,000017: ## Website: www.ibiblio.org/apollo/index.html
054619,000018: ## Mod history: 2016-12-13 MAS Created from Luminary 99.
054620,000019: ## 2016-12-18 MAS Updated from comment-proofed Luminary 99 version.
054621,000020: ## 2017-01-19 RRB Updated for Luminary 69.
054622,000021: ## 2017-01-28 RSB Proofed comment text using octopus/prooferComments
054623,000022: ## but no errors found.
054624,000023: ## 2017-03-14 RSB Comment-text fixes noted in proofing Luminary 116.
054625,000024: ## 2017-03-16 RSB Comment-text fixes identified in 5-way
054626,000025: ## side-by-side diff of Luminary 69/99/116/131/210.
054627,000026:
![]() |
Page 1262 |
054629,000028: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
054630,000029: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE AND 1/SQRT(MU) AT THE
054631,000030: # APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
054632,000031:
054633,000032: # EARTH ORIGIN POSITION -29 METERS
054634,000033: # VELOCITY -7 METERS/CENTISECOND
054635,000034: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
054636,000035:
054637,000036: # MOON ORIGIN POSITION -27 METERS
054638,000037: # VELOCITY -5 METERS/CENTISECONDS
054639,000038: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
054640,000039:
054641,000040: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
054642,000041: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
054643,000042: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
054644,000043: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
054645,000044: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
054646,000045: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
054647,000046: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
054648,000047: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
054649,000048:
054650,000049: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
054651,000050:
054652,000051: # BELOW E: IS USED FOR EARTH ORIGIN SCALE
054653,000052: # M: IS USED FOR MOON ORIGIN SCALE
054654,000053:
054655,000054: # TFFSW = 119D BIT1 0 = CALCTFF 1 = CALCTPER
054656,000055: 23,3723 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
054657,000056: 23,3723 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
054658,000057: # RPER = 14D PERIGEE RADIUS M E: (-29) M: (-27)
054659,000058: 23,3723 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
054660,000059: # SDELF/2 SIN(THETA) /2
054661,000060: 23,3723 CDELF/2 = 14D # COS(THETA) /2
054662,000061: # RAPO = 16D APOGEE RADIUS M E: (-29) M: (-27)
054663,000062: 23,3723 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
054664,000063: # M: (-27+NR)
054665,000064: 23,3723 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
054666,000065: 23,3723 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
054667,000066: 23,3723 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
054668,000067: # M: (-20-2 NA)
054669,000068: 23,3723 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
054670,000069: 23,3723 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
054671,000070: 23,3723 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
054672,000071: # M: (-36+2 NR)
054673,000072: 23,3723 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
054674,000073: 23,3723 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
054675,000074: # M: (-27+NR)
054676,000075: 23,3723 TFFX = 34D
054677,000076: 23,3723 TFFTEM = 36D # TEMPORARY
![]() |
Page 1263 |
054679,000078: # REGISTERS S1, S2 ARE UNTOUCHED BY ANY TFF SUBROUTINE
054680,000079: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
054681,000080: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
054682,000081: # SUBROUTINES.
054683,000082: # -NR C(X1) = NORM COUNT OF RMAG
054684,000083: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
054685,000084:
![]() |
Page 1264 |
054687,000086: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
054688,000087: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
054689,000088: # MOD BY: RR BAIRNSFATHER
054690,000089: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
054691,000090: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
054692,000091: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
054693,000092:
054694,000093: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
054695,000094: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
054696,000095: # THE EQUATIONS ARE
054697,000096: # - - -
054698,000097: # H = RN*VN ANGULAR MOMENTUM
054699,000098: # - -
054700,000099: # LCP = H.H / MU SEMI LATUS RECTUM
054701,000100: # - -
054702,000101: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
054703,000102:
054704,000103: # AND ALFA IS POS FOR ELLIPTIC ORBITS
054705,000104: # 0 FOR PARABOLIC ORBITS
054706,000105: # NEG FOR HYPERBOLIC ORBITS.
054707,000106: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
054708,000107:
054709,000108: # CALLING SEQUENCE:
054710,000109: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
054711,000110: # 1/SQRT(MU). PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
054712,000111: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
054713,000112: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
054714,000113: # TFF ROUTINES.
054715,000114:
054716,000115: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
054717,000116:
054718,000117: # TO SPECIFY MU: DLOAD CALL IF MU ALREADY STORED: CALL
054719,000118: # YOURMU 1/RTMU E:(17) M:(14) TFFCONMU
054720,000119: # TFFCONIC
054721,000120: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
054722,000121:
054723,000122: # SUBROUTINES CALLED: NONE
054724,000123:
054725,000124: # NORMAL EXIT MODES: RVQ
054726,000125:
054727,000126: # ALARMS: NONE
054728,000127:
054729,000128: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
054730,000129: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
054731,000130: # NRMAG E:(-29+NR) M RMAG, NORMALIZED
054732,000131: # M:(-27+NR)
054733,000132: # X1 -NR, NORM COUNT
054734,000133: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC
054735,000134: # M:(-36+2NR)
054736,000135: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
054737,000136: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY,NORMLIZED. FOR VGAMCALC
054738,000137: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
054739,000138: # M:(24-NR)
054740,000139: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
054741,000140: # M:(9+NA)
![]() |
Page 1265 |
054743,000142: # X2 -NA, NORMCOUNT
054744,000143: # TFF1/ALF E:(-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
054745,000144: # M:(-20-2NA)
054746,000145: # PUSHLOC AT PDL+0
054747,000146:
054748,000147: # THE FOLLOWING IS STORED IN GENERAL ERASABLE
054749,000148: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
054750,000149:
054751,000150: # ERASABLE INITIALIZATION REQUIRED:
054752,000151: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
054753,000152: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
054754,000153: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
054755,000154:
054756,000155: # DEBRIS: QPRET, PDL+0 ... PDL+3
054757,000156:
054758,000157: 33,3755 BANK 33
054759,000158: 27,2000 SETLOC TOF-FF
054760,000159: 27,2000 BANK
054761,000160:
054762,000161: 27,3332 COUNT* $$/TFF
054763,000162:
054764,000163: 27,3332 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14)
054765,000164:
054766,000165: 27,3333 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
054767,000166: 27,3334 02213 RONE # SAVED RN. M E:(-29) M:(-27)
054768,000167: 27,3335 77725 PDDL # UR/2 TO PDL+0, +5
054769,000168: 27,3336 00045 36D # MAGNITUDE
054770,000169: 27,3337 00015 STORE RMAG1 # M E:(-29) M:(-27)
054771,000170:
054772,000171: 27,3340 77701 NORM
054773,000172: 27,3341 00047 X1 # -NR
054774,000173: 27,3342 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
054775,000174: 27,3343 02221 VONE # SAVED VN. M/CS E:(-7) M:(-5)
054776,000175: 27,3344 77761 VXSC
054777,000176: 27,3345 00037 TFF/RTMU # E:(17) M:(14)
054778,000177: 27,3346 02170 STORE VONE' # VN/SQRT(MU) E:(10) M:(9)
054779,000178:
054780,000179: 27,3347 47361 VXSC VXV
054781,000180: 27,3350 00041 NRMAG # E:(-29+NR) M:(-27+NR)
054782,000181: # UR/2 FROM PDL
054783,000182: 27,3351 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
054784,000183: 27,3352 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
054785,000184: # SAVE ALSO FOR VGAMCALC
054786,000185: 27,3353 06414 TFF1/4
054787,000186: 27,3354 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
054788,000187: 27,3355 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
054789,000188: 27,3356 02170 VONE' # SAVED VN. E:(10) M:(9)
054790,000189: 27,3357 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
054791,000190: 27,3360 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
054792,000191: # SAVE FOR VGAMCALC
054793,000192: 27,3361 43257 SR* DAD
![]() |
Page 1266 |
054795,000194: 27,3362 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
054796,000195: 27,3363 77626 STADR
054797,000196: # 2/RMAG FROM PDL+2
054798,000197: 27,3364 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
054799,000198: 27,3365 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
054800,000199: 27,3366 20173 0 -6,1
054801,000200: 27,3367 75446 ABS SQRT # E:(10) M:(9)
054802,000201: 27,3370 77701 NORM
054803,000202: 27,3371 00050 X2 # X2 = -NA
054804,000203: 27,3372 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
054805,000204: 27,3373 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK
054806,000205: # ALFA FROM PDL+2 E:(20) M:(18)
054807,000206: 27,3374 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
054808,000207: 27,3375 57377 +2
054809,000208: 27,3376 06414 TFF1/4
054810,000209: 27,3377 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
054811,000210: 27,3400 77616 DUMPCNIC RVQ
054812,000211:
054813,000212: # 39 W
![]() |
Page 1267 |
054815,000214: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
054816,000215: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
054817,000216: # MOD BY: RR BAIRNSFATHER
054818,000217: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
054819,000218: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
054820,000219: # ALSO IMPROVE ACCURACY OF RAPO.
054821,000220:
054822,000221: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
054823,000222: # APOGEE RADIUS FOR A GENERAL CONIC.
054824,000223: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
054825,000224: # RP = P/(1+E) RA = (1+E) / ALFA
054826,000225: # WHERE 2
054827,000226: # E = 1 - P ALFA
054828,000227: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
054829,000228: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
054830,000229: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
054831,000230: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
054832,000231:
054833,000232: # THIS SUBROUTINE REQUIRES THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
054834,000233:
054835,000234: # CALLING SEQUENCE: CALL
054836,000235: # TFFRP/RA
054837,000236: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
054838,000237: # C(MPAC) UNSPECIFIED
054839,000238:
054840,000239: # SUBROUTINES CALLED: NONE
054841,000240:
054842,000241: # NORMAL EXIT MODE: RVQ
054843,000242: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
054844,000243: # OTHERWISE, RAPO = POSMAX.
054845,000244:
054846,000245: # ALARMS: NONE
054847,000246:
054848,000247: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
054849,000248: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
054850,000249: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
054851,000250: # PUSHLOC AT PDL+0
054852,000251:
054853,000252: # ERASABLE INITIALIZATION REQUIRED:
054854,000253: # TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
054855,000254: # M:(24-NR)
054856,000255: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
054857,000256: # M:(-36+2NR)
054858,000257: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
054859,000258: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
054860,000259:
054861,000260: # DEBRIS: QPRET, PDL+0 ... PDL+1
054862,000261:
![]() |
Page 1268 |
054864,000263: 27,3401 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
054865,000264: 27,3401 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
054866,000265:
054867,000266: 27,3401 41345 TFFRP/RA DLOAD DMP
054868,000267: 27,3402 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
054869,000268: 27,3403 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
054870,000269: 27,3404 57457 SR* DCOMP # ALFA P (-12+NR)
054871,000270: 27,3405 20571 0 -8D,1 # ALFA P (-4)
054872,000271: 27,3406 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
054873,000272: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
054874,000273: 27,3407 17737 DP2(-4)
054875,000274: 27,3410 43366 SQRT DAD # E SQ = (1- P ALFA) (-4)
054876,000275: 27,3411 06414 TFF1/4
054877,000276: 27,3412 55206 PUSH BDDV # (1+E) (-2) TO PDL+0
054878,000277: 27,3413 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
054879,000278: 27,3414 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
054880,000279: 27,3415 20601 0,1 # X1=-NR
054881,000280: 27,3416 20572 0 -7,1 # (EFFECTIVE SL)
054882,000281: 27,3417 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
054883,000282: # (1+E) (-2) FROM PDL+0
054884,000283: 27,3420 41005 DMP BOVB
054885,000284: 27,3421 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
054886,000285: 27,3422 57725 TCDANZIG # CLEAR OVFIND, IF ON.
054887,000286: 27,3423 53654 BZE SL*
054888,000287: 27,3424 57433 MAXRA # SET POSMAX, IF ALFA=0
054889,000288: 27,3425 57603 0 -5,2 # -5+NA
054890,000289: 27,3426 40057 SL* BOV
054891,000290: 27,3427 57576 0,2
054892,000291: 27,3430 57433 MAXRA # SET POSMAX IF OVFL.
054893,000292: 27,3431 77644 BPL # CONTINUE WITH VALID RAPO.
054894,000293: 27,3432 57435 +3
054895,000294: 27,3433 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
054896,000295: 27,3434 17743 NEARONE # POSMAX AS A TAG.
054897,000296: 27,3435 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
054898,000297: 27,3436 77616 DUMPRPRA RVQ
054899,000298:
054900,000299: # 30 W
![]() |
Page 1269 |
054902,000301: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
054903,000302: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
054904,000303: # MOD BY: RR BAIRNSFATHER
054905,000304: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
054906,000305: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
054907,000306: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
054908,000307: # MOD NO: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
054909,000308: # MOD NO: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
054910,000309:
054911,000310: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
054912,000311: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR
054913,000312: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
054914,000313: # THE EQUATIONS ARE
054915,000314:
054916,000315: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
054917,000316: # - -
054918,000317: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
054919,000318:
054920,000319: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
054921,000320:
054922,000321: # WHERE, IF INBOUND
054923,000322: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA
054924,000323: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
054925,000324:
054926,000325: # AND, IF OUTBOUND
054927,000326: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
054928,000327: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE
054929,000328:
054930,000329: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
054931,000330: # THEN X = ALFA Z Z
054932,000331: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
054933,000332: # EXCEPT IF ALFA PNZ, AND IF TFF NEG,
054934,000333: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
054935,000334: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
054936,000335: # THEN X = 1/ALFA Z Z
054937,000336: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
054938,000337: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
054939,000338: # 2 3 2
054940,000339: # 1/3 - X/5 + X /7 - X /9 ... (X < 1.0)
054941,000340:
054942,000341: # CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE
054943,000342: # CALL CALL
054944,000343: # CALCTFF CALCTPER
054945,000344: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
054946,000345: # FOR EITHER, E:(-29) M:(-27)
054947,000346: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D.
![]() |
Page 1270 |
054949,000348:
054950,000349: # SUBROUTINES CALLED: T(X), VIA RTB
054951,000350:
054952,000351: # NORMAL EXIT MODE: RVQ
054953,000352: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
054954,000353: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
054955,000354: # B. (THIS OPTION IS NO LONGER USED.)
054956,000355: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
054957,000356: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
054958,000357:
054959,000358: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
054960,000359: # TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
054961,000360: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
054962,000361: # M:(-27+NR)
054963,000362: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
054964,000363: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
054965,000364: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
054966,000365: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
054967,000366: # TFFQ1 E:(-16) M:(-15) PDL 14D
054968,000367: # TFFDELQ E:(-16) M:(-15) PDL 10D
054969,000368: # PUSHLOC AT PDL+0
054970,000369:
054971,000370: # ERASABLE INITIALIZATION REQUIRED:
054972,000371: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
054973,000372: # VONE' E:(+10) M:(+9) VN/SQRT(MU) LEFT BY TFF/CONIC
054974,000373: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
054975,000374: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
054976,000375:
054977,000376: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
054978,000377: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
054979,000378: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
054980,000379: # M:(-27+NR)
054981,000380: # X1 -NR, NORM COUNT LEFT BY TFFCONIC
054982,000381: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
054983,000382: # M:(-36+2NR)
054984,000383: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
054985,000384: # M:(24-NR)
054986,000385: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
054987,000386: # M:(9+NA)
054988,000387: # X2 -NA, NORMCOUNT LEFT BY TFFCONIC
054989,000388: # TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
054990,000389: # M:(-20-2NA)
054991,000390:
054992,000391: # DEBRIS: QPRET, PDL+0 ... PDL+3
054993,000392: # RTERM E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
054994,000393: # RAPO E:(-29) M:(-27) PDL 16D (=NRTERM)
054995,000394: # RPER E:(-29) M:(-27) PDL 14D (=TFFQ1)
054996,000395:
![]() |
Page 1271 |
054998,000397: 27,3437 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC
054999,000398: 27,3440 03436 TFFSW
055000,000399: 27,3441 57444 +3
055001,000400: 27,3442 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
055002,000401: 27,3443 03676 TFFSW
055003,000402: 27,3444 00023 +3 STORE RTERM # E:(-29) M:(-27)
055004,000403: 27,3445 77657 SL*
055005,000404: 27,3446 20201 0,1 # X1=-NR
055006,000405: 27,3447 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR)
055007,000406: 27,3450 44205 DMP BDSU
055008,000407: 27,3451 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
055009,000408: 27,3452 06414 TFF1/4
055010,000409: 27,3453 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
055011,000410: 27,3454 00021 NRTERM # E:(-29+NR) M:(-27+NR)
055012,000411: 27,3455 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
055013,000412: # E:(-32+NR) M:(-30+NR)
055014,000413: 27,3456 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
055015,000414: 27,3457 20573 0 -6,1 # X1 = -NR
055016,000415: 27,3460 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
055017,000416: # RTERM(2-ALFA RTERM) FROM PDL +2
055018,000417: # E:(-32+NR) M:(-30+NR)
055019,000418: 27,3461 77657 SR* # LEAVE E:(-32) M:(-30)
055020,000419: 27,3462 20601 0,1 # X1 = -NR
055021,000420: 27,3463 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH
055022,000421: 27,3464 03756 TFFSW
055023,000422: 27,3465 57467 +2 # IF TFF, CONTINUE
055024,000423: 27,3466 06424 TFFZEROS # IF TPER, SET Q2 = 0
055025,000424: 27,3467 75440 +2 BMN SQRT # E:(-16) M:(-15)
055026,000425:
055027,000426: 27,3470 57622 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
055028,000427: # RESET PDL, SET TFF=POSMAX, AND EXIT.
055029,000428:
055030,000429: 27,3471 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
055031,000430: 27,3472 57725 TCDANZIG # ANY PORT IN A STORM.
055032,000431: 27,3473 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15)
055033,000432: 27,3474 02170 VONE' # VN/SQRT(MU) E:(10) M:(9)
055034,000433: 27,3475 52441 DOT SL3
055035,000434: 27,3476 02213 RONE # SAVED RN. E:(-29) M:(-27)
055036,000435: 27,3477 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
055037,000436: # E:(-16) M:(-15)
055038,000437: 27,3500 44240 BMN BDSU
055039,000438: 27,3501 57522 INBOUND # USE ALTERNATE Z
055040,000439: 27,3502 00045 TFFTEM # Q2 E:(-16) M:(-15)
055041,000440:
055042,000441: # OUTBOUND Z CALC CONTINUES HERE
055043,000442:
055044,000443: 27,3503 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15)
055045,000444: 27,3504 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
055046,000445: 27,3505 44205 DMP BDSU
![]() |
Page 1272 |
055048,000447: 27,3506 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR)
055049,000448: # (2-RTERM ALFA) (-3) FROM PDL+0
055050,000449: 27,3507 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16)
055051,000450: # M:(-3) OR (-15)
055052,000451: 27,3510 40015 DAD BOV # INDETERMINANCY TEST
055053,000452: 27,3511 17731 LIM(-22) # =1.0-B(-22)
055054,000453: 27,3512 57533 TFFXTEST # GO IF DEN >/= B(-22)
055055,000454: 27,3513 65345 DLOAD PDDL # SET DEN=0 OTHERWISE
055056,000455: 27,3514 06424 TFFZEROS
055057,000456: # XCH ZERO WITH PDL+0
055058,000457: 27,3515 57545 DLOAD DCOMP
055059,000458: 27,3516 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
055060,000459: 27,3517 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
055061,000460: 27,3520 57627 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
055062,000461:
055063,000462: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
055064,000463: 27,3521 77616 DUMPTFF1 RVQ # RETURN TFF =0
055065,000464:
055066,000465: # INBOUND Z CALC CONTINUES HERE
055067,000466:
055068,000467: 27,3522 77745 INBOUND DLOAD # RESET PDL+0
055069,000468: 27,3523 45345 DLOAD DSU # ALTERNATE Z CALC
055070,000469: 27,3524 00023 RTERM # E:(-29) M:(-27)
055071,000470: 27,3525 00015 RMAG1 # E:(-29) M:(-27)
055072,000471: 27,3526 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27)
055073,000472: 27,3527 00045 TFFTEM # Q2 E:(-16) M:(-15)
055074,000473: 27,3530 52015 DAD GOTO
055075,000474: 27,3531 00017 TFFQ1 # Q1 E:(-16) M:(-15)
055076,000475: 27,3532 57507 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15)
055077,000476:
055078,000477: 27,3533 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2)) E:(-3) OR (-16)
055079,000478: # M:(-3) OR (-15)
055080,000479: 27,3534 17733 DP(-22) # RESTORE ABS(DEN) TO MPAC
055081,000480: 27,3535 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
055082,000481: 27,3536 53605 DMP SR*
055083,000482: 27,3537 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
055084,000483: 27,3540 57201 0 -3,2 # X2=-NA
055085,000484: 27,3541 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
055086,000485: # M:(-3) OR (-15)
055087,000486: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
055088,000487: # M:(-3) OR (-15)
055089,000488: 27,3542 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
055090,000489: 27,3543 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
055091,000490: 27,3544 57625 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
055092,000491:
055093,000492: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
055094,000493:
055095,000494: 27,3545 45471 DDV STADR
055096,000495: # DEN FROM PDL+0 E:(-3) OR (-16)
055097,000496: # M:(-3) OR (-15)
055098,000497: 27,3546 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
![]() |
Page 1273 |
055100,000499: # E:(-13) M:(-12)
055101,000500: 27,3547 63406 PUSH DSQ # Z TO PDL+0
055102,000501: 27,3550 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24)
055103,000502: 27,3551 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
055104,000503: 27,3552 75261 SL SIGN
055105,000504: 27,3553 20206 5
055106,000505: 27,3554 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
055107,000506: 27,3555 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR)
055108,000507: # (ARG IS USED IN TFF/TRIG)
055109,000508: # ZSQ FROM PDL+2 E:(-26) M:(-24)
055110,000509: 27,3556 41206 PUSH DMP # RESTORE PUSH LOC
055111,000510: 27,3557 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
055112,000511: 27,3560 77657 SL*
055113,000512: 27,3561 20201 0,1 # X1=-NR
055114,000513: 27,3562 00043 STORE TFFX # X
055115,000514: 27,3563 41234 RTB DMP
055116,000515: 27,3564 57707 T(X) # POLY
055117,000516: # ZSQ FROM PDL+2 E:(-26) M:(-24)
055118,000517: 27,3565 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27)
055119,000518: 27,3566 00023 RTERM # RTERM E:(-29) M:(-27)
055120,000519: 27,3567 41215 DAD DMP
055121,000520: 27,3570 00015 RMAG1 # E:(-29) M:(-27)
055122,000521: # Z FROM PDL+0 E:(-13) M:(-12)
055123,000522: 27,3571 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42)
055124,000523: 27,3572 57613 ENDTFF # (NO PUSH UP)
055125,000524: 27,3573 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0
055126,000525: 27,3574 00017 TFFQ1 # Q1 FOR GONEPAST TEST
055127,000526: 27,3575 71244 BPL DLOAD # GONE PAST ?
055128,000527: 27,3576 57617 NEGTFF # YES. TFF < 0.
055129,000528: 27,3577 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
055130,000529: 27,3600 51076 DCOMP BPL # ALFA > 0 ?
055131,000530: 27,3601 57617 NEGTFF # NO. TFF IS NEGATIVE.
055132,000531:
055133,000532: # CORRECT FOR ORBITAL PERIOD.
055134,000533:
055135,000534: 27,3602 77676 DCOMP # YES. CORRECT FOR ORB PERIOD.
055136,000535: 27,3603 56205 DMP DDV
055137,000536: 27,3604 17727 PI/16 # 2 PI (-5)
055138,000537: 27,3605 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
055139,000538: 27,3606 53657 SL* SL*
055140,000539: 27,3607 57602 0 -4,2 # X2=-NA
055141,000540: 27,3610 57602 0 -4,2
055142,000541: 27,3611 43257 SL* DAD
055143,000542: 27,3612 57576 0,2
055144,000543: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
055145,000544: 27,3613 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
055146,000545: 27,3614 00037 TFF/RTMU # E:(17) M:(14)
055147,000546: 27,3615 57623 MAXTFF # SET POSMAX IF OVFL.
055148,000547:
055149,000548: 27,3616 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
055150,000549:
![]() |
Page 1274 |
055152,000551: 27,3617 77745 NEGTFF DLOAD
055153,000552: # TFF SQRT(MU) FROM PDL+0, NEGATIVE.
055154,000553: 27,3620 77650 GOTO
055155,000554: 27,3621 57613 ENDTFF
055156,000555:
055157,000556: 27,3622 77745 MAXTFF1 DLOAD # RESET PDL
055158,000557: 27,3623 43545 MAXTFF DLOAD RVQ
055159,000558: 27,3624 17743 NEARONE
055160,000559:
055161,000560: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
055162,000561:
055163,000562: # NUM FROM TFFX. E:(-16) OR (-29)
055164,000563: # M:(-15) OR (-27)
055165,000564: 27,3625 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
055166,000565: 27,3626 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0
055167,000566: # DEN FROM PDL+0 E:(-3)/( 16) M:(-3)/(-15)
055168,000567: # N/D TO PDL+0 E:(11) M:(10)
055169,000568: 27,3627 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
055170,000569: 27,3630 00045 TFFTEM # Q2 E:(-16) M:(-15)
055171,000570: 27,3631 00017 TFFQ1 # Q1 E:(-16) M:(-15)
055172,000571: 27,3632 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15)
055173,000572: # D/N FROM PDL+0
055174,000573: 27,3633 77626 STADR
055175,000574: 27,3634 77732 STORE TFFTEM # D/N E:(11) M:(10)
055176,000575: 27,3635 53605 DMP SL*
055177,000576: 27,3636 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
055178,000577: 27,3637 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA)
055179,000578: 27,3640 41206 PUSH DMP # TO PDL+0
055180,000579: 27,3641 00045 TFFTEM # 1/Z E:(11) M:(10)
055181,000580: 27,3642 41057 SL* BOVB
055182,000581: 27,3643 57576 0,2 # X2= -NA
055183,000582: 27,3644 21664 SIGNMPAC # IN CASE X= 1.0, CONTINUE
055184,000583: 27,3645 00043 STORE TFFX # X=1/ALFA ZSQ
055185,000584: 27,3646 41234 RTB DMP
055186,000585: 27,3647 57707 T(X) # POLY
055187,000586: 27,3650 00043 TFFX
055188,000587: 27,3651 45242 SR3 DSU
055189,000588: 27,3652 17735 DP2(-3)
055190,000589: 27,3653 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA)
055191,000590: # M:(-14-NA)
055192,000591: # 1/ALFA Z FROM PDL+0 E:(-11-NA)
055193,000592: # M:(-10-NA)
055194,000593: 27,3654 41345 DLOAD DMP # GET SIGN FOR SDELF
055195,000594: 27,3655 00045 TFFTEM # 1/Z E:(11) M:(10)
055196,000595: 27,3656 00015 RMAG1 # E:(-29) M:(-27)
055197,000596: 27,3657 43312 SL2 DAD
055198,000597: 27,3660 00017 TFFQ1 # Q1 E:(-16) M:(-15)
055199,000598: 27,3661 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15
055200,000599: 27,3662 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
055201,000600: 27,3663 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG.
![]() |
Page 1275 |
055203,000602: 27,3664 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
055204,000603: 27,3665 57575 1,2 # X2=-NA
055205,000604: 27,3666 53765 SIGN SL*
055206,000605: 27,3667 00045 TFFTEM # AFFIX SIGN FOR SDELF
055207,000606: 27,3670 57576 0,2
055208,000607: 27,3671 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
055209,000608: # (ARG FOR USE IN TFF/TRIG)
055210,000609: 27,3672 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
055211,000610: 27,3673 41366 SQRT DMP
055212,000611: 27,3674 17727 PI/16 # PI (-4)
055213,000612: 27,3675 77615 DAD
055214,000613: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
055215,000614: # M:(-14-NA)
055216,000615: 27,3676 45257 SL* DSU
055217,000616: 27,3677 57577 0 -1,2
055218,000617: 27,3700 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15)
055219,000618: 27,3701 53605 DMP SL*
055220,000619: 27,3702 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
055221,000620: 27,3703 57601 0 -3,2
055222,000621: 27,3704 52057 SL* GOTO
055223,000622: 27,3705 57602 0 -4,2
055224,000623: 27,3706 57613 ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
055225,000624:
![]() |
Page 1276 |
055227,000626: # PROGRAM NAME: T(X) DATE: 01.17.67
055228,000627: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
055229,000628: # MOD BY: RR BAIRNSFATHER
055230,000629:
055231,000630: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
055232,000631: # CALCTPER TO APPROXIMATE THE SERIES
055233,000632: # 2 3
055234,000633: # 1/3 -X/5 +X /7 -X /9 ...
055235,000634:
055236,000635: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
055237,000636: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1
055238,000637:
055239,000638: # ALSO X IS NEG FOR HYPERBOLIC ORBITS
055240,000639: # X = 0 FOR PARABOLIC ORBITS
055241,000640: # X IS POSITIVE FOR ELLIPTIC ORBITS
055242,000641:
055243,000642: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
055244,000643: # DEVIATION FROM THE SERIES OF 2 E-5 (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
055245,000644: # MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).)
055246,000645:
055247,000646: # CALLING SEQUENCE: RTB
055248,000647: # T(X)
055249,000648: # C(MPAC) = X
055250,000649:
055251,000650: # SUBROUTINES CALLED: NONE
055252,000651:
055253,000652: # NORMAL EXIT MODE: TC DANZIG
055254,000653:
055255,000654: # ALARMS: NONE
055256,000655:
055257,000656: # OUTPUT: C(MPAC) = T(X)
055258,000657:
055259,000658: # ERASABLE INITIALIZATION REQUIRED:
055260,000659: # C(MPAC) = X
055261,000660:
055262,000661: # DEBRIS: NONE
055263,000662:
055264,000663: 27,3707 07221 T(X) TC POLY
055265,000664: 27,3710 00004 DEC 4 B-14 # N-1
055266,000665: 27,3711 12525 12525 2DEC 3.333333333 E-1
055267,000666:
055268,000667: 27,3713 71463 57703 2DEC* -1.999819135 E-1*
055269,000668:
055270,000669: 27,3715 04423 17645 2DEC* 1.418148467 E-1*
055271,000670:
055272,000671: 27,3717 74604 43667 2DEC* -1.01310997 E-1*
055273,000672:
055274,000673: 27,3721 01626 37256 2DEC* 5.609004986 E-2*
055275,000674:
055276,000675: 27,3723 77404 52071 2DEC* -1.536156925 E-2*
055277,000676:
055278,000677: 27,3725 06060 ENDT(X) TC DANZIG
055279,000678:
055280,000679: 27,3726 27,3725 TCDANZIG = ENDT(X)
055281,000680:
![]() |
Page 1277 |
055283,000682: # TFF CONSTANTS
055284,000683:
055285,000684: 32,3766 BANK 32
055286,000685:
055287,000686: 27,2000 SETLOC TOF-FF1
055288,000687: 27,2000 BANK
055289,000688:
055290,000689: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
055291,000690: # MUE = 3.990815471 E10 M CUBE/CS SQ
055292,000691: # RTMUE = 1.997702549 E5 B-18* MODIFIED EARTH MU
055293,000692:
055294,000693: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
055295,000694: # MUM = 4.902778 E8 M CUBE/CS SQ
055296,000695: # RTMUM 2DEC* 2.21422176 E4 B-18*
055297,000696:
055298,000697: 27,3726 06220 37553 PI/16 2DEC 3.141592653 B-4
055299,000698:
055300,000699: 27,3730 37777 37700 LIM(-22) 2OCT 37777 37700 # 1.0 -B(-22)
055301,000700:
055302,000701: 27,3732 00000 00100 DP(-22) 2OCT 00000 00100 # B(-22)
055303,000702:
055304,000703: 27,3734 04000 00000 DP2(-3) 2DEC 1 B-3
055305,000704:
055306,000705: 27,3736 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16
055307,000706:
055308,000707: # RPAD1 2DEC 6373338 B-29 M (-29) = 20909901.57 FT
055309,000708:
055310,000709: 27,3740 23,2275 RPAD1 = RPAD
055311,000710:
055312,000711: 27,3740 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M
055313,000712:
055314,000713: 27,3742 37777 37777 NEARONE 2DEC .999999999
055315,000714:
055316,000715: 27,3744 23,2423 TFFZEROS EQUALS HI6ZEROS
055317,000716: 27,3744 23,2413 TFF1/4 EQUALS HIDP1/4
055318,000717:
End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc