Source Code
![]() |
This is the source-code for the Apollo 9 Command Module's Guidance Computer.
These files were derived originally from the scan from MIT's Dibner Institute's
now-discontinued website titled "History of Recent Science and Technology", which
in turn was originally created by Gary Neff, though his high-quality scans were
unfortunately reduced in legibility when presented online.
The markings on the front of the
printout imply that it was the original AGC developer Norm Brodeur's copy.
A scan by Ron Burkey has superceded it, made from a more-legible copy from the collection of original
AGC developer Fred Martin. The source code was transcribed from
those images by Ron Burkey. 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:ASSEMBLE REVISION 249 OF AGC PROGRAM COLOSSUS BY NASA 2021111-041 20'35 OCT. 28,1968Note that the date is the date of the printout, not the date of the program revision. |
058632,000002: ## Copyright: Public domain.
058633,000003: ## Filename: TIME_OF_FREE_FALL.agc
058634,000004: ## Purpose: Part of the source code for Colossus, build 249.
058635,000005: ## It is part of the source code for the Command Module's (CM)
058636,000006: ## Apollo Guidance Computer (AGC), for Apollo 9.
058637,000007: ## Assembler: yaYUL
058638,000008: ## Reference: Begins on p. 1341
058639,000009: ## Contact: Ron Burkey <info@sandroid.org>.
058640,000010: ## Website: www.ibiblio.org/apollo.
058641,000011: ## Mod history: 08/30/04 RSB. Began adapting from corresponding Luminary131 file.
058642,000012: ## 2010-10-24 JL Indentation fixes.
058643,000013: ## 2017-01-06 RSB Page numbers now agree with those on the
058644,000014: ## original hardcopy, as opposed to the PDF page
058645,000015: ## numbers in 1701.pdf.
058646,000016: ## 2017-01-20 RSB Cross-diff'd comment text (not whitespace)
058647,000017: ## vs the already-proofed corresponding Colossus
058648,000018: ## 237 and Comanche 55 source-code files
058649,000019: ## and corrected errors found.
058650,000020: ## 2017-03-14 RSB Comment-text fixes noted in proofing Luminary 116.
058651,000021:
058652,000022: ## The contents of the "Colossus249" files, in general, are transcribed
058653,000023: ## from a scanned copy of the program listing. Notations on this
058654,000024: ## document read, in part:
058655,000025: ##
058656,000026: ## Assemble revision 249 of AGC program Colossus by NASA
058657,000027: ## 2021111-041. October 28, 1968.
058658,000028: ##
058659,000029: ## This AGC program shall also be referred to as
058660,000030: ## Colossus 1A
058661,000031: ##
058662,000032: ## Prepared by
058663,000033: ## Massachusetts Institute of Technology
058664,000034: ## 75 Cambridge Parkway
058665,000035: ## Cambridge, Massachusetts
058666,000036: ## under NASA contract NAS 9-4065.
058667,000037: ##
058668,000038: ## Refer directly to the online document mentioned above for further information.
058669,000039: ## Please report any errors (relative to the scanned pages) to info@sandroid.org.
058670,000040: ##
058671,000041: ## In some cases, where the source code for Luminary 131 overlaps that of
058672,000042: ## Colossus 249, this code is instead copied from the corresponding Luminary 131
058673,000043: ## source file, and then is proofed to incorporate any changes.
058674,000044:
![]() |
Page 1341 |
058676,000046: # THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
058677,000047: # KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE AND 1/SQRT(MU) AT THE
058678,000048: # APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
058679,000049:
058680,000050: # EARTH ORIGIN POSITION -29 METERS
058681,000051: # VELOCITY -7 METERS/CENTISECOND
058682,000052: # 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
058683,000053:
058684,000054: # MOON ORIGIN POSITION -27 METERS
058685,000055: # VELOCITY -5 METERS/CENTISECONDS
058686,000056: # 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
058687,000057:
058688,000058: # ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
058689,000059: # THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
058690,000060: # LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
058691,000061:
058692,000062: # THE USER MUST STORE THE STATE VECTOR IN RONE, VONE AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
058693,000063: # AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
058694,000064: # THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
058695,000065:
058696,000066: # PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
058697,000067: # RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
058698,000068:
058699,000069: # THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
058700,000070:
058701,000071: # BELOW E: IS USED FOR EARTH ORIGIN SCALE
058702,000072: # M: IS USED FOR MOON ORIGIN SCALE
058703,000073:
058704,000074: # TFFSW = 119D BIT1 0 = CALCTFF 1 = CALCTPER
058705,000075: 23,3725 TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
058706,000076: 23,3725 RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
058707,000077: # RPER = 14D PERIGEE RADIUS M E: (-29) M: (-27)
058708,000078: 23,3725 TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
058709,000079: # SDELF/2 SIN(THETA) /2
058710,000080: 23,3725 CDELF/2 = 14D # COS(THETA) /2
058711,000081: # RAPO = 16D APOGEE RADIUS M E: (-29) M: (-27)
058712,000082: 23,3725 NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
058713,000083: # M: (-27+NR)
058714,000084: 23,3725 RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
058715,000085: 23,3725 TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
058716,000086: 23,3725 TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
058717,000087: # M: (-20-2 NA)
058718,000088: 23,3725 TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
058719,000089: 23,3725 TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
058720,000090: 23,3725 TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
058721,000091: # M: (-36+2 NR)
058722,000092: 23,3725 TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
058723,000093: 23,3725 NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
058724,000094: # M: (-27+NR)
058725,000095: 23,3725 TFFX = 34D
058726,000096: 23,3725 TFFTEM = 36D # TEMPORARY
![]() |
Page 1342 |
058728,000098: # REGISTERS S1, S2 ARE UNTOUCHED BY ANY TFF SUBROUTINE
058729,000099: # INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
058730,000100: # LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
058731,000101: # SUBROUTINES.
058732,000102: # -NR C(X1) = NORM COUNT OF RMAG
058733,000103: # -NA C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
058734,000104:
![]() |
Page 1343 |
058736,000106: # SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
058737,000107: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
058738,000108: # MOD BY: RR BAIRNSFATHER
058739,000109: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
058740,000110: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
058741,000111: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
058742,000112:
058743,000113: # FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
058744,000114: # SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
058745,000115: # THE EQUATIONS ARE
058746,000116: # - - -
058747,000117: # H = RN*VN ANGULAR MOMENTUM
058748,000118: # - -
058749,000119: # LCP = H.H / MU SEMI LATUS RECTUM
058750,000120: # - -
058751,000121: # ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
058752,000122:
058753,000123: # AND ALFA IS POS FOR ELLIPTIC ORBITS
058754,000124: # 0 FOR PARABOLIC ORBITS
058755,000125: # NEG FOR HYPERBOLIC ORBITS.
058756,000126: # SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
058757,000127:
058758,000128: # CALLING SEQUENCE:
058759,000129: # TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
058760,000130: # 1/SQRT(MU). PROGRAM WILL SAVE IN TFF/RTMU. THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
058761,000131: # ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
058762,000132: # VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
058763,000133: # TFF ROUTINES.
058764,000134:
058765,000135: # ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
058766,000136:
058767,000137: # TO SPECIFY MU: DLOAD CALL IF MU ALREADY STORED: CALL
058768,000138: # YOURMU 1/RTMU E:(17) M:(14) TFFCONMU
058769,000139: # TFFCONIC
058770,000140: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
058771,000141:
058772,000142: # SUBROUTINES CALLED: NONE
058773,000143:
058774,000144: # NORMAL EXIT MODES: RVQ
058775,000145:
058776,000146: # ALARMS: NONE
058777,000147:
058778,000148: # OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
058779,000149: # RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
058780,000150: # NRMAG E:(-29+NR) M RMAG, NORMALIZED
058781,000151: # M:(-27+NR)
058782,000152: # X1 -NR, NORM COUNT
058783,000153: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC
058784,000154: # M:(-36+2NR)
058785,000155: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
058786,000156: # TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY, NORMLIZED. FOR VGAMCALC
058787,000157: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
058788,000158: # M:(24-NR)
058789,000159: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
058790,000160: # M:(9+NA)
![]() |
Page 1344 |
058792,000162: # X2 -NA, NORMCOUNT
058793,000163: # TFF1/ALF E:(-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
058794,000164: # M:(-20-2NA)
058795,000165: # PUSHLOC AT PDL+0
058796,000166:
058797,000167: # THE FOLLOWING IS STORED IN GENERAL ERASABLE
058798,000168: # VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
058799,000169:
058800,000170: # ERASABLE INITIALIZATION REQUIRED:
058801,000171: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
058802,000172: # VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
058803,000173: # TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
058804,000174:
058805,000175: # DEBRIS: QPRET, PDL+0 ... PDL+3
058806,000176:
058807,000177: 33,3772 BANK 33
058808,000178: 27,2000 SETLOC TOF-FF
058809,000179: 27,2000 BANK
058810,000180:
058811,000181: 27,2750 COUNT* $$/TFF
058812,000182:
058813,000183: 27,2750 00037 TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E:(17) M:(14)
058814,000184:
058815,000185: 27,2751 53575 TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
058816,000186: 27,2752 02327 RONE # SAVED RN. M E:(-29) M:(-27)
058817,000187: 27,2753 77725 PDDL # UR/2 TO PDL+0, +5
058818,000188: 27,2754 00045 36D # MAGNITUDE
058819,000189: 27,2755 00015 STORE RMAG1 # M E:(-29) M:(-27)
058820,000190:
058821,000191: 27,2756 77701 NORM
058822,000192: 27,2757 00047 X1 # -NR
058823,000193: 27,2760 24041 STOVL NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
058824,000194: 27,2761 02335 VONE # SAVED VN. M/CS E:(-7) M:(-5)
058825,000195: 27,2762 77761 VXSC
058826,000196: 27,2763 00037 TFF/RTMU # E:(17) M:(14)
058827,000197: 27,2764 02372 STORE VONE' # VN/SQRT(MU) E:(10) M:(9)
058828,000198:
058829,000199: 27,2765 47361 VXSC VXV
058830,000200: 27,2766 00041 NRMAG # E:(-29+NR) M:(-27+NR)
058831,000201: # UR/2 FROM PDL
058832,000202: 27,2767 47572 VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
058833,000203: 27,2770 14035 STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
058834,000204: # SAVE ALSO FOR VGAMCALC
058835,000205: 27,2771 15322 TFF1/4
058836,000206: 27,2772 63271 DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
058837,000207: 27,2773 00041 NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
058838,000208: 27,2774 02372 VONE' # SAVED VN. E:(10) M:(9)
058839,000209: 27,2775 57436 VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
058840,000210: 27,2776 00025 STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
058841,000211: # SAVE FOR VGAMCALC
058842,000212: 27,2777 43257 SR* DAD
![]() |
Page 1345 |
058844,000214: 27,3000 20573 0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
058845,000215: 27,3001 77626 STADR
058846,000216: # 2/RMAG FROM PDL+2
058847,000217: 27,3002 77744 STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
058848,000218: 27,3003 41457 SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
058849,000219: 27,3004 20173 0 -6,1
058850,000220: 27,3005 75446 ABS SQRT # E:(10) M:(9)
058851,000221: 27,3006 77701 NORM
058852,000222: 27,3007 00050 X2 # X2 = -NA
058853,000223: 27,3010 00031 STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
058854,000224: 27,3011 75316 DSQ SIGN # NOT SO ACCURATE, BUT OK
058855,000225: # ALFA FROM PDL+2 E:(20) M:(18)
058856,000226: 27,3012 55254 BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
058857,000227: 27,3013 57015 +2
058858,000228: 27,3014 15322 TFF1/4
058859,000229: 27,3015 00027 +2 STORE TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
058860,000230: 27,3016 77616 DUMPCNIC RVQ
058861,000231: # 39 W
![]() |
Page 1346 |
058863,000233: # SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
058864,000234: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
058865,000235: # MOD BY: RR BAIRNSFATHER
058866,000236: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
058867,000237: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
058868,000238: # ALSO IMPROVE ACCURACY OF RAPO.
058869,000239:
058870,000240: # FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
058871,000241: # APOGEE RADIUS FOR A GENERAL CONIC.
058872,000242: # PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
058873,000243: # RP = P/(1+E) RA = (1+E) / ALFA
058874,000244: # WHERE 2
058875,000245: # E = 1 - P ALFA
058876,000246: # IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
058877,000247: # 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
058878,000248: # 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
058879,000249: # 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
058880,000250:
058881,000251: # THIS SUBROUTINE REQUIRES THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
058882,000252:
058883,000253: # CALLING SEQUENCE: CALL
058884,000254: # TFFRP/RA
058885,000255: # PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
058886,000256: # C(MPAC) UNSPECIFIED
058887,000257:
058888,000258: # SUBROUTINES CALLED: NONE
058889,000259:
058890,000260: # NORMAL EXIT MODE: RVQ
058891,000261: # IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
058892,000262: # OTHERWISE, RAPO = POSMAX.
058893,000263:
058894,000264: # ALARMS: NONE
058895,000265:
058896,000266: # OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
058897,000267: # RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
058898,000268: # RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
058899,000269: # PUSHLOC AT PDL+0
058900,000270:
058901,000271: # ERASABLE INITIALIZATION REQUIRED:
058902,000272: # TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
058903,000273: # M:(24-NR)
058904,000274: # TFFNP E:(-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
058905,000275: # M:(-36+2NR)
058906,000276: # X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
058907,000277: # X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
058908,000278:
058909,000279: # DEBRIS: QPRET, PDL+0 ... PDL+1
058910,000280:
![]() |
Page 1347 |
058912,000282: 27,3017 RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
058913,000283: 27,3017 RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
058914,000284:
058915,000285: 27,3017 41345 TFFRP/RA DLOAD DMP
058916,000286: 27,3020 00033 TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
058917,000287: 27,3021 00035 TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
058918,000288: 27,3022 57457 SR* DCOMP # ALFA P (-12+NR)
058919,000289: 27,3023 20571 0 -8D,1 # ALFA P (-4)
058920,000290: 27,3024 51415 DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
058921,000291: # (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
058922,000292: 27,3025 17357 DP2(-4)
058923,000293: 27,3026 43366 SQRT DAD # E SQ = (1- P ALFA) (-4)
058924,000294: 27,3027 15322 TFF1/4
058925,000295: 27,3030 55206 PUSH BDDV # (1+E) (-2) TO PDL+0
058926,000296: 27,3031 00035 TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
058927,000297: 27,3032 53657 SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
058928,000298: 27,3033 20601 0,1 # X1=-NR
058929,000299: 27,3034 20572 0 -7,1 # (EFFECTIVE SL)
058930,000300: 27,3035 14017 STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
058931,000301: # (1+E) (-2) FROM PDL+0
058932,000302: 27,3036 41005 DMP BOVB
058933,000303: 27,3037 00027 TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
058934,000304: 27,3040 57343 TCDANZIG # CLEAR OVFIND, IF ON.
058935,000305: 27,3041 53654 BZE SL*
058936,000306: 27,3042 57051 MAXRA # SET POSMAX, IF ALFA=0
058937,000307: 27,3043 57603 0 -5,2 # -5+NA
058938,000308: 27,3044 40057 SL* BOV
058939,000309: 27,3045 57576 0,2
058940,000310: 27,3046 57051 MAXRA # SET POSMAX IF OVFL.
058941,000311: 27,3047 77644 BPL # CONTINUE WITH VALID RAPO.
058942,000312: 27,3050 57053 +3
058943,000313: 27,3051 77745 MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
058944,000314: 27,3052 17363 NEARONE # POSMAX AS A TAG.
058945,000315: 27,3053 00021 +3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
058946,000316: 27,3054 77616 DUMPRPRA RVQ
058947,000317: # 30 W
![]() |
Page 1348 |
058949,000319: # SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
058950,000320: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
058951,000321: # MOD BY: RR BAIRNSFATHER
058952,000322: # MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
058953,000323: # MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
058954,000324: # MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
058955,000325: # MOD NO: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
058956,000326: # MOD NO: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
058957,000327:
058958,000328: # FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
058959,000329: # VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER. THE POSITION VECTOR
058960,000330: # RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
058961,000331: # THE EQUATIONS ARE
058962,000332:
058963,000333: # Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
058964,000334: # - -
058965,000335: # Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
058966,000336:
058967,000337: # Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
058968,000338:
058969,000339: # WHERE, IF INBOUND
058970,000340: # NUM = RTERM -RN LEQ +- 2 LCE/ALFA
058971,000341: # DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
058972,000342:
058973,000343: # AND, IF OUTBOUND
058974,000344: # NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
058975,000345: # DEN = 2 - ALFA (RTERM + RN). LEQ +- 2 LCE
058976,000346:
058977,000347: # IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
058978,000348: # THEN X = ALFA Z Z
058979,000349: # AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
058980,000350: # EXCEPT IF ALFA PNZ, AND IF TFF NEG,
058981,000351: # THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
058982,000352: # OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
058983,000353: # THEN X = 1/ALFA Z Z
058984,000354: # AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
058985,000355: # WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
058986,000356: # 2 3 2
058987,000357: # 1/3 - X/5 + X /7 - X /9 ... (X < 1.0)
058988,000358:
058989,000359: # CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE
058990,000360: # CALL CALL
058991,000361: # CALCTFF CALCTPER
058992,000362: # C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
058993,000363: # FOR EITHER, E:(-29) M:(-27)
058994,000364: # FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D.
![]() |
Page 1349 |
058996,000366:
058997,000367: # SUBROUTINES CALLED: T(X), VIA RTB
058998,000368:
058999,000369: # NORMAL EXIT MODE: RVQ
059000,000370: # HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
059001,000371: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
059002,000372: # B. (THIS OPTION IS NO LONGER USED.)
059003,000373: # C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
059004,000374: # THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
059005,000375:
059006,000376: # OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
059007,000377: # TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
059008,000378: # NRTERM E:(-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
059009,000379: # M:(-27+NR)
059010,000380: # TFFTEM E:(-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
059011,000381: # M:(-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
059012,000382: # NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
059013,000383: # RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
059014,000384: # TFFQ1 E:(-16) M:(-15) PDL 14D
059015,000385: # TFFDELQ E:(-16) M:(-15) PDL 10D
059016,000386: # PUSHLOC AT PDL+0
059017,000387:
059018,000388: # ERASABLE INITIALIZATION REQUIRED:
059019,000389: # RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
059020,000390: # VONE' E:(+10) M:(+9) VN/SQRT(MU) LEFT BY TFF/CONIC
059021,000391: # RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
059022,000392: # C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
059023,000393:
059024,000394: # THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
059025,000395: # TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
059026,000396: # NRMAG E:(-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
059027,000397: # M:(-27+NR)
059028,000398: # X1 -NR, NORM COUNT LEFT BY TFFCONIC
059029,000399: # TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
059030,000400: # M:(-36+2NR)
059031,000401: # TFFALFA E:(26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
059032,000402: # M:(24-NR)
059033,000403: # TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
059034,000404: # M:(9+NA)
059035,000405: # X2 -NA, NORMCOUNT LEFT BY TFFCONIC
059036,000406: # TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
059037,000407: # M:(-20-2NA)
059038,000408:
059039,000409: # DEBRIS: QPRET, PDL+0 ... PDL+3
059040,000410: # RTERM E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
059041,000411: # RAPO E:(-29) M:(-27) PDL 16D (=NRTERM)
059042,000412: # RPER E:(-29) M:(-27) PDL 14D (=TFFQ1)
059043,000413:
![]() |
Page 1350 |
059045,000415: 27,3055 77614 CALCTPER SETGO # ENTER WITH RPER IN MPAC
059046,000416: 27,3056 03436 TFFSW
059047,000417: 27,3057 57062 +3
059048,000418: 27,3060 77614 CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
059049,000419: 27,3061 03676 TFFSW
059050,000420: 27,3062 00023 +3 STORE RTERM # E:(-29) M:(-27)
059051,000421: 27,3063 77657 SL*
059052,000422: 27,3064 20201 0,1 # X1=-NR
059053,000423: 27,3065 00021 STORE NRTERM # RTERM E:(-29+NR) M:(-27+NR)
059054,000424: 27,3066 44205 DMP BDSU
059055,000425: 27,3067 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
059056,000426: 27,3070 15322 TFF1/4
059057,000427: 27,3071 41206 PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
059058,000428: 27,3072 00021 NRTERM # E:(-29+NR) M:(-27+NR)
059059,000429: 27,3073 53725 PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
059060,000430: # E:(-32+NR) M:(-30+NR)
059061,000431: 27,3074 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
059062,000432: 27,3075 20573 0 -6,1 # X1 = -NR
059063,000433: 27,3076 43276 DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
059064,000434: # RTERM(2-ALFA RTERM) FROM PDL +2
059065,000435: # E:(-32+NR) M:(-30+NR)
059066,000436: 27,3077 77657 SR* # LEAVE E:(-32) M:(-30)
059067,000437: 27,3100 20601 0,1 # X1 = -NR
059068,000438: 27,3101 71214 BOFF DLOAD # CHECK TFF /TPER SWITCH
059069,000439: 27,3102 03756 TFFSW
059070,000440: 27,3103 57105 +2 # IF TFF, CONTINUE
059071,000441: 27,3104 15332 TFFZEROS # IF TPER, SET Q2 = 0
059072,000442: 27,3105 75440 +2 BMN SQRT # E:(-16) M:(-15)
059073,000443: 27,3106 57240 MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
059074,000444: # RESET PDL, SET TFF=POSMAX, AND EXIT.
059075,000445:
059076,000446: 27,3107 41076 DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
059077,000447: 27,3110 57343 TCDANZIG # ANY PORT IN A STORM.
059078,000448: 27,3111 24045 STOVL TFFTEM # Q2 E:(-16) M:(-15)
059079,000449: 27,3112 02372 VONE' # VN/SQRT(MU) E:(10) M:(9)
059080,000450: 27,3113 52441 DOT SL3
059081,000451: 27,3114 02327 RONE # SAVED RN. E:(-29) M:(-27)
059082,000452: 27,3115 00017 STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
059083,000453: # E:(-16) M:(-15)
059084,000454: 27,3116 44240 BMN BDSU
059085,000455: 27,3117 57140 INBOUND # USE ALTERNATE Z
059086,000456: 27,3120 00045 TFFTEM # Q2 E:(-16) M:(-15)
059087,000457:
059088,000458: # OUTBOUND Z CALC CONTINUES HERE
059089,000459:
059090,000460: 27,3121 14043 STODL TFFX # NUM=Q2-Q1 E:(-16) M:(-15)
059091,000461: 27,3122 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
059092,000462: 27,3123 44205 DMP BDSU
![]() |
Page 1351 |
059094,000464: 27,3124 00041 NRMAG # RMAG E:(-29+NR) M:(-27+NR)
059095,000465: # (2-RTERM ALFA) (-3) FROM PDL+0
059096,000466: 27,3125 51406 SAVEDEN PUSH ABS # DEN TO PDL+0 E:(-3) OR (-16)
059097,000467: # M:(-3) OR (-15)
059098,000468: 27,3126 40015 DAD BOV # INDETERMINANCY TEST
059099,000469: 27,3127 17351 LIM(-22) # =1.0-B(-22)
059100,000470: 27,3130 57151 TFFXTEST # GO IF DEN >/= B(-22)
059101,000471: 27,3131 65345 DLOAD PDDL # SET DEN=0 OTHERWISE
059102,000472: 27,3132 15332 TFFZEROS
059103,000473: # XCH ZERO WITH PDL+0
059104,000474: 27,3133 57545 DLOAD DCOMP
059105,000475: 27,3134 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
059106,000476: 27,3135 71240 BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
059107,000477: 27,3136 57245 TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
059108,000478:
059109,000479: # Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
059110,000480: 27,3137 77616 DUMPTFF1 RVQ # RETURN TFF =0
059111,000481:
059112,000482: # INBOUND Z CALC CONTINUES HERE
059113,000483:
059114,000484: 27,3140 77745 INBOUND DLOAD # RESET PDL+0
059115,000485: 27,3141 45345 DLOAD DSU # ALTERNATE Z CALC
059116,000486: 27,3142 00023 RTERM # E:(-29) M:(-27)
059117,000487: 27,3143 00015 RMAG1 # E:(-29) M:(-27)
059118,000488: 27,3144 14043 STODL TFFX # NUM=RTERM-RN E:(-29) M:(-27)
059119,000489: 27,3145 00045 TFFTEM # Q2 E:(-16) M:(-15)
059120,000490: 27,3146 52015 DAD GOTO
059121,000491: 27,3147 00017 TFFQ1 # Q1 E:(-16) M:(-15)
059122,000492: 27,3150 57125 SAVEDEN # DEN = Q2+Q1 E:(-16) M:(-15)
059123,000493:
059124,000494: 27,3151 65215 TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2)) E:(-3) OR (-16)
059125,000495: # M:(-3) OR (-15)
059126,000496: 27,3152 17353 DP(-22) # RESTORE ABS(DEN) TO MPAC
059127,000497: 27,3153 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
059128,000498: 27,3154 53605 DMP SR*
059129,000499: 27,3155 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
059130,000500: 27,3156 57201 0 -3,2 # X2=-NA
059131,000501: 27,3157 77671 DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
059132,000502: # M:(-3) OR (-15)
059133,000503: # ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
059134,000504: # M:(-3) OR (-15)
059135,000505: 27,3160 40145 DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
059136,000506: 27,3161 00043 TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
059137,000507: 27,3162 57243 TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
059138,000508:
059139,000509: # OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
059140,000510:
059141,000511: 27,3163 45471 DDV STADR
059142,000512: # DEN FROM PDL+0 E:(-3) OR (-16)
059143,000513: # M:(-3) OR (-15)
059144,000514: 27,3164 77732 STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
![]() |
Page 1352 |
059146,000516: # E:(-13) M:(-12)
059147,000517: 27,3165 63406 PUSH DSQ # Z TO PDL+0
059148,000518: 27,3166 41206 PUSH DMP # Z SQ TO PDL+2 E:(-26) M:(-24)
059149,000519: 27,3167 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
059150,000520: 27,3170 75261 SL SIGN
059151,000521: 27,3171 20206 5
059152,000522: 27,3172 00045 TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
059153,000523: 27,3173 14045 STODL TFFTEM # P ZSQ E:(-59+2NR) M:(-55+2NR)
059154,000524: # (ARG IS USED IN TFF/TRIG)
059155,000525: # ZSQ FROM PDL+2 E:(-26) M:(-24)
059156,000526: 27,3174 41206 PUSH DMP # RESTORE PUSH LOC
059157,000527: 27,3175 00033 TFFALFA # ALFA E:(26-NR) M:(24-NR)
059158,000528: 27,3176 77657 SL*
059159,000529: 27,3177 20201 0,1 # X1=-NR
059160,000530: 27,3200 00043 STORE TFFX # X
059161,000531: 27,3201 41234 RTB DMP
059162,000532: 27,3202 57325 T(X) # POLY
059163,000533: # ZSQ FROM PDL+2 E:(-26) M:(-24)
059164,000534: 27,3203 44302 SR2 BDSU # 2 ZSQ T(X) E:(-29) M:(-27)
059165,000535: 27,3204 00023 RTERM # RTERM E:(-29) M:(-27)
059166,000536: 27,3205 41215 DAD DMP
059167,000537: 27,3206 00015 RMAG1 # E:(-29) M:(-27)
059168,000538: # Z FROM PDL+0 E:(-13) M:(-12)
059169,000539: 27,3207 51042 SR3 BPL # TFF SQRT(MU) E:(-45) M:(-42)
059170,000540: 27,3210 57231 ENDTFF # (NO PUSH UP)
059171,000541: 27,3211 75206 PUSH SIGN # TFF SQRT(MU) TO PDL+0
059172,000542: 27,3212 00017 TFFQ1 # Q1 FOR GONEPAST TEST
059173,000543: 27,3213 71244 BPL DLOAD # GONE PAST ?
059174,000544: 27,3214 57235 NEGTFF # YES. TFF < 0.
059175,000545: 27,3215 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059176,000546: 27,3216 51076 DCOMP BPL # ALFA > 0 ?
059177,000547: 27,3217 57235 NEGTFF # NO. TFF IS NEGATIVE.
059178,000548:
059179,000549: # CORRECT FOR ORBITAL PERIOD.
059180,000550:
059181,000551: 27,3220 77676 DCOMP # YES. CORRECT FOR ORB PERIOD.
059182,000552: 27,3221 56205 DMP DDV
059183,000553: 27,3222 17347 PI/16 # 2 PI (-5)
059184,000554: 27,3223 00031 TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
059185,000555: 27,3224 53657 SL* SL*
059186,000556: 27,3225 57602 0 -4,2 # X2=-NA
059187,000557: 27,3226 57602 0 -4,2
059188,000558: 27,3227 43257 SL* DAD
059189,000559: 27,3230 57576 0,2
059190,000560: # TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
059191,000561: 27,3231 40005 ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
059192,000562: 27,3232 00037 TFF/RTMU # E:(17) M:(14)
059193,000563: 27,3233 57241 MAXTFF # SET POSMAX IF OVFL.
059194,000564:
059195,000565: 27,3234 77616 DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
059196,000566:
![]() |
Page 1353 |
059198,000568: 27,3235 77745 NEGTFF DLOAD
059199,000569: # TFF SQRT(MU) FROM PDL+0, NEGATIVE.
059200,000570: 27,3236 77650 GOTO
059201,000571: 27,3237 57231 ENDTFF
059202,000572:
059203,000573: 27,3240 77745 MAXTFF1 DLOAD # RESET PDL
059204,000574: 27,3241 43545 MAXTFF DLOAD RVQ
059205,000575: 27,3242 17363 NEARONE
059206,000576:
059207,000577: # TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
059208,000578:
059209,000579: # NUM FROM TFFX. E:(-16) OR (-29)
059210,000580: # M:(-15) OR (-27)
059211,000581: 27,3243 77712 TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
059212,000582: 27,3244 41465 BDDV PUSH # TEMP SAVE D/N IN PDL+0
059213,000583: # DEN FROM PDL+0 E:(-3)/( 16) M:(-3)/(-15)
059214,000584: # N/D TO PDL+0 E:(11) M:(10)
059215,000585: 27,3245 45345 TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
059216,000586: 27,3246 00045 TFFTEM # Q2 E:(-16) M:(-15)
059217,000587: 27,3247 00017 TFFQ1 # Q1 E:(-16) M:(-15)
059218,000588: 27,3250 14013 STODL TFFDELQ # Q2-Q1 E:(-16) M:(-15)
059219,000589: # D/N FROM PDL+0
059220,000590: 27,3251 77626 STADR
059221,000591: 27,3252 77732 STORE TFFTEM # D/N E:(11) M:(10)
059222,000592: 27,3253 53605 DMP SL*
059223,000593: 27,3254 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059224,000594: 27,3255 57576 0,2 # 1/ALFA Z E:(-11-NA) M:(-10-NA)
059225,000595: 27,3256 41206 PUSH DMP # TO PDL+0
059226,000596: 27,3257 00045 TFFTEM # 1/Z E:(11) M:(10)
059227,000597: 27,3260 41057 SL* BOVB
059228,000598: 27,3261 57576 0,2 # X2= -NA
059229,000599: 27,3262 45707 SIGNMPAC # IN CASE X= 1.0, CONTINUE
059230,000600: 27,3263 00043 STORE TFFX # X=1/ALFA ZSQ
059231,000601: 27,3264 41234 RTB DMP
059232,000602: 27,3265 57325 T(X) # POLY
059233,000603: 27,3266 00043 TFFX
059234,000604: 27,3267 45242 SR3 DSU
059235,000605: 27,3270 17355 DP2(-3)
059236,000606: 27,3271 41405 DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA)
059237,000607: # M:(-14-NA)
059238,000608: # 1/ALFA Z FROM PDL+0 E:(-11-NA)
059239,000609: # M:(-10-NA)
059240,000610: 27,3272 41345 DLOAD DMP # GET SIGN FOR SDELF
059241,000611: 27,3273 00045 TFFTEM # 1/Z E:(11) M:(10)
059242,000612: 27,3274 00015 RMAG1 # E:(-29) M:(-27)
059243,000613: 27,3275 43312 SL2 DAD
059244,000614: 27,3276 00017 TFFQ1 # Q1 E:(-16) M:(-15)
059245,000615: 27,3277 14045 STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15
059246,000616: 27,3300 00035 TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
059247,000617: 27,3301 53605 DMP SL* # CALC FOR ARG FOR TFF/TRIG.
![]() |
Page 1354 |
059249,000619: 27,3302 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059250,000620: 27,3303 57575 1,2 # X2=-NA
059251,000621: 27,3304 53765 SIGN SL*
059252,000622: 27,3305 00045 TFFTEM # AFFIX SIGN FOR SDELF
059253,000623: 27,3306 57576 0,2
059254,000624: 27,3307 14045 STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
059255,000625: # (ARG FOR USE IN TFF/TRIG)
059256,000626: 27,3310 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059257,000627: 27,3311 41366 SQRT DMP
059258,000628: 27,3312 17347 PI/16 # PI (-4)
059259,000629: 27,3313 77615 DAD
059260,000630: # 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
059261,000631: # M:(-14-NA)
059262,000632: 27,3314 45257 SL* DSU
059263,000633: 27,3315 57577 0 -1,2
059264,000634: 27,3316 00013 TFFDELQ # Q2-Q1 E:(-16) M:(-15)
059265,000635: 27,3317 53605 DMP SL*
059266,000636: 27,3320 00027 TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
059267,000637: 27,3321 57601 0 -3,2
059268,000638: 27,3322 52057 SL* GOTO
059269,000639: 27,3323 57602 0 -4,2
059270,000640: 27,3324 57231 ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
059271,000641:
![]() |
Page 1355 |
059273,000643: # PROGRAM NAME: T(X) DATE: 01.17.67
059274,000644: # MOD NO: 0 LOG SECTION: TIME OF FREE FALL
059275,000645: # MOD BY: RR BAIRNSFATHER
059276,000646:
059277,000647: # FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
059278,000648: # CALCTPER TO APPROXIMATE THE SERIES
059279,000649: # 2 3
059280,000650: # 1/3 -X/5 +X /7 -X /9 ...
059281,000651:
059282,000652: # WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
059283,000653: # X = 1/(ALFA Z Z) IF ALFA Z Z G 1
059284,000654:
059285,000655: # ALSO X IS NEG FOR HYPERBOLIC ORBITS
059286,000656: # X = 0 FOR PARABOLIC ORBITS
059287,000657: # X IS POSITIVE FOR ELLIPTIC ORBITS
059288,000658:
059289,000659: # FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
059290,000660: # DEVIATION FROM THE SERIES OF 2 E-5 (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
059291,000661: # MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).)
059292,000662:
059293,000663: # CALLING SEQUENCE: RTB
059294,000664: # T(X)
059295,000665: # C(MPAC) = X
059296,000666:
059297,000667: # SUBROUTINES CALLED: NONE
059298,000668:
059299,000669: # NORMAL EXIT MODE: TC DANZIG
059300,000670:
059301,000671: # ALARMS: NONE
059302,000672:
059303,000673: # OUTPUT: C(MPAC) = T(X)
059304,000674:
059305,000675: # ERASABLE INITIALIZATION REQUIRED:
059306,000676: # C(MPAC) = X
059307,000677:
059308,000678: # DEBRIS: NONE
059309,000679:
059310,000680: 27,3325 07171 T(X) TC POLY
059311,000681: 27,3326 00004 DEC 4 B-14 # N-1
059312,000682: 27,3327 12525 12525 2DEC 3.333333333 E-1
059313,000683: 27,3331 71463 57703 2DEC* -1.999819135 E-1*
059314,000684: 27,3333 04423 17645 2DEC* 1.418148467 E-1*
059315,000685: 27,3335 74604 43667 2DEC* -1.01310997 E-1*
059316,000686: 27,3337 01626 37256 2DEC* 5.609004986 E-2*
059317,000687: 27,3341 77404 52071 2DEC* -1.536156925 E-2*
059318,000688:
059319,000689: 27,3343 06030 ENDT(X) TC DANZIG
059320,000690:
059321,000691: 27,3344 27,3343 TCDANZIG = ENDT(X)
059322,000692:
![]() |
Page 1356 |
059324,000694: # TFF CONSTANTS
059325,000695:
059326,000696: 32,3755 BANK 32
059327,000697:
059328,000698: 27,2000 SETLOC TOF-FF1
059329,000699: 27,2000 BANK
059330,000700:
059331,000701: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
059332,000702: # MUE = 3.990 815 471 E10 M CUBE/CS SQ
059333,000703: # RTMUE = 1.997702549 E5 B-18* MODIFIED EARTH MU
059334,000704:
059335,000705: 27,3344 24775 30424 1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU
059336,000706:
059337,000707: # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
059338,000708: # MUM = 4.902 778 E8 M CUBE/CS SQ
059339,000709: # RTMUM 2DEC* 2.21422176 E4 B-18*
059340,000710: 27,3346 06220 37553 PI/16 2DEC 3.141592653 B-4
059341,000711: 27,3350 37777 37700 LIM(-22) 2OCT 3777737700 # 1.0 -B(-22)
059342,000712: 27,3352 00000 00100 DP(-22) 2OCT 0000000100 # B(-22)
059343,000713: 27,3354 04000 00000 DP2(-3) 2DEC 1 B-3
059344,000714: 27,3356 02000 00000 DP2(-4) 2DEC 1 B-4 # 1/16
059345,000715:
059346,000716: # RPAD1 2DEC 6373338 B-29 M (-29) = 20909901.57 FT
059347,000717: 27,3360 22,3310 RPAD1 = RPAD
059348,000718:
059349,000719: 27,3360 00305 11205 R300K 2DEC 6464778 B-29 # (-29) M
059350,000720: 27,3362 37777 37777 NEARONE 2DEC .999999999
059351,000721: 27,3364 26,3331 TFFZEROS EQUALS HI6ZEROS
059352,000722: 27,3364 26,3321 TFF1/4 EQUALS HIDP1/4
059353,000723:
059354,000724:
059355,000725:
End of include-file TIME_OF_FREE_FALL.agc. Parent file is MAIN.agc