Source Code
![]() |
These source-code files were obtained by digitally photographing
an Artemis 72 (Apollo 15-17 Command Module) program listing from a private
collection and then
modifying pre-existing Comanche 55 (Apollo 11) source files to
incorporate changes. Photography was by Ron Burkey, and transcription
was performed by a team of volunteers. Note that the page images
presented online are of reduced quality, and that additional images
may be available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 072 OF AGC PROGRAM ARTEMIS BY NASA 2021114-011 11:40 FEB. 26, 1971Note that the date is the date of the printout, not the date of the program revision. |
058794,000002: ## Copyright: Public domain.
058795,000003: ## Filename: TIME_OF_FREE_FALL.agc
058796,000004: ## Purpose: Part of the source code for Artemis (i.e., Colossus 3),
058797,000005: ## build 072. This is for the Command Module's (CM)
058798,000006: ## Apollo Guidance Computer (AGC), for
058799,000007: ## Apollo 15-17.
058800,000008: ## Assembler: yaYUL
058801,000009: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
058802,000010: ## Website: www.ibiblio.org/apollo/index.html
058803,000011: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Artemis072/
058804,000012: ## Mod history: 2009-08-20 JL Adapted from corresponding Comanche 055 file.
058805,000013: ## 2009-08-21 JL Added a note about a problem with the page scan on p.1386.
058806,000014: ## 2010-02-20 RSB Un-##'d this header.
058807,000015: ## 2017-02-08 RSB Proofed comment text by diff'ing vs Comanche 55
058808,000016: ## and/or octopus/ProoferComments as most-appropriate.
058809,000017: ## 2017-03-14 RSB Comment-text fixes noted in proofing Luminary 116.
058810,000018:
![]() |
Page 1371 |
058812,000020:
058813,000021: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
058814,000022: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE AND 1/SQRT(MU) AT THE
058815,000023: # APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
058816,000024:
058817,000025: # EARTH ORIGIN POSITION -29 METERS
058818,000026: # VELOCITY -7 METERS/CENTISECOND
058819,000027: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
058820,000028:
058821,000029: # MOON ORIGIN POSITION -27 METERS
058822,000030: # VELOCITY -5 METERS/CENTISECONDS
058823,000031: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
058824,000032:
058825,000033: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
058826,000034: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
058827,000035: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
058828,000036:
058829,000037: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
058830,000038: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
058831,000039: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
058832,000040:
058833,000041: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
058834,000042: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
058835,000043:
058836,000044: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
058837,000045:
058838,000046: # BELOW E: IS USED FOR EARTH ORIGIN SCALE
058839,000047: # M: IS USED FOR MOON ORIGIN SCALE
058840,000048:
058841,000049: # TFFSW = 119D BIT1 0 = CALCTFF 1 = CALCTPER
058842,000050: 23,3773 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
058843,000051: 23,3773 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
058844,000052: # RPER = 14D PERIGEE RADIUS M E: (-29) M: (-27)
058845,000053: 23,3773 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
058846,000054: # SDELF/2 SIN(THETA) /2
058847,000055: 23,3773 CDELF/2 = 14D # COS(THETA) /2
058848,000056: # RAPO = 16D APOGEE RADIUS M E: (-29) M: (-27)
058849,000057: 23,3773 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
058850,000058: # M: (-27+NR)
058851,000059: 23,3773 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
058852,000060: 23,3773 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
058853,000061: 23,3773 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
058854,000062: # M: (-20-2 NA)
058855,000063: 23,3773 TFFRTALF = 24D # SQRT(ALFA) E: (10+NA) M: (9+NA)
058856,000064: 23,3773 TFFALFA = 26D # ALFA 1/M E: (26-NR) M: (24-NR)
058857,000065: 23,3773 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
058858,000066: # M: (-36+2 NR)
058859,000067: 23,3773 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
058860,000068: 23,3773 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
058861,000069: # M: (-27+NR)
058862,000070: 23,3773 TFFX = 34D
058863,000071: 23,3773 TFFTEM = 36D # TEMPORARY
058864,000072:
![]() |
Page 1372 |
058866,000074: # REGISTERS S1, S2 ARE UNTOUCHED BY ANY TFF SUBROUTINE
058867,000075: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
058868,000076: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
058869,000077: # SUBROUTINES.
058870,000078: # -NR C(X1) = NORM COUNT OF RMAG
058871,000079: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
058872,000080:
![]() |
Page 1373 |
058874,000082:
058875,000083: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
058876,000084: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
058877,000085: # MOD BY: RR BAIRNSFATHER
058878,000086: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
058879,000087: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
058880,000088: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
058881,000089:
058882,000090: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
058883,000091: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
058884,000092: # THE EQUATIONS ARE
058885,000093: # - - -
058886,000094: # H = RN*VN ANGULAR MOMENTUM
058887,000095: # - -
058888,000096: # LCP = H.H / MU SEMI LATUS RECTUM
058889,000097: # - -
058890,000098: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
058891,000099:
058892,000100: # AND ALFA IS POS FOR ELLIPTIC ORBITS
058893,000101: # 0 FOR PARABOLIC ORBITS
058894,000102: # NEG FOR HYPERBOLIC ORBITS.
058895,000103: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
058896,000104:
058897,000105: # CALLING SEQUENCE:
058898,000106: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
058899,000107: # 1/SQRT(MU). PROGRAM WILL SAVE IN TFF/RTMU . THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
058900,000108: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
058901,000109: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
058902,000110: # TFF ROUTINES.
058903,000111:
058904,000112: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
058905,000113:
058906,000114: # TO SPECIFY MU: DLOAD CALL IF MU ALREADY STORED: CALL
058907,000115: # YOURMU 1/RTMU E: (17) M: (14) TFFCONMU
058908,000116: # TFFCONIC
058909,000117:
058910,000118: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
058911,000119:
058912,000120: # SUBROUTINES CALLED: NONE
058913,000121:
058914,000122: # NORMAL EXIT MODES: RVQ
058915,000123:
058916,000124: # ALARMS: NONE
058917,000125:
058918,000126: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
058919,000127: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
058920,000128: # NRMAG E: (-29+NR) M RMAG, NORMALIZED
058921,000129: # M: (-27+NR)
058922,000130: # X1 -NR, NORM COUNT
058923,000131: # TFFNP E: (-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC
058924,000132: # M: (-36+2NR)
058925,000133: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
058926,000134: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORMLIZED. FOR VGAMCALC
058927,000135: # TFFALFA E: (26-NR) 1/M ALFA, WEIGHTED BY NR
058928,000136: # M: (24-NR)
058929,000137: # TFFRTALF E: (10+NA) SQRT(ALFA), NORMALIZED
058930,000138: # M: (9+NA)
![]() |
Page 1374 |
058932,000140: # X2 -NA, NORM COUNT
058933,000141: # TFF1/ALF E: (-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
058934,000142: # M: (-20-2NA)
058935,000143: # PUSHLOC AT PDL+0
058936,000144: # THE FOLLOWING IS STORED IN GENERAL ERASABLE
058937,000145: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
058938,000146:
058939,000147: # ERASABLE INITIALIZATION REQUIRED:
058940,000148: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
058941,000149: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
058942,000150: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
058943,000151:
058944,000152: # DEBRIS: QPRET, PDL+0 ... PDL+3
058945,000153:
058946,000154: 27,2000 SETLOC TOF-FF
058947,000155: 27,2000 BANK
058948,000156:
058949,000157: 27,3151 COUNT* $$/TFF
058950,000158:
058951,000159: 27,3151 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E: (17) M: (14)
058952,000160:
058953,000161: 27,3152 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
058954,000162: 27,3153 02320 RONE # SAVED RN. M E: (-29) M: (-27)
058955,000163: 27,3154 77725 PDDL # UR/2 TO PDL+0, +5
058956,000164: 27,3155 00045 36D # MAGNITUDE
058957,000165: 27,3156 00015 STORE RMAG1 # M E: (-29) M: (-27)
058958,000166:
058959,000167: 27,3157 77701 NORM
058960,000168: 27,3160 00047 X1 # -NR
058961,000169: 27,3161 24041 STOVL NRMAG # RMAG M E: (-29+NR) M: (-27+NR)
058962,000170: 27,3162 02326 VONE # SAVED VN. M/CS E: (-7) M: (-5)
058963,000171: 27,3163 77761 VXSC
058964,000172: 27,3164 00037 TFF/RTMU # E: (17) M: (14)
058965,000173: 27,3165 02362 STORE VONE' # VN/SQRT(MU) E:(10) M:(9)
058966,000174:
058967,000175: 27,3166 47361 VXSC VXV
058968,000176: 27,3167 00041 NRMAG # E: (-29+NR) M: (-27+NR)
058969,000177: # UR/2 FROM PDL
058970,000178: 27,3170 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
058971,000179: 27,3171 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
058972,000180: # SAVE ALSO FOR VGAMCALC
058973,000181: 27,3172 15326 TFF1/4
058974,000182: 27,3173 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
058975,000183: 27,3174 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
058976,000184: 27,3175 02362 VONE' # SAVED VN. E: (10) M: (9)
058977,000185: 27,3176 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
058978,000186: 27,3177 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
058979,000187: # SAVE FOR VGAMCALC
058980,000188: 27,3200 43257 SR* DAD
058981,000189: 27,3201 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
![]() |
Page 1375 |
058983,000191: 27,3202 77626 STADR
058984,000192: # 2/RMAG FROM PDL+2
058985,000193: 27,3203 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
058986,000194: 27,3204 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
058987,000195: 27,3205 20173 0 -6,1
058988,000196: 27,3206 75446 ABS SQRT # E:(10) M:(9)
058989,000197: 27,3207 77701 NORM
058990,000198: 27,3210 00050 X2 # X2 = -NA
058991,000199: 27,3211 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
058992,000200: 27,3212 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK
058993,000201: # ALFA FROM PDL+2 E:(20) M:(18)
058994,000202: 27,3213 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
058995,000203: 27,3214 57216 +2
058996,000204: 27,3215 15326 TFF1/4
058997,000205: 27,3216 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2 NA) M:(-20-2 NA)
058998,000206: 27,3217 77616 DUMPCNIC RVQ
058999,000207:
059000,000208: # 39 W
059001,000209:
![]() |
Page 1376 |
059003,000211:
059004,000212: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
059005,000213: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
059006,000214: # MOD BY: RR BAIRNSFATHER
059007,000215: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
059008,000216: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
059009,000217: # ALSO IMPROVE ACCURACY OF RAPO.
059010,000218:
059011,000219: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
059012,000220: # APOGEE RADIUS FOR A GENERAL CONIC.
059013,000221: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
059014,000222: # RP = P /(1+E) RA = (1+E) / ALFA
059015,000223: # WHERE 2
059016,000224: # E = 1 - P ALFA
059017,000225: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
059018,000226: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
059019,000227: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
059020,000228: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
059021,000229:
059022,000230: # THIS SUBROUTINE REQUIRES THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
059023,000231:
059024,000232: # CALLING SEQUENCE: CALL
059025,000233: # TFFRP/RA
059026,000234:
059027,000235: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
059028,000236: # C(MPAC) UNSPECIFIED
059029,000237:
059030,000238: # SUBROUTINES CALLED: NONE
059031,000239:
059032,000240: # NORMAL EXIT MODE: RVQ
059033,000241: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
059034,000242: # OTHERWISE, RAPO = POSMAX.
059035,000243:
059036,000244: # ALARMS: NONE
059037,000245:
059038,000246: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
059039,000247: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
059040,000248: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
059041,000249: # PUSHLOC AT PDL+0
059042,000250:
059043,000251: # ERASABLE INITIALIZATION REQUIRED:
059044,000252: # TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
059045,000253: # M:(24-NR)
059046,000254: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
059047,000255: # M:(-36+2NR)
059048,000256: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
059049,000257: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
059050,000258:
059051,000259: # DEBRIS: QPRET, PDL+0 ... PDL+1
059052,000260:
![]() |
Page 1377 |
059054,000262: 27,3220 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
059055,000263: 27,3220 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
059056,000264:
059057,000265: 27,3220 41345 TFFRP/RA DLOAD DMP
059058,000266: 27,3221 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
059059,000267: 27,3222 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
059060,000268: 27,3223 57457 SR* DCOMP # ALFA P (-12+NR)
059061,000269: 27,3224 20571 0 -8D,1 # ALFA P (-4)
059062,000270: 27,3225 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
059063,000271: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
059064,000272: 27,3226 31771 DP2(-4)
059065,000273: 27,3227 43366 SQRT DAD # E SQ = (1- P ALFA) (-4)
059066,000274: 27,3230 15326 TFF1/4
059067,000275: 27,3231 55206 PUSH BDDV # (1+E) (-2) TO PDL+0
059068,000276: 27,3232 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
059069,000277: 27,3233 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
059070,000278: 27,3234 20601 0,1 # X1=-NR
059071,000279: 27,3235 20572 0 -7,1 # (EFFECTIVE SL)
059072,000280: 27,3236 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
059073,000281: # (1+E) (-2) FROM PDL+0
059074,000282: 27,3237 41005 DMP BOVB
059075,000283: 27,3240 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
059076,000284: 27,3241 57544 TCDANZIG # CLEAR OVFIND, IF ON.
059077,000285: 27,3242 53654 BZE SL*
059078,000286: 27,3243 57252 MAXRA # SET POSMAX, IF ALFA=0
059079,000287: 27,3244 57603 0 -5,2 # -5+NA
059080,000288: 27,3245 40057 SL* BOV
059081,000289: 27,3246 57576 0,2
059082,000290: 27,3247 57252 MAXRA # SET POSMAX IF OVFL.
059083,000291: 27,3250 77644 BPL # CONTINUE WITH VALID RAPO.
059084,000292: 27,3251 57254 +3
059085,000293: 27,3252 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
059086,000294: 27,3253 15344 NEARONE # POSMAX AS A TAG.
059087,000295: 27,3254 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
059088,000296: 27,3255 77616 DUMPRPRA RVQ
059089,000297:
059090,000298: # 30 W
059091,000299:
![]() |
Page 1378 |
059093,000301:
059094,000302: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
059095,000303: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
059096,000304: # MOD BY: RR BAIRNSFATHER
059097,000305: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
059098,000306: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
059099,000307: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
059100,000308: # MOD NO: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
059101,000309: # MOD NO: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
059102,000310:
059103,000311: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
059104,000312: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM , SUPPLIED BY THE USER. THE POSITION VECTOR
059105,000313: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
059106,000314: # THE EQUATIONS ARE
059107,000315:
059108,000316: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
059109,000317: # - -
059110,000318: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
059111,000319:
059112,000320: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
059113,000321:
059114,000322: # WHERE, IF INBOUND
059115,000323: # NUM = RTERM - RN LEQ +- 2 LCE/ALFA
059116,000324: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
059117,000325:
059118,000326: # AND, IF OUTBOUND
059119,000327: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
059120,000328: # DEN = 2 - ALFA (RTERM + RN) . LEQ +- 2 LCE
059121,000329:
059122,000330: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
059123,000331:
059124,000332: # THEN X = ALFA Z Z
059125,000333: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
059126,000334:
059127,000335: # EXCEPT IF ALFA PNZ, AND IF TFF NEG,
059128,000336: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
059129,000337:
059130,000338: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
059131,000339:
059132,000340: # THEN X = 1/ALFA Z Z
059133,000341: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
059134,000342:
059135,000343: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
059136,000344: # 2 3 2
059137,000345: # 1/3 - X/5 + X /7 - X /9 ... (X < 1.0)
059138,000346:
059139,000347: # CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE
059140,000348: # CALL CALL
059141,000349: # CALCTFF CALCTPER
059142,000350: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
059143,000351: # FOR EITHER, E: (-29) M: (-27)
059144,000352: # FOR EITHER, PUSHLOC = PDL+0 , ARBITRARY IF LEQ 8D.
![]() |
Page 1379 |
059146,000354:
059147,000355: # SUBROUTINES CALLED: T(X), VIA RTB
059148,000356:
059149,000357: # NORMAL EXIT MODE: RVQ
059150,000358: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
059151,000359: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
059152,000360: # B. (THIS OPTION IS NO LONGER USED.)
059153,000361: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
059154,000362: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
059155,000363:
059156,000364: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
059157,000365: # TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
059158,000366: # NRTERM E: (-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
059159,000367: # M: (-27+NR)
059160,000368: # TFFTEM E: (-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
059161,000369: # M: (-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
059162,000370: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
059163,000371: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
059164,000372: # TFFQ1 E:(-16) M:(-15) PDL 14D
059165,000373: # TFFDELQ E:(-16) M:(-15) PDL 10D
059166,000374: # PUSHLOC AT PDL+0
059167,000375:
059168,000376: # ERASABLE INITIALIZATION REQUIRED:
059169,000377: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
059170,000378: # VONE' E:(+10) M:(+9) VN/SQRT(MU) LEFT BY TFF/CONIC
059171,000379: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
059172,000380: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
059173,000381:
059174,000382: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
059175,000383: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
059176,000384: # NRMAG E: (-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
059177,000385: # M: (-27+NR)
059178,000386: # X1 -NR, NORM COUNT LEFT BY TFFCONIC
059179,000387: # TFFNP E: (-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
059180,000388: # M: (-36+2NR)
059181,000389: # TFFALFA E: (26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
059182,000390: # M: (24-NR)
059183,000391: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
059184,000392: # M:(9+NA)
059185,000393: # X2 -NA, NORM COUNT LEFT BY TFFCONIC
059186,000394: # TFF1/ALF E: (-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
059187,000395: # M: (-20-2NA)
059188,000396:
059189,000397: # DEBRIS: QPRET, PDL+0 ... PDL+3
059190,000398: # RTERM E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
059191,000399: # RAPO E:(-29) M:(-27) PDL 16D (=NRTERM)
059192,000400: # RPER E:(-29) M:(-27) PDL 14D (=TFFQ1)
059193,000401:
![]() |
Page 1380 |
059195,000403: 27,3256 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC
059196,000404: 27,3257 03436 TFFSW
059197,000405: 27,3260 57263 +3
059198,000406: 27,3261 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
059199,000407: 27,3262 03676 TFFSW
059200,000408: 27,3263 00023 +3 STORE RTERM # E: (-29) M: (-27)
059201,000409: 27,3264 77657 SL*
059202,000410: 27,3265 20201 0,1 # X1=-NR
059203,000411: 27,3266 00021 STORE NRTERM # RTERM E: (-29+NR) M: (-27+NR)
059204,000412: 27,3267 44205 DMP BDSU
059205,000413: 27,3270 00033 TFFALFA # ALFA E: (26-NR) M: (24-NR)
059206,000414: 27,3271 15326 TFF1/4
059207,000415: 27,3272 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
059208,000416: 27,3273 00021 NRTERM # E: (-29+NR) M: (-27+NR)
059209,000417: 27,3274 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
059210,000418: # E: (-32+NR) M: (-30+NR)
059211,000419: 27,3275 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
059212,000420: 27,3276 20573 0 -6,1 # X1 = -NR
059213,000421: 27,3277 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
059214,000422: # RTERM(2-ALFA RTERM) FROM PDL +2
059215,000423: # E: (-32+NR) M: (-30+NR)
059216,000424: 27,3300 77657 SR* # LEAVE E: (-32) M: (-30)
059217,000425: 27,3301 20601 0,1 # X1 = -NR
059218,000426: 27,3302 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH
059219,000427: 27,3303 03756 TFFSW
059220,000428: 27,3304 57306 +2 # IF TFF, CONTINUE
059221,000429: 27,3305 15336 TFFZEROS # IF TPER, SET Q2 = 0
059222,000430: 27,3306 75440 +2 BMN SQRT # E: (-16) M: (-15)
059223,000431:
059224,000432: 27,3307 57441 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
059225,000433: # RESET PDL, SET TFF=POSMAX, AND EXIT.
059226,000434:
059227,000435: 27,3310 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
059228,000436: 27,3311 57544 TCDANZIG # ANY PORT IN A STORM.
059229,000437: 27,3312 24045 STOVL TFFTEM # Q2 E: (-16) M: (-15)
059230,000438: 27,3313 02362 VONE' # VN/SQRT(MU) E: (10) M: (9)
059231,000439: 27,3314 52441 DOT SL3
059232,000440: 27,3315 02320 RONE # SAVED RN. E: (-29) M: (-27)
059233,000441: 27,3316 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
059234,000442: # E: (-16) M: (-15)
059235,000443: 27,3317 44240 BMN BDSU
059236,000444: 27,3320 57341 INBOUND # USE ALTERNATE Z
059237,000445: 27,3321 00045 TFFTEM # Q2 E: (-16) M: (-15)
059238,000446:
059239,000447: # OUTBOUND Z CALC CONTINUES HERE
059240,000448:
059241,000449: 27,3322 14043 STODL TFFX # NUM=Q2-Q1 E: (-16) M: (-15)
059242,000450: 27,3323 00033 TFFALFA # ALFA E: (26-NR) M: (24-NR)
059243,000451: 27,3324 44205 DMP BDSU
![]() |
Page 1381 |
059245,000453: 27,3325 00041 NRMAG # RMAG E: (-29+NR) M: (-27+NR)
059246,000454: # (2-RTERM ALFA) (-3) FROM PDL+0
059247,000455: 27,3326 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E: (-3) OR (-16)
059248,000456: # M: (-3) OR (-15)
059249,000457: 27,3327 40015 DAD BOV # INDETERMINANCY TEST
059250,000458: 27,3330 31763 LIM(-22) # =1.0-B(-22)
059251,000459: 27,3331 57352 TFFXTEST # GO IF DEN >/= B(-22)
059252,000460: 27,3332 65345 DLOAD PDDL # SET DEN=0 OTHERWISE
059253,000461: 27,3333 15336 TFFZEROS
059254,000462: # XCH ZERO WITH PDL+0
059255,000463: 27,3334 57545 DLOAD DCOMP
059256,000464: 27,3335 00033 TFFALFA # ALFA E: (26-NR) M: (24-NR)
059257,000465: 27,3336 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
059258,000466: 27,3337 57446 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
059259,000467:
059260,000468: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
059261,000469: 27,3340 77616 DUMPTFF1 RVQ # RETURN TFF =0
059262,000470:
059263,000471: # INBOUND Z CALC CONTINUES HERE
059264,000472: 27,3341 77745 INBOUND DLOAD # RESET PDL+0
059265,000473: 27,3342 45345 DLOAD DSU # ALTERNATE Z CALC
059266,000474: 27,3343 00023 RTERM # E: (-29) M: (-27)
059267,000475: 27,3344 00015 RMAG1 # E: (-29) M: (-27)
059268,000476: 27,3345 14043 STODL TFFX # NUM=RTERM-RN E: (-29) M: (-27)
059269,000477: 27,3346 00045 TFFTEM # Q2 E: (-16) M: (-15)
059270,000478: 27,3347 52015 DAD GOTO
059271,000479: 27,3350 00017 TFFQ1 # Q1 E: (-16) M:(-15)
059272,000480: 27,3351 57326 SAVEDEN # DEN = Q2+Q1 E: (-16) M: (-15)
059273,000481:
059274,000482: 27,3352 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2)) E: (-3) OR (-16)
059275,000483: # M: (-3) OR (-15)
059276,000484: 27,3353 31765 DP(-22) # RESTORE ABS(DEN) TO MPAC
059277,000485: 27,3354 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
059278,000486: 27,3355 53605 DMP SR*
059279,000487: 27,3356 00031 TFFRTALF # SQRT(ALFA) E: (10+NA) M: (9+NA)
059280,000488: 27,3357 57201 0 -3,2 # X2=-NA
059281,000489: 27,3360 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
059282,000490: # M:(-3) OR (-15)
059283,000491: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
059284,000492: # M:(-3) OR (-15)
059285,000493: 27,3361 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
059286,000494: 27,3362 00043 TFFX # NUM E: (-16) OR (-29) M:(-15) OR (-27)
059287,000495: 27,3363 57444 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
059288,000496:
059289,000497: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
059290,000498:
059291,000499: 27,3364 45471 DDV STADR
059292,000500: # DEN FROM PDL+0 E: (-3) OR (-16)
059293,000501: # M: (-3) OR (-15)
059294,000502: 27,3365 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
![]() |
Page 1382 |
059296,000504: # E: (-13) M: (-12)
059297,000505: 27,3366 63406 PUSH DSQ # Z TO PDL+0
059298,000506: 27,3367 41206 PUSH DMP # Z SQ TO PDL+2 E: (-26) M: (-24)
059299,000507: 27,3370 00035 TFFNP # LC P E: (-38+2NR) M: (-36+2NR)
059300,000508: 27,3371 75261 SL SIGN
059301,000509: 27,3372 20206 5
059302,000510: 27,3373 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
059303,000511: 27,3374 14045 STODL TFFTEM # P ZSQ E: (-59+2NR) M: (-55+2NR)
059304,000512: # (ARG IS USED IN TFF/TRIG)
059305,000513: # ZSQ FROM PDL+2 E: (-26) M: (-24)
059306,000514: 27,3375 41206 PUSH DMP # RESTORE PUSH LOC
059307,000515: 27,3376 00033 TFFALFA # ALFA E: (26-NR) M: (24-NR)
059308,000516: 27,3377 77657 SL*
059309,000517: 27,3400 20201 0,1 # X1=-NR
059310,000518: 27,3401 00043 STORE TFFX # X
059311,000519: 27,3402 41234 RTB DMP
059312,000520: 27,3403 57526 T(X) # POLY
059313,000521: # ZSQ FROM PDL+2 E: (-26) M: (-24)
059314,000522: 27,3404 44302 SR2 BDSU # 2 ZSQ T(X) E: (-29) M: (-27)
059315,000523: 27,3405 00023 RTERM # RTERM E: (-29) M: (-27)
059316,000524: 27,3406 41215 DAD DMP
059317,000525: 27,3407 00015 RMAG1 # E: (-29) M: (-27)
059318,000526: # Z FROM PDL+0 E: (-13) M: (-12)
059319,000527: 27,3410 51042 SR3 BPL # TFF SQRT(MU) E: (-45) M: (-42)
059320,000528: 27,3411 57432 ENDTFF # (NO PUSH UP)
059321,000529: 27,3412 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0
059322,000530: 27,3413 00017 TFFQ1 # Q1 FOR GONEPAST TEST
059323,000531: 27,3414 71244 BPL DLOAD # GONE PAST ?
059324,000532: 27,3415 57436 NEGTFF # YES. TFF < 0.
059325,000533: 27,3416 00027 TFF1/ALF # 1/ALFA E: (-22-2NA) M: (-20-2NA)
059326,000534: 27,3417 51076 DCOMP BPL # ALFA > 0 ?
059327,000535: 27,3420 57436 NEGTFF # NO. TFF IS NEGATIVE.
059328,000536:
059329,000537: # CORRECT FOR ORBITAL PERIOD.
059330,000538:
059331,000539: 27,3421 77676 DCOMP # YES. CORRECT FOR ORB PERIOD.
059332,000540: 27,3422 56205 DMP DDV
059333,000541: 27,3423 31761 PI/16 # 2 PI (-5)
059334,000542: 27,3424 00031 TFFRTALF # SQRT(ALFA) E: (10+NA) M: (9+NA)
059335,000543: 27,3425 53657 SL* SL*
059336,000544: 27,3426 57602 0 -4,2 # X2=-NA
059337,000545: 27,3427 57602 0 -4,2
059338,000546: 27,3430 43257 SL* DAD
059339,000547: 27,3431 57576 0,2
059340,000548: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
059341,000549: 27,3432 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
059342,000550: 27,3433 00037 TFF/RTMU # E: (17) M: (14)
059343,000551: 27,3434 57442 MAXTFF # SET POSMAX IF OVFL.
059344,000552:
059345,000553: 27,3435 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
059346,000554:
![]() |
Page 1383 |
059348,000556: 27,3436 77745 NEGTFF DLOAD
059349,000557: # TFF SQRT(MU) FROM PDL+0, NEGATIVE.
059350,000558: 27,3437 77650 GOTO
059351,000559: 27,3440 57432 ENDTFF
059352,000560:
059353,000561: 27,3441 77745 MAXTFF1 DLOAD # RESET PDL
059354,000562: 27,3442 43545 MAXTFF DLOAD RVQ
059355,000563: 27,3443 15344 NEARONE
059356,000564:
059357,000565: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
059358,000566:
059359,000567: # NUM FROM TFFX. E: (-16) OR (-29)
059360,000568: # M: (-15) OR (-27)
059361,000569: 27,3444 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
059362,000570: 27,3445 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0
059363,000571: # DEN FROM PDL+0 E:(-3)/( 16) M:(-3)/(-15)
059364,000572: # N/D TO PDL+0 E: (11) M: (10)
059365,000573: 27,3446 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
059366,000574: 27,3447 00045 TFFTEM # Q2 E: (-16) M: (-15)
059367,000575: 27,3450 00017 TFFQ1 # Q1 E: (-16) M: (-15)
059368,000576: 27,3451 14013 STODL TFFDELQ # Q2-Q1 E: (-16) M: (-15)
059369,000577: # D/N FROM PDL+0
059370,000578: 27,3452 77626 STADR
059371,000579: 27,3453 77732 STORE TFFTEM # D/N E: (11) M: (10)
059372,000580: 27,3454 53605 DMP SL*
059373,000581: 27,3455 00027 TFF1/ALF # 1/ALFA E: (-22-2NA) M: (-20-2NA)
059374,000582: 27,3456 57576 0,2 # 1/ALFA Z E: (-11-NA) M: (-10-NA)
059375,000583: 27,3457 41206 PUSH DMP # TO PDL+0
059376,000584: 27,3460 00045 TFFTEM # 1/Z E: (11) M: (10)
059377,000585: 27,3461 41057 SL* BOVB
059378,000586: 27,3462 57576 0,2 # X2= -NA
059379,000587: 27,3463 45761 SIGNMPAC # IN CASE X= 1.0, CONTINUE
059380,000588: 27,3464 00043 STORE TFFX # X=1/ALFA ZSQ
059381,000589: 27,3465 41234 RTB DMP
059382,000590: 27,3466 57526 T(X) # POLY
059383,000591: 27,3467 00043 TFFX
059384,000592: 27,3470 45242 SR3 DSU
059385,000593: 27,3471 31767 DP2(-3)
059386,000594: 27,3472 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E: (-15-NA)
059387,000595: # M: (-14-NA)
059388,000596: # 1/ALFA Z FROM PDL+0 E: (-11-NA)
059389,000597: # M: (-10-NA)
059390,000598: 27,3473 41345 DLOAD DMP # GET SIGN FOR SDELF
059391,000599: 27,3474 00045 TFFTEM # 1/Z E: (11) M: (10)
059392,000600: 27,3475 00015 RMAG1 # E: (-29) M: (-27)
059393,000601: 27,3476 43312 SL2 DAD
059394,000602: 27,3477 00017 TFFQ1 # Q1 E: (-16) M: (-15)
059395,000603: 27,3500 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15
059396,000604: 27,3501 00035 TFFNP # LC P E: (-38+2NR) M: (-36+2NR)
059397,000605: 27,3502 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG.
![]() |
Page 1384 |
059399,000607: 27,3503 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059400,000608: 27,3504 57575 1,2 # X2=-NA
059401,000609: 27,3505 53765 SIGN SL*
059402,000610: 27,3506 00045 TFFTEM # AFFIX SIGN FOR SDELF
059403,000611: 27,3507 57576 0,2
059404,000612: 27,3510 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
059405,000613: # (ARG FOR USE IN TFF/TRIG)
059406,000614: 27,3511 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059407,000615: 27,3512 41366 SQRT DMP
059408,000616: 27,3513 31761 PI/16 # PI (-4)
059409,000617: 27,3514 77615 DAD
059410,000618: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
059411,000619: # M:(-14-NA)
059412,000620: 27,3515 45257 SL* DSU
059413,000621: 27,3516 57577 0 -1,2
059414,000622: 27,3517 00013 TFFDELQ # Q2-Q1 E: (-16) M: (-15)
059415,000623: 27,3520 53605 DMP SL*
059416,000624: 27,3521 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059417,000625: 27,3522 57601 0 -3,2
059418,000626: 27,3523 52057 SL* GOTO
059419,000627: 27,3524 57602 0 -4,2
059420,000628: 27,3525 57432 ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
059421,000629:
![]() |
Page 1385 |
059423,000631:
059424,000632: # PROGRAM NAME: T(X) DATE: 01.17.67
059425,000633: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
059426,000634: # MOD BY: RR BAIRNSFATHER
059427,000635:
059428,000636: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
059429,000637: # CALCTPER TO APPROXIMATE THE SERIES
059430,000638: # 2 3
059431,000639: # 1/3 -X/5 +X /7 -X /9 ...
059432,000640:
059433,000641: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
059434,000642: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1
059435,000643:
059436,000644: # ALSO X IS NEG FOR HYPERBOLIC ORBITS
059437,000645: # X = 0 FOR PARABOLIC ORBITS
059438,000646: # X IS POSITIVE FOR ELLIPTIC ORBITS
059439,000647: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
059440,000648: # DEVIATION FROM THE SERIES OF 2 E-5 (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
059441,000649: # MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1). )
059442,000650:
059443,000651: # CALLING SEQUENCE: RTB
059444,000652: # T(X)
059445,000653: # C(MPAC) = X
059446,000654:
059447,000655: # SUBROUTINES CALLED: NONE
059448,000656:
059449,000657: # NORMAL EXIT MODE: TC DANZIG
059450,000658:
059451,000659: # ALARMS: NONE
059452,000660:
059453,000661: # OUTPUT: C(MPAC) = T(X)
059454,000662:
059455,000663: # ERASABLE INITIALIZATION REQUIRED:
059456,000664: # C(MPAC) = X
059457,000665:
059458,000666: # DEBRIS: NONE
059459,000667:
059460,000668: 27,3526 07171 T(X) TC POLY
059461,000669: 27,3527 00004 DEC 4 B-14 # N-1
059462,000670: 27,3530 12525 12525 2DEC 3.333333333 E-1
059463,000671: 27,3532 71463 57703 2DEC* -1.999819135 E-1*
059464,000672: 27,3534 04423 17645 2DEC* 1.418148467 E-1*
059465,000673: 27,3536 74604 43667 2DEC* -1.01310997 E-1*
059466,000674: 27,3540 01626 37256 2DEC* 5.609004986 E-2*
059467,000675: 27,3542 77404 52071 2DEC* -1.536156925 E-2*
059468,000676:
059469,000677: 27,3544 06030 ENDT(X) TC DANZIG
059470,000678:
059471,000679: 27,3545 27,3544 TCDANZIG = ENDT(X)
059472,000680:
![]() |
Page 1386 |
059474,000682: # TFF CONSTANTS
059475,000683:
059476,000684: 34,2000 SETLOC TOF-FF1
059477,000685: 34,2000 BANK
059478,000686:
059479,000687: 34,3756 COUNT* $$/TFF
059480,000688: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
059481,000689:
![]() |
(JL,2009-08-21) The Artemis072 page scan for the following three lines is garbled (lines 0660, 0661, 0662 in the original printout), due to what looks like overprinting in the original printout. I checked the generated octal (which is not overprinted) against the Comanche055 listing and they are both identical. |
059486,000694:
059487,000695: # MUE = 3.990815471 E10 M CUBE/CS SQ
059488,000696: # RTMUE = 1.997702549 E5 B-18* MODIFIED EARTH MU
059489,000697:
059490,000698: 34,3756 24775 30424 1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU
059491,000699:
![]() |
(JL,2009-08-21) End of garbled section. |
059493,000701:
059494,000702: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
059495,000703: # MUM = 4.902778 E8 M CUBE/CS SQ
059496,000704: # RTMUM 2DEC* 2.21422176 E4 B-18*
059497,000705: 34,3760 06220 37553 PI/16 2DEC 3.141592653 B-4
059498,000706: 34,3762 37777 37700 LIM(-22) 2OCT 3777737700 # 1.0 -B(-22)
059499,000707: 34,3764 00000 00100 DP(-22) 2OCT 0000000100 # B(-22)
059500,000708: 34,3766 04000 00000 DP2(-3) 2DEC 1 B-3
059501,000709: 34,3770 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16
059502,000710:
059503,000711: # RPAD1 2DEC 6373338 B-29 M (-29) = 20 909 901.57 FT
059504,000712: 34,3772 22,3172 RPAD1 = RPAD
059505,000713: 34,3772 26,3343 NEARONE EQUALS DPPOSMAX
059506,000714: 34,3772 26,3335 TFFZEROS EQUALS HI6ZEROS
059507,000715: 34,3772 26,3325 TFF1/4 EQUALS HIDP1/4
End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc