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. |
011593,000002: ## Copyright: Public domain.
011594,000003: ## Filename: ORBITAL_INTEGRATION_PROGRAM.agc
011595,000004: ## Purpose: Part of the source code for Solarium build 55. This
011596,000005: ## is for the Command Module's (CM) Apollo Guidance
011597,000006: ## Computer (AGC), for Apollo 6.
011598,000007: ## Assembler: yaYUL --block1
011599,000008: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
011600,000009: ## Website: www.ibiblio.org/apollo/index.html
011601,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Solarium055/
011602,000011: ## Mod history: 2009-09-22 JL Created.
011603,000012: ## 2016-08-20 RSB Typos.
011604,000013: ## 2016-12-28 RSB Proofed comment text using octopus/ProoferComments,
011605,000014: ## and fixed errors found.
011606,000015:
![]() |
Page 296 |
011608,000017:
011609,000018: 23,6000 BANK 23
011610,000019:
011611,000020: # *** SCALING FACTORS AND ARGUMENTS ***
011612,000021:
011613,000022: 23,6000 DEL = 2
011614,000023: 23,6000 DEL+E = 2
011615,000024: 23,6000 2DEL = 4
011616,000025: 23,6000 2DEL+E = 4
011617,000026: 23,6000 E = 0
011618,000027: 23,6000 RSCALE = 16D
011619,000028: 23,6000 VSCALE = 6
011620,000029: 23,6000 TSCALE = 27D
011621,000030: 23,6000 2VSCALE = 12D
011622,000031: 23,6000 4RSCALE = 64D
011623,000032: 23,6000 R+VSCALE = 22D
011624,000033:
011625,000034: # FBR3 SETS UP A TIMESTEP CALL TO KEPLER.
011626,000035:
011627,000036: 23,6000 56775 FBR3 TSRT 1
011628,000037: 23,6001 46542 ROUND DAD
011629,000038: 23,6002 01265 H
011630,000039: 23,6003 00012 TSCALE -18D
011631,000040: 23,6004 01145 TC
011632,000041: 23,6005 33261 STORE TAU
011633,000042:
011634,000043: 23,6006 64774 DMP 2
011635,000044: 23,6007 56631 TSRT ROUND
011636,000045: 23,6010 70776 DAD
011637,000046: 23,6011 07431 EARTHTAB
011638,000047: 23,6012 01263 DT/2
011639,000048: 23,6013 00015 12D
011640,000049: 23,6014 01147 TET
011641,000050: 23,6015 33147 STORE TET
011642,000051:
011643,000052: 23,6016 76776 ITC 0
011644,000053: 23,6017 06027 KEPLER
011645,000054:
011646,000055: 23,6020 76776 ITC 0
011647,000056: 23,6021 06066 KEPLER2
011648,000057:
011649,000058: 23,6022 76776 GETKTIME ITC 0
011650,000059: 23,6023 06145 KTIMEN+1
011651,000060:
011652,000061: 23,6024 76776 ITC 0
011653,000062: 23,6025 06225 KEPLER3
011654,000063:
![]() |
Page 297 |
011656,000065:
011657,000066: # THIS ORBITAL KEPLER SUBROUTINE FINDS THE POSITION AND VELOCITY OF THE VEHICLE AFTER TIME FOUND IN
011658,000067: # GIVENT SINCE RECTIFICATION TO POSITION RRECT AND VELOCITY VRECT . THE RESULTING POSITION AND VELOCITY ARE
011659,000068: # LEFT IN FOUNDR AND FOUNDV , RESPECTIVELY.
011660,000069:
011661,000070: 23,6026 73575 KEPLER LXA,1 1 # UNIT OF RECTIFICATION POSITION TO 0
011662,000071: 23,6027 67553 SXA,1 UNIT
011663,000072: 23,6030 00070 FIXLOC
011664,000073: 23,6031 00124 PUSHLOC
011665,000074: 23,6032 01101 RRECT
011666,000075:
011667,000076: 23,6033 63776 TSLT 0 # AND LENGTH OF ORIGINAL IN 6.
011668,000077: 23,6034 00037 30D
011669,000078: 23,6035 00002 1
011670,000079:
011671,000080: 23,6036 67173 VSQ 3 # A4 TO REGISTER 8.
011672,000081: 23,6037 46522 ROUND DMP
011673,000082: 23,6040 63732 TSLT DSU
011674,000083: 23,6041 63631 TSLT ROUND
011675,000084: 23,6042 01107 VRECT
011676,000085: 23,6043 00007 6 # LENGTH OF POSITION AT RECTIFICATION.
011677,000086: 23,6044 00004 2DEL+E -1
011678,000087: 23,6045 07445 DP1/2
011679,000088: 23,6046 00002 1
011680,000089:
011681,000090: 23,6047 47573 NOLOD 3 # ALPHA TO REGISTER 10.
011682,000091: 23,6050 56633 TSRT COMP
011683,000092: 23,6051 70672 DAD TSRT
011684,000093: 23,6052 62776 DDV
011685,000094: 23,6053 00002 1
011686,000095: 23,6054 07445 DP1/2
011687,000096: 23,6055 00004 2DEL+E -1
011688,000097: 23,6056 00007 6
011689,000098:
011690,000099: 23,6057 42775 DOT 1 # A1 TO REGISTER 12.
011691,000100: 23,6060 63631 TSLT ROUND
011692,000101: 23,6061 01101 RRECT
011693,000102: 23,6062 01107 VRECT
011694,000103: 23,6063 00003 DEL+E
011695,000104:
011696,000105: 23,6064 40576 ITCQ 0
011697,000106:
![]() |
Page 298 |
011699,000108:
011700,000109: 23,6065 73175 KEPLER2 UNIT 1
011701,000110: 23,6066 74412 AXT,2 DOT
011702,000111: 23,6067 01131 RCV
011703,000112: 23,6070 00013 10D # SET MAXIMUM ITERATION COUNT TO 10.
011704,000113: 23,6071 01137 VCV # IR/2 . VC IN 14
011705,000114:
011706,000115: 23,6072 63776 TSLT 0
011707,000116: 23,6073 00037 30D
011708,000117: 23,6074 00002 1
011709,000118: 23,6075 33255 STORE ALPHAM # RC IN ALPHAM.
011710,000119:
011711,000120: 23,6076 56775 TSRT 1
011712,000121: 23,6077 46512 ROUND DDV
011713,000122: 23,6100 01263 DT/2
011714,000123: 23,6101 00012 TSCALE -18D
011715,000124: 23,6102 01255 ALPHAM # Q IN 16.
011716,000125:
011717,000126: 23,6103 56772 TSRT 4
011718,000127: 23,6104 62732 DDV DSU
011719,000128: 23,6105 55666 DMPR DMPR
011720,000129: 23,6106 55661 DMPR AST,2
011721,000130: 23,6107 63776 TSLT
011722,000131: 23,6110 07445 DP1/2
011723,000132: 23,6111 00004 2DEL+E -1
011724,000133: 23,6112 01255 ALPHAM
011725,000134: 23,6113 00013 10D # 1/4RC - ALPHA
011726,000135: 23,6114 00021 16D # Q ( )
011727,000136: 23,6115 00021 16D # Q Q ( )
011728,000137: 23,6116 06306 DP1/3
011729,000138: 23,6117 00002 1
011730,000139: 23,6120 00011 2DEL +4
011731,000140:
011732,000141: 23,6121 55775 DMPR 1
011733,000142: 23,6122 63776 TSLT
011734,000143: 23,6123 00017 14D
011735,000144: 23,6124 00021 16D
011736,000145: 23,6125 00006 DEL +3
011737,000146:
011738,000147: 23,6126 47572 NOLOD 4
011739,000148: 23,6127 65666 BDSU DMPR
011740,000149: 23,6130 65732 BDSU DSU
011741,000150: 23,6131 64716 DMP TSLT
011742,000151: 23,6132 46542 ROUND DAD
011743,000152: 23,6133 07445 DP1/2
011744,000153: 23,6134 77777 - # 20
011745,000154: 23,6135 07445 DP1/2
011746,000155: 23,6136 77777 - # 18
011747,000156: 23,6137 77777 - # 16
011748,000157: 23,6140 00002 1
011749,000158: 23,6141 01151 XKEP
![]() |
Page 299 |
011751,000160: 23,6142 33151 STORE XKEP
011752,000161:
011753,000162: 23,6143 40576 ITCQ 0
011754,000163:
![]() |
Page 300 |
011756,000165:
011757,000166: # ITERATING EQUATIONS - GIVEN X IN MPAC AND 14D, FIND TIME OF FLIGHT.
011758,000167:
011759,000168:
011760,000169:
011761,000170: 23,6144 47571 KTIMEN+1 NOLOD 5 # FORM ALPHA X-SQUARED AND CALL S AND C.
011762,000171: 23,6145 51031 DSQ ROUND
011763,000172: 23,6146 64716 DMP TSLT
011764,000173: 23,6147 46555 ROUND LXA,1 # AND SET PD INDICATOR TO 16 AS WELL.
011765,000174: 23,6150 63535 INCR,1 SXA,1
011766,000175: 23,6151 45572 ITA ITC
011767,000176: 23,6152 00013 10D # ALPHA
011768,000177: 23,6153 00005 2DEL
011769,000178: 23,6154 00070 FIXLOC
011770,000179: 23,6155 00021 16D
011771,000180: 23,6156 00124 PUSHLOC
011772,000181: 23,6157 01273 GMODE
011773,000182: 23,6160 06312 S(X)C(X)
011774,000183:
011775,000184: 23,6161 47572 NOLOD 4 # S RETURNS IN MPAC, C ON TOP OF PDL.
011776,000185: 23,6162 64716 DMP TSLT
011777,000186: 23,6163 64716 DMP TSLT
011778,000187: 23,6164 64716 DMP TSLT
011779,000188: 23,6165 46576 ROUND
011780,000189: 23,6166 01151 XKEP
011781,000190: 23,6167 00005 4
011782,000191: 23,6170 01151 XKEP
011783,000192: 23,6171 00002 E +1
011784,000193: 23,6172 01151 XKEP
011785,000194: 23,6173 00002 1
011786,000195: 23,6174 32030 STORE 23D # A3.
011787,000196:
011788,000197: 23,6175 47575 NOLOD 1
011789,000198: 23,6176 55776 DMPR
011790,000199: 23,6177 00011 8D
011791,000200:
011792,000201: 23,6200 64774 DMP 2
011793,000202: 23,6201 63722 TSLT DMP
011794,000203: 23,6202 63631 TSLT ROUND
011795,000204: 23,6203 01151 XKEP
011796,000205: 23,6204 00021 16D # VALUE OF C.
011797,000206: 23,6205 00006 5
011798,000207: 23,6206 01151 XKEP
011799,000208: 23,6207 00003 E +2
011800,000209: 23,6210 32026 STORE 21D # A2.
011801,000210:
011802,000211: 23,6211 47574 NOLOD 2
011803,000212: 23,6212 64672 DMP TSRT
011804,000213: 23,6213 46542 ROUND DAD
011805,000214: 23,6214 00015 12D # A1.
011806,000215: 23,6215 00003 2
![]() |
Page 301 |
011808,000217: 23,6216 55775 DMPR 1
011809,000218: 23,6217 70776 DAD
011810,000219: 23,6220 00007 6
011811,000220: 23,6221 01151 XKEP # COMPUTED TIME TO PD+18.
011812,000221:
011813,000222: 23,6222 44576 ITCI 0
011814,000223: 23,6223 01273 GMODE
011815,000224:
011816,000225: 23,6224 47575 KEPLER3 NOLOD 1 # COMPARE COMPUTED TIME WITH GIVEN TIME.
011817,000226: 23,6225 65776 BDSU
011818,000227: 23,6226 01261 GIVENT
011819,000228: 23,6227 32021 STORE 16D # DIFFERENCE TO REGISTER 16.
011820,000229:
011821,000230: 23,6230 77576 EXIT 0 # FOR DUMP ONLY **************
011822,000231: 23,6231 04000 DUMPDUMP TC INTPRET
011823,000232:
011824,000233: 23,6232 47573 NOLOD 3
011825,000234: 23,6233 65132 ABS DSU
011826,000235: 23,6234 73641 BMN TIX,2
011827,000236: 23,6235 76776 ITC
011828,000237: 23,6236 06300 KEPSILON # SEE IF WITHIN EPSILON OF GIVEN TIME.
011829,000238: 23,6237 06407 GETRANDV # IF SO, GET R AND V AND EXIT.
011830,000239:
011831,000240: 23,6240 06243 GETNEWX
011832,000241: 23,6241 06407 GETRANDV
011833,000242:
011834,000243: 23,6242 64772 GETNEWX DMP 4
011835,000244: 23,6243 63631 TSLT ROUND
011836,000245: 23,6244 65722 BDSU DMP
011837,000246: 23,6245 53514 AXC,1 TSLT*
011838,000247: 23,6246 46576 ROUND
011839,000248: 23,6247 00013 10D # ALPHA
011840,000249: 23,6250 00030 23D # A3
011841,000250: 23,6251 00005 2DEL+E
011842,000251: 23,6252 01151 XKEP
011843,000252: 23,6253 00015 12D # A1
011844,000253: 23,6254 00004 E -3
011845,000254: 23,6255 00001 0,1
011846,000255: 23,6256 32023 STORE 18D
011847,000256:
011848,000257: 23,6257 64774 DMP 2
011849,000258: 23,6260 63631 TSLT ROUND
011850,000259: 23,6261 70742 DAD DAD
011851,000260: 23,6262 00026 21D # A2
011852,000261: 23,6263 00011 8D # A4
011853,000262: 23,6264 00002 1
011854,000263: 23,6265 77777 -
011855,000264: 23,6266 00007 6 # R0
011856,000265:
011857,000266: 23,6267 62775 DDV 1
![]() |
Page 302 |
011859,000268: 23,6270 70776 DAD
011860,000269: 23,6271 00021 16D
011861,000270: 23,6272 00023 18D
011862,000271: 23,6273 01151 XKEP
011863,000272: 23,6274 33151 STORE XKEP
011864,000273:
011865,000274: 23,6275 76776 ITC 0
011866,000275: 23,6276 06023 GETKTIME
011867,000276:
![]() |
Page 303 |
011869,000278:
011870,000279: # CONSTANTS.
011871,000280:
011872,000281: 23,6277 00000 KEPSILON OCT 00000
011873,000282: 23,6300 00002 OCT 00002
011874,000283: 23,6301 14000 00000 THREE/8 2DEC .375
011875,000284: 23,6303 10000 00000 DP1/4 2DEC .25
011876,000285: 23,6305 12525 12525 DP1/3 2DEC .333333333
011877,000286: 23,6307 23,6303 DQUARTER EQUALS DP1/4
011878,000287: 23,6307 02000 00000 POS1/16 2DEC .0625
011879,000288: 23,6311 23,6303 POS1/4 EQUALS DP1/4
011880,000289: 23,6311 23,6301 3/8 EQUALS THREE/8
011881,000290:
![]() |
Page 304 |
011883,000292:
011884,000293: # SUBROUTINE FOR COMPUTING THE UNIVERSAL CONIC FUNCTIONS S(X) AND C(X). THE ACTUAL OUTPUT OF THIS ROUTINE
011885,000294: # CONSISTS OF SCALED VERSIONS DEFINED AS FOLLOWS:
011886,000295:
011887,000296: # S (X) = S(64X) C (X) = C(64X)/4
011888,000297: # S S
011889,000298:
011890,000299: # IT IS ASSUMED THAT THE INPUT ARRIVES IN MPAC,MPAC+1, AND THAT IT LIES BETWEEN -30/64 AND 40/64. UPON
011891,000300: # EXIT, S(X) WILL BE LEFT IN MPAC,MPAC+1 AND C(X) ON TOP OF THE PUSHDOWN LIST.
011892,000301:
011893,000302:
011894,000303:
011895,000304: 23,6311 47576 S(X)C(X) NOLOD 0 # SAVE ARGUMENT
011896,000305: 23,6312 32033 STORE XSTOREX
011897,000306:
011898,000307: 23,6313 47574 NOLOD 2 # 2
011899,000308: 23,6314 76443 RTB DSQ # COMPUTE A (X)
011900,000309: 23,6315 46576 ROUND
011901,000310: 23,6316 06351 A(X)
011902,000311: 23,6317 32031 STORE ASQ
011903,000312:
011904,000313: 23,6320 47573 NOLOD 3 # 2 2
011905,000314: 23,6321 64716 DMP TSLT # C (X)=A (.25 - 2XA ) TO PUSHDOWN LIST
011906,000315: 23,6322 46526 ROUND BDSU # S
011907,000316: 23,6323 55776 DMPR
011908,000317: 23,6324 00033 XSTOREX
011909,000318: 23,6325 00002 1
011910,000319: 23,6326 06304 POS1/4
011911,000320: 23,6327 00031 ASQ
011912,000321:
011913,000322: 23,6330 56775 TSRT 1 # 2
011914,000323: 23,6331 46576 ROUND # A /4 TO PUSHDOWN LIST
011915,000324: 23,6332 00031 ASQ
011916,000325: 23,6333 00003 2
011917,000326:
011918,000327: 23,6334 45174 DMOVE 2 # 2
011919,000328: 23,6335 76443 RTB DSQ # B TO PUSHDOWN LIST
011920,000329: 23,6336 46576 ROUND
011921,000330: 23,6337 00033 XSTOREX
011922,000331: 23,6340 06370 B(X)
011923,000332:
011924,000333: 23,6341 55774 DMPR 2 # 2 2 2
011925,000334: 23,6342 65666 BDSU DMPR # LEAVE S (X)=B (.0625-A X)+A /4 IN MPAC
011926,000335: 23,6343 70601 DAD ITCQ # S
011927,000336: 23,6344 00033 XSTOREX
011928,000337: 23,6345 00031 ASQ
011929,000338: 23,6346 06310 POS1/16
011930,000339:
011931,000340: 23,6347 XSTOREX = 26D
011932,000341: 23,6347 ASQ = 24D
011933,000342: 23,6347 70707 OCT 70707 # THIS HAS TO BE NEGATIVE TO TERMINATE EQN
011934,000343:
![]() |
Page 305 |
011936,000345:
011937,000346: 23,6350 05554 A(X) TC POLY # A AND B POLYNOMIALS WHOSE COEFFICI-
011938,000347:
011939,000348: 23,6351 00012 DEC 10 B-14 # ENTS WERE OBTAINED WITH THE *AUTO-
011940,000349:
011941,000350: 23,6352 26501 07463 2DEC 7.071067810 E-1 # CURVEFIT* PROGRAM
011942,000351: 23,6354 60724 60210 2DEC -4.714045180 E-1
011943,000352: 23,6356 03010 26256 2DEC 9.42808914 E-2
011944,000353: 23,6360 77554 74242 2DEC -8.9791893 E-3
011945,000354: 23,6362 00010 05475 2DEC 4.989987 E-4
011946,000355: 23,6364 77777 66460 2DEC -1.79357 E-5
011947,000356:
011948,000357: 23,6366 04024 TC DANZIG # RE-ENTER INTERPRETER
011949,000358:
011950,000359:
011951,000360:
011952,000361: 23,6367 05554 B(X) TC POLY
011953,000362:
011954,000363: 23,6370 00012 DEC 10 B-14
011955,000364:
011956,000365: 23,6371 32101 17270 2DEC 8.164965793 E-1
011957,000366: 23,6373 65431 40174 2DEC -3.265986572 E-1
011958,000367: 23,6375 01710 10660 2DEC 5.90988980 E-2
011959,000368: 23,6377 77676 52270 2DEC -4.0085592 E-3
011960,000369: 23,6401 00004 21652 2DEC 2.781528 E-4
011961,000370: 23,6403 77777 71323 2DEC -1.25610 E-5
011962,000371:
011963,000372: 23,6405 04024 TC DANZIG # RETURN AS BEFORE
011964,000373:
![]() |
Page 306 |
011966,000375:
011967,000376: # ROUTINE FOR OBTAINING R AND V, NOW THAT THE PROPER X HAS BEEN FOUND.
011968,000377:
011969,000378:
011970,000379:
011971,000380: 23,6406 73574 GETRANDV LXA,1 2
011972,000381: 23,6407 63535 INCR,1 SXA,1
011973,000382: 23,6410 47166 COMP VXSC
011974,000383: 23,6411 00070 FIXLOC
011975,000384: 23,6412 00032 25D
011976,000385: 23,6413 00124 PUSHLOC
011977,000386: 23,6414 00026 21D # AZ FROM LAST ITERATION.
011978,000387: 23,6415 00001 0 # UNIT OF GIVEN POSITION VECTOR.
011979,000388:
011980,000389: 23,6416 66774 DSU 2
011981,000390: 23,6417 63766 TSLT VXSC
011982,000391: 23,6420 50622 VAD VSLT
011983,000392: 23,6421 00023 18D # LAST VALUE OF T.
011984,000393: 23,6422 00030 23D # LAST VALUE OF A3.
011985,000394: 23,6423 00004 DEL +1
011986,000395: 23,6424 01107 VRECT
011987,000396: 23,6425 77777 -
011988,000397: 23,6426 00002 1
011989,000398:
011990,000399: 23,6427 47575 NOLOD 1 # ADDITION MUST BE DONE IN THIS ORDER.
011991,000400: 23,6430 50642 VAD VAD
011992,000401: 23,6431 01101 RRECT
011993,000402: 23,6432 33131 STORE FOUNDR # RESULTING CONIC POSITION.
011994,000403:
011995,000404: 23,6433 47575 NOLOD 1 # LENGTH OF ABOVE TO PD+16.
011996,000405: 23,6434 71116 ABVAL TSLT
011997,000406: 23,6435 00002 1
011998,000407: 23,6436 32021 STORE 16D
011999,000408:
012000,000409: 23,6437 64772 DMP 4
012001,000410: 23,6440 63631 TSLT ROUND
012002,000411: 23,6441 66672 DSU TSRT
012003,000412: 23,6442 62766 DDV VXSC
012004,000413: 23,6443 44776 VSLT
012005,000414: 23,6444 00013 10D # ALPHA.
012006,000415: 23,6445 00030 23D # A3
012007,000416: 23,6446 00005 2DEL+E
012008,000417: 23,6447 01151 XKEP
012009,000418: 23,6450 00003 DEL+E
012010,000419: 23,6451 00021 16D # LENGTH OF FOUND POSITION.
012011,000420: 23,6452 00001 0 # UNIT OF RECTIFICATION POSITION.
012012,000421: 23,6453 00004 3
012013,000422: 23,6454 56773 TSRT 3
012014,000423: 23,6455 66712 DSU DDV
012015,000424: 23,6456 75642 VXSC VAD
012016,000425: 23,6457 44776 VSLT
![]() |
Page 307 |
012018,000427: 23,6460 00021 16D
012019,000428: 23,6461 00002 1
012020,000429: 23,6462 00026 21D
012021,000430: 23,6463 00021 16D
012022,000431: 23,6464 01107 VRECT
012023,000432: 23,6465 77777 -
012024,000433: 23,6466 00002 1
012025,000434: 23,6467 33137 STORE FOUNDV # THIS COMPLETES THE CALCULATION.
012026,000435:
012027,000436: 23,6470 44576 ITCI 0
012028,000437: 23,6471 01272 HBRANCH
012029,000438:
![]() |
Page 308 |
012031,000440:
012032,000441: # THE POSTRUE ROUTINES SET UP THE BETA VECTOR AND OTHER INITIAL CONDITIONS FOR THE NEXT ACCOMP.
012033,000442:
012034,000443:
012035,000444:
012036,000445: 23,6472 73573 POSTRUE LXA,1 3
012037,000446: 23,6473 67426 SXA,1 VSRT
012038,000447: 23,6474 50751 VAD LXA,2
012039,000448: 23,6475 73535 LXA,1 SXA,1
012040,000449: 23,6476 01312 SCALDELT # SETS UP SCALE A.
012041,000450: 23,6477 01307 SCALEA
012042,000451: 23,6500 01153 ALPHAV
012043,000452: 23,6501 00015 RSCALE -4
012044,000453: 23,6502 01131 RCV # POSITION OUTPUT OF KEPLER.
012045,000454: 23,6503 01306 DIFEQCNT
012046,000455: 23,6504 01313 SCALER
012047,000456: 23,6505 01310 SCALEB # SET UP SCALE B AND G MODE.
012048,000457: 23,6506 33161 STORE BETAV
012049,000458:
012050,000459: 23,6507 67776 BHIZ 0
012051,000460: 23,6510 01304 WMATFLAG # TEST W MATRIX FLAG.
012052,000461: 23,6511 06516 ACCOMP
012053,000462:
012054,000463: 23,6512 75176 VMOVE 0
012055,000464: 23,6513 01161 BETAV
012056,000465: 23,6514 36422 STORE VECTAB,2 # SAVE R/PV IN VECTAB FOR W MATRIX UPDATE.
012057,000466:
![]() |
Page 309 |
012059,000468:
012060,000469: # AGC ROUTINE TO COMPUTE ACCELERATION COMPONENTS.
012061,000470:
012062,000471:
012063,000472:
012064,000473: 23,6515 73176 ACCOMP UNIT 0 # UNITIZE ALPHA VECTOR
012065,000474: 23,6516 01153 ALPHAV
012066,000475: 23,6517 33153 STORE ALPHAV
012067,000476:
012068,000477: 23,6520 45176 DMOVE 0 # SAVE LENGTH OF ALPHA VECTOR
012069,000478: 23,6521 00037 30D
012070,000479: 23,6522 33255 STORE ALPHAM
012071,000480:
012072,000481: 23,6523 72776 STZ 0
012073,000482: 23,6524 00123 OVFIND
012074,000483:
012075,000484: 23,6525 45773 ACCOMP2 VSRT 3 # 2
012076,000485: 23,6526 67155 VSQ LXA,1 # NORMED B TO PD.
012077,000486: 23,6527 67476 SXA,1 TSLC
012078,000487: 23,6530 46576 ROUND
012079,000488: 23,6531 01161 BETAV
012080,000489: 23,6532 00002 1
012081,000490: 23,6533 00070 FIXLOC
012082,000491: 23,6534 00124 PUSHLOC
012083,000492: 23,6535 00051 S1
012084,000493:
012085,000494: 23,6536 57775 TSLC 1 # NORMALIZE (LESS ONE) LENGTH OF ALPHA
012086,000495: 23,6537 56776 TSRT # SAVING NORM. SCALE FACTOR IN X1
012087,000496: 23,6540 01255 ALPHAM
012088,000497: 23,6541 00047 X1
012089,000498: 23,6542 00002 1 # C(PDL+2)= ALMOST NORMED ALPHAM
012090,000499:
012091,000500: 23,6543 73176 UNIT 0 # SAME PROCEDURE FOR BETA VECTOR
012092,000501: 23,6544 01161 BETAV
012093,000502: 23,6545 33161 STORE BETAV
012094,000503:
012095,000504: 23,6546 45176 DMOVE 0
012096,000505: 23,6547 00037 30D
012097,000506: 23,6550 33257 STORE BETAM
012098,000507:
012099,000508: 23,6551 47574 NOLOD 2
012100,000509: 23,6552 57706 TSLC BDDV # FORM NORMALIZED QUOTIENT ALPHAM/BETAM
012101,000510: 23,6553 56631 TSRT ROUND
012102,000511: 23,6554 00050 X2
012103,000512: 23,6555 77777 -
012104,000513: 23,6556 00002 1 # C(PDL +2) = ALMOST NORMALIZED RHO.
![]() |
Page 310 |
012106,000515: 23,6557 70573 LXC,2 3 # C(X2) = -SCALE(RHO) + 1.
012107,000516: 23,6560 60501 XAD,2 XAD,2 # = -S(B)-N(B)+S(A)+N(A)+1
012108,000517: 23,6561 56511 XSU,2 INCR,2
012109,000518: 23,6562 47470 NOLOD TSRT*
012110,000519: 23,6563 00050 X2
012111,000520: 23,6564 01307 SCALEA
012112,000521: 23,6565 00047 X1
012113,000522: 23,6566 01310 SCALEB
012114,000523: 23,6567 00003 2
012115,000524: 23,6570 00002 0,2
012116,000525:
012117,000526: 23,6571 47575 NOLOD 1 # RHO/4 PD +6
012118,000527: 23,6572 56631 TSRT ROUND
012119,000528: 23,6573 00003 2
012120,000529:
012121,000530: 23,6574 42774 DOT 2
012122,000531: 23,6575 63631 TSLT ROUND # (RHO/4)- 2 (ALPHAV/2.BETAV/2)
012123,000532: 23,6576 65776 BDSU # TO PDL +6
012124,000533: 23,6577 01153 ALPHAV
012125,000534: 23,6600 01161 BETAV
012126,000535: 23,6601 00002 1
012127,000536:
012128,000537: 23,6602 47575 NOLOD 1 # Q/4 = RHO(C(PDL +4)) TO PD +8D
012129,000538: 23,6603 55776 DMPR
012130,000539: 23,6604 00005 4
012131,000540:
012132,000541: 23,6605 47575 NOLOD 1 # (Q + 1)/4 TO PD +10D.
012133,000542: 23,6606 70776 DAD
012134,000543: 23,6607 06304 DQUARTER
012135,000544:
012136,000545: 23,6610 47575 NOLOD 1 # 3/2
012137,000546: 23,6611 53066 SQRT DMPR # ((Q + 1)/4) TO PD +12D.
012138,000547: 23,6612 00013 10D
012139,000548:
012140,000549: 23,6613 47575 NOLOD 1 # 3/2
012141,000550: 23,6614 63742 TSLT DAD # (1/4) + 2((Q + 1)/4) TO PD +14D.
012142,000551: 23,6615 00002 1
012143,000552: 23,6616 06304 DQUARTER
![]() |
Page 311 |
012145,000554: 23,6617 70773 DAD 3 # -
012146,000555: 23,6620 55716 DMPR TSLT # (G/2)(C(PD +4))B/2 TO PD +16D.
012147,000556: 23,6621 70712 DAD DDV
012148,000557: 23,6622 55766 DMPR VXSC
012149,000558: 23,6623 00013 10D
012150,000559: 23,6624 07445 DP1/2
012151,000560: 23,6625 00011 8D
012152,000561: 23,6626 00002 1
012153,000562: 23,6627 06302 THREE/8
012154,000563: 23,6630 00017 14D
012155,000564: 23,6631 00007 6
012156,000565: 23,6632 01161 BETAV
012157,000566:
012158,000567: 23,6633 45775 VSRT 1 # A12 + C(PD +16D) TO PD +16D.
012159,000568: 23,6634 50776 VAD
012160,000569: 23,6635 01153 ALPHAV
012161,000570: 23,6636 00004 3
012162,000571:
012163,000572: 23,6637 64771 DMP 5 # -
012164,000573: 23,6640 57631 TSLC ROUND # GAMMA TO PD +22D, -SCALE(GAMMA)-1 TO
012165,000574: 23,6641 61745 BDDV LXC,1 # X1.
012166,000575: 23,6642 61505 XAD,1 XAD,1
012167,000576: 23,6643 61505 XAD,1 XAD,1
012168,000577: 23,6644 47166 COMP VXSC
012169,000578: 23,6645 00001 0
012170,000579: 23,6646 00015 12D
012171,000580: 23,6647 00052 S2
012172,000581: 23,6650 00003 2
012173,000582: 23,6651 00050 X2 # C(X2) = SCALE (RHO).
012174,000583: 23,6652 00052 S2 # C(S2) = N((B.B/4)(...)3/2)
012175,000584: 23,6653 00051 S1 # C(S1) = N(B.B/4)
012176,000585: 23,6654 01310 SCALEB
012177,000586: 23,6655 01310 SCALEB
012178,000587: 23,6656 00021 16D # RESULT OF PRECEDING EQUATION.
012179,000588:
012180,000589: 23,6657 47575 NOLOD 1 # -SCALE(GAMMA)-1 IS LEFT IN X1.
012181,000590: 23,6660 44376 VSLT* # ADJUST GAMMA TO SCALE OF -32.
012182,000591: 23,6661 00077 31D,1
012183,000592: 23,6662 33203 STORE FV
012184,000593:
012185,000594: 23,6663 75176 VMOVE 0
012186,000595: 23,6664 01161 BETAV
012187,000596: 23,6665 33153 STORE ALPHAV # BETA VECTOR INTO ALPHA FOR NEXT ACCOMP.
012188,000597:
012189,000598: 23,6666 45176 DMOVE 0
012190,000599: 23,6667 01257 BETAM
012191,000600: 23,6670 33255 STORE ALPHAM
![]() |
Page 312 |
012193,000602:
012194,000603: # THE OBLATE ROUTINE COMPUTES THE ACCELERATION DUE THE THE EARTHS OBLATENESS. IT USES THE UNIT OF THE
012195,000604: # VEHICLE POSITION VECTOR FOUND IN ALPHAV AND THE DISTANCE TO THE CENTER OF THE EARTH IN ALPHAM. THIS IS ADDED TO
012196,000605: # THE SUM OF THE DISTURBING ACCELERATIONS IN FV AND THE PROPER DIFEQ STAGE IS CALLED VIA X1.
012197,000606:
012198,000607:
012199,000608:
012200,000609: 23,6671 73575 OBLATE LXA,1 1
012201,000610: 23,6672 67516 SXA,1 TSLT
012202,000611: 23,6673 00070 FIXLOC # SET PUSH-DOWN COUNTER TO ZERO.
012203,000612: 23,6674 00124 PUSHLOC
012204,000613: 23,6675 01255 ALPHAM
012205,000614: 23,6676 00002 1
012206,000615: 23,6677 33255 STORE ALPHAM
012207,000616:
012208,000617: 23,6700 55776 DMPR 0 # P2'/8 TO REGISTER 0.
012209,000618: 23,6701 01157 ALPHAV +4 # Z COMPONENT OF POSITION IS COS PHI.
012210,000619: 23,6702 07435 3/4
012211,000620:
012212,000621: 23,6703 51174 DSQ 2 # P3'/4 TO REGISTER 2.
012213,000622: 23,6704 63666 TSLT DMPR
012214,000623: 23,6705 66776 DSU
012215,000624: 23,6706 01157 ALPHAV +4
012216,000625: 23,6707 00004 3
012217,000626: 23,6710 07433 15/16
012218,000627: 23,6711 06302 3/8
012219,000628:
012220,000629: 23,6712 47574 NOLOD 2 # P4'/16 TO REGISTER 4.
012221,000630: 23,6713 55666 DMPR DMPR
012222,000631: 23,6714 63776 TSLT
012223,000632: 23,6715 01157 ALPHAV +4
012224,000633: 23,6716 07211 7/12
012225,000634: 23,6717 00002 1 # TO STACK.
012226,000635:
012227,000636: 23,6720 55775 DMPR 1 # FINISH P4'/16.
012228,000637: 23,6721 65776 BDSU
012229,000638: 23,6722 00001 P2'/8
012230,000639: 23,6723 07231 2/3
012231,000640:
012232,000641: 23,6724 47575 NOLOD 1 # BEGIN COMPUTING P5'/128.
012233,000642: 23,6725 55666 DMPR DMPR
012234,000643: 23,6726 01157 ALPHAV +4
012235,000644: 23,6727 07213 9/16
![]() |
Page 313 |
012237,000646: 23,6730 55770 DMPR 6 # FINISH P5'/128 AND TERM USING UNIT
012238,000647: 23,6731 65722 BDSU DMP # POSITION VECTOR AT ALPHA.
012239,000648: 23,6732 63672 TSLT TSRT
012240,000649: 23,6733 62742 DDV DAD
012241,000650: 23,6734 55672 DMPR TSRT
012242,000651: 23,6735 62742 DDV DAD
012243,000652: 23,6736 75776 VXSC
012244,000653: 23,6737 00003 P3'/4
012245,000654: 23,6740 07215 5/128
012246,000655: 23,6741 77777 -
012247,000656: 23,6742 07443 J4REQ/J3
012248,000657: 23,6743 00003 2
012249,000658: 23,6744 00003 RSCALE -14D
012250,000659: 23,6745 01255 ALPHAM
012251,000660: 23,6746 00005 P4'/16
012252,000661: 23,6747 07441 2J3RE/J2
012253,000662: 23,6750 00003 RSCALE -14D
012254,000663: 23,6751 01255 ALPHAM
012255,000664: 23,6752 00003 P3'/4
012256,000665: 23,6753 01153 ALPHAV
012257,000666: 23,6754 33153 STORE ALPHAV
012258,000667:
012259,000668: 23,6755 64774 DMP 2 # COMPUTE TERM USING IZ.
012260,000669: 23,6756 63672 TSLT TSRT
012261,000670: 23,6757 62742 DDV DAD
012262,000671: 23,6760 07443 J4REQ/J3
012263,000672: 23,6761 77777 -
012264,000673: 23,6762 00002 1
012265,000674: 23,6763 00003 RSCALE -14D
012266,000675: 23,6764 01255 ALPHAM
![]() |
Page 314 |
012268,000677: 23,6765 56774 TSRT 2
012269,000678: 23,6766 55712 DMPR DDV
012270,000679: 23,6767 70726 DAD BDSU
012271,000680: 23,6770 07441 2J3RE/J2
012272,000681: 23,6771 00006 RSCALE -11D
012273,000682: 23,6772 77777 -
012274,000683: 23,6773 01255 ALPHAM
012275,000684: 23,6774 77777 -
012276,000685: 23,6775 01157 ALPHAV +4
012277,000686: 23,6776 33157 STORE ALPHAV +4
012278,000687:
012279,000688: 23,6777 51172 DSQ 4
012280,000689: 23,7000 51076 DSQ TSLC
012281,000690: 23,7001 61766 BDDV VXSC
012282,000691: 23,7002 63420 INCR,1 VSLT* # SHIFTS LEFT ON+, RIGHT ON -.
012283,000692: 23,7003 50776 VAD
012284,000693: 23,7004 01255 ALPHAM
012285,000694: 23,7005 00047 X1
012286,000695: 23,7006 07437 J2REQSQ
012287,000696: 23,7007 01153 ALPHAV
012288,000697: 23,7010 00015 4RSCALE -52D
012289,000698: 23,7011 00001 0,1
012290,000699: 23,7012 01203 FV
012291,000700: 23,7013 33203 STORE FV
![]() |
Page 315 |
012293,000702:
012294,000703: # THE DRAG ROUTINE IS AN INSERTION TO THE OBLATE ROUTINE. IT USES
012295,000704: # THE VEHICLE POSITION VECTOR FOUND IN RCV. THE DISTANCE TO THE CENTER OF
012296,000705: # THE EARTH IN ALPHAM, AND THE VEHICLE VELOCITY VECTOR IN VCV.
012297,000706:
012298,000707: # IT APPROXIMATES THE U.S. STD ATMOSPHERE 1962 (OVER THE RANGE OF
012299,000708: # 100 TO 300 KM ABOVE SEA LEVEL) WITH AN EQUATION OF THE FORM
012300,000709: # 2 3 4 4
012301,000710: # RHO = BASERHO /((1 +C1 X +C2 X +C3 X +C4 X ) ).
012302,000711:
012303,000712: # IT ASSUMES THE VEHICLE MASS TO BE THAT EXPECTED AFTER THE
012304,000713: # FIFTH SPS BURN.
012305,000714:
012306,000715:
012307,000716: 23,7014 56774 DENSITY TSRT 2 # IF THE ALTITUDE IS GREATER THAN THE
012308,000717: 23,7015 66616 DSU BPL # CEILING ALTITUDE, DENCEIL (300 KM),
012309,000718: 23,7016 76776 ITC # SKIP THE DRAG CALCULATIONS AND GO
012310,000719: 23,7017 07475 DENCEIL # TO NBRANCH.
012311,000720: 23,7020 00003 RSCALE -14D
012312,000721: 23,7021 01255 ALPHAM
012313,000722: 23,7022 07025 DENSITY1
012314,000723: 23,7023 07104 NBRANCH
012315,000724:
012316,000725: 23,7024 56774 DENSITY1 TSRT 2 # NORMALIZE ALTITUDE FOR AIR DENSITY
012317,000726: 23,7025 65716 BDSU TSLT # FUNCTION SO THAT IT RANGES FROM
012318,000727: 23,7026 62716 DDV TSLT # 0 TO 1 OVER THE ALTITUDES OF 100 KM
012319,000728: 23,7027 07447 DENBASE # TO 300 KM RELATIVE TO THE REFERENCE
012320,000729: 23,7030 00003 RSCALE -14D # SPHERE AND STORE IN DENALT.
012321,000730: 23,7031 01255 ALPHAM
012322,000731: 23,7032 00007 6
012323,000732: 23,7033 07451 DENFACT
012324,000733: 23,7034 00003 RSCALE -14D
012325,000734: 23,7035 32033 STORE DENALT
012326,000735:
012327,000736: 23,7036 47567 DRAG1 NOLOD 7 # CALCULATE SCALAR PART OF DRAG, I.E.,
012328,000737: 23,7037 64742 DMP DAD # ((RHO)(AREA)(DRAG COEFF))/MASS.
012329,000738: 23,7040 64742 DMP DAD
012330,000739: 23,7041 64742 DMP DAD # LEAVE IN PDL AS D. P. NUMBER
012331,000740: 23,7042 64742 DMP DAD
012332,000741: 23,7043 63643 TSLT DSQ
012333,000742: 23,7044 51116 DSQ TSLT
012334,000743: 23,7045 61776 BDDV
012335,000744: 23,7046 07453 DEN4
012336,000745: 23,7047 07455 DEN3
012337,000746: 23,7050 00033 DENALT
012338,000747: 23,7051 07457 DEN2
012339,000748: 23,7052 00033 DENALT
012340,000749: 23,7053 07461 DEN1
012341,000750: 23,7054 00033 DENALT
012342,000751: 23,7055 07463 DEN0
012343,000752: 23,7056 00002 1
![]() |
Page 316 |
012345,000754: 23,7057 00003 2
012346,000755: 23,7060 07465 PACD/M
012347,000756: 23,7061 41774 DRAG2 VXV 2
012348,000757: 23,7062 75420 AXT,1 VSLT*
012349,000758: 23,7063 74776 VSU
012350,000759: 23,7064 07467 OMEGA
012351,000760: 23,7065 01131 RCV
012352,000761: 23,7066 00030 23D
012353,000762: 23,7067 00055 R+VSCALE,1
012354,000763: 23,7070 01137 VCV
012355,000764: 23,7071 47573 NOLOD 3
012356,000765: 23,7072 71166 ABVAL VXSC
012357,000766: 23,7073 75765 VXSC AXT,1
012358,000767: 23,7074 44242 VSLT* VAD
012359,000768: 23,7075 77777 - # (-1/2)(ABVAL(-V))(V)
012360,000769: 23,7076 77777 - # - -
012361,000770: 23,7077 00002 1 # (-1/2)(RHO A CD/M)(ABVAL(-V))(V)
012362,000771: 23,7100 00001 2VSCALE -12D,1
012363,000772: 23,7101 01203 FV
012364,000773: 23,7102 33203 STORE FV # SUM OF PERTURB ACCELERATIONS
012365,000774: 23,7103 73575 NBRANCH LXA,1 1
012366,000775: 23,7104 76376 ITC*
012367,000776: 23,7105 01306 DIFEQCNT
012368,000777: 23,7106 16405 DIFEQ,1
012369,000778:
![]() |
Page 317 |
012371,000780:
012372,000781: # BEGIN INTEGRATION STEP WITH RECTIFICATION TEST.
012373,000782:
012374,000783:
012375,000784:
012376,000785: 23,7107 71174 TIMESTEP ABVAL 2 # RECTIFICATION REQUIRED IF THE LENGTH OF
012377,000786: 23,7110 66756 DSU BMN # DELTA IS GREATER THAN .5 (8 KM).
012378,000787: 23,7111 76776 ITC
012379,000788: 23,7112 01115 YV
012380,000789: 23,7113 06304 DP1/4
012381,000790: 23,7114 07117 INTGRATE
012382,000791: 23,7115 07144 RECTIFY # CALL RECTIFICATION SUBROUTINE.
012383,000792:
012384,000793: 23,7116 75573 INTGRATE AXT,1 3 # INITIALIZE INDEXES AND SWITCHES.
012385,000794: 23,7117 67565 SXA,1 AXT,1
012386,000795: 23,7120 67415 SXA,1 TEST
012387,000796: 23,7121 42576 SWITCH
012388,000797: 23,7122 06001 FBR3
012389,000798: 23,7123 01271 FBRANCH # EXIT FROM DIFEQCOM
012390,000799: 23,7124 06473 POSTRUE
012391,000800: 23,7125 01272 HBRANCH # EXIT FROM KEPLER.
012392,000801: 23,7126 00002 JSWITCH # 0 FOR STATE VECTOR, 1 FOR W MATRIX.
012393,000802: 23,7127 07132 +2 # TURN IT OFF HERE.
012394,000803: 23,7130 00002 JSWITCH
012395,000804:
![]() |
Page 318 |
012397,000806:
012398,000807: 23,7131 75176 DIFEQ0 VMOVE 0 # POSITION DEVIATION INTO ALPHA.
012399,000808: 23,7132 01115 YV
012400,000809: 23,7133 33153 STORE ALPHAV
012401,000810:
012402,000811: 23,7134 45176 DMOVE 0 # START H AT 0.
012403,000812: 23,7135 07227 DPZERO
012404,000813: 23,7136 33265 STORE H # GOES 0(DELT/2)DELT.
012405,000814:
012406,000815: 23,7137 47576 NOLOD 0 # ZERO DIFEQCNT AND REGISTER FOLLOWING.
012407,000816: 23,7140 33306 STORE DIFEQCNT # GOES 0(-12D)(-24D).
012408,000817:
012409,000818: 23,7141 44576 ITCI 0 # BEGIN AT ADDRESS IN HBRANCH.
012410,000819: 23,7142 01272 HBRANCH
012411,000820:
![]() |
Page 319 |
012413,000822:
012414,000823: # THE RECTIFY SUBROUTINE IS CALLED BY THE INTEGRATION PROGRAM (AND OCCASIONALLY BY THE MEASUREMENT
012415,000824: # INCORPORATION ROUTINES) TO ESTABLISH A NEW CONIC.
012416,000825:
012417,000826:
012418,000827:
012419,000828: 23,7143 45775 RECTIFY VSRT 1 # RECTIFY - FORM TOTAL POSITION AND VEL.
012420,000829: 23,7144 50776 VAD # ADJUST SCALE DIFFERENCE (ASSUMED
012421,000830: 23,7145 01115 TDELTAV
012422,000831: 23,7146 00015 RSCALE -4
012423,000832: 23,7147 01131 RCV
012424,000833: 23,7150 33101 STORE RRECT
012425,000834:
012426,000835: 23,7151 47576 NOLOD 0 # SET UP CONIC 'ANSWER' FOR TIMESTEP.
012427,000836: 23,7152 33131 STORE RCV
012428,000837:
012429,000838: 23,7153 75574 AXT,1 2
012430,000839: 23,7154 75020 VMOVE VSLT*
012431,000840: 23,7155 50776 VAD
012432,000841: 23,7156 00011 VSCALE -14D
012433,000842: 23,7157 01123 TNUV
012434,000843: 23,7160 00001 0,1
012435,000844: 23,7161 01137 VCV
012436,000845: 23,7162 33107 STORE VRECT
012437,000846:
012438,000847: 23,7163 47576 NOLOD 0
012439,000848: 23,7164 33137 STORE VCV
012440,000849:
012441,000850: 23,7165 75575 AXT,1 1 # ZERO DELTA, NU, AND TIME SINCE RECTIFI-
012442,000851: 23,7166 55423 AST,1 DMOVE
012443,000852: 23,7167 00015 12D
012444,000853: 23,7170 00003 2
012445,000854: 23,7171 07227 DPZERO
012446,000855: 23,7172 33145 STORE TC
012447,000856:
012448,000857: 23,7173 47576 NOLOD 0
012449,000858: 23,7174 33151 STORE XKEP # ZERO X.
012450,000859:
012451,000860: 23,7175 47576 ZEROLOOP NOLOD 0 # INDEXES CAUSE LOOP TO ZERO 6 CONSECUTIVE
012452,000861: 23,7176 36261 STORE YV +12D,1 # DP NUMBERS (DELTA AND NU ARE ADJACENT).
012453,000862:
012454,000863: 23,7177 51575 TIX,1 1 # LOOP OR START INTEGRATION STEP IF DONE.
012455,000864: 23,7200 40576 ITCQ
012456,000865: 23,7201 07176 ZEROLOOP
012457,000866:
![]() |
Page 320 |
012459,000868:
012460,000869: # THE THREE DIFEQ ROUTINES - DIFEQ+0, DIFEQ+12, AND DIFEQ+24 - ARE ENTERED TO PROCESS THE CONTRIBUTIONS
012461,000870: # AT THE BEGINNING, MIDDLE, AND END OF THE TIME STEP, RESPECTIVELY. THE UPDATING IS DONE BY THE NYSTROM METHOD.
012462,000871:
012463,000872:
012464,000873:
012465,000874: 23,7202 45776 DIFEQ+0 VSRT 0
012466,000875: 23,7203 01203 FV
012467,000876: 23,7204 00004 3
012468,000877: 23,7205 33167 STORE PHIV
012469,000878:
012470,000879: 23,7206 76776 ITC 0
012471,000880: 23,7207 07354 DIFEQCOM
012472,000881:
012473,000882: 23,7210 22525 12525 7/12 2DEC .5833333333 # ENTRIES MUST BE 12 WORDS APART SO FILL
012474,000883: 23,7212 22000 00000 9/16 2DEC 9 B-4 # HOLES WITH CONSTANTS
012475,000884: 23,7214 01200 00000 5/128 2DEC 5 B-7
012476,000885:
012477,000886: 23,7216 45775 DIFEQ+12 VSRT 1
012478,000887: 23,7217 50776 VAD
012479,000888: 23,7220 01203 FV
012480,000889: 23,7221 00002 1
012481,000890: 23,7222 01167 PHIV
012482,000891: 23,7223 33175 STORE PSIV
012483,000892:
012484,000893: 23,7224 76776 ITC 0
012485,000894: 23,7225 07346 DIFEQCOM -6
012486,000895:
012487,000896: 23,7226 00000 00000 DPZERO 2DEC 0.0
012488,000897:
012489,000898: 23,7230 25252 25253 DP2/3 2DEC .6666666667
012490,000899:
012491,000900: 23,7232 75773 DIFEQ+24 VXSC 3 # DO FINAL CALCULATION FOR Y AND Z.
012492,000901: 23,7233 75622 VXSC VSLT
012493,000902: 23,7234 50766 VAD VXSC
012494,000903: 23,7235 50776 VAD
012495,000904: 23,7236 01167 PHIV
012496,000905: 23,7237 01265 H
012497,000906: 23,7240 07231 DP2/3
012498,000907: 23,7241 00002 1
012499,000908: 23,7242 01123 ZV
012500,000909: 23,7243 01265 H
012501,000910: 23,7244 01115 YV
012502,000911: 23,7245 33115 STORE YV
![]() |
Page 321 |
012504,000913: 23,7246 45772 VSRT 4
012505,000914: 23,7247 50766 VAD VXSC
012506,000915: 23,7250 75622 VXSC VSLT
012507,000916: 23,7251 50615 VAD TEST # SEE IF THIS IS STATE VECTOR OR W COLUMN.
012508,000917: 23,7252 75576 AXT,1
012509,000918: 23,7253 01203 FV
012510,000919: 23,7254 00004 3
012511,000920: 23,7255 01175 PSIV
012512,000921: 23,7256 01265 H
012513,000922: 23,7257 07231 DP2/3
012514,000923: 23,7260 00002 1
012515,000924: 23,7261 01123 ZV
012516,000925: 23,7262 00002 JSWITCH
012517,000926: 23,7263 07314 ENDSTATE
012518,000927: 23,7264 00001 0
012519,000928: 23,7265 37564 STORE W +72D,2 # VELOCITY COLUMN VECTOR.
012520,000929:
012521,000930: 23,7266 75176 VMOVE 0
012522,000931: 23,7267 01115 YV
012523,000932: 23,7270 37454 STORE W +36D,2 # POSITION COLUMN VECTOR.
012524,000933:
012525,000934: 23,7271 50576 TIX,2 0
012526,000935: 23,7272 07304 NEXTCOL
012527,000936:
012528,000937: 23,7273 75176 VMOVE 0
012529,000938: 23,7274 01002 DELTAV
012530,000939: 23,7275 33115 STORE TDELTAV
012531,000940:
012532,000941: 23,7276 75176 VMOVE 0
012533,000942: 23,7277 01010 NUV
012534,000943: 23,7300 33123 STORE TNUV
012535,000944:
012536,000945: 23,7301 44576 ITCI 0
012537,000946: 23,7302 01305 STEPEXIT
012538,000947:
012539,000948: 23,7303 74176 NEXTCOL VMOVE* 0 # SET UP NEXT COLUMNS OF W MATRIX.
012540,000949: 23,7304 03454 W +36D,2
012541,000950: 23,7305 33115 STORE YV
012542,000951:
012543,000952: 23,7306 74176 VMOVE* 0
012544,000953: 23,7307 03564 W +72D,2
012545,000954: 23,7310 33123 STORE ZV
012546,000955:
012547,000956: 23,7311 76776 ITC 0
012548,000957: 23,7312 07132 DIFEQ0
012549,000958:
012550,000959: 23,7313 47576 ENDSTATE NOLOD 0
012551,000960: 23,7314 33123 STORE TNUV
![]() |
Page 322 |
012553,000962: 23,7315 56775 TSRT 1 # UPDATE TIME SINCE RECTIFICATION.
012554,000963: 23,7316 46542 ROUND DAD
012555,000964: 23,7317 01265 H
012556,000965: 23,7320 00012 TSCALE -18D
012557,000966: 23,7321 01145 TC
012558,000967: 23,7322 33145 STORE TC
012559,000968:
012560,000969: 23,7323 67776 BHIZ 0
012561,000970: 23,7324 01304 WMATFLAG
012562,000971: 23,7325 07302 NEXTCOL -2
012563,000972:
012564,000973: 23,7326 76776 ITC 0
012565,000974: 23,7327 07331 SETWINT # FOR NOW
012566,000975: 23,7330 74572 SETWINT AXT,2 4 # SET UP W MATRIX EXTRAPOLATION ROUTINES.
012567,000976: 23,7331 54565 AST,2 AXT,1 # PROGRAM DESCRIPTION IS AT DOW.. .
012568,000977: 23,7332 67535 SXA,1 SXA,1
012569,000978: 23,7333 42565 SWITCH AXT,1
012570,000979: 23,7334 76776 ITC
012571,000980: 23,7335 00045 36D
012572,000981: 23,7336 00007 6
012573,000982: 23,7337 07377 DOW..
012574,000983: 23,7340 01271 FBRANCH
012575,000984: 23,7341 01272 HBRANCH
012576,000985: 23,7342 00002 JSWITCH
012577,000986: 23,7343 00001 0
012578,000987: 23,7344 07304 NEXTCOL
012579,000988:
![]() |
Page 323 |
012581,000990:
012582,000991: # COMES HERE TO FINISH FIRST TWO DIFEQ COMPUTATIONS.
012583,000992:
012584,000993:
012585,000994:
012586,000995: 23,7345 45775 -6 VSRT 1 # ENTERS HERE FROM DIFEQ+12 MIDPOINT
012587,000996: 23,7346 50776 VAD # COMPUTATION.
012588,000997: 23,7347 01203 FV
012589,000998: 23,7350 00003 2
012590,000999: 23,7351 01167 PHIV
012591,001000: 23,7352 33167 STORE PHIV
012592,001001:
012593,001002: 23,7353 70775 DIFEQCOM DAD 1 # INCREMENT H AND DIFEQCNT.
012594,001003: 23,7354 63535 INCR,1 SXA,1
012595,001004: 23,7355 01263 DT/2
012596,001005: 23,7356 01265 H
012597,001006: 23,7357 77764 -12D
012598,001007: 23,7360 01306 DIFEQCNT # DIFEQCNT SET FOR NEXT ENTRY.
012599,001008: 23,7361 33265 STORE H
012600,001009:
012601,001010: 23,7362 75774 VXSC 2
012602,001011: 23,7363 45642 VSRT VAD
012603,001012: 23,7364 75642 VXSC VAD
012604,001013: 23,7365 01203 FV
012605,001014: 23,7366 01265 H
012606,001015: 23,7367 00002 1
012607,001016: 23,7370 01123 ZV
012608,001017: 23,7371 01265 H
012609,001018: 23,7372 01115 YV
012610,001019: 23,7373 33153 STORE ALPHAV
012611,001020:
012612,001021: 23,7374 44576 ITCI 0 # EXIT VIA FBRANCH.
012613,001022: 23,7375 01271 FBRANCH
012614,001023:
012615,001024: 23,7376 23,7202 DIFEQ EQUALS DIFEQ+0
012616,001025:
![]() |
Page 324 |
012618,001027:
012619,001028: # ORBITAL ROUTINE FOR EXTRAPOLATING THE W MATRIX. IT COMPUTES THE
012620,001029: # SECOND DERIVATIVE OF EACH COLUMN POSITION VECTOR OF THE MATRIX AND CALLS
012621,001030: # THE NYSTOM INTEGRATION ROUTINES TO SOLVE THE DIFFERENTIAL EQUATIONS. THE
012622,001031: # PROGRAM USES A TABLE OF VEHICLE POSITION VECTORS COMPUTED DURING THE
012623,001032: # INTEGRATION OF THE VEHICLES POSITION AND VELOCITY.
012624,001033:
012625,001034: 23,7376 45776 DOW.. VSRT 0
012626,001035: 23,7377 01153 ALPHAV
012627,001036: 23,7400 00005 4
012628,001037:
012629,001038: 23,7401 72174 UNIT* 2 # X1 REFERENCES THE TABLE OF POSITION
012630,001039: 23,7402 40766 VPROJ VXSC # VECTORS AND CALLS THE CORRECT DIFEQ PROG
012631,001040: 23,7403 74776 VSU
012632,001041: 23,7404 02421 VECTAB,1
012633,001042: 23,7405 01153 ALPHAV
012634,001043: 23,7406 07435 3/4
012635,001044:
012636,001045: 23,7407 64772 DMP 4 # CUBE OF LENGTH OF POSITION VECTOR
012637,001046: 23,7410 57631 TSLC ROUND # DIVIDES VECTOR IN PUSH-DOWN LIST TO
012638,001047: 23,7411 61766 BDDV VXSC # FORM FINAL RESULT.
012639,001048: 23,7412 64511 XCHX,2 INCR,2 # INCREMENT COMPENSATES FOR .5 R IN 30D.
012640,001049: 23,7413 44351 VSLT* LXA,2
012641,001050: 23,7414 00035 28D
012642,001051: 23,7415 00037 30D
012643,001052: 23,7416 00051 S1
012644,001053: 23,7417 06304 DP1/4
012645,001054: 23,7420 77777 -
012646,001055: 23,7421 00051 S1
012647,001056: 23,7422 00004 3
012648,001057: 23,7423 00002 0,2
012649,001058: 23,7424 00051 S1
012650,001059: 23,7425 33203 STORE FV
012651,001060:
012652,001061: 23,7426 76376 ITC* 0 # CALL NYSTROM ROUTINES ACCORDING TO X1.
012653,001062: 23,7427 16405 DIFEQ,1
012654,001063:
![]() |
Page 325 |
012656,001065:
012657,001066: 23,7430 24214 11244 EARTHTAB 2DEC .6335627 # 400 / SQRT(MU).
012658,001067: 23,7432 36000 00000 15/16 2DEC 15. B-4
012659,001068: 23,7434 30000 00000 3/4 2DEC 3.0 B-2
012660,001069: 23,7436 12577 24106 J2REQSQ 2DEC .335914874
012661,001070: 23,7440 77711 71033 2J3RE/J2 2DEC -.003309146
012662,001071: 23,7442 23377 06703 J4REQ/J3 2DEC .60932709
012663,001072: 23,7444 23,7230 2/3 EQUALS DP2/3
012664,001073: 23,7444 P2'/8 EQUALS 0
012665,001074: 23,7444 P3'/4 EQUALS 2
012666,001075: 23,7444 P4'/16 EQUALS 4
012667,001076:
012668,001077: 23,7444 20000 00000 DP1/2 2DEC .5
012669,001078: 23,7446 14467 00000 DENBASE 2DEC 6455 B-14 # EARTHRAD +100 KM SCALED AT 2 TO THE (14)
012670,001079: 23,7450 31000 00000 DENFACT 2DEC 0.781250 # 200/256
012671,001080: 23,7452 70345 62314 DEN4 2DEC -7.55161127 B-5 # CONSTANTS FOR DENSITY FUNCTION SCALED AT
012672,001081: 23,7454 25201 06602 DEN3 2DEC 21.2523654 B-5 # 2 TO THE (5)
012673,001082: 23,7456 54046 46744 DEN2 2DEC -19.9253572 B-5
012674,001083: 23,7460 20033 11303 DEN1 2DEC 16.0533069 B-5
012675,001084: 23,7462 01000 00000 DEN0 2DEC 1.0 B-5
012676,001085: 23,7464 00000 23042 PACD/M 2DEC 0.0000363648 # (RHO AREA CD)/MASS AT 100KM
012677,001086: 23,7466 00000 00000 OMEGA 2DEC 0 B-28 # EARTH ROT VECTOR/SQRT(MU) SCALED
012678,001087: 23,7470 00000 00000 2DEC 0 B-28 # AT 2 TO THE (-23) KM TO (-3/2)
012679,001088: 23,7472 37002 12436 2DEC 0.968892208
012680,001089: 23,7474 DENALT = 26D # TEMPORARY STORAGE FOR ALTITUDE
012681,001090: 23,7474 14777 00000 DENCEIL 2DEC 6655 B-14 # EARTHRAD +300 KM SCALED AT 2(14)
End of include-file ORBITAL_INTEGRATION_PROGRAM.agc. Parent file is MAIN.agc