Source Code

These source code files are a reconstruction of Sundance, 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
This means that source code does not represent a specific historical revision of Sundance, but rather a mixture of the three released versions. Nonetheless, it is capable of flying the whole Apollo 9 mission. This source code matches the binary dumps, as closely as feasible, but 100% match is not possible, due mostly to changes in memory addresses at which code and variables were allocated in different revisions of Sundance. Refer to this list of explanations for each binary mismatch.

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.

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

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