Source Code
This source code is very close to the Apollo Guidance Computer software for the
Apollo 13 Lunar module. This revision of the Luminary 131 program is from December
of 1969, whereas there was a later revision in January of 1970, and still another
revision in February, which is the code that flew on the mission.
As far as this transcription is concerned, it was originally from a copy made in 1991 of
a printout from the collection of AGC developer Don Eyles for collector David Craig.
It was subsequently scanned by Gary Neff, reprocessed for online
presentation at the now-discontinued History of Recent Science and Technology (HRST) website
of MIT's Dibner Institute (the full-quality scans being discarded in the process),
and finally transcribed by Ron Burkey for the Virtual AGC Project. Although a
high-quality replacement scan for a completely illegible page was later provided by Gary
Neff, the reduced legibility of the reprocessed HRST posting nevertheless caused many
errors to be introduced into the transcription. Accordingly, a second scan of the same physical
printout was made in 2017 for the Virtual AGC Project's collection at the Internet Archive,
and used to correct the transcription errors. All of the scanned materials mentioned,
as well as other Luminary 131 related material, are available online.
Don Eyles apprently made additional hand-written notes in printout between 1991 and 2017,
so the two scans are not identical in that respect. The page-headings in the printout read, in part:GAP: ASSEMBLE REVISION 131 OF AGC PROGRAM LUMINARY BY NASA 2021112-091 17:53 DEC. 19, 1969Note that the date is the date the printout was made, not the date on which the program revision was released, although these happen to be very close together. |
053046,000002: ## Copyright: Public domain.
053047,000003: ## Filename: TIME_OF_FREE_FALL.agc
053048,000004: ## Purpose: A section of Luminary 1C, revision 131.
053049,000005: ## It is part of the source code for the Lunar Module's (LM)
053050,000006: ## Apollo Guidance Computer (AGC) for Apollo 13.
053051,000007: ## This file is intended to be a faithful transcription, except
053052,000008: ## that the code format has been changed to conform to the
053053,000009: ## requirements of the yaYUL assembler rather than the
053054,000010: ## original YUL assembler.
053055,000011: ## Reference: pp. 1260-1275
053056,000012: ## Contact: Ron Burkey <info@sandroid.org>.
053057,000013: ## Website: www.ibiblio.org/apollo/index.html
053058,000014: ## Mod history: 06/03/03 RSB. Began transcribing.
053059,000015: ## 05/14/05 RSB Corrected website reference above
053060,000016: ## 2010-10-25 JL Indentation fixes.
053061,000017: ## 2017-01-06 RSB Page numbers now agree with those on the
053062,000018: ## original hardcopy, as opposed to the PDF page
053063,000019: ## numbers in 1701.pdf.
053064,000020: ## 2017-02-27 RSB Proofed comment text using octopus/ProoferComments.
053065,000021: ## 2017-03-14 RSB Comment-text fixes noted in proofing Luminary 116.
053066,000022: ## 2017-03-16 RSB Comment-text fixes identified in 5-way
053067,000023: ## side-by-side diff of Luminary 69/99/116/131/210.
053068,000024:
Page 1260 |
053070,000026: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
053071,000027: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE AND 1/SQRT(MU) AT THE
053072,000028: # APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
053073,000029:
053074,000030: # EARTH ORIGIN POSITION -29 METERS
053075,000031: # VELOCITY -7 METERS/CENTISECOND
053076,000032: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
053077,000033:
053078,000034: # MOON ORIGIN POSITION -27 METERS
053079,000035: # VELOCITY -5 METERS/CENTISECONDS
053080,000036: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
053081,000037:
053082,000038: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
053083,000039: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
053084,000040: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
053085,000041:
053086,000042: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
053087,000043: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
053088,000044: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
053089,000045:
053090,000046: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
053091,000047: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
053092,000048:
053093,000049: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
053094,000050:
053095,000051: # BELOW E: IS USED FOR EARTH ORIGIN SCALE
053096,000052: # M: IS USED FOR MOON ORIGIN SCALE
053097,000053:
053098,000054: # TFFSW = 119D BIT1 0 = CALCTFF 1 = CALCTPER
053099,000055: 10,2213 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
053100,000056: 10,2213 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
053101,000057: # RPER = 14D PERIGEE RADIUS M E: (-29) M: (-27)
053102,000058: 10,2213 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
053103,000059: # SDELF/2 SIN(THETA) /2
053104,000060: 10,2213 CDELF/2 = 14D # COS(THETA) /2
053105,000061: # RAPO = 16D APOGEE RADIUS M E: (-29) M: (-27)
053106,000062: 10,2213 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
053107,000063: # M: (-27+NR)
053108,000064: 10,2213 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
053109,000065: 10,2213 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
053110,000066: 10,2213 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
053111,000067: # M: (-20-2 NA)
053112,000068: 10,2213 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
053113,000069: 10,2213 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
053114,000070: 10,2213 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
053115,000071: # M: (-36+2 NR)
053116,000072: 10,2213 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
053117,000073: 10,2213 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
053118,000074: # M: (-27+NR)
053119,000075: 10,2213 TFFX = 34D
053120,000076: 10,2213 TFFTEM = 36D # TEMPORARY
Page 1261 |
053122,000078: # REGISTERS S1, S2 ARE UNTOUCHED BY ANY TFF SUBROUTINE
053123,000079: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
053124,000080: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
053125,000081: # SUBROUTINES.
053126,000082: # -NR C(X1) = NORM COUNT OF RMAG
053127,000083: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
053128,000084:
Page 1262 |
053130,000086: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
053131,000087: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
053132,000088: # MOD BY: RR BAIRNSFATHER
053133,000089: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
053134,000090: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
053135,000091: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
053136,000092:
053137,000093: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
053138,000094: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
053139,000095: # THE EQUATIONS ARE
053140,000096: # - - -
053141,000097: # H = RN*VN ANGULAR MOMENTUM
053142,000098: # - -
053143,000099: # LCP = H.H / MU SEMI LATUS RECTUM
053144,000100: # - -
053145,000101: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
053146,000102:
053147,000103: # AND ALFA IS POS FOR ELLIPTIC ORBITS
053148,000104: # 0 FOR PARABOLIC ORBITS
053149,000105: # NEG FOR HYPERBOLIC ORBITS.
053150,000106: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
053151,000107:
053152,000108: # CALLING SEQUENCE:
053153,000109: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
053154,000110: # 1/SQRT(MU). PROGRAM WILL SAVE IN TFF/RTMU . THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
053155,000111: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
053156,000112: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
053157,000113: # TFF ROUTINES.
053158,000114:
053159,000115: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
053160,000116:
053161,000117: # TO SPECIFY MU: DLOAD CALL IF MU ALREADY STORED: CALL
053162,000118: # YOURMU 1/RTMU E:(17) M:(14) TFFCONMU
053163,000119: # TFFCONIC
053164,000120: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
053165,000121:
053166,000122: # SUBROUTINES CALLED: NONE
053167,000123:
053168,000124: # NORMAL EXIT MODES: RVQ
053169,000125:
053170,000126: # ALARMS: NONE
053171,000127:
053172,000128: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
053173,000129: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
053174,000130: # NRMAG E:(-29+NR) M RMAG, NORMALIZED
053175,000131: # M:(-27+NR)
053176,000132: # X1 -NR, NORM COUNT
053177,000133: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC
053178,000134: # M:(-36+2NR)
053179,000135: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
053180,000136: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORMLIZED. FOR VGAMCALC
053181,000137: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
053182,000138: # M:(24-NR)
053183,000139: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
053184,000140: # M:(9+NA)
Page 1263 |
053186,000142: # X2 -NA, NORMCOUNT
053187,000143: # TFF1/ALF E:(-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
053188,000144: # M:(-20-2NA)
053189,000145: # PUSHLOC AT PDL+0
053190,000146:
053191,000147: # THE FOLLOWING IS STORED IN GENERAL ERASABLE
053192,000148: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
053193,000149:
053194,000150: # ERASABLE INITIALIZATION REQUIRED:
053195,000151: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
053196,000152: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
053197,000153: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
053198,000154:
053199,000155: # DEBRIS: QPRET, PDL+0 ... PDL+3
053200,000156:
053201,000157: 33,3760 BANK 33
053202,000158: 27,2000 SETLOC TOF-FF
053203,000159: 27,2000 BANK
053204,000160:
053205,000161: 27,3361 COUNT* $$/TFF
053206,000162:
053207,000163: 27,3361 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14)
053208,000164:
053209,000165: 27,3362 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
053210,000166: 27,3363 02207 RONE # SAVED RN. M E:(-29) M:(-27)
053211,000167: 27,3364 77725 PDDL # UR/2 TO PDL+0, +5
053212,000168: 27,3365 00045 36D # MAGNITUDE
053213,000169: 27,3366 00015 STORE RMAG1 # M E:(-29) M:(-27)
053214,000170:
053215,000171: 27,3367 77701 NORM
053216,000172: 27,3370 00047 X1 # -NR
053217,000173: 27,3371 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
053218,000174: 27,3372 02215 VONE # SAVED VN. M/CS E:(-7) M:(-5)
053219,000175: 27,3373 77761 VXSC
053220,000176: 27,3374 00037 TFF/RTMU # E:(17) M:(14)
053221,000177: 27,3375 02170 STORE VONE' # VN/SQRT(MU) E:(10) M:(9)
053222,000178:
053223,000179: 27,3376 47361 VXSC VXV
053224,000180: 27,3377 00041 NRMAG # E:(-29+NR) M:(-27+NR)
053225,000181: # UR/2 FROM PDL
053226,000182: 27,3400 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
053227,000183: 27,3401 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
053228,000184: # SAVE ALSO FOR VGAMCALC
053229,000185: 27,3402 06514 TFF1/4
053230,000186: 27,3403 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
053231,000187: 27,3404 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
053232,000188: 27,3405 02170 VONE' # SAVED VN. E:(10) M:(9)
053233,000189: 27,3406 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
053234,000190: 27,3407 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
053235,000191: # SAVE FOR VGAMCALC
053236,000192: 27,3410 43257 SR* DAD
Page 1264 |
053238,000194: 27,3411 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
053239,000195: 27,3412 77626 STADR
053240,000196: # 2/RMAG FROM PDL+2
053241,000197: 27,3413 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
053242,000198: 27,3414 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
053243,000199: 27,3415 20173 0 -6,1
053244,000200: 27,3416 75446 ABS SQRT # E:(10) M:(9)
053245,000201: 27,3417 77701 NORM
053246,000202: 27,3420 00050 X2 # X2 = -NA
053247,000203: 27,3421 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
053248,000204: 27,3422 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK
053249,000205: # ALFA FROM PDL+2 E:(20) M:(18)
053250,000206: 27,3423 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
053251,000207: 27,3424 57426 +2
053252,000208: 27,3425 06514 TFF1/4
053253,000209: 27,3426 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
053254,000210: 27,3427 77616 DUMPCNIC RVQ
053255,000211:
053256,000212: # 39 W
Page 1265 |
053258,000214: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
053259,000215: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
053260,000216: # MOD BY: RR BAIRNSFATHER
053261,000217: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
053262,000218: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
053263,000219: # ALSO IMPROVE ACCURACY OF RAPO.
053264,000220:
053265,000221: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
053266,000222: # APOGEE RADIUS FOR A GENERAL CONIC.
053267,000223: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
053268,000224: # RP = P/(1+E) RA = (1+E) / ALFA
053269,000225: # WHERE 2
053270,000226: # E = 1 - P ALFA
053271,000227: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
053272,000228: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
053273,000229: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
053274,000230: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
053275,000231:
053276,000232: # THIS SUBROUTINE REQUIRES THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
053277,000233:
053278,000234: # CALLING SEQUENCE: CALL
053279,000235: # TFFRP/RA
053280,000236: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
053281,000237: # C(MPAC) UNSPECIFIED
053282,000238:
053283,000239: # SUBROUTINES CALLED: NONE
053284,000240:
053285,000241: # NORMAL EXIT MODE: RVQ
053286,000242: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
053287,000243: # OTHERWISE, RAPO = POSMAX.
053288,000244:
053289,000245: # ALARMS: NONE
053290,000246:
053291,000247: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
053292,000248: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
053293,000249: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
053294,000250: # PUSHLOC AT PDL+0
053295,000251:
053296,000252: # ERASABLE INITIALIZATION REQUIRED:
053297,000253: # TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
053298,000254: # M:(24-NR)
053299,000255: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
053300,000256: # M:(-36+2NR)
053301,000257: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
053302,000258: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
053303,000259:
053304,000260: # DEBRIS: QPRET, PDL+0 ... PDL+1
053305,000261:
Page 1266 |
053307,000263: 27,3430 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
053308,000264: 27,3430 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
053309,000265:
053310,000266: 27,3430 41345 TFFRP/RA DLOAD DMP
053311,000267: 27,3431 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
053312,000268: 27,3432 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
053313,000269: 27,3433 57457 SR* DCOMP # ALFA P (-12+NR)
053314,000270: 27,3434 20571 0 -8D,1 # ALFA P (-4)
053315,000271: 27,3435 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
053316,000272: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
053317,000273: 27,3436 17766 DP2(-4)
053318,000274: 27,3437 43366 SQRT DAD # E SQ = (1- P ALFA) (-4)
053319,000275: 27,3440 06514 TFF1/4
053320,000276: 27,3441 55206 PUSH BDDV # (1+E) (-2) TO PDL+0
053321,000277: 27,3442 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
053322,000278: 27,3443 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
053323,000279: 27,3444 20601 0,1 # X1=-NR
053324,000280: 27,3445 20572 0 -7,1 # (EFFECTIVE SL)
053325,000281: 27,3446 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
053326,000282: # (1+E) (-2) FROM PDL+0
053327,000283: 27,3447 41005 DMP BOVB
053328,000284: 27,3450 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
053329,000285: 27,3451 57754 TCDANZIG # CLEAR OVFIND, IF ON.
053330,000286: 27,3452 53654 BZE SL*
053331,000287: 27,3453 57462 MAXRA # SET POSMAX, IF ALFA=0
053332,000288: 27,3454 57603 0 -5,2 # -5+NA
053333,000289: 27,3455 40057 SL* BOV
053334,000290: 27,3456 57576 0,2
053335,000291: 27,3457 57462 MAXRA # SET POSMAX IF OVFL.
053336,000292: 27,3460 77644 BPL # CONTINUE WITH VALID RAPO.
053337,000293: 27,3461 57464 +3
053338,000294: 27,3462 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
053339,000295: 27,3463 17772 NEARONE # POSMAX AS A TAG.
053340,000296: 27,3464 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
053341,000297: 27,3465 77616 DUMPRPRA RVQ
053342,000298:
053343,000299: # 30 W
053344,000300:
Page 1267 |
053346,000302: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
053347,000303: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
053348,000304: # MOD BY: RR BAIRNSFATHER
053349,000305: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
053350,000306: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
053351,000307: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
053352,000308: # MOD NO: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
053353,000309: # MOD NO: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
053354,000310:
053355,000311: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
053356,000312: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR
053357,000313: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
053358,000314: # THE EQUATIONS ARE
053359,000315:
053360,000316: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
053361,000317: # - -
053362,000318: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
053363,000319:
053364,000320: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
053365,000321:
053366,000322: # WHERE, IF INBOUND
053367,000323: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA
053368,000324: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
053369,000325:
053370,000326: # AND, IF OUTBOUND
053371,000327: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
053372,000328: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE
053373,000329:
053374,000330: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
053375,000331: # THEN X = ALFA Z Z
053376,000332: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
053377,000333: # EXCEPT IF ALFA PNZ, AND IF TFF NEG,
053378,000334: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
053379,000335: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
053380,000336: # THEN X = 1/ALFA Z Z
053381,000337: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
053382,000338: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
053383,000339: # 2 3 2
053384,000340: # 1/3 - X/5 + X /7 - X /9 ... (X < 1.0)
053385,000341:
053386,000342: # CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE
053387,000343: # CALL CALL
053388,000344: # CALCTFF CALCTPER
053389,000345: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
053390,000346: # FOR EITHER, E:(-29) M:(-27)
053391,000347: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D.
Page 1268 |
053393,000349:
053394,000350: # SUBROUTINES CALLED: T(X), VIA RTB
053395,000351:
053396,000352: # NORMAL EXIT MODE: RVQ
053397,000353: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
053398,000354: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
053399,000355: # B. (THIS OPTION IS NO LONGER USED.)
053400,000356: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
053401,000357: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
053402,000358:
053403,000359: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
053404,000360: # TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
053405,000361: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
053406,000362: # M:(-27+NR)
053407,000363: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
053408,000364: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
053409,000365: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
053410,000366: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
053411,000367: # TFFQ1 E:(-16) M:(-15) PDL 14D
053412,000368: # TFFDELQ E:(-16) M:(-15) PDL 10D
053413,000369: # PUSHLOC AT PDL+0
053414,000370:
053415,000371: # ERASABLE INITIALIZATION REQUIRED:
053416,000372: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
053417,000373: # VONE' E:(+10) M:(+9) VN/SQRT(MU) LEFT BY TFF/CONIC
053418,000374: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
053419,000375: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
053420,000376:
053421,000377: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
053422,000378: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
053423,000379: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
053424,000380: # M:(-27+NR)
053425,000381: # X1 -NR, NORM COUNT LEFT BY TFFCONIC
053426,000382: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
053427,000383: # M:(-36+2NR)
053428,000384: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
053429,000385: # M:(24-NR)
053430,000386: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
053431,000387: # M:(9+NA)
053432,000388: # X2 -NA, NORMCOUNT LEFT BY TFFCONIC
053433,000389: # TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
053434,000390: # M:(-20-2NA)
053435,000391:
053436,000392: # DEBRIS: QPRET, PDL+0 ... PDL+3
053437,000393: # RTERM E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
053438,000394: # RAPO E:(-29) M:(-27) PDL 16D (=NRTERM)
053439,000395: # RPER E:(-29) M:(-27) PDL 14D (=TFFQ1)
053440,000396:
Page 1269 |
053442,000398: 27,3466 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC
053443,000399: 27,3467 03436 TFFSW
053444,000400: 27,3470 57473 +3
053445,000401: 27,3471 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
053446,000402: 27,3472 03676 TFFSW
053447,000403: 27,3473 00023 +3 STORE RTERM # E:(-29) M:(-27)
053448,000404: 27,3474 77657 SL*
053449,000405: 27,3475 20201 0,1 # X1=-NR
053450,000406: 27,3476 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR)
053451,000407: 27,3477 44205 DMP BDSU
053452,000408: 27,3500 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
053453,000409: 27,3501 06514 TFF1/4
053454,000410: 27,3502 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
053455,000411: 27,3503 00021 NRTERM # E:(-29+NR) M:(-27+NR)
053456,000412: 27,3504 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
053457,000413: # E:(-32+NR) M:(-30+NR)
053458,000414: 27,3505 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
053459,000415: 27,3506 20573 0 -6,1 # X1 = -NR
053460,000416: 27,3507 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
053461,000417: # RTERM(2-ALFA RTERM) FROM PDL +2
053462,000418: # E:(-32+NR) M:(-30+NR)
053463,000419: 27,3510 77657 SR* # LEAVE E:(-32) M:(-30)
053464,000420: 27,3511 20601 0,1 # X1 = -NR
053465,000421: 27,3512 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH
053466,000422: 27,3513 03756 TFFSW
053467,000423: 27,3514 57516 +2 # IF TFF, CONTINUE
053468,000424: 27,3515 06524 TFFZEROS # IF TPER, SET Q2 = 0
053469,000425: 27,3516 75440 +2 BMN SQRT # E:(-16) M:(-15)
053470,000426: 27,3517 57651 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
053471,000427: # RESET PDL, SET TFF=POSMAX, AND EXIT.
053472,000428:
053473,000429: 27,3520 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
053474,000430: 27,3521 57754 TCDANZIG # ANY PORT IN A STORM.
053475,000431: 27,3522 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15)
053476,000432: 27,3523 02170 VONE' # VN/SQRT(MU) E:(10) M:(9)
053477,000433: 27,3524 52441 DOT SL3
053478,000434: 27,3525 02207 RONE # SAVED RN. E:(-29) M:(-27)
053479,000435: 27,3526 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
053480,000436: # E:(-16) M:(-15)
053481,000437: 27,3527 44240 BMN BDSU
053482,000438: 27,3530 57551 INBOUND # USE ALTERNATE Z
053483,000439: 27,3531 00045 TFFTEM # Q2 E:(-16) M:(-15)
053484,000440:
053485,000441: # OUTBOUND Z CALC CONTINUES HERE
053486,000442:
053487,000443: 27,3532 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15)
053488,000444: 27,3533 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
053489,000445: 27,3534 44205 DMP BDSU
Page 1270 |
053491,000447: 27,3535 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR)
053492,000448: # (2-RTERM ALFA) (-3) FROM PDL+0
053493,000449: 27,3536 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16)
053494,000450: # M:(-3) OR (-15)
053495,000451: 27,3537 40015 DAD BOV # INDETERMINANCY TEST
053496,000452: 27,3540 17760 LIM(-22) # =1.0-B(-22)
053497,000453: 27,3541 57562 TFFXTEST # GO IF DEN >/= B(-22)
053498,000454: 27,3542 65345 DLOAD PDDL # SET DEN=0 OTHERWISE
053499,000455: 27,3543 06524 TFFZEROS
053500,000456: # XCH ZERO WITH PDL+0
053501,000457: 27,3544 57545 DLOAD DCOMP
053502,000458: 27,3545 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
053503,000459: 27,3546 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
053504,000460: 27,3547 57656 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
053505,000461:
053506,000462: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
053507,000463: 27,3550 77616 DUMPTFF1 RVQ # RETURN TFF =0
053508,000464:
053509,000465: # INBOUND Z CALC CONTINUES HERE
053510,000466:
053511,000467: 27,3551 77745 INBOUND DLOAD # RESET PDL+0
053512,000468: 27,3552 45345 DLOAD DSU # ALTERNATE Z CALC
053513,000469: 27,3553 00023 RTERM # E:(-29) M:(-27)
053514,000470: 27,3554 00015 RMAG1 # E:(-29) M:(-27)
053515,000471: 27,3555 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27)
053516,000472: 27,3556 00045 TFFTEM # Q2 E:(-16) M:(-15)
053517,000473: 27,3557 52015 DAD GOTO
053518,000474: 27,3560 00017 TFFQ1 # Q1 E:(-16) M:(-15)
053519,000475: 27,3561 57536 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15)
053520,000476:
053521,000477: 27,3562 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2)) E:(-3) OR (-16)
053522,000478: # M:(-3) OR (-15)
053523,000479: 27,3563 17762 DP(-22) # RESTORE ABS(DEN) TO MPAC
053524,000480: 27,3564 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
053525,000481: 27,3565 53605 DMP SR*
053526,000482: 27,3566 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
053527,000483: 27,3567 57201 0 -3,2 # X2=-NA
053528,000484: 27,3570 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
053529,000485: # M:(-3) OR (-15)
053530,000486: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
053531,000487: # M:(-3) OR (-15)
053532,000488: 27,3571 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
053533,000489: 27,3572 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
053534,000490: 27,3573 57654 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
053535,000491:
053536,000492: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
053537,000493:
053538,000494: 27,3574 45471 DDV STADR
053539,000495: # DEN FROM PDL+0 E:(-3) OR (-16)
053540,000496: # M:(-3) OR (-15)
053541,000497: 27,3575 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
Page 1271 |
053543,000499: # E:(-13) M:(-12)
053544,000500: 27,3576 63406 PUSH DSQ # Z TO PDL+0
053545,000501: 27,3577 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24)
053546,000502: 27,3600 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
053547,000503: 27,3601 75261 SL SIGN
053548,000504: 27,3602 20206 5
053549,000505: 27,3603 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
053550,000506: 27,3604 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR)
053551,000507: # (ARG IS USED IN TFF/TRIG)
053552,000508: # ZSQ FROM PDL+2 E:(-26) M:(-24)
053553,000509: 27,3605 41206 PUSH DMP # RESTORE PUSH LOC
053554,000510: 27,3606 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
053555,000511: 27,3607 77657 SL*
053556,000512: 27,3610 20201 0,1 # X1=-NR
053557,000513: 27,3611 00043 STORE TFFX # X
053558,000514: 27,3612 41234 RTB DMP
053559,000515: 27,3613 57736 T(X) # POLY
053560,000516: # ZSQ FROM PDL+2 E:(-26) M:(-24)
053561,000517: 27,3614 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27)
053562,000518: 27,3615 00023 RTERM # RTERM E:(-29) M:(-27)
053563,000519: 27,3616 41215 DAD DMP
053564,000520: 27,3617 00015 RMAG1 # E:(-29) M:(-27)
053565,000521: # Z FROM PDL+0 E:(-13) M:(-12)
053566,000522: 27,3620 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42)
053567,000523: 27,3621 57642 ENDTFF # (NO PUSH UP)
053568,000524: 27,3622 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0
053569,000525: 27,3623 00017 TFFQ1 # Q1 FOR GONEPAST TEST
053570,000526: 27,3624 71244 BPL DLOAD # GONE PAST ?
053571,000527: 27,3625 57646 NEGTFF # YES. TFF < 0.
053572,000528: 27,3626 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
053573,000529: 27,3627 51076 DCOMP BPL # ALFA > 0 ?
053574,000530: 27,3630 57646 NEGTFF # NO. TFF IS NEGATIVE.
053575,000531:
053576,000532: # CORRECT FOR ORBITAL PERIOD.
053577,000533:
053578,000534: 27,3631 77676 DCOMP # YES. CORRECT FOR ORB PERIOD.
053579,000535: 27,3632 56205 DMP DDV
053580,000536: 27,3633 17756 PI/16 # 2 PI (-5)
053581,000537: 27,3634 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
053582,000538: 27,3635 53657 SL* SL*
053583,000539: 27,3636 57602 0 -4,2 # X2=-NA
053584,000540: 27,3637 57602 0 -4,2
053585,000541: 27,3640 43257 SL* DAD
053586,000542: 27,3641 57576 0,2
053587,000543: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
053588,000544: 27,3642 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
053589,000545: 27,3643 00037 TFF/RTMU # E:(17) M:(14)
053590,000546: 27,3644 57652 MAXTFF # SET POSMAX IF OVFL.
053591,000547:
053592,000548: 27,3645 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
053593,000549:
Page 1272 |
053595,000551: 27,3646 77745 NEGTFF DLOAD
053596,000552: # TFF SQRT(MU) FROM PDL+0, NEGATIVE.
053597,000553: 27,3647 77650 GOTO
053598,000554: 27,3650 57642 ENDTFF
053599,000555:
053600,000556: 27,3651 77745 MAXTFF1 DLOAD # RESET PDL
053601,000557: 27,3652 43545 MAXTFF DLOAD RVQ
053602,000558: 27,3653 17772 NEARONE
053603,000559:
053604,000560: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
053605,000561:
053606,000562: # NUM FROM TFFX. E:(-16) OR (-29)
053607,000563: # M:(-15) OR (-27)
053608,000564: 27,3654 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
053609,000565: 27,3655 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0
053610,000566: # DEN FROM PDL+0 E:(-3)/( 16) M:(-3)/(-15)
053611,000567: # N/D TO PDL+0 E:(11) M:(10)
053612,000568: 27,3656 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
053613,000569: 27,3657 00045 TFFTEM # Q2 E:(-16) M:(-15)
053614,000570: 27,3660 00017 TFFQ1 # Q1 E:(-16) M:(-15)
053615,000571: 27,3661 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15)
053616,000572: # D/N FROM PDL+0
053617,000573: 27,3662 77626 STADR
053618,000574: 27,3663 77732 STORE TFFTEM # D/N E:(11) M:(10)
053619,000575: 27,3664 53605 DMP SL*
053620,000576: 27,3665 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
053621,000577: 27,3666 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA)
053622,000578: 27,3667 41206 PUSH DMP # TO PDL+0
053623,000579: 27,3670 00045 TFFTEM # 1/Z E:(11) M:(10)
053624,000580: 27,3671 41057 SL* BOVB
053625,000581: 27,3672 57576 0,2 # X2= -NA
053626,000582: 27,3673 21713 SIGNMPAC # IN CASE X= 1.0, CONTINUE
053627,000583: 27,3674 00043 STORE TFFX # X=1/ALFA ZSQ
053628,000584: 27,3675 41234 RTB DMP
053629,000585: 27,3676 57736 T(X) # POLY
053630,000586: 27,3677 00043 TFFX
053631,000587: 27,3700 45242 SR3 DSU
053632,000588: 27,3701 17764 DP2(-3)
053633,000589: 27,3702 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA)
053634,000590: # M:(-14-NA)
053635,000591: # 1/ALFA Z FROM PDL+0 E:(-11-NA)
053636,000592: # M:(-10-NA)
053637,000593: 27,3703 41345 DLOAD DMP # GET SIGN FOR SDELF
053638,000594: 27,3704 00045 TFFTEM # 1/Z E:(11) M:(10)
053639,000595: 27,3705 00015 RMAG1 # E:(-29) M:(-27)
053640,000596: 27,3706 43312 SL2 DAD
053641,000597: 27,3707 00017 TFFQ1 # Q1 E:(-16) M:(-15)
053642,000598: 27,3710 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15
053643,000599: 27,3711 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
053644,000600: 27,3712 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG.
Page 1273 |
053646,000602: 27,3713 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
053647,000603: 27,3714 57575 1,2 # X2=-NA
053648,000604: 27,3715 53765 SIGN SL*
053649,000605: 27,3716 00045 TFFTEM # AFFIX SIGN FOR SDELF
053650,000606: 27,3717 57576 0,2
053651,000607: 27,3720 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
053652,000608: # (ARG FOR USE IN TFF/TRIG)
053653,000609: 27,3721 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
053654,000610: 27,3722 41366 SQRT DMP
053655,000611: 27,3723 17756 PI/16 # PI (-4)
053656,000612: 27,3724 77615 DAD
053657,000613: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
053658,000614: # M:(-14-NA)
053659,000615: 27,3725 45257 SL* DSU
053660,000616: 27,3726 57577 0 -1,2
053661,000617: 27,3727 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15)
053662,000618: 27,3730 53605 DMP SL*
053663,000619: 27,3731 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
053664,000620: 27,3732 57601 0 -3,2
053665,000621: 27,3733 52057 SL* GOTO
053666,000622: 27,3734 57602 0 -4,2
053667,000623: 27,3735 57642 ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
053668,000624:
Page 1274 |
053670,000626: # PROGRAM NAME: T(X) DATE: 01.17.67
053671,000627: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
053672,000628: # MOD BY: RR BAIRNSFATHER
053673,000629:
053674,000630: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
053675,000631: # CALCTPER TO APPROXIMATE THE SERIES
053676,000632: # 2 3
053677,000633: # 1/3 -X/5 +X /7 -X /9 ...
053678,000634:
053679,000635: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
053680,000636: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1
053681,000637:
053682,000638: # ALSO X IS NEG FOR HYPERBOLIC ORBITS
053683,000639: # X = 0 FOR PARABOLIC ORBITS
053684,000640: # X IS POSITIVE FOR ELLIPTIC ORBITS
053685,000641:
053686,000642: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
053687,000643: # DEVIATION FROM THE SERIES OF 2 E-5 (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
053688,000644: # MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).)
053689,000645:
053690,000646: # CALLING SEQUENCE: RTB
053691,000647: # T(X)
053692,000648: # C(MPAC) = X
053693,000649:
053694,000650: # SUBROUTINES CALLED: NONE
053695,000651:
053696,000652: # NORMAL EXIT MODE: TC DANZIG
053697,000653:
053698,000654: # ALARMS: NONE
053699,000655:
053700,000656: # OUTPUT: C(MPAC) = T(X)
053701,000657:
053702,000658: # ERASABLE INITIALIZATION REQUIRED:
053703,000659: # C(MPAC) = X
053704,000660:
053705,000661: # DEBRIS: NONE
053706,000662:
053707,000663: 27,3736 07225 T(X) TC POLY
053708,000664: 27,3737 00004 DEC 4 B-14 # N-1
053709,000665: 27,3740 12525 12525 2DEC 3.333333333 E-1
053710,000666: 27,3742 71463 57703 2DEC* -1.999819135 E-1*
053711,000667: 27,3744 04423 17645 2DEC* 1.418148467 E-1*
053712,000668: 27,3746 74604 43667 2DEC* -1.01310997 E-1*
053713,000669: 27,3750 01626 37256 2DEC* 5.609004986 E-2*
053714,000670: 27,3752 77404 52071 2DEC* -1.536156925 E-2*
053715,000671:
053716,000672: 27,3754 06064 ENDT(X) TC DANZIG
053717,000673:
053718,000674: 27,3755 27,3754 TCDANZIG = ENDT(X)
053719,000675:
Page 1275 |
053721,000677: # TFF CONSTANTS
053722,000678:
053723,000679: 32,3751 BANK 32
053724,000680:
053725,000681: 27,2000 SETLOC TOF-FF1
053726,000682: 27,2000 BANK
053727,000683:
053728,000684: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
053729,000685: # MUE = 3.990815471 E10 M CUBE/CS SQ
053730,000686: # RTMUE = 1.997702549 E5 B-18* MODIFIED EARTH MU
053731,000687:
053732,000688: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
053733,000689: # MUM = 4.902778 E8 M CUBE/CS SQ
053734,000690: # RTMUM 2DEC* 2.21422176 E4 B-18*
053735,000691: 27,3755 06220 37553 PI/16 2DEC 3.141592653 B-4
053736,000692: 27,3757 37777 37700 LIM(-22) 2OCT 3777737700 # 1.0 -B(-22)
053737,000693: 27,3761 00000 00100 DP(-22) 2OCT 0000000100 # B(-22)
053738,000694: 27,3763 04000 00000 DP2(-3) 2DEC 1 B-3
053739,000695: 27,3765 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16
053740,000696:
053741,000697: # RPAD1 2DEC 6373338 B-29 M (-29) = 20909901.57 FT
053742,000698: 27,3767 23,2337 RPAD1 = RPAD
053743,000699:
053744,000700: 27,3767 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M
053745,000701: 27,3771 37777 37777 NEARONE 2DEC .999999999
053746,000702: 27,3773 23,2523 TFFZEROS EQUALS HI6ZEROS
053747,000703: 27,3773 23,2513 TFF1/4 EQUALS HIDP1/4
053748,000704:
End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc