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