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