Source Code

These source code files are an attempted reconstruction of Sundance revision 306, the Apollo 9 LM (Lunar Module) AGC (Apollo Guidance Computer) flight software, created from binary dumps of original core rope program modules, as follows:
  • B1 — Revision 292
  • B2 — Revision 302
  • B3 — Revision 302
  • B4 — Revision 302
  • B5 — Revision 292
  • B6 — Revision 306
These dumps were then modified using memos, checklists, observed address changes, and the Sundance GSOPs to get the entire program to match Sundance revision 306 as closely as possible. Without more information, it is not possible to say how close it actually is; however, this code should be quite close. It is capable of flying the whole Apollo 9 mission using the original checklists and padload. Since only binary dumps (rather than listings) of Sundance are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing.

049427,000002:                                                                                                  ## Copyright:   Public domain.
049428,000003:                                                                                                  ## Filename:    TIME_OF_FREE_FALL.agc
049429,000004:                                                                                                  ## Purpose:     A section of an attempt to reconstruct Sundance revision 306
049430,000005:                                                                                                  ##              as closely as possible with available information. Sundance
049431,000006:                                                                                                  ##              306 is the source code for the Lunar Module's (LM) Apollo
049432,000007:                                                                                                  ##              Guidance Computer (AGC) for Apollo 9. This program was created
049433,000008:                                                                                                  ##              using the mixed-revision SundanceXXX as a starting point, and
049434,000009:                                                                                                  ##              pulling back features from Luminary 69 believed to have been
049435,000010:                                                                                                  ##              added based on memos, checklists, observed address changes,
049436,000011:                                                                                                  ##              or the Sundance GSOPs.
049437,000012:                                                                                                  ## Assembler:   yaYUL
049438,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
049439,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
049440,000015:                                                                                                  ## Mod history: 2020-07-24 MAS  Created from SundanceXXX.
049441,000016: 
049442,000017: 
049443,000018: 
049444,000019:                                                                                                  #           THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
049445,000020:                                                                                                  #  KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES  RONE, VONE AND 1/SQRT(MU) AT THE
049446,000021:                                                                                                  #  APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
049447,000022: 
049448,000023:                                                                                                  #           EARTH ORIGIN           POSITION      -29      METERS
049449,000024:                                                                                                  #                                  VELOCITY      -7       METERS/CENTISECOND
049450,000025:                                                                                                  #                                  1/SQRT(MU)    +17      SQRT(CS SQ/METERS CUBED)
049451,000026: 
049452,000027:                                                                                                  #           MOON ORIGIN            POSITION      -27      METERS
049453,000028:                                                                                                  #                                  VELOCITY      -5       METERS/CENTISECONDS
049454,000029:                                                                                                  #                                  1/SQRT(MU)    +14      SQRT(CS SQ/METERS CUBED)
049455,000030: 
049456,000031:                                                                                                  #  ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
049457,000032:                                                                                                  #  THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM  TFF/CONIC WILL GENERATE VONE/RTMU  AND
049458,000033:                                                                                                  #  LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
049459,000034:                                                                                                  #           THE USER MUST STORE THE STATE VECTOR IN RONE, VONE  AND MU  IN THE FORM 1/SQRT(MU) IN  TFF/RTMU
049460,000035:                                                                                                  #  AT THE PROPER SCALE BEFORE CALLING  TFF/CONIC. SINCE RONE, VONE  ARE IN THE EXTENDED VERB STORAGE AREA,
049461,000036:                                                                                                  #  THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
049462,000037:                                                                                                  #           PROGRAMS     CALC/TFF  AND  CALC/TPER  ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
049463,000038:                                                                                                  #  RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
049464,000039: 
049465,000040:                                                                                                  #           THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
049466,000041: 
049467,000042:                                                                                                  #                                                               BELOW     E:  IS USED FOR EARTH ORIGIN SCALE
049468,000043:                                                                                                  #                                                                         M:  IS USED FOR MOON  ORIGIN SCALE
049469,000044: 
049470,000045:                                                                                                  # TFFSW          =       119D    BIT1    0 = CALCTFF         1 = CALCTPER
049471,000046: 23,3625                        TFFDELQ            =        10D                                   #        Q2-Q1               E: (-16)  M: (-15)
049472,000047: 23,3625                        RMAG1              =        12D                                   #        ABVAL(RN)  M        E: (-29)  M: (-27)
049473,000048:                                                                                                  # RPER           =       14D             PERIGEE RADIUS M    E: (-29)  M: (-27)
049474,000049: 23,3625                        TFFQ1              =        14D                                   #        R.V / SQRT(MUE)     E: (-16)  M: (-15)
049475,000050:                                                                                                  # SDELF/2                                SIN(THETA) /2
049476,000051: 23,3625                        CDELF/2            =        14D                                   #        COS(THETA) /2
049477,000052:                                                                                                  # RAPO           =       16D             APOGEE RADIUS  M    E: (-29)  M: (-27)
049478,000053: 23,3625                        NRTERM             =        16D                                   #        TERMINAL RADIUS  M  E: (-29+NR)
049479,000054:                                                                                                  #                            M: (-27+NR)
049480,000055: 23,3625                        RTERM              =        18D                                   #        TERMINAL RADIUS  M  E: (-29)  M: (-27)
049481,000056: 23,3625                        TFFVSQ             =        20D                                   #        -(V SQUARED/MU)   1/M  E: (20)   M: (18)
049482,000057: 23,3625                        TFF1/ALF           =        22D                                   #        SEMI MAJ AXIS  M  E: (-22-2 NA)
049483,000058:                                                                                                  #                          M: (-20-2 NA)
049484,000059: 23,3625                        TFFRTALF           =        24D                                   #        SQRT(ALFA)  E:(10+NA)  M: (9+NA)
049485,000060: 23,3625                        TFFALFA            =        26D                                   #        ALFA  1/M   E:(26-NR)  M: (24-NR)
049486,000061: 23,3625                        TFFNP              =        28D                                   #        SEMI LATUS RECTUM M  E: (-38+2 NR)
049487,000062:                                                                                                  #                             M: (-36+2 NR)
049488,000063: 23,3625                        TFF/RTMU           =        30D                                   #        1/SQRT(MU)        E: (17)   M: (14)
049489,000064: 23,3625                        NRMAG              =        32D                                   #        PRESENT RADIUS  M E: (-29+NR)
049490,000065:                                                                                                  #                          M: (-27+NR)
049491,000066: 23,3625                        TFFX               =        34D                                   
049492,000067: 23,3625                        TFFTEM             =        36D                                   #        TEMPORARY
049493,000068:                                                                                                  #                REGISTERS S1, S2 ARE UNTOUCHED BY ANY TFF SUBROUTINE
049494,000069:                                                                                                  #                INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
049495,000070:                                                                                                  #                LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
049496,000071:                                                                                                  #                SUBROUTINES.
049497,000072:                                                                                                  #                -NR                             C(X1) = NORM COUNT OF RMAG
049498,000073:                                                                                                  #                -NA                             C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
049499,000074: 
049500,000075:                                                                                                  #  SUBROUTINE NAME:  TFFCONIC                                            DATE:  01.29.67
049501,000076:                                                                                                  #  MOD NO:  0                                                            LOG SECTION:  TIME OF FREE FALL
049502,000077:                                                                                                  #  MOD BY:  RR BAIRNSFATHER
049503,000078:                                                                                                  #  MOD NO:  1    MOD BY:  RR BAIRNSFATHER        DATE: 11 APR 67
049504,000079:                                                                                                  #  MOD NO:  2    MOD BY:  RR BAIRNSFATHER        DATE: 21 NOV 67         ADD MOON MU.
049505,000080:                                                                                                  #  MOD NO:  3    MOD BY:  RR BAIRNSFATHER        DATE: 21 MAR 68         ACCEPT DIFFERENT EARTH/MOON SCALES
049506,000081: 
049507,000082:                                                                                                  #  FUNCTIONAL DESCRIPTION:  THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
049508,000083:                                                                                                  #        SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA.  THE PARAMETERS ARE LISTED UNDER OUTPUT.
049509,000084:                                                                                                  #        THE EQUATIONS ARE
049510,000085:                                                                                                  #                -   -  - 
049511,000086:                                                                                                  #                H = RN*VN                       ANGULAR MOMENTUM
049512,000087:                                                                                                  #                      - -
049513,000088:                                                                                                  #                LCP = H.H / MU                  SEMI LATUS RECTUM
049514,000089:                                                                                                  #                              -  - 
049515,000090:                                                                                                  #                ALFA = 2/RN - VN.VN / MU        RECIPROCAL SEMI MAJ AXIS, SIGNED
049516,000091: 
049517,000092:                                                                                                  #        AND ALFA IS POS FOR ELLIPTIC ORBITS
049518,000093:                                                                                                  #                      0 FOR PARABOLIC ORBITS
049519,000094:                                                                                                  #                    NEG FOR HYPERBOLIC ORBITS.
049520,000095:                                                                                                  #        SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
049521,000096: 
049522,000097:                                                                                                  #  CALLING SEQUENCE:
049523,000098:                                                                                                  #        TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
049524,000099:                                                                                                  #        1/SQRT(MU).  PROGRAM WILL SAVE IN TFF/RTMU.  THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
049525,000100:                                                                                                  #        ORIGIN IS USED.  THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
049526,000101:                                                                                                  #        VONE AT PROPER SCALE.  THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
049527,000102:                                                                                                  #        TFF ROUTINES.
049528,000103: 
049529,000104:                                                                                                  #        ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
049530,000105: 
049531,000106:                                                                                                  #        TO SPECIFY MU:  DLOAD   CALL                            IF MU ALREADY STORED:   CALL
049532,000107:                                                                                                  #                                YOURMU  1/RTMU E:(17) M:(14)                                    TFFCONMU
049533,000108:                                                                                                  #                                TFFCONIC
049534,000109:                                                                                                  #        PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
049535,000110: 
049536,000111:                                                                                                  #  SUBROUTINES CALLED:  NONE
049537,000112: 
049538,000113:                                                                                                  #  NORMAL EXIT MODES:  RVQ
049539,000114: 
049540,000115:                                                                                                  #  ALARMS:  NONE
049541,000116: 
049542,000117:                                                                                                  #  OUTPUT:       THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
049543,000118:                                                                                                  #                RMAG1           E:(-29) M:(-27) M  RN, PRESENT RADIUS LENGTH.
049544,000119:                                                                                                  #                NRMAG           E:(-29+NR)      M  RMAG, NORMALIZED
049545,000120:                                                                                                  #                                M:(-27+NR)
049546,000121:                                                                                                  #                X1                              -NR, NORM COUNT
049547,000122:                                                                                                  #                TFFNP           E:(-38+2NR)     M  LCP, SEMI LATUS RECTUM, WEIGHTED BY NR.      FOR VGAMCALC
049548,000123:                                                                                                  #                                M:(-36+2NR)
049549,000124:                                                                                                  #                TFF/RTMU        E:(17) M:(14)   1/SQRT(MU)
049550,000125:                                                                                                  #                TFFVSQ          E:(20) M:(18)   1/M  -(V SQ/MU):  PRESENT VELOCITY,NORMLIZED.   FOR VGAMCALC
049551,000126:                                                                                                  #                TFFALFA         E:(26-NR)       1/M  ALFA, WEIGHTED BY NR
049552,000127:                                                                                                  #                                M:(24-NR)
049553,000128:                                                                                                  #                TFFRTALF        E:(10+NA)       SQRT(ALFA), NORMALIZED
049554,000129:                                                                                                  #                                M:(9+NA)
049555,000130:                                                                                                  #                X2                              -NA, NORMCOUNT
049556,000131:                                                                                                  #                TFF1/ALF        E:(-22-2NA)     SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
049557,000132:                                                                                                  #                                M:(-20-2NA)
049558,000133:                                                                                                  #                PUSHLOC AT PDL+0
049559,000134: 
049560,000135:                                                                                                  #        THE FOLLOWING IS STORED IN GENERAL ERASABLE
049561,000136:                                                                                                  #                VONE'           E:(10) M:(9)    V/RT(MU), NORMALIZED VELOCITY
049562,000137: 
049563,000138:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED:
049564,000139:                                                                                                  #                RONE            E:(-29) M:(-27) M  STATE VECTOR         LEFT BY CALLER
049565,000140:                                                                                                  #                VONE            E:(-7) M:(-5)   M/CS  STATE VECTOR      LEFT BY CALLER
049566,000141:                                                                                                  #                TFF/RTMU        E:(17) M:(14)   1/RT(CS SQ/M CUBE)      IF ENTER VIA TFFCONMU.
049567,000142: 
049568,000143:                                                                                                  #  DEBRIS:       QPRET,          PDL+0 ... PDL+3
049569,000144: 
049570,000145: 33,3741                                           BANK     33                                    
049571,000146: 27,2000                                           SETLOC   TOF-FF                                
049572,000147: 27,2000                                           BANK                                           
049573,000148: 
049574,000149: 27,3313                                           COUNT*   $$/TFF                                
049575,000150: 
049576,000151: 27,3313           00037        TFFCONIC           STORE    TFF/RTMU                              #  1/SQRT(MU)    E:(17) M:(14)
049577,000152: 
049578,000153: 27,3314           51575        TFFCONMU           VLOAD    ABVAL                                 #  COME HERE WITH TFFRTMU LOADED.
049579,000154: 27,3315           02215                                    RONE                                  #  SAVED RN.  M  E:(-29) M:(-27)
049580,000155: 27,3316           00015                           STORE    RMAG1                                 #  M  E:(-29) M:(-27)
049581,000156: 
049582,000157: 27,3317           77701                           NORM                                           
049583,000158: 27,3320           00047                                    X1                                    #  -NR
049584,000159: 27,3321           24041                           STOVL    NRMAG                                 #  RMAG  M  E:(-29+NR) M:(-27+NR)
049585,000160: 27,3322           02215                                    RONE                                  
049586,000161: 27,3323           47257                           VSL*     VXV                                   
049587,000162: 27,3324           20200                                    0          -1,1                       
049588,000163: 27,3325           02223                                    VONE                                  #  SAVED VN.  M/CS  E:(-7) M:(-5)
049589,000164: 27,3326           47541                           V/SC     VSQ                                   
049590,000165: 27,3327           00037                                    TFF/RTMU                              #  E:(17) M:(14)
049591,000166: 27,3330           14035                           STODL    TFFNP                                 #  LC P  M  E:(-38+2NR) M:(-36+2NR)
049592,000167:                                                                                                  #  SAVE ALSO FOR VGAMCALC
049593,000168: 27,3331           06223                                    TFF1/4                                
049594,000169: 27,3332           63271                           DDV      PDVL                                  #  (2/RMAG)  1/M  E:(26-NR) M:(24-NR)
049595,000170: 27,3333           00041                                    NRMAG                                 #  RMAG  M  E:(-29+NR) M:(-27+NR)
049596,000171: 27,3334           02223                                    VONE                                  #  SAVED VN.  E:(10) M:(9)
049597,000172: 27,3335           47541                           V/SC     VSQ                                   
049598,000173: 27,3336           00037                                    TFF/RTMU                              #  KEEP MPAC+2 HONEST FOR SQRT.
049599,000174: 27,3337           00025                           STORE    TFFVSQ                                #  -(V SQ/MU)  E:(20) M:(18)
049600,000175:                                                                                                  #  SAVE FOR VGAMCALC
049601,000176: 27,3340           57457                           SR*      DCOMP                                 
049602,000177: 27,3341           20575                                    0          -4,1                       #  GET -VSQ/MU  E:(26-NR) M:(24-NR)
049603,000178: 27,3342           45415                           DAD      STADR                                 
049604,000179:                                                                                                  #  2/RMAG  FROM PDL+2
049605,000180: 27,3343           77744                           STORE    TFFALFA                               #  ALFA  1/M  E:(26-NR) M:(24-NR)
049606,000181: 27,3344           41457                           SL*      PUSH                                  #  TEMP SAVE ALFA  E:(20) M:(18)
049607,000182: 27,3345           20173                                    0          -6,1                       
049608,000183: 27,3346           75446                           ABS      SQRT                                  #  E:(10) M:(9)
049609,000184: 27,3347           77701                           NORM                                           
049610,000185: 27,3350           00050                                    X2                                    #  X2 = -NA
049611,000186: 27,3351           00031                           STORE    TFFRTALF                              #  SQRT( ABS(ALFA) )  E:(10+NA) M:(9+NA)
049612,000187: 27,3352           75316                           DSQ      SIGN                                  #  NOT SO ACCURATE, BUT OK
049613,000188:                                                                                                  #  ALFA FROM PDL+2  E:(20) M:(18)
049614,000189: 27,3353           55254                           BZE      BDDV                                  #  SET 1/ALFA =0, TO SHOW SMALL ALFA
049615,000190: 27,3354           57356                                    +2                                    
049616,000191: 27,3355           06223                                    TFF1/4                                
049617,000192: 27,3356           00027                 +2        STORE    TFF1/ALF                              #  1/ALFA  E:(-22-2NA) M:(-20-2NA)
049618,000193: 27,3357           77616        DUMPCNIC           RVQ                                            
049619,000194: 
049620,000195:                                                                                                  #                                                              39 W
049621,000196:                                                                                                  #  SUBROUTINE NAME:  TFFRP/RA                                            DATE: 01.17.67
049622,000197:                                                                                                  #  MOD NO:  0                                                            LOG SECTION:  TIME OF FREE FALL
049623,000198:                                                                                                  #  MOD BY:  RR BAIRNSFATHER
049624,000199:                                                                                                  #  MOD NO:  1    MOD BY:  RR BAIRNSFATHER        DATE: 11 APR 67
049625,000200:                                                                                                  #  MOD NO:  2    MOD BY:  RR BAIRNSFATHER        DATE: 21 MAR 68         ACCEPT DIFFERENT EARTH/MOON SCALES
049626,000201:                                                                                                  #                                                                        ALSO IMPROVE ACCURACY OF RAPO.
049627,000202: 
049628,000203:                                                                                                  #  FUNCTIONAL DESCRIPTION:  USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
049629,000204:                                                                                                  #        APOGEE RADIUS FOR A GENERAL CONIC.
049630,000205:                                                                                                  #        PROGRAM GIVES PERIGEE RADIUS AS         APOGEE RADIUS IS GIVEN BY
049631,000206:                                                                                                  #                RP = P/(1+E)                            RA = (1+E) / ALFA
049632,000207:                                                                                                  #        WHERE    2
049633,000208:                                                                                                  #                E  = 1 - P ALFA
049634,000209:                                                                                                  #        IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
049635,000210:                                                                                                  #                1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
049636,000211:                                                                                                  #                2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
049637,000212:                                                                                                  #                3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
049638,000213: 
049639,000214:                                                                                                  #        THIS SUBROUTINE REQUIRES THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
049640,000215: 
049641,000216:                                                                                                  #  CALLING SEQUENCE:     CALL
049642,000217:                                                                                                  #                                TFFRP/RA
049643,000218:                                                                                                  #        PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
049644,000219:                                                                                                  #        C(MPAC) UNSPECIFIED
049645,000220: 
049646,000221:                                                                                                  #  SUBROUTINES CALLED:   NONE
049647,000222: 
049648,000223:                                                                                                  #  NORMAL EXIT MODE:     RVQ
049649,000224:                                                                                                  #        IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
049650,000225:                                                                                                  #        OTHERWISE, RAPO = POSMAX.
049651,000226: 
049652,000227:                                                                                                  #  ALARMS:       NONE
049653,000228: 
049654,000229:                                                                                                  #  OUTPUT:       STORED IN PUSH LIST AREA.  SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
049655,000230:                                                                                                  #        RPER    E:(-29) M:(-27)         M       PERIGEE RADIUS          DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
049656,000231:                                                                                                  #        RAPO    E:(-29) M:(-27)         M       APOGEE RADIUS           WILL BE DESTROYED BY CALCTFF/CALCTPER
049657,000232:                                                                                                  #        PUSHLOC AT PDL+0
049658,000233: 
049659,000234:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED:
049660,000235:                                                                                                  #        TFFALFA E:(26-NR)               M       1/SEMI MAJ AXIS         LEFT BY TFFCONIC
049661,000236:                                                                                                  #                M:(24-NR)
049662,000237:                                                                                                  #        TFFNP   E:(-38+2NR)             M       LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
049663,000238:                                                                                                  #                M:(-36+2NR)
049664,000239:                                                                                                  #        X1                              -NR, NORM COUNT OF RMAG         LEFT BY TFFCONIC
049665,000240:                                                                                                  #        X2                              -NA, NORM COUNT OF ALFA         LEFT BY TFFCONIC
049666,000241: 
049667,000242:                                                                                                  #  DEBRIS:       QPRET, PDL+0 ... PDL+1
049668,000243: 
049669,000244: 27,3360                        RAPO               =        16D                                   #  APOGEE RADIUS  M  E:(-29) M:(-27)
049670,000245: 27,3360                        RPER               =        14D                                   #  PERIGEE RADIUS  M  E:(-29) M:(-27)
049671,000246: 
049672,000247: 27,3360           41345        TFFRP/RA           DLOAD    DMP                                   
049673,000248: 27,3361           00033                                    TFFALFA                               #  ALFA  1/M  E:(26-NR) M:(24-NR)
049674,000249: 27,3362           00035                                    TFFNP                                 #  LC P  M E:(-38+2NR) M:(-36+2NR)
049675,000250: 27,3363           57457                           SR*      DCOMP                                 #  ALFA P (-12+NR)
049676,000251: 27,3364           20571                                    0          -8D,1                      #  ALFA P (-4)
049677,000252: 27,3365           51415                           DAD      ABS                                   #  (DCOMP GIVES VALID TP RESULT FOR SQRT)
049678,000253:                                                                                                  #  (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
049679,000254: 27,3366           17716                                    DP2(-4)                               
049680,000255: 27,3367           43366                           SQRT     DAD                                   #  E SQ = (1- P ALFA) (-4)
049681,000256: 27,3370           06223                                    TFF1/4                                
049682,000257: 27,3371           55206                           PUSH     BDDV                                  #  (1+E)  (-2)  TO PDL+0
049683,000258: 27,3372           00035                                    TFFNP                                 #  LCP  M  E:(-38+2NR) M:(-36+2NR)
049684,000259: 27,3373           53657                           SR*      SR*                                   #  (DOES SR THEN SL TO AVOID OVFL)
049685,000260: 27,3374           20601                                    0,1                                   #  X1=-NR
049686,000261: 27,3375           20572                                    0          -7,1                       #  (EFFECTIVE SL)
049687,000262: 27,3376           14017                           STODL    RPER                                  #  PERIGEE RADIUS  M  E:(-29) M:(-27)
049688,000263: 27,3377           00033                                    TFFALFA                               #  (1+E)  (-2)  FROM PDL+0
049689,000264: 27,3400           71244                           BPL      DLOAD                                 
049690,000265: 27,3401           57403                                    +2                                    
049691,000266: 27,3402           06233                                    TFFZEROS                              
049692,000267: 27,3403           77725                           PDDL                                           
049693,000268: 27,3404           56257                           SR*      DDV                                   
049694,000269: 27,3405           20602                                    1,1                                   
049695,000270: 
049696,000271: 27,3406           77604                           BOVB                                           
049697,000272: 27,3407           57702                                    TCDANZIG                              #  CLEAR OVFIND, IF ON.
049698,000273: 27,3410           00021                           STORE    RAPO                                  #  APOGEE RADIUS  M  E:(-29) M:(-27)
049699,000274: 27,3411           77616        DUMPRPRA           RVQ                                            
049700,000275: 
049701,000276:                                                                                                  #                                                                30 W
049702,000277:                                                                                                  #  SUBROUTINE NAME:  CALCTPER / CALCTFF                                  DATE:  01.29.67
049703,000278:                                                                                                  #  MOD NO:  0                                                            LOG SECTION:  TIME OF FREE FALL
049704,000279:                                                                                                  #  MOD BY:  RR BAIRNSFATHER
049705,000280:                                                                                                  #  MOD NO:  1    MOD BY:  RR BAIRNSFATHER        DATE: 21 MAR 67
049706,000281:                                                                                                  #  MOD NO:  2    MOD BY:  RR BAIRNSFATHER        DATE: 14 APR 67
049707,000282:                                                                                                  #  MOD NO:  3    MOD BY:  RR BAIRNSFATHER        DATE: 8 JUL 67          NEAR EARTH MUE AND NEG TFF (GONEPAST)
049708,000283:                                                                                                  #  MOD NO:  4    MOD BY:  RR BAIRNSFATHER        DATE: 21 NOV 67         ADD VARIABLE MU.
049709,000284:                                                                                                  #  MOD NO:  5    MOD BY:  RR BAIRNSFATHER        DATE: 21 MAR 68         ACCEPT DIFFERENT EARTH/MOON SCALES
049710,000285: 
049711,000286:                                                                                                  #  FUNCTIONAL DESCRIPTION:  PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
049712,000287:                                                                                                  #        VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER.  THE POSITION VECTOR
049713,000288:                                                                                                  #        RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
049714,000289:                                                                                                  #        THE EQUATIONS ARE
049715,000290: 
049716,000291:                                                                                                  #                Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP)  (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
049717,000292:                                                                                                  #                     -  - 
049718,000293:                                                                                                  #                Q1 = RN.VN / SQRT(MU)                                   LEQ +- LCE/SQRT(ALFA)
049719,000294: 
049720,000295:                                                                                                  #                Z = NUM / DEN                                           LEQ +- 1/SQRT(ALFA)
049721,000296: 
049722,000297:                                                                                                  #        WHERE, IF INBOUND
049723,000298:                                                                                                  #                NUM = RTERM -RN                                         LEQ +- 2 LCE/ALFA
049724,000299:                                                                                                  #                DEN = Q2+Q1                                             LEQ +- 2 LCE/SQRT(ALFA)
049725,000300: 
049726,000301:                                                                                                  #        AND, IF OUTBOUND
049727,000302:                                                                                                  #                NUM = Q2-Q1                                             LEQ +- 2 LCE/SQRT(ALFA)
049728,000303:                                                                                                  #                DEN = 2 - ALFA (RTERM + RN).                            LEQ +- 2 LCE
049729,000304: 
049730,000305:                                                                                                  #        IF      ALFA ZZ < 1.0           (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
049731,000306:                                                                                                  #        THEN    X = ALFA Z Z
049732,000307:                                                                                                  #        AND     TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
049733,000308:                                                                                                  #                EXCEPT  IF ALFA PNZ, AND IF TFF NEG,
049734,000309:                                                                                                  #                THEN    TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
049735,000310:                                                                                                  #        OR      IF ALFA ZZ GEQ 1.0      (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
049736,000311:                                                                                                  #        THEN    X = 1/ALFA Z Z
049737,000312:                                                                                                  #        AND     TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
049738,000313:                                                                                                  #        WHERE   T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
049739,000314:                                                                                                  #                             2      3             2
049740,000315:                                                                                                  #                1/3 - X/5 + X /7 - X /9 ...     (X  < 1.0)
049741,000316: 
049742,000317:                                                                                                  #  CALLING SEQUENCE:     TIME TO RTERM                   TIME TO PERIGEE
049743,000318:                                                                                                  #                        CALL                            CALL
049744,000319:                                                                                                  #                                CALCTFF                         CALCTPER
049745,000320:                                                                                                  #                        C(MPAC) = TERMNL RAD M          C(MPAC) = PERIGEE RAD M
049746,000321:                                                                                                  #        FOR EITHER, E:(-29) M:(-27)
049747,000322:                                                                                                  #        FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D.
049748,000323: 
049749,000324:                                                                                                  #  SUBROUTINES CALLED:   T(X), VIA RTB
049750,000325: 
049751,000326:                                                                                                  #  NORMAL EXIT MODE:     RVQ
049752,000327:                                                                                                  #        HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC.  USER MUST STORE.
049753,000328:                                                                                                  #                A. TFF = FLIGHT TIME.  NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
049754,000329:                                                                                                  #                B. (THIS OPTION IS NO LONGER USED.)
049755,000330:                                                                                                  #                C. TFF = POSMAX.  THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
049756,000331:                                                                                                  #                   THE SPECIFIED ALTITUDE.  ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
049757,000332: 
049758,000333:                                                                                                  #  OUTPUT:       C(MPAC)         (-28) CS        TIME OF FLIGHT, OR TIME TO PERIGEE
049759,000334:                                                                                                  #                TFFX            (0)             X,                                      LEFT FOR ENTRY DISPLAY TFF ROUTINES
049760,000335:                                                                                                  #                NRTERM          E:(-29+NR) M    RTERM, WEIGHTED BY NR                   LEFT FOR ENTRY DISPLAY TFF ROUTINES
049761,000336:                                                                                                  #                                M:(-27+NR)
049762,000337:                                                                                                  #                TFFTEM          E:(-59+2NR)     LCP Z Z SGN(SDELF)                      LEFT FOR ENTRY DISPLAY TFF ROUTINES
049763,000338:                                                                                                  #                                M:(-55+2NR)     LCP /ALFA SGN(SDELF)                    LEFT FOR ENTRY DISPLAY TFF ROUTINES
049764,000339:                                                                                                  #                NOTE:   TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
049765,000340:                                                                                                  #                RMAG1           E:(-29) M:(-27) PDL 12 NOT TOUCHED.
049766,000341:                                                                                                  #                TFFQ1           E:(-16) M:(-15) PDL 14D
049767,000342:                                                                                                  #                TFFDELQ         E:(-16) M:(-15) PDL 10D
049768,000343:                                                                                                  #                PUSHLOC AT PDL+0
049769,000344: 
049770,000345:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED:
049771,000346:                                                                                                  #                RONE            E:(-29) M:(-27) M  STATE VECTOR                         LEFT BY USER
049772,000347:                                                                                                  #                VONE'           E:(+10) M:(+9)  VN/SQRT(MU)                             LEFT BY TFF/CONIC
049773,000348:                                                                                                  #                RMAG1           E:(-29) M:(-27) PRESENT RADIUS, M                       LEFT BY TFFCONIC
049774,000349:                                                                                                  #                C(MPAC)         E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M        LEFT BY USER
049775,000350: 
049776,000351:                                                                                                  #                THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
049777,000352:                                                                                                  #                TFF/RTMU        E:(17) M:(14)   1/SQRT(MU)                              LEFT BY TFFCONIC.
049778,000353:                                                                                                  #                NRMAG           E:(-29+NR)      M  RMAG, NORMALIZED                     LEFT BY TFFCONIC
049779,000354:                                                                                                  #                                M:(-27+NR)
049780,000355:                                                                                                  #                X1                              -NR, NORM COUNT                         LEFT BY TFFCONIC
049781,000356:                                                                                                  #                TFFNP           E:(-38+2NR)     M  LCP, SEMI LATUS RECTUM, WEIGHT NR    LEFT BY TFFCONIC
049782,000357:                                                                                                  #                                M:(-36+2NR)
049783,000358:                                                                                                  #                TFFALFA         E:(26-NR)       1/M  ALFA, WEIGHT NR                    LEFT BY TFFCONIC
049784,000359:                                                                                                  #                                M:(24-NR)
049785,000360:                                                                                                  #                TFFRTALF        E:(10+NA)       SQRT(ALFA), NORMALIZED                  LEFT BY TFFCONIC
049786,000361:                                                                                                  #                                M:(9+NA)
049787,000362:                                                                                                  #                X2                              -NA, NORMCOUNT                          LEFT BY TFFCONIC
049788,000363:                                                                                                  #                TFF1/ALF        E:(-22-2NA)     SIGNED SEMIMAJ AXIS, WEIGHTED BY NA     LEFT BY TFFCONIC
049789,000364:                                                                                                  #                                M:(-20-2NA)
049790,000365: 
049791,000366:                                                                                                  #  DEBRIS:       QPRET, PDL+0 ... PDL+3
049792,000367:                                                                                                  #                RTERM           E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
049793,000368:                                                                                                  #                RAPO            E:(-29) M:(-27) PDL 16D (=NRTERM)
049794,000369:                                                                                                  #                RPER            E:(-29) M:(-27) PDL 14D (=TFFQ1)
049795,000370: 
049796,000371: 27,3412           77614        CALCTPER           SETGO                                          #  ENTER WITH RPER IN MPAC
049797,000372: 27,3413           03436                                    TFFSW                                 
049798,000373: 27,3414           57417                                    +3                                    
049799,000374: 27,3415           77614        CALCTFF            CLEAR                                          #  ENTER WITH RTERM IN MPAC
049800,000375: 27,3416           03676                                    TFFSW                                 
049801,000376: 27,3417           00023                 +3        STORE    RTERM                                 #  E:(-29) M:(-27)
049802,000377: 27,3420           77657                           SL*                                            
049803,000378: 27,3421           20201                                    0,1                                   #  X1=-NR
049804,000379: 27,3422           00021                           STORE    NRTERM                                #  RTERM  E:(-29+NR) M:(-27+NR)
049805,000380: 27,3423           44205                           DMP      BDSU                                  
049806,000381: 27,3424           00033                                    TFFALFA                               #  ALFA  E:(26-NR) M:(24-NR)
049807,000382: 27,3425           06223                                    TFF1/4                                
049808,000383: 27,3426           41206                           PUSH     DMP                                   #  (2-ALFA RTERM)  (-3)  TO PDL+0
049809,000384: 27,3427           00021                                    NRTERM                                #  E:(-29+NR) M:(-27+NR)
049810,000385: 27,3430           53725                           PDDL     SR*                                   #  RTERM(2-ALFA RTERM) TO PDL+2
049811,000386:                                                                                                  #  E:(-32+NR) M:(-30+NR)
049812,000387: 27,3431           00035                                    TFFNP                                 #  LC P  E:(-38+2NR) M:(-36+2NR)
049813,000388: 27,3432           20573                                    0          -6,1                       #  X1 = -NR
049814,000389: 27,3433           43276                           DCOMP    DAD                                   #  DUE TO SHIFTS, KEEP PRECISION FOR SQRT
049815,000390:                                                                                                  #  RTERM(2-ALFA RTERM) FROM PDL +2
049816,000391:                                                                                                  #  E:(-32+NR) M:(-30+NR)
049817,000392: 27,3434           77657                           SR*                                            #  LEAVE  E:(-32) M:(-30)
049818,000393: 27,3435           20601                                    0,1                                   #  X1 = -NR
049819,000394: 27,3436           71214                           BOFF     DLOAD                                 #  CHECK TFF /TPER SWITCH
049820,000395: 27,3437           03756                                    TFFSW                                 
049821,000396: 27,3440           57442                                    +2                                    #  IF TFF, CONTINUE
049822,000397: 27,3441           06233                                    TFFZEROS                              #  IF TPER, SET Q2 = 0
049823,000398: 27,3442           75440                 +2        BMN      SQRT                                  #  E:(-16) M:(-15)
049824,000399: 
049825,000400: 27,3443           57577                                    MAXTFF1                               #  NO FREE FALL CONIC TO RTERM FROM HERE
049826,000401:                                                                                                  #  RESET PDL, SET TFF=POSMAX, AND EXIT.
049827,000402: 
049828,000403: 27,3444           41076                           DCOMP    BOVB                                  #  RT IS ON INBOUND SIDE.  ASSURE OVFIND=0
049829,000404: 27,3445           57702                                    TCDANZIG                              #  ANY PORT IN A STORM.
049830,000405: 27,3446           24045                           STOVL    TFFTEM                                #  Q2  E:(-16) M:(-15)
049831,000406: 27,3447           02223                                    VONE                                  #  VN/SQRT(MU)  E:(10) M:(9)
049832,000407: 27,3450           77641                           DOT                                            
049833,000408: 27,3451           02215                                    RONE                                  #  SAVED RN.  E:(-29) M:(-27)
049834,000409: 27,3452           56312                           SL2      DDV                                   
049835,000410: 27,3453           00037                                    TFF/RTMU                              
049836,000411: 27,3454           00017                           STORE    TFFQ1                                 #  Q1, SAVE FOR GONEPAST TEST.
049837,000412:                                                                                                  #  E:(-16) M:(-15)
049838,000413: 27,3455           44240                           BMN      BDSU                                  
049839,000414: 27,3456           57477                                    INBOUND                               #  USE ALTERNATE Z
049840,000415: 27,3457           00045                                    TFFTEM                                #  Q2  E:(-16) M:(-15)
049841,000416: 
049842,000417:                                                                                                  #  OUTBOUND Z CALC CONTINUES HERE
049843,000418: 
049844,000419: 27,3460           14043                           STODL    TFFX                                  #  NUM=Q2-Q1  E:(-16) M:(-15)
049845,000420: 27,3461           00033                                    TFFALFA                               #  ALFA  E:(26-NR) M:(24-NR)
049846,000421: 27,3462           44205                           DMP      BDSU                                  
049847,000422: 27,3463           00041                                    NRMAG                                 #  RMAG  E:(-29+NR) M:(-27+NR)
049848,000423:                                                                                                  #  (2-RTERM ALFA)  (-3) FROM PDL+0
049849,000424: 27,3464           51406        SAVEDEN            PUSH     ABS                                   #  DEN TO PDL+0  E:(-3) OR (-16)
049850,000425:                                                                                                  #                M:(-3) OR (-15)
049851,000426: 27,3465           40015                           DAD      BOV                                   #  INDETERMINANCY TEST
049852,000427: 27,3466           17710                                    LIM(-22)                              #  =1.0-B(-22)
049853,000428: 27,3467           57510                                    TFFXTEST                              #  GO IF DEN >/= B(-22)
049854,000429: 27,3470           65345                           DLOAD    PDDL                                  #  SET DEN=0 OTHERWISE
049855,000430: 27,3471           06233                                    TFFZEROS                              
049856,000431:                                                                                                  #  XCH ZERO WITH PDL+0
049857,000432: 27,3472           57545                           DLOAD    DCOMP                                 
049858,000433: 27,3473           00033                                    TFFALFA                               #  ALFA  E:(26-NR) M:(24-NR)
049859,000434: 27,3474           71240                           BMN      DLOAD                                 #  FOR TPER:  Z INDET AT DELE/2=0 AND 90.
049860,000435: 27,3475           57604                                    TFFEL1                                #  ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
049861,000436: 
049862,000437:                                                                                                  #  Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
049863,000438: 27,3476           77616        DUMPTFF1           RVQ                                            #  RETURN TFF =0
049864,000439: 
049865,000440:                                                                                                  #  INBOUND Z CALC CONTINUES HERE
049866,000441: 
049867,000442: 27,3477           77745        INBOUND            DLOAD                                          #  RESET PDL+0
049868,000443: 27,3500           45345                           DLOAD    DSU                                   #  ALTERNATE Z CALC
049869,000444: 27,3501           00023                                    RTERM                                 #  E:(-29) M:(-27)
049870,000445: 27,3502           00015                                    RMAG1                                 #  E:(-29) M:(-27)
049871,000446: 27,3503           14043                           STODL    TFFX                                  #  NUM=RTERM-RN  E:(-29) M:(-27)
049872,000447: 27,3504           00045                                    TFFTEM                                #  Q2  E:(-16) M:(-15)
049873,000448: 27,3505           52015                           DAD      GOTO                                  
049874,000449: 27,3506           00017                                    TFFQ1                                 #  Q1  E:(-16) M:(-15)
049875,000450: 27,3507           57464                                    SAVEDEN                               #  DEN = Q2+Q1  E:(-16) M:(-15)
049876,000451: 
049877,000452: 27,3510           65215        TFFXTEST           DAD      PDDL                                  #  (ABS(DEN) TO PDL+2))  E:(-3) OR (-16)
049878,000453:                                                                                                  #                        M:(-3) OR (-15)
049879,000454: 27,3511           17712                                    DP(-22)                               #  RESTORE ABS(DEN) TO MPAC
049880,000455: 27,3512           00043                                    TFFX                                  #  NUM  E:(-16) OR (-29)  M:(-15) OR (-27)
049881,000456: 27,3513           53605                           DMP      SR*                                   
049882,000457: 27,3514           00031                                    TFFRTALF                              #  SQRT(ALFA)  E:(10+NA) M:(9+NA)
049883,000458: 27,3515           57201                                    0          -3,2                       #  X2=-NA
049884,000459: 27,3516           77671                           DDV                                            #  C(MPAC) =NUM SQRT(ALFA)       E:(-3) OR (-16)
049885,000460:                                                                                                  #                                M:(-3) OR (-15)
049886,000461:                                                                                                  #  ABS(DEN) FROM PDL+2   E:(-3) OR (-16)
049887,000462:                                                                                                  #                        M:(-3) OR (-15)
049888,000463: 27,3517           40145                           DLOAD    BOV                                   #  (THE DLOAD IS SHARED WITH TFFELL)
049889,000464: 27,3520           00043                                    TFFX                                  #  NUM  E:(-16) OR (-29)  M:(-15) OR (-27)
049890,000465: 27,3521           57602                                    TFFELL                                #  USE EQN FOR DELE GEQ 90, LEQ -90
049891,000466: 
049892,000467:                                                                                                  #  OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
049893,000468: 
049894,000469: 27,3522           45471                           DDV      STADR                                 
049895,000470:                                                                                                  #  DEN FROM PDL+0        E:(-3) OR (-16)
049896,000471:                                                                                                  #                        M:(-3) OR (-15)
049897,000472: 27,3523           77732                           STORE    TFFTEM                                #  Z SAVE FOR SIGN OF SDELF.
049898,000473:                                                                                                  #  E:(-13) M:(-12)
049899,000474: 27,3524           63406                           PUSH     DSQ                                   #  Z TO PDL+0
049900,000475: 27,3525           41206                           PUSH     DMP                                   #  Z SQ TO PDL+2  E:(-26) M:(-24)
049901,000476: 27,3526           00035                                    TFFNP                                 #  LC P  E:(-38+2NR) M:(-36+2NR)
049902,000477: 27,3527           75261                           SL       SIGN                                  
049903,000478: 27,3530           20206                                    5                                     
049904,000479: 27,3531           00045                                    TFFTEM                                #  AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
049905,000480: 27,3532           14045                           STODL    TFFTEM                                #  P ZSQ  E:(-59+2NR) M:(-55+2NR)
049906,000481:                                                                                                  #  (ARG IS USED IN TFF/TRIG)
049907,000482:                                                                                                  #  ZSQ FROM PDL+2  E:(-26) M:(-24)
049908,000483: 27,3533           41206                           PUSH     DMP                                   #  RESTORE PUSH LOC
049909,000484: 27,3534           00033                                    TFFALFA                               #  ALFA  E:(26-NR) M:(24-NR)
049910,000485: 27,3535           77657                           SL*                                            
049911,000486: 27,3536           20201                                    0,1                                   #  X1=-NR
049912,000487: 27,3537           00043                           STORE    TFFX                                  #  X
049913,000488: 27,3540           41234                           RTB      DMP                                   
049914,000489: 27,3541           57664                                    T(X)                                  #  POLY
049915,000490:                                                                                                  #  ZSQ FROM PDL+2  E:(-26) M:(-24)
049916,000491: 27,3542           44302                           SR2      BDSU                                  #  2 ZSQ T(X)  E:(-29) M:(-27)
049917,000492: 27,3543           00023                                    RTERM                                 #  RTERM  E:(-29) M:(-27)
049918,000493: 27,3544           41215                           DAD      DMP                                   
049919,000494: 27,3545           00015                                    RMAG1                                 #  E:(-29) M:(-27)
049920,000495:                                                                                                  #  Z FROM PDL+0  E:(-13) M:(-12)
049921,000496: 27,3546           51042                           SR3      BPL                                   #  TFF SQRT(MU)  E:(-45) M:(-42)
049922,000497: 27,3547           57570                                    ENDTFF                                #  (NO PUSH UP)
049923,000498: 27,3550           75206                           PUSH     SIGN                                  #  TFF SQRT(MU) TO PDL+0
049924,000499: 27,3551           00017                                    TFFQ1                                 #  Q1 FOR GONEPAST TEST
049925,000500: 27,3552           71244                           BPL      DLOAD                                 #  GONE PAST ?
049926,000501: 27,3553           57574                                    NEGTFF                                #  YES. TFF < 0.
049927,000502: 27,3554           00027                                    TFF1/ALF                              #  1/ALFA  E:(-22-2NA) M:(-20-2NA)
049928,000503: 27,3555           51076                           DCOMP    BPL                                   #  ALFA > 0 ?
049929,000504: 27,3556           57574                                    NEGTFF                                #  NO. TFF IS NEGATIVE.
049930,000505: 
049931,000506:                                                                                                  #  CORRECT FOR ORBITAL PERIOD.
049932,000507: 
049933,000508: 27,3557           77676                           DCOMP                                          #  YES.  CORRECT FOR ORB PERIOD.
049934,000509: 27,3560           56205                           DMP      DDV                                   
049935,000510: 27,3561           17706                                    PI/16                                 #  2 PI (-5)
049936,000511: 27,3562           00031                                    TFFRTALF                              #  SQRT(ALFA)  E:(10+NA) M:(9+NA)
049937,000512: 27,3563           53657                           SL*      SL*                                   
049938,000513: 27,3564           57602                                    0          -4,2                       #  X2=-NA
049939,000514: 27,3565           57602                                    0          -4,2                       
049940,000515: 27,3566           43257                           SL*      DAD                                   
049941,000516: 27,3567           57576                                    0,2                                   
049942,000517:                                                                                                  #  TFF SQRT(MU) FROM PDL+0       E:(-45) M:(-42)
049943,000518: 27,3570           56342        ENDTFF             SR1      DDV                                   #  TFF SQRT(MU) IN MPAC          E:(-45) M:(-42)
049944,000519: 27,3571           00037                                    TFF/RTMU                              #  E:(17) M:(14)
049945,000520: 27,3572           43400                           BOV      RVQ                                   #  RETURN TFF (-28) CS IN MPAC.
049946,000521: 27,3573           57600                                    MAXTFF                                #  SET POSMAX IF OVFL.
049947,000522: 
049948,000523: 27,3574           77745        NEGTFF             DLOAD                                          
049949,000524:                                                                                                  #  TFF SQRT(MU) FROM PDL+0, NEGATIVE.
049950,000525: 27,3575           77650                           GOTO                                           
049951,000526: 27,3576           57570                                    ENDTFF                                
049952,000527: 
049953,000528: 27,3577           77745        MAXTFF1            DLOAD                                          #  RESET PDL
049954,000529: 27,3600           43545        MAXTFF             DLOAD    RVQ                                   
049955,000530: 27,3601           17722                                    NEARONE                               
049956,000531: 
049957,000532:                                                                                                  #  TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
049958,000533: 
049959,000534:                                                                                                  #  NUM FROM TFFX.        E:(-16) OR (-29)
049960,000535:                                                                                                  #                        M:(-15) OR (-27)
049961,000536: 27,3602           77712        TFFELL             SL2                                            #  NUM  E:(-14) OR (-27)  M:(-13) OR (-25)
049962,000537: 27,3603           41465                           BDDV     PUSH                                  #  TEMP SAVE D/N IN PDL+0
049963,000538:                                                                                                  #  DEN FROM PDL+0  E:(-3)/( 16) M:(-3)/(-15)
049964,000539:                                                                                                  #  N/D TO PDL+0  E:(11) M:(10)
049965,000540: 27,3604           45345        TFFEL1             DLOAD    DSU                                   #  (ENTER WITH D/N=0 IN PDL+0)
049966,000541: 27,3605           00045                                    TFFTEM                                #  Q2  E:(-16) M:(-15)
049967,000542: 27,3606           00017                                    TFFQ1                                 #  Q1  E:(-16) M:(-15)
049968,000543: 27,3607           14013                           STODL    TFFDELQ                               #  Q2-Q1  E:(-16) M:(-15)
049969,000544:                                                                                                  #  D/N FROM PDL+0
049970,000545: 27,3610           77626                           STADR                                          
049971,000546: 27,3611           77732                           STORE    TFFTEM                                #  D/N  E:(11) M:(10)
049972,000547: 27,3612           53605                           DMP      SL*                                   
049973,000548: 27,3613           00027                                    TFF1/ALF                              #  1/ALFA  E:(-22-2NA) M:(-20-2NA)
049974,000549: 27,3614           57576                                    0,2                                   #  1/ALFA Z  E:(-11-NA) M:(-10-NA)
049975,000550: 27,3615           41206                           PUSH     DMP                                   #  TO PDL+0
049976,000551: 27,3616           00045                                    TFFTEM                                #  1/Z  E:(11) M:(10)
049977,000552: 27,3617           41057                           SL*      BOVB                                  
049978,000553: 27,3620           57576                                    0,2                                   #  X2= -NA
049979,000554: 27,3621           21656                                    SIGNMPAC                              #  IN CASE X= 1.0, CONTINUE
049980,000555: 27,3622           00043                           STORE    TFFX                                  #  X=1/ALFA ZSQ
049981,000556: 27,3623           41234                           RTB      DMP                                   
049982,000557: 27,3624           57664                                    T(X)                                  #  POLY
049983,000558: 27,3625           00043                                    TFFX                                  
049984,000559: 27,3626           45242                           SR3      DSU                                   
049985,000560: 27,3627           17714                                    DP2(-3)                               
049986,000561: 27,3630           41405                           DMP      PUSH                                  #  2(X T(X)-1) /Z ALFA   E:(-15-NA)
049987,000562:                                                                                                  #                        M:(-14-NA)
049988,000563:                                                                                                  #  1/ALFA Z FROM PDL+0   E:(-11-NA)
049989,000564:                                                                                                  #                        M:(-10-NA)
049990,000565: 27,3631           41345                           DLOAD    DMP                                   #  GET SIGN FOR SDELF
049991,000566: 27,3632           00045                                    TFFTEM                                #  1/Z  E:(11) M:(10)
049992,000567: 27,3633           00015                                    RMAG1                                 #  E:(-29) M:(-27)
049993,000568: 27,3634           43312                           SL2      DAD                                   
049994,000569: 27,3635           00017                                    TFFQ1                                 #  Q1  E:(-16) M:(-15)
049995,000570: 27,3636           14045                           STODL    TFFTEM                                #  (Q1+R 1/Z) =SGN OF SDELF  E:(-16) M:(-15
049996,000571: 27,3637           00035                                    TFFNP                                 #  LC P  E:(-38+2NR) M:(-36+2NR)
049997,000572: 27,3640           53605                           DMP      SL*                                   #  CALC FOR ARG FOR TFF/TRIG.
049998,000573: 27,3641           00027                                    TFF1/ALF                              #  1/ALFA  E:(-22-2NA) M:(-20-2NA)
049999,000574: 27,3642           57575                                    1,2                                   #  X2=-NA
050000,000575: 27,3643           53765                           SIGN     SL*                                   
050001,000576: 27,3644           00045                                    TFFTEM                                #  AFFIX SIGN FOR SDELF
050002,000577: 27,3645           57576                                    0,2                                   
050003,000578: 27,3646           14045                           STODL    TFFTEM                                #  P/ALFA  E:(-59+2NR) M:(-55+2NR)
050004,000579:                                                                                                  #  (ARG FOR USE IN TFF/TRIG)
050005,000580: 27,3647           00027                                    TFF1/ALF                              #  1/ALFA  E:(-22-2NA) M:(-20-2NA)
050006,000581: 27,3650           41366                           SQRT     DMP                                   
050007,000582: 27,3651           17706                                    PI/16                                 #  PI (-4)
050008,000583: 27,3652           77615                           DAD                                            
050009,000584:                                                                                                  #  2(XT(X)-1)/Z ALFA FROM PDL    E:(-15-NA)
050010,000585:                                                                                                  #                                M:(-14-NA)
050011,000586: 27,3653           45257                           SL*      DSU                                   
050012,000587: 27,3654           57577                                    0          -1,2                       
050013,000588: 27,3655           00013                                    TFFDELQ                               #  Q2-Q1  E:(-16) M:(-15)
050014,000589: 27,3656           53605                           DMP      SL*                                   
050015,000590: 27,3657           00027                                    TFF1/ALF                              #  1/ALFA  E:(-22-2NA) M:(-20-2NA)
050016,000591: 27,3660           57601                                    0          -3,2                       
050017,000592: 27,3661           52057                           SL*      GOTO                                  
050018,000593: 27,3662           57602                                    0          -4,2                       
050019,000594: 27,3663           57570                                    ENDTFF                                #  TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
050020,000595: 
050021,000596:                                                                                                  #  PROGRAM NAME:  T(X)                           DATE:  01.17.67
050022,000597:                                                                                                  #  MOD NO:  0                                    LOG SECTION:  TIME OF FREE FALL
050023,000598:                                                                                                  #  MOD BY:  RR BAIRNSFATHER
050024,000599: 
050025,000600:                                                                                                  #  FUNCTIONAL DESCRIPTION:  THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
050026,000601:                                                                                                  #        CALCTPER TO APPROXIMATE THE SERIES
050027,000602:                                                                                                  #                           2     3
050028,000603:                                                                                                  #                1/3 -X/5 +X /7 -X /9 ...
050029,000604: 
050030,000605:                                                                                                  #        WHERE   X = ALFA Z Z            IF ALFA Z Z LEQ 1
050031,000606:                                                                                                  #                X = 1/(ALFA Z Z)        IF ALFA Z Z G 1
050032,000607: 
050033,000608:                                                                                                  #        ALSO    X IS NEG FOR HYPERBOLIC ORBITS
050034,000609:                                                                                                  #                X = 0 FOR PARABOLIC ORBITS
050035,000610:                                                                                                  #                X IS POSITIVE FOR ELLIPTIC ORBITS
050036,000611: 
050037,000612:                                                                                                  #        FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
050038,000613:                                                                                                  #        DEVIATION FROM THE SERIES OF 2 E-5   (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
050039,000614:                                                                                                  #        MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).)
050040,000615: 
050041,000616:                                                                                                  #  CALLING SEQUENCE:     RTB
050042,000617:                                                                                                  #                                T(X)
050043,000618:                                                                                                  #        C(MPAC) = X
050044,000619: 
050045,000620:                                                                                                  #  SUBROUTINES CALLED:  NONE
050046,000621: 
050047,000622:                                                                                                  #  NORMAL EXIT MODE:  TC   DANZIG
050048,000623: 
050049,000624:                                                                                                  #  ALARMS:  NONE
050050,000625: 
050051,000626:                                                                                                  #  OUTPUT:  C(MPAC) = T(X)
050052,000627: 
050053,000628:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED:
050054,000629:                                                                                                  #        C(MPAC) = X
050055,000630: 
050056,000631:                                                                                                  #  DEBRIS:  NONE
050057,000632: 
050058,000633: 27,3664           07176        T(X)               TC       POLY                                  
050059,000634: 27,3665           00004                           DEC      4          B-14                       #  N-1
050060,000635: 27,3666           12525 12525                     2DEC     3.333333333 E-1                        
050061,000636: 
050062,000637: 27,3670           71463 57703                     2DEC*    -1.999819135 E-1*                       
050063,000638: 
050064,000639: 27,3672           04423 17645                     2DEC*    1.418148467 E-1*                       
050065,000640: 
050066,000641: 27,3674           74604 43667                     2DEC*    -1.01310997 E-1*                       
050067,000642: 
050068,000643: 27,3676           01626 37256                     2DEC*    5.609004986 E-2*                       
050069,000644: 
050070,000645: 27,3700           77404 52071                     2DEC*    -1.536156925 E-2*                       
050071,000646: 
050072,000647: 27,3702           06035        ENDT(X)            TC       DANZIG                                
050073,000648: 
050074,000649: 27,3703  27,3702               TCDANZIG           =        ENDT(X)                               
050075,000650: 
050076,000651:                                                                                                  #  TFF CONSTANTS
050077,000652: 
050078,000653: 32,3712                                           BANK     32                                    
050079,000654: 
050080,000655: 27,2000                                           SETLOC   TOF-FF1                               
050081,000656: 27,2000                                           BANK                                           
050082,000657: 
050083,000658:                                                                                                  #                                                NOTE _  NOTE _  ADJUSTED MUE FOR NEAR EARTH TRAJ.
050084,000659:                                                                                                  # MUE            =       3.990815471 E10         M CUBE/CS SQ
050085,000660:                                                                                                  # RTMUE          =       1.997702549 E5 B-18*    MODIFIED EARTH MU
050086,000661: 
050087,000662:                                                                                                  #                                                NOTE _  NOTE _  ADJUSTED MUE FOR NEAR EARTH TRAJ.
050088,000663:                                                                                                  # MUM            =       4.902778 E8             M CUBE/CS SQ
050089,000664:                                                                                                  # RTMUM          2DEC*   2.21422176 E4 B-18*
050090,000665: 
050091,000666: 27,3703           30305 24405  UNUSEDF2           2DEC     3.04825218 B-2                        
050092,000667: 
050093,000668: 27,3705           06220 37553  PI/16              2DEC     3.141592653 B-4                        
050094,000669: 
050095,000670: 27,3707           37777 37700  LIM(-22)           2OCT     37777      37700                      #  1.0 -B(-22)
050096,000671: 
050097,000672: 27,3711           00000 00100  DP(-22)            2OCT     00000      00100                      #  B(-22)
050098,000673: 
050099,000674: 27,3713           04000 00000  DP2(-3)            2DEC     1          B-3                        
050100,000675: 
050101,000676: 27,3715           02000 00000  DP2(-4)            2DEC     1          B-4                        #  1/16
050102,000677: 
050103,000678:                                                                                                  #  RPAD1         2DEC    6373338 B-29            M (-29) = 20909901.57 FT
050104,000679: 
050105,000680: 27,3717  23,2104               RPAD1              =        RPAD                                  
050106,000681: 
050107,000682: 27,3717           00305 11205  R300K              2DEC     6464778    B-29                       #  (-29) M
050108,000683: 
050109,000684: 27,3721           37777 37777  NEARONE            2DEC     .999999999                            
050110,000685: 
050111,000686: 27,3723  23,2232               TFFZEROS           EQUALS   HI6ZEROS                              
050112,000687: 27,3723  23,2222               TFF1/4             EQUALS   HIDP1/4                               
050113,000688: 

End of include-file TIME_OF_FREE_FALL.agc.  Parent file is MAIN.agc