Source Code
![]() |
These source-code files were obtained by digitally photographing
a Solarium 55 (Apollo 6) program listing from the American Computer Museum in
Bozeman, Montana. Photography was by Ron Burkey, with assistance from
museum curator George Keremedjiev and Montana
State University curator Kim Scott. The listing originally belonged to Eldon C. Hall,
who donated it to the museum. Volunteers then manually typed in the
source code or else modified similar pre-existing Colossus 249
(Apollo 9) source files to incorporate changes, although this transcription was
principally done by Jim Lawton and corrected by Ron Burkey.
Notations on the program listing read, in part:YUL SYSTEM FOR AGC4: REVISION 0 OF PROGRAM SOLRUM55 BY NASA 1021108-021 DEC. 4, 1966Note that the date is the date of the printout, not the date of the program revision. Due to statements by Jay Sampson, the original contractor from AC Electronics who created Solarium 54 (Apollo 4) from the earlier Corona (AS-202 mission) program, it is believed that Solarium 54 and Solarium 55 (Apollo 6) are actually identical programs. The change in numbering, from 54 to 55, is believed to be for some administrative purpose. Thus, it is believed that the source-code represented here is equally appropriate for both Apollo 4 and Apollo 6 missions. |
027016,000002: ## Copyright: Public domain.
027017,000003: ## Filename: TIME_OF_FREE-FALL_CALCULATIONS.agc
027018,000004: ## Purpose: Part of the source code for Solarium build 55. This
027019,000005: ## is for the Command Module's (CM) Apollo Guidance
027020,000006: ## Computer (AGC), for Apollo 6.
027021,000007: ## Assembler: yaYUL --block1
027022,000008: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
027023,000009: ## Website: www.ibiblio.org/apollo/index.html
027024,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Solarium055/
027025,000011: ## Mod history: 2009-10-04 JL Created.
027026,000012: ## 2016-08-20 RSB Typos.
027027,000013: ## 2016-12-28 RSB Proofed comment text using octopus/ProoferComments,
027028,000014: ## and fixed errors found.
027029,000015:
![]() |
Page 682 (empty page) |
027032,000018:
![]() |
Page 683 |
027034,000020:
027035,000021: # CONIC TIME OF FLIGHT CALCULATION. PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN
027036,000022: # AND VELOCITY VN TO A RADIUS SPECIFIED BY RTERM, CORRESPONDING TO 280K OR400K FEET ALTITUDE.
027037,000023: # THE POSITION RN MAY BE ON EITHER SIDE OF THE ELLIPSE, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
027038,000024:
027039,000025: # THE EQUATION IS TFF = ( DEL E - (Q2-Q1) ) / (ALFA SQRT( ALFA MUE) )
027040,000026:
027041,000027: # AND Q2 = -SQRT( RTERM ALFA (2-RTERM ALFA) -LCP ALFA ) (INBOUND SIDE) LEQ +/- LCE
027042,000028: # - -
027043,000029: # Q1 = RN.VN SQRT(ALFA/MUE) LEQ +/- LCE
027044,000030:
027045,000031: # PROGRAM REQUIREMENTS ON ENTERING.
027046,000032: # 1. PUSHDOWN LIST IS ZEROED
027047,000033: # 2. INPUTS: POSITION RN 2(-24) M, VELOCITY VN 2(-7) M/CS
027048,000034:
027049,000035: # THE PROGRAM EXITS WITH ONE OF THE FOLLOWING IN TFF.
027050,000036: # A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
027051,000037: # B. TFF=+0. THIS INDICATES THAT THE TRAJECTORY HAS GONE PAST RTERM AND THE PRESENT ALTITUDE IS
027052,000038: # LESS THAN THE SPECIFIED TERMINAL ALTITUDE.
027053,000039: # C. TFF = POSMAX. THIS INDICATES THAT THE ELLIPTICAL CONIC FROM THE PRESENT POSITION WILL NOT
027054,000040: # RETURN TO THE SPECIFIED ALTITUDE.
027055,000041: # THE FOLLOWING QUANTITIES REMAIN IN THE PUSHLIST
027056,000042: # ALFA 2(+21) IN PDL 10D
027057,000043: # (2-RTERM ALFA) 2(-3) IN PDL 6
027058,000044: # RTERM ALFA 2(-3) IN PDL 4
027059,000045: # LCP ALFA 2(-6) IN PDL 2
027060,000046:
027061,000047: # THUS THE CALLING PROGRAM CAN CALCULATE TERMINAL VELOCITY, VTERM, AND COS GAMMA OR SIN GAMMA USING RESIDUE FROM
027062,000048: # CALCTFF.
027063,000049:
027064,000050: # 2
027065,000051: # VTERM (RTERM/MUE) = (2-RTERM ALFA)
027066,000052:
027067,000053: # 2
027068,000054: # SIN GAMMA = 1 - (LCP ALFA / RTERM ALFA(2-RTERM ALFA) )
027069,000055:
027070,000056: # 2
027071,000057: # COS GAMMA = LCP ALFA /(RTERM ALFA (2-RTERM ALFA) )
027072,000058:
027073,000059: # QUANTITIES ARE NORMALIZED BY LCE TO OBTAIN BEST ACCURACY IN COMPUTING, ESPACIALLY FOR SPARCTAN. PROGRAM
027074,000060: # ACCEPTS LCE LEQ 1.0. THE SMALLEST LCE WHICH IS NORMALIZED IS 2(-4), ALTHOUGH THIS MAY BE EXTENDED IF
027075,000061: # DESIRED. (LCE L 2(-3) ALL HAVE SAME SCALING)
027076,000062:
![]() |
Page 684 |
027078,000064:
027079,000065: # TEMPORARY ERASABLE ASSIGNMENTS FOR TFF COMPUTATIONS PUSHLIST 00 - 19D, X1
027080,000066:
027081,000067: 26,7711 RTERM = 14D
027082,000068:
027083,000069: 31,6000 BANK 31
027084,000070: 31,6000 77576 CALCTFF EXIT 0
027085,000071:
027086,000072: 31,6001 11723 CCS REFSWTCH # SEE IF GROUND DESIRES 280K FF REFERENCE
027087,000073: 31,6002 06006 TC +4 # NO
027088,000074: 31,6003 06006 TC +3
027089,000075: 31,6004 35501 CAF ZERO
027090,000076: 31,6005 06012 TC +5
027091,000077:
027092,000078: 31,6006 36320 CAF NOMBURN # TEST IF ANY NOMINAL BURN (SPS1,SPS2,
027093,000079: 31,6007 70647 MASK FLAGWRD2 # SPS3, SPS4, ARRST) FLAG SET
027094,000080: 31,6010 10000 CCS A
027095,000081: 31,6011 45503 CS TWO
027096,000082: 31,6012 20067 INDEX FIXLOC # X1=-2 FOR 400K FT. AND 0 FOR 280K FT.
027097,000083: 31,6013 50046 TS X1
027098,000084: 31,6014 04000 TC INTPRET
027099,000085: 31,6015 44175 DMOVE* 1
027100,000086: 31,6016 76576 RTB
027101,000087: 31,6017 33607 R280K,1
027102,000088: 31,6020 20265 FRESHPD
027103,000089: 31,6021 32017 STORE RTERM # 2(-24)
027104,000090:
027105,000091: 31,6022 67174 VSQ 2
027106,000092: 31,6023 64722 DMP DMP
027107,000093: 31,6024 63726 TSLT BDSU
027108,000094: 31,6025 00774 VN # VEL 2 (-7)
027109,000095: 31,6026 22307 1/MUE # 2 (+35)
027110,000096: 31,6027 01024 RMAG # 2(-25)
027111,000097: 31,6030 00002 1
027112,000098: 31,6031 06304 DP1/4 # RMAG ALFA 2 (-3) TO PDL 0,1
027113,000099:
027114,000100: 31,6032 47575 NOLOD 1
027115,000101: 31,6033 56712 TSRT DDV
027116,000102: 31,6034 00002 1
027117,000103: 31,6035 01024 RMAG
027118,000104: 31,6036 32013 STORE 10D
027119,000105:
027120,000106: 31,6037 47575 NOLOD 1
027121,000107: 31,6040 73776 BMN
027122,000108: 31,6041 22465 HIECC
027123,000109:
027124,000110: 31,6042 64774 DMP 2
027125,000111: 31,6043 53122 SQRT DMP
027126,000112: 31,6044 57706 TSLC BDDV
027127,000113: 31,6045 00013 10D # ALFA 2(+21)
027128,000114: 31,6046 22311 MUE(37)
![]() |
Page 685 |
027130,000116: 31,6047 00013 10D # ALFA
027131,000117: 31,6050 00024 19D # -N. SAVE FOR GETTFF1
027132,000118: 31,6051 22313 DP2PI/16
027133,000119: 31,6052 32015 STORE 12D # ORB PERIOD 2PI/ALFA SQRT(ALFA MUE)
027134,000120: # 2(-17-N)
027135,000121: 31,6053 41773 VXV 3
027136,000122: 31,6054 44733 VSLT VSQ
027137,000123: 31,6055 64722 DMP DMP
027138,000124: 31,6056 76576 RTB
027139,000125: 31,6057 00766 RN
027140,000126: 31,6060 00774 VN # MTRS/CS 2(-7)
027141,000127: 31,6061 00002 1
027142,000128: 31,6062 22307 1/MUE # 2(+35)
027143,000129: 31,6063 00013 10D # ALFA 2(+21)
027144,000130: 31,6064 22255 NORMBYE # GET NORM COUNT BASED ON LCE SQ.
027145,000131: # LCP ALFA 2(-6) TO PDL 2,3
027146,000132:
027147,000133: 31,6065 47575 NOLOD 1
027148,000134: 31,6066 66616 DSU BPL
027149,000135: 31,6067 15710 DP.36
027150,000136: 31,6070 22077 LOECC
027151,000137:
027152,000138: 31,6071 66775 DSU 1
027153,000139: 31,6072 73776 BMN
027154,000140: 31,6073 00013 10D
027155,000141: 31,6074 22322 ALFALIM
027156,000142: 31,6075 22465 HIECC
027157,000143:
027158,000144: 31,6076 64776 LOECC DMP 0
027159,000145: 31,6077 00017 RTERM # 2(-24)
027160,000146: 31,6100 00013 10D # ALFA 2(+21)
027161,000147: # RTERM ALFA 2(-3) TO PDL 4,5
027162,000148:
027163,000149: 31,6101 66776 DSU 0
027164,000150: 31,6102 06304 DP1/4
027165,000151: 31,6103 00005 4 # RTERM ALFA 2(-3)
027166,000152: # (2-RTERM ALFA) 2(-3) TO PDL 6,7
027167,000153:
027168,000154: 31,6104 64775 DMP 1
027169,000155: 31,6105 53176 SQRT
027170,000156: 31,6106 00013 10D # ALFA 2(+21)
027171,000157: 31,6107 22307 1/MUE # 2(+35) TO PDL 8,9
027172,000158:
027173,000159: 31,6110 42774 DOT 2
027174,000160: 31,6111 63722 TSLT DMP
027175,000161: 31,6112 76576 RTB
027176,000162: 31,6113 00766 RN
027177,000163: 31,6114 00774 VN # 2(-7)
027178,000164: 31,6115 00002 1
027179,000165: 31,6116 77777 - # LEAVE Q1 2(-3) IN MPAC
![]() |
Page 686 |
027181,000167: 31,6117 22143 ARGQ1 # SAVE MPAC FOR GONE PAST TEST. , NORMLZE
027182,000168: 31,6120 32011 STORE 8D # Q1 (OR Q1/2 OR 2Q1 OR 4Q1)
027183,000169:
027184,000170: 31,6121 64774 DMP 2 # CALCULATE Q2
027185,000171: 31,6122 66771 DSU RTB
027186,000172: 31,6123 70776 DAD
027187,000173: 31,6124 77777 - # (2-RTERM ALFA) 2(-3) FROM PDL 6,7
027188,000174: 31,6125 77777 - # RTERM ALFA 2(-3) FROM PDL 4,5
027189,000175: 31,6126 77777 - # LCP ALFA 2(-6) FROM PDL 2,3
027190,000176: 31,6127 22155 ARGQ2 # TEST SGN, TAKE ROOT (RT DOT NEG)
027191,000177: # RETURN -Q2 (OR -Q2/2 OR -2Q2 OR -4Q2)
027192,000178: 31,6130 00011 8D # Q1 (AT SIMILAR SCALE)
027193,000179: 31,6131 32011 STORE 8D # Q1-Q2 ( OR /2 OR2 OR4)
027194,000180: # LEQ +/- 2LCE (OR 1 OR 4 OR 8)
027195,000181:
027196,000182: 31,6132 66775 DSU 1
027197,000183: 31,6133 76522 RTB DMP
027198,000184: 31,6134 00007 6 # 2-RTERM ALFA 2(-3)
027199,000185: 31,6135 77777 - # 2-RTERM ALFA-RMAG ALFA 2(-3) IN MPAC
027200,000186: 31,6136 22213 GETTFF # C(MPAC) = DEN 2(-3)
027201,000187: 31,6137 00015 12D # ORB PERIOD 2(-17-N)
027202,000188: 31,6140 33457 STORE TFF
027203,000189: 31,6141 40576 ITCQ 0
027204,000190: 31,6142 20067 ARGQ1 INDEX FIXLOC
027205,000191: 31,6143 20020 INDEX 16D # COUNT BY ONES
027206,000192: 31,6144 34513 CAF BIT4 # EFFECTIVE SH L 3 ( 2 OR 4 OR 5)
027207,000193: 31,6145 05416 TC SHORTMP
027208,000194: 31,6146 30117 XCH MPAC +2 # MOVE UP
027209,000195: 31,6147 30116 XCH MPAC +1
027210,000196: 31,6150 50115 TS MPAC # MPAC IS L .5 AS REQD BY TEST LATER.
027211,000197: 31,6151 20067 INDEX FIXLOC
027212,000198: 31,6152 50022 TS 18D # SAVE FOR GONE PAST TEST.
027213,000199: 31,6153 04024 TC DANZIG
027214,000200:
027215,000201: 31,6154 20067 ARGQ2 INDEX FIXLOC
027216,000202: 31,6155 20021 INDEX 17D # SH L BY 2,S
027217,000203: 31,6156 34510 CAF BIT7 # DO EFFECTIVE SHL 6 (4 OR 8 OR 10)
027218,000204: 31,6157 05416 TC SHORTMP # TP ENTRY , C(MPAC+2) VALID.
027219,000205: 31,6160 35501 CAF ZERO
027220,000206: 31,6161 30117 XCH MPAC +2
027221,000207: 31,6162 30116 XCH MPAC +1
027222,000208: 31,6163 50115 TS MPAC
027223,000209:
027224,000210: 31,6164 10115 CCS MPAC
027225,000211: 31,6165 06177 TC Q2ROOT
027226,000212: 31,6166 06170 TC +2
027227,000213: 31,6167 06202 TC NEGQ2 # NO FREEFALL CONIC TO RTERM FROM HERE.
027228,000214:
027229,000215: 31,6170 10116 CCS MPAC +1 # CK LO WORD. IF NEG, ASSUME ROUNDOFF.
027230,000216: 31,6171 06177 TC Q2ROOT
![]() |
Page 687 |
027232,000218: 31,6172 04024 TC DANZIG
027233,000219: 31,6173 35501 NOROOT CAF ZERO # NEG ARG FROM ROUNDOFF. SET =0.
027234,000220: 31,6174 50115 TS MPAC
027235,000221: 31,6175 50116 TS MPAC +1
027236,000222: 31,6176 04024 TC DANZIG
027237,000223:
027238,000224: 31,6177 05654 Q2ROOT TC BANKCALL # GO TAKE DP SQRT
027239,000225: 31,6200 07322 CADR SQRT3 # C(MPAC +2) =0
027240,000226: 31,6201 04024 TC DANZIG
027241,000227:
027242,000228: 31,6202 34476 NEGQ2 CAF POSMAX # THIS WILL LEAVE PUSHLOC AT PDL2
027243,000229: 31,6203 51456 TS TFF
027244,000230: 31,6204 51457 TS TFF +1
027245,000231: 31,6205 40067 CS FIXLOC # BUT RESET IT.
027246,000232: 31,6206 40000 COM
027247,000233: 31,6207 50123 TS PUSHLOC
027248,000234:
027249,000235: 31,6210 04000 TC INTPRET
027250,000236:
027251,000237: 31,6211 40576 ITCQ 0 # AND RETURN TO CALLING PROGRAM.
027252,000238:
027253,000239: # ENTER WITH (2-RTERM ALFA-RMAG ALFA) 2(-3) IN MPAC,+1. Q1-Q2 IN PDL 8,9
027254,000240:
027255,000241: 31,6212 20067 GETTFF INDEX FIXLOC
027256,000242: 31,6213 20020 INDEX 16D # COUNT BY 1,5
027257,000243: 31,6214 34513 CAF BIT4 # EFFECTIVE SL 3 (2 OR 4 OR 5 )
027258,000244: 31,6215 05416 TC SHORTMP # C(MPAC +1,+2) = DEN ON RETURN.
027259,000245: 31,6216 20067 INDEX FIXLOC # (UNSCALD NUM AND DEN LEQ +/- 2 LCE)
027260,000246: 31,6217 40010 CS 8D
027261,000247: 31,6220 30116 XCH MPAC +1 # SAVE Q2-Q1, GET DEN
027262,000248: 31,6221 50115 TS MPAC # AND SAVE.
027263,000249: 31,6222 20067 INDEX FIXLOC
027264,000250: 31,6223 20020 INDEX 16D # COUNT BY 1,5
027265,000251: 31,6224 36316 CAF -1/2PI
027266,000252: 31,6225 25777 EXTEND
027267,000253: 31,6226 40116 MP MPAC +1
027268,000254: 31,6227 50117 TS MPAC +2 # -(Q2-Q1) /2PI SAVED
027269,000255:
027270,000256: 31,6230 06323 TC SPARCTAN # NUM=C(MPAC+1),DEN=C(MPAC)
027271,000257: # RETURN WITH DEL ECC. ANOM/2PI IN A
027272,000258: # RANGE (0,1)
027273,000259: 31,6231 60117 AD MPAC +2
027274,000260: 31,6232 30115 XCH MPAC # TFF NORM=(DEL E:(Q2:Q1))/2PI
027275,000261: # FOLLOWING TEST VALID WHEN SPTEM3 L .5
027276,000262: 31,6233 20067 INDEX FIXLOC
027277,000263: 31,6234 30022 XCH 18D # IF BOTH SGN Q1 AND SGN ATAN ARE
027278,000264: 31,6235 66237 AD +2 # NEG, THEN SET TFF, +1 =+0. (-3/4+1 )
027279,000265: 31,6236 60072 AD SGNATAN # LEFT BY SPARCTAN
027280,000266: 31,6237 50000 TS A # (=50K =-3/4 +1 FOR OVFL TEST)
027281,000267: 31,6240 06243 TC GETTFF3 # OK, GO ON
![]() |
Page 688 |
027283,000269: 31,6241 35501 CAF ZERO
027284,000270: 31,6242 06203 TC NEGQ2 +1 # GONE PAST. SET TFF=0.
027285,000271:
027286,000272: 31,6243 20067 GETTFF3 INDEX FIXLOC
027287,000273: 31,6244 20023 INDEX 19D # -N. BIT4 BELOW VALID FOR N LEQ 10D.
027288,000274: 31,6245 34513 CAF BIT4 # SCALE FACTOR, 2(-11+N)
027289,000275: 31,6246 25777 EXTEND
027290,000276: 31,6247 40115 MP MPAC
027291,000277: 31,6250 50115 TS MPAC
027292,000278: 31,6251 30003 XCH LP
027293,000279: 31,6252 50116 TS MPAC +1 # NOW READY TO MULT BY ORB PERIOD
027294,000280: 31,6253 04024 TC DANZIG
027295,000281:
027296,000282: # TO IMPROVE PRECISION OF SPARCTAN AT SMALLER LCE, COME HERE TO GET NORMALIZATION FACTOR
027297,000283: # BASED ON SIZE OF LCE SQ. SHIFT BY 2,S. SCALING RESULTING FROM BELOW YIELDS AT LEAST ONE LEAD ZERO IN
027298,000284: # NUM AND DEN USED IN SPARCTAN.
027299,000285:
027300,000286: 31,6254 36303 NORMBYE CAF OCT37440 # BRACKET SIZE BY OVFL TESTS
027301,000287: 31,6255 60115 AD MPAC # C(MPAC) = (1-LCE SQ) 2(-6)
027302,000288: 31,6256 50000 TS A
027303,000289: 31,6257 06275 TC ENORM0 # HERE IF LCE GEQ 2(-1)
027304,000290: 31,6260 66304 AD OCTNEG30 # (EFFECTIVE CONST 37410)
027305,000291: 31,6261 50000 TS A
027306,000292: 31,6262 06277 TC ENORM1 # HERE IF LCE GEQ 2(-2)
027307,000293: 31,6263 66305 AD OCTNEG6 # (EFFECTIVE CONST 37402)
027308,000294: 31,6264 50000 TS A
027309,000295: 31,6265 06301 TC ENORM2 # HERE IF LCE GEQ 2(-3)
027310,000296: 31,6266 44515 CS BIT2 # HERE IF LCE L 2(-3)
027311,000297: 31,6267 20067 ENORM3 INDEX FIXLOC
027312,000298: 31,6270 50020 TS 16D # COUNT FOR SL BY 1,S ALSO NEEDED
027313,000299: 31,6271 60000 AD A
027314,000300: 31,6272 20067 INDEX FIXLOC
027315,000301: 31,6273 50021 TS 17D # COUNT FOR SL BY 2,S.
027316,000302: 31,6274 04024 TC DANZIG
027317,000303:
027318,000304: 31,6275 34516 ENORM0 CAF BIT1
027319,000305: 31,6276 06267 TC ENORM3
027320,000306: 31,6277 35501 ENORM1 CAF ZERO
027321,000307: 31,6300 06267 TC ENORM3
027322,000308: 31,6301 44516 ENORM2 CS BIT1
027323,000309: 31,6302 06267 TC ENORM3
027324,000310:
027325,000311: 31,6303 37440 OCT37440 OCT 37440
027326,000312: 31,6304 77747 OCTNEG30 OCT -00030
027327,000313: 31,6305 77771 OCTNEG6 OCT -00006
027328,000314:
027329,000315: 31,6306 33453 02065 1/MUE 2DEC* .250876044 E-10 B35* # CS SQ/M CUBE
027330,000316: 31,6310 11217 27040 MUE(37) 2DEC* 3.986032233 E10 B-37* # CS SQ/M CUBE
![]() |
Page 689 |
027332,000318: 31,6312 14441 37327 DP2PI/16 2DEC .39269909
027333,000319: 31,6314 76563 DEC -.15915494 B-2
027334,000320: 31,6315 75347 DEC -.15915494 B-1
027335,000321: 31,6316 72717 -1/2PI DEC -.15915494
027336,000322: 31,6317 65640 DEC -.15915494 B1
027337,000323: 31,6320 00171 NOMBURN OCT 00171
027338,000324: 31,6321 04316 25750 ALFALIM 2DEC 6.562 E-8 B21
027339,000325:
![]() |
Page 690 |
027341,000327:
027342,000328: # INVERSE TANGENT. THE SINGLE PRECISION ARCTAN IS BASED ON A HASTINGS 3 TERM POLYNOMIAL. THE PROGRAM
027343,000329: # ACCEPTS NUM AND DEN , WHERE TAN(THETA) = NUM/DEN, AND GIVES THETA/PI IN THE RANGE (0,1)
027344,000330: # ENTER WITH C(MPAC +1) = NUM, AND C(MPAC) = DEN. NOTE THAT FOR CALCTFF, THETA = DEL E/2.
027345,000331: # SPARCTAN USES 3 SP TEMPORARIES: SPTEMQ, SPTEM1, SPTEM2
027346,000332:
027347,000333: # TEMPORARY ERASABLE ASSIGNMENTS FOR SPARCTAN ROUTINE
027348,000334:
027349,000335: 31,6323 0071 SPTEMQ = VBUF
027350,000336: 31,6323 0072 SPTEM1 = VBUF +1
027351,000337: 31,6323 0073 SPTEM2 = VBUF +2
027352,000338: 31,6323 0071 SPATANQ EQUALS SPTEMQ
027353,000339: 31,6323 0072 SGNATAN EQUALS SPTEM1
027354,000340:
027355,000341: 31,6323 30001 SPARCTAN XCH Q
027356,000342: 31,6324 50071 TS SPATANQ
027357,000343:
027358,000344: 31,6325 34502 CAF BIT13 # 1/4 = PI/4
027359,000345: 31,6326 50073 TS SPTEM2
027360,000346: 31,6327 50072 TS SGNATAN # IF NUM=0, THETA=0
027361,000347: 31,6330 10116 CCS MPAC +1 # NUM
027362,000348: 31,6331 06341 TC TESTDEN # IF DEN =0, THETA=90 DEG SGN(NUM)
027363,000349: 31,6332 06341 TC TESTDEN # MUST STILL TEST DEN.
027364,000350: 31,6333 06335 TC +2 # INDETERMINATE CASE 0/0 CONSIDERED AS 90D
027365,000351: 31,6334 06340 TC TESTDEN -1
027366,000352: 31,6335 40072 CS SGNATAN
027367,000353: 31,6336 50072 TS SGNATAN
027368,000354: 31,6337 40116 CS MPAC +1
027369,000355: 31,6340 50116 TS MPAC +1 # ABVAL OF NUM.
027370,000356:
027371,000357: 31,6341 10115 TESTDEN CCS MPAC # DEN
027372,000358: 31,6342 06355 TC SPATAN1
027373,000359: 31,6343 06434 TC SPATAN4 # 90 DEG CASE
027374,000360: 31,6344 06346 TC +2
027375,000361: 31,6345 06434 TC SPATAN4 # 90 DEG CASE
027376,000362: 31,6346 40072 CS SGNATAN
027377,000363: 31,6347 50072 TS SGNATAN
027378,000364: 31,6350 40115 CS MPAC
027379,000365: 31,6351 50115 TS MPAC # ABVAL OF DEN.
027380,000366:
027381,000367: 31,6352 10116 CCS MPAC +1 # EITHER POS OR +0. WAS NUM ZERO
027382,000368: 31,6353 06341 TC TESTDEN # NO, GO ON
027383,000369: 31,6354 00071 TC SPATANQ # YES, THETA =0 RETURN
027384,000370:
027385,000371: 31,6355 25777 SPATAN1 EXTEND # HERE NEGLECT 1 BIT OF CCS. LOST IN MP.
027386,000372: 31,6356 46362 MP ITANC0 # POLY TRANSITION TEST.
027387,000373: 31,6357 60116 AD MPAC +1 # NUM (PNZ, SO +0 IN CCS IMPOSS)
027388,000374: 31,6360 10000 CCS A # IF NEG, USE Z=N/D FOR POLY.
027389,000375: 31,6361 06367 TC SPATAN2 # IF POS, USE Z=(N-D)/(N+D) FOR POLY.
027390,000376: 31,6362 67237 ITANC0 DEC -.2714558 # =-(1-K)/(1+K), AND K=.573
027391,000377: 31,6363 35501 CAF ZERO # THIS FORM OF POLY HAS BETTER BEHAVIOR
![]() |
Page 691 |
027393,000379: 31,6364 50073 TS SPTEM2 # NEAR ORIGIN. REPLACE PI/4 BY ZERO.
027394,000380: 31,6365 30116 XCH MPAC +1 # SET +0 TO FIT IN WITH CALC BELOW.
027395,000381: 31,6366 06371 TC SPATAN3
027396,000382:
027397,000383: 31,6367 40115 SPATAN2 CS MPAC # N-D AND N+D WILL NOT OVFL IN AD IF LCE
027398,000384: # L 1.0 DUE TO NORMALIZATION BY LCE.
027399,000385: 31,6370 60116 AD MPAC +1 # NUM
027400,000386: 31,6371 50021 SPATAN3 TS SR
027401,000387: 31,6372 30115 XCH MPAC
027402,000388: 31,6373 60116 AD MPAC +1
027403,000389: 31,6374 50000 TS A # DID IT OVFL..
027404,000390: 31,6375 06401 TC SPATAN5 # NO, GO DO DV.
027405,000391: 31,6376 30021 XCH SR # YES, SHIFT BOTH NUM AND DEN R1.
027406,000392: 31,6377 30021 XCH SR # (NUM-DEN)/4 IN SR
027407,000393: 31,6400 64522 AD HALF # (NUM+DEN)/2 IN A.
027408,000394:
027409,000395: 31,6401 50115 SPATAN5 TS MPAC # NORMALLY, (NUM+DEN)
027410,000396: 31,6402 30021 XCH SR # NORMALLY, (NUM-DEN) /2
027411,000397: 31,6403 25777 EXTEND
027412,000398: 31,6404 50115 DV MPAC # NO OVFL PROB.
027413,000399: 31,6405 50115 TS MPAC # Z/2= (NUM-DEN)/2(NUM+DEN)
027414,000400: # Z/2 = NUM/2DEN NEAR ORIGIN
027415,000401:
027416,000402: 31,6406 25777 EXTEND
027417,000403: 31,6407 40000 SQUARE
027418,000404: 31,6410 50116 TS MPAC +1 # Z Z/4
027419,000405: 31,6411 25777 EXTEND
027420,000406: 31,6412 46441 MP ITANC7
027421,000407: 31,6413 66440 AD ITANC5
027422,000408: 31,6414 25777 EXTEND
027423,000409: 31,6415 40116 MP MPAC +1
027424,000410: 31,6416 66437 AD ITANC3
027425,000411: 31,6417 25777 EXTEND
027426,000412: 31,6420 40116 MP MPAC +1
027427,000413: 31,6421 66436 AD ITANC1
027428,000414: 31,6422 60000 DOUBLE
027429,000415: 31,6423 25777 EXTEND
027430,000416: 31,6424 40115 MP MPAC
027431,000417: 31,6425 60073 AD SPTEM2 # EITHER 1/4=PI/4 OR 0
027432,000418: 31,6426 50001 TS Q # C(A)=THETA/PI ,RANGE( 0 ,.5) SEE NOTE
027433,000419: 31,6427 10072 CCS SGNATAN
027434,000420: 31,6430 30001 XCH Q # AFFIX SGN FOR POLY TO HAVE RANGE (-.5,.5
027435,000421: 31,6431 00071 TC SPATANQ
027436,000422: 31,6432 40001 CS Q
027437,000423: 31,6433 64522 AD HALF
027438,000424: 31,6434 64522 SPATAN4 AD HALF # 90 DEG CASE COME HERE
027439,000425: 31,6435 00071 TC SPATANQ # RETURN WITH THETA/ PI IN A. RANGE(0,1)
027440,000426: # POLY GIVES THETA/ PI RANGE(-.5,+.5)
027441,000427:
027442,000428: # NOTE *** RETURN TO CALCTFF WITH DEL E/2 PI IN A, RANGE (0,1). SINCE THE OUTPUT OF SPARCTAN ,
![]() |
Page 692 |
027444,000430: # IS IN THE RANGE (0,1), THE +/- 90 DEG CASES ARE IDENTICAL. FURTHER SINCE FOR CALCTFF, THE ANGLE THETA/PI
027445,000431: # EQUALS DEL E/2 PI, SPARCTAN CONSIDERS BOTH 0 DEG AND 180 DEG AS 0 DEG. SHOULD PROGRAMS OTHER THAN CALCTFF
027446,000432: # DESIRE ARC TANGENTS, THEN SPARCTAN CAN BE MADE GENERAL.
027447,000433:
027448,000434: 31,6436 12133 ITANC1 DEC .318060008 # =C1 /PI
027449,000435: 31,6437 62723 ITANC3 DEC -.40894149 # = 4 C3/PI
027450,000436: 31,6440 27656 ITANC5 DEC .7449806 # = 16 C5/PI
027451,000437: 31,6441 46450 ITANC7 DEC -.79435682 # = 64 C5 /PI 74W
027452,000438:
![]() |
Page 693 |
027454,000440:
027455,000441: 31,6442 73773 HIECC1 BMN 3
027456,000442: 31,6443 71405 LXC,1 LODON
027457,000443: 31,6444 45070 DMOVE TSRT*
027458,000444: 31,6445 76576 RTB
027459,000445: 31,6446 00017 14D
027460,000446: 31,6447 22457 TFFMAX
027461,000447: 31,6450 00024 19D
027462,000448: 31,6451 00015 12D
027463,000449: 31,6452 00027 11D,1
027464,000450: 31,6453 20265 FRESHPD
027465,000451: 31,6454 33457 STORE TFF
027466,000452:
027467,000453: 31,6455 40576 ITCQ 0
027468,000454:
027469,000455: 31,6456 45175 TFFMAX DMOVE 1
027470,000456: 31,6457 76576 RTB
027471,000457: 31,6460 21043 NEARONE
027472,000458: 31,6461 20265 FRESHPD
027473,000459: 31,6462 33457 STORE TFF
027474,000460:
027475,000461: 31,6463 40576 ITCQ 0
027476,000462:
027477,000463: 31,6464 45175 HIECC DMOVE 1
027478,000464: 31,6465 76576 RTB
027479,000465: 31,6466 00013 10D
027480,000466: 31,6467 20265 FRESHPD
027481,000467: 31,6470 32017 STORE 14D
027482,000468:
027483,000469: 31,6471 41775 VXV 1
027484,000470: 31,6472 71116 ABVAL TSLT
027485,000471: 31,6473 00766 RN
027486,000472: 31,6474 00774 VN
027487,000473: 31,6475 00003 2
027488,000474:
027489,000475: 31,6476 47575 NOLOD 1
027490,000476: 31,6477 64716 DMP TSLT
027491,000477: 31,6500 22307 1/MUE
027492,000478: 31,6501 00002 1 # H/MUE B5 PD2,3
027493,000479:
027494,000480: 31,6502 47575 NOLOD 1
027495,000481: 31,6503 64776 DMP
027496,000482: 31,6504 00001 0 # H H/MUE B-26 PD4,5
027497,000483: 31,6505 73174 UNIT 2
027498,000484: 31,6506 42722 DOT DMP
027499,000485: 31,6507 63643 TSLT DSQ
027500,000486: 31,6510 00766 RN
027501,000487: 31,6511 00774 VN
027502,000488: 31,6512 00003 2
027503,000489: 31,6513 00003 2
027504,000490: 31,6514 62774 DDV 2
![]() |
Page 694 |
027506,000492: 31,6515 66643 DSU DSQ
027507,000493: 31,6516 70653 DAD SQRT
027508,000494: 31,6517 00005 4D
027509,000495: 31,6520 01024 RMAG
027510,000496: 31,6521 22674 TWO(-2) # E B-1 PD6,7
027511,000497:
027512,000498: 31,6522 47576 NOLOD 0
027513,000499: 31,6523 33726 STORE ECC
027514,000500:
027515,000501: 31,6524 47575 NOLOD 1
027516,000502: 31,6525 65672 BDSU TSRT
027517,000503: 31,6526 22674 TWO(-2)
027518,000504: 31,6527 00002 1 # B-2 DEL PD8,9
027519,000505:
027520,000506: 31,6530 56776 TSRT 0
027521,000507: 31,6531 00005 4
027522,000508: 31,6532 00002 1 # PD10,11 B-27
027523,000509:
027524,000510: 31,6533 66775 DSU 1
027525,000511: 31,6534 61776 BDDV
027526,000512: 31,6535 22674 TWO(-2)
027527,000513: 31,6536 00011 8D # H H/MUE(2-DEL) B-25 =RPAR PD10,11
027528,000514:
027529,000515: 31,6537 56775 TSRT 1
027530,000516: 31,6540 65616 BDSU BPL
027531,000517: 31,6541 15706 R400K
027532,000518: 31,6542 00002 1
027533,000519: 31,6543 00013 10D
027534,000520: 31,6544 22457 TFFMAX
027535,000521:
027536,000522: 31,6545 42775 DOT 1
027537,000523: 31,6546 43776 BPL
027538,000524: 31,6547 00766 RN
027539,000525: 31,6550 00774 VN
027540,000526: 31,6551 22443 HIECC1
027541,000527:
027542,000528: 31,6552 62774 DDV 2
027543,000529: 31,6553 66672 DSU TSRT
027544,000530: 31,6554 62776 DDV
027545,000531: 31,6555 00005 4D
027546,000532: 31,6556 01024 RMAG
027547,000533: 31,6557 22674 TWO(-2)
027548,000534: 31,6560 00002 1
027549,000535: 31,6561 00007 6D # COSTH PD12,13 B-1
027550,000536:
027551,000537: 31,6562 47575 NOLOD 1
027552,000538: 31,6563 73726 BMN BDSU
027553,000539: 31,6564 22457 TFFMAX
027554,000540: 31,6565 22674 TWO(-2)
![]() |
Page 695 |
027556,000542: 31,6566 70774 DAD 2
027557,000543: 31,6567 61653 BDDV SQRT
027558,000544: 31,6570 47176 COMP
027559,000545: 31,6571 22674 TWO(-2)
027560,000546: 31,6572 00015 12D # PD14,15 B0 TAN(TH/2)
027561,000547:
027562,000548: 31,6573 56774 TSRT 2
027563,000549: 31,6574 61732 BDDV DSU
027564,000550: 31,6575 56712 TSRT DDV
027565,000551: 31,6576 15706 R400K
027566,000552: 31,6577 00002 1
027567,000553: 31,6600 00005 4D
027568,000554: 31,6601 22674 TWO(-2)
027569,000555: 31,6602 00002 1
027570,000556: 31,6603 00007 6D
027571,000557:
027572,000558: 31,6604 47575 NOLOD 1
027573,000559: 31,6605 73726 BMN BDSU
027574,000560: 31,6606 22457 TFFMAX
027575,000561: 31,6607 22674 TWO(-2)
027576,000562:
027577,000563: 31,6610 70774 DAD 2
027578,000564: 31,6611 61653 BDDV SQRT
027579,000565: 31,6612 47176 COMP
027580,000566: 31,6613 22674 TWO(-2)
027581,000567: 31,6614 00021 16D # TAN(TH1/2) PD18,19
027582,000568:
027583,000569: 31,6615 56775 TSRT 1
027584,000570: 31,6616 70776 DAD
027585,000571: 31,6617 00011 8D
027586,000572: 31,6620 00002 1
027587,000573: 31,6621 22674 TWO(-2)
027588,000574:
027589,000575: 31,6622 66775 DSU 1
027590,000576: 31,6623 73722 BMN DMP
027591,000577: 31,6624 00023 18D
027592,000578: 31,6625 00017 14D
027593,000579: 31,6626 22665 TFF0 # (1+DEL/4)(TANTH1/2)-TAN(TH/2))
027594,000580:
027595,000581: 31,6627 51175 DSQ 1
027596,000582: 31,6630 64776 DMP
027597,000583: 31,6631 00023 18D
027598,000584: 31,6632 00023 18D # (TAN(TH1/2))CUBED PD22,23
027599,000585:
027600,000586: 31,6633 51175 DSQ 1
027601,000587: 31,6634 64726 DMP BDSU
027602,000588: 31,6635 00017 14D
027603,000589: 31,6636 00017 14D # PD22,23 B0
027604,000590:
027605,000591: 31,6637 56774 TSRT 2
![]() |
Page 696 |
027607,000593: 31,6640 65722 BDSU DMP
027608,000594: 31,6641 70776 DAD
027609,000595: 31,6642 00011 8D
027610,000596: 31,6643 00002 1
027611,000597: 31,6644 22676 DP1/3S
027612,000598: 31,6645 77777 -
027613,000599: 31,6646 00025 20D # B-2 PD22,23
027614,000600:
027615,000601: 31,6647 64773 DMP 3
027616,000602: 31,6650 63653 TSLT SQRT
027617,000603: 31,6651 64722 DMP DMP
027618,000604: 31,6652 56771 TSRT RTB
027619,000605: 31,6653 00013 10D
027620,000606: 31,6654 22307 1/MUE
027621,000607: 31,6655 00002 1
027622,000608: 31,6656 00013 10D
027623,000609: 31,6657 00027 22D
027624,000610: 31,6660 00010 7D
027625,000611: 31,6661 20265 FRESHPD
027626,000612: 31,6662 33457 STORE TFF
027627,000613:
027628,000614: 31,6663 40576 ITCQ 0
027629,000615:
027630,000616: 31,6664 45175 TFF0 DMOVE 1
027631,000617: 31,6665 76576 RTB
027632,000618: 31,6666 05174 ZERODP
027633,000619: 31,6667 20265 FRESHPD
027634,000620: 31,6670 33457 STORE TFF
027635,000621:
027636,000622: 31,6671 40576 ITCQ 0
027637,000623:
027638,000624: 31,6672 40576 ITCQ 0
027639,000625:
027640,000626: 31,6673 20000 00000 TWO(-2) 2DEC .5
027641,000627: 31,6675 05252 25253 DP1/3S 2DEC .3333333333 B-1
End of include-file TIME_OF_FREE-FALL_CALCULATIONS.agc. Parent file is MAIN.agc