Source Code

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

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

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

024742,000002:                                                                                                  ## Copyright:   Public domain.
024743,000003:                                                                                                  ## Filename:    TRIM_GIMBAL_CNTROL_SYSTEM.agc
024744,000004:                                                                                                  ## Purpose:     A module for revision 0 of BURST120 (Sunburst). It 
024745,000005:                                                                                                  ##              is part of the source code for the Lunar Module's
024746,000006:                                                                                                  ##              (LM) Apollo Guidance Computer (AGC) for Apollo 5.
024747,000007:                                                                                                  ## Assembler:   yaYUL
024748,000008:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
024749,000009:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
024750,000010:                                                                                                  ## Mod history: 2016-09-30 RSB  Created draft version.
024751,000011:                                                                                                  ##              2016-10-18 MAS  Began.
024752,000012:                                                                                                  ##              2016-10-19 MAS  Completed transcription.
024753,000013:                                                                                                  ##              2016-10-31 RSB   Typos
024754,000014:                                                                                                  ##              2016-12-06 RSB  Comment-proofing with octopus/ProoferComments,
024755,000015:                                                                                                  ##                              changes made.
024756,000016: 

Page 591

024758,000018: 21,2572                                           BANK     21                                    
024759,000019: 21,2572  E6,1542                                  EBANK=   DT                                    
024760,000020:                                                                                                  #  CONTROL REACHES THIS POINT UNDER EITHER OF THE FOLLOWING TWO CONDITIONS ONCE THE DESCENT ENGINE AND THE DIGITAL
024761,000021:                                                                                                  #  AUTOPILOT ARE BOTH ON:
024762,000022:                                                                                                  #           A) THE TRIM GIMBAL CONTROL LAW WAS ON DURING THE PREVIOUS Q,R-AXIS TIME5 INTERRUPT (OR THE DAPIDLER
024763,000023:                                                                                                  #              INITIALIZATION WAS SET FOR TRIM GIMBAL CONTROL AND THIS IS THE FIRST PASS), OR
024764,000024:                                                                                                  #           B) THE Q,R-AXES RCS JET CONTROL LAW ATTITUDE STEERING MODE REDUCED THE ATTITUDE ERROR TO LESS THAN
024765,000025:                                                                                                  #  1DEGREE ON EACH AXIS ON ITS LAST TIME5 INTERRUPT.
024766,000026: 
024767,000027:                                                                                                  #  THE FOLLOWING T5RUPT ENTRY BEGINS THE TRIM GIMBAL CONTROL LAW.  SINCE IT IS ASSUMED THAT THE LEM WILL REMAIN
024768,000028:                                                                                                  #  UNDER TRIM GIMBAL CONTROL, A KALMAN FILTER RUPT IS SET UP TO BEGIN 30 MS FROM THE TRIM GIMBAL RUPT.
024769,000029: 
024770,000030: 21,2572           32402        GTS                CAF      MS30F                                 #  RESET TIMER IMMEDIATELY: DT = 30 MS
024771,000031: 21,2573           54030                           TS       TIME5                                 
024772,000032: 
024773,000033: 21,2574           22016                           LXCH     BANKRUPT                              #  INTERRUPT LEAD IN (CONTINUED)
024774,000034: 21,2575           00006                           EXTEND                                         
024775,000035: 21,2576           22012                           QXCH     QRUPT                                 
024776,000036: 
024777,000037: 21,2577           00006                           EXTEND                                         
024778,000038: 21,2600           32411                           DCA      POSTPFIL                              
024779,000039: 21,2601           53001                           DXCH     T5ADR                                 
024780,000040: 
024781,000041: 21,2602           12674                           TCF      GTSTEST                               #  SKIP OVER XFORMS UNTIL REORGANIZATION
024782,000042: 
024783,000043: 21,2603           00006        GIMBAL             EXTEND                                         #  GET D.P. FILTERED CDUY VALUE (ONES COMP)
024784,000044: 21,2604           31554                           DCA      CDUYFIL                               #  SCALED AT 2PI RADIANS
024785,000045: 21,2605           02307                           TC       ONETOTWO                              #  FORM S.P. VALUE IN TWOS COMPLEMENT AT PI
024786,000046: 21,2606           00006                           EXTEND                                         
024787,000047: 21,2607           20767                           MSU      CDUYD                                 #  FORM Y-AXIS ERROR IN ONES COMPLEMENT
024788,000048: 21,2610           55467                           TS       QDIFF                                 #  (SAVE IN Q-AXIS ERROR LOC: EFFICIENCY)
024789,000049: 
024790,000050: 21,2611           00006                           EXTEND                                         #  GET D.P. FILTERED CDUZ VALUE (ONES COMP)
024791,000051: 21,2612           31556                           DCA      CDUZFIL                               #  SCALED AT 2PI RADIANS
024792,000052: 21,2613           02307                           TC       ONETOTWO                              #  FORM S.P. VALUE IN TWOS COMPLEMENT AT PI
024793,000053: 21,2614           00006                           EXTEND                                         
024794,000054: 21,2615           20770                           MSU      CDUZD                                 #  FORM Z-AXIS ERROR IN ONES COMPLEMENT
024795,000055: 21,2616           55470                           TS       RDIFF                                 #  (SAVE IN R-AXIS ERROR LOC: EFFICIENCY)
024796,000056: 
024797,000057:                                                                                                  #  TRANSFORM Y,Z CDU ERRORS TO THE Q,R-AXES.
024798,000058: 
024799,000059: 21,2617           00006                           EXTEND                                         #  GET BOTH Y AND Z CDU ERRORS AT PI RAD
024800,000060: 21,2620           31470                           DCA      QDIFF                                 
024801,000061: 21,2621           03264                           TC       QTRANSF                               #  FORM Q-ERROR IN A (SCALED AT PI RAD)
024802,000062: 21,2622           53470                           DXCH     QDIFF                                 #  STORE Q-ERROR, GET BOTH Y,Z CDU ERRORS
024803,000063: 21,2623           03274                           TC       RTRANSF                               #  FORM R-ERROR IN A (SCALED AT PI RAD)
024804,000064: 21,2624           57470                           XCH      RDIFF                                 #  STORE R-ERROR
024805,000065: 
024806,000066:                                                                                                  #  TRANSFORM THE FILTERED Y,Z RATES TO THE Q,R-AXES.
024807,000067:                                                                                                  #  (THESE MAY BE NEEDED FOR THE RATE DERIVATION FOR THE JETS IF THEY MUST BE USED.)
024808,000068: 

Page 592

024810,000070: 21,2625           31561                           CAE      DCDUZFIL                              #  GET FILTERED Y,Z RATES
024811,000071: 21,2626           54001                           TS       L                                     #  SCALED AT PI/4 RADIANS/SECOND
024812,000072: 21,2627           31557                           CAE      DCDUYFIL                              
024813,000073: 21,2630           03264                           TC       QTRANSF                               #  FOR Q-AXIS RATE
024814,000074: 21,2631           55416                           TS       OMEGAQ                                #  STORED SCALED AT PI/4 RADIANS/SECOND
024815,000075: 
024816,000076: 21,2632           31561                           CAE      DCDUZFIL                              #  GET FILTERED Y,Z RATES
024817,000077: 21,2633           54001                           TS       L                                     #  SCALED AT PI/4 RADIANS/SECOND
024818,000078: 21,2634           31557                           CAE      DCDUYFIL                              
024819,000079: 21,2635           03274                           TC       RTRANSF                               #  FOR R-AXIS RATE
024820,000080: 21,2636           55420                           TS       OMEGAR                                #  STORED SCALED AT PI/4 RADIANS/SECOND
024821,000081: 
024822,000082:                                                                                                  #  TRANSFORM THE FILTERED Y,Z ACCELERATIONS TO THE Q,R-AXES.
024823,000083:                                                                                                  #  (THESE MAY BE NEEDED TO CALCULATE TRIM GIMBAL OFF-TIMES IF ATTITUDE ERROR HAS GONE BEYOND TRIM GIMBAL CONTROL.)
024824,000084: 
024825,000085: 21,2637           31565                           CAE      D2CDUZFL                              #  GET FILTERED Y,Z ACCELERATIONS
024826,000086: 21,2640           54001                           TS       L                                     #  SCALED AT PI/8 RADIANS/SECOND(2)
024827,000087: 21,2641           31563                           CAE      D2CDUYFL                              
024828,000088: 21,2642           03264                           TC       QTRANSF                               #  FORM Q-AXIS ACCELERATION
024829,000089: 21,2643           55417                           TS       ALPHAQ                                #  STORE AT PI/8 RADIANS/SECOND(2)
024830,000090: 
024831,000091: 21,2644           31565                           CAE      D2CDUZFL                              #  GET FILTERED Y,Z ACCELERATIONS
024832,000092: 21,2645           54001                           TS       L                                     #  SCALED AT PI/8 RADIANS/SECOND(2)
024833,000093: 21,2646           31563                           CAE      D2CDUYFL                              
024834,000094: 21,2647           03274                           TC       RTRANSF                               #  FORM R-AXIS ACCELERATION
024835,000095: 21,2650           55421                           TS       ALPHAR                                #  STORE AT PI/8 RADIANS/SECOND(2)
024836,000096: 
024837,000097:                                                                                                  #  EXTRAPOLATE THETA AND OMEGA OVER 100 MS PLUS THE 20 MS DELAY BETWEEN THE KALMAN FILTER AND TRIM GIMBAL 
024838,000098:                                                                                                  #   CONTROL, REFLECTING MECHANICAL LAG.
024839,000099: 
024840,000100: 21,2651           31416                           CAE      OMEGAQ                                
024841,000101: 21,2652           00006                           EXTEND                                         
024842,000102: 21,2653           72672                           MP       DTW                                   
024843,000103: 21,2654           27467                           ADS      QDIFF                                 
024844,000104: 
024845,000105: 21,2655           31420                           CAE      OMEGAR                                
024846,000106: 21,2656           00006                           EXTEND                                         
024847,000107: 21,2657           72672                           MP       DTW                                   
024848,000108: 21,2660           27470                           ADS      RDIFF                                 
024849,000109: 
024850,000110: 21,2661           31417                           CAE      ALPHAQ                                
024851,000111: 21,2662           00006                           EXTEND                                         
024852,000112: 21,2663           72673                           MP       DTA                                   
024853,000113: 21,2664           27416                           ADS      OMEGAQ                                
024854,000114: 
024855,000115: 21,2665           31421                           CAE      ALPHAR                                
024856,000116: 21,2666           00006                           EXTEND                                         
024857,000117: 21,2667           72673                           MP       DTA                                   
024858,000118: 21,2670           27420                           ADS      OMEGAR                                
024859,000119: 

Page 593

024861,000121: 21,2671           15733                           TCF      RESUME                                
024862,000122: 
024863,000123: 21,2672           00754        DTW                OCT      00754                                 #  120 MS SCALED AT 4
024864,000124: 21,2673           01727        DTA                OCT      01727                                 #  120 MS SCALED AT 2
024865,000125:                                                                                                  #  TEST TO SEE IF TRIM GIMBAL CONTROL LAW HAS KEPT BOTH ATTITUDE ERRORS BELOW THE 1 DEGREE BOUNDARY WITH THE REGION
024866,000126:                                                                                                  #  OF RCS CONTROL LAW DOMINANCE OR IS STILL REDUCING THE ERROR.
024867,000127: 
024868,000128: 21,2674           37762        GTSTEST            CAF      TRYGIMBL                              #  VERIFY THAT GTS IS STILL OPERATIVE.
024869,000129: 21,2675           70077                           MASK     DAPBOOLS                              
024870,000130: 21,2676           10000                           CCS      A                                     
024871,000131: 21,2677           12731                           TCF      RCSCNTRL                              #  GTS NOT OPERATIVE
024872,000132:                                                                                                  #  START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
024873,000133: 
024874,000134: 21,2700           13736        INSERT21           TCF      CHKCNTR                               #  GO CHECK TRIMCNTR (AT END OF BANK 21).
024875,000135: 
024876,000136:                                                                                                  #  **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
024877,000137: 
024878,000138: 21,2701           54066        LOOPTEST           TS       QRCNTR                                
024879,000139: 21,2702           50066                           INDEX    QRCNTR                                
024880,000140: 21,2703           11467                           CCS      QDIFF                                 #  SCALED AT PI.
024881,000141: 21,2704           62727                           AD       -TGBND+1                              #  -2 DEG SCALED AT PI, + 1 BIT.
024882,000142: 21,2705           12707                           TCF      +2                                    
024883,000143: 21,2706           62727                           AD       -TGBND+1                              
024884,000144: 21,2707           00006                           EXTEND                                         
024885,000145: 21,2710           62712                           BZMF     +2                                    #  IS ERROR MAG LESS,EQUAL 2 DEG.
024886,000146: 21,2711           13715                           TCF      TESTPCTR                              #  NO.  MAY CONTINUE,THOUGH.
024887,000147: 21,2712           30066                           CA       QRCNTR                                #  YES.  TRY RATE MAGNITUDE.
024888,000148: 21,2713           60000                           DOUBLE                                         
024889,000149: 21,2714           50000                           INDEX    A                                     
024890,000150: 
024891,000151:                                                                                                  #  THIS TEST BYPASSES THE TEST IN WSFTEST.  CHECK WSFTEST IF BOUND CHANGES.
024892,000152: 
024893,000153: 21,2715           11416                           CCS      OMEGAQ                                #  SCALED AT PI/4.
024894,000154: 21,2716           62730                           AD       -RATBD+1                              #  -.65 DEC/SEC SCALED AT PI/4  + 1 BIT
024895,000155: 21,2717           12721                           TCF      +2                                    
024896,000156: 21,2720           62730                           AD       -RATBD+1                              
024897,000157: 21,2721           00006                           EXTEND                                         
024898,000158: 21,2722           62724                           BZMF     +2                                    #  IS RATE MAG LESS,EQUAL .65 DEG/SEC.
024899,000159: 21,2723           13715                           TCF      TESTPCTR                              #  NO.  MAY CONTINUE,THOUGH.
024900,000160: 21,2724           10066                           CCS      QRCNTR                                #  YES.  THIS AXIS IS FINE. ARE BOTH DONE.
024901,000161: 21,2725           12701                           TCF      LOOPTEST                              #  TRY THE Q AXIS NOW.
024902,000162: 21,2726           13000                           TCF      GTSRAXIS                              #  USE TRIM GIMBAL CONTROL.
024903,000163: 21,2727           77512        -TGBND+1           OCT      77512                                 #  -2 DEG SCALED AT PI, + 1 BIT.
024904,000164: 21,2730           77423        -RATBD+1           OCT      77423                                 #  -.65 DEG/SEC SCALED AT PI/4  + 1 BIT
024905,000165:                                                                                                  #  ATTITUDE ERROR IS BEYOND TRIM GIMBAL CONTROL LAW RANGE.  SET UP FOR RCS CONTROL LAW (Q,R-AXIS) AND CALCULATE
024906,000166:                                                                                                  #  TIMES TO TURN OFF THE GIMBAL DRIVES.
024907,000167: 
024908,000168: 21,2731           00006        RCSCNTRL           EXTEND                                         #  CHANGE LOCATION OF NEXT T5RUPT FROM FIL-
024909,000169: 21,2732           32756                           DCA      POSTQRFL                              #  TER TO FILDUMMY.  AHEM, DON'T FORGET
024910,000170: 21,2733           53001                           DXCH     T5ADR                                 #  THAT FILDUMMY MOVED TO BANK20, DICK GOSS
024911,000171: 

Page 594

024913,000173: 21,2734           00006                           EXTEND                                         #  SET UP POST P-AXIS T5RUPT TO GO TO
024914,000174: 21,2735           32760                           DCA      QRJPFILT                              #  DUMMYFIL INSTEAD OF FILTER.  USE 2CADR
024915,000175: 21,2736           53573                           DXCH     PFILTADR                              #  BECAUSE DUMMYFIL NOW IN BANK 16.
024916,000176: 
024917,000177: 21,2737           00006                           EXTEND                                         #  PREPARE FOR SEQUENCED RESUMPTION OF
024918,000178: 21,2740           30034                           DCA      CDUY                                  #  Q,R-AXIS RCS CONTROL RATE DERIVATION
024919,000179: 21,2741           53430                           DXCH     OLDYFORQ                              #  BY PROVIDING OLD CDU READINGS
024920,000180: 
024921,000181: 21,2742           00006                           EXTEND                                         #  MOVE FILTERED AND TRANSFORMED ATTITUDE
024922,000182: 21,2743           31470                           DCA      QDIFF                                 #  ERRORS INTO ERASABLE FOR Q,R-AXIS RCS
024923,000183: 21,2744           57413                           XCH      ER                                    #  CONTROL URGENCY CALCULATIONS.
024924,000184: 21,2745           23411                           LXCH     E                                     
024925,000185: 
024926,000186: 21,2746           37763                           CAF      ONE                                   
024927,000187: 21,2747           05663                           TC       WAITLIST                              
024928,000188: 21,2750  E6,1542                                  EBANK=   DT                                    
024929,000189: 21,2750           02763 42066                     2CADR    CHEKDRIV                              #  DO TGOFF CALCULATION IN WAITLIST TASK
024930,000190: 
024931,000191: 21,2752           00006                           EXTEND                                         #  GO TO Q,R-AXES CONTROL IMMEDIATELY
024932,000192: 21,2753           32762                           DCA      TGENTRY                               
024933,000193: 21,2754           52006                           DTCB                                           
024934,000194: 
024935,000195: 21,2755  E6,1471                                  EBANK=   JTSONNOW                              #  NO, SURELY YOU JEST, NOT EBANK 6, AGAIN?
024936,000196: 21,2755           03033 40066  POSTQRFL           2CADR    FILDUMMY                              #  WATCH OUT FOR BANK SWITCHING D. GOSS
024937,000197: 
024938,000198: 21,2757  E6,1664                                  EBANK=   AOSQTERM                              
024939,000199: 21,2757           03642 34066  QRJPFILT           2CADR    DUMMYFIL                              #  NECESSARY BECAUSE DUMMYFIL IN BANK 16.
024940,000200: 
024941,000201: 21,2761  E6,1542                                  EBANK=   DT                                    
024942,000202: 21,2761           02715 36066  TGENTRY            2CADR    STILLRCS                              
024943,000203: 
024944,000204: 
024945,000205:                                                                                                  #  START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
024946,000206: 
024947,000207: 21,2763           11736        CHEKDRIV           CCS      PASSCTR                               #  ENOUGH FILTER PASSES FOR DRIVE DONE?
024948,000208: 21,2764           12766                           TCF      COLDFILT                              #    NO.  JUST STOP DRIVES.
024949,000209: 21,2765           13745                           TCF      WARMFILT                              #    YES.  CALCULATE TIMES (END OF BANK).
024950,000210: 
024951,000211: 21,2766           37767        COLDFILT           CAF      ZERO                                  #  FILTER NOT WARM YET. TURN OFF DRIVES.
024952,000212: 21,2767           55523                           TS       NEGUQ                                 
024953,000213: 21,2770           55525                           TS       NEGUR                                 
024954,000214: 21,2771           55533                           TS       QACCDOT                               
024955,000215: 21,2772           55535                           TS       RACCDOT                               
024956,000216: 21,2773           03243                           TC       WRCHN12                               
024957,000217: 21,2774           15727                           TCF      TASKOVER                              
024958,000218: 
024959,000219: 21,2775           04736                           TC       CCSHOLE                               #  FILLER (TO PRESERVE ADDRESSES)
024960,000220: 21,2776           04736                           TC       CCSHOLE                               #  FILLER (TO PRESERVE ADDRESSES)
024961,000221:                                                                                                  #  **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
024962,000222: 

Page 595

024964,000224:                                                                                                  #  THE DRIVE SETTING ALGORITHM
024965,000225:                                                                                                  #  DEL = SGN(OMEGA.K + SGN(ALPHA)ALPHA(2)/2)    ONLY +1/-1
024966,000226: 
024967,000227:                                                                                                  #  NEGUSUM = ERROR.K(2) + DEL(OMEGA.K.DEL + ALPHA(2)/2)(3/2) + ALPHA(OMEGA.K.DEL + ALPHA(2)/3)
024968,000228: 
024969,000229:                                                                                                  #  DRIVE = -SGN(NEGUSUM)
024970,000230: 
024971,000231: 21,2777           76504        -.04266            DEC      -.04266                               
024972,000232: 21,3000           37762        GTSRAXIS           CAF      TWO                                   #  SET INDEXER FOR R-AXIS CALCULATIONS
024973,000233: 21,3001           54066                           TS       QRCNTR                                
024974,000234: 21,3002           13712                           TCF      USUALXIT                              
024975,000235: 
024976,000236: 21,3003           37767        GOQTRIMG           CAF      ZERO                                  #  SET INDEXER FOR Q-AXIS CALCULATIONS
024977,000237: 21,3004           54066                           TS       QRCNTR                                
024978,000238: 
024979,000239: 21,3005           00006        GTSQAXIS           EXTEND                                         
024980,000240: 21,3006           50066                           INDEX    QRCNTR                                #  PICK UP K AND K(2) FOR THIS AXIS
024981,000241: 21,3007           31527                           DCA      KQ                                    
024982,000242: 21,3010           52062                           DXCH     KCENTRAL                              
024983,000243: 
024984,000244: 21,3011           00006                           EXTEND                                         
024985,000245: 21,3012           50066                           INDEX    QRCNTR                                #  PICK UP OMEGA AND ALPHA FOR THIS AXIS
024986,000246: 21,3013           31417                           DCA      OMEGAQ                                
024987,000247: 21,3014           52064                           DXCH     WCENTRAL                              
024988,000248: 
024989,000249: 21,3015           10066                           CCS      QRCNTR                                #  RDIFF IS STORED IMMEDIATELY FOLLOWING
024990,000250: 21,3016           50000                           INDEX    A                                     #  QDIFF, WITH NO SEPARATING CELL.
024991,000251: 21,3017           31467                           CAE      QDIFF                                 
024992,000252: 
024993,000253:                                                                                                  #  QDIFF IS LESS,EQUAL 2 DEG. AND IS SCALED AT 180 DEG.  RESCALE AT 180/64 DEG. = 2 + 13/16 DEG. = PI/64 RADIANS.
024994,000254: 
024995,000255: 21,3020           00006                           EXTEND                                         #  RESCALE DIFFERENCE BY MULTIPLYING BY
024996,000256: 21,3021           77755                           MP       BIT7                                  #  2(6)
024997,000257: 21,3022           22071                           LXCH     ETHETA                                
024998,000258: 
024999,000259: 21,3023           30061                           CAE      KCENTRAL                              #  TEST ON MAGNITUDE OF ACCDOT
025000,000260: 21,3024           62777                           AD       -.04266                               
025001,000261: 21,3025           00006                           EXTEND                                         
025002,000262: 21,3026           63034                           BZMF     ACCDOTSM                              #  BRANCH IF ACCDOT IS SMALL
025003,000263: 
025004,000264: 21,3027           37746        ACCDOTLG           CAF      BIT14                                 #  ACCDOT IS COMPARITIVELY LARGE
025005,000265: 21,3030           54072                           TS       SF1                                   #  SET UP SCALE FACTORS
025006,000266: 21,3031           37750                           CAF      BIT12                                 
025007,000267: 21,3032           54073        WSFTEST            TS       SF2                                   
025008,000268: 
025009,000269:                                                                                                  #  LOOPTEST CODING BYPASSES THE OMEGA MAGNITUDE TEST, BUT A CHANGE IN THE TEST BOUNDS COULD REQUIRE ITS USE AGAIN.
025010,000270: 
025011,000271:                                                                                                  #                  CCS             WCENTRAL                      TEST ON MAGNITUDE OF OMEGA
025012,000272:                                                                                                  #                  AD              -.04438                         
025013,000273:                                                                                                  #                  TCF             +2                              

Page 596

025015,000275:                                                                                                  #                  AD              -.04438                         
025016,000276:                                                                                                  #                  EXTEND                                          
025017,000277:                                                                                                  #                  BZMF            ASFTEST                       IF SMALL, GO TO ALPHA TEST
025018,000278:                                                                                                  #                  TCF             WLARGE                          
025019,000279: 21,3033           13050                           TCF      ASFTEST                               #  OMEGA IS ALWAYS BOUNDED BY .65 DEG/SEC.
025020,000280: 21,3034           30061        ACCDOTSM           CAE      KCENTRAL                              #  RESCALE IF ACCDOT IS SMALL
025021,000281: 21,3035           00006                           EXTEND                                         
025022,000282: 21,3036           77757                           MP       BIT5                                  #  RESCALE K BY MULTIPLYING BY 2(4)
025023,000283: 21,3037           22061                           LXCH     KCENTRAL                              
025024,000284: 21,3040           30061                           CAE      KCENTRAL                              
025025,000285: 21,3041           00006                           EXTEND                                         
025026,000286: 21,3042           70000                           SQUARE                                         
025027,000287: 21,3043           54062                           TS       K2CNTRAL                              
025028,000288: 21,3044           37752                           CAF      BIT10                                 #  SET UP VARIABLE SCALE FACTORS
025029,000289: 21,3045           54072                           TS       SF1                                   
025030,000290: 21,3046           37760                           CAF      BIT4                                  
025031,000291: 21,3047           13032                           TCF      WSFTEST                               #  GO TEST ON MAGNITUDE OF OMEGA
025032,000292: 
025033,000293: 21,3050           10064        ASFTEST            CCS      ACENTRAL                              #  TEST ON MAGNITUDE OF ALPHA
025034,000294: 21,3051           63057                           AD       -.08882                               
025035,000295: 21,3052           13054                           TCF      +2                                    
025036,000296: 21,3053           63057                           AD       -.08882                               
025037,000297: 21,3054           00006                           EXTEND                                         
025038,000298: 21,3055           63060                           BZMF     WARESCAL                              #  IF SMALL, GO TO W,A RESCALING
025039,000299: 21,3056           13071                           TCF      WLARGE                                #  IF LARGE, DO SAME AS IF W LARGE
025040,000300: 
025041,000301:                                                                                                  #  -.04438         DEC             -.04438                         
025042,000302: 21,3057           75120        -.08882            DEC      -.08882                               
025043,000303: 
025044,000304: 21,3060           30063        WARESCAL           CAE      WCENTRAL                              #  RESCALE OMEGA BY MULTIPLYING BY 2(4)
025045,000305: 21,3061           00006                           EXTEND                                         
025046,000306: 21,3062           77757                           MP       BIT5                                  
025047,000307: 21,3063           22063                           LXCH     WCENTRAL                              
025048,000308: 
025049,000309: 21,3064           30064                           CAE      ACENTRAL                              #  RESCALE ALPHA BY MULTIPLYING BY 2(3)
025050,000310: 21,3065           00006                           EXTEND                                         
025051,000311: 21,3066           77760                           MP       BIT4                                  
025052,000312: 21,3067           22064                           LXCH     ACENTRAL                              
025053,000313: 
025054,000314: 21,3070           13101                           TCF      ALGORTHM                              
025055,000315: 
025056,000316: 21,3071           30072        WLARGE             CAE      SF1                                   #  RESCALE VARIABLE SCALE FACTORS
025057,000317: 21,3072           00006                           EXTEND                                         
025058,000318: 21,3073           77747                           MP       BIT13                                 #  SF1 = SF1*2(-2)
025059,000319: 21,3074           54072                           TS       SF1                                   
025060,000320: 21,3075           30073                           CAE      SF2                                   
025061,000321: 21,3076           00006                           EXTEND                                         
025062,000322: 21,3077           77756                           MP       BIT6                                  #  SF2 = SF2*2(-9)
025063,000323: 21,3100           54073                           TS       SF2                                   
025064,000324: 

Page 597

025066,000326: 21,3101           30071        ALGORTHM           CAE      ETHETA                                #  GET RESCALED ERROR THETA
025067,000327: 21,3102           00006                           EXTEND                                         
025068,000328: 21,3103           70062                           MP       K2CNTRAL                              #  FORM K(2)*THETA IN D.P.
025069,000329: 21,3104           00006                           EXTEND                                         
025070,000330: 21,3105           70073                           MP       SF2                                   #  CALCULATE AND STORE
025071,000331: 21,3106           54070                           TS       K2THETA                               #  K(2)*THETA*SF2 IN K2THETA
025072,000332: 
025073,000333: 21,3107           30063                           CA       WCENTRAL                              #  CALCULATE AND STORE
025074,000334: 21,3110           00006                           EXTEND                                         #  K*OMEGA*SF1 IN OMEGA.K
025075,000335: 21,3111           70061                           MP       KCENTRAL                              
025076,000336: 21,3112           00006                           EXTEND                                         
025077,000337: 21,3113           70072                           MP       SF1                                   
025078,000338: 21,3114           54061                           TS       OMEGA.K                               
025079,000339: 
025080,000340: 21,3115           30064                           CA       ACENTRAL                              
025081,000341: 21,3116           00006                           EXTEND                                         #  BY REDESIGNATION OF THE SCALE FACTOR,
025082,000342: 21,3117           70000                           MP       A                                     #  THIS PRODUCT BECOMES ALPHA(2)/2
025083,000343: 21,3120           54072                           TS       A2CNTRAL                              #  INSTEAD OF  ALPHA(2)
025084,000344: 
025085,000345: 21,3121           10064                           CCS      ACENTRAL                              
025086,000346: 21,3122           30072                           CA       A2CNTRAL                              
025087,000347: 21,3123           13125                           TCF      +2                                    
025088,000348: 21,3124           40072                           CS       A2CNTRAL                              #  NOW THE A REGISTER CONTAINS
025089,000349: 21,3125           60061                           AD       OMEGA.K                               #  K*OMEGA + ALPHA*ABS(ALPHA)/2
025090,000350: 
025091,000351: 21,3126           10000                           CCS      A                                     
025092,000352: 21,3127           37763                           CA       BIT1                                  #  DEL = SIGNUM(A) , (ZERO WHEN A IS ZERO),
025093,000353: 21,3130           13132                           TCF      +2                                    #  PLUS ONE OR MINUS ONE OTHERWISE.
025094,000354: 21,3131           47763                           CS       BIT1                                  
025095,000355: 21,3132           54065                           TS       DEL                                   
025096,000356: 
025097,000357: 21,3133           10065                           CCS      DEL                                   
025098,000358: 21,3134           30061                           CA       OMEGA.K                               
025099,000359: 21,3135           13137                           TCF      +2                                    
025100,000360: 21,3136           40061                           CS       OMEGA.K                               #  DEL*OMEGA.K REPLACES OMEGA.K
025101,000361: 21,3137           54061                           TS       OMEGA.K                               
025102,000362: 
025103,000363: 21,3140           60072                           AD       A2CNTRAL                              #  DEL*OMEGA.K + ALPHA(2)/2
025104,000364: 21,3141           57521                           XCH      FUNCTION                              #  STORED IN FUNCTION
025105,000365: 
025106,000366: 21,3142           30072                           CA       A2CNTRAL                              
025107,000367: 21,3143           00006                           EXTEND                                         #  CALCULATE ALPHA(2)/3
025108,000368: 21,3144           73304                           MP       .66667                                
025109,000369: 21,3145           60061                           AD       OMEGA.K                               
025110,000370: 21,3146           00006                           EXTEND                                         
025111,000371: 21,3147           70064                           MP       ACENTRAL                              #  K(2)*THETA+ALPHA*(DEL*OMEG.K+ALPHA(2)/3)
025112,000372: 21,3150           26070                           ADS      K2THETA                               #  FIRST AND SECOND TERMS SUMMED HERE.
025113,000373: 
025114,000374:                                                                                                  #  THE FOLLOWING SECTION CALCULATES .707*DEL*FUNCTION(3/2) AND ADDS IT TO THE OTHER TWO TERMS OF NEGUSUM.
025115,000375: 

Page 598

025117,000377: 21,3151           30021                           CA       SR                                    #  CALL SEQUENCE FOR SPROOT REQUIRES THAT
025118,000378: 21,3152           60000                           AD       A                                     #  SR BE PRESERVED BY THE CALLER.
025119,000379: 21,3153           57540                           XCH      STORCDUY                              #  THE KALMAN FILTER STORES INTO THE CELL
025120,000380: 21,3154           31521                           CA       FUNCTION                              #  STORCDUY BEFORE USING IT OTHERWISE.
025121,000381: 21,3155           05417                           TC       SPROOT                                
025122,000382: 21,3156           23540                           LXCH     STORCDUY                              
025123,000383: 21,3157           22021                           LXCH     SR                                    
025124,000384: 
025125,000385: 21,3160           00006                           EXTEND                                         
025126,000386: 21,3161           71521                           MP       FUNCTION                              
025127,000387: 21,3162           57540                           XCH      STORCDUY                              
025128,000388: 21,3163           10065                           CCS      DEL                                   
025129,000389: 21,3164           33305                           CA       .707GTS                               #  THIS CELL CONTAINS SQUARE ROOT OF 1/2
025130,000390: 21,3165           13167                           TCF      +2                                    
025131,000391: 21,3166           43305                           CS       .707GTS                               
025132,000392: 21,3167           00006                           EXTEND                                         
025133,000393: 21,3170           71540                           MP       STORCDUY                              
025134,000394: 21,3171           60070                           AD       K2THETA                               #  NEGUSUM IS COMPLETE.
025135,000395: 
025136,000396: 21,3172           10000                           CCS      A                                     #  SIGNUM(NEGUSUM) IS NEGATIVE OF THE SIGN
025137,000397: 21,3173           37763                           CA       BIT1                                  #  WHICH WILL BE ATTACHED TO THE NEW VALUE
025138,000398: 21,3174           13176                           TCF      POSDRIVE                              #  OF Q(R)ACCDOT.
025139,000399: 21,3175           47763                           CS       BIT1                                  
025140,000400: 
025141,000401: 21,3176           50066        POSDRIVE           INDEX    QRCNTR                                #  SIGN OF NEW Q(R)ACCDOT OPPOSES THIS SIGN
025142,000402: 21,3177           55523                           TS       NEGUQ                                 
025143,000403: 
025144,000404: 21,3200           40000                           COM                                            
025145,000405: 21,3201           00006                           EXTEND                                         #  SEND BACK JERK TERM
025146,000406: 21,3202           50066                           INDEX    ITEMP6                                
025147,000407: 21,3203           71532                           MP       ACCDOTQ                               
025148,000408: 21,3204           50066                           INDEX    ITEMP6                                
025149,000409: 21,3205           23733                           LXCH     QACDOTMP                              #  STORE FOR 100 MS, THEN RELEASE TO FILTER
025150,000410: 21,3206           10066                           CCS      QRCNTR                                #  LOOP COUNTER
025151,000411: 21,3207           01737                           TC       SLECTLAW                              #  2ND PASS.  (FOR Q-AXIS)
025152,000412:                                                                                                  #  TRANSFORM JERKS BACK TO GIMBAL AXES.
025153,000413: 
025154,000414: 21,3210           41533                           CS       QACCDOT                               #  SCALED AT PI/2(7), AND COMPLEMENTED.
025155,000415: 21,3211           00006                           EXTEND                                         
025156,000416: 21,3212           71400                           MP       MR12                                  #  SCALED AT 2
025157,000417: 21,3213           55567                           TS       Y3DOT                                 
025158,000418: 21,3214           41535                           CS       RACCDOT                               #  SCALED AT PI/2(7), AND COMPLEMENTED.
025159,000419: 21,3215           00006                           EXTEND                                         
025160,000420: 21,3216           71402                           MP       MR13                                  #  SCALED AT 2
025161,000421: 21,3217           27567                           ADS      Y3DOT                                 
025162,000422: 21,3220           27567                           ADS      Y3DOT                                 #  SCALED AT PI/2(7)
025163,000423: 
025164,000424: 21,3221           41533                           CS       QACCDOT                               #  SCALED AT PI/2(7), AND COMPLEMENTED.
025165,000425: 21,3222           00006                           EXTEND                                         
025166,000426: 21,3223           71401                           MP       MR22                                  #  SCALED AT 1

Page 599

025168,000428: 21,3224           55571                           TS       Z3DOT                                 
025169,000429: 21,3225           41535                           CS       RACCDOT                               #  SCALED AT PI/2(7), AND COMPLEMENTED.
025170,000430: 21,3226           00006                           EXTEND                                         
025171,000431: 21,3227           71403                           MP       MR23                                  #  SCALED AT 1
025172,000432: 21,3230           27571                           ADS      Z3DOT                                 #  SCALED AT PI/2(7)
025173,000433: 
025174,000434: 21,3231           03243                           TC       WRCHN12                               #  SEND GIMBAL DRIVES TO SERVOS
025175,000435: 21,3232           15733                           TCF      RESUME                                #  WAIT UNTIL NEXT TRIM GIMBAL RUPT
025176,000436: 
025177,000437:                                                                                                  #  WAITLIST TASKS TO SET TRIM GIMBAL TURN OFF BITS.
025178,000438: 
025179,000439: 21,3233           37767        OFFGIMQ            CAF      ZERO                                  #  SET Q-AXIS FLAG TO ZERO
025180,000440: 21,3234           55523                           TS       NEGUQ                                 
025181,000441: 21,3235           13240                           TCF      +3                                    
025182,000442: 21,3236           37767        OFFGIMR            CAF      ZERO                                  #  SET R-AXIS FLAG TO ZERO
025183,000443: 21,3237           55525                           TS       NEGUR                                 
025184,000444: 21,3240           03243                           TC       WRCHN12                               #  FLAGS TO CHANNEL BITS
025185,000445: 21,3241           15727                           TCF      TASKOVER                              
025186,000446: 
025187,000447:                                                                                                  #  THE WRCHN12 SUBROUTINE SETS BITS 9,10,11,12 OF CHANNEL 12 ON THE BASIS OF THE CONTENTS OF NEGUQ,NEGUR WHICH ARE
025188,000448:                                                                                                  #  THE NEGATIVES OF THE TRIM GIMBAL DESIRED DRIVES.
025189,000449: 
025190,000450: 21,3242           07400        BGIM               OCTAL    07400                                 
025191,000451: 21,3243     0066               CHNL12             EQUALS   ITEMP6                                
025192,000452: 
025193,000453: 21,3243           11523        WRCHN12            CCS      NEGUQ                                 
025194,000454: 21,3244           37752                           CAF      BIT10                                 
025195,000455: 21,3245           13247                           TCF      +2                                    
025196,000456: 21,3246           37753                           CAF      BIT9                                  
025197,000457: 21,3247           54066                           TS       CHNL12                                
025198,000458: 
025199,000459: 21,3250           11525                           CCS      NEGUR                                 
025200,000460: 21,3251           37750                           CAF      BIT12                                 
025201,000461: 21,3252           13254                           TCF      +2                                    
025202,000462: 21,3253           37751                           CAF      BIT11                                 
025203,000463: 21,3254           26066                           ADS      CHNL12                                #  (STORED RESULT NOT USED AT PRESENT)
025204,000464: 
025205,000465: 21,3255           43242                           CS       BGIM                                  
025206,000466: 21,3256           00006                           EXTEND                                         
025207,000467: 21,3257           03012                           WAND     12                                    
025208,000468: 21,3260           30066                           CA       CHNL12                                
025209,000469: 21,3261           00006                           EXTEND                                         
025210,000470: 21,3262           05012                           WOR      12                                    
025211,000471: 
025212,000472: 21,3263           00002                           TC       Q                                     #  SIMPLE RETURN ALWAYS
025213,000473: 
025214,000474:                                                                                                  #  Q,R-TRANSF TRANSFORMS A Y,Z GIMBAL COORDINATE VARIABLE PAIR (IN A,L) TO PILOT COORDINATES (Q/R), RETURNED IN A.
025215,000475:                                                                                                  #  (THE MATRIX M FROM GIMBAL TO PILOT AXES IS ASSUMED TO BE DONE BY T4RUPT AND SCALED AT +1.)
025216,000476: 
025217,000477: 21,3264     0066               QRERAS             EQUALS   ITEMP6                                
025218,000478: 

Page 600

025220,000480: 21,3264           22066        QTRANSF            LXCH     QRERAS                                #  SAVE Z-AXIS VARIABLE
025221,000481: 21,3265           00006                           EXTEND                                         
025222,000482: 21,3266           71405                           MP       M21                                   #  (Y-AXIS)*M21
025223,000483: 21,3267           56066                           XCH      QRERAS                                #  SAVE, GET Z-AXIS VARIABLE
025224,000484: 21,3270           00006                           EXTEND                                         
025225,000485: 21,3271           71401                           MP       M22                                   #  (Z-AXIS)*M22
025226,000486: 21,3272           60066                           AD       QRERAS                                #  SUM = (Y-AXIS)*M21 + (Z-AXIS)*M22
025227,000487: 21,3273           00002                           TC       Q                                     #  RETURN WITH SUM IN A
025228,000488: 
025229,000489: 21,3274           22066        RTRANSF            LXCH     QRERAS                                #  SAVE Z-AXIS VARIABLE
025230,000490: 21,3275           00006                           EXTEND                                         
025231,000491: 21,3276           71406                           MP       M31                                   #  (Y-AXIS)*M31
025232,000492: 21,3277           56066                           XCH      QRERAS                                #  SAVE, GET Z-AXIS VARIABLE
025233,000493: 21,3300           00006                           EXTEND                                         
025234,000494: 21,3301           71403                           MP       M32                                   #  (Z-AXIS)*M32
025235,000495: 21,3302           60066                           AD       QRERAS                                #  SUM = (Y-AXIS)*M31 + (Z-AXIS)*M32
025236,000496: 21,3303           00002                           TC       Q                                     #  RETURN WITH SUM IN A
025237,000497: 
025238,000498: 21,3304           25253        .66667             DEC      .66667                                
025239,000499: 21,3305           26501        .707GTS            DEC      0.70711                               
025240,000500: 21,3306           25253        (2/3)              DEC      0.66667                               
025241,000501: 

Page 601

025243,000503:                                                                                                  #  SUBROUTINE: TGOFFCAL            MOD. NO. 1  DATE: AUGUST 22, 1966
025244,000504: 
025245,000505:                                                                                                  #  START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
025246,000506: 
025247,000507:                                                                                                  #  PROGRAM DESIGN BY: RICHARD D. GOSS (MIT/IL)
025248,000508: 
025249,000509:                                                                                                  #  PROGRAM IMPLEMENTATION BY: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
025250,000510: 
025251,000511:                                                                                                  #  MODIFIED 30 NOV 66, TO USE ACCDOTQ AND ACCDOTR.              CRAIG WORK
025252,000512:                                                                                                  #  MODIFIED AUGUST '67 TO CHANGE CALLING SEQUENCE AND MAKE MAXTIME ERASABLE          PETER WEISSMAN
025253,000513: 
025254,000514:                                                                                                  #  THIS SUBROUTINE CALCULATES THE TRIM GIMBAL SHUTDOWN TIME FOR EITHER THE Q OR THE R AXIS (DEPENDING ON THE
025255,000515:                                                                                                  #  CALLING SEQUENCE).  THIS TIME IS SCALED FOR IMMEDIATE USE BY A WAITLIST CALL AS SHOWN IN THE CALLING SEQUENCES.
025256,000516:                                                                                                  #  IF THE TIME-TO-GO IS MORE THAN 'DRIVELIM', IT IS LIMITED TO 'MAXTIME'. IF
025257,000517:                                                                                                  #  THE TIME-TO-GO IS LESS THAN TEN MILLISECONDS, THE SHUTDOWN IS PERFORMED IMMEDIATELY AND THE WAITLIST CALL IS
025258,000518:                                                                                                  #  BY-PASSED.
025259,000519: 
025260,000520:                                                                                                  #  THESE TIME-TO-GO CALCULATIONS ARE DESIGNED TO DRIVE THE TRIM GIMBAL TO A POSITION WHERE THE DESCENT ENGINE WILL
025261,000521:                                                                                                  #  CAUSE NO ANGULAR ACCELERATION.  THIS SUBROUTINE IS CALLED ONLY FROM THE WAITLIST TASK CHEKDRIV WHICH IS
025262,000522:                                                                                                  #  INITIATED ONLY WHEN THE TRIM GIMBAL CONTROL LAW HAS LOST CONTROL OF THE LEM VEHICLE ATTITUDE AND MUST RETURN TO
025263,000523:                                                                                                  #  THE USE OF REACTION CONTROL SYSTEM JETS.
025264,000524: 
025265,000525:                                                                                                  #  CALLING SEQUENCES:
025266,000526: 
025267,000527:                                                                                                  #                                                   CAF     ZERO           INDEX FOR Q-AXIS.
025268,000528:                                                                                                  #                                                   TC      TGOFFCAL
025269,000529:                                                                                                  #                                                   CAF     NEGMAX         RETURN HERE FOR NO Q DRIVE.
025270,000530:                                                                                                  #                                                   TS      (QTIME)        RETURN HERE WITH TIME IN A (DECASECONDS)
025271,000531: 
025272,000532:                                                                                                  #                                                   CAF     TWO            INDEX FOR R-AXIS.
025273,000533:                                                                                                  #                                                   TC      TGOFFCAL
025274,000534:                                                                                                  #                                                   CAF     NEGMAX         RETURN HERE FOR NO R DRIVE.
025275,000535:                                                                                                  #                                                   TS      (RTIME)        RETURN HERE WITH TIME IN A (DECASECONDS)
025276,000536: 
025277,000537:                                                                                                  #  SUBROUTINES CALLED: NONE, BUT WRCHNL12 IS CALLED AFTER BOTH TGOFFCALL CALLS.
025278,000538: 
025279,000539:                                                                                                  #  NORMAL EXITS: TO WAITLIST CALL OR BEYOND 2CADR IN CALLING SEQUENCE AS SPECIFIED ABOVE.
025280,000540: 
025281,000541:                                                                                                  #  ALARM OR ABORT EXIT MODES: NONE
025282,000542: 
025283,000543:                                                                                                  #  INPUT: 1. THE AXIS INDEXER: 0 FOR Q, 2 FOR R (SEE CALLING SEQUENCES)
025284,000544:                                                                                                  #         2. THE SIGNED TIME DERIVATIVE OF ACCELERATION (QACCDOT OR RACCDOT) SCALED AT PI/2(7) RAD/SEC(3).
025285,000545:                                                                                                  #         3. THE ACCELERATION APPROXIMATION FROM THE DESCENT KALMAN FILTER TRANSFORMED TO PILOT AXES (ALPHAQ OR
025286,000546:                                                                                                  #  ALPHAR) SCALED AT PI/8 RAD/SEC(2).
025287,000547: 
025288,000548:                                                                                                  #         4. CHANNEL 12 CONTAINS THE GIMBAL DRIVES AND OTHER BITS.
025289,000549:                                                                                                  #  OUTPUT 5. THE NEGATIVE GIMBAL DRIVE FLAG (NEGUQ AND NEGUR) WHERE A +1 BIT REQUESTS POSITIVE GIMBAL DRIVE
025290,000550:                                                                                                  #            (ANGULAR ACCELERATION DECREASING), A -1 BIT REQUESTS NEGATIVE GIMBAL DRIVE (ANG. ACC. INCREASING).
025291,000551:                                                                                                  #            A ZERO INDICATES NO DRIVE.
025292,000552:                                                                                                  #         6. TIME REQUIRED TO ZERO OFFSET, SCALED FOR Q(R)GIMTIMR.
025293,000553: 

Page 602

025295,000555:                                                                                                  #  ERASABLE STORAGE CONFIGURATION (NEEDED BY THE INDEXING METHODS):
025296,000556: 
025297,000557:                                                                                                  #                                          NEGUQ    ERASE   +2             NEGATIVE OF Q-AXIS GIMBAL DRIVE
025298,000558:                                                                                                  #                                          (SPWORD) EQUALS NEGUQ +1        ANY S.P. ERASABLE NUMBER, NOW THRSTCMD
025299,000559:                                                                                                  #                                          NEGUR    EQUALS NEGUQ +2        NEGATIVE OF R-AXIS GIMBAL DRIVE
025300,000560: 
025301,000561:                                                                                                  #                                          ACCDOTQ  ERASE   +2             Q-JERK TERM SCALED AT PI/2(7) RAD/SEC(3)
025302,000562:                                                                                                  #                                          (SPWORD) EQUALS ACCDOTQ +1      ANY S.P. ERASABLE NUMBER  NOW QACCDOT
025303,000563:                                                                                                  #                                          ACCDOTR  EQUALS ACCDOTQ +2      R-JERK TERM SCALED AT PI/2(7) RAD/SEC(3)
025304,000564:                                                                                                  #                                                                          ACCDOTQ,ACCDOTR ARE MAGNITUDES.
025305,000565:                                                                                                  #                                          ALPHAQ   ERASE   +2             Q-AXIS ACCELERATION SCALED AT PI/8 R/S2
025306,000566:                                                                                                  #                                          (SPWORD) EQUALS ALPHAQ +1       ANY S.P. ERASABLE NUMBER, NOW OMEGAR
025307,000567:                                                                                                  #                                          ALPHAR   EQUALS ALPHAQ +2       R-AXIS ACCELERATION SCALED AT PI/8 R/S2
025308,000568:                                                                                                  #                                                                          NOTE: NOW OMEGAP,OMEGAQ PRECEDE ALPHAQ
025309,000569: 
025310,000570:                                                                                                  #  DEBRIS: L, Q, ITEMP1, ITEMP2, ITEMP6
025311,000571: 
025312,000572: 
025313,000573: 21,3307           54061        TGOFFCAL           TS       QRNDXER                               #  Q OR R AXIS INDEXER
025314,000574: 21,3310           50061                           INDEX    QRNDXER                               #  GET JERK TERM MAGNITUDE SCALED AT
025315,000575: 21,3311           31532                           CAE      ACCDOTQ                               #       PI/2(7) IN RADIANS/SEC(3).
025316,000576: 21,3312           00006                           EXTEND                                         #  UNLESS THETA TRIPLE-DOT MAGNITUDE IS NON
025317,000577: 21,3313           63373                           BZMF     TGOFFNOW                              #       -ZERO, SET DRIVE TO ZERO NOW.
025318,000578: 21,3314           54062                           TS       NZACCDOT                              #  SAVE NON-ZERO DENOMINATOR.
025319,000579: 21,3315           50061                           INDEX    QRNDXER                               #  INITIALIZE THE AOSTERM WHICH WILL BE UP-
025320,000580: 21,3316           31417                           CAE      ALPHAQ                                #  DATED IN THE DUMMYFIL CALCULATION FOR
025321,000581: 21,3317           00006                           EXTEND                                         #  USE IN THE QRAXIS RATE DERIVATION.  SET
025322,000582: 21,3320           73403                           MP       .1-.05K)                              #  AOSTERM TO ALPHA*CSP*(1-.5*K), WHERE CSP
025323,000583: 21,3321           56001                           XCH      L                                     #  IS .1 SEC, K IS .5   THEN AOSTERM IS SET
025324,000584: 21,3322           10061                           CCS      QRNDXER                               #  TO .075*ALPHA, SCALED AT PI/4,WHILE
025325,000585: 21,3323           50000                           INDEX    A                                     #  ALPHA IS SCALED AT PI/8( THE CONSTANT IS
025326,000586: 21,3324           23664                           LXCH     AOSQTERM                              #  SCALED AT 2.
025327,000587: 21,3325           50061                           INDEX    QRNDXER                               #  GET ACCELERATION SCALED AT PI/8
025328,000588: 21,3326           31417                           CAE      ALPHAQ                                #       RAD/SEC(2).
025329,000589: 21,3327           00006                           EXTEND                                         #  IF ACCELERATION IS ALREADY ZERO, EXIT.
025330,000590: 21,3330           13373                           BZF      TGOFFNOW                              #  OTHERWISE, PROCEED WITH NON-ZERO ALPHA.
025331,000591: 21,3331           00006                           EXTEND                                         #  SET NEGUQ TO THE SIGN OF ALPHA. THEN USE
025332,000592: 21,3332           63336                           BZMF     NEGALPH                               #    THE MAGNITUDE OF ALPHA TO COMPUTE TIME
025333,000593: 21,3333           54066                           TS       ITEMP6                                
025334,000594: 21,3334           37763                           CAF      BIT1                                  
025335,000595: 21,3335           13341                           TCF      +4                                    
025336,000596: 21,3336           40000        NEGALPH            CS       A                                     
025337,000597: 21,3337           54066                           TS       ITEMP6                                
025338,000598: 21,3340           47763                           CS       BIT1                                  
025339,000599: 21,3341           50061                           INDEX    QRNDXER                               #  STORE THE DRIVE DIRECTION FLAG
025340,000600: 21,3342           55523                           TS       NEGUQ                                 #  TIME = MAGNITUDE OF (ALPHA/ACCDOT),
025341,000601:                                                                                                  #  MINUS THE SIGN OF Q(R)ACCDOT LEFT IN A.
025342,000602: 21,3343           00006                           EXTEND                                         #  STORE ACCDOT TO REFLECT THE CHANGE IN
025343,000603: 21,3344           50061                           INDEX    QRNDXER                               #  GIMBAL DRIVE DIRECTION (POSSIBLE).  THIS

Page 603

025345,000605: 21,3345           71532                           MP       ACCDOTQ                               #  CAN BE ESSENTIAL FOR DUMMYFIL, IN CASE
025346,000606: 21,3346           50061                           INDEX    QRNDXER                               #  Q(R)ACCDOT IS NOT INITIALIZED BEFORE
025347,000607: 21,3347           23533                           LXCH     QACCDOT                               #  EXECUTING DUMMYFIL.
025348,000608: 21,3350           30062                           CAE      NZACCDOT                              #  WILL ALPHA/ACCDOT EXCEED MAX DRIVE TIME?
025349,000609: 21,3351           00006                           EXTEND                                         
025350,000610: 21,3352           71747                           MP       DRIVELIM                              #  MAX DRIVE TIME AT 16 SEC (ERASABLE LOAD)
025351,000611: 21,3353           00006                           EXTEND                                         
025352,000612: 21,3354           60066                           SU       ITEMP6                                #  15*ACCDOT - ABS(ALPHA) AT PI/8
025353,000613: 21,3355           00006                           EXTEND                                         
025354,000614: 21,3356           63370                           BZMF     USEMAX                                #  LARGE T.  USE MAX DRIVE TIME INSTEAD.
025355,000615: 
025356,000616: 21,3357           30066                           CAE      ITEMP6                                #  DRIVE  IME = ABS(ALPHA/ACCDOT)
025357,000617: 21,3360           00006                           EXTEND                                         #  RESCALE QUOTIENT TO TIMER(ERASABLE LOAD)
025358,000618: 21,3361           50061                           INDEX    QRNDXER                               
025359,000619: 21,3362           71750                           MP       DRIVFACQ                              #  (10 SCALED AT 2(10)) X (DAMPING FACTOR)
025360,000620: 21,3363           00006                           EXTEND                                         
025361,000621: 21,3364           10062                           DV       NZACCDOT                              
025362,000622: 
025363,000623: 21,3365           00006        ZEROTEST           EXTEND                                         #  BE SURE WAITLIST TIME IS GREATER THAN 0.
025364,000624: 21,3366           63373                           BZMF     TGOFFNOW                              
025365,000625: 
025366,000626: 21,3367           13371                           TCF      +2                                    #  IT IS, RETURN.
025367,000627: 
025368,000628: 21,3370           31755        USEMAX             CAE      MAXTIME                               #  USE MAXIMUM DRIVE TIME.
025369,000629: 21,3371           50002                 +2        INDEX    Q                                     #  RETURN TO Q+1 WITH TIME IN A.
025370,000630: 21,3372           00001                           TC       1                                     
025371,000631: 
025372,000632: 21,3373           37767        TGOFFNOW           CAF      ZERO                                  #  MAKE SURE PLUS ZERO FOR DRIVE FLAG
025373,000633: 21,3374           50061                           INDEX    QRNDXER                               #  TURN OFF DRIVE FLAG NOW
025374,000634: 21,3375           55523                           TS       NEGUQ                                 
025375,000635: 21,3376           00002                           TC       Q                                     #  RETURN TO Q ( WITHOUT A DRIVE TIME).
025376,000636: 
025377,000637: 21,3377           04736                           TC       CCSHOLE                               #    (FILLER)
025378,000638: 
025379,000639:                                                                                                  #  **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
025380,000640: 
025381,000641: 21,3400     0061               QRNDXER            EQUALS   ITEMP1                                #  INDEXER FOR Q OR R AXIS
025382,000642: 21,3400     0062               NZACCDOT           EQUALS   ITEMP2                                #  TEMPORARY STORAGE FOR NON-ZERO ACCDOT
025383,000643: 21,3400           50437        -2MINWL            DEC      -12000     B-14                       #  - 2 MINUTES SCALED FOR WAITLIST
025384,000644: 21,3401           60777        -2MIN256           DEC      -.46875                               #  - 2 MINUTES SCALED AT 256
025385,000645: 21,3402           31000        128/164            OCTAL    31000                                 #  128/163.84 CONVERTING 256 TO WAITLIST/2
025386,000646: 21,3403           01146        .1-.05K)           OCTAL    01146                                 #  .0375=.075 SCALED AT 2
025387,000647:                                                                                                  #  START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
025388,000648: 
025389,000649: 21,3404           11764        TESTCNTR           CCS      SIMPCNTR                              #  USE BIGBOX FOR PASSCTR INITIALIZATION
025390,000650: 21,3405           13410                           TCF      BIGLOAD                               #  UNTIL SIMPCNTR IS +0. THEN USE COUNTBOX.
025391,000651: 
025392,000652: 21,3406           31743                           CAE      COUNTBOX                              
025393,000653: 21,3407           13612                           TCF      LOADCNTR                              

Page 604

025395,000655: 21,3410           31766        BIGLOAD            CAE      BIGBOX                                
025396,000656: 21,3411           13612                           TCF      LOADCNTR                              
025397,000657: 
025398,000658:                                                                                                  #  **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
025399,000659: 
025400,000660:                                                                                                  #  THE NEXT FIVE CELLS ARE LEFT IN FOR SPACING.
025401,000661: 
025402,000662: 21,3412           27522                           ADS      FUNCTION   +1                         #  MULTIPLIER AS C(A).  MULTIPLY THESE AND
025403,000663: 21,3413           54001                           TS       L                                     #  USE ONLY HIGH ORDER PART OF PRODUCT.
025404,000664: 21,3414           13416                           TCF      +2                                    #  ADD S.P. LOW PRODUCT TO LOW PART OF HIGH
025405,000665: 21,3415           27521                           ADS      FUNCTION                              #  PRODUCT.  CHECK OVERFLOW, CARRY, AND
025406,000666: 21,3416           00002                           TC       Q                                     #  RETURN.

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