Source Code

This source code is very close to the Apollo Guidance Computer software for the Apollo 13 Lunar module. This revision of the Luminary 131 program is from December of 1969, whereas there was a later revision in January of 1970, and still another revision in February, which is the code that flew on the mission. As far as this transcription is concerned, it was originally from a copy made in 1991 of a printout from the collection of AGC developer Don Eyles for collector David Craig. It was subsequently scanned by Gary Neff, reprocessed for online presentation at the now-discontinued History of Recent Science and Technology (HRST) website of MIT's Dibner Institute (the full-quality scans being discarded in the process), and finally transcribed by Ron Burkey for the Virtual AGC Project. Although a high-quality replacement scan for a completely illegible page was later provided by Gary Neff, the reduced legibility of the reprocessed HRST posting nevertheless caused many errors to be introduced into the transcription. Accordingly, a second scan of the same physical printout was made in 2017 for the Virtual AGC Project's collection at the Internet Archive, and used to correct the transcription errors. All of the scanned materials mentioned, as well as other Luminary 131 related material, are available online. Don Eyles apprently made additional hand-written notes in printout between 1991 and 2017, so the two scans are not identical in that respect. The page-headings in the printout read, in part:
	GAP:  ASSEMBLE REVISION 131 OF AGC PROGRAM LUMINARY BY NASA 2021112-091
	17:53 DEC. 19, 1969
Note that the date is the date the printout was made, not the date on which the program revision was released, although these happen to be very close together.

013590,000002:                                                                                                  ## Copyright:   Public domain.
013591,000003:                                                                                                  ## Filename:    IMU_COMPENSATION_PACKAGE.agc
013592,000004:                                                                                                  ## Purpose:     A section of Luminary 1C, revision 131.
013593,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
013594,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 13.
013595,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
013596,000008:                                                                                                  ##              that the code format has been changed to conform to the
013597,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the 
013598,000010:                                                                                                  ##              original YUL assembler.
013599,000011:                                                                                                  ## Reference:   pp. 328-339
013600,000012:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
013601,000013:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
013602,000014:                                                                                                  ## Mod history: 05/10/03 RSB.   Began transcribing.
013603,000015:                                                                                                  ##              05/14/05 RSB    Corrected website reference above.
013604,000016:                                                                                                  ##              2016-12-30 RSB  Backported BYRO->GYRO from Colossus 237.
013605,000017:                                                                                                  ##                              (There's lots more that needs to be backported,
013606,000018:                                                                                                  ##                              but I found this one particularly annoying.)
013607,000019:                                                                                                  ##              2017-01-06 RSB  Page numbers now agree with those on the
013608,000020:                                                                                                  ##                              original harcopy, as opposed to the PDF page
013609,000021:                                                                                                  ##                              numbers in 1701.pdf.
013610,000022:                                                                                                  ##              2017-02-23 RSB  Proofed comment text using octopus/ProoferComments.
013611,000023:                                                                                                  ##              2017-03-07 RSB  Comment-text fixes noted in proofing Luminary 116.
013612,000024: 

Page 328

013614,000026: 07,2666                                           BANK     7                                     
013615,000027: 06,2000                                           SETLOC   IMUCOMP                               
013616,000028: 06,2000                                           BANK                                           
013617,000029: 
013618,000030: 06,3271  E3,1460                                  EBANK=   NBDX                                  
013619,000031: 
013620,000032: 06,3271                                           COUNT*   $$/ICOMP                              
013621,000033: 06,3271           33537        1/PIPA             CAF      LGCOMP                                #  SAVE EBANK OF CALLING PROGRAM
013622,000034: 06,3272           56003                           XCH      EBANK                                 
013623,000035: 06,3273           54163                           TS       MODE                                  
013624,000036: 
013625,000037: 06,3274           11477                           CCS      GCOMPSW                               #  BYPASS IF GCOMPSW NEGATIVE
013626,000038: 06,3275           13300                           TCF      +3                                    
013627,000039: 06,3276           13300                           TCF      +2                                    
013628,000040: 06,3277           13361                           TCF      IRIG1                                 #  RETURN
013629,000041: 
013630,000042: 06,3300           34751        1/PIPA1            CAF      FOUR                                  #  PIPAZ, PIPAY, PIPAX
013631,000043: 06,3301           54132                           TS       BUF        +2                         
013632,000044: 
013633,000045: 06,3302           50132                           INDEX    BUF        +2                         
013634,000046: 06,3303           31453                           CA       PIPASCF                               #  (P.P.M.) X 2(-9)
013635,000047: 06,3304           00006                           EXTEND                                         
013636,000048: 06,3305           50132                           INDEX    BUF        +2                         
013637,000049: 06,3306           70324                           MP       DELVX                                 #  (PP) X 2(+14) NOW (PIPA PULSES) X 2(+5)
013638,000050: 06,3307           54002                           TS       Q                                     #  SAVE MAJOR PART
013639,000051: 
013640,000052: 06,3310           30001                           CA       L                                     #  MINOR PART
013641,000053: 06,3311           00006                           EXTEND                                         
013642,000054: 06,3312           74746                           MP       BIT6                                  #  SCALE 2(+9)   SHIFT RIGHT 9
013643,000055: 
013644,000056: 06,3313           50132                           INDEX    BUF        +2                         
013645,000057: 06,3314           54325                           TS       DELVX      +1                         #  FRACTIONAL PIPA PULSES SCALED 2(+14)
013646,000058: 
013647,000059: 06,3315           30002                           CA       Q                                     #  MAJOR PART
013648,000060: 06,3316           00006                           EXTEND                                         
013649,000061: 06,3317           74746                           MP       BIT6                                  #  SCALE 2(+9)   SHIFT RIGHT 9
013650,000062: 06,3320           50132                           INDEX    BUF        +2                         
013651,000063: 06,3321           20325                           DAS      DELVX                                 #  (PIPAI) + (PIPAI)(SFE)
013652,000064: 
013653,000065: 06,3322           50132                           INDEX    BUF        +2                         
013654,000066: 06,3323           41452                           CS       PIPABIAS                              #  (PIPA PULSES)/(CS) X 2(-3)                    *
013655,000067: 06,3324           00006                           EXTEND                                         
013656,000068: 06,3325           71074                           MP       1/PIPADT                              #  (CS) X 2(+8) NOW (PIPA PULSES) X 2(+5)        *
013657,000069: 06,3326           00006                           EXTEND                                         
013658,000070: 06,3327           74746                           MP       BIT6                                  #  SCALE 2(+9) SHIFT RIGHT 9                     *
013659,000071: 06,3330           50132                           INDEX    BUF        +2                         
013660,000072: 06,3331           20325                           DAS      DELVX                                 #  (PIPAI) + (PIPAI)(SFE) - (BIAS)(DELTAT)
013661,000073: 
013662,000074: 06,3332           10132                           CCS      BUF        +2                         #  PIPAZ, PIPAY, PIPAX
013663,000075: 06,3333           67752                           AD       NEG1                                  
013664,000076: 06,3334           13301                           TCF      1/PIPA1    +1                         

Page 329

013666,000078: 06,3335           13336                           NOOP                                           #  LESS THAN ZERO IMPOSSIBLE
013667,000079: 

Page 330

013669,000081: 06,3336           55477        IRIGCOMP           TS       GCOMPSW                               #  INDICATE COMMANDS 2 PULSES OR LESS.
013670,000082: 06,3337           54130                           TS       BUF                                   #  INDEX COUNTER.  IRIGX, IRIGY, IRIGZ.
013671,000083: 
013672,000084: 06,3340           03364                           TC       IRIGX                                 #  COMPENSATE ACCELERATION TERMS
013673,000085: 
013674,000086: 06,3341           41460                           CS       NBDX                                  #  (GYRO PULSES)/(CS) X 2(-5)
013675,000087: 06,3342           03462                           TC       DRIFTSUB                              #  -(NBOX)(DELTAT)       (GYRO PULSES) X 2(+14)
013676,000088: 
013677,000089: 06,3343           03401                           TC       IRIGY                                 #  COMPENSATE ACCELERATION TERMS
013678,000090: 
013679,000091: 06,3344           41461                           CS       NBDY                                  #  (GYRO PULSES)/(CS) X 2(-5)
013680,000092: 06,3345           03462                           TC       DRIFTSUB                              #  -(NBDY)(DELTAT)       (GYRO PULSES) X 2(+14)
013681,000093: 
013682,000094: 06,3346           03416                           TC       IRIGZ                                 #  COMPENSATE ACCELERATION TERMS
013683,000095: 
013684,000096: 06,3347           31462                           CA       NBDZ                                  #  (GYRO PULSES)/(CS) X 2(-5)
013685,000097: 06,3350           03462                           TC       DRIFTSUB                              #  +(NBDZ)(DELTAT)       (GYRO PULSES) X 2(+14)
013686,000098: 
013687,000099: 06,3351           11477                           CCS      GCOMPSW                               #  ARE GYRO COMMANDS GREATER THAN 2 PULSES
013688,000100: 06,3352           13354                           TCF      +2                                    #  YES   SEND OUT GYRO TORQUING COMMANDS.
013689,000101: 06,3353           13361                           TCF      IRIG1                                 #  NO    RETURN
013690,000102: 
013691,000103: 06,3354           35031                           CA       PRIO21                                #  PRIO GREATER THAN SERVICER
013692,000104: 06,3355           05072                           TC       NOVAC                                 #  SEND OUT GYRO TORQUING COMMANDS.
013693,000105: 06,3356  E3,1460                                  EBANK=   NBDX                                  
013694,000106: 06,3356           03515 14063                     2CADR    1/GYRO                                
013695,000107: 
013696,000108: 06,3360           00003                           RELINT                                         
013697,000109: 06,3361           30163        IRIG1              CA       MODE                                  #  RESTORE CALLER S EBANK
013698,000110: 06,3362           54003                           TS       EBANK                                 
013699,000111: 06,3363           14631                           TCF      SWRETURN                              
013700,000112: 

Page 331

013702,000114: 06,3364           00006        IRIGX              EXTEND                                         
013703,000115: 06,3365           22156                           QXCH     MPAC       +2                         #  SAVE Q
013704,000116: 06,3366           00006                           EXTEND                                         
013705,000117: 06,3367           40325                           DCS      DELVX                                 #  (PIPA PULSES) X 2(+14)
013706,000118: 06,3370           52155                           DXCH     MPAC                                  
013707,000119: 06,3371           31463                           CA       ADIAX                                 #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)            *
013708,000120: 06,3372           03433                           TC       GCOMPSUB                              #  -(ADIAX)(PIPAX)       (GYRO PULSES) X 2(+14)
013709,000121: 
013710,000122: 06,3373           00006                           EXTEND                                         #  
013711,000123: 06,3374           40327                           DCS      DELVY                                 #        (PIPA PULSES) X 2(+14)
013712,000124: 06,3375           52155                           DXCH     MPAC                                  #  
013713,000125: 06,3376           41466                           CS       ADSRAX                                #        (GYRO PULSES)/(PIPA PULSE) X 2(-6)      *
013714,000126: 06,3377           03433                           TC       GCOMPSUB                              #        -(ADSRAX)(PIPAY)        (GYRO PULSES) X 2(+14)
013715,000127: 
013716,000128:                                                                                                  #                EXTEND                  ***
013717,000129:                                                                                                  #                DCS     DELVZ           ***     (PIPA PULSES) X 2(+14)
013718,000130:                                                                                                  #                DXCH    MPAC            ***
013719,000131:                                                                                                  #                CA      ADOAX           ***     (GYRO PULSES)/(PIPA PULSE) X 2(-6)      *
013720,000132:                                                                                                  #                TC      GCOMPSUB        ***     -(ADOAX)(PIPAZ)         (GYRO PULSES) X 2(+14)
013721,000133: 
013722,000134: 06,3400           00156                           TC       MPAC       +2                         
013723,000135: 
013724,000136: 06,3401           00006        IRIGY              EXTEND                                         
013725,000137: 06,3402           22156                           QXCH     MPAC       +2                         #  SAVE Q
013726,000138: 06,3403           00006                           EXTEND                                         
013727,000139: 06,3404           40327                           DCS      DELVY                                 #  (PIPA PULSES) X 2(+14)
013728,000140: 06,3405           52155                           DXCH     MPAC                                  
013729,000141: 06,3406           31464                           CA       ADIAY                                 #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)            *
013730,000142: 06,3407           03433                           TC       GCOMPSUB                              #  -(ADIAY)(PIPAY)       (GYRO PULSES) X 2(+14)
013731,000143: 
013732,000144: 06,3410           00006                           EXTEND                                         
013733,000145: 06,3411           40331                           DCS      DELVZ                                 #  (PIPA PULSES) X 2(+14)
013734,000146: 06,3412           52155                           DXCH     MPAC                                  
013735,000147: 06,3413           41467                           CS       ADSRAY                                #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)            *
013736,000148: 06,3414           03433                           TC       GCOMPSUB                              #  +(ADSRAY)(PIPAZ)      (GYRO PULSES) X 2(+14)
013737,000149: 
013738,000150:                                                                                                  #                EXTEND                  ***
013739,000151:                                                                                                  #                DCS     DELVX           ***     (PIPA PULSES) X 2(+14)
013740,000152:                                                                                                  #                DXCH    MPAC            ***
013741,000153:                                                                                                  #                CA      ADOAY           ***     (GYRO PULSES)/(PIPA PULSE) X 2(-6)      *
013742,000154:                                                                                                  #                TC      GCOMPSUB        ***     -(ADOAY)(PIPAX)   (GYRO PULSES) X 2(+14)
013743,000155: 
013744,000156: 06,3415           00156                           TC       MPAC       +2                         
013745,000157: 
013746,000158: 06,3416           00006        IRIGZ              EXTEND                                         
013747,000159: 06,3417           22156                           QXCH     MPAC       +2                         #  SAVE Q
013748,000160: 06,3420           00006                           EXTEND                                         
013749,000161: 06,3421           40327                           DCS      DELVY                                 #  (PIPA PULSES) X 2(+14)
013750,000162: 06,3422           52155                           DXCH     MPAC                                  
013751,000163: 06,3423           31470                           CA       ADSRAZ                                #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)            *

Page 332

013753,000165: 06,3424           03433                           TC       GCOMPSUB                              #  -(ADSRAZ)(PIPAY)      (GYRO PULSES) X 2(+14)
013754,000166: 
013755,000167: 06,3425           00006                           EXTEND                                         
013756,000168: 06,3426           40331                           DCS      DELVZ                                 #  (PIPA PULSES) X 2(+14)
013757,000169: 06,3427           52155                           DXCH     MPAC                                  
013758,000170: 06,3430           31465                           CA       ADIAZ                                 #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)            *
013759,000171: 06,3431           03433                           TC       GCOMPSUB                              #  -(ADIAZ)(PIPAZ)       (GYRO PULSES) X 2(+14)
013760,000172: 
013761,000173:                                                                                                  #                EXTEND                  ***
013762,000174:                                                                                                  #                DCS     DELVX           ***     (PIPA PULSE) X 2(+14)
013763,000175:                                                                                                  #                DXCH    MPAC            ***
013764,000176:                                                                                                  #                CS      ADOAZ           ***     (GYRO PULSES)/(PIPA PULSE) X 2(-6)      *
013765,000177:                                                                                                  #                TC      GCOMPSUB        ***     +(ADOAZ)(PIPAX) (GYRO PULSES) X 2(+14)
013766,000178: 
013767,000179: 06,3432           00156                           TC       MPAC       +2                         
013768,000180: 

Page 333

013770,000182: 06,3433           56154        GCOMPSUB           XCH      MPAC                                  #  ADIA OR ADSRA COEFFICIENT ARRIVES IN A
013771,000183: 06,3434           00006                           EXTEND                                         #  C(MPAC) = (PIPA PULSES) X 2(+14)
013772,000184: 06,3435           70154                           MP       MPAC                                  #  (GYRO PULSES)/(PIPA PULSE) X 2(-6)            *
013773,000185: 06,3436           52123                           DXCH     VBUF                                  #  NOW = (GYRO PULSES) X 2(+8)                   *
013774,000186: 
013775,000187: 06,3437           30155                           CA       MPAC       +1                         #  MINOR PART PIPA PULSES
013776,000188: 06,3440           00006                           EXTEND                                         
013777,000189: 06,3441           70154                           MP       MPAC                                  #  ADIA OR ADSRA
013778,000190: 06,3442           54001                           TS       L                                     
013779,000191: 06,3443           34755                           CAF      ZERO                                  
013780,000192: 06,3444           20123                           DAS      VBUF                                  #  NOW = (GYRO PULSES) X 2(+8)                   *
013781,000193: 
013782,000194: 06,3445           30122                           CA       VBUF                                  #  PARTIAL RESULT - MAJOR
013783,000195: 06,3446           00006                           EXTEND                                         
013784,000196: 06,3447           74743                           MP       BIT9                                  #  SCALE 2(+6)   SHIFT RIGHT 6                   *
013785,000197: 06,3450           50130                           INDEX    BUF                                   #  RESULT = (GYRO PULSES) X 2(+14)
013786,000198: 06,3451           21472                           DAS      GCOMP                                 #  HI(ADIA)(PIPAI) OR HI(ADSRA)(PIPAI)
013787,000199: 
013788,000200: 06,3452           30123                           CA       VBUF       +1                         #  PARTIAL RESULT - MINOR
013789,000201: 06,3453           00006                           EXTEND                                         
013790,000202: 06,3454           74743                           MP       BIT9                                  #  SCALE 2(+6)   SHIFT RIGHT 6                   *
013791,000203: 06,3455           54001                           TS       L                                     
013792,000204: 06,3456           34755                           CAF      ZERO                                  
013793,000205: 06,3457           50130                           INDEX    BUF                                   #  RESULT = (GYRO PULSES) X 2(+14)
013794,000206: 06,3460           21472                           DAS      GCOMP                                 #  (ADIA)(PIPAI) OR (ADSRA)(PIPAI)
013795,000207: 
013796,000208: 06,3461           00002                           TC       Q                                     
013797,000209: 

Page 334

013799,000211: 06,3462           00006        DRIFTSUB           EXTEND                                         
013800,000212: 06,3463           22131                           QXCH     BUF        +1                         
013801,000213: 
013802,000214: 06,3464           00006                           EXTEND                                         #  C(A) = NBD    (GYRO PULSES)/(CS) X 2(-5)
013803,000215: 06,3465           71074                           MP       1/PIPADT                              #  (CS) X 2(+8)  NOW (GYRO PULSES) X 2(+3)
013804,000216: 06,3466           22155                           LXCH     MPAC       +1                         #  SAVE FOR FRACTIONAL COMPENSATION
013805,000217: 06,3467           00006                           EXTEND                                         
013806,000218: 06,3470           74750                           MP       BIT4                                  #  SCALE 2(+11)  SHIFT RIGHT 11
013807,000219: 06,3471           50130                           INDEX    BUF                                   
013808,000220: 06,3472           21472                           DAS      GCOMP                                 #  HI(NBD)(DELTAT)       (GYRO PULSES) X 2(+14)
013809,000221: 
013810,000222: 06,3473           30155                           CA       MPAC       +1                         #  NOW MINOR PART
013811,000223: 06,3474           00006                           EXTEND                                         
013812,000224: 06,3475           74750                           MP       BIT4                                  #  SCALE 2(+11)          SHIFT RIGHT 11
013813,000225: 06,3476           54001                           TS       L                                     
013814,000226: 06,3477           34755                           CAF      ZERO                                  
013815,000227: 06,3500           50130                           INDEX    BUF                                   #  ADD IN FRACTIONAL COMPENSATION
013816,000228: 06,3501           21472                           DAS      GCOMP                                 #  (NBD)(DELTAT)         (GYRO PULSES) X 2(+14)
013817,000229: 
013818,000230: 06,3502           34752        DRFTSUB2           CAF      TWO                                   #  PIPAX, PIPAY, PIPAZ
013819,000231: 06,3503           60130                           AD       BUF                                   
013820,000232: 06,3504           56130                           XCH      BUF                                   
013821,000233: 06,3505           50000                           INDEX    A                                     
013822,000234: 06,3506           11471                           CCS      GCOMP                                 #  ARE GYRO COMMANDS 1 PULSE OR GREATER
013823,000235: 06,3507           13511                           TCF      +2                                    #  YES
013824,000236: 06,3510           00131                           TC       BUF        +1                         #  NO
013825,000237: 
013826,000238: 06,3511           73561                           MASK     COMPCHK                               #  DEC -1
013827,000239: 06,3512           10000                           CCS      A                                     #  ARE GYRO COMMANDS GREATER THAN 2 PULSES
013828,000240: 06,3513           55477                           TS       GCOMPSW                               #  YES - SET GCOMPSW POSITIVE
013829,000241: 06,3514           00131                           TC       BUF        +1                         #  NO
013830,000242: 

Page 335

013832,000244: 06,3515           34751        1/GYRO             CAF      FOUR                                  #  PIPAZ, PIPAY, PIPAX
013833,000245: 06,3516           54130                           TS       BUF                                   
013834,000246: 
013835,000247: 06,3517           50130                           INDEX    BUF                                   #  SCALE GYRO COMMANDS FOR IMUPULSE
013836,000248: 06,3520           31472                           CA       GCOMP      +1                         #  FRACTIONAL PULSES
013837,000249: 06,3521           00006                           EXTEND                                         
013838,000250: 06,3522           74744                           MP       BIT8                                  #  SHIFT RIGHT 7
013839,000251: 06,3523           50130                           INDEX    BUF                                   
013840,000252: 06,3524           55472                           TS       GCOMP      +1                         #  FRACTIONAL PULSES SCALED
013841,000253: 
013842,000254: 06,3525           34755                           CAF      ZERO                                  #  SET GCOMP = 0 FOR DAS INSTRUCTION
013843,000255: 06,3526           50130                           INDEX    BUF                                   
013844,000256: 06,3527           57471                           XCH      GCOMP                                 #  GYRO PULSES
013845,000257: 06,3530           00006                           EXTEND                                         
013846,000258: 06,3531           74744                           MP       BIT8                                  #  SHIFT RIGHT 7
013847,000259: 06,3532           50130                           INDEX    BUF                                   
013848,000260: 06,3533           21472                           DAS      GCOMP                                 #  ADD THESE TO FRACTIONAL PULSES ABOVE
013849,000261: 
013850,000262: 06,3534           10130                           CCS      BUF                                   #  PIPAZ, PIPAY, PIPAX
013851,000263: 06,3535           67752                           AD       NEG1                                  
013852,000264: 06,3536           13516                           TCF      1/GYRO     +1                         
013853,000265: 06,3537           01471        LGCOMP             ECADR    GCOMP                                 #  LESS THAN ZERO IMPOSSIBLE
013854,000266: 
013855,000267: 06,3540           33537                           CAF      LGCOMP                                
013856,000268: 06,3541           04616                           TC       BANKCALL                              
013857,000269: 06,3542           17314                           CADR     IMUPULSE                              #  CALL GYRO TORQUING ROUTINE
013858,000270: 06,3543           04616                           TC       BANKCALL                              
013859,000271: 06,3544           17707                           CADR     IMUSTALL                              #  WAIT FOR PULSES TO GET OUT
013860,000272: 06,3545           15155                           TCF      ENDOFJOB                              #  TEMPORARY
013861,000273: 
013862,000274: 06,3546           34751        GCOMP1             CAF      FOUR                                  #  PIPAZ, PIPAY, PIPAX
013863,000275: 06,3547           54130                           TS       BUF                                   
013864,000276: 
013865,000277: 06,3550           50130                           INDEX    BUF                                   #  RESCALE
013866,000278: 06,3551           31472                           CA       GCOMP      +1                         
013867,000279: 06,3552           00006                           EXTEND                                         
013868,000280: 06,3553           74744                           MP       BIT8                                  #  SHIFT MINOR PART LEFT 7 - MAJOR PART = 0
013869,000281: 06,3554           50130                           INDEX    BUF                                   
013870,000282: 06,3555           23472                           LXCH     GCOMP      +1                         #  BITS 8-14 OF MINOR PART WERE = 0
013871,000283: 
013872,000284: 06,3556           10130                           CCS      BUF                                   #  PIPAZ, PIPAY, PIPAX
013873,000285: 06,3557           67752                           AD       NEG1                                  
013874,000286: 06,3560           13547                           TCF      GCOMP1     +1                         
013875,000287: 06,3561           77776        COMPCHK            DEC      -1         B-14                       #  LESS THAN ZERO IMPOSSIBLE
013876,000288: 06,3562           15155                           TCF      ENDOFJOB                              
013877,000289: 

Page 336

013879,000291: 06,3563           11477        NBDONLY            CCS      GCOMPSW                               #  BYPASS IF GCOMPSW NEGATIVE
013880,000292: 06,3564           13567                           TCF      +3                                    
013881,000293: 06,3565           13567                           TCF      +2                                    
013882,000294: 06,3566           15155                           TCF      ENDOFJOB                              
013883,000295: 
013884,000296: 06,3567           00004                           INHINT                                         
013885,000297: 06,3570           10076                           CCS      FLAGWRD2                              #  PREREAD T3RUPT MAY COINCIDE
013886,000298: 06,3571           15155                           TCF      ENDOFJOB                              
013887,000299: 06,3572           15155                           TCF      ENDOFJOB                              
013888,000300: 06,3573           13574                           TCF      +1                                    
013889,000301: 
013890,000302: 06,3574           30104                           CA       FLAGWRD8                              #  IF SURFACE FLAG IS SET, SET TEM1
013891,000303: 06,3575           74744                           MASK     BIT8                                  #  POSITIVE SO THAT THE ACCELERATION TERMS
013892,000304: 06,3576           54141                           TS       TEM1                                  #  WILL BE COMPENSATED.
013893,000305: 06,3577           00006                           EXTEND                                         
013894,000306: 06,3600           13603                           BZF      +3                                    #  ARE WE ON THE SURFACE
013895,000307: 
013896,000308: 06,3601           04674                           TC       IBNKCALL                              #  ON THE SURFACE
013897,000309: 06,3602           77541                           CADR     PIPASR     +3                         #  READ PIPAS, BUT DO NOT SCALE THEM
013898,000310: 
013899,000311: 06,3603           30025                           CA       TIME1                                 #  (CS) X 2(+14)
013900,000312: 06,3604           57074                           XCH      1/PIPADT                              #  PREVIOUS TIME
013901,000313: 06,3605           00003                           RELINT                                         
013902,000314: 06,3606           40000                           COM                                            
013903,000315: 06,3607           61074                           AD       1/PIPADT                              #  PRESENT TIME - PREVIOUS TIME
013904,000316: 06,3610           64736        NBD2               AD       HALF                                  #  CORRECT FOR POSSIBLE TIME1 TICK
013905,000317: 06,3611           64736                           AD       HALF                                  
013906,000318: 06,3612           56001                           XCH      L                                     #  IF TIME1 DID NOT TICK, REMOVE RESULTING
013907,000319: 06,3613           56001                           XCH      L                                     #  OVERFLOW.
013908,000320: 
013909,000321: 06,3614           00006        NBD3               EXTEND                                         #  C(A) = DELTAT         (CS) X 2(+14)
013910,000322: 06,3615           74742                           MP       BIT10                                 #  SHIFT RIGHT 5
013911,000323: 06,3616           52125                           DXCH     VBUF       +2                         
013912,000324: 
013913,000325: 06,3617           34755                           CA       ZERO                                  
013914,000326: 06,3620           55477                           TS       GCOMPSW                               #  INDICATE COMMANDS 2 PULSES OR LESS.
013915,000327: 06,3621           54130                           TS       BUF                                   #  INDEX X, Y, Z.
013916,000328: 
013917,000329: 06,3622           10141                           CCS      TEM1                                  #  IF SURFACE FLAG IS SET,
013918,000330: 06,3623           03364                           TC       IRIGX                                 #  COMPENSATE ACCELERATION TERMS.
013919,000331: 
013920,000332: 06,3624           00006                           EXTEND                                         
013921,000333: 06,3625           30125                           DCA      VBUF       +2                         
013922,000334: 06,3626           52155                           DXCH     MPAC                                  #  DELTAT NOW SCALED (CS) X 2(+19)
013923,000335: 
013924,000336: 06,3627           41460                           CS       NBDX                                  #  (GYRO PULSES)/(CS) X 2(-5)
013925,000337: 06,3630           03652                           TC       FBIASSUB                              #  -(NBOX)(DELTAT)       (GYRO PULSES) X 2(+14)
013926,000338: 
013927,000339: 06,3631           10141                           CCS      TEM1                                  #  IF SURFACE FLAG IS SET,
013928,000340: 06,3632           03401                           TC       IRIGY                                 #  COMPENSATE ACCELERATION TERMS.

Page 337

013930,000342: 06,3633           00006                           EXTEND                                         
013931,000343: 06,3634           40125                           DCS      VBUF       +2                         
013932,000344: 06,3635           52155                           DXCH     MPAC                                  #  DELTAT SCALED (CS) X 2(+19)
013933,000345: 06,3636           31461                           CA       NBDY                                  #  (GYRO PULSES)/(CS) X 2(-5)
013934,000346: 06,3637           03652                           TC       FBIASSUB                              #  -(NBDY)(DELTAT)       (GYRO PULSES) X 2(+14)
013935,000347: 
013936,000348: 06,3640           10141                           CCS      TEM1                                  #  IF SURFACE FLAG IS SET,
013937,000349: 06,3641           03416                           TC       IRIGZ                                 #  COMPENSATE ACCELERATION TERMS
013938,000350: 
013939,000351: 06,3642           00006                           EXTEND                                         
013940,000352: 06,3643           40125                           DCS      VBUF       +2                         
013941,000353: 06,3644           52155                           DXCH     MPAC                                  #  DELTAT SCALED (CS) X 2(+19)
013942,000354: 06,3645           41462                           CS       NBDZ                                  #  (GYRO PULSES)/(CS) X 2(-5)
013943,000355: 06,3646           03652                           TC       FBIASSUB                              #  +(NBDZ)(DELTAT)       (GYRO PULSES) X 2(+14)
013944,000356: 
013945,000357: 06,3647           11477                           CCS      GCOMPSW                               #  ARE GYRO COMMANDS GREATER THAN 2 PULSES
013946,000358: 06,3650           13515                           TCF      1/GYRO                                #  YES
013947,000359: 06,3651           15155                           TCF      ENDOFJOB                              #  NO
013948,000360: 

Page 338

013950,000362: 06,3652           56002        FBIASSUB           XCH      Q                                     
013951,000363: 06,3653           54131                           TS       BUF        +1                         
013952,000364: 
013953,000365: 06,3654           30002                           CA       Q                                     #  NBD SCALED (GYRO PULSES)/(CS) X 2(-5)
013954,000366: 06,3655           00006                           EXTEND                                         
013955,000367: 06,3656           70154                           MP       MPAC                                  #  DELTAT SCALED (CS) X 2(+19)
013956,000368: 06,3657           50130                           INDEX    BUF                                   
013957,000369: 06,3660           21472                           DAS      GCOMP                                 #  HI(NBD)(DELTAT)       (GYRO PULSES) X 2(+14)
013958,000370: 
013959,000371: 06,3661           30002                           CA       Q                                     #  NOW FRACTIONAL PART
013960,000372: 06,3662           00006                           EXTEND                                         
013961,000373: 06,3663           70155                           MP       MPAC       +1                         
013962,000374: 06,3664           54001                           TS       L                                     
013963,000375: 06,3665           34755                           CAF      ZERO                                  
013964,000376: 06,3666           50130                           INDEX    BUF                                   
013965,000377: 06,3667           21472                           DAS      GCOMP                                 #  (NBD)(DELTAT)         (GYRO PULSES) X 2(+14)
013966,000378: 
013967,000379: 06,3670           13502                           TCF      DRFTSUB2                              #  CHECK MAGNITUDE OF COMPENSATION
013968,000380: 
013969,000381: 06,3671           04616        LASTBIAS           TC       BANKCALL                              
013970,000382: 06,3672           17270                           CADR     PIPUSE1                               
013971,000383: 
013972,000384: 06,3673           11477                           CCS      GCOMPSW                               
013973,000385: 06,3674           13677                           TCF      +3                                    
013974,000386: 06,3675           13677                           TCF      +2                                    
013975,000387: 06,3676           15155                           TCF      ENDOFJOB                              
013976,000388: 
013977,000389: 06,3677           30104                           CA       FLAGWRD8                              #  IF SURFACE FLAG IS SET, SET TEM1
013978,000390: 06,3700           74744                           MASK     SURFFBIT                              #  POSITIVE SO THAT THE ACCELERATION TERMS
013979,000391: 06,3701           54141                           TS       TEM1                                  #  WILL BE COMPENSATED.
013980,000392: 
013981,000393: 06,3702           37721                           CAF      PRIO31                                #  2 SECONDS SCALED (CS) X 2(+8)
013982,000394: 06,3703           57074                           XCH      1/PIPADT                              
013983,000395: 06,3704           40000                           COM                                            
013984,000396: 06,3705           61234                           AD       PIPTIME    +1                         
013985,000397: 06,3706           13610                           TCF      NBD2                                  
013986,000398: 
013987,000399: 06,3707           33537        GCOMPZER           CAF      LGCOMP                                #  ROUTINE TO ZERO GCOMP BEFORE FIRST
013988,000400: 06,3710           56003                           XCH      EBANK                                 #  CALL TO 1/PIPA
013989,000401: 06,3711           54163                           TS       MODE                                  
013990,000402: 
013991,000403: 06,3712           34755                           CAF      ZERO                                  
013992,000404: 06,3713           55477                           TS       GCOMPSW                               
013993,000405: 06,3714           55471                           TS       GCOMP                                 
013994,000406: 06,3715           55472                           TS       GCOMP      +1                         
013995,000407: 06,3716           55473                           TS       GCOMP      +2                         
013996,000408: 06,3717           55474                           TS       GCOMP      +3                         
013997,000409: 06,3720           55475                           TS       GCOMP      +4                         

Page 339

013999,000411: 06,3721           55476                           TS       GCOMP      +5                         
014000,000412: 
014001,000413: 06,3722           13361                           TCF      IRIG1                                 #  RESTORE EBANK AND RETURN
014002,000414: 

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