Source Code
These source-code files were transcribed from a printout in Don Eyles's personal
collection, scanned by archive.org, and financially sponsored by Peter McDermott.
A team of volunteers performed the transcription and proof-reading. The scanned
page images are available at
the Virtual AGC Project website, as well as higher-quality (but much larger)
images at
the Virtual AGC Project's collection in the Internet Archive. Report any problems by creating
"issues" at
the Virtual AGC Project's GitHub Repository. Notations on the program listing read, in part: YUL SYSTEM FOR AGC: NEW PROGRAM SHEPATIN BY EYLES DEC 13, 1966 THIS PROGRAM WAS ASSEMBLED AS A VERSION OF REVISION 37 OF PROGRAM SUNBURST BY LEM GROUPNote that the date is the date of the printout, not the date of the program revision. |
023940,000002: ## Copyright: Public domain.
023941,000003: ## Filename: KALMAN_FILTER_FOR_LM_DAP.agc
023942,000004: ## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
023943,000005: ## It is part of an early development version of the software
023944,000006: ## for Apollo Guidance Computer (AGC) on the unmanned Lunar
023945,000007: ## Module (LM) flight Apollo 5. Sunburst 37 was the program
023946,000008: ## upon which Don Eyles's offline development program Shepatin
023947,000009: ## was based; the listing herein transcribed was actually for
023948,000010: ## the equivalent revision 0 of Shepatin.
023949,000011: ## This file is intended to be a faithful transcription, except
023950,000012: ## that the code format has been changed to conform to the
023951,000013: ## requirements of the yaYUL assembler rather than the
023952,000014: ## original YUL assembler.
023953,000015: ## Reference: pp. 541-553
023954,000016: ## Assembler: yaYUL
023955,000017: ## Contact: Ron Burkey <info@sandroid.org>.
023956,000018: ## Website: www.ibiblio.org/apollo/index.html
023957,000019: ## Mod history: 2017-05-24 MAS Created from Sunburst 120.
023958,000020: ## 2017-06-05 HG Transcribed
023959,000021: ## 2017-06-07 HG Remove illegal EXTEND
023960,000022: ## 2017-06-22 RSB Proofed comment text with
023961,000023: ## octopus/ProoferComments.
023962,000024:
Page 541 |
023964,000026: # THE FOLLOWING T5RUPT ENTRY BEGINS THE PROGRAM WHICH INITIALIZES THE KALMAN FILTER AND SETS UP A P-AXIS RUPT TO
023965,000027: # OCCUR 20 MS FROM ITS BEGINNING.
023966,000028:
023967,000029: 26,2611 E6,1541 EBANK= DT
023968,000030: 21,2000 BANK 21
023969,000031: 21,2000 32373 FILTINIT CAF MS20F # RESET TIMER IMMEDIATELY: DT = 20 MS
023970,000032: 21,2001 54030 TS TIME5
023971,000033:
023972,000034:
023973,000035: 21,2002 22016 LXCH BANKRUPT # INTERRUPT LEAD IN (CONTINUED)
023974,000036: 21,2003 00006 EXTEND
023975,000037: 21,2004 22012 QXCH QRUPT
023976,000038:
023977,000039: 21,2005 00006 EXTEND # SET UP FOR P-AXIS RUPT
023978,000040: 21,2006 32072 DCA PAX/FILT
023979,000041: 21,2007 53001 DXCH T5ADR
023980,000042:
023981,000043: 21,2010 32013 CAF FIRSTADR # SET UP TO AVOID DT CALCULATION DURING
023982,000044: 21,2011 55543 TS STEERADR # KALMAN FILTER INITIALIZATION PASS
023983,000045:
023984,000046: 21,2012 12033 TCF FILSTART
023985,000047:
023986,000048: 21,2013 02316 FIRSTADR GENADR FILFIRST
023987,000049:
023988,000050: # THE FOLLOWING T5RUPT ENTRY BEGINS THE KALMAN FILTER PROGRAM. THIS SECTION ALSO SETS UP A T5RUPT TO OCCUR 20 MS
023989,000051: # FROM ITS BEGINNING AND SETS IT TO GO TO THE LOCATION AT THE TOP OF THE POST FILTER RUPT LIST.
023990,000052:
023991,000053: 21,2014 02052 MOSTPASS GENADR DTCALC # WORD IN FILTPASS FOR THESE PASSES
023992,000054:
023993,000055: 21,2015 32373 FILTER CAF MS20F # RESET TIMER IMMEDIATELY: DT = 20 MS
023994,000056: 21,2016 54030 TS TIME5
023995,000057:
023996,000058: 21,2017 22016 LXCH BANKRUPT # INTERRUPT LEAD IN (CONTINUED)
023997,000059: 21,2020 00006 EXTEND
023998,000060: 21,2021 22012 QXCH QRUPT
023999,000061:
024000,000062: 21,2022 02550 TC DISPDRIV # DRIVE ICDU BITS IF NECESSARY.
024001,000063:
024002,000064: 21,2023 00006 EXTEND # SET RUPT ADDRESS TO TOP OF
024003,000065: 21,2024 31574 DCA PFRPTLST # POST FILTER RUPT LIST
024004,000066: 21,2025 53001 DXCH T5ADR
024005,000067:
024006,000068: 21,2026 53574 DXCH PFRPTLST # ROTATE 2CADR'S IN POST FILTER RUPT LIST
024007,000069: 21,2027 53602 DXCH PFRPTLST +6
024008,000070: 21,2030 53600 DXCH PFRPTLST +4
024009,000071: 21,2031 53576 DXCH PFRPTLST +2
024010,000072: 21,2032 53574 DXCH PFRPTLST
024011,000073:
024012,000074: # BEGIN THE KALMAN FILTER BY READING CDU ANGLES AND TIME.
024013,000075:
024014,000076: 21,2033 05041 FILSTART TC T6JOBCHK # CHECK T6 CLOCK FOR P-AXIS ACTIVITY
024015,000077:
Page 542 |
024017,000079:
024018,000080: 21,2034 00006 EXTEND
024019,000081: 21,2035 30034 DCA CDUY # STORE CDUY AND CDUZ AT PI AND IN 2,S COM
024020,000082: 21,2036 53540 DXCH STORCDUY
024021,000083: 21,2037 00006 EXTEND # BEGIN READING THE CLOCK TO GET TIME
024022,000084: 21,2040 00004 READ 4 # INCREMENT.
024023,000085: 21,2041 54001 TS L
024024,000086: 21,2042 00006 EXTEND
024025,000087: 21,2043 06004 RXOR 4 # CHECK TO SEE IF CH 4 WAS IN TRANSITION
024026,000088: 21,2044 00006 EXTEND # WHEN IT WAS FIRST READ.
024027,000089: 21,2045 12051 BZF +4 # BRANCH IF TIME WAS THE SAME IN 2 READS.
024028,000090: 21,2046 00006 EXTEND
024029,000091: 21,2047 00004 READ 4
024030,000092: 21,2050 54001 TS L # THIS TIME READ ALWAYS GIVES GOOD NO.
024031,000093: 21,2051 01543 TC STEERADR # SKIP DTCALC DURING INITIAL PASS
024032,000094:
024033,000095: 21,2052 40001 DTCALC CS L
024034,000096: 21,2053 61542 AD DAPTIME # A CONTAINS THE TIME DIFFERENCE (DT)
024035,000097: 21,2054 23542 LXCH DAPTIME # SINCE THE LAST FILTER.
024036,000098: 21,2055 00006 EXTEND
024037,000099: 21,2056 62061 BZMF +3
024038,000100: 21,2057 67736 AD NEG1/2 # THIS IS ADDING -1.0 TO -DT AND ACCOUNTS
024039,000101: 21,2060 67736 AD NEG1/2 # FOR AN OVERFLOW INTO CHANNEL 5
024040,000102:
024041,000103: # SCALING OF DELTA T FOR KALMAN FILTER IS 1/8 SECOND.
024042,000104:
024043,000105: 21,2061 00006 EXTEND # TIME NOW SCALED AT 5.12 SECONDS
024044,000106: 21,2062 77747 MP BIT7 # FIRST RESCALE TO 5.12/64
024045,000107: 21,2063 42370 CS .64
024046,000108: 21,2064 00006 EXTEND # THEN RESCALE TO 5.12/(64*.64) OR
024047,000109: 21,2065 70001 MP L # 5.12/40.96 WHICH IS THE SAME AS
024048,000110: 21,2066 55541 TS DT # DT SCALED AT 1/8
024049,000111:
024050,000112: # SET UP FILTER WEIGHTING VECTOR FOR THIS FILTER PASS.
024051,000113:
024052,000114: 21,2067 11546 CCS WPOINTER # TEST FOR WEIGHTING VECTOR STEADY-STATE
024053,000115: 21,2070 12074 TCF MOVEWGTS # POINTER NOT YET ZERO (MULTIPLE OF THREE)
024054,000116: 21,2071 E6,1541 EBANK= DT
024055,000117: 21,2071 02346 34006 PAX/FILT 2CADR PAXIS # (ROOM FOR 2CADR IN CCS HOLES)
024056,000118:
024057,000119: 21,2073 12105 TCF FLTZAXIS # STEADY-STATE ALREADY, NO UPDATING AGAIN
024058,000120:
024059,000121: 21,2074 46301 MOVEWGTS CS THREE # SET UP POINTER FOR THIS PASS
024060,000122: 21,2075 27546 ADS WPOINTER # (NEVER GETS BELOW ZERO HERE)
024061,000123:
024062,000124: 21,2076 00006 EXTEND # WPOINTER IS INDEX = 87 FIRST TIME HERE
024063,000125: 21,2077 51546 INDEX WPOINTER # AND IS DECREASED BY 3 EVERY FILTER PASS
024064,000126: 21,2100 32405 DCA WVECTOR # UNTIL THE STEADY-STATE IS REACHED.
024065,000127: 21,2101 53550 DXCH W0 # MOVE IN NEW W0,W1
024066,000128: 21,2102 51546 INDEX WPOINTER
024067,000129: 21,2103 32406 CAF WVECTOR +2
024068,000130:
Page 543 |
024070,000132: 21,2104 55551 TS W2 # MOVE IN NEW W2
024071,000133:
024072,000134: 21,2105 37754 FLTZAXIS CAF TWO # SET UP INDEXER FOR D.P. PICKUP AND TO
024073,000135: 21,2106 54066 TS QRCNTR # INDICATE Z-AXIS FILTER PASS
024074,000136:
024075,000137: 21,2107 12113 TCF FLTYAXIS
024076,000138:
024077,000139: 21,2110 37761 GOYFILTR CAF ZERO # SET INDEXER FOR Y-AXIS
024078,000140: 21,2111 54066 TS QRCNTR
024079,000141:
024080,000142: 21,2112 05041 TC T6JOBCHK # CHECK T6 CLOCK FOR P-AXIS ACTIVITY
024081,000143:
024082,000144: 21,2113 50066 FLTYAXIS INDEX QRCNTR
024083,000145: 21,2114 53553 DXCH CDUYFIL # THETA IS D.P. SCALED AT 2 PI RADIANS
024084,000146: 21,2115 52073 DXCH CDU
024085,000147: 21,2116 50066 INDEX QRCNTR # .
024086,000148: 21,2117 53557 DXCH DCDUYFIL # THETA IS D.P. SCALED AT PI/4 RAD/SEC
024087,000149: 21,2120 52062 DXCH CDUDOT
024088,000150: 21,2121 50066 INDEX QRCNTR # .. 2
024089,000151:
024090,000152: 21,2122 53563 DXCH D2CDUYFL # THETA IS D.P. SCALED AT PI/8 RAD/SEC
024091,000153: 21,2123 52064 DXCH CDU2DOT
024092,000154: 21,2124 50066 INDEX QRCNTR # ... 7 3
024093,000155: 21,2125 31566 CAE Y3DOT # THETA IS S.P. SCALED AT PI/2 RAD/SEC
024094,000156: 21,2126 57567 XCH CDU3DOT
024095,000157:
024096,000158: # NOTE THAT THE FILTERED VARIABLES ARE READ DESTRUCTIVELY FOR SPEED AND EFFICIENCY AND THAT Y3DOT IS NOT UPDATED,
024097,000159: # SO IT MUST BE READ NON-DESTRUCTIVELY BUT NEED NOT BE RESTORED AFTER EACH KALMAN FILTER PASS.
024098,000160:
Page 544 |
024100,000162: # INTEGRATION EXTRAPOLATION EQUATIONS:
024101,000163:
024102,000164: 21,2127 30063 KLMNFLTR CAE CDU2DOT # A SCALED AT PI/8 (USE S.P.)
024103,000165: 21,2130 00006 EXTEND
024104,000166: 21,2131 71541 MP DT # ADT SCALED AT PI/64 OR .5ADT AT PI/128
024105,000167: 21,2132 00006 EXTEND
024106,000168: 21,2133 77744 MP BIT10 # RESCALE BY RIGHT SHIFT 5
024107,000169: 21,2134 60061 AD CDUDOT # W + .5ADT SCALED AT PI/4
024108,000170: 21,2135 00006 EXTEND
024109,000171: 21,2136 71541 MP DT # (W + .5ADT)DT SCALED AT PI/32
024110,000172: 21,2137 00006 EXTEND
024111,000173: 21,2140 77745 MP BIT9 # RESCALE BY RIGHT SHIFT 6 (KEEP D.P.)
024112,000174: 21,2141 20073 DAS CDU # CDU = CDU + (W + .5ADT)DT SCALED AT 2PI
024113,000175:
024114,000176: 21,2142 31567 CAE CDU3DOT # ADOT SCALED AT PI/2(7)
024115,000177: 21,2143 00006 EXTEND
024116,000178: 21,2144 71541 MP DT # .5ADOTDT SCALED AT PI/2(11)
024117,000179: 21,2145 54065 TS ITEMP5 # (SAVE FOR ALPHA INTEGRATION)
024118,000180: 21,2146 00006 EXTEND
024119,000181: 21,2147 77747 MP BIT7 # RESCALE BY RIGHT SHIFT 8
024120,000182: 21,2150 60063 AD CDU2DOT # A + .5ADOTDT SCALED AT PI/8
024121,000183: 21,2151 00006 EXTEND
024122,000184: 21,2152 71541 MP DT # (A + .5ADOTDT)DT SCALED AT PI/64
024123,000185: 21,2153 00006 EXTEND
024124,000186: 21,2154 77743 MP BIT11 # RESCALE BY RIGHT SHIFT 4 (KEEP D.P.)
024125,000187: 21,2155 20062 DAS CDUDOT # W = W + (A + .5ADOTDT)DT SCALED AT PI/4
024126,000188:
024127,000189: 21,2156 30065 CAE ITEMP5 # ADOTDT SCALED AT PI/2(10) (FROM ABOVE)
024128,000190: 21,2157 00006 EXTEND
024129,000191: 21,2160 77746 MP BIT8 # RESCALE BY RIGHT SHIFT 7 (KEEP D.P.)
024130,000192: 21,2161 20064 DAS CDU2DOT # A = A + ADOTDT SCALED AT PI/8
024131,000193:
Page 545 |
024133,000195:
024134,000196: # WEIGHTING VECTOR ADJUSTMENT EQUATIONS:
024135,000197:
024136,000198: 21,2162 00006 EXTEND # CONVERT CDU INTEGRATED VALUE FROM DOUBLE
024137,000199: 21,2163 30073 DCA CDU # PRECISION SCALED AT 2PI IN ONES COMPLE-
024138,000200: 21,2164 02303 TC ONETOTWO # MENT TO SINGLE PRECISION SCALED AT PI
024139,000201: 21,2165 31540 CAE STORCDUZ # IN TWOS COMPLEMENT, THEN DIFFERENCE WITH
024140,000202: 21,2166 00006 EXTEND # STORED CDU REGISTER READING TO GET A
024141,000203: 21,2167 20065 MSU ITEMP5 # SINGLE PRECISION ONES COMPLEMENT RESULT
024142,000204:
024143,000205: 21,2170 55544 TS DPDIFF # SCALED AT PI RADIANS (UPPER HALF)
024144,000206:
024145,000207: 21,2171 40073 CS CDU +1 # CREATE LOW ORDER WORD OF D.P. DIFFERENCE
024146,000208: 21,2172 60000 DOUBLE # ONES COMPLEMENT SCALED AT PI RADIANS AND
024147,000209: 21,2173 57545 XCH DPDIFF +1 # USE S.P. RESULT ABOVE AS HIGH ORDER WORD
024148,000210:
024149,000211: 21,2174 00006 EXTEND # RESCALE DPDIFF TO PI
024150,000212: 21,2175 31545 DCA DPDIFF
024151,000213: 21,2176 20001 DDOUBL
024152,000214: 21,2177 22065 LXCH ITEMP5 # SAVE LOW ORDER WORD FOR D.P. MULTIPLY
024153,000215: 21,2200 00006 EXTEND
024154,000216: 21,2201 71547 MP W0 # CDU = CDU + DPDIFF (D.P.) * W0 (S.P.)
024155,000217: 21,2202 20073 DAS CDU
024156,000218: 21,2203 30065 CAE ITEMP5 # W0 IS SCALED AT 2
024157,000219: 21,2204 00006 EXTEND # DPDIFF IS RESCALED TO PI
024158,000220: 21,2205 71547 MP W0 # W0*DPDIFF IS SCALED AT 2PI (AS CDU)
024159,000221: 21,2206 26073 ADS CDU +1
024160,000222: 21,2207 54001 TS L
024161,000223: 21,2210 12212 TCF +2
024162,000224: 21,2211 26072 ADS CDU
024163,000225:
024164,000226: 21,2212 31544 CAE DPDIFF # RESCALE DPDIFF TO PI/128
024165,000227: 21,2213 00006 EXTEND
024166,000228:
024167,000229: 21,2214 77745 MP BIT9 # DPDIFF (D.P.) * 256
024168,000230: 21,2215 22065 LXCH ITEMP5
024169,000231: 21,2216 31545 CAE DPDIFF +1
024170,000232: 21,2217 00006 EXTEND
024171,000233: 21,2220 77745 MP BIT9
024172,000234: 21,2221 60065 AD ITEMP5
024173,000235: 21,2222 22065 LXCH ITEMP5
024174,000236:
024175,000237: 21,2223 00006 EXTEND # . .
024176,000238: 21,2224 71550 MP W1 # CDU = CDU + DPDIFF (D.P.) * W1 (S.P.)
024177,000239: 21,2225 20062 DAS CDUDOT
024178,000240: 21,2226 30065 CAE ITEMP5 # W1 IS SCALED AT 32
024179,000241: 21,2227 00006 EXTEND # DPDIFF IS RESCALED TO PI/128
024180,000242: 21,2230 71550 MP W1 # W1*DPDIFF IS SCALED AT PI/4 (AS CDUDOT)
024181,000243: 21,2231 26062 ADS CDUDOT +1
024182,000244: 21,2232 54001 TS L
024183,000245: 21,2233 12235 TCF +2
024184,000246: 21,2234 26061 ADS CDUDOT
024185,000247:
Page 546 |
024187,000249: 21,2235 31544 CAE DPDIFF # RESCALE DPDIFF TO PI/64
024188,000250: 21,2236 00006 EXTEND
024189,000251: 21,2237 77746 MP BIT8 # DPDIFF (D.P.) * 128
024190,000252: 21,2240 22065 LXCH ITEMP5
024191,000253: 21,2241 31545 CAE DPDIFF +1
024192,000254: 21,2242 00006 EXTEND
024193,000255: 21,2243 77746 MP BIT8
024194,000256: 21,2244 60065 AD ITEMP5
024195,000257: 21,2245 22065 LXCH ITEMP5
024196,000258:
024197,000259: 21,2246 00006 EXTEND # .. ..
024198,000260: 21,2247 71551 MP W2 # CDU = CDU + DPDIFF (D.P.) * W2 (S.P.)
024199,000261: 21,2250 20064 DAS CDU2DOT
024200,000262: 21,2251 30065 CAE ITEMP5 # W2 IS SCALED AT 8
024201,000263:
024202,000264: 21,2252 00006 EXTEND
024203,000265: 21,2253 71551 MP W2 # W2*DPDIFF IS SCALED AT PI/8 (AS CDU2DOT)
024204,000266: 21,2254 26064 ADS CDU2DOT +1
024205,000267: 21,2255 54001 TS L
024206,000268: 21,2256 12260 TCF +2
024207,000269: 21,2257 26063 ADS CDU2DOT
024208,000270:
024209,000271: # RESTORE VARIABLES AND TEST FOR COMPLETION OR ADDITIONAL AXIS.
024210,000272:
024211,000273: 21,2260 52073 FILTAXIS DXCH CDU
024212,000274: 21,2261 50066 INDEX QRCNTR # THETA IS D.P. SCALED AT 2 PI RADIANS
024213,000275: 21,2262 53553 DXCH CDUYFIL
024214,000276: 21,2263 52062 DXCH CDUDOT # .
024215,000277: 21,2264 50066 INDEX QRCNTR # THETA IS D.P. SCALED AT PI/4 RAD/SEC
024216,000278: 21,2265 53557 DXCH DCDUYFIL
024217,000279: 21,2266 52064 DXCH CDU2DOT # .. 2
024218,000280: 21,2267 50066 INDEX QRCNTR # THETA IS D.P. SCALED AT PI/8 RAD/SEC
024219,000281: 21,2270 53563 DXCH D2CDUYFL
024220,000282:
024221,000283: 21,2271 57537 XCH STORCDUY # INTERCHANGE CDU READINGS
024222,000284: 21,2272 57540 XCH STORCDUZ
024223,000285: 21,2273 57537 XCH STORCDUY
024224,000286:
024225,000287: 21,2274 10066 CCS ITEMP6 # ITEMP6 IS AXIS INDEXER
024226,000288: 21,2275 12110 TCF GOYFILTR # IF 2, Y-AXIS STILL TO GO
024227,000289:
024228,000290: 21,2276 41000 CS T5ADR # IF THE TRIM GIMBAL CONTROL RUPT IS NEXT,
024229,000291: 21,2277 62400 AD GTS2CADR # DO THE Q,R-AXIS STATE TRANSFORMATIONS
024230,000292: 21,2300 00006 EXTEND # AND THE 20 MS STATE EXTRAPOLATION
024231,000293: 21,2301 12572 BZF GIMBAL
024232,000294: 21,2302 15751 TCF RESUME # OTHERWISE, RESUME
024233,000295:
024234,000296: # SUBROUTINE FOR FILTER WHICH TAKES 1 COMPLEMENT NUMBER INTO A 2 COMP.
024235,000297:
024236,000298: 21,2303 20001 ONETOTWO DDOUBL # SEE RTB OP CODES IN BANK 15 FOR NOTES ON
024237,000299: 21,2304 10000 CCS A # THIS COMPUTATION.
024238,000300:
Page 547 |
024240,000302: 21,2305 67755 AD ONE
024241,000303: 21,2306 12310 TCF +2
024242,000304: 21,2307 40000 COM
024243,000305: 21,2310 54065 TS ITEMP5
024244,000306: 21,2311 12315 TCF +4
024245,000307: 21,2312 50000 INDEX A
024246,000308: 21,2313 37736 CAF LIMITS
024247,000309: 21,2314 26065 ADS ITEMP5
024248,000310: 21,2315 00002 TC Q # RETURN
024249,000311:
024250,000312: # THIS PROGRAM INITIALIZES THE KALMAN FILTER PROGRAM.
024251,000313:
024252,000314: 21,2316 23542 FILFIRST LXCH DAPTIME # INITIALIZE TIME.
024253,000315: 21,2317 32372 CAF POINT=90 # INITIALIZE THE WEIGHTING VECTOR POINTER
024254,000316: 21,2320 55546 TS WPOINTER
024255,000317: 21,2321 32014 CAF MOSTPASS # SET UP FOR NEXT PASSES
024256,000318: 21,2322 55543 TS STEERADR
024257,000319: 21,2323 00006 EXTEND # SET UP POST FILTER RUPT LIST
024258,000320: 21,2324 32376 DCA DGTSFADR
024259,000321:
024260,000322: 21,2325 53574 DXCH PFRPTLST
024261,000323: 21,2326 00006 EXTEND
024262,000324: 21,2327 32072 DCA PAX/FILT
024263,000325: 21,2330 53576 DXCH PFRPTLST +2
024264,000326: 21,2331 00006 EXTEND
024265,000327: 21,2332 32072 DCA PAX/FILT
024266,000328: 21,2333 53602 DXCH PFRPTLST +6
024267,000329: 21,2334 00006 EXTEND
024268,000330: 21,2335 32401 DCA GTS2CADR
024269,000331: 21,2336 53600 DXCH PFRPTLST +4
024270,000332: 21,2337 00006 EXTEND # CHANGE POST P FILTER TO FILTER
024271,000333: 21,2340 32403 DCA POSTPFIL
024272,000334: 21,2341 53572 DXCH PFILTADR
024273,000335:
024274,000336: 21,2342 31537 CAE STORCDUY
024275,000337: 21,2343 00006 EXTEND
024276,000338: 21,2344 77740 MP BIT14
024277,000339: 21,2345 53553 DXCH CDUYFIL # INITIALIZE THE STATE VECTOR TO CDU VALUE
024278,000340: 21,2346 31540 CAE STORCDUZ
024279,000341: 21,2347 00006 EXTEND
024280,000342: 21,2350 77740 MP BIT14
024281,000343: 21,2351 53555 DXCH CDUZFIL
024282,000344: 21,2352 37761 CA ZERO
024283,000345:
024284,000346: 21,2353 55556 TS DCDUYFIL
024285,000347: 21,2354 55557 TS DCDUYFIL +1 # INITIALIZE THE DERIVATIVES OF THE STATE
024286,000348: 21,2355 55560 TS DCDUZFIL
024287,000349: 21,2356 55561 TS DCDUZFIL +1
024288,000350: 21,2357 55562 TS D2CDUYFL
024289,000351: 21,2360 55563 TS D2CDUYFL +1
024290,000352: 21,2361 55564 TS D2CDUZFL
024291,000353: 21,2362 55565 TS D2CDUZFL +1
024292,000354:
Page 548 |
024294,000356: 21,2363 55566 TS Y3DOT
024295,000357: 21,2364 55570 TS Z3DOT
024296,000358:
024297,000359: 21,2365 55522 TS NEGUQ
024298,000360: 21,2366 55524 TS NEGUR
024299,000361: 21,2367 15751 TCF RESUME
024300,000362:
024301,000363:
024302,000364:
024303,000365: 21,2370 24366 .64 DEC 0.64000
024304,000366: 21,2371 14000 BIT12-13 OCTAL 14000
024305,000367: 21,2372 00132 POINT=90 DEC 90 B-14 # POINTER INITIALIZED ONE GROUP PAST END
024306,000368: 21,2373 37776 MS20F OCTAL 37776
024307,000369: 21,2374 37775 MS30F OCTAL 37775
024308,000370: 21,2375 E6,1541 EBANK= DT
024309,000371: 21,2375 02536 42006 DGTSFADR 2CADR DGTS
024310,000372:
024311,000373: 21,2377 02346 PAXISADR GENADR PAXIS
024312,000374: 21,2400 E6,1541 EBANK= DT
024313,000375: 21,2400 02561 42006 GTS2CADR 2CADR GTS
024314,000376:
024315,000377: 21,2402 E6,1541 EBANK= DT
024316,000378: 21,2402 02015 42006 POSTPFIL 2CADR FILTER
024317,000379:
Page 549 |
024319,000381: # THE KALMAN FILTER WEIGHTINF VECTORS ARE LISTED IN THE FOLLOWING TABLE ALONG WITH THE TIME FROM THE LAST FILTER
024320,000382: # INITIALIZATION FOR WHICH THEY ARE TO BE USED. (THE VECTORS ARE STORED IN ORDERED TRIPLES (W0,W1,W2) IN
024321,000383: # DESCENDING ORDER IN TIME WITH THE STEADY STATE VALUES AT THE TOP.)
024322,000384:
024323,000385: # THE COMPONENTS ARE SCALED AS FOLLOWS:
024324,000386: # W0 : SCALED AT 2
024325,000387: # W1 : SCALED AT 32
024326,000388: # W2 : SCALED AT 8
024327,000389:
024328,000390: 21,2404 05751 WVECTOR DEC 0.18608 # W0 FROM RELATIVE TIME 1.5 SECS OR MORE
024329,000391: 21,2405 00672 DEC 0.02696 # W1 FROM RELATIVE TIME 1.5 SECS OR MORE
024330,000392: 21,2406 05362 DEC 0.17105 # W2 FROM RELATIVE TIME 1.5 SECS OR MORE
024331,000393: 21,2407 04460 DEC 0.14358 # W0 AT RELATIVE TIME : 1.45 SECONDS
024332,000394: 21,2410 00731 DEC 0.02890 # W1 AT RELATIVE TIME : 1.45 SECONDS
024333,000395: 21,2411 05530 DEC 0.17727 # W2 AT RELATIVE TIME : 1.45 SECONDS
024334,000396: 21,2412 04522 DEC 0.14565 # W0 AT RELATIVE TIME : 1.40 SECONDS
024335,000397: 21,2413 00745 DEC 0.02959 # W1 AT RELATIVE TIME : 1.40 SECONDS
024336,000398: 21,2414 05632 DEC 0.18129 # W2 AT RELATIVE TIME : 1.40 SECONDS
024337,000399: 21,2415 04572 DEC 0.14809 # W0 AT RELATIVE TIME : 1.35 SECONDS
024338,000400: 21,2416 11602 DEC 0.30479 # W1 AT RELATIVE TIME : 1.35 SECONDS
024339,000401: 21,2417 05764 DEC 0.18678 # W2 AT RELATIVE TIME : 1.35 SECONDS
024340,000402: 21,2420 04650 DEC 0.15090 # W0 AT RELATIVE TIME : 1.30 SECONDS
024341,000403: 21,2421 01005 DEC 0.03154 # W1 AT RELATIVE TIME : 1.30 SECONDS
024342,000404: 21,2422 06153 DEC 0.19403 # W2 AT RELATIVE TIME : 1.30 SECONDS
024343,000405: 21,2423 04735 DEC 0.15409 # W0 AT RELATIVE TIME : 1.25 SECONDS
024344,000406: 21,2424 01032 DEC 0.03283 # W1 AT RELATIVE TIME : 1.25 SECONDS
024345,000407: 21,2425 06405 DEC 0.20340 # W2 AT RELATIVE TIME : 1.25 SECONDS
024346,000408: 21,2426 05027 DEC 0.15767 # W0 AT RELATIVE TIME : 1.20 SECONDS
024347,000409: 21,2427 01063 DEC 0.03437 # W1 AT RELATIVE TIME : 1.20 SECONDS
024348,000410: 21,2430 06707 DEC 0.21525 # W2 AT RELATIVE TIME : 1.20 SECONDS
024349,000411: 21,2431 05130 DEC 0.16163 # W0 AT RELATIVE TIME : 1.15 SECONDS
024350,000412: 21,2432 01120 DEC 0.03616 # W1 AT RELATIVE TIME : 1.15 SECONDS
024351,000413:
024352,000414: 21,2433 07270 DEC 0.23000 # W2 AT RELATIVE TIME : 1.15 SECONDS
024353,000415: 21,2434 05237 DEC 0.16595 # W0 AT RELATIVE TIME : 1.10 SECONDS
024354,000416: 21,2435 01163 DEC 0.03824 # W1 AT RELATIVE TIME : 1.10 SECONDS
024355,000417: 21,2436 07742 DEC 0.24814 # W2 AT RELATIVE TIME : 1.10 SECONDS
024356,000418: 21,2437 05354 DEC 0.17063 # W0 AT RELATIVE TIME : 1.05 SECONDS
024357,000419: 21,2440 01232 DEC 0.04062 # W1 AT RELATIVE TIME : 1.05 SECONDS
024358,000420: 21,2441 10513 DEC 0.27018 # W2 AT RELATIVE TIME : 1.05 SECONDS
024359,000421: 21,2442 05475 DEC 0.17560 # W0 AT RELATIVE TIME : 1.00 SECONDS
024360,000422: 21,2443 01306 DEC 0.04332 # W1 AT RELATIVE TIME : 1.00 SECONDS
024361,000423: 21,2444 11375 DEC 0.29668 # W2 AT RELATIVE TIME : 1.00 SECONDS
024362,000424: 21,2445 05622 DEC 0.18080 # W0 AT RELATIVE TIME : 0.95 SECONDS
024363,000425: 21,2446 01367 DEC 0.04634 # W1 AT RELATIVE TIME : 0.95 SECONDS
024364,000426: 21,2447 12402 DEC 0.32824 # W2 AT RELATIVE TIME : 0.95 SECONDS
024365,000427: 21,2450 05752 DEC 0.18614 # W0 AT RELATIVE TIME : 0.90 SECONDS
024366,000428: 21,2451 01456 DEC 0.04968 # W1 AT RELATIVE TIME : 0.90 SECONDS
024367,000429: 21,2452 13541 DEC 0.36531 # W2 AT RELATIVE TIME : 0.90 SECONDS
024368,000430: 21,2453 06101 DEC 0.19147 # W0 AT RELATIVE TIME : 0.85 SECONDS
024369,000431: 21,2454 01551 DEC 0.05328 # W1 AT RELATIVE TIME : 0.85 SECONDS
024370,000432:
Page 550 |
024372,000434: 21,2455 15040 DEC 0.40821 # W2 AT RELATIVE TIME : 0.85 SECONDS
024373,000435: 21,2456 06225 DEC 0.19659 # W0 AT RELATIVE TIME : 0.80 SECONDS
024374,000436: 21,2457 01647 DEC 0.05707 # W1 AT RELATIVE TIME : 0.80 SECONDS
024375,000437: 21,2460 16503 DEC 0.45721 # W2 AT RELATIVE TIME : 0.80 SECONDS
024376,000438: 21,2461 06341 DEC 0.20122 # W0 AT RELATIVE TIME : 0.75 SECONDS
024377,000439: 21,2462 01746 DEC 0.06089 # W1 AT RELATIVE TIME : 0.75 SECONDS
024378,000440: 21,2463 20244 DEC 0.50999 # W2 AT RELATIVE TIME : 0.75 SECONDS
024379,000441: 21,2464 06440 DEC 0.20505 # W0 AT RELATIVE TIME : 0.70 SECONDS
024380,000442: 21,2465 02041 DEC 0.06451 # W1 AT RELATIVE TIME : 0.70 SECONDS
024381,000443: 21,2466 22055 DEC 0.56522 # W2 AT RELATIVE TIME : 0.70 SECONDS
024382,000444: 21,2467 06514 DEC 0.20775 # W0 AT RELATIVE TIME : 0.65 SECONDS
024383,000445: 21,2470 02123 DEC 0.06759 # W1 AT RELATIVE TIME : 0.65 SECONDS
024384,000446: 21,2471 23610 DEC 0.61768 # W2 AT RELATIVE TIME : 0.65 SECONDS
024385,000447: 21,2472 06542 DEC 0.20912 # W0 AT RELATIVE TIME : 0.60 SECONDS
024386,000448:
024387,000449: 21,2473 02166 DEC 0.06972 # W1 AT RELATIVE TIME : 0.60 SECONDS
024388,000450: 21,2474 25072 DEC 0.65979 # W2 AT RELATIVE TIME : 0.60 SECONDS
024389,000451: 21,2475 06546 DEC 0.20934 # W0 AT RELATIVE TIME : 0.55 SECONDS
024390,000452: 21,2476 02205 DEC 0.07062 # W1 AT RELATIVE TIME : 0.55 SECONDS
024391,000453: 21,2477 25640 DEC 0.68165 # W2 AT RELATIVE TIME : 0.55 SECONDS
024392,000454: 21,2500 06543 DEC 0.20919 # W0 AT RELATIVE TIME : 0.50 SECONDS
024393,000455: 21,2501 02177 DEC 0.07028 # W1 AT RELATIVE TIME : 0.50 SECONDS
024394,000456: 21,2502 25427 DEC 0.67330 # W2 AT RELATIVE TIME : 0.50 SECONDS
024395,000457: 21,2503 06564 DEC 0.21020 # W0 AT RELATIVE TIME : 0.45 SECONDS
024396,000458: 21,2504 02160 DEC 0.06931 # W1 AT RELATIVE TIME : 0.45 SECONDS
024397,000459: 21,2505 24077 DEC 0.62883 # W2 AT RELATIVE TIME : 0.45 SECONDS
024398,000460: 21,2506 06671 DEC 0.21441 # W0 AT RELATIVE TIME : 0.40 SECONDS
024399,000461: 21,2507 02154 DEC 0.06908 # W1 AT RELATIVE TIME : 0.40 SECONDS
024400,000462: 21,2510 21470 DEC 0.55030 # W2 AT RELATIVE TIME : 0.40 SECONDS
024401,000463: 21,2511 07125 DEC 0.22391 # W0 AT RELATIVE TIME : 0.35 SECONDS
024402,000464: 21,2512 02225 DEC 0.07162 # W1 AT RELATIVE TIME : 0.35 SECONDS
024403,000465: 21,2513 16256 DEC 0.44810 # W2 AT RELATIVE TIME : 0.35 SECONDS
024404,000466: 21,2514 07544 DEC 0.24049 # W0 AT RELATIVE TIME : 0.30 SECONDS
024405,000467: 21,2515 02430 DEC 0.07956 # W1 AT RELATIVE TIME : 0.30 SECONDS
024406,000468: 21,2516 12624 DEC 0.33713 # W2 AT RELATIVE TIME : 0.30 SECONDS
024407,000469: 21,2517 10401 DEC 0.26566 # W0 AT RELATIVE TIME : 0.25 SECONDS
024408,000470: 21,2520 03054 DEC 0.09646 # W1 AT RELATIVE TIME : 0.25 SECONDS
024409,000471: 21,2521 07317 DEC 0.23140 # W2 AT RELATIVE TIME : 0.25 SECONDS
024410,000472:
024411,000473: 21,2522 11507 DEC 0.30123 # W0 AT RELATIVE TIME : 0.20 SECONDS
024412,000474: 21,2523 04070 DEC 0.12841 # W1 AT RELATIVE TIME : 0.20 SECONDS
024413,000475: 21,2524 04404 DEC 0.14087 # W2 AT RELATIVE TIME : 0.20 SECONDS
024414,000476: 21,2525 13146 DEC 0.34996 # W0 AT RELATIVE TIME : 0.15 SECONDS
024415,000477: 21,2526 06020 DEC 0.18850 # W1 AT RELATIVE TIME : 0.15 SECONDS
024416,000478: 21,2527 02213 DEC 0.07101 # W2 AT RELATIVE TIME : 0.15 SECONDS
024417,000479: 21,2530 15230 DEC 0.41554 # W0 AT RELATIVE TIME : 0.10 SECONDS
024418,000480: 21,2531 11756 DEC 0.31141 # W1 AT RELATIVE TIME : 0.10 SECONDS
024419,000481: 21,2532 00613 DEC 0.02408 # W2 AT RELATIVE TIME : 0.10 SECONDS
024420,000482: 21,2533 17670 DEC 0.49561 # W0 AT RELATIVE TIME : 0.05 SECONDS
024421,000483: 21,2534 23514 DEC 0.61404 # W1 AT RELATIVE TIME : 0.05 SECONDS
024422,000484: 21,2535 00001 DEC 0.00006 # W2 AT RELATIVE TIME : 0.05 SECONDS
024423,000485:
Page 551 |
024425,000487: # DUMMY TRIM GIMBAL RUPT:
024426,000488:
024427,000489: 21,2536 32374 DGTS CAF MS30F # RESET TIMER IMMEDIATELY: DT = 30 MS
024428,000490: 21,2537 54030 TS TIME5
024429,000491:
024430,000492: 21,2540 00006 EXTEND # SET UP FILTER RUPT
024431,000493:
024432,000494: 21,2541 32403 DCA POSTPFIL
024433,000495: 21,2542 53001 DXCH T5ADR
024434,000496:
024435,000497: 21,2543 22016 LXCH BANKRUPT # INTERRUPT LEAD IN (CONTINUED)
024436,000498: 21,2544 00006 EXTEND
024437,000499: 21,2545 22012 QXCH QRUPT
024438,000500:
024439,000501: 21,2546 02550 TC DISPDRIV # DRIVE ICDU BITS IF NECESSARY.
024440,000502:
024441,000503: 21,2547 15751 TCF RESUME
024442,000504:
024443,000505: 21,2550 E6,1541 EBANK= DT
024444,000506:
024445,000507: 20,3006 BANK 20
024446,000508:
024447,000509: # DUMMY FILTER RUPT AFTER Q,R-AXES RUPT:
024448,000510:
024449,000511: 20,3006 37776 MS20120 OCTAL 37776
024450,000512: 20,3007 E6,1611 EBANK= TQR
024451,000513: 20,3007 02346 34006 PAXBNK20 2CADR PAXIS
024452,000514:
024453,000515: 20,3011 33006 FILDUMMY CAF MS20120 # RESET TIMER IMMEDIATELY: DT = 20 MS
024454,000516: 20,3012 54030 TS TIME5
024455,000517:
024456,000518: 20,3013 22016 LXCH BANKRUPT # INTERRUPT LEAD IN (CONTINUED)
024457,000519: 20,3014 00006 EXTEND # SAVE THE LAST Q ON ALL T5RUPT LEAD IN'S
024458,000520: 20,3015 22012 QXCH QRUPT
024459,000521:
024460,000522: 20,3016 00006 EXTEND # SET UP PAXIS RUPT
024461,000523: 20,3017 33010 DCA PAXBNK20
024462,000524: 20,3020 53001 DXCH T5ADR
024463,000525:
024464,000526: 20,3021 41611 CS TQR
024465,000527: 20,3022 63111 AD CSPINKF
024466,000528: 20,3023 00006 EXTEND
024467,000529: 20,3024 63040 BZMF FULLCSP
024468,000530:
024469,000531: 20,3025 31611 CA TQR
024470,000532: 20,3026 00006 EXTEND
024471,000533: 20,3027 77751 MP BIT5
024472,000534: 20,3030 30001 CAE L
024473,000535: 20,3031 00006 EXTEND
024474,000536: 20,3032 73107 MP 16/25KF
024475,000537: 20,3033 55611 TS TQR
024476,000538: 20,3034 03050 TC JETTSUB
024477,000539: 20,3035 37761 CAF ZERO
024478,000540:
Page 552 |
024480,000542: 20,3036 55611 TS TQR
024481,000543: 20,3037 15751 TCF RESUME
024482,000544:
024483,000545: 20,3040 40000 FULLCSP COM
024484,000546: 20,3041 54062 TS ITEMP2
024485,000547: 20,3042 33110 CA CSPAT1
024486,000548: 20,3043 55611 TS TQR
024487,000549: 20,3044 03050 TC JETTSUB
024488,000550: 20,3045 30062 CAE ITEMP2
024489,000551: 20,3046 55611 TS TQR
024490,000552: 20,3047 15751 TCF RESUME
024491,000553:
024492,000554: 20,3050 00006 JETTSUB EXTEND
024493,000555: 20,3051 71606 MP NO.QJETS
024494,000556: 20,3052 30001 CAE L
024495,000557: 20,3053 00006 EXTEND
024496,000558: 20,3054 71613 MP 1JACCQ
024497,000559: 20,3055 55604 TS JETRATEQ
024498,000560: 20,3056 27621 ADS SUMRATEQ
024499,000561: 20,3057 31611 CAE TQR
024500,000562: 20,3060 00006 EXTEND
024501,000563: 20,3061 71607 MP NO.RJETS
024502,000564: 20,3062 30001 CAE L
024503,000565: 20,3063 00006 EXTEND
024504,000566: 20,3064 71614 MP 1JACCR
024505,000567: 20,3065 55605 TS JETRATER
024506,000568:
024507,000569: 20,3066 27622 ADS SUMRATER
024508,000570: 20,3067 31635 CAE WFORQR
024509,000571: 20,3070 00006 EXTEND
024510,000572: 20,3071 71611 MP TQR
024511,000573: 20,3072 61637 AD (1-K)/8
024512,000574: 20,3073 00006 EXTEND
024513,000575: 20,3074 77752 MP BIT4
024514,000576: 20,3075 22061 LXCH ITEMP1
024515,000577: 20,3076 31604 CAE JETRATEQ
024516,000578: 20,3077 00006 EXTEND
024517,000579: 20,3100 70061 MP ITEMP1
024518,000580: 20,3101 55604 TS JETRATEQ
024519,000581: 20,3102 31605 CAE JETRATER
024520,000582: 20,3103 00006 EXTEND
024521,000583: 20,3104 70061 MP ITEMP1
024522,000584: 20,3105 55605 TS JETRATER
024523,000585: 20,3106 00002 TC Q
024524,000586: 20,3107 24366 16/25KF DEC 0.64000
024525,000587: 20,3110 03146 CSPAT1 DEC 0.10000
024526,000588: 20,3111 00240 CSPINKF DEC 0.00977
024527,000589:
Page 553 |
024529,000591: # SUBROUTINE: DISPDRIV MOD. NO. 0 DATE: NOVEMBER 14, 1966
024530,000592:
024531,000593: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
024532,000594:
024533,000595: # THIS SUBROUTINE SETS THE ICDU DRIVE BITS EVERY OTHER TIME IT IS CALLED. IT ALWAYS CHANGES THE VALUE OF
024534,000596: # "DISPLACT" TO INDICATE THE PASSING OF 100 MS, SINCE THIS FLAG IS TESTED BY "EIGHTBAL" IN THE P-AXIS T5RUPT.
024535,000597: # THE ICDU IS DRIVEN ONLY 30 MS AFTER "EIGHTBAL" ENABLED IT.
024536,000598:
024537,000599: # CALLING SEQUENCES (FROM "DUMMYFIL" AND "FILTER"):
024538,000600:
024539,000601: # L TC DISPDRIV (MUST BE FROM SAME BANK)
024540,000602: # L +1 (RETURN)
024541,000603:
024542,000604: # SUBROUTINES CALLED: NONE. NORMAL EXIT: BY TC Q TO L +1 .
024543,000605:
024544,000606: # ALARM/ABORT MODES: NONE. INPUT: PRESENT VALUE IN DISPLACT ,
024545,000607:
024546,000608: # OUTPUT: OPPOSITE VALUE OF "DISPLACT" AND ICDU BITS (WHEN NECESSARY).
024547,000609:
024548,000610: # DEBRIS: A,Q.
024549,000611:
024550,000612:
024551,000613:
024552,000614: 20,3112 E6,1541 EBANK= DT
024553,000615: 21,2550 BANK 21
024554,000616: 21,2550 11514 DISPDRIV CCS DISPLACT # TEST PHASE OF EIGHTBAL .
024555,000617: 21,2551 12556 TCF +5 # (NO DRIVING ON THIS PASS.) RESET FLAG.
024556,000618:
024557,000619: 21,2552 32560 CAF OCT70000 # SET ICDU DRIVE BITS.
024558,000620: 21,2553 00006 EXTEND
024559,000621: 21,2554 05014 WOR 14
024560,000622:
024561,000623: 21,2555 37755 CAF ONE # RESET FLAG.
024562,000624: 21,2556 55514 TS DISPLACT
024563,000625:
024564,000626: 21,2557 00002 TC Q # RETURN
024565,000627:
024566,000628: 21,2560 70000 OCT70000 OCTAL 70000 # ICDU DRIVE BITS OF CHANNEL 14.
End of include-file KALMAN_FILTER_FOR_LM_DAP.agc. Parent file is MAIN.agc