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