Source Code
![]() |
These source-code files were from the printout at the MIT Museum, with many thanks
to Deborah Douglas, the Museum's Curator of Science and Technology, for releasing
it to us. The printout was digitally photographed by Paul Fjeld. A team of
volunteers transcribed the source code manually from these images or, where
appropriate, modified already-transcribed but similar source Colossus 249 (Apollo 9)
source code to agree with the images from the printout. Note that the page images
presented online are of reduced quality, and that higher-quality images
are 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 055 OF AGC PROGRAM COMANCHE BY NASA 2021113-051 10:28 APR. 1,1969Note that the date is the date of the printout, not the date of the program revision. |
059754,000002: ## Copyright: Public domain.
059755,000003: ## Filename: TIME_OF_FREE_FALL.agc
059756,000004: ## Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
059757,000005: ## It is part of the source code for the Command Module's (CM)
059758,000006: ## Apollo Guidance Computer (AGC), for Apollo 11.
059759,000007: ## Assembler: yaYUL
059760,000008: ## Contact: Ron Burkey <info@sandroid.org>.
059761,000009: ## Website: www.ibiblio.org/apollo.
059762,000010: ## Pages: 1373-1388
059763,000011: ## Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
059764,000012: ## from the Colossus249/ file of the same
059765,000013: ## name, using Comanche055 page images.
059766,000014: ## 2010-08-29 JL Fixed indentation, whitespace.
059767,000015: ## 2016-12-22 RSB Proofed comment text using octopus/ProoferComments
059768,000016: ## and corrected the errors found.
059769,000017: ## 2017-01-20 RSB Fixed comment-text errors noted while diff'ing
059770,000018: ## vs Colossus 249.
059771,000019: ## 2017-03-14 RSB Comment-text fixes noted in proofing Luminary 116.
059772,000020:
059773,000021: ## This source code has been transcribed or otherwise adapted from digitized
059774,000022: ## images of a hardcopy from the MIT Museum. The digitization was performed
059775,000023: ## by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
059776,000024: ## thanks to both. The images (with suitable reduction in storage size and
059777,000025: ## consequent reduction in image quality as well) are available online at
059778,000026: ## www.ibiblio.org/apollo. If for some reason you find that the images are
059779,000027: ## illegible, contact me at info@sandroid.org about getting access to the
059780,000028: ## (much) higher-quality images which Paul actually created.
059781,000029: ##
059782,000030: ## Notations on the hardcopy document read, in part:
059783,000031: ##
059784,000032: ## Assemble revision 055 of AGC program Comanche by NASA
059785,000033: ## 2021113-051. 10:28 APR. 1, 1969
059786,000034: ##
059787,000035: ## This AGC program shall also be referred to as
059788,000036: ## Colossus 2A
059789,000037:
![]() |
Page 1373 |
059791,000039: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
059792,000040: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE AND 1/SQRT(MU) AT THE
059793,000041: # APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
059794,000042:
059795,000043: # EARTH ORIGIN POSITION -29 METERS
059796,000044: # VELOCITY -7 METERS/CENTISECOND
059797,000045: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
059798,000046:
059799,000047: # MOON ORIGIN POSITION -27 METERS
059800,000048: # VELOCITY -5 METERS/CENTISECONDS
059801,000049: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
059802,000050:
059803,000051: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
059804,000052: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
059805,000053: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
059806,000054:
059807,000055: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
059808,000056: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
059809,000057: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
059810,000058:
059811,000059: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
059812,000060: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
059813,000061:
059814,000062: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
059815,000063:
059816,000064: # BELOW E: IS USED FOR EARTH ORIGIN SCALE
059817,000065: # M: IS USED FOR MOON ORIGIN SCALE
059818,000066:
059819,000067: # TFFSW = 119D BIT1 0 = CALCTFF 1 = CALCTPER
059820,000068: 23,3772 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
059821,000069: 23,3772 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
059822,000070: # RPER = 14D PERIGEE RADIUS M E: (-29) M: (-27)
059823,000071: 23,3772 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
059824,000072: # SDELF/2 SIN(THETA) /2
059825,000073: 23,3772 CDELF/2 = 14D # COS(THETA) /2
059826,000074: # RAPO = 16D APOGEE RADIUS M E: (-29) M: (-27)
059827,000075: 23,3772 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
059828,000076: # M: (-27+NR)
059829,000077: 23,3772 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
059830,000078: 23,3772 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
059831,000079: 23,3772 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
059832,000080: # M: (-20-2 NA)
059833,000081: 23,3772 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
059834,000082: 23,3772 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
059835,000083: 23,3772 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
059836,000084: # M: (-36+2 NR)
059837,000085: 23,3772 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
059838,000086: 23,3772 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
059839,000087: # M: (-27+NR)
059840,000088: 23,3772 TFFX = 34D
059841,000089: 23,3772 TFFTEM = 36D # TEMPORARY
![]() |
Page 1374 |
059843,000091: # REGISTERS S1, S2 ARE UNTOUCHED BY ANY TFF SUBROUTINE
059844,000092: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
059845,000093: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
059846,000094: # SUBROUTINES.
059847,000095: # -NR C(X1) = NORM COUNT OF RMAG
059848,000096: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
059849,000097:
![]() |
Page 1375 |
059851,000099: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
059852,000100: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
059853,000101: # MOD BY: RR BAIRNSFATHER
059854,000102: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
059855,000103: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
059856,000104: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
059857,000105:
059858,000106: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
059859,000107: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
059860,000108: # THE EQUATIONS ARE
059861,000109: # - - -
059862,000110: # H = RN*VN ANGULAR MOMENTUM
059863,000111: # - -
059864,000112: # LCP = H.H / MU SEMI LATUS RECTUM
059865,000113: # - -
059866,000114: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
059867,000115:
059868,000116: # AND ALFA IS POS FOR ELLIPTIC ORBITS
059869,000117: # 0 FOR PARABOLIC ORBITS
059870,000118: # NEG FOR HYPERBOLIC ORBITS.
059871,000119: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
059872,000120:
059873,000121: # CALLING SEQUENCE:
059874,000122: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
059875,000123: # 1/SQRT(MU). PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
059876,000124: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
059877,000125: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
059878,000126: # TFF ROUTINES.
059879,000127:
059880,000128: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
059881,000129:
059882,000130: # TO SPECIFY MU: DLOAD CALL IF MU ALREADY STORED: CALL
059883,000131: # YOURMU 1/RTMU E:(17) M:(14) TFFCONMU
059884,000132: # TFFCONIC
059885,000133: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
059886,000134:
059887,000135: # SUBROUTINES CALLED: NONE
059888,000136:
059889,000137: # NORMAL EXIT MODES: RVQ
059890,000138:
059891,000139: # ALARMS: NONE
059892,000140:
059893,000141: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
059894,000142: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
059895,000143: # NRMAG E:(-29+NR) M RMAG, NORMALIZED
059896,000144: # M:(-27+NR)
059897,000145: # X1 -NR, NORM COUNT
059898,000146: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC
059899,000147: # M:(-36+2NR)
059900,000148: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
059901,000149: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORMLIZED. FOR VGAMCALC
059902,000150: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
059903,000151: # M:(24-NR)
059904,000152: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
059905,000153: # M:(9+NA)
![]() |
Page 1376 |
059907,000155: # X2 -NA, NORM COUNT
059908,000156: # TFF1/ALF E:(-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
059909,000157: # M:(-20-2NA)
059910,000158: # PUSHLOC AT PDL+0
059911,000159:
059912,000160: # THE FOLLOWING IS STORED IN GENERAL ERASABLE
059913,000161: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
059914,000162:
059915,000163: # ERASABLE INITIALIZATION REQUIRED:
059916,000164: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
059917,000165: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
059918,000166: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
059919,000167:
059920,000168: # DEBRIS: QPRET, PDL+0 ... PDL+3
059921,000169:
059922,000170: 33,3776 BANK 33
059923,000171: 27,2000 SETLOC TOF-FF
059924,000172: 27,2000 BANK
059925,000173:
059926,000174: 27,2757 COUNT* $$/TFF
059927,000175:
059928,000176: 27,2757 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14)
059929,000177:
059930,000178: 27,2760 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
059931,000179: 27,2761 02327 RONE # SAVED RN. M E:(-29) M:(-27)
059932,000180: 27,2762 77725 PDDL # UR/2 TO PDL+0, +5
059933,000181: 27,2763 00045 36D # MAGNITUDE
059934,000182: 27,2764 00015 STORE RMAG1 # M E:(-29) M:(-27)
059935,000183:
059936,000184: 27,2765 77701 NORM
059937,000185: 27,2766 00047 X1 # -NR
059938,000186: 27,2767 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
059939,000187: 27,2770 02335 VONE # SAVED VN. M/CS E:(-7) M:(-5)
059940,000188: 27,2771 77761 VXSC
059941,000189: 27,2772 00037 TFF/RTMU # E:(17) M:(14)
059942,000190: 27,2773 02372 STORE VONE' # VN/SQRT(MU) E:(10) M:(9)
059943,000191:
059944,000192: 27,2774 47361 VXSC VXV
059945,000193: 27,2775 00041 NRMAG # E:(-29+NR) M:(-27+NR)
059946,000194: # UR/2 FROM PDL
059947,000195: 27,2776 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
059948,000196: 27,2777 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
059949,000197: # SAVE ALSO FOR VGAMCALC
059950,000198: 27,3000 15325 TFF1/4
059951,000199: 27,3001 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
059952,000200: 27,3002 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
059953,000201: 27,3003 02372 VONE' # SAVED VN. E:(10) M:(9)
059954,000202: 27,3004 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
059955,000203: 27,3005 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
059956,000204: # SAVE FOR VGAMCALC
059957,000205: 27,3006 43257 SR* DAD
![]() |
Page 1377 |
059959,000207: 27,3007 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
059960,000208: 27,3010 77626 STADR
059961,000209: # 2/RMAG FROM PDL+2
059962,000210: 27,3011 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
059963,000211: 27,3012 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
059964,000212: 27,3013 20173 0 -6,1
059965,000213: 27,3014 75446 ABS SQRT # E:(10) M:(9)
059966,000214: 27,3015 77701 NORM
059967,000215: 27,3016 00050 X2 # X2 = -NA
059968,000216: 27,3017 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
059969,000217: 27,3020 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK
059970,000218: # ALFA FROM PDL+2 E:(20) M:(18)
059971,000219: 27,3021 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
059972,000220: 27,3022 57024 +2
059973,000221: 27,3023 15325 TFF1/4
059974,000222: 27,3024 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059975,000223: 27,3025 77616 DUMPCNIC RVQ
059976,000224: # 39 W
![]() |
Page 1378 |
059978,000226: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
059979,000227: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
059980,000228: # MOD BY: RR BAIRNSFATHER
059981,000229: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
059982,000230: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
059983,000231: # ALSO IMPROVE ACCURACY OF RAPO.
059984,000232:
059985,000233: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
059986,000234: # APOGEE RADIUS FOR A GENERAL CONIC.
059987,000235: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
059988,000236: # RP = P/(1+E) RA = (1+E) / ALFA
059989,000237: # WHERE 2
059990,000238: # E = 1 - P ALFA
059991,000239: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
059992,000240: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
059993,000241: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
059994,000242: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
059995,000243:
059996,000244: # THIS SUBROUTINE REQUIRES THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
059997,000245:
059998,000246: # CALLING SEQUENCE: CALL
059999,000247: # TFFRP/RA
060000,000248: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
060001,000249: # C(MPAC) UNSPECIFIED
060002,000250:
060003,000251: # SUBROUTINES CALLED: NONE
060004,000252:
060005,000253: # NORMAL EXIT MODE: RVQ
060006,000254: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
060007,000255: # OTHERWISE, RAPO = POSMAX.
060008,000256:
060009,000257: # ALARMS: NONE
060010,000258:
060011,000259: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
060012,000260: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
060013,000261: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
060014,000262: # PUSHLOC AT PDL+0
060015,000263:
060016,000264: # ERASABLE INITIALIZATION REQUIRED:
060017,000265: # TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
060018,000266: # M:(24-NR)
060019,000267: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
060020,000268: # M:(-36+2NR)
060021,000269: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
060022,000270: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
060023,000271:
060024,000272: # DEBRIS: QPRET, PDL+0 ... PDL+1
060025,000273:
![]() |
Page 1379 |
060027,000275: 27,3026 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
060028,000276: 27,3026 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
060029,000277:
060030,000278: 27,3026 41345 TFFRP/RA DLOAD DMP
060031,000279: 27,3027 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
060032,000280: 27,3030 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
060033,000281: 27,3031 57457 SR* DCOMP # ALFA P (-12+NR)
060034,000282: 27,3032 20571 0 -8D,1 # ALFA P (-4)
060035,000283: 27,3033 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
060036,000284: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
060037,000285: 27,3034 17366 DP2(-4)
060038,000286: 27,3035 43366 SQRT DAD # E SQ = (1- P ALFA) (-4)
060039,000287: 27,3036 15325 TFF1/4
060040,000288: 27,3037 55206 PUSH BDDV # (1+E) (-2) TO PDL+0
060041,000289: 27,3040 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
060042,000290: 27,3041 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
060043,000291: 27,3042 20601 0,1 # X1=-NR
060044,000292: 27,3043 20572 0 -7,1 # (EFFECTIVE SL)
060045,000293: 27,3044 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
060046,000294: # (1+E) (-2) FROM PDL+0
060047,000295: 27,3045 41005 DMP BOVB
060048,000296: 27,3046 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
060049,000297: 27,3047 57352 TCDANZIG # CLEAR OVFIND, IF ON.
060050,000298: 27,3050 53654 BZE SL*
060051,000299: 27,3051 57060 MAXRA # SET POSMAX, IF ALFA=0
060052,000300: 27,3052 57603 0 -5,2 # -5+NA
060053,000301: 27,3053 40057 SL* BOV
060054,000302: 27,3054 57576 0,2
060055,000303: 27,3055 57060 MAXRA # SET POSMAX IF OVFL.
060056,000304: 27,3056 77644 BPL # CONTINUE WITH VALID RAPO.
060057,000305: 27,3057 57062 +3
060058,000306: 27,3060 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
060059,000307: 27,3061 17372 NEARONE # POSMAX AS A TAG.
060060,000308: 27,3062 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
060061,000309: 27,3063 77616 DUMPRPRA RVQ
060062,000310: # 30 W
![]() |
Page 1380 |
060064,000312: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
060065,000313: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
060066,000314: # MOD BY: RR BAIRNSFATHER
060067,000315: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
060068,000316: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
060069,000317: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
060070,000318: # MOD NO: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
060071,000319: # MOD NO: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
060072,000320:
060073,000321: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
060074,000322: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR
060075,000323: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
060076,000324: # THE EQUATIONS ARE
060077,000325:
060078,000326: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
060079,000327: # - -
060080,000328: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
060081,000329:
060082,000330: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
060083,000331:
060084,000332: # WHERE, IF INBOUND
060085,000333: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA
060086,000334: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
060087,000335:
060088,000336: # AND, IF OUTBOUND
060089,000337: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
060090,000338: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE
060091,000339:
060092,000340: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
060093,000341: # THEN X = ALFA Z Z
060094,000342: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
060095,000343: # EXCEPT IF ALFA PNZ, AND IF TFF NEG,
060096,000344: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
060097,000345: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
060098,000346: # THEN X = 1/ALFA Z Z
060099,000347: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
060100,000348: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
060101,000349: # 2 3 2
060102,000350: # 1/3 - X/5 + X /7 - X /9 ... (X < 1.0)
060103,000351:
060104,000352: # CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE
060105,000353: # CALL CALL
060106,000354: # CALCTFF CALCTPER
060107,000355: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
060108,000356: # FOR EITHER, E:(-29) M:(-27)
060109,000357: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D.
![]() |
Page 1381 |
060111,000359:
060112,000360: # SUBROUTINES CALLED: T(X), VIA RTB
060113,000361:
060114,000362: # NORMAL EXIT MODE: RVQ
060115,000363: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
060116,000364: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
060117,000365: # B. (THIS OPTION IS NO LONGER USED.)
060118,000366: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
060119,000367: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
060120,000368:
060121,000369: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
060122,000370: # TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
060123,000371: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
060124,000372: # M:(-27+NR)
060125,000373: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
060126,000374: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
060127,000375: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
060128,000376: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
060129,000377: # TFFQ1 E:(-16) M:(-15) PDL 14D
060130,000378: # TFFDELQ E:(-16) M:(-15) PDL 10D
060131,000379: # PUSHLOC AT PDL+0
060132,000380:
060133,000381: # ERASABLE INITIALIZATION REQUIRED:
060134,000382: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
060135,000383: # VONE' E:(+10) M:(+9) VN/SQRT(MU) LEFT BY TFF/CONIC
060136,000384: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
060137,000385: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
060138,000386:
060139,000387: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
060140,000388: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
060141,000389: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
060142,000390: # M:(-27+NR)
060143,000391: # X1 -NR, NORM COUNT LEFT BY TFFCONIC
060144,000392: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
060145,000393: # M:(-36+2NR)
060146,000394: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
060147,000395: # M:(24-NR)
060148,000396: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
060149,000397: # M:(9+NA)
060150,000398: # X2 -NA, NORM COUNT LEFT BY TFFCONIC
060151,000399: # TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
060152,000400: # M:(-20-2NA)
060153,000401:
060154,000402: # DEBRIS: QPRET, PDL+0 ... PDL+3
060155,000403: # RTERM E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
060156,000404: # RAPO E:(-29) M:(-27) PDL 16D (=NRTERM)
060157,000405: # RPER E:(-29) M:(-27) PDL 14D (=TFFQ1)
060158,000406:
![]() |
Page 1382 |
060160,000408: 27,3064 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC
060161,000409: 27,3065 03436 TFFSW
060162,000410: 27,3066 57071 +3
060163,000411: 27,3067 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
060164,000412: 27,3070 03676 TFFSW
060165,000413: 27,3071 00023 +3 STORE RTERM # E:(-29) M:(-27)
060166,000414: 27,3072 77657 SL*
060167,000415: 27,3073 20201 0,1 # X1=-NR
060168,000416: 27,3074 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR)
060169,000417: 27,3075 44205 DMP BDSU
060170,000418: 27,3076 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
060171,000419: 27,3077 15325 TFF1/4
060172,000420: 27,3100 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
060173,000421: 27,3101 00021 NRTERM # E:(-29+NR) M:(-27+NR)
060174,000422: 27,3102 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
060175,000423: # E:(-32+NR) M:(-30+NR)
060176,000424: 27,3103 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
060177,000425: 27,3104 20573 0 -6,1 # X1 = -NR
060178,000426: 27,3105 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
060179,000427: # RTERM(2-ALFA RTERM) FROM PDL +2
060180,000428: # E:(-32+NR) M:(-30+NR)
060181,000429: 27,3106 77657 SR* # LEAVE E:(-32) M:(-30)
060182,000430: 27,3107 20601 0,1 # X1 = -NR
060183,000431: 27,3110 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH
060184,000432: 27,3111 03756 TFFSW
060185,000433: 27,3112 57114 +2 # IF TFF, CONTINUE
060186,000434: 27,3113 15335 TFFZEROS # IF TPER, SET Q2 = 0
060187,000435: 27,3114 75440 +2 BMN SQRT # E:(-16) M:(-15)
060188,000436: 27,3115 57247 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
060189,000437: # RESET PDL, SET TFF=POSMAX, AND EXIT.
060190,000438:
060191,000439: 27,3116 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
060192,000440: 27,3117 57352 TCDANZIG # ANY PORT IN A STORM.
060193,000441: 27,3120 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15)
060194,000442: 27,3121 02372 VONE' # VN/SQRT(MU) E:(10) M:(9)
060195,000443: 27,3122 52441 DOT SL3
060196,000444: 27,3123 02327 RONE # SAVED RN. E:(-29) M:(-27)
060197,000445: 27,3124 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
060198,000446: # E:(-16) M:(-15)
060199,000447: 27,3125 44240 BMN BDSU
060200,000448: 27,3126 57147 INBOUND # USE ALTERNATE Z
060201,000449: 27,3127 00045 TFFTEM # Q2 E:(-16) M:(-15)
060202,000450:
060203,000451: # OUTBOUND Z CALC CONTINUES HERE
060204,000452:
060205,000453: 27,3130 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15)
060206,000454: 27,3131 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
060207,000455: 27,3132 44205 DMP BDSU
![]() |
Page 1383 |
060209,000457: 27,3133 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR)
060210,000458: # (2-RTERM ALFA) (-3) FROM PDL+0
060211,000459: 27,3134 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16)
060212,000460: # M:(-3) OR (-15)
060213,000461: 27,3135 40015 DAD BOV # INDETERMINANCY TEST
060214,000462: 27,3136 17360 LIM(-22) # =1.0-B(-22)
060215,000463: 27,3137 57160 TFFXTEST # GO IF DEN >/= B(-22)
060216,000464: 27,3140 65345 DLOAD PDDL # SET DEN=0 OTHERWISE
060217,000465: 27,3141 15335 TFFZEROS
060218,000466: # XCH ZERO WITH PDL+0
060219,000467: 27,3142 57545 DLOAD DCOMP
060220,000468: 27,3143 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
060221,000469: 27,3144 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
060222,000470: 27,3145 57254 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
060223,000471:
060224,000472: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
060225,000473: 27,3146 77616 DUMPTFF1 RVQ # RETURN TFF =0
060226,000474:
060227,000475: # INBOUND Z CALC CONTINUES HERE
060228,000476:
060229,000477: 27,3147 77745 INBOUND DLOAD # RESET PDL+0
060230,000478: 27,3150 45345 DLOAD DSU # ALTERNATE Z CALC
060231,000479: 27,3151 00023 RTERM # E:(-29) M:(-27)
060232,000480: 27,3152 00015 RMAG1 # E:(-29) M:(-27)
060233,000481: 27,3153 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27)
060234,000482: 27,3154 00045 TFFTEM # Q2 E:(-16) M:(-15)
060235,000483: 27,3155 52015 DAD GOTO
060236,000484: 27,3156 00017 TFFQ1 # Q1 E:(-16) M:(-15)
060237,000485: 27,3157 57134 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15)
060238,000486:
060239,000487: 27,3160 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2)) E:(-3) OR (-16)
060240,000488: # M:(-3) OR (-15)
060241,000489: 27,3161 17362 DP(-22) # RESTORE ABS(DEN) TO MPAC
060242,000490: 27,3162 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
060243,000491: 27,3163 53605 DMP SR*
060244,000492: 27,3164 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
060245,000493: 27,3165 57201 0 -3,2 # X2=-NA
060246,000494: 27,3166 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
060247,000495: # M:(-3) OR (-15)
060248,000496: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
060249,000497: # M:(-3) OR (-15)
060250,000498: 27,3167 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
060251,000499: 27,3170 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
060252,000500: 27,3171 57252 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
060253,000501:
060254,000502: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
060255,000503:
060256,000504: 27,3172 45471 DDV STADR
060257,000505: # DEN FROM PDL+0 E:(-3) OR (-16)
060258,000506: # M:(-3) OR (-15)
060259,000507: 27,3173 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
![]() |
Page 1384 |
060261,000509: # E:(-13) M:(-12)
060262,000510: 27,3174 63406 PUSH DSQ # Z TO PDL+0
060263,000511: 27,3175 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24)
060264,000512: 27,3176 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
060265,000513: 27,3177 75261 SL SIGN
060266,000514: 27,3200 20206 5
060267,000515: 27,3201 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
060268,000516: 27,3202 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR)
060269,000517: # (ARG IS USED IN TFF/TRIG)
060270,000518: # ZSQ FROM PDL+2 E:(-26) M:(-24)
060271,000519: 27,3203 41206 PUSH DMP # RESTORE PUSH LOC
060272,000520: 27,3204 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
060273,000521: 27,3205 77657 SL*
060274,000522: 27,3206 20201 0,1 # X1=-NR
060275,000523: 27,3207 00043 STORE TFFX # X
060276,000524: 27,3210 41234 RTB DMP
060277,000525: 27,3211 57334 T(X) # POLY
060278,000526: # ZSQ FROM PDL+2 E:(-26) M:(-24)
060279,000527: 27,3212 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27)
060280,000528: 27,3213 00023 RTERM # RTERM E:(-29) M:(-27)
060281,000529: 27,3214 41215 DAD DMP
060282,000530: 27,3215 00015 RMAG1 # E:(-29) M:(-27)
060283,000531: # Z FROM PDL+0 E:(-13) M:(-12)
060284,000532: 27,3216 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42)
060285,000533: 27,3217 57240 ENDTFF # (NO PUSH UP)
060286,000534: 27,3220 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0
060287,000535: 27,3221 00017 TFFQ1 # Q1 FOR GONEPAST TEST
060288,000536: 27,3222 71244 BPL DLOAD # GONE PAST ?
060289,000537: 27,3223 57244 NEGTFF # YES. TFF < 0.
060290,000538: 27,3224 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
060291,000539: 27,3225 51076 DCOMP BPL # ALFA > 0 ?
060292,000540: 27,3226 57244 NEGTFF # NO. TFF IS NEGATIVE.
060293,000541:
060294,000542: # CORRECT FOR ORBITAL PERIOD.
060295,000543:
060296,000544: 27,3227 77676 DCOMP # YES. CORRECT FOR ORB PERIOD.
060297,000545: 27,3230 56205 DMP DDV
060298,000546: 27,3231 17356 PI/16 # 2 PI (-5)
060299,000547: 27,3232 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
060300,000548: 27,3233 53657 SL* SL*
060301,000549: 27,3234 57602 0 -4,2 # X2=-NA
060302,000550: 27,3235 57602 0 -4,2
060303,000551: 27,3236 43257 SL* DAD
060304,000552: 27,3237 57576 0,2
060305,000553: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
060306,000554: 27,3240 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
060307,000555: 27,3241 00037 TFF/RTMU # E:(17) M:(14)
060308,000556: 27,3242 57250 MAXTFF # SET POSMAX IF OVFL.
060309,000557:
060310,000558: 27,3243 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
060311,000559:
![]() |
Page 1385 |
060313,000561: 27,3244 77745 NEGTFF DLOAD
060314,000562: # TFF SQRT(MU) FROM PDL+0, NEGATIVE.
060315,000563: 27,3245 77650 GOTO
060316,000564: 27,3246 57240 ENDTFF
060317,000565:
060318,000566: 27,3247 77745 MAXTFF1 DLOAD # RESET PDL
060319,000567: 27,3250 43545 MAXTFF DLOAD RVQ
060320,000568: 27,3251 17372 NEARONE
060321,000569:
060322,000570: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
060323,000571:
060324,000572: # NUM FROM TFFX. E:(-16) OR (-29)
060325,000573: # M:(-15) OR (-27)
060326,000574: 27,3252 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
060327,000575: 27,3253 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0
060328,000576: # DEN FROM PDL+0 E:(-3)/( 16) M:(-3)/(-15)
060329,000577: # N/D TO PDL+0 E:(11) M:(10)
060330,000578: 27,3254 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
060331,000579: 27,3255 00045 TFFTEM # Q2 E:(-16) M:(-15)
060332,000580: 27,3256 00017 TFFQ1 # Q1 E:(-16) M:(-15)
060333,000581: 27,3257 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15)
060334,000582: # D/N FROM PDL+0
060335,000583: 27,3260 77626 STADR
060336,000584: 27,3261 77732 STORE TFFTEM # D/N E:(11) M:(10)
060337,000585: 27,3262 53605 DMP SL*
060338,000586: 27,3263 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
060339,000587: 27,3264 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA)
060340,000588: 27,3265 41206 PUSH DMP # TO PDL+0
060341,000589: 27,3266 00045 TFFTEM # 1/Z E:(11) M:(10)
060342,000590: 27,3267 41057 SL* BOVB
060343,000591: 27,3270 57576 0,2 # X2= -NA
060344,000592: 27,3271 45712 SIGNMPAC # IN CASE X= 1.0, CONTINUE
060345,000593: 27,3272 00043 STORE TFFX # X=1/ALFA ZSQ
060346,000594: 27,3273 41234 RTB DMP
060347,000595: 27,3274 57334 T(X) # POLY
060348,000596: 27,3275 00043 TFFX
060349,000597: 27,3276 45242 SR3 DSU
060350,000598: 27,3277 17364 DP2(-3)
060351,000599: 27,3300 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA)
060352,000600: # M:(-14-NA)
060353,000601: # 1/ALFA Z FROM PDL+0 E:(-11-NA)
060354,000602: # M:(-10-NA)
060355,000603: 27,3301 41345 DLOAD DMP # GET SIGN FOR SDELF
060356,000604: 27,3302 00045 TFFTEM # 1/Z E:(11) M:(10)
060357,000605: 27,3303 00015 RMAG1 # E:(-29) M:(-27)
060358,000606: 27,3304 43312 SL2 DAD
060359,000607: 27,3305 00017 TFFQ1 # Q1 E:(-16) M:(-15)
060360,000608: 27,3306 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15
060361,000609: 27,3307 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
060362,000610: 27,3310 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG.
![]() |
Page 1386 |
060364,000612: 27,3311 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
060365,000613: 27,3312 57575 1,2 # X2=-NA
060366,000614: 27,3313 53765 SIGN SL*
060367,000615: 27,3314 00045 TFFTEM # AFFIX SIGN FOR SDELF
060368,000616: 27,3315 57576 0,2
060369,000617: 27,3316 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
060370,000618: # (ARG FOR USE IN TFF/TRIG)
060371,000619: 27,3317 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
060372,000620: 27,3320 41366 SQRT DMP
060373,000621: 27,3321 17356 PI/16 # PI (-4)
060374,000622: 27,3322 77615 DAD
060375,000623: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
060376,000624: # M:(-14-NA)
060377,000625: 27,3323 45257 SL* DSU
060378,000626: 27,3324 57577 0 -1,2
060379,000627: 27,3325 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15)
060380,000628: 27,3326 53605 DMP SL*
060381,000629: 27,3327 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
060382,000630: 27,3330 57601 0 -3,2
060383,000631: 27,3331 52057 SL* GOTO
060384,000632: 27,3332 57602 0 -4,2
060385,000633: 27,3333 57240 ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
060386,000634:
![]() |
Page 1387 |
060388,000636: # PROGRAM NAME: T(X) DATE: 01.17.67
060389,000637: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
060390,000638: # MOD BY: RR BAIRNSFATHER
060391,000639:
060392,000640: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
060393,000641: # CALCTPER TO APPROXIMATE THE SERIES
060394,000642: # 2 3
060395,000643: # 1/3 -X/5 +X /7 -X /9 ...
060396,000644:
060397,000645: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
060398,000646: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1
060399,000647:
060400,000648: # ALSO X IS NEG FOR HYPERBOLIC ORBITS
060401,000649: # X = 0 FOR PARABOLIC ORBITS
060402,000650: # X IS POSITIVE FOR ELLIPTIC ORBITS
060403,000651:
060404,000652: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
060405,000653: # DEVIATION FROM THE SERIES OF 2 E-5 (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
060406,000654: # MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).)
060407,000655:
060408,000656: # CALLING SEQUENCE: RTB
060409,000657: # T(X)
060410,000658: # C(MPAC) = X
060411,000659:
060412,000660: # SUBROUTINES CALLED: NONE
060413,000661:
060414,000662: # NORMAL EXIT MODE: TC DANZIG
060415,000663:
060416,000664: # ALARMS: NONE
060417,000665:
060418,000666: # OUTPUT: C(MPAC) = T(X)
060419,000667:
060420,000668: # ERASABLE INITIALIZATION REQUIRED:
060421,000669: # C(MPAC) = X
060422,000670:
060423,000671: # DEBRIS: NONE
060424,000672:
060425,000673: 27,3334 07171 T(X) TC POLY
060426,000674: 27,3335 00004 DEC 4 B-14 # N-1
060427,000675: 27,3336 12525 12525 2DEC 3.333333333 E-1
060428,000676: 27,3340 71463 57703 2DEC* -1.999819135 E-1*
060429,000677: 27,3342 04423 17645 2DEC* 1.418148467 E-1*
060430,000678: 27,3344 74604 43667 2DEC* -1.01310997 E-1*
060431,000679: 27,3346 01626 37256 2DEC* 5.609004986 E-2*
060432,000680: 27,3350 77404 52071 2DEC* -1.536156925 E-2*
060433,000681:
060434,000682: 27,3352 06030 ENDT(X) TC DANZIG
060435,000683:
060436,000684: 27,3353 27,3352 TCDANZIG = ENDT(X)
060437,000685:
![]() |
Page 1388 |
060439,000687: # TFF CONSTANTS
060440,000688:
060441,000689: 32,3770 BANK 32
060442,000690:
060443,000691: 27,2000 SETLOC TOF-FF1
060444,000692: 27,2000 BANK
060445,000693:
060446,000694: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
060447,000695: # MUE = 3.990815471 E10 M CUBE/CS SQ
060448,000696: # RTMUE = 1.997702549 E5 B-18* MODIFIED EARTH MU
060449,000697:
060450,000698: 27,3353 24775 30424 1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU
060451,000699:
060452,000700: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
060453,000701: # MUM = 4.902778 E8 M CUBE/CS SQ
060454,000702: # RTMUM 2DEC* 2.21422176 E4 B-18*
060455,000703: 27,3355 06220 37553 PI/16 2DEC 3.141592653 B-4
060456,000704: 27,3357 37777 37700 LIM(-22) 2OCT 3777737700 # 1.0 -B(-22)
060457,000705: 27,3361 00000 00100 DP(-22) 2OCT 0000000100 # B(-22)
060458,000706: 27,3363 04000 00000 DP2(-3) 2DEC 1 B-3
060459,000707: 27,3365 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16
060460,000708:
060461,000709: # RPAD1 2DEC 6373338 B-29 M (-29) = 20909901.57 FT
060462,000710: 27,3367 22,3151 RPAD1 = RPAD
060463,000711:
060464,000712: 27,3367 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M
060465,000713: 27,3371 37777 37777 NEARONE 2DEC .999999999
060466,000714: 27,3373 26,3334 TFFZEROS EQUALS HI6ZEROS
060467,000715: 27,3373 26,3324 TFF1/4 EQUALS HIDP1/4
End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc