Source Code

These source-code files derive from a printout of Luminary 210 (Apollo 15-17 Lunar Module guidance computer program), from the personal library of original AGC developer Don Eyles, digitally photographed at archive.org, financially sponsored by Jim Lawton, and transcribed to source code by a team of volunteers. This colorized, syntax-highlighted form was created by assembling that transcribed source code. Note that the full page images are available on the Virtual AGC project page at archive.org, while reduced-size images are presented at the VirtualAGC project website. Report or fix any transcription errors at the Virtual AGC project code repository.

Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY 
	BY NASA 2021112-161 17:11 MAR. 19,1971
Note that the date is the date of the printout, not the date of the program revision.

014765,000002:                                                                                                  ## Copyright:   Public domain.
014766,000003:                                                                                                  ## Filename:    IMU_COMPENSATION_PACKAGE.agc
014767,000004:                                                                                                  ## Purpose:     A section of Luminary revision 210.
014768,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
014769,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 15-17.
014770,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
014771,000008:                                                                                                  ##              that the code format has been changed to conform to the
014772,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
014773,000010:                                                                                                  ##              original YUL assembler.
014774,000011:                                                                                                  ## Reference:   pp. 338-349
014775,000012:                                                                                                  ## Assembler:   yaYUL
014776,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
014777,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
014778,000015:                                                                                                  ## Mod history: 2016-11-17 JL   Created from Luminary131 version.
014779,000016:                                                                                                  ##              2016-11-24 HG   Transcribed
014780,000017:                                                                                                  ##              2016-12-23 RSB  Proofed comment text with octopus/ProoferComments
014781,000018:                                                                                                  ##                              and fixed all errors found.
014782,000019:                                                                                                  ##              2017-03-07 RSB  Comment-text fixes noted in proofing Luminary 116.
014783,000020:                                                                                                  ##              2017-03-15 RSB  Comment-text fixes identified in 6-way
014784,000021:                                                                                                  ##                              side-by-side diff of Sunburst 120 and Luminary 
014785,000022:                                                                                                  ##                              69/99/116/131/210.
014786,000023: 

Page 338

014788,000025: 07,2607                                           BANK     7                                     
014789,000026: 06,2000                                           SETLOC   IMUCOMP                               
014790,000027: 06,2000                                           BANK                                           
014791,000028: 
014792,000029: 06,3333  E3,1460                                  EBANK=   NBDX                                  
014793,000030: 
014794,000031: 06,3333                                           COUNT*   $$/ICOMP                              
014795,000032: 06,3333           33601        1/PIPA             CAF      LGCOMP                                #  SAVE EBANK OF CALLING PROGRAM
014796,000033: 06,3334           56003                           XCH      EBANK                                 
014797,000034: 06,3335           54163                           TS       MODE                                  
014798,000035: 
014799,000036: 06,3336           11477                           CCS      GCOMPSW                               #  BYPASS IF GCOMPSW NEGATIVE
014800,000037: 06,3337           13342                           TCF      +3                                    
014801,000038: 06,3340           13342                           TCF      +2                                    
014802,000039: 06,3341           13423                           TCF      IRIG1                                 #  RETURN
014803,000040: 
014804,000041: 06,3342           34742        1/PIPA1            CAF      FOUR                                  #  PIPAZ, PIPAY, PIPAX
014805,000042: 06,3343           54132                           TS       BUF        +2                         
014806,000043: 
014807,000044: 06,3344           50132                           INDEX    BUF        +2                         
014808,000045: 06,3345           31453                           CA       PIPASCF                               #  (P.P.M.) X 2(-9)
014809,000046: 06,3346           00006                           EXTEND                                         
014810,000047: 06,3347           50132                           INDEX    BUF        +2                         
014811,000048: 06,3350           70324                           MP       DELVX                                 #  (PP) X 2(+14) NOW (PIPA PULSES) X 2(+5)
014812,000049: 06,3351           54002                           TS       Q                                     #  SAVE MAJOR PART
014813,000050: 
014814,000051: 06,3352           30001                           CA       L                                     #  MINOR PART
014815,000052: 06,3353           00006                           EXTEND                                         
014816,000053: 06,3354           74737                           MP       BIT6                                  #  SCALE 2(+9)   SHIFT RIGHT 9
014817,000054: 06,3355           50132                           INDEX    BUF        +2                         
014818,000055: 06,3356           54325                           TS       DELVX      +1                         #  FRACTIONAL PIPA PULSES SCALED 2(+14)
014819,000056: 
014820,000057: 06,3357           30002                           CA       Q                                     #  MAJOR PART
014821,000058: 06,3360           00006                           EXTEND                                         
014822,000059: 06,3361           74737                           MP       BIT6                                  #  SCALE 2(+9)   SHIFT RIGHT 9
014823,000060: 06,3362           50132                           INDEX    BUF        +2                         
014824,000061: 06,3363           20325                           DAS      DELVX                                 #  (PIPAI) + (PIPAI)(SFE)
014825,000062: 
014826,000063: 06,3364           50132                           INDEX    BUF        +2                         
014827,000064: 06,3365           41452                           CS       PIPABIAS                              #  (PIPA PULSES)/(CS) X 2(-3)            *
014828,000065: 06,3366           00006                           EXTEND                                         
014829,000066: 06,3367           71074                           MP       1/PIPADT                              #  (CS) X 2(+8) NOW (PIPA PULSES) X 2(+5)*
014830,000067: 06,3370           00006                           EXTEND                                         
014831,000068: 06,3371           74737                           MP       BIT6                                  #  SCALE 2(+9) SHIFT RIGHT 9             *
014832,000069: 06,3372           50132                           INDEX    BUF        +2                         
014833,000070: 06,3373           20325                           DAS      DELVX                                 #  (PIPAI) + (PIPAI)(SFE) - (BIAS)(DELTAT)
014834,000071: 
014835,000072: 06,3374           10132                           CCS      BUF        +2                         #  PIPAZ, PIPAY, PIPAX
014836,000073: 06,3375           67770                           AD       NEG1                                  
014837,000074: 06,3376           13343                           TCF      1/PIPA1    +1                         
014838,000075: 

Page 339

014840,000077: 06,3377           13400                           NOOP                                           #  LESS THAN ZERO IMPOSSIBLE
014841,000078: 

Page 340

014843,000080: 06,3400           55477        IRIGCOMP           TS       GCOMPSW                               #  INDICATE COMMANDS 2 PULSES OR LESS.
014844,000081: 06,3401           54130                           TS       BUF                                   #  INDEX COUNTER . IRIGX, IRIGY, IRIGZ.
014845,000082: 
014846,000083: 06,3402           03426                           TC       IRIGX                                 #  COMPENSATE ACCELERATION TERMS
014847,000084: 
014848,000085: 06,3403           41460                           CS       NBDX                                  #  (GYRO PULSES)/(CS) X 2(-5)
014849,000086: 06,3404           03524                           TC       DRIFTSUB                              #  -(NBOX)(DELTAT)   (GYRO PULSES) X 2(+14)
014850,000087: 
014851,000088: 06,3405           03443                           TC       IRIGY                                 #  COMPENSATE ACCELERATION TERMS
014852,000089: 
014853,000090: 06,3406           41461                           CS       NBDY                                  #  (GYRO PULSES)/(CS) X 2(-5)
014854,000091: 06,3407           03524                           TC       DRIFTSUB                              #  -(NBDY)(DELTAT)   (GYRO PULSES) X 2(+14)
014855,000092: 
014856,000093: 06,3410           03460                           TC       IRIGZ                                 #  COMPENSATE ACCELERATION TERMS
014857,000094: 
014858,000095: 06,3411           31462                           CA       NBDZ                                  #  (GYRO PULSES)/(CS) X 2(-5)
014859,000096: 06,3412           03524                           TC       DRIFTSUB                              #  +(NBDZ)(DELTAT)   (GYRO PULSES) X 2(+14)
014860,000097: 
014861,000098: 06,3413           11477                           CCS      GCOMPSW                               #  ARE GYRO COMMANDS GREATER THAN 2 PULSES
014862,000099: 06,3414           13416                           TCF      +2                                    #  YES  SEND OUT GYRO TORQUING COMMANDS.
014863,000100: 06,3415           13423                           TCF      IRIG1                                 #  NO   RETURN
014864,000101: 
014865,000102: 06,3416           35022                           CA       PRIO21                                #  PRIO GREATER THAN SERVICER
014866,000103: 06,3417           05063                           TC       NOVAC                                 #  SEND OUT GYRO TORQUING COMMANDS.
014867,000104: 06,3420  E3,1460                                  EBANK=   NBDX                                  
014868,000105: 06,3420           03557 14063                     2CADR    1/GYRO                                
014869,000106: 
014870,000107: 06,3422           00003                           RELINT                                         
014871,000108: 06,3423           30163        IRIG1              CA       MODE                                  #  RESTORE CALLERS EBANK
014872,000109: 06,3424           54003                           TS       EBANK                                 
014873,000110: 06,3425           14622                           TCF      SWRETURN                              
014874,000111: 

Page 341

014876,000113: 06,3426           00006        IRIGX              EXTEND                                         
014877,000114: 06,3427           22156                           QXCH     MPAC       +2                         #  SAVE Q
014878,000115: 06,3430           00006                           EXTEND                                         
014879,000116: 06,3431           40325                           DCS      DELVX                                 #  (PIPA PULSES) X 2(+14)
014880,000117: 06,3432           52155                           DXCH     MPAC                                  
014881,000118: 06,3433           31463                           CA       ADIAX                                 #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
014882,000119: 06,3434           03475                           TC       GCOMPSUB                              #  -(ADIAX)(PIPAX)   (GYRO PULSES) X 2(+14)
014883,000120: 
014884,000121: 06,3435           00006                           EXTEND                                         
014885,000122: 06,3436           40327                           DCS      DELVY                                 #  (PIPA PULSES) X 2(+14)
014886,000123: 06,3437           52155                           DXCH     MPAC                                  
014887,000124: 06,3440           41466                           CS       ADSRAX                                #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
014888,000125: 06,3441           03475                           TC       GCOMPSUB                              #  -(ADSRAX)(PIPAY)  (GYRO PULSES) X 2(+14)
014889,000126: 
014890,000127:                                                                                                  #                EXTEND                             ***
014891,000128:                                                                                                  #                DCS             DELVZ              ***    (PIPA PULSES) X 2(+14)
014892,000129:                                                                                                  #                DXCH            MPAC               ***
014893,000130:                                                                                                  #                CA              ADOAX              ***    (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
014894,000131:                                                                                                  #                TC              GCOMPSUB           ***    -(ADOAX)(PIPAZ)   (GYRO PULSES) X 2(+14)
014895,000132: 
014896,000133: 06,3442           00156                           TC       MPAC       +2                         
014897,000134: 
014898,000135: 06,3443           00006        IRIGY              EXTEND                                         
014899,000136: 06,3444           22156                           QXCH     MPAC       +2                         #  SAVE Q
014900,000137: 06,3445           00006                           EXTEND                                         
014901,000138: 06,3446           40327                           DCS      DELVY                                 #  (PIPA PULSES) X 2(+14)
014902,000139: 06,3447           52155                           DXCH     MPAC                                  
014903,000140: 06,3450           31464                           CA       ADIAY                                 #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)    *
014904,000141: 06,3451           03475                           TC       GCOMPSUB                              #  -(ADIAY)(PIPAY)   (GYRO PULSES) X 2(+14)
014905,000142: 
014906,000143: 06,3452           00006                           EXTEND                                         
014907,000144: 06,3453           40331                           DCS      DELVZ                                 #  (PIPA PULSES) X 2(+14)
014908,000145: 06,3454           52155                           DXCH     MPAC                                  
014909,000146: 06,3455           41467                           CS       ADSRAY                                #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
014910,000147: 06,3456           03475                           TC       GCOMPSUB                              #  +(ADSRAY)(PIPAZ)  (GYRO PULSES) X 2(+14)
014911,000148: 
014912,000149:                                                                                                  #                EXTEND                              ***
014913,000150:                                                                                                  #                DCS             DELVX               ***   (PIPA PULSES) X 2(+14)
014914,000151:                                                                                                  #                DXCH            MPAC                ***
014915,000152:                                                                                                  #                CA              ADOAY               ***   (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
014916,000153:                                                                                                  #                TC              GCOMPSUB            ***   -(ADOAY)(PIPAX)   (GYRO PULSES) X 2(+14)
014917,000154: 
014918,000155: 06,3457           00156                           TC       MPAC       +2                         
014919,000156: 
014920,000157: 06,3460           00006        IRIGZ              EXTEND                                         
014921,000158: 06,3461           22156                           QXCH     MPAC       +2                         #  SAVE Q
014922,000159: 06,3462           00006                           EXTEND                                         
014923,000160: 06,3463           40327                           DCS      DELVY                                 #  (PIPA PULSES) X 2(+14)
014924,000161: 06,3464           52155                           DXCH     MPAC                                  
014925,000162: 06,3465           31470                           CA       ADSRAZ                                #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)    *
014926,000163: 

Page 342

014928,000165: 06,3466           03475                           TC       GCOMPSUB                              #  -(ADSRAZ)(PIPAY)  (GYRO PULSES) X 2(+14)
014929,000166: 
014930,000167: 06,3467           00006                           EXTEND                                         
014931,000168: 06,3470           40331                           DCS      DELVZ                                 #  (PIPA PULSES) X 2(+14)
014932,000169: 06,3471           52155                           DXCH     MPAC                                  
014933,000170: 06,3472           31465                           CA       ADIAZ                                 #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
014934,000171: 06,3473           03475                           TC       GCOMPSUB                              #  -(ADIAZ)(PIPAZ)   (GYRO PULSES) X 2(+14)
014935,000172: 
014936,000173:                                                                                                  #                EXTEND                              ***
014937,000174:                                                                                                  #                DCS             DELVX               ***   (PIPA PULSE) X 2(+14)
014938,000175:                                                                                                  #                DXCH            MPAC                ***
014939,000176:                                                                                                  #                CS              ADOAZ               ***   (GYRO PULSES)/(PIPA PULSE) X 2(-6)     *
014940,000177:                                                                                                  #                TC              GCOMPSUB            ***   +(ADOAZ)(PIPAX)   (GYRO PULSES) X 2(+14)
014941,000178: 
014942,000179: 06,3474           00156                           TC       MPAC       +2                         
014943,000180: 

Page 343

014945,000182: 06,3475           56154        GCOMPSUB           XCH      MPAC                                  #  ADIA OR ADSRA COEFFICIENT ARRIVES IN A
014946,000183: 06,3476           00006                           EXTEND                                         #  C(MPAC) = (PIPA PULSES) X 2(+14)
014947,000184: 06,3477           70154                           MP       MPAC                                  #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)      *
014948,000185: 06,3500           52123                           DXCH     VBUF                                  #  NOW = (GYRO PULSES) X 2(+8)             *
014949,000186: 
014950,000187: 06,3501           30155                           CA       MPAC       +1                         #  MINOR PART PIPA PULSES
014951,000188: 06,3502           00006                           EXTEND                                         
014952,000189: 06,3503           70154                           MP       MPAC                                  #  ADIA OR ADSRA
014953,000190: 06,3504           54001                           TS       L                                     
014954,000191: 06,3505           34746                           CAF      ZERO                                  
014955,000192: 06,3506           20123                           DAS      VBUF                                  #  NOW = (GYRO PULSES) X 2(+8)             *
014956,000193: 
014957,000194: 06,3507           30122                           CA       VBUF                                  #  PARTIAL RESULT - MAJOR
014958,000195: 06,3510           00006                           EXTEND                                         
014959,000196: 06,3511           74734                           MP       BIT9                                  #  SCALE 2(+6)      SHIFT RIGHT 6          *
014960,000197: 06,3512           50130                           INDEX    BUF                                   #  RESULT = (GYRO PULSES) X 2(+14)
014961,000198: 06,3513           21472                           DAS      GCOMP                                 #  HI(ADIA)(PIPAI)  OR  HI(ADSRA)(PIPAI)
014962,000199: 
014963,000200: 06,3514           30123                           CA       VBUF       +1                         #  PARTIAL RESULT - MINOR
014964,000201: 06,3515           00006                           EXTEND                                         
014965,000202: 06,3516           74734                           MP       BIT9                                  #  SCALE 2(+6)      SHIFT RIGHT 6          *
014966,000203: 06,3517           54001                           TS       L                                     
014967,000204: 06,3520           34746                           CAF      ZERO                                  
014968,000205: 06,3521           50130                           INDEX    BUF                                   #  RESULT = (GYRO PULSES) X 2(+14)
014969,000206: 06,3522           21472                           DAS      GCOMP                                 #  (ADIA)(PIPAI)  OR  (ADSRA)(PIPAI)
014970,000207: 
014971,000208: 06,3523           00002                           TC       Q                                     
014972,000209: 

Page 344

014974,000211: 06,3524           00006        DRIFTSUB           EXTEND                                         
014975,000212: 06,3525           22131                           QXCH     BUF        +1                         
014976,000213: 
014977,000214: 06,3526           00006                           EXTEND                                         #  C(A) = NBD    (GYRO PULSES)/(CS) X 2(-5)
014978,000215: 06,3527           71074                           MP       1/PIPADT                              #  (CS) X 2(+8)   NOW (GYRO PULSES) X 2(+3)
014979,000216: 06,3530           22155                           LXCH     MPAC       +1                         #  SAVE FOR FRACTIONAL COMPENSATION
014980,000217: 06,3531           00006                           EXTEND                                         
014981,000218: 06,3532           74741                           MP       BIT4                                  #  SCALE 2(+11)     SHIFT RIGHT 11
014982,000219: 06,3533           50130                           INDEX    BUF                                   
014983,000220: 06,3534           21472                           DAS      GCOMP                                 #  HI(NBD)(DELTAT)   (GYRO PULSES) X 2(+14)
014984,000221: 
014985,000222: 06,3535           30155                           CA       MPAC       +1                         #  NOW MINOR PART
014986,000223: 06,3536           00006                           EXTEND                                         
014987,000224: 06,3537           74741                           MP       BIT4                                  #  SCALE 2(+11)     SHIFT RIGHT 11
014988,000225: 06,3540           54001                           TS       L                                     
014989,000226: 06,3541           34746                           CAF      ZERO                                  
014990,000227: 06,3542           50130                           INDEX    BUF                                   #  ADD IN FRACTIONAL COMPENSATION
014991,000228: 06,3543           21472                           DAS      GCOMP                                 #  (NBD)(DELTAT)     (GYRO PULSES) X 2(+14)
014992,000229: 
014993,000230: 06,3544           34743        DRFTSUB2           CAF      TWO                                   #  PIPAX, PIPAY, PIPAZ
014994,000231: 06,3545           60130                           AD       BUF                                   
014995,000232: 06,3546           56130                           XCH      BUF                                   
014996,000233: 06,3547           50000                           INDEX    A                                     
014997,000234: 06,3550           11471                           CCS      GCOMP                                 #  ARE GYRO COMMANDS 1 PULSE OR GREATER
014998,000235: 06,3551           13553                           TCF      +2                                    #  YES
014999,000236: 06,3552           00131                           TC       BUF        +1                         #  NO
015000,000237: 
015001,000238: 06,3553           73623                           MASK     COMPCHK                               #  DEC -1
015002,000239: 06,3554           10000                           CCS      A                                     #  ARE GYRO COMMANDS GREATER THAN 2 PULSES
015003,000240: 06,3555           55477                           TS       GCOMPSW                               #  YES - SET GCOMPSW POSITIVE
015004,000241: 06,3556           00131                           TC       BUF        +1                         #  NO
015005,000242: 

Page 345

015007,000244: 06,3557           34742        1/GYRO             CAF      FOUR                                  #  PIPAZ, PIPAY, PIPAX
015008,000245: 06,3560           54130                           TS       BUF                                   
015009,000246: 
015010,000247: 06,3561           50130                           INDEX    BUF                                   #  SCALE GYRO COMMANDS FOR IMUPULSE
015011,000248: 06,3562           31472                           CA       GCOMP      +1                         #  FRACTIONAL PULSES
015012,000249: 06,3563           00006                           EXTEND                                         
015013,000250: 06,3564           74735                           MP       BIT8                                  #  SHIFT RIGHT 7
015014,000251: 06,3565           50130                           INDEX    BUF                                   
015015,000252: 06,3566           55472                           TS       GCOMP      +1                         #  FRACTIONAL PULSES SCALED
015016,000253: 
015017,000254: 06,3567           34746                           CAF      ZERO                                  #  SET GCOMP = 0 FOR DAS INSTRUCTION
015018,000255: 06,3570           50130                           INDEX    BUF                                   
015019,000256: 06,3571           57471                           XCH      GCOMP                                 #  GYRO PULSES
015020,000257: 06,3572           00006                           EXTEND                                         
015021,000258: 06,3573           74735                           MP       BIT8                                  #  SHIFT RIGHT 7
015022,000259: 06,3574           50130                           INDEX    BUF                                   
015023,000260: 06,3575           21472                           DAS      GCOMP                                 #  ADD THESE TO FRACTIONAL PULSES ABOVE
015024,000261: 
015025,000262: 06,3576           10130                           CCS      BUF                                   #  PIPAZ, PIPAY, PIPAX
015026,000263: 06,3577           67770                           AD       NEG1                                  
015027,000264: 06,3600           13560                           TCF      1/GYRO     +1                         
015028,000265: 06,3601           01471        LGCOMP             ECADR    GCOMP                                 #  LESS THAN ZERO IMPOSSIBLE
015029,000266: 
015030,000267: 06,3602           33601                           CAF      LGCOMP                                
015031,000268: 06,3603           04607                           TC       BANKCALL                              
015032,000269: 06,3604           17310                           CADR     IMUPULSE                              #  CALL GYRO TORQUING ROUTINE
015033,000270: 06,3605           04607                           TC       BANKCALL                              
015034,000271: 06,3606           17735                           CADR     IMUSTALL                              #  WAIT FOR PULSES TO GET OUT
015035,000272: 06,3607           13610                           TCF      +1                                    
015036,000273: 
015037,000274: 06,3610           34742        GCOMP1             CAF      FOUR                                  #  PIPAZ, PIPAY, PIPAX
015038,000275: 06,3611           54130                           TS       BUF                                   
015039,000276: 
015040,000277: 06,3612           50130                           INDEX    BUF                                   #  RESCALE
015041,000278: 06,3613           31472                           CA       GCOMP      +1                         
015042,000279: 06,3614           00006                           EXTEND                                         
015043,000280: 06,3615           74735                           MP       BIT8                                  #  SHIFT MINOR PART LEFT 7 - MAJOR PART = 0
015044,000281: 06,3616           50130                           INDEX    BUF                                   
015045,000282: 06,3617           23472                           LXCH     GCOMP      +1                         #  BITS 8-14 OF MINOR PART WERE = 0
015046,000283: 
015047,000284: 06,3620           10130                           CCS      BUF                                   #  PIPAZ, PIPAY, PIPAX
015048,000285: 06,3621           67770                           AD       NEG1                                  
015049,000286: 06,3622           13611                           TCF      GCOMP1     +1                         
015050,000287: 06,3623           77776        COMPCHK            DEC      -1         B-14                       #  LESS THAN ZERO IMPOSSIBLE
015051,000288: 06,3624           15146                           TCF      ENDOFJOB                              
015052,000289: 

Page 346

015054,000291: 06,3625           11477        NBDONLY            CCS      GCOMPSW                               #  BYPASS IF GCOMPSW NEGATIVE
015055,000292: 06,3626           13631                           TCF      +3                                    
015056,000293: 06,3627           13631                           TCF      +2                                    
015057,000294: 06,3630           15146                           TCF      ENDOFJOB                              
015058,000295: 
015059,000296: 06,3631           00004                           INHINT                                         
015060,000297: 06,3632           10076                           CCS      FLAGWRD2                              #  PREREAD T3RUPT MAY COINCIDE
015061,000298: 06,3633           15146                           TCF      ENDOFJOB                              
015062,000299: 06,3634           15146                           TCF      ENDOFJOB                              
015063,000300: 06,3635           13636                           TCF      +1                                    
015064,000301: 
015065,000302: 06,3636           30104                           CA       FLAGWRD8                              #  IF SURFACE FLAG IS SET, SET TEM1
015066,000303: 06,3637           74735                           MASK     BIT8                                  #  POSITIVE SO THAT THE ACCELERATION TERMS
015067,000304: 06,3640           54141                           TS       TEM1                                  #  WILL BE COMPENSATED.
015068,000305: 06,3641           00006                           EXTEND                                         
015069,000306: 06,3642           13645                           BZF      +3                                    #  ARE WE ON THE SURFACE
015070,000307: 
015071,000308: 06,3643           04665                           TC       IBNKCALL                              #  ON THE SURFACE
015072,000309: 06,3644           77543                           CADR     PIPASR     +3                         #  READ PIPAS, BUT DO NOT SCALE THEM
015073,000310: 
015074,000311: 06,3645           30025                           CA       TIME1                                 #  (CS) X 2(+14)
015075,000312: 06,3646           57074                           XCH      1/PIPADT                              #  PREVIOUS TIME
015076,000313: 06,3647           00003                           RELINT                                         
015077,000314: 06,3650           40000                           COM                                            
015078,000315: 06,3651           61074                           AD       1/PIPADT                              #  PRESENT TIME - PREVIOUS TIME
015079,000316: 06,3652           64727        NBD2               AD       HALF                                  #  CORRECT FOR POSSIBLE TIME1 TICK
015080,000317: 06,3653           64727                           AD       HALF                                  
015081,000318: 06,3654           56001                           XCH      L                                     #  IF TIME1 DID NOT TICK, REMOVE RESULTING
015082,000319: 06,3655           56001                           XCH      L                                     #  OVERFLOW.
015083,000320: 
015084,000321: 06,3656           00006        NBD3               EXTEND                                         #  C(A) = DELTAT    (CS) X 2(+14)
015085,000322: 06,3657           74733                           MP       BIT10                                 #  SHIFT RIGHT 5
015086,000323: 06,3660           52125                           DXCH     VBUF       +2                         
015087,000324: 
015088,000325: 06,3661           34746                           CA       ZERO                                  
015089,000326: 06,3662           55477                           TS       GCOMPSW                               #  INDICATE COMMANDS 2 PULSES OR LESS.
015090,000327: 06,3663           54130                           TS       BUF                                   #  INDEX  X, Y, Z.
015091,000328: 
015092,000329: 06,3664           10141                           CCS      TEM1                                  #  IF SURFACE FLAG IS SET,
015093,000330: 06,3665           03426                           TC       IRIGX                                 #  COMPENSATE ACCELERATION TERMS.
015094,000331: 
015095,000332: 06,3666           00006                           EXTEND                                         
015096,000333: 06,3667           30125                           DCA      VBUF       +2                         
015097,000334: 06,3670           52155                           DXCH     MPAC                                  #  DELTAT NOW SCALED (CS) X 2(+19)
015098,000335: 
015099,000336: 06,3671           41460                           CS       NBDX                                  #  (GYRO PULSES)/(CS) X 2(-5)
015100,000337: 06,3672           03714                           TC       FBIASSUB                              #  -(NBOX)(DELTAT)   (GYRO PULSES) X 2(+14)
015101,000338: 
015102,000339: 06,3673           10141                           CCS      TEM1                                  #  IF SURFACE FLAG IS SET,
015103,000340: 06,3674           03443                           TC       IRIGY                                 #  COMPENSATE ACCELERATION TERMS.
015104,000341: 

Page 347

015106,000343: 06,3675           00006                           EXTEND                                         
015107,000344: 06,3676           40125                           DCS      VBUF       +2                         
015108,000345: 06,3677           52155                           DXCH     MPAC                                  #  DELTAT SCALED (CS) X 2(+19)
015109,000346: 06,3700           31461                           CA       NBDY                                  #  (GYRO PULSES)/(CS) X 2(-5)
015110,000347: 06,3701           03714                           TC       FBIASSUB                              #  -(NBDY)(DELTAT)   (GYRO PULSES) X 2(+14)
015111,000348: 
015112,000349: 06,3702           10141                           CCS      TEM1                                  #  IF SURFACE FLAG IS SET,
015113,000350: 06,3703           03460                           TC       IRIGZ                                 #  COMPENSATE ACCELERATION TERMS
015114,000351: 
015115,000352: 06,3704           00006                           EXTEND                                         
015116,000353: 06,3705           40125                           DCS      VBUF       +2                         
015117,000354: 06,3706           52155                           DXCH     MPAC                                  #  DELTAT SCALED (CS) X 2(+19)
015118,000355: 06,3707           41462                           CS       NBDZ                                  #  (GYRO PULSES)/(CS) X 2(-5)
015119,000356: 06,3710           03714                           TC       FBIASSUB                              #  +(NBDZ)(DELTAT)   (GYRO PULSES) X 2(+14)
015120,000357: 
015121,000358: 06,3711           11477                           CCS      GCOMPSW                               #  ARE GYRO COMMANDS GREATER THAN 2 PULSES
015122,000359: 06,3712           13557                           TCF      1/GYRO                                #  YES
015123,000360: 06,3713           15146                           TCF      ENDOFJOB                              #  NO
015124,000361: 

Page 348

015126,000363: 06,3714           56002        FBIASSUB           XCH      Q                                     
015127,000364: 06,3715           54131                           TS       BUF        +1                         
015128,000365: 
015129,000366: 06,3716           30002                           CA       Q                                     #  NBD SCALED (GYRO PULSES)/(CS) X 2(-5)
015130,000367: 06,3717           00006                           EXTEND                                         
015131,000368: 06,3720           70154                           MP       MPAC                                  #  DELTAT SCALED (CS) X 2(+19)
015132,000369: 06,3721           50130                           INDEX    BUF                                   
015133,000370: 06,3722           21472                           DAS      GCOMP                                 #  HI(NBD)(DELTAT)   (GYRO PULSES) X 2(+14)
015134,000371: 
015135,000372: 06,3723           30002                           CA       Q                                     #  NOW FRACTIONAL PART
015136,000373: 06,3724           00006                           EXTEND                                         
015137,000374: 06,3725           70155                           MP       MPAC       +1                         
015138,000375: 06,3726           54001                           TS       L                                     
015139,000376: 06,3727           34746                           CAF      ZERO                                  
015140,000377: 06,3730           50130                           INDEX    BUF                                   
015141,000378: 06,3731           21472                           DAS      GCOMP                                 #  (NBD)(DELTAT)      (GYRO PULSES) X 2(+14)
015142,000379: 
015143,000380: 06,3732           13544                           TCF      DRFTSUB2                              #  CHECK MAGNITUDE OF COMPENSATION
015144,000381: 
015145,000382: 06,3733           04607        LASTBIAS           TC       BANKCALL                              
015146,000383: 06,3734           17264                           CADR     PIPUSE1                               
015147,000384: 
015148,000385: 06,3735           11477                           CCS      GCOMPSW                               
015149,000386: 06,3736           13741                           TCF      +3                                    
015150,000387: 06,3737           13741                           TCF      +2                                    
015151,000388: 06,3740           15146                           TCF      ENDOFJOB                              
015152,000389: 
015153,000390: 06,3741           30104                           CA       FLAGWRD8                              #  IF SURFACE FLAG IS SET, SET TEM1
015154,000391: 06,3742           74735                           MASK     SURFFBIT                              #  POSITIVE SO THAT THE ACCELERATION TERMS
015155,000392: 06,3743           54141                           TS       TEM1                                  #  WILL BE COMPENSATED.
015156,000393: 
015157,000394: 06,3744           37737                           CAF      PRIO31                                #  2 SECONDS SCALED (CS) X 2(+8)
015158,000395: 06,3745           57074                           XCH      1/PIPADT                              
015159,000396: 06,3746           40000                           COM                                            
015160,000397: 06,3747           61234                           AD       PIPTIME    +1                         
015161,000398: 06,3750           13652                           TCF      NBD2                                  
015162,000399: 
015163,000400: 06,3751           33601        GCOMPZER           CAF      LGCOMP                                #  ROUTINE TO ZERO GCOMP BEFORE FIRST
015164,000401: 06,3752           56003                           XCH      EBANK                                 #  CALL TO 1/PIPA
015165,000402: 06,3753           54163                           TS       MODE                                  
015166,000403: 
015167,000404: 06,3754           34746                           CAF      ZERO                                  
015168,000405: 06,3755           55477                           TS       GCOMPSW                               
015169,000406: 06,3756           55471                           TS       GCOMP                                 
015170,000407: 06,3757           55472                           TS       GCOMP      +1                         
015171,000408: 06,3760           55473                           TS       GCOMP      +2                         
015172,000409: 06,3761           55474                           TS       GCOMP      +3                         
015173,000410: 06,3762           55475                           TS       GCOMP      +4                         
015174,000411: 

Page 349

015176,000413: 06,3763           55476                           TS       GCOMP      +5                         
015177,000414: 
015178,000415: 06,3764           13423                           TCF      IRIG1                                 #  RESTORE EBANK AND RETURN
015179,000416: 

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