Source Code

   YAYUL: ASSEMBLE REVISION 5 OF PROGRAM BOREALIS       BY MSTEWART MAR. 27,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.

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

End of include-file IMU_COMPENSATION_PACKAGE.agc.  Parent file is MAIN.agc