Source Code
![]() |
YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS BY MSTEWART JUN. 28,2017This is a modern AGC system self-test program, though based on the Apollo-era AURORA 12 program, and was not written by the original AGC developers, but rather by Mike Stewart. All of the original AURORA 12 DAP code added by the DAP Group has been removed, and extensive new system test code has been added in its place. This allows more in-depth testing of CPU behavior, both in AGC software simulations and hardware simulations. |
007349,000002: ## Copyright: Public domain.
007350,000003: ## Filename: IMU_COMPENSATION_PACKAGE.agc
007351,000004: ## Purpose: This program is designed to extensively test the Apollo Guidance Computer
007352,000005: ## (specifically the LM instantiation of it). It is built on top of a heavily
007353,000006: ## stripped-down Aurora 12, with all code ostensibly added by the DAP Group
007354,000007: ## removed. Instead Borealis expands upon the tests provided by Aurora,
007355,000008: ## including corrected tests from Retread 44 and tests from Ron Burkey's
007356,000009: ## Validation.
007357,000010: ## Assembler: yaYUL
007358,000011: ## Contact: Mike Stewart <mastewar1@gmail.com>.
007359,000012: ## Website: www.ibiblio.org/apollo/index.html
007360,000013: ## Mod history: 2016-12-20 MAS Created from Aurora 12 (with much DAP stuff removed).
007361,000014:
007362,000015: 07,2000 BANK 7
007363,000016: 07,2000 E3,1440 EBANK= NBDX
007364,000017: # PROGRAM DESCRIPTION- IMU COMPENSATION (LEM) DATE- 30 AUG 66
007365,000018: # MOD NO- 0 LOG SECTION- IMU COMPENSATION PACKAGE
007366,000019: # MOD BY- GILBERT ASSEMBLY- SUNBURST REVISION 13
007367,000020:
007368,000021: # FUNCTIONAL DESCRIPTION
007369,000022: # THE IMU COMPENSATION PACKAGE IS DESIGNED TO COMPENSATE FOR PIPA BIAS AND SCALE FACTOR ERROR AND AT THE
007370,000023: # SAME TIME ACCUMULATE GYRO TORQUING COMMANDS NECESSARY TO COMPENSATE FOR THE ASSOCIATED BIAS AND ACCELERATION-
007371,000024: # CAUSED GYRO DRIFTS. 1/PIPA MUST BE CALLED AT LEAST EVERY 2.55 SECONDS DUE TO SCALING CONSIDERATIONS.
007372,000025: # SPECIFICALLY, THE CORRECTION IS
007373,000026:
007374,000027: # PIPA = (1 + SCALE FACTOR ERROR)PIPA - (BIAS)(DELTAT)
007375,000028: # C I
007376,000029:
007377,000030: # WHERE PIPA IS THE COMPENSATED DATA OBTAINED FROM THE SAMPLED DATA PIPA
007378,000031: # C I
007379,000032:
007380,000033: # THE COMPENSATED DATA IS THEN USED TO COMPUTE THE IRIG TORQUING NECESSARY TO CANCEL THE NBD, ADIA, AND ADSRA
007381,000034: # GYRO COEFFICIENTS.
007382,000035: # SPECIFICALLY, THE COMPUTATIONS ARE
007383,000036:
007384,000037: # XIRIG -(ADIAX)(PIPAX ) + (ADSRAX)(PIPAY ) - (NBDX)(DELTAT)
007385,000038: # C C
007386,000039: # YIRIG -(ADIAY)(PIPAY ) + (ADSRAY)(PIPAZ ) - (NBDY)(DELTAT)
007387,000040: # C C
007388,000041: # ZIRIG -(ADIAZ)(PIPAZ ) - (ADSRAZ)(PIPAY ) + (NBDZ)(DELTAT)
007389,000042: # C C
007390,000043:
007391,000044: # THIS COMPENSATION IS SUMMED INTO THE GCOMP REGISTERS AND WHEN THE MAGNITUDE OF ANY IRIG COMMAND EXCEEDS 2
007392,000045: # PULSES, THE COMMANDS ARE SENT TO THE GYROS.
007393,000046:
007394,000047: # DURING FREE-FALL PHASES OF A FLIGHT NBDX, NBDY, AND NBDZ ARE THE ONLY RELEVANT COEFFICIENTS. THESE BIAS TERMS
007395,000048: # WILL BE INTEGRATED BY ROUTINE NBDONLY APPROXIMATELY EVERY 81.93 SECONDS FOLLOWING AN EXECUTIVE CALL BY THE DUMMY
007396,000049: # TASK OF THE WAITLIST PROGRAM. NBDONLY IS ENABLED WHEN BIT 15 OF FLAGWRD2 IS SET TO INDICATE FREE-FALL. DURING
007397,000050: # THIS TIME 1/PIPA IS NOT CALLED.
007398,000051:
007399,000052: # LASTBIAS IS CALLED VIA EXECUTIVE WHEN MAKING THE TRANSITION FROM FREE-FALL TO A PIPA READING MODE. THE NBD TERMS
007400,000053: # ARE COMPENSATED FOR FROM THE LAST NBDONLY CALL UP TO PIPA ZEROING. PREREAD WILL THEN ENABLE 1/PIPA AT ITS
007401,000054: # REGULAR INTERVAL. THE DRIFT FLAG MUST BE DOWN JUST PRIOR TO LASTBIAS. GYROCOMPASS NEVER CALLS LASTBIAS.
007402,000055:
007403,000056: # SCALING CONSIDERATIONS
007404,000057: # UNITS MAX. VALUE INTERNAL UNITS AND SCALING
007405,000058:
007406,000059: # PIPA BIAS (CM)/(SEC)(SEC) 3.125 (PIPA PULSES)/(CS) X 2(-5)
007407,000060: # PIPA SCALE FACTOR P.P.M. 1953.125 (PPM) X 2(-9)
007408,000061: # NBD MERU 128.74604 (GYRO PULSES)/(CS) X 2(-5)
007409,000062: # ADIA (MERU)/(G) 630.36633 (GYRO PULSES)/(PIPA PULSE) X 2(-6)
007410,000063: # ADSRA (MERU)/(G) 630.36633 (GYRO PULSES)/(PIPA PULSE) X 2(-6)
007411,000064:
007412,000065: # CONVERSION TABLE
007413,000066: # 1 PIPA PULSE = 1.00 (CM)/(SEC)(SEC) 1 ERU = 7.29209817 X 10(-5) (RAD)/(SEC)
007414,000067: # 1 ERU = 15.04104488 (ARCSEC)/(SEC) 1 (CM)/(SEC)(SEC) = .01 (PIPA PULSES)/(CS)
007415,000068: # 1 GYRO PULSE = .61798096 ARCSEC 1 MERU = .0024272592 (GYRO PULSES)/(CS)
007416,000069: # 1 G = 979.24 (CM)/(SEC)(SEC) (AMR) 1 (MERU)/(G) = .000144787174 (GYRO PULSES)/(PIPA PULSE)
007417,000070:
007418,000071: # REFERENCES
007419,000072: # AGC PROGRAMMING MEMO NO. 12, I.S.S. MEMO NO. 247, I.S.S. MEMO NO. 328, I.S.S. MEMO NO. 339
007420,000073:
007421,000074: # CALLING SEQUENCE
007422,000075: # L TC BANKCALL
007423,000076: # L+1 CADR 1/PIPA
007424,000077: # L+2 RETURNS HERE
007425,000078:
007426,000079: # NORMAL EXIT MODES
007427,000080: # AT L+2 OF CALLING SEQUENCE
007428,000081:
007429,000082: # ALARM OR ABORT MODES
007430,000083: # ENDOFJOB
007431,000084:
007432,000085: # ERASABLE INITIALIZATION REQUIRED (CONSECUTIVE LOCATIONS)
007433,000086: # PBIASX PIPAX BIAS
007434,000087: # PIPASCFX PIPAX SCALE FACTOR ERROR
007435,000088: # PBIASY PIPAY BIAS
007436,000089: # PIPASCFY PIPAY SCALE FACTOR ERROR
007437,000090: # PBIASZ PIPAZ BIAS
007438,000091: # PIPASCFZ PIPAZ SCALE FACTOR ERROR
007439,000092: # NBDX X IRIG BIAS DRIFT
007440,000093: # NBDY Y IRIG BIAS DRIFT
007441,000094: # NDBZ Z IRIG BIAS DRIFT
007442,000095: # ADIAX IRIG ACCELERATION SENSITIVE DRIFT ALONG THE X INPUT AXIS
007443,000096: # ADIAY IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Y INPUT AXIS
007444,000097: # ADIAZ IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Z INPUT AXIS
007445,000098: # ADSRAX IRIG ACCELERATION SENSITIVE DRIFT ALONG THE X SPIN REFERENCE AXIS
007446,000099: # ADSRAY IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Y SPIN REFERENCE AXIS
007447,000100: # ADSRAZ IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Z SPIN REFERENCE AXIS
007448,000101: # GCOMP GYRO COMPENSATION PULSES (SET = ZERO FOR 1ST PASS)
007449,000102:
007450,000103: # INPUT
007451,000104: # 1/PIPADT - DELTA TIME SCALED AT (CS) X 2(+8)
007452,000105: # DELVX, DELVY, DELVZ - PIPA READINGS IN THE MAJOR PARTS - MINOR PARTS IRRELEVANT
007453,000106:
007454,000107: # OUTPUT
007455,000108: # DELVX, DELVY, DELVZ - PIPA COUNTS SCALED 2(+14) COMPENSATED FOR PIPA BIAS AND SCALE FACTOR ERROR
007456,000109: # GCOMP - 3 DP LOCATIONS CONTAINING GYRO PULSES TO COMPENSATE FOR NBD, ADIA, AND ADSRA COEFFICIENTS
007457,000110:
007458,000111: # DEBRIS
007459,000112: # CENTRALS - A,L,Q
007460,000113: # OTHER - BUF - BUF +2, VBUF - VBUF +2, GCOMPSW
007461,000114:
007462,000115: 07,2000 32233 1/PIPA CAF LGCOMP # SAVE EBANK OF CALLING PROGRAM
007463,000116: 07,2001 56003 XCH EBANK
007464,000117: 07,2002 54147 TS MODE
007465,000118:
007466,000119: 07,2003 37667 CAF FOUR # PIPAZ, PIPAY, PIPAX
007467,000120: 07,2004 54116 TS BUF +2
007468,000121:
007469,000122: 07,2005 50000 INDEX A
007470,000123: 07,2006 30403 CA DELVX # CONTAINS PREVIOUS PIPA READING
007471,000124: 07,2007 54106 TS VBUF # TEMPORARY - MINOR PARTS IRRELEVANT
007472,000125:
007473,000126: 07,2010 50116 INDEX BUF +2
007474,000127: 07,2011 41432 CS PIPABIAS # (PIPA PULSES)/(CS) X 2(-5) *
007475,000128: 07,2012 00006 EXTEND
007476,000129: 07,2013 71110 MP 1/PIPADT # (CS) X 2(+8) NOW (PIPA PULSES) X 2(+3)*
007477,000130: 07,2014 00006 EXTEND # *
007478,000131: 07,2015 77666 MP BIT4 # SCALE 2(-3) SHIFT LEFT 3 *
007479,000132: 07,2016 22107 LXCH VBUF +1 # (PIPA PULSES) X 2(0) FRACTIONAL PULSE*
007480,000133:
007481,000134: 07,2017 50116 INDEX BUF +2
007482,000135: 07,2020 31433 CA PIPASCF # (P.P.M.) X 2(-9)
007483,000136: 07,2021 00006 EXTEND
007484,000137: 07,2022 70106 MP VBUF # (PIPA PULSES) X 2(+14)
007485,000138: 07,2023 22110 LXCH VBUF +2 # SAVE FOR FRACTIONAL COMPUTATION
007486,000139: 07,2024 00006 EXTEND
007487,000140: 07,2025 77664 MP BIT6 # SCALE 2(+9) NOW PIPA PULSES X 2(+14)
007488,000141: 07,2026 20107 DAS VBUF # (PIPAI) - (NBD)(DELTAT) - HI(PIPAI)(SFE)
007489,000142:
007490,000143: 07,2027 30110 CA VBUF +2 # NOW MINOR PART
007491,000144: 07,2030 00006 EXTEND
007492,000145: 07,2031 77664 MP BIT6 # SCALE 2(+9) SHIFT RIGHT 9
007493,000146: 07,2032 54001 TS L
007494,000147: 07,2033 37675 CAF ZERO
007495,000148: 07,2034 20107 DAS VBUF # (PIPAI) - (NBD)(DELTAT) - (PIPAI)(SFE)
007496,000149:
007497,000150: 07,2035 00006 EXTEND
007498,000151: 07,2036 30107 DCA VBUF # RESTORE COMPENSATED PIPA READING
007499,000152: 07,2037 50116 INDEX BUF +2
007500,000153: 07,2040 52404 DXCH DELVX
007501,000154:
007502,000155: 07,2041 10116 CCS BUF +2 # PIPAZ, PIPAY, PIPAX
007503,000156: 07,2042 67677 AD NEG1
007504,000157: 07,2043 12004 TCF 1/PIPA +4
007505,000158: 07,2044 12045 NOOP # LESS THAN ZERO IMPOSSIBLE
007506,000159:
007507,000160: 07,2045 55457 IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS
007508,000161: 07,2046 54114 TS BUF # INDEX COUNTER - IRIGX, IRIGY, IRIGZ
007509,000162: 07,2047 00006 IRIGX EXTEND
007510,000163: 07,2050 40404 DCS DELVX # (PIPA PULSES) X 2(+14)
007511,000164: 07,2051 52141 DXCH MPAC
007512,000165: 07,2052 31443 CA ADIAX # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
007513,000166: 07,2053 02127 TC GCOMPSUB # -(ADIAX)(PIPAX) (GYRO PULSES) X 2(+14)
007514,000167:
007515,000168: 07,2054 00006 EXTEND
007516,000169: 07,2055 40406 DCS DELVY # (PIPA PULSES) X 2(+14)
007517,000170: 07,2056 52141 DXCH MPAC
007518,000171: 07,2057 41446 CS ADSRAX # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
007519,000172: 07,2060 02127 TC GCOMPSUB # +(ADSRAX)(PIPAY) (GYRO PULSES) X 2(+14)
007520,000173:
007521,000174: 07,2061 41440 CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
007522,000175: 07,2062 02156 TC DRIFSTUB # -(NBDX)(DELTAT) (GYRO PULSES) X 2(+14)
007523,000176:
007524,000177: 07,2063 00006 IRIGY EXTEND
007525,000178: 07,2064 40406 DCS DELVY # (PIPA PULSES) X 2(+14)
007526,000179: 07,2065 52141 DXCH MPAC
007527,000180: 07,2066 31444 CA ADIAY # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
007528,000181: 07,2067 02127 TC GCOMPSUB # -(ADIAY)(PIPAY) (GYRO PULSES) X 2(+14)
007529,000182:
007530,000183: 07,2070 00006 EXTEND
007531,000184: 07,2071 40410 DCS DELVZ # (PIPA PULSES) X 2(+14)
007532,000185: 07,2072 52141 DXCH MPAC
007533,000186: 07,2073 41447 CS ADSRAY # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
007534,000187: 07,2074 02127 TC GCOMPSUB # +(ADSRAY)(PIPAZ) (GYRO PULSES) X 2(+14)
007535,000188:
007536,000189: 07,2075 41441 CS NBDY # (GYRO PULSES)/(CS) X 2(-5)
007537,000190: 07,2076 02156 TC DRIFSTUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
007538,000191:
007539,000192: 07,2077 00006 IRIGZ EXTEND
007540,000193: 07,2100 40406 DCS DELVY # (PIPA PULSES) X 2(+14)
007541,000194: 07,2101 52141 DXCH MPAC
007542,000195: 07,2102 31450 CA ADSRAZ # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
007543,000196: 07,2103 02127 TC GCOMPSUB # -(ADSRAZ)(PIPAY (GYRO PULSES) X 2(+14)
007544,000197:
007545,000198: 07,2104 00006 EXTEND
007546,000199: 07,2105 40410 DCS DELVZ # (PIPA PULSES) X 2(+14)
007547,000200: 07,2106 52141 DXCH MPAC
007548,000201: 07,2107 31445 CA ADIAZ # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
007549,000202: 07,2110 02127 TC GCOMPSUB # -(ADIAZ)(PIPAZ) (GYRO PULSES) X 2(+14)
007550,000203:
007551,000204: 07,2111 31442 CA NBDZ # (GYRO PULSES)/(CS) X 2(-5)
007552,000205: 07,2112 02156 TC DRIFSTUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2(+14)
007553,000206:
007554,000207: 07,2113 11457 CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
007555,000208: 07,2114 12116 TCF +2 # YES
007556,000209: 07,2115 12124 TCF IRIG1 # NO
007557,000210:
007558,000211: 07,2116 00004 INHINT
007559,000212: 07,2117 34514 CAF PRIO35 # SEND OUT GYRO TORQUING COMMANDS
007560,000213: 07,2120 04344 TC NOVAC
007561,000214: 07,2121 02211 16003 2CADR 1/GYRO
007562,000215: 07,2123 00003 RELINT
007563,000216: 07,2124 30147 IRIG1 CA MODE # SET EBANK FOR RETURN
007564,000217: 07,2125 54003 TS EBANK
007565,000218: 07,2126 14100 TCF SWRETURN
007566,000219:
007567,000220:
007568,000221:
007569,000222:
007570,000223:
007571,000224:
007572,000225: 07,2127 56140 GCOMPSUB XCH MPAC # ADIA OR ADSRA COEFFICIENT ARRIVES IN A
007573,000226: 07,2130 00006 EXTEND # C(MPAC) = (PIPA PULSES) X 2(+14)
007574,000227: 07,2131 70140 MP MPAC # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
007575,000228: 07,2132 52107 DXCH VBUF # NOW = (GYRO PULSES) X 2(+8) *
007576,000229:
007577,000230: 07,2133 30141 CA MPAC +1 # MINOR PART PIPA PULSES
007578,000231: 07,2134 00006 EXTEND
007579,000232: 07,2135 70140 MP MPAC # ADIA OR ADSRA
007580,000233: 07,2136 54001 TS L
007581,000234: 07,2137 37675 CAF ZERO
007582,000235: 07,2140 20107 DAS VBUF # NOW = (GYRO PULSES) X 2(+8) *
007583,000236:
007584,000237: 07,2141 30106 CA VBUF # PARTIAL RESULT - MAJOR
007585,000238: 07,2142 00006 EXTEND
007586,000239: 07,2143 77661 MP BIT9 # SCALE 2(+6) SHIFT RIGHT 6 *
007587,000240: 07,2144 50114 INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
007588,000241: 07,2145 21452 DAS GCOMP # HI(ADIA)(PIPAI) OR HI(ADSRA)(PIPAI)
007589,000242:
007590,000243: 07,2146 30107 CA VBUF +1 # PARTIAL RESULT - MINOR
007591,000244: 07,2147 00006 EXTEND
007592,000245: 07,2150 77661 MP BIT9 # SCALE 2(+6) SHIFT RIGHT 6 *
007593,000246: 07,2151 54001 TS L
007594,000247: 07,2152 37675 CAF ZERO
007595,000248: 07,2153 50114 INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
007596,000249: 07,2154 21452 DAS GCOMP # (ADIA)(PIPAI) OR (ADSRA)(PIPAI)
007597,000250:
007598,000251: 07,2155 00002 TC Q
007599,000252:
007600,000253: 07,2156 00006 DRIFSTUB EXTEND
007601,000254: 07,2157 22115 QXCH BUF +1
007602,000255:
007603,000256: 07,2160 00006 EXTEND # C(A) = NBD (GYRO PULSES)/(CS) X 2(-5)
007604,000257: 07,2161 71110 MP 1/PIPADT # (CS) X 2(+8) NOW (GYRO PULSES) X 2(+3)
007605,000258: 07,2162 22141 LXCH MPAC +1 # SAVE FOR FRACTIONAL COMPENSATION
007606,000259: 07,2163 00006 EXTEND
007607,000260: 07,2164 77666 MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
007608,000261: 07,2165 50114 INDEX BUF
007609,000262: 07,2166 21452 DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
007610,000263:
007611,000264: 07,2167 30141 CA MPAC +1 # NOW MINOR PART
007612,000265: 07,2170 00006 EXTEND
007613,000266: 07,2171 77666 MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
007614,000267: 07,2172 54001 TS L
007615,000268: 07,2173 37675 CAF ZERO
007616,000269: 07,2174 50114 INDEX BUF # ADD IN FRACTIONAL COMPENSATION
007617,000270: 07,2175 21452 DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
007618,000271:
007619,000272: 07,2176 37670 DRFTSUB2 CAF TWO # PIPAX, PIPAY, PIPAZ
007620,000273: 07,2177 60114 AD BUF
007621,000274: 07,2200 56114 XCH BUF
007622,000275: 07,2201 50000 INDEX A
007623,000276: 07,2202 11451 CCS GCOMP # ARE GYRO COMMANDS 1 PULSE OR GREATER
007624,000277: 07,2203 12205 TCF +2 # YES
007625,000278: 07,2204 00115 TC BUF +1 # NO
007626,000279:
007627,000280: 07,2205 72255 MASK COMPCHK # DEC -1
007628,000281: 07,2206 10000 CCS A # ARE GYRO COMMANDS GREATER THAN 2 PULSES
007629,000282: 07,2207 55457 TS GCOMPSW # YES - SET GCOMPSW POSITIVE
007630,000283: 07,2210 00115 TC BUF +1 # NO
007631,000284:
007632,000285: 07,2211 37667 1/GYRO CAF FOUR # PIPAZ, PIPAY, PIPAX
007633,000286: 07,2212 54114 TS BUF
007634,000287:
007635,000288: 07,2213 50114 INDEX BUF # SCALE GYRO COMMANDS FOR IMUPULSE
007636,000289: 07,2214 31452 CA GCOMP +1 # FRACTIONAL PULSES
007637,000290: 07,2215 00006 EXTEND
007638,000291: 07,2216 77662 MP BIT8 # SHIFT RIGHT 7
007639,000292: 07,2217 50114 INDEX BUF
007640,000293: 07,2220 55452 TS GCOMP +1 # FRACTIONAL PULSES SCALED
007641,000294:
007642,000295: 07,2221 37675 CAF ZERO # SET GCOMP = 0 FOR DAS INSTRUCTION
007643,000296: 07,2222 50114 INDEX BUF
007644,000297: 07,2223 57451 XCH GCOMP # GYRO PULSES
007645,000298: 07,2224 00006 EXTEND
007646,000299: 07,2225 77662 MP BIT8 # SHIFT RIGHT 7
007647,000300: 07,2226 50114 INDEX BUF
007648,000301: 07,2227 21452 DAS GCOMP # ADD THESE TO FRACTIONAL PULSES ABOVE
007649,000302:
007650,000303: 07,2230 10114 CCS BUF # PIPAZ, PIPAY, PIPAX
007651,000304: 07,2231 67677 AD NEG1
007652,000305: 07,2232 12212 TCF 1/GYRO +1
007653,000306: 07,2233 01451 LGCOMP ECADR GCOMP # LESS THAN ZERO IMPOSSIBLE
007654,000307:
007655,000308: 07,2234 32233 CAF LGCOMP
007656,000309: 07,2235 04065 TC BANKCALL
007657,000310: 07,2236 26317 CADR IMUPULSE # CALL GYRO TORQUING ROUTINE
007658,000311: 07,2237 04065 TC BANKCALL
007659,000312: 07,2240 26716 CADR IMUSTALL # WAIT FOR PULSES TO GET OUT
007660,000313: 07,2241 14422 TCF ENDOFJOB # TEMPORARY
007661,000314:
007662,000315: 07,2242 37667 GCOMP1 CAF FOUR # PIPAZ, PIPAY, PIPAX
007663,000316: 07,2243 54114 TS BUF
007664,000317:
007665,000318: 07,2244 50114 INDEX BUF # RESCALE
007666,000319: 07,2245 31452 CA GCOMP +1
007667,000320: 07,2246 00006 EXTEND
007668,000321: 07,2247 77662 MP BIT8 # SHIFT MINOR PART LEFT 7 - MAJOR PART = 0
007669,000322: 07,2250 50114 INDEX BUF
007670,000323: 07,2251 23452 LXCH GCOMP +1 # BITS 8-14 OF MINOR PART WERE = 0
007671,000324:
007672,000325: 07,2252 10114 CCS BUF # PIPAZ, PIPAY, PIPAX
007673,000326: 07,2253 67677 AD NEG1
007674,000327: 07,2254 12243 TCF GCOMP1 +1
007675,000328: 07,2255 77776 COMPCHK DEC -1 B-14 # LESS THAN ZERO IMPOSSIBLE
007676,000329: 07,2256 14422 TCF ENDOFJOB
007677,000330:
007678,000331: 07,2257 30025 NBDONLY CA TIME1 # (CS) X 2(+14)
007679,000332: 07,2260 57110 XCH 1/PIPADT # PREVIOUS TIME
007680,000333: 07,2261 40000 COM
007681,000334: 07,2262 61110 AD 1/PIPADT
007682,000335: 07,2263 10000 NBD2 CCS A # CALCULATE ELAPSED TIME
007683,000336: 07,2264 67671 AD ONE # NO TIME1 OVERFLOW
007684,000337: 07,2265 12272 TCF NBD3 # RESTORE TIME DIFFERENCE AND JUMP
007685,000338: 07,2266 12270 TCF +2 # TIME1 OVERFLOW
007686,000339: 07,2267 14422 TCF ENDOFJOB # IF ELAPSED TIME = 0 (DIFFERENCE = -0)
007687,000340:
007688,000341: 07,2270 40000 COM # CALCULATE ABSOLUTE DIFFERENCE
007689,000342: 07,2271 67651 AD POSMAX
007690,000343:
007691,000344: 07,2272 00006 NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14)
007692,000345: 07,2273 77660 MP BIT10 # SHIFT RIGHT 5
007693,000346: 07,2274 52107 DXCH VBUF
007694,000347: 07,2275 00006 EXTEND
007695,000348: 07,2276 30107 DCA VBUF
007696,000349: 07,2277 52141 DXCH MPAC # DELTAT NOW SCALED (CS) X 2(+19)
007697,000350:
007698,000351: 07,2300 37675 CAF ZERO
007699,000352: 07,2301 55457 TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS
007700,000353: 07,2302 54114 TS BUF # PIPAX, PIPAY, PIPAZ
007701,000354:
007702,000355: 07,2303 41440 CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
007703,000356: 07,2304 02322 TC FBIASSUB # -(NBDX)(DELTAT) (GYRO PULSES) X 2(+14)
007704,000357:
007705,000358: 07,2305 00006 EXTEND
007706,000359: 07,2306 40107 DCS VBUF
007707,000360: 07,2307 52141 DXCH MPAC # DELTAT SCALED (CS) X 2(+19)
007708,000361: 07,2310 31441 CA NBDY # (GYRO PULSES)/(CS) X 2(-5)
007709,000362: 07,2311 02322 TC FBIASSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
007710,000363:
007711,000364: 07,2312 00006 EXTEND
007712,000365: 07,2313 40107 DCS VBUF
007713,000366: 07,2314 52141 DXCH MPAC # DELTAT SCALED (CS) X 2(+19)
007714,000367: 07,2315 41442 CS NBDZ # (GYRO PULSES)/(CS) X 2(-5)
007715,000368: 07,2316 02322 TC FBIASSUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2 (+14)
007716,000369:
007717,000370: 07,2317 11457 CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
007718,000371: 07,2320 12211 TCF 1/GYRO # YES
007719,000372: 07,2321 14422 TCF ENDOFJOB # NO
007720,000373:
007721,000374: 07,2322 56002 FBIASSUB XCH Q
007722,000375: 07,2323 54115 TS BUF +1
007723,000376:
007724,000377: 07,2324 30002 CA Q # NBD SCALED (GYRO PULSES)/(CS) X 2(-5)
007725,000378: 07,2325 00006 EXTEND
007726,000379: 07,2326 70140 MP MPAC # DELTAT SCALED (CS) X 2(+19)
007727,000380: 07,2327 50114 INDEX BUF
007728,000381: 07,2330 21452 DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
007729,000382:
007730,000383: 07,2331 30002 CA Q # NOW FRACTIONAL PART
007731,000384: 07,2332 00006 EXTEND
007732,000385: 07,2333 70141 MP MPAC +1
007733,000386: 07,2334 54001 TS L
007734,000387: 07,2335 37675 CAF ZERO
007735,000388: 07,2336 50114 INDEX BUF
007736,000389: 07,2337 21452 DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
007737,000390:
007738,000391: 07,2340 12176 TCF DRFTSUB2 # CHECK MAGNITUDE OF COMPENSATION
007739,000392:
007740,000393:
007741,000394:
007742,000395:
007743,000396:
007744,000397: 07,2341 57110 LASTBIAS XCH 1/PIPADT # NEW 1/PIPADT VALUE SCALED (CS) X 2(+14)
007745,000398: 07,2342 40000 COM
007746,000399: 07,2343 60140 AD MPAC # C(TIME1) AT PIPAI = 0 SCALED 2(+14)
007747,000400: 07,2344 12263 TCF NBD2
007748,000401:
007749,000402:
007750,000403:
007751,000404:
007752,000405:
007753,000406: 07,2345 32233 GCOMPZER CAF LGCOMP # ROUTINE TO ZERO GCOMP BEFORE FIRST
007754,000407: 07,2346 56003 XCH EBANK # CALL TO 1/PIPA
007755,000408: 07,2347 54147 TS MODE
007756,000409:
007757,000410: 07,2350 37675 CAF ZERO
007758,000411: 07,2351 55451 TS GCOMP
007759,000412: 07,2352 55452 TS GCOMP +1
007760,000413: 07,2353 55453 TS GCOMP +2
007761,000414: 07,2354 55454 TS GCOMP +3
007762,000415: 07,2355 55455 TS GCOMP +4
007763,000416: 07,2356 55456 TS GCOMP +5
007764,000417:
007765,000418: 07,2357 30147 CA MODE
007766,000419: 07,2360 54003 TS EBANK
007767,000420: 07,2361 14100 TCF SWRETURN # RETURN TO CALLER
End of include-file IMU_COMPENSATION_PACKAGE.agc. Parent file is MAIN.agc