Source Code
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
033377,000002: ## Copyright: Public domain.
033378,000003: ## Filename: ORBITAL_INTEGRATION_PROGRAM.agc
033379,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
033380,000005: ## is part of the source code for the Lunar Module's
033381,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
033382,000007: ## Assembler: yaYUL
033383,000008: ## Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
033384,000009: ## Website: www.ibiblio.org/apollo/index.html
033385,000010: ## Mod history: 2016-09-30 RSB Created draft version.
033386,000011: ## 2016-10-26 HG Transcribed
033387,000012: ## 2016-10-31 RSB Typos.
033388,000013: ## 2016-11-01 RSB More typos.
033389,000014: ## 2016-12-06 RSB Comments proofed using octopus/ProoferComments,
033390,000015: ## changes made.
033391,000016: ## 2017-06-12 MAS Just a couple of typos found while updating for
033392,000017: ## Sunburst 37.
033393,000018:
Page 776 |
033395,000020: # FBR3 SETS UP A TIMESTEP CALL TO KEPLER.
033396,000021:
033397,000022:
033398,000023:
033399,000024: 07,2551 50545 FBR3 DLOAD SR3
033400,000025: 07,2552 02165 H
033401,000026: 07,2553 43262 SR3R DAD
033402,000027: 07,2554 02045 TC
033403,000028: 07,2555 16161 STODL TAU
033404,000029: 07,2556 17755 EARTHTAB +9D
033405,000030: 07,2557 54205 DMP SRR
033406,000031: 07,2560 02163 DT/2
033407,000032: 07,2561 21615 12D
033408,000033: 07,2562 77615 DAD
033409,000034: 07,2563 02047 TET
033410,000035: 07,2564 02047 STORE TET
033411,000036:
Page 777 |
033413,000038: # THIS ORBITAL KEPLER SUBROUTINE FINDS THE POSITION AND VELOCITY OF THE VEHICLE AFTER TIME FOUND IN GIVENT
033414,000039: # SINCE RECTIFICATION TO POSITION RRECT AND VELOCITY VRECT. THE RESULTING POSITION AND VELOCITY ARE LEFT IN
033415,000040: # FOUNDR AND FOUNDV, RESPECTIVELY.
033416,000041:
033417,000042:
033418,000043:
033419,000044: 07,2565 40375 KEPLER VLOAD SETPD # UNIT OF RECTIFICATION POSITION TO 0
033420,000045: 07,2566 02001 RRECT
033421,000046: 07,2567 00001 0
033422,000047: 07,2570 65256 UNIT PDDL # AND LENGTH OF ORIGINAL IN 6
033423,000048: 07,2571 00045 36D
033424,000049: 07,2572 77715 PDVL # LENGTH OF POSITION AT RECTIFICATION.
033425,000050: 07,2573 02007 VRECT
033426,000051: 07,2574 61436 VSQ ROUND
033427,000052: 07,2575 45205 DMP DSU
033428,000053: 07,2576 00007 6 # LENGTH OF POSITION AT RECTIFICATION
033429,000054: 07,2577 17702 DP1/4
033430,000055: 07,2600 41532 SL2R PUSH # A4 TO REGISTER 8
033431,000056: 07,2601 57502 SR2 DCOMP
033432,000057: 07,2602 56215 DAD DDV
033433,000058: 07,2603 17702 DP1/4
033434,000059: 07,2604 00007 6
033435,000060: 07,2605 50315 PDVL DOT # ALPHA TO REGISTER 10
033436,000061: 07,2606 02001 RRECT
033437,000062: 07,2607 02007 VRECT
033438,000063: 07,2610 63306 ROUND PDVL # A1 TO REGISTER 12
033439,000064: 07,2611 02031 RCV
033440,000065: 07,2612 50256 UNIT DOT
033441,000066: 07,2613 02037 VCV
033442,000067: 07,2614 77725 PDDL # IR/2.VC IN 14D.
033443,000068: 07,2615 00045 36D
033444,000069: 07,2616 16155 STODL ALPHAM # RC IN ALPHAM
033445,000070: 07,2617 02163 DT/2
033446,000071: 07,2620 54442 SR3 SR3R
033447,000072: 07,2621 77071 DDV AXT,2
033448,000073: 07,2622 02155 ALPHAM
033449,000074: 07,2623 00012 10D # MAX ITERATION COUNT IS 10
033450,000075:
Page 778 |
033452,000077: 07,2624 56325 PDDL DDV # Q IN 16
033453,000078: 07,2625 17702 DP1/4
033454,000079: 07,2626 02155 ALPHAM
033455,000080: 07,2627 57225 DSU DMPR
033456,000081: 07,2630 00013 10D # 1/4RC : ALPHA
033457,000082: 07,2631 00021 16D # Q( )
033458,000083: 07,2632 57275 DMPR DMPR
033459,000084: 07,2633 00021 16D # QQ( )
033460,000085: 07,2634 17704 DP1/3
033461,000086: 07,2635 52452 SL3 SL3
033462,000087: 07,2636 57325 PDDL DMPR
033463,000088: 07,2637 00017 14D
033464,000089: 07,2640 00021 16D
033465,000090: 07,2641 41412 SL4 PUSH # 16(UR/2.VC)Q IN 20
033466,000091: 07,2642 57221 BDSU DMPR
033467,000092: 07,2643 17730 DP1/2
033468,000093: 07,2644 45221 BDSU DSU
033469,000094: 07,2645 17730 DP1/2
033470,000095: 07,2646 76405 DMP SL1R
033471,000096: 07,2647 66215 DAD SSP
033472,000097: 07,2650 02051 XKEP
033473,000098: 07,2651 00052 S2
033474,000099: 07,2652 00001 1
033475,000100: 07,2653 02051 STORE XKEP
033476,000101:
Page 779 |
033478,000103: # ITERATING EQUATIONS - GIVEN X IN MPAC, FIND TIME OF FLIGHT.
033479,000104:
033480,000105:
033481,000106:
033482,000107: 07,2654 61516 KTIMEN+1 DSQ ROUND # FORM ALPHA X-SQUARED AND CALL S AND C
033483,000108: 07,2655 66405 DMP SL2R
033484,000109: 07,2656 00013 10D
033485,000110: 07,2657 45001 SETPD CALL # SET PD INDICATOR TO 16
033486,000111: 07,2660 00021 16D
033487,000112: 07,2661 16751 S(X)C(X)
033488,000113: 07,2662 42405 DMP SL4
033489,000114: 07,2663 02051 XKEP
033490,000115: 07,2664 72405 DMP SL1
033491,000116: 07,2665 02051 XKEP
033492,000117: 07,2666 76405 DMP SL1R
033493,000118: 07,2667 02051 XKEP
033494,000119: 07,2670 00030 STORE 23D # A3
033495,000120: 07,2671 65275 DMPR PDDL
033496,000121: 07,2672 00011 8D
033497,000122: 07,2673 02051 XKEP
033498,000123: 07,2674 42405 DMP SL4
033499,000124: 07,2675 00021 16D # VALUE OF C
033500,000125: 07,2676 41352 SL1 DMP
033501,000126: 07,2677 02051 XKEP
033502,000127: 07,2700 77732 SL2R
033503,000128: 07,2701 00026 STORE 21D # A2
033504,000129: 07,2702 74405 DMP SR1R
033505,000130: 07,2703 00015 12D # A1
033506,000131: 07,2704 77615 DAD
033507,000132: 07,2705 57325 PDDL DMPR
033508,000133: 07,2706 00007 6
033509,000134: 07,2707 02051 XKEP
033510,000135: 07,2710 77615 DAD
033511,000136: 07,2711 44206 PUSH BDSU # COMPARE WITH GIVEN TIME OF FLIGHT
033512,000137: 07,2712 02161 GIVENT
033513,000138: 07,2713 00021 STORE 16D # DIFFERENCE TO REGISTER 16
033514,000139: 07,2714 77776 EXIT
033515,000140:
Page 780 |
033517,000142: 07,2715 06112 DUMPDUMP TC INTPRET # FOR DUMP ONLY *******
033518,000143: 07,2716 45246 ABS DSU
033519,000144: 07,2717 17674 KEPSILON # SEE IF WITHIN EPSILON OF GIVEN TIME.
033520,000145: 07,2720 61040 BMN TIX,2 # IF SO, GET R AND V AND EXIT.
033521,000146: 07,2721 17036 GETRANDV
033522,000147: 07,2722 16725 GETNEWX
033523,000148: 07,2723 77650 GOTO
033524,000149: 07,2724 17036 GETRANDV
033525,000150: 07,2725 41345 GETNEWX DLOAD DMP
033526,000151: 07,2726 00013 10D # ALPHA
033527,000152: 07,2727 00030 23D # A3
033528,000153: 07,2730 44332 SL2R BDSU
033529,000154: 07,2731 02051 XKEP
033530,000155: 07,2732 46405 DMP SL4R
033531,000156: 07,2733 00015 12D # A1
033532,000157: 07,2734 14023 STODL 18D
033533,000158: 07,2735 00026 21D # A2
033534,000159: 07,2736 76405 DMP SL1R
033535,000160: 07,2737 00011 8D # A4
033536,000161: 07,2740 77615 DAD
033537,000162: 07,2741 65215 DAD PDDL
033538,000163: 07,2742 00007 6 # R0
033539,000164: 07,2743 00021 16D
033540,000165: 07,2744 43271 DDV DAD
033541,000166: 07,2745 00023 18D
033542,000167: 07,2746 02051 XKEP
033543,000168: 07,2747 36051 STCALL XKEP
033544,000169: 07,2750 16654 KTIMEN+1
033545,000170:
Page 781 |
033547,000172: # SUBROUTINE FOR COMPUTING THE UNIVERSAL CONIC FUNCTIONS S(X) AND C(X). THE ACTUAL OUTPUT OF THIS ROUTINE
033548,000173: # CONSISTS OF SCALED VERSIONS DEFINED AS FOLLOWS -
033549,000174:
033550,000175: # S (X) = S(64X) C (X) = C(64X)/4
033551,000176: # S S
033552,000177:
033553,000178: # IT IS ASSUMED THAT THE INPUT ARRIVES IN MPAC,MPAC+1 AND THAT IT LIES BETWEEN -30/64 AND 40/64. UPON EXIT,
033554,000179: # S(X) WILL BE LEFT IN MPAC,MPAC+1 AND C(X) ON TOP OF THE PUSHDOWN LIST.
033555,000180:
033556,000181:
033557,000182:
033558,000183: 07,2751 00043 S(X)C(X) STORE 34D # X TO 34D
033559,000184: 07,2752 63434 RTB DSQ
033560,000185: 07,2753 17000 A(X)
033561,000186: 07,2754 41506 ROUND PUSH
033562,000187: 07,2755 00045 STORE 36D # A SQUARED TO 36D
033563,000188: 07,2756 76405 DMP SL1R
033564,000189: 07,2757 00043 34D # 2 2
033565,000190: 07,2760 57221 BDSU DMPR # C (X) = A (.25 - 2XA ) TO PD LIST
033566,000191: 07,2761 17702 POS1/4 # S
033567,000192: 07,2762 00045 36D
033568,000193: 07,2763 64525 PDDL SR2R # 2
033569,000194: 07,2764 47125 PDDL RTB # A /4 TO PD LIST
033570,000195: 07,2765 00043 34D
033571,000196: 07,2766 17017 B(X)
033572,000197: 07,2767 61516 DSQ ROUND
033573,000198: 07,2770 57325 PDDL DMPR # B SQUARED TO PD LIST
033574,000199: 07,2771 00043 34D
033575,000200: 07,2772 00045 36D
033576,000201: 07,2773 57221 BDSU DMPR # 2 2 2
033577,000202: 07,2774 17706 POS1/16 # LEAVES S (X)=B (.0625-A X)+A /4 IN MPAC
033578,000203: 07,2775 43415 DAD ITCQ # S
033579,000204: 07,2776 74631 63145 -1/12 2DEC -.1 # DONT MOVE.
033580,000205:
Page 782 |
033582,000207: # A AND B POLYNOMIALS WHOSE COEFFICIENTS WERE OBTAINED WITH THE *AUTOCURVEFIT* PROGRAM.
033583,000208: 07,3000 07274 A(X) TC POLY
033584,000209: 07,3001 00004 DEC 4 B-14
033585,000210: 07,3002 26501 07463 2DEC 7.071067810 E-1
033586,000211: 07,3004 60724 60210 2DEC -4.714045180 E-1
033587,000212: 07,3006 03010 26256 2DEC 9.42808914 E-2
033588,000213: 07,3010 77554 74242 2DEC -8.9791893 E-3
033589,000214: 07,3012 00010 05475 2DEC 4.989987 E-4
033590,000215: 07,3014 77777 66460 2DEC -1.79357 E-5
033591,000216: 07,3016 06125 TC DANZIG
033592,000217: 07,3017 07274 B(X) TC POLY
033593,000218: 07,3020 00004 DEC 4 B-14
033594,000219: 07,3021 32101 17270 2DEC 8.164965793 E-1
033595,000220: 07,3023 65431 40174 2DEC -3.265986572 E-1
033596,000221: 07,3025 01710 10660 2DEC 5.90988980 E-2
033597,000222: 07,3027 77676 52270 2DEC -4.0085592 E-3
033598,000223: 07,3031 00004 21652 2DEC 2.781528 E-4
033599,000224: 07,3033 77777 71323 2DEC -1.25610 E-5
033600,000225: 07,3035 06125 TC DANZIG
033601,000226:
Page 783 |
033603,000228: # ROUTINE FOR OBTAINING R AND V, NOW THAT THE PROPER X HAS BEEN FOUND.
033604,000229:
033605,000230:
033606,000231:
033607,000232: 07,3036 40345 GETRANDV DLOAD SETPD
033608,000233: 07,3037 00026 21D # A2 FROM LAST ITERATION
033609,000234: 07,3040 00032 25D
033610,000235: 07,3041 74276 DCOMP VXSC
033611,000236: 07,3042 00001 0 # UNIT OF GIVEN POSITION VECTOR
033612,000237: 07,3043 45325 PDDL DSU
033613,000238: 07,3044 00023 18D # LAST VALUE OF T
033614,000239: 07,3045 00030 23D # LAST VALUE OF A3
033615,000240: 07,3046 74312 SL2 VXSC
033616,000241: 07,3047 02007 VRECT
033617,000242: 07,3050 76455 VAD VSL1 # ADDITION MUST BE DONE IN THIS ORDER
033618,000243: 07,3051 53206 PUSH VAD
033619,000244: 07,3052 02001 RRECT
033620,000245: 07,3053 45455 VAD STADR
033621,000246: 07,3054 75746 STORE FOUNDR # RESULTING CONIC POSITION
033622,000247: 07,3055 77646 ABVAL
033623,000248: 07,3056 14021 STODL 16D
033624,000249: 07,3057 00013 10D # ALPHA
033625,000250: 07,3060 66405 DMP SL2R
033626,000251: 07,3061 00030 23D # A3
033627,000252: 07,3062 56225 DSU DDV
033628,000253: 07,3063 02051 XKEP
033629,000254: 07,3064 00021 16D # LENGTH OF FOUND POSITION
033630,000255: 07,3065 72561 VXSC VSL2
033631,000256: 07,3066 00001 0 # UNIT OF RECTIFICATION POSITION
033632,000257: 07,3067 70525 PDDL SR1
033633,000258: 07,3070 00021 16D
033634,000259: 07,3071 56225 DSU DDV
033635,000260: 07,3072 00026 21D
033636,000261: 07,3073 00021 16D
033637,000262: 07,3074 53361 VXSC VAD
033638,000263: 07,3075 02007 VRECT
033639,000264: 07,3076 77772 VSL1
033640,000265: 07,3077 36037 STCALL FOUNDV # THIS COMPLETES THE CALCULATION
033641,000266: 07,3100 02171 HBRANCH
033642,000267:
Page 784 |
033644,000269: # THE POSTRUE ROUTINES SET UP THE BETA VECTOR AND OTHER INITIAL CONDITIONS FOR THE NEXT ACCOMP.
033645,000270: 07,3101 77331 POSTRUE SSP VLOAD # TIME STEP CALLS TO KEPLER RETURN HERE
033646,000271: 07,3102 02207 SCALEA
033647,000272: 07,3103 00004 4
033648,000273: 07,3104 02053 ALPHAV
033649,000274: 07,3105 53261 VSR VAD
033650,000275: 07,3106 20613 10D
033651,000276: 07,3107 02031 RCV # POSITION OUTPUT OF KEPLER
033652,000277: 07,3110 43154 LXA,2 BOF
033653,000278: 07,3111 02205 DIFEQCNT
033654,000279: 07,3112 00340 WMATFLAG
033655,000280: 07,3113 17115 NOSAVE1
033656,000281: 07,3114 12111 STORE VECTAB,2
033657,000282: 07,3115 66331 NOSAVE1 SSP SSP # SETS UP SCALE B AND GMODE
033658,000283: 07,3116 02210 SCALEB
033659,000284: 07,3117 00016 14D
033660,000285: 07,3120 02173 GMODE
033661,000286: 07,3121 00002 2
033662,000287: 07,3122 02061 STORE BETAV
033663,000288:
Page 785 |
033665,000290: # AGC ROUTINE TO COMPUTE ACCELERATION COMPONENTS.
033666,000291:
033667,000292:
033668,000293:
033669,000294: 07,3123 53575 ACCOMP VLOAD UNIT
033670,000295: 07,3124 02053 ALPHAV
033671,000296: 07,3125 16053 STODL ALPHAV
033672,000297: 07,3126 00045 36D
033673,000298: 07,3127 02155 STORE ALPHAM
033674,000299: 07,3130 77600 BOV
033675,000300: 07,3131 17132 ACCOMP2 # TURN OFF OVERFLOW INDICATOR
033676,000301: 07,3132 74575 ACCOMP2 VLOAD VSR1
033677,000302: 07,3133 02061 BETAV
033678,000303: 07,3134 40236 VSQ SETPD
033679,000304: 07,3135 00001 0
033680,000305: 07,3136 61501 NORM ROUND
033681,000306: 07,3137 00051 S1
033682,000307: 07,3140 60325 PDDL NORM # NORMED B SQUARED TO PD LIST
033683,000308: 07,3141 02155 ALPHAM # NORMALIZE (LESS ONE) LENGTH OF ALPHA
033684,000309: 07,3142 00047 X1 # SAVING NORM SCALE FACTOR IN X1
033685,000310: 07,3143 63342 SR1 PDVL
033686,000311: 07,3144 02061 BETAV # C(PDL+2) = ALMOST NORMED ALPHA
033687,000312: 07,3145 77656 UNIT
033688,000313: 07,3146 16061 STODL BETAV
033689,000314: 07,3147 00045 36D
033690,000315: 07,3150 02157 STORE BETAM
033691,000316: 07,3151 55301 NORM BDDV # FORM NORMALIZED QUOTIENT ALPHAM/BETAM
033692,000317: 07,3152 00050 X2
033693,000318: 07,3153 41562 SR1R PUSH # C(PDL+2) = ALMOST NORMALIZED RHO.
033694,000319: 07,3154 57144 LXC,2 XAD,2
033695,000320: 07,3155 00047 X2 # C(X2) = -SCALE(RHO) + 1
033696,000321: 07,3156 02206 SCALEA # = -S(B)-N(B)+S(A)+N(A)+1
033697,000322: 07,3157 55074 XAD,2 XSU,2
033698,000323: 07,3160 00046 X1
033699,000324: 07,3161 02207 SCALEB
033700,000325: 07,3162 53714 INCR,2 SR*
033701,000326: 07,3163 00002 2
033702,000327: 07,3164 57176 0,2
033703,000328: 07,3165 64406 PUSH SR2R # RHO/4 PD+6
033704,000329: 07,3166 50315 PDVL DOT
033705,000330: 07,3167 02053 ALPHAV
033706,000331: 07,3170 02061 BETAV
033707,000332: 07,3171 44372 SL1R BDSU # (RHO/4) - 2(ALPHAV/2.BETAV/2)
033708,000333: 07,3172 57206 PUSH DMPR # TO PDL+6
033709,000334: 07,3173 00005 4
033710,000335:
Page 786 |
033712,000337: 07,3174 43206 PUSH DAD # Q/4 = RHO(C(PDL+4)) TO PD+8D
033713,000338: 07,3175 17702 DQUARTER # (Q+1)/4 TO PD+10D
033714,000339: 07,3176 75406 PUSH SQRT # 3/2
033715,000340: 07,3177 41475 DMPR PUSH # ((Q+1)/4) TO PD+12D
033716,000341: 07,3200 00013 10D
033717,000342: 07,3201 43352 SL1 DAD
033718,000343: 07,3202 17702 DQUARTER # 3/2
033719,000344: 07,3203 43325 PDDL DAD # (1/4)+2((Q+1)/4) TO PD+14D
033720,000345: 07,3204 00013 10D
033721,000346: 07,3205 17730 DP1/2
033722,000347: 07,3206 72475 DMPR SL1
033723,000348: 07,3207 00011 8D
033724,000349: 07,3210 56215 DAD DDV
033725,000350: 07,3211 17676 THREE/8
033726,000351: 07,3212 00017 14D
033727,000352: 07,3213 74275 DMPR VXSC
033728,000353: 07,3214 00007 6
033729,000354: 07,3215 02061 BETAV # -
033730,000355: 07,3216 64515 PDVL VSR3 # (G/2)(C(PD+4))B/2 TO PD+16D
033731,000356: 07,3217 02053 ALPHAV
033732,000357: 07,3220 41455 VAD PUSH # A12 + C(PD+16D) TO PD+16D
033733,000358: 07,3221 41345 DLOAD DMP
033734,000359: 07,3222 00001 0
033735,000360: 07,3223 00015 12D # -
033736,000361: 07,3224 61501 NORM ROUND # GAMMA TO PD+22D
033737,000362: 07,3225 00052 S2 # - SCALE(GAMMA)-1 TO X1
033738,000363: 07,3226 70065 BDDV LXC,1
033739,000364: 07,3227 00003 2
033740,000365: 07,3230 00047 X2 # C(X2) = SCALE(RHO)
033741,000366: 07,3231 56070 XAD,1 XAD,1
033742,000367: 07,3232 00051 S2 # C(S2) = N((B.B/4)(....)3/2)
033743,000368: 07,3233 00050 S1 # C(S1) = N(B.B/4)
033744,000369: 07,3234 56070 XAD,1 XAD,1
033745,000370: 07,3235 02207 SCALEB
033746,000371: 07,3236 02207 SCALEB
033747,000372: 07,3237 74276 DCOMP VXSC
033748,000373: 07,3240 00021 16D # RESULT OF PRECEDING EQUATION
033749,000374: 07,3241 73206 PUSH CGOTO
033750,000375: 07,3242 02173 GMODE
033751,000376: 07,3243 17244 GTABLE
033752,000377: 07,3244 17315 GTABLE CADR GMODE10
033753,000378: 07,3245 17276 CADR GMODE11
033754,000379: 07,3246 17247 CADR GMODE12
033755,000380:
Page 787 |
033757,000382: # THE GMODE12 ROUTINE SETS UP THE SECONDARY BODY DISTURBING ACCELERATION FOR ACCOMP.
033758,000383: 07,3247 77657 GMODE12 VSL* # -SCALE(GAMMA)-1 IS LEFT IN X1.
033759,000384: 07,3250 20240 31D,1 # ADJUST GAMMA TO SCALE OF -32
033760,000385: 07,3251 26103 STOVL FV
033761,000386: 07,3252 02061 BETAV
033762,000387: 07,3253 16053 STODL ALPHAV # BETA VECTOR INTO ALPHA FOR NEXT ACCOMP
033763,000388: 07,3254 02157 BETAM
033764,000389: 07,3255 02155 STORE ALPHAM
033765,000390: 07,3256 45014 BOFF CALL
033766,000391: 07,3257 00342 MIDFLAG
033767,000392: 07,3260 17322 OBLATEST
033768,000393: 07,3261 17735 MOONPOS
033769,000394: 07,3262 02061 STORE BETAV # MOON(EARTH) POSITION WILL BE BETA NEXT
033770,000395: 07,3263 43150 LXA,1 BOF
033771,000396: 07,3264 02205 DIFEQCNT # SAVE R/QV IN VECTAB FOR W-MATRIX UPDATE
033772,000397: 07,3265 00340 WMATFLAG
033773,000398: 07,3266 17270 NOSAVE2
033774,000399: 07,3267 06117 STORE VECTAB +6,1
033775,000400: 07,3270 65174 NOSAVE2 AXT,2 XCHX,2 # SETUP ALPHAM AND SCALEA
033776,000401: 07,3271 00023 19D # SCALE FOR R/QV
033777,000402: 07,3272 02207 SCALEB # SWAP SCALEB AND X2
033778,000403: 07,3273 52134 SXA,2 GOTO
033779,000404: 07,3274 02206 SCALEA
033780,000405: 07,3275 17132 ACCOMP2 # ENTRY IF UNIT(ALPHAV) AVAILABLE
033781,000406:
Page 788 |
033783,000408: # THE GMODE11 ROUTINE SETS UP THE SUNS DISTURBING ACCELERATION.
033784,000409:
033785,000410:
033786,000411:
033787,000412: 07,3276 45144 GMODE11 LXC,2 CALL # SET X2 TO TABLE OF PROPER CONSTANTS
033788,000413: 07,3277 02227 PBODY
033789,000414: 07,3300 17434 ADDTOFV
033790,000415: 07,3301 77624 CALL # BARICENTER-TO-SUN POSITION VECTOR.
033791,000416: 07,3302 17737 SUNPOS # LEAVES VECTOR IN PDL
033792,000417: 07,3303 76750 LXA,1 VLOAD* # COMPUTE R/PS USING CORRECT TABLE FOR
033793,000418: 07,3304 02205 DIFEQCNT # MASS RATIO, ETC.
033794,000419: 07,3305 02117 VECTAB +6,1
033795,000420: 07,3306 53357 VXSC* VAD
033796,000421: 07,3307 77770 6,2 # USE SCALAR AT ENTRY 6 IN THE TABLE
033797,000422: 07,3310 66170 AXT,1 SXA,1
033798,000423: 07,3311 00034 28D
033799,000424: 07,3312 02207 SCALEB # SET SCALEB AND RETURN TO ACCOMP
033800,000425: 07,3313 36061 STCALL BETAV
033801,000426: 07,3314 17132 ACCOMP2
033802,000427:
033803,000428: # THE GMODE10 ROUTINE ADDS IN THE SUNS PERTURBING ACCELERATION AND COMPUTES THE OBLATENESS CONTRIBUTION
033804,000429: 07,3315 63144 GMODE10 LXC,2 INCR,2
033805,000430: 07,3316 02227 PBODY
033806,000431: 07,3317 77774 DEC -3 B-14
033807,000432: 07,3320 77624 CALL
033808,000433: 07,3321 17434 ADDTOFV
033809,000434: 07,3322 77614 OBLATEST BON
033810,000435: 07,3323 00303 MOONFLAG
033811,000436: 07,3324 17422 NBRANCH
033812,000437:
Page 789 |
033814,000439: # THE OBLATE ROUTINE COMPUTES THE ACCELERATION DUE TO THE EARTHS OBLATENESS. 2T USES THE UNIT OF THE VEHICLE
033815,000440: # POSITION VECTOR FOUND IN ALPHAV AND THE DISTANCE TO THE CENTER IN ALPHAM. THIS IS ADDED TO THE SUM OF THE
033816,000441: # DISTURBING ACCELERATIONS IN FV AND THE PROPER DIFEQ STAGE IS CALLED VIA X1.
033817,000442: 07,3325 77745 OBLATE DLOAD
033818,000443: 07,3326 02057 ALPHAV +4 # Z COMPONENT OF POSITION IS COS PHI
033819,000444: 07,3327 57201 SETPD DMPR
033820,000445: 07,3330 00001 0
033821,000446: 07,3331 17712 3/4
033822,000447: 07,3332 63525 PDDL DSQ # P2:/8 TO REGISTER 0
033823,000448: 07,3333 02057 ALPHAV +4
033824,000449: 07,3334 57252 SL3 DMPR
033825,000450: 07,3335 17710 15/16
033826,000451: 07,3336 41425 DSU PUSH # P3:/4 TO REGISTER 2
033827,000452: 07,3337 17676 3/8
033828,000453: 07,3340 57275 DMPR DMPR
033829,000454: 07,3341 02057 ALPHAV +4
033830,000455: 07,3342 17716 7/12
033831,000456: 07,3343 65352 SL1 PDDL # P4:/16 TO REGISTER 4
033832,000457: 07,3344 00001 0
033833,000458: 07,3345 44275 DMPR BDSU
033834,000459: 07,3346 17734 2/3
033835,000460: 07,3347 57206 PUSH DMPR # BEGIN COMPUTING P5:/128
033836,000461: 07,3350 02057 ALPHAV +4
033837,000462: 07,3351 65275 DMPR PDDL
033838,000463: 07,3352 17720 9/16
033839,000464: 07,3353 00003 2
033840,000465: 07,3354 44275 DMPR BDSU # FINISH P5:/128 AND TERM USING UNIT
033841,000466: 07,3355 17722 5/128 # POSITION VECTOR AT ALPHA
033842,000467: 07,3356 62405 DMP SL2
033843,000468: 07,3357 17726 J4REQ/J3
033844,000469: 07,3360 43271 DDV DAD
033845,000470: 07,3361 02155 ALPHAM
033846,000471: 07,3362 00005 4
033847,000472: 07,3363 56275 DMPR DDV
033848,000473: 07,3364 17724 2J3RE/J2
033849,000474: 07,3365 02155 ALPHAM
033850,000475: 07,3366 74215 DAD VXSC
033851,000476: 07,3367 00003 2
033852,000477: 07,3370 02053 ALPHAV
033853,000478: 07,3371 16053 STODL ALPHAV
033854,000479:
Page 790 |
033856,000481: 07,3372 72405 DMP SL1 # COMPUTE TERM USING IZ
033857,000482: 07,3373 17726 J4REQ/J3
033858,000483: 07,3374 43271 DDV DAD
033859,000484: 07,3375 02155 ALPHAM
033860,000485: 07,3376 50525 PDDL SR3
033861,000486: 07,3377 17724 2J3RE/J2
033862,000487: 07,3400 77675 DMPR
033863,000488: 07,3401 43271 DDV DAD
033864,000489: 07,3402 02155 ALPHAM
033865,000490: 07,3403 77621 BDSU
033866,000491: 07,3404 02057 ALPHAV +4
033867,000492: 07,3405 16057 STODL ALPHAV +4
033868,000493: 07,3406 02155 ALPHAM
033869,000494: 07,3407 63516 DSQ DSQ
033870,000495: 07,3410 55301 NORM BDDV
033871,000496: 07,3411 00047 X1
033872,000497: 07,3412 17714 J2REQSQ
033873,000498: 07,3413 62161 VXSC INCR,1
033874,000499: 07,3414 02053 ALPHAV
033875,000500: 07,3415 00004 4
033876,000501: 07,3416 53257 VSL* VAD # SHIFTS LEFT ON +, RIGHT ON -.
033877,000502: 07,3417 20201 0,1
033878,000503: 07,3420 02103 FV
033879,000504: 07,3421 02103 STORE FV
033880,000505: 07,3422 72135 NBRANCH SLOAD LXA,1
033881,000506: 07,3423 02206 DIFEQCNT
033882,000507: 07,3424 00144 MPAC
033883,000508: 07,3425 73205 DMP CGOTO
033884,000509: 07,3426 16777 -1/12
033885,000510: 07,3427 00145 MPAC
033886,000511: 07,3430 17431 DIFEQTAB
033887,000512: 07,3431 17526 DIFEQTAB CADR DIFEQ+0
033888,000513: 07,3432 17532 CADR DIFEQ+1
033889,000514: 07,3433 17543 CADR DIFEQ+2
033890,000515: 07,3434 77743 ADDTOFV DLOAD* # SETS UP S1 AND S2 PER PRIMARY BODY TABLE
033891,000516: 07,3435 77776 0,2
033892,000517: 07,3436 24051 STOVL S1
033893,000518: 07,3437 00027 22D
033894,000519: 07,3440 73670 XAD,1 VXSC*
033895,000520: 07,3441 00050 S1
033896,000521: 07,3442 77775 1,2
033897,000522: 07,3443 53257 VSL* VAD
033898,000523: 07,3444 20240 31D,1
033899,000524: 07,3445 02103 FV
033900,000525: 07,3446 02103 STORE FV
033901,000526: 07,3447 77616 ITCQ
033902,000527:
Page 791 |
033904,000529: # BEGIN INTEGRATION STEP WITH RECTIFICATION TEST.
033905,000530:
033906,000531:
033907,000532:
033908,000533: 07,3450 77775 TIMESTEP VLOAD # MOVE TEMPORARY DELTA AND NU VECTORS
033909,000534: 07,3451 02023 TNUV # TO WORKING STORAGE
033910,000535: 07,3452 26222 STOVL ZV
033911,000536: 07,3453 02015 TDELTAV
033912,000537: 07,3454 02214 STORE YV
033913,000538: 07,3455 45246 ABVAL DSU # RECTIFICATION REQUIRED IF THE LENGTH
033914,000539: 07,3456 17730 DP1/2 # OF DELTA IS GREATER THAN .5 (8KM).
033915,000540: 07,3457 45040 BMN CALL
033916,000541: 07,3460 17462 INTGRATE
033917,000542: 07,3461 17500 RECTIFY
033918,000543: 07,3462 66331 INTGRATE SSP SSP # INITIALIZE INDICES AND SWITCHES
033919,000544: 07,3463 02171 FBRANCH # EXIT FROM DIFEQCOM
033920,000545: 07,3464 16551 CADR FBR3
033921,000546: 07,3465 02172 HBRANCH # EXIT FROM KEPLER
033922,000547: 07,3466 17101 CADR POSTRUE
033923,000548: 07,3467 77614 CLEAR
033924,000549: 07,3470 00261 JSWITCH # 1 FOR W MATRIX EXTRAPOLATE, 0 OTHERWISE.
033925,000550: 07,3471 77775 DIFEQ0 VLOAD # POSITION DEVIATION INTO ALPHA
033926,000551: 07,3472 02214 YV
033927,000552: 07,3473 16053 STODL ALPHAV
033928,000553: 07,3474 17732 DPZERO
033929,000554: 07,3475 02165 STORE H # START H AT ZERO. GOES O(DELT/2)DELT.
033930,000555: 07,3476 36206 STCALL DIFEQCNT # ZERO DIFEQCNT AND REGISTER FOLLOWING.
033931,000556: 07,3477 02171 HBRANCH # GOES 0(-12D)(-24D).
033932,000557:
Page 792 |
033934,000559: # THE RECTIFY SUBROUTINE IS CALLED BY THE INTEGRATION PROGRAM AND OCCASIONALLY BY THE MEASUREMENT INCORPORATION
033935,000560: # ROUTINES TO ESTABLISH A NEW CONIC.
033936,000561:
033937,000562:
033938,000563:
033939,000564: 07,3500 40575 RECTIFY VLOAD VSR8 # RECTIFY - FORM TOTAL POSITION AND VEL.
033940,000565: 07,3501 02015 TDELTAV # ADJUST SCALE DIFFERENCE (ASSUMED
033941,000566: 07,3502 53342 VSR2 VAD # CONSTANT HERE.)
033942,000567: 07,3503 02031 RCV
033943,000568: 07,3504 02001 STORE RRECT
033944,000569: 07,3505 26031 STOVL RCV # SET UP CONIC ,ANSWER, FOR TIMESTEP
033945,000570: 07,3506 02023 TNUV
033946,000571: 07,3507 53202 VSR8 VAD # SAME FOR VELOCITY.
033947,000572: 07,3510 02037 VCV
033948,000573: 07,3511 02007 STORE VRECT
033949,000574: 07,3512 66370 AXT,1 SSP
033950,000575: 07,3513 00014 12D # ZERO DELTA, NU, AND TIME SINCE RECT.
033951,000576: 07,3514 00051 S1
033952,000577: 07,3515 00002 2
033953,000578: 07,3516 16037 STODL VCV
033954,000579: 07,3517 17732 DPZERO
033955,000580: 07,3520 02045 STORE TC
033956,000581: 07,3521 02051 STORE XKEP # ZERO X.
033957,000582: 07,3522 06230 ZEROLOOP STORE YV +12D,1 # INDICES CAUSE LOOP TO ZERO 6 CONSECUTIVE
033958,000583: 07,3523 06031 STORE TDELTAV +12D,1 # DP NUMBERS (DELTA AND NU ARE ADJACENT).
033959,000584: 07,3524 43500 TIX,1 ITCQ # LOOP OR START INTEGRATION STEP IF DONE.
033960,000585: 07,3525 17522 ZEROLOOP
033961,000586:
Page 793 |
033963,000588: # THE THREE DIFEQ ROUTINES - DIFEQ+0, DIFEQ+12, AND DIFEQ+24 - ARE ENTEREDTO PROCESS THE CONTRIBUTIONS AT THE
033964,000589: # BEGINNING, MIDDLE, AND END OF THE TIMESTEP, RESPECTIVELY. THE UPDATING IS DONE BY THE NYSTROM METHOD.
033965,000590: 07,3526 64575 DIFEQ+0 VLOAD VSR3
033966,000591: 07,3527 02103 FV
033967,000592: 07,3530 36067 STCALL PHIV
033968,000593: 07,3531 17635 DIFEQCOM
033969,000594: 07,3532 74575 DIFEQ+1 VLOAD VSR1
033970,000595: 07,3533 02103 FV
033971,000596: 07,3534 53206 PUSH VAD
033972,000597: 07,3535 02067 PHIV
033973,000598: 07,3536 26075 STOVL PSIV
033974,000599: 07,3537 53362 VSR1 VAD
033975,000600: 07,3540 02067 PHIV
033976,000601: 07,3541 36067 STCALL PHIV
033977,000602: 07,3542 17635 DIFEQCOM
033978,000603: 07,3543 57345 DIFEQ+2 DLOAD DMPR
033979,000604: 07,3544 02165 H
033980,000605: 07,3545 17734 DP2/3
033981,000606: 07,3546 74206 PUSH VXSC
033982,000607: 07,3547 02067 PHIV
033983,000608: 07,3550 53372 VSL1 VAD
033984,000609: 07,3551 02222 ZV
033985,000610: 07,3552 53361 VXSC VAD
033986,000611: 07,3553 02165 H
033987,000612: 07,3554 02214 YV
033988,000613: 07,3555 26214 STOVL YV
033989,000614: 07,3556 02103 FV
033990,000615: 07,3557 53322 VSR3 VAD
033991,000616: 07,3560 02075 PSIV
033992,000617: 07,3561 76561 VXSC VSL1
033993,000618: 07,3562 43055 VAD BOFF # SEE IF THIS IS STATE VECTOR OR W COLUMN.
033994,000619: 07,3563 02222 ZV
033995,000620: 07,3564 00341 JSWITCH
033996,000621: 07,3565 17605 ENDSTATE
033997,000622: 07,3566 77770 AXT,1
033998,000623: 07,3567 00000 0
033999,000624: 07,3570 12341 STORE W +72D,2 # VELOCITY COLUMN VECTOR
034000,000625: 07,3571 77745 DLOAD
034001,000626: 07,3572 02214 YV
034002,000627: 07,3573 12275 STORE W +36D,2 # POSITION COLUMN VECTOR
034003,000628: 07,3574 52104 TIX,2 GOTO # **********
034004,000629: 07,3575 17577 NEXTCOL
034005,000630: 07,3576 02204 STEPEXIT
034006,000631:
Page 794 |
034008,000633: 07,3577 77773 NEXTCOL VLOAD* # SET UP NEXT COLUMNS OF W MATRIX
034009,000634: 07,3600 75502 W +36D,2
034010,000635: 07,3601 32214 STOVL* YV
034011,000636: 07,3602 75436 W +72D,2
034012,000637: 07,3603 36222 STCALL ZV
034013,000638: 07,3604 17471 DIFEQ0
034014,000639: 07,3605 26023 ENDSTATE STOVL TNUV
034015,000640: 07,3606 02214 YV
034016,000641: 07,3607 16015 STODL TDELTAV
034017,000642: 07,3610 02165 H
034018,000643: 07,3611 64402 SR4 SR2R
034019,000644: 07,3612 77615 DAD
034020,000645: 07,3613 02045 TC
034021,000646: 07,3614 02045 STORE TC
034022,000647: 07,3615 77014 BOFF AXT,2
034023,000648: 07,3616 00340 WMATFLAG
034024,000649: 07,3617 02204 STEPEXIT
034025,000650: 07,3620 00044 36D
034026,000651: 07,3621 76131 SSP AXT,1
034027,000652: 07,3622 00052 S2
034028,000653: 07,3623 00006 6
034029,000654: 07,3624 17655 DOW..
034030,000655: 07,3625 66130 SXA,1 SXA,1
034031,000656: 07,3626 02170 FBRANCH
034032,000657: 07,3627 02171 HBRANCH
034033,000658: 07,3630 76014 INVERT AXT,1
034034,000659: 07,3631 00161 JSWITCH
034035,000660: 07,3632 00000 0
034036,000661: 07,3633 77650 GOTO
034037,000662: 07,3634 17577 NEXTCOL
034038,000663:
Page 795 |
034040,000665: # COMES HERE TO FINISH FIRST TWO DIFEQ COMPUTATIONS.
034041,000666:
034042,000667:
034043,000668:
034044,000669: 07,3635 43345 DIFEQCOM DLOAD DAD # INCREMENT H AND DIFEQCNT.
034045,000670: 07,3636 02163 DT/2
034046,000671: 07,3637 02165 H
034047,000672: 07,3640 66110 INCR,1 SXA,1
034048,000673: 07,3641 77763 DEC -12 B-14
034049,000674: 07,3642 02205 DIFEQCNT # DIFEQCNT SET FOR NEXT ENTRY.
034050,000675: 07,3643 02165 STORE H
034051,000676: 07,3644 74561 VXSC VSR1
034052,000677: 07,3645 02103 FV
034053,000678: 07,3646 74255 VAD VXSC
034054,000679: 07,3647 02222 ZV
034055,000680: 07,3650 02165 H
034056,000681: 07,3651 77655 VAD
034057,000682: 07,3652 02214 YV
034058,000683: 07,3653 36053 STCALL ALPHAV
034059,000684: 07,3654 02170 FBRANCH
034060,000685:
Page 796 |
034062,000687: # ORBITAL ROUTINE FOR EXTRAPOLATION OF THE W MATRIX. IT COMPUTES THE SECOND DERIVATIVE OF EACH COLUMN POSITION
034063,000688: # VECTOR OF THE MATRIX AND CALLS THE NYSTROM INTEGRATION ROUTINES TO SOLVETHE DIFFERENTIAL EQUATIONS. THE PROGRAM
034064,000689: # USES A TABLE OF VEHICLE POSITION VECTORS COMPUTED DURING THE INTEGRATION OF THE VEHICLES POSITION AND VELOCITY.
034065,000690: 07,3655 50575 DOW.. VLOAD VSR6
034066,000691: 07,3656 02053 ALPHAV
034067,000692: 07,3657 53513 PDVL* UNIT
034068,000693: 07,3660 02111 VECTAB,1
034069,000694: 07,3661 46315 PDVL VPROJ
034070,000695: 07,3662 02053 ALPHAV
034071,000696: 07,3663 52361 VXSC VSU
034072,000697: 07,3664 17700 3/16
034073,000698: 07,3665 41325 PDDL DMP
034074,000699: 07,3666 00043 34D
034075,000700: 07,3667 00045 36D
034076,000701: 07,3670 45541 V/SC STADR
034077,000702: 07,3671 41674 STCALL FV
034078,000703: 07,3672 17422 NBRANCH
034079,000704:
Page 797 |
034081,000706: # CONSTANTS
034082,000707:
034083,000708:
034084,000709:
034085,000710: 07,3673 00000 KEPSILON OCT 00000
034086,000711: 07,3674 00002 OCT 00002
034087,000712: 07,3675 14000 00000 THREE/8 2DEC .375
034088,000713: 07,3677 06000 00000 3/16 2DEC 3 B -4
034089,000714: 07,3701 10000 00000 DP1/4 2DEC .25
034090,000715: 07,3703 12525 12525 DP1/3 2DEC .333333333
034091,000716: 07,3705 07,3701 DQUARTER EQUALS DP1/4
034092,000717: 07,3705 02000 00000 POS1/16 2DEC .0625
034093,000718: 07,3707 07,3701 POS1/4 EQUALS DP1/4
034094,000719: 07,3707 07,3675 3/8 EQUALS THREE/8
034095,000720: 07,3707 36000 00000 15/16 2DEC 15. B -4
034096,000721: 07,3711 30000 00000 3/4 2DEC 3.0 B -2
034097,000722: 07,3713 12577 24106 J2REQSQ 2DEC .335914874 # SECOND HARMONIC TIMES SQUARE OF RADIUS.
034098,000723: 07,3715 22525 12525 7/12 2DEC .5833333333
034099,000724: 07,3717 22000 00000 9/16 2DEC 9 B -4
034100,000725: 07,3721 01200 00000 5/128 2DEC 5 B -7
034101,000726: 07,3723 77711 71033 2J3RE/J2 2DEC -.003309146
034102,000727: 07,3725 23377 06703 J4REQ/J3 2DEC .60932709
034103,000728: 07,3727 20000 00000 DP1/2 2DEC .5
034104,000729: 07,3731 00000 00000 DPZERO 2DEC 0.0
034105,000730: 07,3733 25252 25253 DP2/3 2DEC .6666666667
034106,000731: 07,3735 07,3733 2/3 EQUALS DP2/3
034107,000732:
Page 798 |
034109,000734: # DUMMYMOON POSITION ROUTINE, SUN POSITION ROUTINE, AND PBODY TABLE FOR CHECKOUT OF EARTH-ORBITAL ONLY.
034110,000735: 07,3735 43575 MOONPOS VLOAD ITCQ # LOAD CONSTANT VECTOR INTO A AND EXIT.
034111,000736: 07,3736 17744 MOONVEC
034112,000737:
034113,000738: 07,3737 77201 SUNPOS SETPD VLOAD # RETURNS WITH VECTOR IN VAC AND IN PDL.
034114,000739: 07,3740 00001 0
034115,000740: 07,3741 17747 SUNVEC
034116,000741: 07,3742 77616 ITCQ
034117,000742:
034118,000743:
034119,000744: 07,3743 00006 EARTHTAB DEC 6 B-14
034120,000745: 07,3744 00000 00000 2DEC 0.0
034121,000746: 07,3746 00012 DEC 10 B-14
034122,000747: 07,3747 00000 00000 2DEC 0.0
034123,000748: 07,3751 00000 00000 2DEC 0.0
034124,000749: 07,3753 77743 DEC -28 B-14 # 28 3/2
034125,000750: 07,3754 24214 11244 2DEC .6335627 # 400/SQRT(MU)
034126,000751: 07,3756 07,3743 MOONVEC EQUALS EARTHTAB
034127,000752: 07,3756 07,3746 SUNVEC EQUALS EARTHTAB +3 # ******
End of include-file ORBITAL_INTEGRATION_PROGRAM.agc. Parent file is MAIN.agc