Source Code
These source-code files were transcribed from a printout in Don Eyles's personal
collection, scanned by archive.org, and financially sponsored by Peter McDermott.
A team of volunteers performed the transcription and proof-reading. The scanned
page images are available at
the Virtual AGC Project website, as well as higher-quality (but much larger)
images at
the Virtual AGC Project's collection in the Internet Archive. Report any problems by creating
"issues" at
the Virtual AGC Project's GitHub Repository. Notations on the program listing read, in part: YUL SYSTEM FOR AGC: NEW PROGRAM SHEPATIN BY EYLES DEC 13, 1966 THIS PROGRAM WAS ASSEMBLED AS A VERSION OF REVISION 37 OF PROGRAM SUNBURST BY LEM GROUPNote that the date is the date of the printout, not the date of the program revision. |
036141,000002: ## Copyright: Public domain.
036142,000003: ## Filename: IMU_COMPENSATION_PACKAGE.agc
036143,000004: ## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
036144,000005: ## It is part of an early development version of the software
036145,000006: ## for Apollo Guidance Computer (AGC) on the unmanned Lunar
036146,000007: ## Module (LM) flight Apollo 5. Sunburst 37 was the program
036147,000008: ## upon which Don Eyles's offline development program Shepatin
036148,000009: ## was based; the listing herein transcribed was actually for
036149,000010: ## the equivalent revision 0 of Shepatin.
036150,000011: ## This file is intended to be a faithful transcription, except
036151,000012: ## that the code format has been changed to conform to the
036152,000013: ## requirements of the yaYUL assembler rather than the
036153,000014: ## original YUL assembler.
036154,000015: ## Reference: pp. 802-811
036155,000016: ## Assembler: yaYUL
036156,000017: ## Contact: Ron Burkey <info@sandroid.org>.
036157,000018: ## Website: www.ibiblio.org/apollo/index.html
036158,000019: ## Mod history: 2017-05-24 MAS Created from Sunburst 120.
036159,000020: ## 2017-06-14 HG Transcribed
036160,000021: ## 2017-06-15 HG Fix operand CA -> CS
036161,000022: ## 2017-06-23 RSB Proofed comment text with
036162,000023: ## octopus/ProoferComments.
036163,000024:
Page 802 |
036165,000026: 12,3220 BANK 12
036166,000027: 12,3220 E3,1444 EBANK= NBDX
036167,000028:
036168,000029: # PROGRAM DESCRIPTION- IMU COMPENSATION (LEM) DATE- 30 AUG 66
036169,000030: # MOD NO- 0 LOG SECTION- IMU COMPENSATION PACKAGE
036170,000031: # MOD BY- GILBERT ASSEMBLY- SUNBURST REVISION 13
036171,000032:
036172,000033: # FUNCTIONAL DESCRIPTION
036173,000034: # THE IMU COMPENSATION PACKAGE IS DESIGNED TO COMPENSATE FOR PIPA BIAS AND SCALE FACTOR ERROR AND AT THE
036174,000035: # SAME TIME ACCUMULATE GYRO TORQUING COMMANDS NECESSARY TO COMPENSATE FOR THE ASSOCIATED BIAS AND ACCELERATION-
036175,000036: # CAUSED GYRO DRIFTS. 1/PIPA MUST BE CALLED AT LEAST EVERY 2.55 SECONDS DUE TO SCALING CONSIDERATIONS.
036176,000037: # SPECIFICALLY, THE CORRECTION IS
036177,000038:
036178,000039: # PIPA = (1 + SCALE FACTOR ERROR)PIPA - (BIAS)(DELTAT)
036179,000040:
036180,000041: # C I
036181,000042:
036182,000043: # WHERE PIPA IS THE COMPENSATED DATA OBTAINED FROM THE SAMPLED DATA PIPA
036183,000044: # C I
036184,000045:
036185,000046: # THE COMPENSATED DATA IS THEN USED TO COMPUTE THE IRIG TORQUING NECESSARY TO CANCEL THE NBD, ADIA, AND ADSRA
036186,000047: # GYRO COEFFICIENTS.
036187,000048: # SPECIFICALLY, THE COMPUTATIONS ARE
036188,000049:
036189,000050: # XIRIG -(ADIAX)(PIPAX ) + (ADSRAX)(PIPAY ) - (NBDX)(DELTAT)
036190,000051:
036191,000052: # C C
036192,000053: # YIRIG -(ADIAY)(PIPAY ) + (ADSRAY)(PIPAZ ) - (NBDY)(DELTAT)
036193,000054: # C C
036194,000055: # ZIRIG -(ADIAZ)(PIPAZ ) - (ADSRAZ)(PIPAY ) + (NBDZ)(DELTAT)
036195,000056: # C C
036196,000057:
036197,000058: # THIS COMPENSATION IS SUMMED INTO THE GCOMP REGISTERS AND WHEN THE MAGNITUDE OF ANY IRIG COMMAND EXCEEDS 2
036198,000059: # PULSES, THE COMMANDS ARE SENT TO THE GYROS.
036199,000060:
036200,000061: # DURING FREE-FALL PHASES OF A FLIGHT NBDX, NBDY, AND NBDZ ARE THE ONLY RELEVANT COEFFICIENTS. THESE BIAS TERMS
036201,000062: # WILL BE INTEGRATED BY ROUTINE NBDONLY APPROXIMATELY EVERY 81.93 SECONDS FOLLOWING AN EXECUTIVE CALL BY THE DUMMY
036202,000063: # TASK OF THE WAITLIST PROGRAM. NBDONLY IS ENABLED WHEN BIT 15 OF FLAGWRD2 IS SET TO INDICATE FREE-FALL. DURING
036203,000064:
036204,000065: # THIS TIME 1/PIPA IS NOT CALLED.
036205,000066:
036206,000067: # LASTBIAS IS CALLED VIA EXECUTIVE WHEN MAKING THE TRANSITION FROM FREE-FALL TO A PIPA READING MODE. THE NBD TERMS
036207,000068: # ARE COMPENSATED FOR FROM THE LAST NBDONLY CALL UP TO PIPA ZEROING. PREREAD WILL THEN ENABLE 1/PIPA AT ITS
036208,000069: # REGULAR INTERVAL. THE DRIFT FLAG MUST BE DOWN JUST PRIOR TO LASTBIAS. GYROCOMPASS NEVER CALLS LASTBIAS.
036209,000070:
036210,000071: # SCALING CONSIDERATIONS
036211,000072: # UNITS MAX. VALUE INTERNAL UNITS AND SCALING
036212,000073:
036213,000074: # PIPA BIAS (CM)/(SEC)(SEC) 3.125 (PIPA PULSES)/(CS) X 2(-5)
036214,000075:
036215,000076: # PIPA SCALE FACTOR P.P.M. 1953.125 (PPM) X 2(-9)
036216,000077: # NBD MERU 128.74604 (GYRO PULSES)/(CS) X 2(-5)
036217,000078: # ADIA (MERU)/(G) 630.36633 (GYRO PULSES)/(PIPA PULSE) X 2(-6)
036218,000079: # ADSRA (MERU)/(G) 630.36633 (GYRO PULSES)/(PIPA PULSE) X 2(-6)
036219,000080:
Page 803 |
036221,000082: # CONVERSION TABLE
036222,000083: # 1 PIPA PULSE = 1.00 (CM)/(SEC) 1 ERU = 7.29209817 X 10(-5) (RAD)/(SEC)
036223,000084: # 1 ERU = 15.04104488 (ARCSEC)/(SEC) 1 (CM)/(SEC)(SEC) = .01 (PIPA PULSES)/(CS)
036224,000085: # 1 GYRO PULSE = .61798096 ARCSEC 1 MERU = .00024272592 (GYRO PULSES)/(CS)
036225,000086: # 1 G = 979.24 (CM)/(SEC)(SEC) (AMR) 1 (MERU)/(G) = .000024787174 (GYRO PULSES)/(PIPA PULSE)
036226,000087:
036227,000088: # REFERENCES
036228,000089: # AGC PROGRAMMING MEMO NO. 12, I.S.S. MEMO NO. 247, I.S.S. MEMO NO. 328, I.S.S. MEMO NO. 339
036229,000090:
036230,000091: # CALLING SEQUENCE
036231,000092: # L TC BANKCALL
036232,000093: # L+1 CADR 1/PIPA
036233,000094: # L+2 RETURNS HERE
036234,000095:
036235,000096: # NORMAL EXIT MODES
036236,000097: # AT L+2 OF CALLING SEQUENCE
036237,000098:
036238,000099: # ALARM OR ABORT MODES
036239,000100: # ENDOFJOB
036240,000101:
036241,000102:
036242,000103: # ERASABLE INITIALIZATION REQUIRED (CONSECUTIVE LOCATIONS)
036243,000104: # PBIASX PIPAX BIAS
036244,000105: # PIPASCFX PIPAX SCALE FACTOR ERROR
036245,000106: # PBIASY PIPAY BIAS
036246,000107: # PIPASCFY PIPAY SCALE FACTOR ERROR
036247,000108: # PBIASZ PIPAZ BIAS
036248,000109: # PIPASCFZ PIPAZ SCALE FACTOR ERROR
036249,000110: # NBDX X IRIG BIAS DRIFT
036250,000111: # NBDY Y IRIG BIAS DRIFT
036251,000112:
036252,000113: # NBDZ Z IRIG BIAS DRIFT
036253,000114: # ADIAX IRIG ACCELERATION SENSITIVE DRIFT ALONG THE X INPUT AXIS
036254,000115: # ADIAY IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Y INPUT AXIS
036255,000116: # ADIAZ IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Z INPUT AXIS
036256,000117: # ADSRAX IRIG ACCELERATION SENSITIVE DRIFT ALONG THE X SPIN REFERENCE AXIS
036257,000118: # ADSRAY IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Y SPIN REFERENCE AXIS
036258,000119: # ADSRAZ IRIG ACCELERATION SENSITIVE DRIFT ALONG THE Z SPIN REFERENCE AXIS
036259,000120: # GCOMP GYRO COMPENSATION PULSES (SET = ZERO FOR 1ST PASS)
036260,000121:
036261,000122: # INPUT
036262,000123: # 1/PIPADT - DELTA TIME SCALED AT (CS) X 2(+8)
036263,000124: # DELVX, DELVY, DELVZ - PIPA READINGS IN THE MAJOR PARTS - MINOR PARTS IRRELEVANT
036264,000125:
036265,000126:
036266,000127: # OUTPUT
036267,000128: # DELVX, DELVY, DELVZ - PIPA COUNTS SCALED 2(+14) COMPENSATED FOR PIPA BIAS AND SCALE FACTOR ERROR
036268,000129: # GCOMP - 3 DP LOCATIONS CONTAINING GYRO PULSES TO COMPENSATE FOR NBD, ADIA, AND ADSRA COEFFICIENTS
036269,000130:
036270,000131: # DEBRIS
036271,000132: # CENTRALS - A,L,Q
036272,000133: # OTHER - BUF - BUF +2, VBUF - VBUF +2, GCOMPSW
036273,000134:
Page 804 |
036275,000136: 12,3220 33457 1/PIPA CAF LGCOMP # SAVE EBANK OF CALLING PROGRAM
036276,000137: 12,3221 56003 XCH EBANK
036277,000138:
036278,000139: 12,3222 54153 TS MODE
036279,000140:
036280,000141: 12,3223 11463 CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
036281,000142: 12,3224 13227 TCF +3
036282,000143: 12,3225 13227 TCF +2
036283,000144: 12,3226 13350 TCF IRIG1 # RETURN
036284,000145:
036285,000146: 12,3227 37753 1/PIPA1 CAF FOUR # PIPAZ, PIPAY, PIPAX
036286,000147: 12,3230 54122 TS BUF +2
036287,000148:
036288,000149: 12,3231 50000 INDEX A
036289,000150: 12,3232 30403 CA DELVX # CONTAINS PREVIOUS PIPA READING
036290,000151: 12,3233 54112 TS VBUF # TEMPORARY - MINOR PARTS IRRELEVANT
036291,000152:
036292,000153: 12,3234 50122 INDEX BUF +2
036293,000154: 12,3235 41436 CS PIPABIAS # (PIPA PULSES)/(CS) X 2(-5) *
036294,000155: 12,3236 00006 EXTEND
036295,000156: 12,3237 71163 MP 1/PIPADT # (CS) X 2(+8) NOW (PIPA PULSES) X 2(+3)*
036296,000157: 12,3240 00006 EXTEND # *
036297,000158: 12,3241 77752 MP BIT4 # SCALE 2(-3) SHIFT LEFT 3 *
036298,000159: 12,3242 22113 LXCH VBUF +1 # (PIPA PULSES) X 2(0) FRACTIONAL PULSE*
036299,000160:
036300,000161: 12,3243 50122 INDEX BUF +2
036301,000162:
036302,000163: 12,3244 31437 CA PIPASCF # (P.P.M.) X 2(-9)
036303,000164: 12,3245 00006 EXTEND
036304,000165: 12,3246 70112 MP VBUF # (PIPA PULSES) X 2(+14)
036305,000166: 12,3247 22114 LXCH VBUF +2 # SAVE FOR FRACTIONAL COMPUTATION
036306,000167: 12,3250 00006 EXTEND
036307,000168: 12,3251 77750 MP BIT6 # SCALE 2(+9) NOW PIPA PULSES X 2(+14)
036308,000169: 12,3252 20113 DAS VBUF # (PIPAI) - (NBD)(DELTAT) + HI(PIPAI)(SFE)
036309,000170:
036310,000171: 12,3253 30114 CA VBUF +2 # NOW MINOR PART
036311,000172: 12,3254 00006 EXTEND
036312,000173:
036313,000174: 12,3255 77750 MP BIT6 # SCALE 2(+9) SHIFT RIGHT 9
036314,000175: 12,3256 54001 TS L
036315,000176: 12,3257 37761 CAF ZERO
036316,000177: 12,3260 20113 DAS VBUF # (PIPAI) - (NBD)(DELTAT) + (PIPAI)(SFE)
036317,000178:
036318,000179: 12,3261 00006 EXTEND
036319,000180: 12,3262 30113 DCA VBUF # RESTORE COMPENSATED PIPA READING
036320,000181: 12,3263 50122 INDEX BUF +2
036321,000182: 12,3264 52404 DXCH DELVX
036322,000183:
036323,000184: 12,3265 10122 CCS BUF +2 # PIPAZ, PIPAY, PIPAX
036324,000185: 12,3266 67763 AD NEG1
036325,000186:
036326,000187: 12,3267 13230 TCF 1/PIPA1 +1
036327,000188: 12,3270 13271 NOOP # LESS THAN ZERO IMPOSSIBLE
036328,000189:
Page 805 |
036330,000191: 12,3271 55463 IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS
036331,000192: 12,3272 54120 TS BUF # INDEX COUNTER - IRIGX, IRIGY, IRIGZ
036332,000193:
036333,000194: 12,3273 00006 IRIGX EXTEND
036334,000195: 12,3274 40404 DCS DELVX # (PIPA PULSES) X 2(+14)
036335,000196: 12,3275 52145 DXCH MPAC
036336,000197: 12,3276 31447 CA ADIAX # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
036337,000198: 12,3277 03353 TC GCOMPSUB # -(ADIAX)(PIPAX) (GYRO PULSES) X 2(+14)
036338,000199:
036339,000200:
036340,000201: 12,3300 00006 EXTEND
036341,000202: 12,3301 40406 DCS DELVY # (PIPA PULSES) X 2(+14)
036342,000203: 12,3302 52145 DXCH MPAC
036343,000204: 12,3303 41452 CS ADSRAX # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
036344,000205: 12,3304 03353 TC GCOMPSUB # +(ADSRAX)(PIPAY) (GYRO PULSES) X 2(+14)
036345,000206:
036346,000207: 12,3305 41444 CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
036347,000208: 12,3306 03402 TC DRIFSTUB # -(NBDX)(DELTAT) (GYRO PULSES) X 2(+14)
036348,000209:
036349,000210: 12,3307 00006 IRIGY EXTEND
036350,000211: 12,3310 40406 DCS DELVY # (PIPA PULSES) X 2(+14)
036351,000212: 12,3311 52145 DXCH MPAC
036352,000213: 12,3312 31450 CA ADIAY # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
036353,000214: 12,3313 03353 TC GCOMPSUB # -(ADIAY)(PIPAY) (GYRO PULSES) X 2(+14)
036354,000215:
036355,000216: 12,3314 00006 EXTEND
036356,000217: 12,3315 40410 DCS DELVZ # (PIPA PULSES) X 2(+14)
036357,000218: 12,3316 52145 DXCH MPAC
036358,000219: 12,3317 41453 CS ADSRAY # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
036359,000220: 12,3320 03353 TC GCOMPSUB # +(ADSRAY)(PIPAZ) (GYRO PULSES) X 2(+14)
036360,000221:
036361,000222: 12,3321 41445 CS NBDY # (GYRO PULSES)/(CS) X 2(-5)
036362,000223:
036363,000224: 12,3322 03402 TC DRIFSTUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
036364,000225:
036365,000226: 12,3323 00006 IRIGZ EXTEND
036366,000227: 12,3324 40406 DCS DELVY # (PIPA PULSES) X 2(+14)
036367,000228: 12,3325 52145 DXCH MPAC
036368,000229: 12,3326 31454 CA ADSRAZ # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
036369,000230: 12,3327 03353 TC GCOMPSUB # -(ADSRAZ)(PIPAY) (GYRO PULSES) X 2(+14)
036370,000231:
036371,000232: 12,3330 00006 EXTEND
036372,000233: 12,3331 40410 DCS DELVZ # (PIPA PULSES) X 2(+14)
036373,000234:
036374,000235: 12,3332 52145 DXCH MPAC
036375,000236: 12,3333 31451 CA ADIAZ # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
036376,000237: 12,3334 03353 TC GCOMPSUB # -(ADIAZ)(PIPAZ) (GYRO PULSES) X 2(+14)
036377,000238:
036378,000239: 12,3335 31446 CA NBDZ # (GYRO PULSES)/(CS) X 2(-5)
036379,000240: 12,3336 03402 TC DRIFSTUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2(+14)
036380,000241:
Page 806 |
036382,000243: 12,3337 11463 CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
036383,000244:
036384,000245: 12,3340 13342 TCF +2 # YES
036385,000246: 12,3341 13350 TCF IRIG1 # NO
036386,000247:
036387,000248: 12,3342 00004 INHINT
036388,000249: 12,3343 35674 CAF PRIO35 # SEND OUT GYRO TORQUING COMMANDS
036389,000250: 12,3344 05523 TC NOVAC
036390,000251: 12,3345 E3,1444 EBANK= NBDX
036391,000252: 12,3345 03435 24003 2CADR 1/GYRO
036392,000253:
036393,000254: 12,3347 00003 RELINT
036394,000255: 12,3350 30153 IRIG1 CA MODE # SET EBANK FOR RETURN
036395,000256: 12,3351 54003 TS EBANK
036396,000257:
036397,000258: 12,3352 15237 TCF SWRETURN
036398,000259:
036399,000260:
036400,000261:
036401,000262:
036402,000263:
036403,000264: 12,3353 56144 GCOMPSUB XCH MPAC # ADIA OR ADSRA COEFFICIENT ARRIVES IN A
036404,000265: 12,3354 00006 EXTEND # C(MPAC) = (PIPA PULSES) X 2(+14)
036405,000266: 12,3355 70144 MP MPAC # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
036406,000267:
036407,000268: 12,3356 52113 DXCH VBUF # NOW = (GYRO PULSES) X 2(+8) *
036408,000269:
036409,000270: 12,3357 30145 CA MPAC +1 # MINOR PART PIPA PULSES
036410,000271: 12,3360 00006 EXTEND
036411,000272: 12,3361 70144 MP MPAC # ADIA OR ADSRA
036412,000273: 12,3362 54001 TS L
036413,000274: 12,3363 37761 CAF ZERO
036414,000275: 12,3364 20113 DAS VBUF # NOW = (GYRO PULSES) X 2(+8) *
036415,000276:
036416,000277: 12,3365 30112 CA VBUF # PARTIAL RESULT - MAJOR
036417,000278: 12,3366 00006 EXTEND
036418,000279: 12,3367 77745 MP BIT9 # SCALE 2(+6) SHIFT RIGHT 6 *
036419,000280:
036420,000281: 12,3370 50120 INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
036421,000282: 12,3371 21456 DAS GCOMP # HI(ADIA)(PIPAI) OR HI(ADSRA)(PIPAI)
036422,000283:
036423,000284: 12,3372 30113 CA VBUF +1 # PARTIAL RESULT - MINOR
036424,000285: 12,3373 00006 EXTEND
036425,000286: 12,3374 77745 MP BIT9 # SCALE 2(+6) SHIFT RIGHT 6 *
036426,000287: 12,3375 54001 TS L
036427,000288: 12,3376 37761 CAF ZERO
036428,000289: 12,3377 50120 INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
036429,000290: 12,3400 21456 DAS GCOMP # (ADIA)(PIPAI) OR (ADSRA)(PIPAI)
036430,000291:
036431,000292: 12,3401 00002 TC Q
036432,000293:
Page 807 |
036434,000295: 12,3402 00006 DRIFSTUB EXTEND
036435,000296: 12,3403 22121 QXCH BUF +1
036436,000297:
036437,000298: 12,3404 00006 EXTEND # C(A) = NBD (GYRO PULSES)/(CS) X 2(-5)
036438,000299: 12,3405 71163 MP 1/PIPADT # (CS) X 2(+8) NOW (GYRO PULSES) X 2(+3)
036439,000300: 12,3406 22145 LXCH MPAC +1 # SAVE FOR FRACTIONAL COMPENSATION
036440,000301:
036441,000302: 12,3407 00006 EXTEND
036442,000303: 12,3410 77752 MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
036443,000304: 12,3411 50120 INDEX BUF
036444,000305: 12,3412 21456 DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
036445,000306:
036446,000307: 12,3413 30145 CA MPAC +1 # NOW MINOR PART
036447,000308: 12,3414 00006 EXTEND
036448,000309: 12,3415 77752 MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
036449,000310: 12,3416 54001 TS L
036450,000311: 12,3417 37761 CAF ZERO
036451,000312: 12,3420 50120 INDEX BUF # ADD IN FRACTIONAL COMPENSATION
036452,000313: 12,3421 21456 DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
036453,000314:
036454,000315:
036455,000316: 12,3422 37754 DRFTSUB2 CAF TWO # PIPAX, PIPAY, PIPAZ
036456,000317: 12,3423 60120 AD BUF
036457,000318: 12,3424 56120 XCH BUF
036458,000319: 12,3425 50000 INDEX A
036459,000320: 12,3426 11455 CCS GCOMP # ARE GYRO COMMANDS 1 PULSE OR GREATER
036460,000321: 12,3427 13431 TCF +2 # YES
036461,000322: 12,3430 00121 TC BUF +1 # NO
036462,000323:
036463,000324: 12,3431 73501 MASK COMPCHK # DEC -1
036464,000325:
036465,000326: 12,3432 10000 CCS A # ARE GYRO COMMANDS GREATER THAN 2 PULSES
036466,000327: 12,3433 55463 TS GCOMPSW # YES - SET GCOMPSW POSITIVE
036467,000328: 12,3434 00121 TC BUF +1 # NO
036468,000329:
Page 808 |
036470,000331: 12,3435 37753 1/GYRO CAF FOUR # PIPAZ, PIPAY, PIPAX
036471,000332: 12,3436 54120 TS BUF
036472,000333:
036473,000334: 12,3437 50120 INDEX BUF # SCALE GYRO COMMANDS FOR IMUPULSE
036474,000335: 12,3440 31456 CA GCOMP +1 # FRACTIONAL PULSES
036475,000336: 12,3441 00006 EXTEND
036476,000337: 12,3442 77746 MP BIT8 # SHIFT RIGHT 7
036477,000338: 12,3443 50120 INDEX BUF
036478,000339: 12,3444 55456 TS GCOMP +1 # FRACTIONAL PULSES SCALED
036479,000340:
036480,000341: 12,3445 37761 CAF ZERO # SET GCOMP = 0 FOR DAS INSTRUCTION
036481,000342: 12,3446 50120 INDEX BUF
036482,000343:
036483,000344: 12,3447 57455 XCH GCOMP # GYRO PULSES
036484,000345: 12,3450 00006 EXTEND
036485,000346: 12,3451 77746 MP BIT8 # SHIFT RIGHT 7
036486,000347: 12,3452 50120 INDEX BUF
036487,000348: 12,3453 21456 DAS GCOMP # ADD THESE TO FRACTIONAL PULSES ABOVE
036488,000349:
036489,000350: 12,3454 10120 CCS BUF # PIPAZ, PIPAY, PIPAX
036490,000351: 12,3455 67763 AD NEG1
036491,000352: 12,3456 13436 TCF 1/GYRO +1
036492,000353: 12,3457 01455 LGCOMP ECADR GCOMP # LESS THAN ZERO IMPOSSIBLE
036493,000354:
036494,000355: 12,3460 33457 CAF LGCOMP
036495,000356:
036496,000357: 12,3461 05224 TC BANKCALL
036497,000358: 12,3462 26361 CADR IMUPULSE # CALL GYRO TORQUING ROUTINE
036498,000359: 12,3463 05224 TC BANKCALL
036499,000360: 12,3464 26762 CADR IMUSTALL # WAIT FOR PULSES TO GET OUT
036500,000361: 12,3465 15605 TCF ENDOFJOB # TEMPORARY
036501,000362:
036502,000363: 12,3466 37753 GCOMP1 CAF FOUR # PIPAZ, PIPAY, PIPAX
036503,000364: 12,3467 54120 TS BUF
036504,000365:
036505,000366: 12,3470 50120 INDEX BUF # RESCALE
036506,000367:
036507,000368: 12,3471 31456 CA GCOMP +1
036508,000369: 12,3472 00006 EXTEND
036509,000370: 12,3473 77746 MP BIT8 # SHIFT MINOR PART LEFT 7 - MAJOR PART = 0
036510,000371: 12,3474 50120 INDEX BUF
036511,000372: 12,3475 23456 LXCH GCOMP +1 # BITS 8-14 OF MINOR PART WERE = 0
036512,000373:
036513,000374: 12,3476 10120 CCS BUF # PIPAZ, PIPAY, PIPAX
036514,000375: 12,3477 67763 AD NEG1
036515,000376: 12,3500 13467 TCF GCOMP1 +1
036516,000377: 12,3501 77776 COMPCHK DEC -1 B-14 # LESS THAN ZERO IMPOSSIBLE
036517,000378: 12,3502 15605 TCF ENDOFJOB
036518,000379:
Page 809 |
036520,000381: 12,3503 11463 NBDONLY CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
036521,000382: 12,3504 13507 TCF +3
036522,000383: 12,3505 13507 TCF +2
036523,000384: 12,3506 15605 TCF ENDOFJOB
036524,000385:
036525,000386: 12,3507 30025 CA TIME1 # (CS) X 2(+14)
036526,000387: 12,3510 57163 XCH 1/PIPADT # PREVIOUS TIME
036527,000388: 12,3511 40000 COM
036528,000389:
036529,000390: 12,3512 61163 AD 1/PIPADT
036530,000391: 12,3513 10000 NBD2 CCS A # CALCULATE ELAPSED TIME
036531,000392: 12,3514 67755 AD ONE # NO TIME1 OVERFLOW
036532,000393: 12,3515 13522 TCF NBD3 # RESTORE TIME DIFFERENCE AND JUMP
036533,000394: 12,3516 13520 TCF +2 # TIME1 OVERFLOW
036534,000395: 12,3517 15605 TCF ENDOFJOB # IF ELAPSED TIME = 0 (DIFFERENCE = -0)
036535,000396:
036536,000397: 12,3520 40000 COM # CALCULATE ABSOLUTE DIFFERENCE
036537,000398: 12,3521 67735 AD POSMAX
036538,000399:
036539,000400: 12,3522 00006 NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14)
036540,000401: 12,3523 77744 MP BIT10 # SHIFT RIGHT 5
036541,000402: 12,3524 52113 DXCH VBUF
036542,000403: 12,3525 00006 EXTEND
036543,000404: 12,3526 30113 DCA VBUF
036544,000405: 12,3527 52145 DXCH MPAC # DELTAT NOW SCALED (CS) X 2(+19)
036545,000406:
036546,000407: 12,3530 37761 CAF ZERO
036547,000408: 12,3531 55463 TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS
036548,000409: 12,3532 54120 TS BUF # PIPAX, PIPAY, PIPAZ
036549,000410:
036550,000411: 12,3533 41444 CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
036551,000412: 12,3534 03552 TC FBIASSUB # -(NBDX)(DELTAT) (GYRO PULSES) X 2(+14)
036552,000413:
036553,000414:
036554,000415: 12,3535 00006 EXTEND
036555,000416: 12,3536 40113 DCS VBUF
036556,000417: 12,3537 52145 DXCH MPAC # DELTAT SCALED (CS) X 2(+19)
036557,000418: 12,3540 31445 CA NBDY # (GYRO PULSES)/(CS) X 2(-5)
036558,000419: 12,3541 03552 TC FBIASSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
036559,000420:
036560,000421: 12,3542 00006 EXTEND
036561,000422: 12,3543 40113 DCS VBUF
036562,000423: 12,3544 52145 DXCH MPAC # DELTAT SCALED (CS) X 2(+19)
036563,000424:
036564,000425: 12,3545 41446 CS NBDZ # (GYRO PULSES)/(CS) X 2(-5)
036565,000426: 12,3546 03552 TC FBIASSUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2 (+14)
036566,000427:
036567,000428: 12,3547 11463 CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
036568,000429: 12,3550 13435 TCF 1/GYRO # YES
036569,000430: 12,3551 15605 TCF ENDOFJOB # NO
036570,000431:
Page 810 |
036572,000433: 12,3552 56002 FBIASSUB XCH Q
036573,000434:
036574,000435: 12,3553 54121 TS BUF +1
036575,000436:
036576,000437: 12,3554 30002 CA Q # NBD SCALED (GYRO PULSES)/(CS) X 2(-5)
036577,000438: 12,3555 00006 EXTEND
036578,000439: 12,3556 70144 MP MPAC # DELTAT SCALED (CS) X 2(+19)
036579,000440: 12,3557 50120 INDEX BUF
036580,000441: 12,3560 21456 DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
036581,000442:
036582,000443: 12,3561 30002 CA Q # NOW FRACTIONAL PART
036583,000444: 12,3562 00006 EXTEND
036584,000445: 12,3563 70145 MP MPAC +1
036585,000446: 12,3564 54001 TS L
036586,000447:
036587,000448: 12,3565 37761 CAF ZERO
036588,000449: 12,3566 50120 INDEX BUF
036589,000450: 12,3567 21456 DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
036590,000451:
036591,000452: 12,3570 13422 TCF DRFTSUB2 # CHECK MAGNITUDE OF COMPENSATION
036592,000453:
036593,000454:
036594,000455:
036595,000456:
036596,000457:
036597,000458: 12,3571 11463 LASTBIAS CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
036598,000459: 12,3572 13575 TCF +3
036599,000460: 12,3573 13575 TCF +2
036600,000461: 12,3574 15605 TCF ENDOFJOB
036601,000462:
036602,000463: 12,3575 35670 CAF PRIO31 # 2 SECONDS SCALED (CS) X 2(+14)
036603,000464: 12,3576 57163 XCH 1/PIPADT
036604,000465: 12,3577 40000 COM
036605,000466: 12,3600 61321 AD PIPTIME +1 # TIME AT PIPAI = 0
036606,000467: 12,3601 13513 TCF NBD2
036607,000468:
036608,000469:
036609,000470:
036610,000471:
036611,000472: 12,3602 33457 GCOMPZER CAF LGCOMP # ROUTINE TO ZERO GCOMP BEFORE FIRST
036612,000473: 12,3603 56003 XCH EBANK # CALL TO 1/PIPA
036613,000474: 12,3604 54153 TS MODE
036614,000475:
036615,000476: 12,3605 37761 CAF ZERO
036616,000477: 12,3606 55463 TS GCOMPSW
036617,000478: 12,3607 55455 TS GCOMP
036618,000479: 12,3610 55456 TS GCOMP +1
036619,000480: 12,3611 55457 TS GCOMP +2
036620,000481:
036621,000482: 12,3612 55460 TS GCOMP +3
036622,000483: 12,3613 55461 TS GCOMP +4
036623,000484: 12,3614 55462 TS GCOMP +5
036624,000485:
Page 811 |
036626,000487: 12,3615 30153 CA MODE
036627,000488: 12,3616 54003 TS EBANK
036628,000489: 12,3617 15237 TCF SWRETURN # RETURN TO CALLER
End of include-file IMU_COMPENSATION_PACKAGE.agc. Parent file is MAIN.agc