Source Code

   YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS       BY MSTEWART JUN. 28,2017
This 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