Source Code

These source-code files derive from a printout of Luminary 116 (the Apollo 12 Lunar Module guidance computer program), from the personal library of original AGC developer Don Eyles, digitally photographed at archive.org, financially sponsored by Ron Burkey, 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 116 OF AGC PROGRAM LUMINARY BY NASA 2021112-071
	19:09 AUG. 11,1969
Note that the date is the date of the printout, not the date of the program revision.

062555,000002:                                                                                                  ## Copyright:   Public domain.
062556,000003:                                                                                                  ## Filename:    TRIM_GIMBAL_CONTROL_SYSTEM.agc
062557,000004:                                                                                                  ## Purpose:     A section of Luminary revision 116.
062558,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM) 
062559,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 12.
062560,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
062561,000008:                                                                                                  ##              that the code format has been changed to conform to the
062562,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
062563,000010:                                                                                                  ##              original YUL assembler.
062564,000011:                                                                                                  ## Reference:   pp. 1462-1474
062565,000012:                                                                                                  ## Assembler:   yaYUL
062566,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
062567,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
062568,000015:                                                                                                  ## Mod history: 2017-01-22 MAS  Created from Luminary 99.
062569,000016:                                                                                                  ##              2017-01-30 RRB  Updated for Luminary 116.
062570,000017:                                                                                                  ##              2017-03-14 RSB  Proofed comment text via 3-way diff vs
062571,000018:                                                                                                  ##                              Luminary 99 and 131.
062572,000019: 

Page 1462

062574,000021: 21,3070                                           BANK     21                                    
062575,000022: 21,3070  E6,1450                                  EBANK=   QDIFF                                 
062576,000023: 21,2000                                           SETLOC   DAPS4                                 
062577,000024: 21,2000                                           BANK                                           
062578,000025: 
062579,000026: 21,3070                                           COUNT*   $$/DAPGT                              
062580,000027: 
062581,000028:                                                                                                  #  CONTROL REACHES THIS POINT UNDER EITHER OF THE FOLLOWING TWO CONDITIONS ONCE THE DESCENT ENGINE AND THE DIGITAL
062582,000029:                                                                                                  #  AUTOPILOT ARE BOTH ON:
062583,000030:                                                                                                  #           A) THE TRIM GIMBAL CONTROL LAW WAS ON DURING THE PREVIOUS Q,R-AXIS TIME5 INTERRUPT (OR THE DAPIDLER
062584,000031:                                                                                                  #              INITIALIZATION WAS SET FOR TRIM GIMBAL CONTROL AND THIS IS THE FIRST PASS), OR
062585,000032:                                                                                                  #           B) THE Q,R-AXES RCS AUTOPILOT DETERMINED THAT THE VEHICLE WAS ENTERING (OR HAD JUST ENTERED) A COAST
062586,000033:                                                                                                  #              ZONE WITH A SMALL OFFSET ANGULAR ACCELERATION.
062587,000034: 
062588,000035:                                                                                                  #  GTS IS THE ENTRY TO THE GIMBAL TRIM SYSTEM FOR CONTROLLING ATTITUDE ERRORS AND RATES AS WELL AS ACCELERATIONS.
062589,000036: 
062590,000037: 21,3070           37752        GTS                CAF      NEGONE                                #  MAKE THE NEXT PASS THROUGH THE DAP BE
062591,000038: 21,3071           55631                           TS       COTROLER                              #    THROUGH RCS CONTROL,
062592,000039: 21,3072           34751                           CAF      FOUR                                  #    AND ENSURE THAT IT IS NOT A SKIP.
062593,000040: 21,3073           55535                           TS       SKIPU                                 
062594,000041: 21,3074           55536                           TS       SKIPV                                 
062595,000042: 
062596,000043: 21,3075           34752                           CAF      TWO                                   
062597,000044: 21,3076           55633                           TS       INGTS                                 #  SET INDICATOR OF GTS CONTROL POSITIVE.
062598,000045: 21,3077           55632                           TS       QGIMTIMR                              #  SET TIMERS TO 200 MSEC TO AVOID BOTH
062599,000046: 21,3100           55634                           TS       RGIMTIMR                              #  RUNAWAY AND INTERFERENCE BY NULLING.
062600,000047: 
062601,000048:                                                                                                  #  THE DRIVE SETTING ALGORITHM
062602,000049: 
062603,000050:                                                                                                  #  DEL = SGN(OMEGA + ALPHA*ABS(ALPHA)/(2*K))
062604,000051:                                                                                                  #                                              2               1/2                  2       3/2
062605,000052:                                                                                                  #  NEGUSUM = ERROR*K + ALPHA*(DEL*OMEGA + ALPHA /(3*K)) + DEL*K   (DEL*OMEGA + ALPHA /(2*K))
062606,000053: 
062607,000054:                                                                                                  #  DRIVE = -SGN(NEGUSUM)
062608,000055: 
062609,000056: 21,3101           30021                           CA       SR                                    #  SAVE THE SR.  SHIFT IT LEFT TO CORRECT
062610,000057: 21,3102           60000                           AD       A                                     #  FOR THE RIGHT SHIFT DUE TO EDITING.
062611,000058: 21,3103           55505                           TS       SAVESR                                
062612,000059: 
062613,000060: 21,3104           34752        GTSGO+DN           CAF      TWO                                   #  SET INDEXER FOR R-AXIS CALCULATIONS.
062614,000061: 21,3105           13107                           TCF      GOQTRIMG   +1                         
062615,000062: 
062616,000063: 21,3106           34755        GOQTRIMG           CAF      ZERO                                  #  SET INDEXER FOR Q-AXIS CALCULATIONS
062617,000064: 21,3107           55750                           TS       QRCNTR                                
062618,000065: 
062619,000066: 21,3110           51750                           INDEX    QRCNTR                                #  AOS SCALED AT PI/2
062620,000067: 21,3111           31537                           CA       AOSQ                                  
062621,000068: 21,3112           00006                           EXTEND                                         
062622,000069: 21,3113           74752                           MP       BIT2                                  #  RESCALE AOS TO PI/4

Page 1463

062624,000071: 21,3114           00006                           EXTEND                                         
062625,000072: 21,3115           13121                           BZF      GTSQAXIS   -3                         #  USE FULL SCALE FOR LARGER AOS ESTIMATES.
062626,000073: 
062627,000074: 21,3116           50000                           INDEX    A                                     
062628,000075: 21,3117           44734                           CS       LIMITS                                #  LIMITS +1 CONTAINS NEGMAX.
062629,000076: 21,3120           56001                           XCH      L                                     #  LIMITS -1 CONTAINS POSMAX.
062630,000077: 
062631,000078: 21,3121           11750                           CCS      QRCNTR                                #  PICK UP RATE FOR THIS AXIS.  RATE CELLS
062632,000079: 21,3122           50000                           INDEX    A                                     #  ARE ADJACENT, NOT SEPARATED.  AT PI/4
062633,000080: 21,3123           31436                           CA       EDOTQ                                 
062634,000081: 21,3124           53744        GTSQAXIS           DXCH     WCENTRAL                              
062635,000082: 
062636,000083: 21,3125           51750                           INDEX    QRCNTR                                #  COLLECT K FOR THIS AXIS
062637,000084: 21,3126           31504                           CA       KQ                                    
062638,000085: 21,3127           55741                           TS       KCENTRAL                              
062639,000086: 
062640,000087: 21,3130           00006                           EXTEND                                         #  CONTROL AUTHORITY ZERO.  AVOID DRIVING
062641,000088: 21,3131           13567                           BZF      POSDRIVE   +1                         #  ENGINE BELL TO THE STOPS.
062642,000089: 
062643,000090: 21,3132           51750                           INDEX    QRCNTR                                #  QDIFF, RDIFF ARE STORED IN D.P.
062644,000091: 21,3133           31450                           CAE      QDIFF                                 
062645,000092: 
062646,000093: 21,3134           00006        ALGORTHM           EXTEND                                         #  Q(R)DIFF IS THETA (ERROR) SCALED AT PI.
062647,000094: 21,3135           71741                           MP       KCENTRAL                              #  FORM K*ERROR AT PI(2)/2(8), IN D.P.
062648,000095: 21,3136           23737                           LXCH     K2THETA                               
062649,000096: 21,3137           00006                           EXTEND                                         
062650,000097: 21,3140           74747                           MP       BIT5                                  #  RESCALE TO 4*PI(2)
062651,000098: 21,3141           53740                           DXCH     K2THETA                               
062652,000099: 21,3142           00006                           EXTEND                                         
062653,000100: 21,3143           74747                           MP       BIT5                                  #  FIRST TERM OF NEGUSUM IN K2THETA.
062654,000101: 21,3144           27740                           ADS      K2THETA    +1                         #  NO CARRY NEEDED    D.P. AT 4*PI(2)
062655,000102: 
062656,000103: 21,3145           41744                           CS       ACENTRAL                              #  FORM ALPHA(2)/(2*K) AT 16*PI, IN D.P.,
062657,000104: 21,3146           00006                           EXTEND                                         #  LIMITING QUOTIENT TO AVOID OVERFLOW.
062658,000105: 21,3147           74736                           MP       BIT14                                 #  -ALPHA/2 IN A, SCALED AT PI/4
062659,000106: 21,3150           00006                           EXTEND                                         
062660,000107: 21,3151           71744                           MP       ACENTRAL                              #  -ALPHA(2)/2 IN A,L, SCALED AT PI(2)/16
062661,000108: 21,3152           61741                           AD       KCENTRAL                              
062662,000109: 21,3153           00006                           EXTEND                                         
062663,000110: 21,3154           63171                           BZMF     HUGEQUOT                              #  K-ALPHA(2)/2 SHOULD BE PNZ FO DIVISION
062664,000111: 
062665,000112: 21,3155           00006                           EXTEND                                         
062666,000113: 21,3156           40001                           DCS      A                                     #  ALPHA(2)/2 - K
062667,000114: 21,3157           61741                           AD       KCENTRAL                              
062668,000115: 21,3160           00006                           EXTEND                                         
062669,000116: 21,3161           11741                           DV       KCENTRAL                              #  HIGH ORDER OF QUOTIENT.
062670,000117: 21,3162           57746                           XCH      A2CNTRAL                              
062671,000118: 21,3163           30001                           CA       L                                     #  SHIFT UP THE REMAINDER.
062672,000119: 21,3164           22007                           LXCH     7                                     #  ZERO LOW-ORDER DIVIDEND.
062673,000120: 21,3165           00006                           EXTEND                                         

Page 1464

062675,000122: 21,3166           11741                           DV       KCENTRAL                              
062676,000123: 21,3167           57747                           XCH      A2CNTRAL   +1                         #  QUOTIENT STORED AT 16*PI, D.P.
062677,000124: 21,3170           13174                           TCF      HAVEQUOT                              
062678,000125: 
062679,000126: 21,3171           34733        HUGEQUOT           CA       POSMAX                                
062680,000127: 21,3172           54001                           TS       L                                     
062681,000128: 21,3173           53747                           DXCH     A2CNTRAL                              #  LIMITED QUOTIENT STORED AT 16*PI, D.P.
062682,000129: 
062683,000130: 21,3174           31743        HAVEQUOT           CA       WCENTRAL                              
062684,000131: 21,3175           00006                           EXTEND                                         
062685,000132: 21,3176           74743                           MP       BIT9                                  #  RESCALE OMEGA AT 16*PI IN D.P.
062686,000133: 21,3177           53743                           DXCH     K2CNTRAL                              #  LOWER WORD OVERLAYS OMEGA IN WCENTRAL
062687,000134: 
062688,000135: 21,3200           00006                           EXTEND                                         
062689,000136: 21,3201           31743                           DCA      K2CNTRAL                              
062690,000137: 21,3202           53752                           DXCH     FUNCTION                              
062691,000138: 
062692,000139: 21,3203           31744                           CA       ACENTRAL                              #  GET ALPHA*ABS(ALPHA)/(2*K)
062693,000140: 21,3204           00006                           EXTEND                                         
062694,000141: 21,3205           63211                           BZMF     +4                                    
062695,000142: 
062696,000143: 21,3206           00006                           EXTEND                                         
062697,000144: 21,3207           31747                           DCA      A2CNTRAL                              
062698,000145: 21,3210           13213                           TCF      +3                                    
062699,000146: 
062700,000147: 21,3211           00006                           EXTEND                                         
062701,000148: 21,3212           41747                           DCS      A2CNTRAL                              
062702,000149: 
062703,000150: 21,3213           21752                           DAS      FUNCTION                              #  OMEGA + ALPHA*ABS(ALPHA)/2*K) AT 16*PI
062704,000151: 
062705,000152: 21,3214           11751                           CCS      FUNCTION                              #  DEL = +1 FOR FUNCT1 GREATER THAN ZERO.
062706,000153: 21,3215           13221                           TCF      POSFNCT1                              #  OTHERWISE DEL = -1
062707,000154: 21,3216           13220                           TCF      +2                                    
062708,000155: 21,3217           13223                           TCF      NEGFNCT1                              
062709,000156: 
062710,000157: 21,3220           11752                           CCS      FUNCTION   +1                         #  USE LOW ORDER WORD SINCE HIGH IS ZERO
062711,000158: 21,3221           34753        POSFNCT1           CAF      BIT1                                  
062712,000159: 21,3222           13224                           TCF      +2                                    
062713,000160: 21,3223           44753        NEGFNCT1           CS       BIT1                                  
062714,000161: 21,3224           55745                           TS       DEL                                   
062715,000162: 
062716,000163: 21,3225           11745                           CCS      DEL                                   #  REPLACE OMEGA BY DEL*OMEGA
062717,000164: 21,3226           13240                           TCF      FUNCT2                                #  POSITIVE DEL VALUE.  PROCEED.
062718,000165: 21,3227           13231                           TCF      DEFUNCT                               
062719,000166: 21,3230           13235                           TCF      NEGFNCT2                              
062720,000167: 
062721,000168: 21,3231           55742        DEFUNCT            TS       K2CNTRAL                              
062722,000169: 21,3232           55743                           TS       K2CNTRAL   +1                         
062723,000170: 21,3233           13240                           TCF      FUNCT2                                
062724,000171: 

Page 1465

062726,000173: 21,3234           65252        NEG1/3             DEC      -.33333                               
062727,000174: 
062728,000175: 21,3235           00006        NEGFNCT2           EXTEND                                         
062729,000176: 21,3236           41743                           DCS      K2CNTRAL                              
062730,000177: 21,3237           53743                           DXCH     K2CNTRAL                              
062731,000178: 
062732,000179: 21,3240           00006        FUNCT2             EXTEND                                         
062733,000180: 21,3241           31747                           DCA      A2CNTRAL                              
062734,000181: 21,3242           21743                           DAS      K2CNTRAL                              #  DEL*OMEGA + ALPHA(2)/(2*K) AT 16*PI, D.P.
062735,000182: 
062736,000183: 21,3243           31746        FUNCT3             CA       A2CNTRAL                              
062737,000184: 21,3244           00006                           EXTEND                                         
062738,000185: 21,3245           73234                           MP       NEG1/3                                
062739,000186: 21,3246           53747                           DXCH     A2CNTRAL                              
062740,000187: 21,3247           30001                           CA       L                                     
062741,000188: 21,3250           00006                           EXTEND                                         
062742,000189: 21,3251           73234                           MP       NEG1/3                                
062743,000190: 21,3252           27747                           ADS      A2CNTRAL   +1                         
062744,000191: 21,3253           54001                           TS       L                                     
062745,000192: 21,3254           13256                           TCF      +2                                    #  A2CNTRAL NOW CONTAINS -ALPHA(2)/(6*K),
062746,000193: 21,3255           27746                           ADS      A2CNTRAL                              #  SCALED AT 16*PI, IN D.P.
062747,000194: 
062748,000195: 21,3256           00006                           EXTEND                                         
062749,000196: 21,3257           31743                           DCA      K2CNTRAL                              #  DEL*OMEGA + ALPHA(2)/(3*K) IN A2CNTRAL,
062750,000197: 21,3260           21747                           DAS      A2CNTRAL                              #  SCALED AT 16*PI, D.P.
062751,000198: 
062752,000199: 21,3261           31746                           CA       A2CNTRAL                              
062753,000200: 21,3262           00006                           EXTEND                                         
062754,000201: 21,3263           71744                           MP       ACENTRAL                              
062755,000202: 21,3264           21740                           DAS      K2THETA                               
062756,000203: 21,3265           31747                           CA       A2CNTRAL   +1                         
062757,000204: 21,3266           00006                           EXTEND                                         
062758,000205: 21,3267           71744                           MP       ACENTRAL                              #  ACENTRAL MAY NOW BE OVERLAID.
062759,000206: 21,3270           27740                           ADS      K2THETA    +1                         
062760,000207: 21,3271           54001                           TS       L                                     
062761,000208: 21,3272           13274                           TCF      +2                                    #  TWO TERMS OF NEGUSUM ACCUMULATED, SO FAR
062762,000209: 21,3273           27737                           ADS      K2THETA                               #  SCALED AT 4*PI(2), IN D.P.
062763,000210: 
062764,000211: 21,3274           31742        GETROOT            CA       K2CNTRAL                              #  K*(DEL*OMEGA + ALPHA(2)/(2*K)) IS THE
062765,000212: 21,3275           00006                           EXTEND                                         #  TERM FOR WHICH A SQUARE ROOT IS NEEDED.
062766,000213: 21,3276           71741                           MP       KCENTRAL                              #  K AT PI/2(8)
062767,000214: 21,3277           53752                           DXCH     FUNCTION                              
062768,000215: 21,3300           31743                           CA       K2CNTRAL   +1                         
062769,000216: 21,3301           00006                           EXTEND                                         
062770,000217: 21,3302           71741                           MP       KCENTRAL                              
062771,000218: 21,3303           27752                           ADS      FUNCTION   +1                         
062772,000219: 21,3304           54001                           TS       L                                     
062773,000220: 21,3305           13307                           TCF      +2                                    
062774,000221: 21,3306           27751                           ADS      FUNCTION                              #  DESIRED TERM IN FUNCTION, AT PI(2)/16

Page 1466

062776,000223: 21,3307           11745                           CCS      DEL                                   
062777,000224: 21,3310           13515                           TCF      RSTOFGTS                              
062778,000225: 21,3311           13557                           TCF      NEGUSUM                               
062779,000226: 21,3312           13314                           TCF      NEGATE                                
062780,000227: 21,3313           13557                           TCF      NEGUSUM                               
062781,000228: 
062782,000229: 21,3314           00006        NEGATE             EXTEND                                         
062783,000230: 21,3315           41743                           DCS      K2CNTRAL                              
062784,000231: 21,3316           53743                           DXCH     K2CNTRAL                              
062785,000232: 21,3317           13515                           TCF      RSTOFGTS                              
062786,000233: 
062787,000234: 16,3741                                           BANK     16                                    
062788,000235: 16,3741  E6,1501                                  EBANK=   NEGUQ                                 
062789,000236: 16,2000                                           SETLOC   DAPS1                                 
062790,000237: 16,2000                                           BANK                                           
062791,000238: 
062792,000239:                                                                                                  #  THE WRCHN12 SUBROUTINE SETS BITS 9,10,11,12 OF CHANNEL 12 ON THE BASIS OF THE CONTENTS OF NEGUQ,NEGUR WHICH ARE
062793,000240:                                                                                                  #  THE NEGATIVES OF THE DESIRED ACCELERATION CHANGES.  ACDT+C12 SETS Q(R)ACCDOT TO REFLECT THE NEW DRIVES.
062794,000241: 
062795,000242:                                                                                                  #  WARNING:  ACDT+C12 AND WRCHN12 MUST BE CALLED WITH INTERRUPT INHIBITED.
062796,000243: 
062797,000244: 16,3741           07400        BGIM               OCTAL    07400                                 
062798,000245: 16,3742     0066               CHNL12             EQUALS   ITEMP6                                
062799,000246: 16,3742           41501        ACDT+C12           CS       NEGUQ                                 
062800,000247: 16,3743           00006                           EXTEND                                         #  GIMBAL DRIVE REQUESTS.
062801,000248: 16,3744           71507                           MP       ACCDOTQ                               
062802,000249: 16,3745           23510                           LXCH     QACCDOT                               
062803,000250: 16,3746           41503                           CS       NEGUR                                 
062804,000251: 16,3747           00006                           EXTEND                                         
062805,000252: 16,3750           71511                           MP       ACCDOTR                               
062806,000253: 16,3751           23512                           LXCH     RACCDOT                               
062807,000254: 
062808,000255: 16,3752           11501                           CCS      NEGUQ                                 
062809,000256: 16,3753           34742                           CAF      BIT10                                 
062810,000257: 16,3754           13756                           TCF      +2                                    
062811,000258: 16,3755           34743                           CAF      BIT9                                  
062812,000259: 16,3756           54066                           TS       CHNL12                                
062813,000260: 
062814,000261: 16,3757           11503                           CCS      NEGUR                                 
062815,000262: 16,3760           34740                           CAF      BIT12                                 
062816,000263: 16,3761           13763                           TCF      +2                                    
062817,000264: 16,3762           34741                           CAF      BIT11                                 
062818,000265: 16,3763           26066                           ADS      CHNL12                                #  (STORED RESULT NOT USED AT PRESENT)
062819,000266: 
062820,000267: 16,3764           43741                           CS       BGIM                                  
062821,000268: 16,3765           00006                           EXTEND                                         
062822,000269: 16,3766           02012                           RAND     CHAN12                                
062823,000270: 16,3767           60066                           AD       CHNL12                                
062824,000271: 16,3770           00006                           EXTEND                                         
062825,000272: 16,3771           01012                           WRITE    CHAN12                                

Page 1467

062827,000274: 16,3772           44747                           CS       CALLGMBL                              #  TURN OFF REQUEST FOR ACDT+C12 EXECUTION.
062828,000275: 16,3773           71262                           MASK     RCSFLAGS                              
062829,000276: 16,3774           55262                           TS       RCSFLAGS                              
062830,000277: 
062831,000278: 16,3775           00002                           TC       Q                                     #  RETURN TO CALLER.
062832,000279: 
062833,000280: 21,3320                                           BANK     21                                    
062834,000281: 21,3320  E6,1450                                  EBANK=   QDIFF                                 
062835,000282: 21,2000                                           SETLOC   DAPS4                                 
062836,000283: 21,2000                                           BANK                                           
062837,000284: 

Page 1468

062839,000286:                                                                                                  #  SUBROUTINE TIMEGMBL:  MOD 0, OCTOBER 1967, CRAIG WORK
062840,000287: 
062841,000288:                                                                                                  #  TIMEGMBL COMPUTES THE DRIVE TIME NEEDED FOR THE TRIM GIMBAL TO POSITION THE DESCENT ENGINE NOZZLE SO AS TO NULL
062842,000289:                                                                                                  #  THE OFFSET ANGULAR ACCELERATION ABOUT THE Q (OR R) AXIS.  INSTEAD OF USING AOSQ(R), TIMEGMBL USES .4*AOSQ(R),
062843,000290:                                                                                                  #  SCALED AT PI/8.                         FOR EACH AXIS, THE DRIVE TIME IS COMPUTED AS ABS(ALPHA/ACCDOT).  A ZERO
062844,000291:                                                                                                  #  ALPHA OR ACCDOT OR A ZERO QUOTIENT TURNS OFF THE GIMBAL DRIVE IMMEDIATELY.  OTHERWISE, THE GIMBAL IS TURNED ON
062845,000292:                                                                                                  #  DRIVING IN THE CORRECT DIRECTION.  THE Q(R)GIMTIMR IS SET TO TERMINATE THE DRIVE AND Q(R)ACCDOT
062846,000293:                                                                                                  #  IS STORED TO REFLECT THE NEW ACCELERATION DERIVATIVE.  NEGUQ(R) WILL CONTAIN +1,+0,-1 FOR A Q(R)ACCDOT VALUE
062847,000294:                                                                                                  #  WHICH IS NEGATIVE, ZERO, OR POSITIVE.
062848,000295: 
062849,000296:                                                                                                  #  INPUTS:  AOSQ,AOSR, SCALED AT P1/2, AND ACCDOTQ, ACCDOTR AT PI/2(7).       PI/2(7).
062850,000297: 
062851,000298:                                                                                                  #  OUTPUTS:   NEW GIMBAL DRIVE BITS IN CHANNEL 12, NEGUQ, NEGUR, QACCDOT AND RACCDOT, THE LAST SCALED AT PI/2(7).
062852,000299:                                                                                                  #             Q(R)GIMTIMR WILL BE SET TO TIME AND TERMINATE GIMBAL DRIVE(S)
062853,000300: 
062854,000301:                                                                                                  #  DEBRIS:   A, L, Q, ITEMPS 2, 3, 6, RUPTREG2 AND ACDT+C12 DEBRIS.
062855,000302: 
062856,000303:                                                                                                  #  EXITS:   VIA TC Q.
062857,000304: 
062858,000305:                                                                                                  #  ALARMS, ABORTS, :  NONE
062859,000306: 
062860,000307:                                                                                                  #  SUBROUTINES:  ACDT+C12, IBNKCALL
062861,000308: 
062862,000309:                                                                                                  #  WARNING:  THIS SUBROUTINE WRITES INTO CHANNEL 12 AND USES THE ITEMPS.  THEREFORE IT MAY ONLY BE CALLED WITH
062863,000310:                                                                                                  #  INTERRUPT INHIBITED.
062864,000311: 
062865,000312:                                                                                                  #  ERASABLE STORAGE CONFIGURATION (NEEDED BY THE INDEXING METHODS):
062866,000313:                                                                                                  #        NEGUQ           ERASE   +2              NEGATIVE OF Q-AXIS GIMBAL DRIVE
062867,000314:                                                                                                  #        (SPWORD)        EQUALS  NEGUQ +1        ANY S.P. ERASABLE NUMBER, NOW THRSTCMD
062868,000315:                                                                                                  #        NEGUR           EQUALS  NEGUQ +2        NEGATIVE OF R-AXIS GIMBAL DRIVE
062869,000316:                                                                                                  #        ACCDOTQ         ERASE   +2              Q-JERK TERM SCALED AT PI/2(7) RAD/SEC(3)
062870,000317:                                                                                                  #        (SPWORD)        EQUALS  ACCDOTQ +1      ANY S.P. ERASABLE NUMBER NOW QACCDOT
062871,000318:                                                                                                  #        ACCDOTR         EQUALS  ACCDOTQ +2      R-JERK TERM SCALED AT PI/2(7) RAD/SEC(3)
062872,000319:                                                                                                  #                                                ACCDOTQ, ACCDOTR ARE MAGNITUDES.
062873,000320:                                                                                                  #        AOSQ            ERASE   +4              Q-AXIS ACC., D.P. AT PI/2 R/SEC(2)
062874,000321:                                                                                                  #        AOSR            EQUALS  AOSQ +2         R-AXIS ACCELERATION SCALED AT PI/2 R/S2
062875,000322: 
062876,000323: 21,3320     0066               QRNDXER            EQUALS   ITEMP6                                
062877,000324: 21,3320           23146        OCT23146           OCTAL    23146                                 #  DECIMAL .6
062878,000325: 21,3321     0063               NZACCDOT           EQUALS   ITEMP3                                
062879,000326: 
062880,000327: 21,3321           34753        TIMEGMBL           CAF      ONE                                   #  INITIALIZE ALLOWGTS.
062881,000328: 21,3322           55502                           TS       ALLOWGTS                              
062882,000329: 
062883,000330: 21,3323           34752                           CAF      TWO                                   #  SET UP LOOP FOR R AXIS.
062884,000331: 21,3324           22002                           LXCH     Q                                     #  SAVE RETURN ADDRESS.
062885,000332: 21,3325           22071                           LXCH     RUPTREG2                              

Page 1469

062887,000334: 21,3326           13330                           TCF      +2                                    
062888,000335: 21,3327           34755        TIMQGMBL           CAF      ZERO                                  #  NOW DO THE Q-AXIS
062889,000336: 21,3330           54066                           TS       QRNDXER                               
062890,000337: 21,3331           50066                           INDEX    QRNDXER                               
062891,000338: 21,3332           31507                           CA       ACCDOTQ                               #  ACCDOT IS PRESUMED TO BE AT PI/2(7).
062892,000339: 21,3333           00006                           EXTEND                                         
062893,000340: 21,3334           63404                           BZMF     TGOFFNOW                              #  IS ACCDOT LESS THAN OR EQUAL TO 0?
062894,000341: 21,3335           54063                           TS       NZACCDOT                              #  NO.  STORE NON-ZERO, POSITIVE ACCDOT.
062895,000342: 
062896,000343: 21,3336           50066        ALPHATRY           INDEX    QRNDXER                               
062897,000344: 21,3337           41537                           CS       AOSQ                                  
062898,000345: 21,3340           00006                           EXTEND                                         
062899,000346: 21,3341           13404                           BZF      TGOFFNOW                              #  IS ALPHA ZERO?
062900,000347: 
062901,000348: 21,3342           54002                           TS       Q                                     #  SAVE A COPY OF -AOS.
062902,000349: 21,3343           00006                           EXTEND                                         #  NO.  RESCALE FOR TIMEGMBL USE.
062903,000350: 21,3344           73320                           MP       OCT23146                              #  OCTAL 23146 IS DECIMAL .6
062904,000351: 21,3345           60002                           AD       Q                                     #  -1.6*AOS AT PI/2 = -.4*AOS AT PI/8.
062905,000352: 21,3346           54001                           TS       L                                     #  WAS THERE OVERFLOW?
062906,000353: 21,3347           13354                           TCF      SETNEGU                               #  NO.  COMPUTE DRIVE TIME.
062907,000354: 
062908,000355: 21,3350           40000                           CS       A                                     #  RECOVER  -SGN(AOS) IN THE A REGISTER.
062909,000356: 21,3351           50066                           INDEX    QRNDXER                               #  YES.  START DRIVE WITHOUT WAITLIST.
062910,000357: 21,3352           57501                           XCH      NEGUQ                                 
062911,000358: 21,3353           13410                           TCF      NOTALLOW                              #  KNOCK DOWN THE ALLOWGTS FLAG.
062912,000359: 
062913,000360: 21,3354           00006        SETNEGU            EXTEND                                         
062914,000361: 21,3355           63362                           BZMF     POSALPH                               
062915,000362: 
062916,000363: 21,3356           40000                           COM                                            
062917,000364: 21,3357           54062                           TS       ITEMP2                                #  STORE  -ABS(.4*AOS) SCALED AT PI/8.
062918,000365: 21,3360           44753                           CS       BIT1                                  
062919,000366: 21,3361           13364                           TCF      POSALPH    +2                         
062920,000367: 21,3362           54062        POSALPH            TS       ITEMP2                                #  STORE  -ABS(.4*AOS) SCALED AT PI/8.
062921,000368: 21,3363           34753                           CA       BIT1                                  
062922,000369: 21,3364           50066                 +2        INDEX    QRNDXER                               #  SGN(AOS) INTO NEGU
062923,000370: 21,3365           55501                           TS       NEGUQ                                 #  STORE SGN(APLHA) AS NEGU
062924,000371: 
062925,000372: 21,3366           30063                           CA       NZACCDOT                              
062926,000373: 21,3367           00006                           EXTEND                                         
062927,000374: 21,3370           74740                           MP       BIT12                                 #  2*ACCDOT, SCALED AT PI/8.
062928,000375: 21,3371           60062                           AD       ITEMP2                                #  -ABS(ALPHA) + 2*ACCDOT, AT PI/8.
062929,000376: 21,3372           00006                           EXTEND                                         
062930,000377: 21,3373           63410                           BZMF     NOTALLOW                              #  IS DRIVE TIME MORE THAN TWO SECONDS?
062931,000378: 21,3374           40062                           CS       ITEMP2                                #  NO.  COMPUTE DRIVE TIME.
062932,000379: 21,3375           00006                           EXTEND                                         #  ABS(ALPHA) AT PI/8.
062933,000380: 21,3376           73431                           MP       OCT00240                              #  DECIMAL 10/1024
062934,000381: 21,3377           00006                           EXTEND                                         #  QUOTIENT IS DRIVE TIME AT WAITLIST.
062935,000382: 21,3400           10063                           DV       NZACCDOT                              #  ABS(ALPHA)/ACCDOT AT 2(14)/100

Page 1470

062937,000384: 21,3401           00006                           EXTEND                                         
062938,000385: 21,3402           13404                           BZF      TGOFFNOW                              #  DRIVE TIME MUST BE GREATER THAN ZERO.
062939,000386: 
062940,000387: 21,3403           13416                           TCF      DRIVEON                               
062941,000388: 
062942,000389: 21,3404           34755        TGOFFNOW           CAF      ZERO                                  #  TURN OFF GIMBAL NOW.
062943,000390: 21,3405           50066                           INDEX    QRNDXER                               
062944,000391: 21,3406           55501                           TS       NEGUQ                                 
062945,000392: 
062946,000393: 21,3407           13420                           TCF      DONEYET                               
062947,000394: 
062948,000395: 21,3410           36010        NOTALLOW           CAF      OCT31                                 
062949,000396: 21,3411           50066                           INDEX    QRNDXER                               
062950,000397: 21,3412           55632                           TS       QGIMTIMR                              
062951,000398: 21,3413           34755                           CAF      ZERO                                  #  DRIVE TIME IS MORE THAN 2 SECONDS, SO
062952,000399: 21,3414           55502                           TS       ALLOWGTS                              #  DO NOT PERMIT FURTHER GTS ATTITUDE-RATE
062953,000400:                                                                                                  #  CONTROL UNTIL AOSTASK APPROVES.
062954,000401: 21,3415           13420                           TCF      DONEYET                               #  NO WAITLIST CALL IS MADE.
062955,000402: 
062956,000403: 21,3416           50066        DRIVEON            INDEX    QRNDXER                               
062957,000404: 21,3417           55632                           TS       QGIMTIMR                              #  CHOOSE Q OR R AXIS.
062958,000405: 
062959,000406: 21,3420           10066        DONEYET            CCS      QRNDXER                               
062960,000407: 21,3421           13327                           TCF      TIMQGMBL                              
062961,000408: 
062962,000409: 21,3422           52073                           DXCH     RUPTREG3                              #  PROTECT IBNKCALL ERASABLES.  ACDT+C12
062963,000410: 21,3423           52063                           DXCH     ITEMP2                                #  LEAVES ITEMPS2,3 ALONE.
062964,000411: 
062965,000412: 21,3424           04674                           TC       IBNKCALL                              #  TURN OF CHANNEL BITS, SET Q(R)ACCDOTS.
062966,000413: 21,3425           35742                           CADR     ACDT+C12                              
062967,000414: 
062968,000415: 21,3426           52063                           DXCH     ITEMP2                                #  RESTORE ERASABLES FOR IBNKCALL.
062969,000416: 21,3427           52073                           DXCH     RUPTREG3                              
062970,000417: 
062971,000418: 21,3430           00071                           TC       RUPTREG2                              #  RETURN TO CALLER.
062972,000419: 
062973,000420: 21,3431           00240        OCT00240           OCTAL    00240                                 #  DECIMAL 10/1024
062974,000421: 

Page 1471

062976,000423:                                                                                                  #  THE FOLLOWING SECTION IS A CONTINUATION OF THE TRIM GIMBAL CONTROL FROM THE LAST GTS ENTRY. THE QUANTITY NEGUSUM
062977,000424:                                                                                                  #  IS COMPUTED FOR EACH AXIS (Q,R), .707*DEL*FUNCTION(3/2) + K2THETA = NEGUSUM.  NEW DRIVES ARE ENTERED TO CH 12.
062978,000425: 
062979,000426:                                                                                                  #  THE SUBROUTINE GTSQRT ACCEPTS A DOUBLE PRECISION VALUE IN FUNCTION, FUNCTION +1 AND RETURNS A SINGLE-PRECISION
062980,000427:                                                                                                  #  SQUARE ROOT OF THE FOURTEEN MOST SIGNIFICANT BITS OF THE ARGUMENT.  ALSO, THE CELL SHFTFLAG CONTAINS A BINARY
062981,000428:                                                                                                  #  EXPONENT S, SUCH THAT THE SQUARE ROOT (RETURNED IN THE A REGISTER) MUST BE SHIFTED RIGHT (MULTIPLIED BY 2 TO THE
062982,000429:                                                                                                  #  POWER (-S)) IN ORDER TO BE THE TRUE SQUARE ROOT OF THE FOURTEEN MOST SIGNIFICANT BITS OF FUNCTION, FUNCTION +1.
062983,000430:                                                                                                  #  SQUARE ROOT ERROR IS NOT MORE THAN 2 IN THE 14TH SIGNIFICANT BIT.  CELLS CLOBBERED ARE A, L, SHFTFLAG, ININDEX,
062984,000431:                                                                                                  #  HALFARG, SCRATCH, SR, FUNCTION, FUNCTION +1.  GTSQRT IS CALLED BY TC GTSQRT AND RETURNS VIA TC Q OR TC FUNCTION +1.
062985,000432:                                                                                                  #  ZERO OR NEGATIVE ARGUMENTS YIELD ZERO FOR SQUARE ROOTS.
062986,000433: 
062987,000434: 21,3432           11751        GTSQRT             CCS      FUNCTION                              
062988,000435: 21,3433           13451                           TCF      GOODARG                               #  FUNCTION IS POSITIVE.  TAKE SQUARE ROOT.
062989,000436: 21,3434           13436                           TCF      +2                                    #  HIGH ORDER WORD IS ZERO.  TRY THE LOWER.
062990,000437: 21,3435           13442                           TCF      ZEROOT                                #  NEGATIVE.  USE ZERO FOR 1/2 POWER.
062991,000438: 
062992,000439: 21,3436           31752                           CA       FUNCTION   +1                         
062993,000440: 21,3437           00006                           EXTEND                                         
062994,000441: 21,3440           63442                           BZMF     ZEROOT                                
062995,000442: 
062996,000443: 21,3441           13445                           TCF      ZEROHIGH                              #  PROCEED.
062997,000444: 21,3442           34755        ZEROOT             CA       ZERO                                  
062998,000445: 21,3443           55741                           TS       SHFTFLAG                              
062999,000446: 21,3444           00002                           TC       Q                                     
063000,000447: 
063001,000448: 21,3445           57751        ZEROHIGH           XCH      FUNCTION                              #  14 MOST SIGNIFICANT BITS ARE IN THE
063002,000449: 21,3446           57752                           XCH      FUNCTION   +1                         #  LOWER WORD.  EXCHANGE THEM.
063003,000450: 21,3447           34757                           CA       SEVEN                                 
063004,000451: 21,3450           13452                           TCF      GOODARG    +1                         
063005,000452: 
063006,000453: 21,3451           34755        GOODARG            CA       ZERO                                  
063007,000454: 21,3452           55741                           TS       SHFTFLAG                              
063008,000455: 21,3453           35741                           CA       TWELVE                                #  INITIALIZE THE SCALING LOOP.
063009,000456: 21,3454           55744                           TS       ININDEX                               
063010,000457: 21,3455           13464                           TCF      SCALLOOP                              
063011,000458: 
063012,000459: 21,3456           31751        SCALSTRT           CA       FUNCTION                              
063013,000460: 21,3457           13500                           TCF      SCALDONE                              
063014,000461: 
063015,000462: 21,3460           37751        MULBUSH            CA       NEG2                                  #  IF ARG IS NOT LESS THAN 1/4, INDEX IS
063016,000463: 21,3461           27744                           ADS      ININDEX                               #  ZERO, INDICATING NO SHIFT NEEDED.
063017,000464: 21,3462           00006                           EXTEND                                         #  BRANCH IF ARG IS NOT LESS THAN 1/4.
063018,000465: 21,3463           63456                           BZMF     SCALSTRT                              #  OTHERWISE COMPARE ARG WITH A REFERENCE
063019,000466:                                                                                                  #  WHICH IS 4 TIMES LARGER THAN THE LAST.
063020,000467: 21,3464           41751        SCALLOOP           CS       FUNCTION                              
063021,000468: 21,3465           51744                           INDEX    ININDEX                               
063022,000469: 21,3466           64735                           AD       BIT15                                 #  REFERENCE MAGNITUDE LESS OR EQUAL TO 1/4
063023,000470: 21,3467           00006                           EXTEND                                         
063024,000471: 21,3470           63460                           BZMF     MULBUSH                               #  IF ARG IS NOT LESS THAN REFERENCE, GO
063025,000472:                                                                                                  #  AROUND THE MULBERRY BUSH ONCE MORE.

Page 1472

063027,000474: 21,3471           51744                           INDEX    ININDEX                               
063028,000475: 21,3472           34735                           CA       BIT15                                 #  THIS IS THE SCALE MAGNITUDE
063029,000476: 21,3473           57747                           XCH      HALFARG                               #  2**(-ININDEX) IS THE SHIFT DIVISOR.
063030,000477: 21,3474           00006                           EXTEND                                         #  RESCALE ARGUMENT.
063031,000478: 21,3475           31752                           DCA      FUNCTION                              
063032,000479: 21,3476           00006                           EXTEND                                         
063033,000480: 21,3477           11747                           DV       HALFARG                               
063034,000481:                                                                                                  #  ININDEX AND SHFTFLAG PRESERVE INFO FOR
063035,000482: 
063036,000483:                                                                                                  #  RESCALING AFTER ROOT PROCESS.
063037,000484: 21,3500           00006        SCALDONE           EXTEND                                         
063038,000485: 21,3501           23752                           QXCH     FUNCTION   +1                         #  SAVE Q FOR RETURN
063039,000486: 21,3502           00006                           EXTEND                                         
063040,000487: 21,3503           74736                           MP       BIT14                                 
063041,000488: 21,3504           55747                           TS       HALFARG                               
063042,000489: 21,3505           74737                           MASK     BIT13                                 
063043,000490: 21,3506           10000                           CCS      A                                     
063044,000491: 21,3507           33625                           CA       OCT11276                              
063045,000492: 21,3510           63623                           AD       ROOTHALF                              #  INITIAL GUESS IS ROOT 1/2 OR POSMAX
063046,000493: 21,3511           03627                           TC       ROOTCYCL                              
063047,000494: 21,3512           03627                           TC       ROOTCYCL                              
063048,000495: 21,3513           03627                           TC       ROOTCYCL                              
063049,000496: 21,3514           01752                           TC       FUNCTION   +1                         
063050,000497: 
063051,000498:                                                                                                  #  ****************************************************************************************************************
063052,000499: 
063053,000500: 21,3515           03432        RSTOFGTS           TC       GTSQRT                                
063054,000501: 21,3516           57742        PRODUCT            XCH      K2CNTRAL                              
063055,000502: 21,3517           00006                           EXTEND                                         
063056,000503: 21,3520           71742                           MP       K2CNTRAL                              
063057,000504: 21,3521           53743                           DXCH     K2CNTRAL                              
063058,000505: 21,3522           00006                           EXTEND                                         #               THE PRODUCT OF
063059,000506: 21,3523           70001                           MP       L                                     #   1/2                   2       1/2
063060,000507: 21,3524           27743                           ADS      K2CNTRAL   +1                         #  K   *(DEL*OMEGA + ALPHA /(2*K))
063061,000508: 21,3525           54001                           TS       L                                     #                      AND
063062,000509: 21,3526           13530                           TCF      +2                                    #                         2
063063,000510: 21,3527           27742                           ADS      K2CNTRAL                              #   DEL*(DEL*OMEGA + ALPHA /(2*K)) NOW IN 
063064,000511:                                                                                                  #  K2CNTRAL
063065,000512: 
063066,000513: 21,3530           31744        DOSHIFT            CA       ININDEX                               
063067,000514: 21,3531           00006                           EXTEND                                         #  MULTIPLY IN THE FACTOR 2(-S), RETURNED
063068,000515: 21,3532           74736                           MP       BIT14                                 #  BY THE GTSQRT SUBROUTINE
063069,000516: 21,3533           27741                           ADS      SHFTFLAG                              
063070,000517: 21,3534           00006                           EXTEND                                         
063071,000518: 21,3535           13554                           BZF      ADDITIN                               
063072,000519: 21,3536           51741                           INDEX    SHFTFLAG                              
063073,000520: 21,3537           34735                           CA       BIT15                                 

Page 1473

063075,000522: 21,3540           57742                           XCH      K2CNTRAL                              
063076,000523: 21,3541           00006                           EXTEND                                         
063077,000524: 21,3542           71742                           MP       K2CNTRAL                              
063078,000525: 21,3543           21740                           DAS      K2THETA                               
063079,000526: 21,3544           57742                           XCH      K2CNTRAL                              
063080,000527: 21,3545           00006                           EXTEND                                         
063081,000528: 21,3546           71743                           MP       K2CNTRAL   +1                         
063082,000529: 21,3547           27740                           ADS      K2THETA    +1                         
063083,000530: 21,3550           54001                           TS       L                                     
063084,000531: 21,3551           13553                           TCF      +2                                    
063085,000532: 21,3552           27737                           ADS      K2THETA                               
063086,000533: 
063087,000534: 21,3553           13557                           TCF      NEGUSUM                               
063088,000535: 
063089,000536: 21,3554           00006        ADDITIN            EXTEND                                         
063090,000537: 21,3555           31743                           DCA      K2CNTRAL                              
063091,000538: 21,3556           21740                           DAS      K2THETA                               #  NOW ADD IN THE K2THETA TERM.
063092,000539: 21,3557           11737        NEGUSUM            CCS      K2THETA                               #  TEST SIGN OF HIGH ORDER PART.
063093,000540: 21,3560           13564                           TCF      NEGDRIVE                              
063094,000541: 21,3561           13563                           TCF      +2                                    
063095,000542: 21,3562           13566                           TCF      POSDRIVE                              
063096,000543: 
063097,000544: 21,3563           11740                           CCS      K2THETA    +1                         #  SIGN TEST FOR LOW ORDER PART.
063098,000545: 21,3564           34753        NEGDRIVE           CA       BIT1                                  
063099,000546: 21,3565           13567                           TCF      +2                                    #  STOP GIMBAL DRIVE FOR A ZERO NEGUSUM.
063100,000547: 21,3566           44753        POSDRIVE           CS       BIT1                                  
063101,000548: 21,3567           54001                           TS       L                                     #  SAVE FOR DRIVE REVERSAL TEST.
063102,000549: 21,3570           51750                           INDEX    QRCNTR                                
063103,000550: 21,3571           57501                           XCH      NEGUQ                                 
063104,000551: 
063105,000552: 21,3572           00006                           EXTEND                                         
063106,000553: 21,3573           70001                           MP       L                                     #  MULTIPLY OLD NEGU AND NEW NEGU.
063107,000554: 21,3574           10001                           CCS      L                                     
063108,000555: 21,3575           13612                           TCF      LOUPE                                 #  NON-ZERO GIMBAL DRIVE BEING CONTINUED.
063109,000556: 
063110,000557: 21,3576           13607                           TCF      ZEROLOUP                              #  NO REVERSAL PROBLEM HERE.
063111,000558: 
063112,000559: 21,3577           13601                           TCF      REVERSAL                              #  NON-ZERO GIMBAL DRIVE BEING REVERSED.
063113,000560: 21,3600           13607                           TCF      ZEROLOUP                              #  NO REVERSAL PROBLEM HERE.
063114,000561: 
063115,000562: 21,3601           51750        REVERSAL           INDEX    QRCNTR                                #  A ZERO-DRIVE PAUSE IS NEEDED HERE.  ZERO
063116,000563: 21,3602           55510                           TS       QACCDOT                               #  IS IN A REGISTER FROM CCS ON (-1).
063117,000564: 21,3603           51750                           INDEX    QRCNTR                                
063118,000565: 21,3604           43624                           CS       GMBLBITA                              
063119,000566: 21,3605           00006                           EXTEND                                         
063120,000567: 21,3606           03012                           WAND     CHAN12                                
063121,000568: 
063122,000569: 21,3607           41262        ZEROLOUP           CS       RCSFLAGS                              #  SET UP REQUEST FOR ACDT+C12 CALL.
063123,000570: 21,3610           74747                           MASK     CALLGMBL                              
063124,000571: 21,3611           27262                           ADS      RCSFLAGS                              

Page 1474

063126,000573: 21,3612           11750        LOUPE              CCS      QRCNTR                                #  HAVE BOTH AXES BEEN PROCESSED?
063127,000574: 21,3613           13106                           TCF      GOQTRIMG                              #  NO.  DO Q AXIS NEXT.
063128,000575: 
063129,000576: 21,3614           31505                           CA       SAVESR                                #  RESTORE THE SR
063130,000577: 21,3615           54021                           TS       SR                                    
063131,000578: 
063132,000579: 21,3616           00006        GOCLOSE            EXTEND                                         #  TERMINATE THE JASK.
063133,000580: 21,3617           33622                           DCA      CLOSEADR                              
063134,000581: 21,3620           52006                           DTCB                                           
063135,000582: 
063136,000583: 21,3621  E6,1537                                  EBANK=   AOSQ                                  
063137,000584: 21,3621           03270 36106  CLOSEADR           2CADR    CLOSEOUT                              #  TERMINATE THE JASK.
063138,000585: 
063139,000586: 21,3623     5741               TWELVE             EQUALS   OCT14                                 
063140,000587: 21,3623           26501        ROOTHALF           OCTAL    26501                                 #  SQUARE ROOT OF 1/2
063141,000588: 21,3624           01400        GMBLBITA           OCTAL    01400                                 #  INDEXED WRT GMBLBITB  DO NOT MOVE ******
063142,000589: 21,3625           11276        OCT11276           OCTAL    11276                                 #  POSMAX - ROOTHALF
063143,000590: 21,3626           06000        GMBLBITB           OCTAL    06000                                 #  INDEXED WRT GMBLBITA  DO NOT MOVE ******
063144,000591: 
063145,000592:                                                                                                  #  SUBROUTINE ROOTCYCL:  BY CRAIG WORK, 3 APRIL 68
063146,000593:                                                                                                  #  ROOTCYCL IS A SUBROUTINE WHICH EXECUTES ONE NEWTON SQUARE ROOT ALGORITHM ITERATION.  THE INITIAL GUESS AT THE
063147,000594:                                                                                                  #  SQUARE ROOT IS PRESUMED TO BE IN THE A REGISTER AND ONE-HALF THE SQUARE IS TAKEN FROM HALFARG.  THE NEW APPROXI-
063148,000595:                                                                                                  #  MATION TO THE SQUARE ROOT IS RETURNED IN THE A REGISTER.  DEBRIS:  A, L, SR, SCRATCH.  ROOTCYCL IS CALLED FROM
063149,000596:                                                                                                  #  LOCATION (LOC) BY A TC ROOTCYCL, AND RETURNS (TC Q) TO LOC +1.
063150,000597: 
063151,000598:                                                                                                  #  WARNING:  IF THE INITIAL GUESS IS NOT GREATER THAN THE SQUARE, DIVIDE OR ADD OVERFLOW IS A REAL POSSIBILITY.
063152,000599: 
063153,000600: 21,3627           55746        ROOTCYCL           TS       SCRATCH                               #  STORE X
063154,000601: 21,3630           54021                           TS       SR                                    #  X/2 NOW IN SR
063155,000602: 21,3631           31747                           CA       HALFARG                               #  ARG/2 IN THE A REG
063156,000603: 21,3632           22007                           ZL                                             #  PREPARE FOR DIVISION
063157,000604: 21,3633           00006                           EXTEND                                         
063158,000605: 21,3634           11746                           DV       SCRATCH                               #  (ARG/X)/2
063159,000606: 21,3635           60021                           AD       SR                                    #  (X + ARG/X)/2 IN THE A REG
063160,000607: 21,3636           00002                           TC       Q                                     
063161,000608: 
063162,000609: 

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