Source Code

These source-code files were transcribed from scans made from Don Eyles's personal copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston facility, and the scanning was sponsored by Mike Stewart. The code was transcribed from these scans by a team of volunteers who are referenced in the program comments. Comments from the original source code are in ALL-CAPS, whereas comments added later in transcription are in Mixed-Case. In some cases, where similar code blocks exist in previously-transcribed AGC programs (primarily Luminary 99, from Apollo 11) those code blocks were used as a starting point and then corrected to agree with the BURST120 scans. The full scans are available at the Virtual AGC project's collection at archive.org, while more-convenient reduced-size (but reduced-quality) images are available at the main Virtual AGC website. Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. Notations on the program listing read, in part:

	YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 
	BY NASA 2021106-031 DEC 7, 1967

	THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED 
	FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE 
	UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.
Note that the date is the date of the printout, not the date of the program revision.

036798,000002:                                                                                                  ## Copyright:   Public domain.
036799,000003:                                                                                                  ## Filename:    IMU_COMPENSATION_PACKAGE.agc
036800,000004:                                                                                                  ## Purpose:     A module for revision 0 of BURST120 (Sunburst). It 
036801,000005:                                                                                                  ##              is part of the source code for the Lunar Module's
036802,000006:                                                                                                  ##              (LM) Apollo Guidance Computer (AGC) for Apollo 5.
036803,000007:                                                                                                  ## Assembler:   yaYUL
036804,000008:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
036805,000009:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
036806,000010:                                                                                                  ## Mod history: 2016-09-30 RSB  Created draft version.
036807,000011:                                                                                                  ##              2016-10-30 RSB  Transcribed, primarily by adapting
036808,000012:                                                                                                  ##                              the Aurora 12 version of the file.
036809,000013:                                                                                                  ##              2016-11-01 RSB  Typos.
036810,000014:                                                                                                  ##              2016-11-02 RSB  More typos.
036811,000015:                                                                                                  ##              2016-12-06 RSB  Comment-proofing via octopus/ProoferComments;
036812,000016:                                                                                                  ##                              changes were made.
036813,000017: 

Page 859

036815,000019: 12,3222                                           BANK     12                                    
036816,000020: 12,3222  E3,1444                                  EBANK=   NBDX                                  
036817,000021: 
036818,000022:                                                                                                  #  PROGRAM DESCRIPTION- IMU COMPENSATION (LEM)                             DATE- 1 DEC 66
036819,000023:                                                                                                  #  MOD NO- 0                                                               LOG SECTION- IMU COMPENSATION PACKAGE
036820,000024:                                                                                                  #  MOD BY- GILBERT                                                         ASSEMBLY- SUNBURST REVISION 48 
036821,000025: 
036822,000026:                                                                                                  #  FUNCTIONAL DESCRIPTION
036823,000027:                                                                                                  #        THE IMU COMPENSATION PACKAGE IS DESIGNED TO COMPENSATE FOR PIPA BIAS AND SCALE FACTOR ERROR AND AT THE
036824,000028:                                                                                                  #  SAME TIME ACCUMULATE GYRO TORQUING COMMANDS NECESSARY TO COMPENSATE FOR THE ASSOCIATED BIAS AND ACCELERATION-
036825,000029:                                                                                                  #  CAUSED GYRO DRIFTS. 1/PIPA MUST BE CALLED AT LEAST EVERY 2.55 SECONDS DUE TO SCALING CONSIDERATIONS.
036826,000030:                                                                                                  #  SPECIFICALLY, THE CORRECTION IS
036827,000031: 
036828,000032:                                                                                                  #        PIPA  = (1 + SCALE FACTOR ERROR)PIPA  -  (BIAS)(DELTAT)
036829,000033:                                                                                                  #            C                               I
036830,000034: 
036831,000035:                                                                                                  #  WHERE PIPA  IS THE COMPENSATED DATA OBTAINED FROM THE SAMPLED DATA PIPA
036832,000036:                                                                                                  #            C                                                            I
036833,000037: 
036834,000038:                                                                                                  #  THE COMPENSATED DATA IS THEN USED TO COMPUTE THE IRIG TORQUING NECESSARY TO CANCEL THE NBD, ADIA, AND ADSRA
036835,000039:                                                                                                  #  GYRO COEFFICIENTS.
036836,000040:                                                                                                  #  SPECIFICALLY, THE COMPUTATIONS ARE
036837,000041: 
036838,000042:                                                                                                  #        XIRIG     -(ADIAX)(PIPAX ) + (ADSRAX)(PIPAY ) - (NBDX)(DELTAT)  
036839,000043:                                                                                                  #                                C                  C
036840,000044:                                                                                                  #        YIRIG     -(ADIAY)(PIPAY ) + (ADSRAY)(PIPAZ ) - (NBDY)(DELTAT)
036841,000045:                                                                                                  #                                C                  C  
036842,000046:                                                                                                  #        ZIRIG     -(ADIAZ)(PIPAZ ) - (ADSRAZ)(PIPAY ) + (NBDZ)(DELTAT)
036843,000047:                                                                                                  #                                C                  C
036844,000048: 
036845,000049:                                                                                                  #  THIS COMPENSATION IS SUMMED INTO THE GCOMP REGISTERS AND WHEN THE MAGNITUDE OF ANY IRIG COMMAND EXCEEDS 2
036846,000050:                                                                                                  #  PULSES, THE COMMANDS ARE SENT TO THE GYROS.
036847,000051: 
036848,000052:                                                                                                  #  DURING FREE-FALL PHASES OF A FLIGHT NBDX, NBDY, AND NBDZ ARE THE ONLY RELEVANT COEFFICIENTS. THESE BIAS TERMS
036849,000053:                                                                                                  #  WILL BE INTEGRATED BY ROUTINE NBDONLY APPROXIMATELY EVERY 81.93 SECONDS FOLLOWING AN EXECUTIVE CALL BY THE DUMMY
036850,000054:                                                                                                  #  TASK OF THE WAITLIST PROGRAM. NBDONLY IS ENABLED WHEN BIT 15 OF FLAGWRD2 IS SET TO INDICATE FREE-FALL. DURING
036851,000055:                                                                                                  #  THIS TIME 1/PIPA IS NOT CALLED.
036852,000056: 
036853,000057:                                                                                                  #  LASTBIAS IS CALLED VIA EXECUTIVE WHEN MAKING THE TRANSITION FROM FREE-FALL TO A PIPA READING MODE. THE NBD TERMS
036854,000058:                                                                                                  #  ARE COMPENSATED FOR FROM THE LAST NBDONLY CALL UP TO PIPA ZEROING. PREREAD WILL THEN ENABLE 1/PIPA AT ITS
036855,000059:                                                                                                  #  REGULAR INTERVAL. THE DRIFT FLAG MUST BE DOWN JUST PRIOR TO LASTBIAS. GYROCOMPASS NEVER CALLS LASTBIAS.
036856,000060: 
036857,000061:                                                                                                  #  SCALING CONSIDERATIONS
036858,000062:                                                                                                  #                             UNITS              MAX. VALUE     INTERNAL UNITS AND SCALING
036859,000063: 
036860,000064:                                                                                                  #         PIPA BIAS           (CM)/(SEC)(SEC)    3.125          (PIPA PULSES)/(CS) X 2(-5) 
036861,000065:                                                                                                  #         PIPA SCALE FACTOR   P.P.M.             1953.125       (PPM) X 2(-9)
036862,000066:                                                                                                  #         NBD                 MERU               128.74604      (GYRO PULSES)/(CS) X 2(-5) 
036863,000067:                                                                                                  #         ADIA                (MERU)/(G)         630.36633      (GYRO PULSES)/(PIPA PULSE) X 2(-6)
036864,000068:                                                                                                  #         ADSRA               (MERU)/(G)         630.36633      (GYRO PULSES)/(PIPA PULSE) X 2(-6)
036865,000069: 

Page 860

036867,000071:                                                                                                  #  CONVERSION TABLE
036868,000072:                                                                                                  #        1 PIPA PULSE = 1.00 (CM)/(SEC)               1 ERU = 7.29209817 X 10(-5) (RAD)/(SEC)
036869,000073:                                                                                                  #        1 ERU = 15.04104488 (ARCSEC)/(SEC)           1 (CM)/(SEC)(SEC) = .01 (PIPA PULSES)/(CS)
036870,000074:                                                                                                  #        1 GYRO PULSE = .61798096 ARCSEC              1 MERU = .00024272592 (GYRO PULSES)/(CS)
036871,000075:                                                                                                  #        1 G = 979.24 (CM)/(SEC)(SEC)  (AMR)          1 (MERU)/(G) = .000024787174 (GYRO PULSES)/(PIPA PULSE)
036872,000076: 
036873,000077:                                                                                                  #  REFERENCES
036874,000078:                                                                                                  #        AGC PROGRAMMING MEMO NO. 12, I.S.S. MEMO NO. 247, I.S.S. MEMO NO. 328, I.S.S. MEMO NO. 339
036875,000079: 
036876,000080:                                                                                                  #  CALLING SEQUENCE 
036877,000081:                                                                                                  #        L      TC     BANKCALL
036878,000082:                                                                                                  #        L+1    CADR   1/PIPA
036879,000083:                                                                                                  #        L+2                       RETURNS HERE
036880,000084: 
036881,000085:                                                                                                  #  NORMAL EXIT MODES
036882,000086:                                                                                                  #        AT L+2 OF CALLING SEQUENCE
036883,000087: 
036884,000088:                                                                                                  #  ALARM OR ABORT MODES
036885,000089:                                                                                                  #        ENDOFJOB
036886,000090: 
036887,000091:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED (CONSECUTIVE LOCATIONS)
036888,000092:                                                                                                  #        PBIASX    PIPAX BIAS
036889,000093:                                                                                                  #        PIPASCFX  PIPAX SCALE FACTOR ERROR
036890,000094:                                                                                                  #        PBIASY    PIPAY BIAS
036891,000095:                                                                                                  #        PIPASCFY  PIPAY SCALE FACTOR ERROR
036892,000096:                                                                                                  #        PBIASZ    PIPAZ BIAS
036893,000097:                                                                                                  #        PIPASCFZ  PIPAZ SCALE FACTOR ERROR
036894,000098:                                                                                                  #        NBDX      X IRIG BIAS DRIFT
036895,000099:                                                                                                  #        NBDY      Y IRIG BIAS DRIFT
036896,000100:                                                                                                  #        NDBZ      Z IRIG BIAS DRIFT
036897,000101:                                                                                                  #        ADIAX     IRIG ACCELERATION SENSITIVE DRIFT ALONG THE X INPUT AXIS  
036898,000102:                                                                                                  #        ADIAY     IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Y INPUT AXIS 
036899,000103:                                                                                                  #        ADIAZ     IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Z INPUT AXIS
036900,000104:                                                                                                  #        ADSRAX    IRIG ACCELERATION SENSITIVE DRIFT ALONG THE X SPIN REFERENCE AXIS      
036901,000105:                                                                                                  #        ADSRAY    IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Y SPIN REFERENCE AXIS  
036902,000106:                                                                                                  #        ADSRAZ    IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Z SPIN REFERENCE AXIS
036903,000107:                                                                                                  #        GCOMP     GYRO COMPENSATION PULSES (SET = ZERO FOR 1ST PASS)
036904,000108: 
036905,000109:                                                                                                  #  INPUT
036906,000110:                                                                                                  #        1/PIPADT - DELTA TIME SCALED AT (CS) X 2(+8)
036907,000111:                                                                                                  #        DELVX, DELVY, DELVZ - PIPA READINGS IN THE MAJOR PARTS - MINOR PARTS IRRELEVANT 
036908,000112: 
036909,000113:                                                                                                  #  OUTPUT
036910,000114:                                                                                                  #        DELVX, DELVY, DELVZ - PIPA COUNTS SCALED 2(+14) COMPENSATED FOR PIPA BIAS AND SCALE FACTOR ERROR
036911,000115:                                                                                                  #        GCOMP - 3 DP LOCATIONS CONTAINING GYRO PULSES TO COMPENSATE FOR NBD, ADIA, AND ADSRA COEFFICIENTS
036912,000116: 
036913,000117:                                                                                                  #  DEBRIS
036914,000118:                                                                                                  #        CENTRALS - A,L,Q
036915,000119:                                                                                                  #        OTHER - BUF - BUF +2, VBUF - VBUF +2, GCOMPSW
036916,000120: 

Page 861

036918,000122: 12,3222           33455        1/PIPA             CAF      LGCOMP                                #  SAVE EBANK OF CALLING PROGRAM
036919,000123: 12,3223           56003                           XCH      EBANK                                 
036920,000124: 12,3224           54153                           TS       MODE                                  
036921,000125: 
036922,000126: 12,3225           11463                           CCS      GCOMPSW                               #  BYPASS IF GCOMPSW NEGATIVE
036923,000127: 12,3226           13231                           TCF      +3                                    
036924,000128: 12,3227           13231                           TCF      +2                                    
036925,000129: 12,3230           13346                           TCF      IRIG1                                 #  RETURN
036926,000130: 
036927,000131: 12,3231           37761        1/PIPA1            CAF      FOUR                                  #  PIPAZ, PIPAY, PIPAX
036928,000132: 12,3232           54122                           TS       BUF        +2                         
036929,000133: 
036930,000134: 12,3233           50122                           INDEX    BUF        +2                         
036931,000135: 12,3234           31437                           CA       PIPASCF                               #  (P.P.M.) X 2(-9)
036932,000136: 12,3235           00006                           EXTEND                                         
036933,000137: 12,3236           50122                           INDEX    BUF        +2                         
036934,000138: 12,3237           70403                           MP       DELVX                                 #  (PP) X 2(+14) NOW (PIPA PULSES) X 2(+5)
036935,000139: 12,3240           54002                           TS       Q                                     #  SAVE MAJOR PART
036936,000140: 
036937,000141: 12,3241           30001                           CA       L                                     #  MINOR PART
036938,000142: 12,3242           00006                           EXTEND                                         
036939,000143: 12,3243           77756                           MP       BIT6                                  #  SCALE 2(+9)     SHIFT RIGHT 9
036940,000144: 12,3244           50122                           INDEX    BUF        +2                         
036941,000145: 12,3245           54404                           TS       DELVX      +1                         #  FRACTIONAL PIPA PULSES SCALED 2(+14)
036942,000146: 
036943,000147: 12,3246           30002                           CA       Q                                     #  MAJOR PART
036944,000148: 12,3247           00006                           EXTEND                                         
036945,000149: 12,3250           77756                           MP       BIT6                                  #  SCALE 2(+9)     SHIFT RIGHT 9
036946,000150: 12,3251           50122                           INDEX    BUF        +2                         
036947,000151: 12,3252           20404                           DAS      DELVX                                 #  (PIPAI) + (PIPAI)(SFE)
036948,000152: 
036949,000153: 12,3253           50122                           INDEX    BUF        +2                         
036950,000154: 12,3254           41436                           CS       PIPABIAS                              #  (PIPA PULSES)/(CS) X 2(-5)             *
036951,000155: 12,3255           00006                           EXTEND                                         
036952,000156: 12,3256           70765                           MP       1/PIPADT                              #  (CS) X 2(+8)  NOW (PIPA PULSES) X 2(+3)*
036953,000157: 12,3257           00006                           EXTEND                                         
036954,000158: 12,3260           77760                           MP       BIT4                                  #  SCALE 2(+11)  SHIFT RIGHT 11           *
036955,000159: 12,3261           50122                           INDEX    BUF        +2                         
036956,000160: 12,3262           20404                           DAS      DELVX                                 #  (PIPAI) + (PIPAI)(SFE) - (BIAS)(DELTAT)
036957,000161: 
036958,000162: 12,3263           10122                           CCS      BUF        +2                         #  PIPAZ, PIPAY, PIPAX
036959,000163: 12,3264           67771                           AD       NEG1                                  
036960,000164: 12,3265           13232                           TCF      1/PIPA1    +1                         
036961,000165: 12,3266           13267                           NOOP                                           #  LESS THAN ZERO IMPOSSIBLE
036962,000166: 

Page 862

036964,000168: 12,3267           55463        IRIGCOMP           TS       GCOMPSW                               #  INDICATE COMMANDS 2 PULSES OR LESS
036965,000169: 12,3270           54120                           TS       BUF                                   #  INDEX COUNTER - IRIGX, IRIGY, IRIGZ
036966,000170: 
036967,000171: 12,3271           00006        IRIGX              EXTEND                                         
036968,000172: 12,3272           40404                           DCS      DELVX                                 #  (PIPA PULSES) X 2(+14)
036969,000173: 12,3273           52145                           DXCH     MPAC                                  
036970,000174: 12,3274           31447                           CA       ADIAX                                 #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
036971,000175: 12,3275           03351                           TC       GCOMPSUB                              #  -(ADIAX)(PIPAX)   (GYRO PULSES) X 2(+14)
036972,000176: 
036973,000177: 12,3276           00006                           EXTEND                                         
036974,000178: 12,3277           40406                           DCS      DELVY                                 #  (PIPA PULSES) X 2(+14)
036975,000179: 12,3300           52145                           DXCH     MPAC                                  
036976,000180: 12,3301           41452                           CS       ADSRAX                                #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
036977,000181: 12,3302           03351                           TC       GCOMPSUB                              #  +(ADSRAX)(PIPAY)  (GYRO PULSES) X 2(+14)
036978,000182: 
036979,000183: 12,3303           41444                           CS       NBDX                                  #  (GYRO PULSES)/(CS) X 2(-5)
036980,000184: 12,3304           03400                           TC       DRIFSTUB                              #  -(NBDX)(DELTAT)   (GYRO PULSES) X 2(+14)
036981,000185: 
036982,000186: 12,3305           00006        IRIGY              EXTEND                                         
036983,000187: 12,3306           40406                           DCS      DELVY                                 #  (PIPA PULSES) X 2(+14)
036984,000188: 12,3307           52145                           DXCH     MPAC                                  
036985,000189: 12,3310           31450                           CA       ADIAY                                 #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
036986,000190: 12,3311           03351                           TC       GCOMPSUB                              #  -(ADIAY)(PIPAY)   (GYRO PULSES) X 2(+14)
036987,000191: 
036988,000192: 12,3312           00006                           EXTEND                                         
036989,000193: 12,3313           40410                           DCS      DELVZ                                 #  (PIPA PULSES) X 2(+14)
036990,000194: 12,3314           52145                           DXCH     MPAC                                  
036991,000195: 12,3315           41453                           CS       ADSRAY                                #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
036992,000196: 12,3316           03351                           TC       GCOMPSUB                              #  +(ADSRAY)(PIPAZ)  (GYRO PULSES) X 2(+14)
036993,000197: 
036994,000198: 12,3317           41445                           CS       NBDY                                  #  (GYRO PULSES)/(CS) X 2(-5)
036995,000199: 12,3320           03400                           TC       DRIFSTUB                              #  -(NBDY)(DELTAT)   (GYRO PULSES) X 2(+14)
036996,000200: 
036997,000201: 12,3321           00006        IRIGZ              EXTEND                                         
036998,000202: 12,3322           40406                           DCS      DELVY                                 #  (PIPA PULSES) X 2(+14)
036999,000203: 12,3323           52145                           DXCH     MPAC                                  
037000,000204: 12,3324           31454                           CA       ADSRAZ                                #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
037001,000205: 12,3325           03351                           TC       GCOMPSUB                              #  -(ADSRAZ)(PIPAY)  (GYRO PULSES) X 2(+14)
037002,000206: 
037003,000207: 12,3326           00006                           EXTEND                                         
037004,000208: 12,3327           40410                           DCS      DELVZ                                 #  (PIPA PULSES) X 2(+14)
037005,000209: 12,3330           52145                           DXCH     MPAC                                  
037006,000210: 12,3331           31451                           CA       ADIAZ                                 #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
037007,000211: 12,3332           03351                           TC       GCOMPSUB                              #  -(ADIAZ)(PIPAZ)   (GYRO PULSES) X 2(+14)
037008,000212: 
037009,000213: 12,3333           31446                           CA       NBDZ                                  #  (GYRO PULSES)/(CS) X 2(-5)
037010,000214: 12,3334           03400                           TC       DRIFSTUB                              #  +(NBDZ)(DELTAT)   (GYRO PULSES) X 2(+14)
037011,000215: 

Page 863

037013,000217: 12,3335           11463                           CCS      GCOMPSW                               #  ARE GYRO COMMANDS GREATER THAN 2 PULSES
037014,000218: 12,3336           13340                           TCF      +2                                    #  YES
037015,000219: 12,3337           13346                           TCF      IRIG1                                 #  NO
037016,000220: 
037017,000221: 12,3340           00004                           INHINT                                         
037018,000222: 12,3341           35656                           CAF      PRIO35                                #  SEND OUT GYRO TORQUING COMMANDS
037019,000223: 12,3342           05505                           TC       NOVAC                                 
037020,000224: 12,3343  E3,1444                                  EBANK=   NBDX                                  
037021,000225: 12,3343           03433 24063                     2CADR    1/GYRO                                
037022,000226: 
037023,000227: 12,3345           00003                           RELINT                                         
037024,000228: 12,3346           30153        IRIG1              CA       MODE                                  #  SET EBANK FOR RETURN
037025,000229: 12,3347           54003                           TS       EBANK                                 
037026,000230: 12,3350           15221                           TCF      SWRETURN                              
037027,000231: 
037028,000232: 
037029,000233: 
037030,000234: 12,3351           56144        GCOMPSUB           XCH      MPAC                                  #  ADIA OR ADSRA COEFFICIENT ARRIVES IN A 
037031,000235: 12,3352           00006                           EXTEND                                         #  C(MPAC) = (PIPA PULSES) X 2(+14)  
037032,000236: 12,3353           70144                           MP       MPAC                                  #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
037033,000237: 12,3354           52113                           DXCH     VBUF                                  #  NOW = (GYRO PULSES) X 2(+8)            *
037034,000238: 
037035,000239: 12,3355           30145                           CA       MPAC       +1                         #  MINOR PART PIPA PULSES
037036,000240: 12,3356           00006                           EXTEND                                         
037037,000241: 12,3357           70144                           MP       MPAC                                  #  ADIA OR ADSRA
037038,000242: 12,3360           54001                           TS       L                                     
037039,000243: 12,3361           37767                           CAF      ZERO                                  
037040,000244: 12,3362           20113                           DAS      VBUF                                  #  NOW = (GYRO PULSES) X 2(+8)            *
037041,000245: 
037042,000246: 12,3363           30112                           CA       VBUF                                  #  PARTIAL RESULT - MAJOR
037043,000247: 12,3364           00006                           EXTEND                                         
037044,000248: 12,3365           77753                           MP       BIT9                                  #  SCALE 2(+6)      SHIFT RIGHT 6         *
037045,000249: 12,3366           50120                           INDEX    BUF                                   #  RESULT = (GYRO PULSES) X 2(+14)
037046,000250: 12,3367           21456                           DAS      GCOMP                                 #  HI(ADIA)(PIPAI)  OR  HI(ADSRA)(PIPAI)
037047,000251: 
037048,000252: 12,3370           30113                           CA       VBUF       +1                         #  PARTIAL RESULT - MINOR
037049,000253: 12,3371           00006                           EXTEND                                         
037050,000254: 12,3372           77753                           MP       BIT9                                  #  SCALE 2(+6)      SHIFT RIGHT 6         *
037051,000255: 12,3373           54001                           TS       L                                     
037052,000256: 12,3374           37767                           CAF      ZERO                                  
037053,000257: 12,3375           50120                           INDEX    BUF                                   #  RESULT = (GYRO PULSES) X 2(+14)
037054,000258: 12,3376           21456                           DAS      GCOMP                                 #  (ADIA)(PIPAI)  OR  (ADSRA)(PIPAI)
037055,000259: 
037056,000260: 12,3377           00002                           TC       Q                                     
037057,000261: 

Page 864

037059,000263: 12,3400           00006        DRIFSTUB           EXTEND                                         
037060,000264: 12,3401           22121                           QXCH     BUF        +1                         
037061,000265: 
037062,000266: 12,3402           00006                           EXTEND                                         #  C(A) = NBD    (GYRO PULSES)/(CS) X 2(-5)
037063,000267: 12,3403           70765                           MP       1/PIPADT                              #  (CS) X 2(+8)   NOW (GYRO PULSES) X 2(+3)
037064,000268: 12,3404           22145                           LXCH     MPAC       +1                         #  SAVE FOR FRACTIONAL COMPENSATION
037065,000269: 12,3405           00006                           EXTEND                                         
037066,000270: 12,3406           77760                           MP       BIT4                                  #  SCALE 2(+11)     SHIFT RIGHT 11
037067,000271: 12,3407           50120                           INDEX    BUF                                   
037068,000272: 12,3410           21456                           DAS      GCOMP                                 #  HI(NBD)(DELTAT)   (GYRO PULSES) X 2(+14)
037069,000273: 
037070,000274: 12,3411           30145                           CA       MPAC       +1                         #  NOW MINOR PART
037071,000275: 12,3412           00006                           EXTEND                                         
037072,000276: 12,3413           77760                           MP       BIT4                                  #  SCALE 2(+11)     SHIFT RIGHT 11
037073,000277: 12,3414           54001                           TS       L                                     
037074,000278: 12,3415           37767                           CAF      ZERO                                  
037075,000279: 12,3416           50120                           INDEX    BUF                                   #  ADD IN FRACTIONAL COMPENSATION
037076,000280: 12,3417           21456                           DAS      GCOMP                                 #  (NBD)(DELTAT)     (GYRO PULSES) X 2(+14)
037077,000281: 
037078,000282: 12,3420           37762        DRFTSUB2           CAF      TWO                                   #  PIPAX, PIPAY, PIPAZ
037079,000283: 12,3421           60120                           AD       BUF                                   
037080,000284: 12,3422           56120                           XCH      BUF                                   
037081,000285: 12,3423           50000                           INDEX    A                                     
037082,000286: 12,3424           11455                           CCS      GCOMP                                 #  ARE GYRO COMMANDS 1 PULSE OR GREATER
037083,000287: 12,3425           13427                           TCF      +2                                    #  YES
037084,000288: 12,3426           00121                           TC       BUF        +1                         #  NO
037085,000289: 
037086,000290: 12,3427           73477                           MASK     COMPCHK                               #  DEC -1
037087,000291: 12,3430           10000                           CCS      A                                     #  ARE GYRO COMMANDS GREATER THAN 2 PULSES
037088,000292: 12,3431           55463                           TS       GCOMPSW                               #  YES - SET GCOMPSW POSITIVE
037089,000293: 12,3432           00121                           TC       BUF        +1                         #  NO
037090,000294: 

Page 865

037092,000296: 12,3433           37761        1/GYRO             CAF      FOUR                                  #  PIPAZ, PIPAY, PIPAX
037093,000297: 12,3434           54120                           TS       BUF                                   
037094,000298: 
037095,000299: 12,3435           50120                           INDEX    BUF                                   #  SCALE GYRO COMMANDS FOR IMUPULSE
037096,000300: 12,3436           31456                           CA       GCOMP      +1                         #  FRACTIONAL PULSES
037097,000301: 12,3437           00006                           EXTEND                                         
037098,000302: 12,3440           77754                           MP       BIT8                                  #  SHIFT RIGHT 7
037099,000303: 12,3441           50120                           INDEX    BUF                                   
037100,000304: 12,3442           55456                           TS       GCOMP      +1                         #  FRACTIONAL PULSES SCALED
037101,000305: 
037102,000306: 12,3443           37767                           CAF      ZERO                                  #  SET GCOMP = 0 FOR DAS INSTRUCTION
037103,000307: 12,3444           50120                           INDEX    BUF                                   
037104,000308: 12,3445           57455                           XCH      GCOMP                                 #  GYRO PULSES
037105,000309: 12,3446           00006                           EXTEND                                         
037106,000310: 12,3447           77754                           MP       BIT8                                  #  SHIFT RIGHT 7
037107,000311: 12,3450           50120                           INDEX    BUF                                   
037108,000312: 12,3451           21456                           DAS      GCOMP                                 #  ADD THESE TO FRACTIONAL PULSES ABOVE
037109,000313: 
037110,000314: 12,3452           10120                           CCS      BUF                                   #  PIPAZ, PIPAY, PIPAX
037111,000315: 12,3453           67771                           AD       NEG1                                  
037112,000316: 12,3454           13434                           TCF      1/GYRO     +1                         
037113,000317: 12,3455           01455        LGCOMP             ECADR    GCOMP                                 #  LESS THAN ZERO IMPOSSIBLE
037114,000318: 
037115,000319: 12,3456           33455                           CAF      LGCOMP                                
037116,000320: 12,3457           05206                           TC       BANKCALL                              
037117,000321: 12,3460           26362                           CADR     IMUPULSE                              #  CALL GYRO TORQUING ROUTINE
037118,000322: 12,3461           05206                           TC       BANKCALL                              
037119,000323: 12,3462           26751                           CADR     IMUSTALL                              #  WAIT FOR PULSES TO GET OUT
037120,000324: 12,3463           15567                           TCF      ENDOFJOB                              #  TEMPORARY
037121,000325: 
037122,000326: 12,3464           37761        GCOMP1             CAF      FOUR                                  #  PIPAZ, PIPAY, PIPAX
037123,000327: 12,3465           54120                           TS       BUF                                   
037124,000328: 
037125,000329: 12,3466           50120                           INDEX    BUF                                   #  RESCALE
037126,000330: 12,3467           31456                           CA       GCOMP      +1                         
037127,000331: 12,3470           00006                           EXTEND                                         
037128,000332: 12,3471           77754                           MP       BIT8                                  #  SHIFT MINOR PART LEFT 7 - MAJOR PART = 0
037129,000333: 12,3472           50120                           INDEX    BUF                                   
037130,000334: 12,3473           23456                           LXCH     GCOMP      +1                         #  BITS 8-14 OF MINOR PART WERE = 0
037131,000335: 
037132,000336: 12,3474           10120                           CCS      BUF                                   #  PIPAZ, PIPAY, PIPAX
037133,000337: 12,3475           67771                           AD       NEG1                                  
037134,000338: 12,3476           13465                           TCF      GCOMP1     +1                         
037135,000339: 12,3477           77776        COMPCHK            DEC      -1         B-14                       #  LESS THAN ZERO IMPOSSIBLE
037136,000340: 12,3500           15567                           TCF      ENDOFJOB                              
037137,000341: 

Page 866

037139,000343: 12,3501           11463        NBDONLY            CCS      GCOMPSW                               #  BYPASS IF GCOMPSW NEGATIVE
037140,000344: 12,3502           13505                           TCF      +3                                    
037141,000345: 12,3503           13505                           TCF      +2                                    
037142,000346: 12,3504           15567                           TCF      ENDOFJOB                              
037143,000347: 
037144,000348: 12,3505           00004                           INHINT                                         
037145,000349: 12,3506           10076                           CCS      FLAGWRD2                              #  PREREAD T3RUPT MAY COINCIDE
037146,000350: 12,3507           15567                           TCF      ENDOFJOB                              
037147,000351: 12,3510           15567                           TCF      ENDOFJOB                              
037148,000352: 12,3511           13512                           TCF      +1                                    
037149,000353: 
037150,000354: 12,3512           30025                           CA       TIME1                                 #  (CS) X 2(+14)
037151,000355: 12,3513           56765                           XCH      1/PIPADT                              #  PREVIOUS TIME
037152,000356: 12,3514           00003                           RELINT                                         
037153,000357: 12,3515           40000                           COM                                            
037154,000358: 12,3516           60765                           AD       1/PIPADT                              
037155,000359: 12,3517           10000        NBD2               CCS      A                                     #  CALCULATE ELAPSED TIME
037156,000360: 12,3520           67763                           AD       ONE                                   #  NO TIME1 OVERFLOW
037157,000361: 12,3521           13526                           TCF      NBD3                                  #  RESTORE TIME DIFFERENCE AND JUMP
037158,000362: 12,3522           13524                           TCF      +2                                    #  TIME1 OVERFLOW
037159,000363: 12,3523           15567                           TCF      ENDOFJOB                              #  IF ELAPSED TIME = 0  (DIFFERENCE = -0)
037160,000364: 
037161,000365: 12,3524           40000                           COM                                            #  CALCULATE ABSOLUTE DIFFERENCE
037162,000366: 12,3525           67743                           AD       POSMAX                                
037163,000367: 
037164,000368: 12,3526           00006        NBD3               EXTEND                                         #  C(A) = DELTAT    (CS) X 2(+14)
037165,000369: 12,3527           77752                           MP       BIT10                                 #  SHIFT RIGHT 5
037166,000370: 12,3530           52113                           DXCH     VBUF                                  
037167,000371: 12,3531           00006                           EXTEND                                         
037168,000372: 12,3532           30113                           DCA      VBUF                                  
037169,000373: 12,3533           52145                           DXCH     MPAC                                  #  DELTAT NOW SCALED (CS) X 2(+19)
037170,000374: 
037171,000375: 12,3534           37767                           CAF      ZERO                                  
037172,000376: 12,3535           55463                           TS       GCOMPSW                               #  INDICATE COMMANDS 2 PULSES OR LESS
037173,000377: 12,3536           54120                           TS       BUF                                   #  PIPAX, PIPAY, PIPAZ
037174,000378: 
037175,000379: 12,3537           41444                           CS       NBDX                                  #  (GYRO PULSES)/(CS) X 2(-5)
037176,000380: 12,3540           03556                           TC       FBIASSUB                              #  -(NBDX)(DELTAT)    (GYRO PULSES) X 2(+14)
037177,000381: 
037178,000382: 12,3541           00006                           EXTEND                                         
037179,000383: 12,3542           40113                           DCS      VBUF                                  
037180,000384: 12,3543           52145                           DXCH     MPAC                                  #  DELTAT SCALED (CS) X 2(+19)
037181,000385: 12,3544           31445                           CA       NBDY                                  #  (GYRO PULSES)/(CS) X 2(-5)
037182,000386: 12,3545           03556                           TC       FBIASSUB                              #  -(NBDY)(DELTAT)    (GYRO PULSES) X 2(+14)
037183,000387: 
037184,000388: 12,3546           00006                           EXTEND                                         
037185,000389: 12,3547           40113                           DCS      VBUF                                  
037186,000390: 12,3550           52145                           DXCH     MPAC                                  #  DELTAT SCALED (CS) X 2(+19)
037187,000391: 12,3551           41446                           CS       NBDZ                                  #  (GYRO PULSES)/(CS) X 2(-5)
037188,000392: 12,3552           03556                           TC       FBIASSUB                              #  +(NBDZ)(DELTAT)    (GYRO PULSES) X 2 (+14)
037189,000393: 

Page 867

037191,000395: 12,3553           11463                           CCS      GCOMPSW                               #  ARE GYRO COMMANDS GREATER THAN 2 PULSES
037192,000396: 12,3554           13433                           TCF      1/GYRO                                #  YES
037193,000397: 12,3555           15567                           TCF      ENDOFJOB                              #  NO
037194,000398: 

Page 868

037196,000400: 12,3556           56002        FBIASSUB           XCH      Q                                     
037197,000401: 12,3557           54121                           TS       BUF        +1                         
037198,000402: 
037199,000403: 12,3560           30002                           CA       Q                                     #  NBD SCALED (GYRO PULSES)/(CS) X 2(-5)
037200,000404: 12,3561           00006                           EXTEND                                         
037201,000405: 12,3562           70144                           MP       MPAC                                  #  DELTAT SCALED (CS) X 2(+19)
037202,000406: 12,3563           50120                           INDEX    BUF                                   
037203,000407: 12,3564           21456                           DAS      GCOMP                                 #  HI(NBD)(DELTAT)    (GYRO PULSES) X 2(+14)
037204,000408: 
037205,000409: 12,3565           30002                           CA       Q                                     #  NOW FRACTIONAL PART
037206,000410: 12,3566           00006                           EXTEND                                         
037207,000411: 12,3567           70145                           MP       MPAC       +1                         
037208,000412: 12,3570           54001                           TS       L                                     
037209,000413: 12,3571           37767                           CAF      ZERO                                  
037210,000414: 12,3572           50120                           INDEX    BUF                                   
037211,000415: 12,3573           21456                           DAS      GCOMP                                 #  (NBD)(DELTAT)     (GYRO PULSES) X 2(+14)
037212,000416: 
037213,000417: 12,3574           13420                           TCF      DRFTSUB2                              #  CHECK MAGNITUDE OF COMPENSATION
037214,000418: 
037215,000419: 
037216,000420: 
037217,000421: 12,3575           11463        LASTBIAS           CCS      GCOMPSW                               #  BYPASS IF GCOMPSW NEGATIVE
037218,000422: 12,3576           13601                           TCF      +3                                    
037219,000423: 12,3577           13601                           TCF      +2                                    
037220,000424: 12,3600           15567                           TCF      ENDOFJOB                              
037221,000425: 
037222,000426: 12,3601           35652                           CAF      PRIO31                                #  2 SECONDS SCALED (CS) X 2(+8)
037223,000427: 12,3602           56765                           XCH      1/PIPADT                              
037224,000428: 12,3603           40000                           COM                                            
037225,000429: 12,3604           61307                           AD       PIPTIME    +1                         #  TIME AT PIPA1 = 0
037226,000430: 12,3605           13517                           TCF      NBD2                                  
037227,000431: 
037228,000432: 
037229,000433: 
037230,000434: 12,3606           33455        GCOMPZER           CAF      LGCOMP                                #  ROUTINE TO ZERO GCOMP BEFORE FIRST
037231,000435: 12,3607           56003                           XCH      EBANK                                 #  CALL TO 1/PIPA
037232,000436: 12,3610           54153                           TS       MODE                                  
037233,000437: 
037234,000438: 12,3611           37767                           CAF      ZERO                                  
037235,000439: 12,3612           55463                           TS       GCOMPSW                               
037236,000440: 12,3613           55455                           TS       GCOMP                                 
037237,000441: 12,3614           55456                           TS       GCOMP      +1                         
037238,000442: 12,3615           55457                           TS       GCOMP      +2                         
037239,000443: 12,3616           55460                           TS       GCOMP      +3                         
037240,000444: 12,3617           55461                           TS       GCOMP      +4                         
037241,000445: 12,3620           55462                           TS       GCOMP      +5                         
037242,000446: 
037243,000447: 12,3621           30153                           CA       MODE                                  
037244,000448: 12,3622           54003                           TS       EBANK                                 
037245,000449: 12,3623           15221                           TCF      SWRETURN                              #  RETURN TO CALLER

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