Source Code
![]() |
These source code files have been transcribed or otherwise adapted from
digitized images of a hardcopy from the private collection of
Don Eyles. The digitization was performed by archive.org, and
transcription was performed by a team of volunteers.
Note that the page images
presented online are of reduced quality, and that the original
high-quality images are available at archive.org.
Report any conversion errors or legibility problems in page images to info@sandroid.org.
Notations on the program listing read, in part:473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP NOV 10, 1966Note that the date is the date of the printout, not the date of the program revision. |
026343,000002: ## Copyright: Public domain.
026344,000003: ## Filename: TRIM_GIMBAL_CONTROL_SYSTEM.agc
026345,000004: ## Purpose: Part of the source code for Aurora (revision 12).
026346,000005: ## Assembler: yaYUL
026347,000006: ## Contact: Ron Burkey <info@sandroid.org>.
026348,000007: ## Website: https://www.ibiblio.org/apollo.
026349,000008: ## Pages: 615-629
026350,000009: ## Mod history: 2016-09-20 JL Created.
026351,000010: ## 2016-10-02 MAS Transcribed.
026352,000011: ## 2016-10-04 HG Change 'code' to comments. Looks like code in the scans
026353,000012: ## but is actually documentation
026354,000013: ## 2016-10-08 HG Change THEATA -> ETHETA
026355,000014: ## KCENTRAL -> K2CNTRAL (p. 621)
026356,000015: ## 2016-10-15 HG fix label CHECKDRIV -> CHEKDRIV
026357,000016: ## QRUPFILT -> QRJPFILT
026358,000017: ## -TGNBD+1 -> -TGBND+1
026359,000018: ## 2016-12-08 RSB Proofed comments with octopus/ProoferComments
026360,000019: ## and fixed the errors found.
026361,000020:
026362,000021: ## This source code has been transcribed or otherwise adapted from
026363,000022: ## digitized images of a hardcopy from the private collection of
026364,000023: ## Don Eyles. The digitization was performed by archive.org.
026365,000024:
026366,000025: ## Notations on the hardcopy document read, in part:
026367,000026:
026368,000027: ## 473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP
026369,000028: ## NOV 10, 1966
026370,000029:
026371,000030: ## [Note that this is the date the hardcopy was made, not the
026372,000031: ## date of the program revision or the assembly.]
026373,000032:
026374,000033: ## The scan images (with suitable reduction in storage size and consequent
026375,000034: ## reduction in image quality) are available online at
026376,000035: ## https://www.ibiblio.org/apollo.
026377,000036: ## The original high-quality digital images are available at archive.org:
026378,000037: ## https://archive.org/details/aurora00dapg
026379,000038:
![]() |
Page 615 |
026381,000040: # CONTROL REACHES THIS POINT UNDER EITHER OF THE FOLLOWING TWO CONDITIONS ONCE THE DESCENT ENGINE AND THE DIGITAL
026382,000041: # AUTOPILOT ARE BOTH ON:
026383,000042: # A) THE TRIM GIMBAL CONTROL LAW WAS ON DURING THE PREVIOUS Q,R-AXIS TIME5 INTERRUPT (OR THE DAPIDLER
026384,000043: # INITIALIZATION WAS SET FOR TRIM GIMBAL CONTROL AND THIS IS THE FIRST PASS), OR
026385,000044: # B) THE Q,R-AXES RCS JET CONTROL LAW ATTITUDE STEERING MODE REDUCED THE ATTITUDE ERROR TO LESS THAN
026386,000045: # 1DEGREE ON EACH AXIS ON ITS LAST TIME5 INTERRUPT.
026387,000046:
026388,000047: # THE FOLLOWING T5RUPT ENTRY BEGINS THE TRIM GIMBAL CONTROL LAW. SINCE IT IS ASSUMED THAT THE LEM WILL REMAIN
026389,000048: # UNDER TRIM GIMBAL CONTROL, A KALMAN FILTER RUPT IS SET UP TO BEGIN 30 MS FROM THE TRIM GIMBAL RUPT.
026390,000049:
026391,000050: 26,2564 32373 GTS CAF MS30F # RESET TIMER IMMEDIATELY: DT = 30 MS
026392,000051: 26,2565 54030 TS TIME5
026393,000052:
026394,000053: 26,2566 22016 LXCH BANKRUPT # INTERRUPT LEAD IN (CONTINUED)
026395,000054: 26,2567 00006 EXTEND
026396,000055: 26,2570 22012 QXCH QRUPT
026397,000056:
026398,000057: 26,2571 00006 EXTEND
026399,000058: 26,2572 32402 DCA POSTPFIL
026400,000059: 26,2573 52346 DXCH T5ADR
026401,000060:
026402,000061: 26,2574 12666 TCF GTSTEST # SKIP OVER XFORMS UNTIL REORGANIZATION
026403,000062:
026404,000063: 26,2575 00006 GIMBAL EXTEND # GET D.P. FILTERED CDUY VALUE (ONES COMP)
026405,000064: 26,2576 31563 DCA CDUYFIL # SCALED AT 2PI RADIANS
026406,000065: 26,2577 02302 TC ONETOTWO # FORM S.P. VALUE IN TWOS COMPLEMENT AT PI
026407,000066: 26,2600 00006 EXTEND
026408,000067: 26,2601 20775 MSU CDUYD # FORM Y-AXIS ERROR IN ONES COMPLEMENT
026409,000068: 26,2602 55477 TS QDIFF # (SAVE IN Q-AXIS ERROR LOC: EFFICIENCY)
026410,000069:
026411,000070: 26,2603 00006 EXTEND # GET D.P. FILTERED CDUZ VALUE (ONES COMP)
026412,000071: 26,2604 31565 DCA CDUZFIL # SCALED AT 2PI RADIANS
026413,000072: 26,2605 02302 TC ONETOTWO # FORM S.P. VALUE IN TWOS COMPLEMENT AT PI
026414,000073: 26,2606 00006 EXTEND
026415,000074: 26,2607 20776 MSU CDUZD # FORM Z-AXIS ERROR IN ONES COMPLEMENT
026416,000075: 26,2610 55500 TS RDIFF # (SAVE IN R-AXIS ERROR LOC: EFFICIENCY)
026417,000076:
026418,000077: # TRANSFORM Y,Z CDU ERRORS TO THE Q,R-AXES.
026419,000078:
026420,000079: 26,2611 00006 EXTEND # GET BOTH Y AND Z CDU ERRORS AT PI RAD
026421,000080: 26,2612 31500 DCA QDIFF
026422,000081: 26,2613 03421 TC QTRANSF # FORM Q-ERROR IN A (SCALED AT PI RAD)
026423,000082: 26,2614 53500 DXCH QDIFF # STORE Q-ERROR, GET BOTH Y,Z CDU ERRORS
026424,000083: 26,2615 03431 TC RTRANSF # FORM R-ERROR IN A (SCALED AT PI RAD)
026425,000084: 26,2616 57500 XCH RDIFF # STORE R-ERROR
026426,000085:
026427,000086: # TRANSFORM THE FILTERED Y,Z RATES TO THE Q,R-AXES.
026428,000087: # (THESE MAY BE NEEDED FOR THE RATE DERIVATION FOR THE JETS IF THEY MUST BE USED.)
026429,000088:
026430,000089: 26,2617 31570 CAE DCDUZFIL # GET FILTERED Y,Z RATES
![]() |
Page 616 |
026432,000091: 26,2620 54001 TS L # SCALED AT PI/4 RADIANS/SECOND
026433,000092: 26,2621 31566 CAE DCDUYFIL
026434,000093: 26,2622 03421 TC QTRANSF # FOR Q-AXIS RATE
026435,000094: 26,2623 55417 TS OMEGAQ # STORED SCALED AT PI/4 RADIANS/SECOND
026436,000095:
026437,000096: 26,2624 31570 CAE DCDUZFIL # GET FILTERED Y,Z RATES
026438,000097: 26,2625 54001 TS L # SCALED AT PI/4 RADIANS/SECOND
026439,000098: 26,2626 31566 CAE DCDUYFIL
026440,000099: 26,2627 03431 TC RTRANSF # FOR R-AXIS RATE
026441,000100: 26,2630 55421 TS OMEGAR # STORED SCALED AT PI/4 RADIANS/SECOND
026442,000101:
026443,000102: # TRANSFORM THE FILTERED Y,Z ACCELERATIONS TO THE Q,R-AXES.
026444,000103: # (THESE MAY BE NEEDED TO CALCULATE TRIM GIMBAL OFF-TIMES IF ATTITUDE ERROR HAS GONE BEYOND TRIM GIMBAL CONTROL.)
026445,000104:
026446,000105: 26,2631 31574 CAE D2CDUZFL # GET FILTERED Y,Z ACCELERATIONS
026447,000106: 26,2632 54001 TS L # SCALED AT PI/8 RADIANS/SECOND(2)
026448,000107: 26,2633 31572 CAE D2CDUYFL
026449,000108: 26,2634 03421 TC QTRANSF # FORM Q-AXIS ACCELERATION
026450,000109: 26,2635 55420 TS ALPHAQ # STORE AT PI/8 RADIANS/SECOND(2)
026451,000110:
026452,000111: 26,2636 31574 CAE D2CDUZFL # GET FILTERED Y,Z ACCELERATIONS
026453,000112: 26,2637 54001 TS L # SCALED AT PI/8 RADIANS/SECOND(2)
026454,000113: 26,2640 31572 CAE D2CDUYFL
026455,000114: 26,2641 03431 TC RTRANSF # FORM R-AXIS ACCELERATION
026456,000115: 26,2642 55422 TS ALPHAR # STORE AT PI/8 RADIANS/SECOND(2)
026457,000116:
026458,000117: # EXTRAPOLATE THETA AND OMEGA OVER THE 20 MS DELAY BETWEEN THE KALMAN FILTER AND THE TRIM GIMBAL CONTROL.
026459,000118:
026460,000119: 26,2643 31417 CAE OMEGAQ
026461,000120: 26,2644 00006 EXTEND
026462,000121: 26,2645 72664 MP DTW
026463,000122: 26,2646 27477 ADS QDIFF
026464,000123:
026465,000124: 26,2647 31421 CAE OMEGAR
026466,000125: 26,2650 00006 EXTEND
026467,000126: 26,2651 72664 MP DTW
026468,000127: 26,2652 27500 ADS RDIFF
026469,000128:
026470,000129: 26,2653 31420 CAE ALPHAQ
026471,000130: 26,2654 00006 EXTEND
026472,000131: 26,2655 72665 MP DTA
026473,000132: 26,2656 27417 ADS OMEGAQ
026474,000133:
026475,000134: 26,2657 31422 CAE ALPHAR
026476,000135: 26,2660 00006 EXTEND
026477,000136: 26,2661 72665 MP DTA
026478,000137: 26,2662 27421 ADS OMEGAR
026479,000138:
026480,000139: 26,2663 14606 TCF RESUME
026481,000140:
![]() |
Page 617 |
026483,000142: 26,2664 00122 DTW DEC .005
026484,000143: 26,2665 00051 DTA DEC .0025
026485,000144:
026486,000145: # TEST TO SEE IF TRIM GIMBAL CONTROL LAW HAS KEPT BOTH ATTITUDE ERRORS BELOW THE 1 DEGREE BOUNDARY WITH THE REGION
026487,000146: # OF RCS CONTROL LAW DOMINANCE OR IS STILL REDUCING THE ERROR.
026488,000147:
026489,000148: 26,2666 37656 GTSTEST CAF BIT2 # VERIFY THAT GTS IS STILL OPERATIVE
026490,000149: 26,2667 70765 MASK DAPBOOLS
026491,000150: 26,2670 10000 CCS A
026492,000151: 26,2671 12723 TCF RCSCNTRL # GTS NOT OPERATIVE
026493,000152: 26,2672 37657 CAF BIT1
026494,000153: 26,2673 54073 LOOPTEST TS QRCNTR
026495,000154: 26,2674 50073 INDEX QRCNTR
026496,000155: 26,2675 11477 CCS QDIFF # SCALED AT PI.
026497,000156: 26,2676 62721 AD -TGBND+1 # -2 DEG SCALED AT PI, + 1 BIT.
026498,000157: 26,2677 12701 TCF +2
026499,000158: 26,2700 62721 AD -TGBND+1
026500,000159: 26,2701 00006 EXTEND
026501,000160: 26,2702 62704 BZMF +2 # IS ERROR MAG LESS,EQUAL 2 DEG.
026502,000161: 26,2703 12723 TCF RCSCNTRL # NO. GO TO JETS.
026503,000162: 26,2704 30073 CA QRCNTR # YES. TRY RATE MAGNITUDE.
026504,000163: 26,2705 60000 DOUBLE
026505,000164: 26,2706 50000 INDEX A
026506,000165: 26,2707 11417 CCS OMEGAQ # SCALED AT PI/4.
026507,000166: 26,2710 62722 AD -RATBD+1 # -.65 DEC/SEC SCALED AT PI/4 + 1 BIT
026508,000167: 26,2711 12713 TCF +2
026509,000168: 26,2712 62722 AD -RATBD+1
026510,000169: 26,2713 00006 EXTEND
026511,000170: 26,2714 62716 BZMF +2 # IS RATE MAG LESS,EQUAL .65 DEG/SEC.
026512,000171: 26,2715 12723 TCF RCSCNTRL # NO. GO TO JETS.
026513,000172: 26,2716 10073 CCS QRCNTR # YES. THIS AXIS IS FINE. ARE BOTH DONE.
026514,000173: 26,2717 12673 TCF LOOPTEST # TRY THE Q AXIS NOW.
026515,000174: 26,2720 12766 TCF GTSRAXIS # USE TRIM GIMBAL CONTROL.
026516,000175: 26,2721 77512 -TGBND+1 OCT 77512 # -2 DEG SCALED AT PI, + 1 BIT.
026517,000176: 26,2722 77423 -RATBD+1 OCT 77423 # -.65 DEG/SEC SCALED AT PI/4 + 1 BIT
026518,000177: # ATTITUDE ERROR IS BEYOND TRIM GIMBAL CONTROL LAW RANGE. SET UP FOR RCS CONTROL LAW (Q,R-AXIS) AND CALCULATE
026519,000178: # TIMES TO TURN OFF THE GIMBAL DRIVES.
026520,000179:
026521,000180: 26,2723 32745 RCSCNTRL CAF POSTQRFL # CHANGE LOCATION OF NEXT T5RUPT FROM
026522,000181: 26,2724 54345 TS T5ADR # FILTER TO FILDUMMY
026523,000182:
026524,000183: 26,2725 32746 CAF QRJPFILT # SET UP POST P-AXIS T5RUPT TO GO TO
026525,000184: 26,2726 55601 TS PFILTADR # DUMMYFIL INSTEAD OF FILTER
026526,000185:
![]() |
There is a line here saying "* DELETE THROUGH 0134". Presumably this indicates a change from the last revision. |
026528,000187: 26,2727 00006 EXTEND # PREPARE FOR SEQUENCED RESUMPTION OF
026529,000188: 26,2730 30034 DCA CDUY # Q,R-AXIS RCS CONTROL RATE DERIVATION
026530,000189: 26,2731 53434 DXCH OLDYFORQ # BY PROVIDING OLD CDU READINGS
026531,000190:
026532,000191: 26,2732 00006 EXTEND # MOVE FILTERED AND TRANSFORMED ATTITUDE
![]() |
Page 618 |
026534,000193: 26,2733 31500 DCA QDIFF # ERRORS INTO ERASABLE FOR Q,R-AXIS RCS
026535,000194: 26,2734 57500 XCH RERROR # CONTROL: NOTE THAT THE AXES SEEM TO BE
026536,000195: 26,2735 23477 LXCH QERROR # INTERCHANGED BUT ARE NOT CONFUSED
026537,000196:
026538,000197: 26,2736 37657 CAF ONE
026539,000198: 26,2737 04536 TC WAITLIST
026540,000199: 26,2740 02751 54006 2CADR CHEKDRIV # DO TGOFF CALCULATION IN WAITLIST TASK
026541,000200:
026542,000201: 26,2742 00006 EXTEND # GO TO Q,R-AXES CONTROL IMMEDIATELY
026543,000202: 26,2743 32750 DCA TGENTRY
026544,000203: 26,2744 52006 DTCB
026545,000204:
![]() |
There is a line here saying "* DELETE". Presumably this indicates a change from the last revision. |
026547,000206: 26,2745 02555 POSTQRFL GENADR FILDUMMY
026548,000207: 26,2746 02544 QRJPFILT GENADR DUMMYFIL
026549,000208: 26,2747 03122 50006 TGENTRY 2CADR STILLRCS
026550,000209:
026551,000210:
026552,000211: 26,2751 37665 CHEKDRIV CAF ZERO # CALCULATE Q-AXIS GIMBAL DRIVE SHUTDOWN T
026553,000212: 26,2752 03442 TC TGOFFCAL
026554,000213: 26,2753 04536 TC WAITLIST
026555,000214: 26,2754 03370 54006 2CADR OFFGIMQ
026556,000215:
026557,000216: 26,2756 37656 CAF TWO # CALCULATE R-AXIS GIMBAL DRIVE SHUTDOWN T
026558,000217: 26,2757 03442 TC TGOFFCAL
026559,000218: 26,2760 04536 TC WAITLIST
026560,000219: 26,2761 03373 54006 2CADR OFFGIMR
026561,000220:
026562,000221: 26,2763 03400 TC WRCHN12 # SET UP NEW DRIVES AS OF NOW
026563,000222:
026564,000223: 26,2764 14602 TCF TASKOVER
026565,000224:
![]() |
Page 619 |
026567,000226: # THE DRIVE SETTING ALGORITHM
026568,000227: # DEL = SGN(OMEGA.K + SGN(ALPHA)ALPHA(2)/2) ONLY +1/-1
026569,000228:
026570,000229: # NEGUSUM = ERROR.K(2) + DEL((OMEGA.K.DEL + ALPHA(2)/2)(3/2) + (OMEGA.K.DEL + ALPHA(2)/3)ALPHA
026571,000230:
026572,000231: # DRIVE = -SGN(NEGUSUM)
026573,000232: 26,2765 76504 -.04266 DEC -.04266
026574,000233: 26,2766 37656 GTSRAXIS CAF TWO # SET INDEXER FOR R-AXIS CALCULATIONS
026575,000234: 26,2767 54073 TS QRCNTR
026576,000235: 26,2770 12773 TCF GTSQAXIS
026577,000236:
026578,000237: 26,2771 37665 GOQTRIMG CAF ZERO # SET INDEXER FOR Q-AXIS CALCULATIONS
026579,000238: 26,2772 54073 TS QRCNTR
026580,000239:
026581,000240: 26,2773 00006 GTSQAXIS EXTEND
026582,000241: 26,2774 50073 INDEX QRCNTR # PICK UP K AND K(2) FOR THIS AXIS
026583,000242: 26,2775 31536 DCA KQ
026584,000243: 26,2776 52066 DXCH KCENTRAL
026585,000244:
026586,000245: 26,2777 00006 EXTEND
026587,000246: 26,3000 50073 INDEX QRCNTR # PICK UP OMEGA AND ALPHA FOR THIS AXIS
026588,000247: 26,3001 31420 DCA OMEGAQ
026589,000248: 26,3002 52071 DXCH WCENTRAL
026590,000249:
026591,000250: 26,3003 30073 CAE QRCNTR
026592,000251: 26,3004 00006 EXTEND
026593,000252: 26,3005 13010 BZF +3
026594,000253: 26,3006 31500 CAE RDIFF
026595,000254: 26,3007 13011 TCF +2
026596,000255: 26,3010 31477 CAE QDIFF
026597,000256:
026598,000257: 26,3011 00006 EXTEND # RESCALE DIFFERENCE BY MULTIPLYING BY
026599,000258: 26,3012 77651 MP BIT7 # 2(6)
026600,000259: 26,3013 22075 LXCH ETHETA
026601,000260:
026602,000261: 26,3014 30065 CAE KCENTRAL # TEST ON MAGNITUDE OF ACCDOT
026603,000262: 26,3015 62765 AD -.04266
026604,000263: 26,3016 00006 EXTEND
026605,000264: 26,3017 63033 BZMF ACCDOTSM # BRANCH IF ACCDOT IS SMALL
026606,000265:
026607,000266: 26,3020 37642 ACCDOTLG CAF BIT14 # ACCDOT IS COMPARITIVELY LARGE
026608,000267: 26,3021 54076 TS SF1 # SET UP SCALE FACTORS
026609,000268: 26,3022 37644 CAF BIT12
026610,000269: 26,3023 54077 WSFTEST TS SF2
026611,000270:
026612,000271: 26,3024 10070 CCS WCENTRAL # TEST ON MAGNITUDE OF OMEGA
026613,000272: 26,3025 63056 AD -.04438
026614,000273: 26,3026 13030 TCF +2
026615,000274: 26,3027 63056 AD -.04438
![]() |
Page 620 |
026617,000276: 26,3030 00006 EXTEND
026618,000277: 26,3031 63047 BZMF ASFTEST # IF SMALL, GO TO ALPHA TEST
026619,000278:
026620,000279: 26,3032 13071 TCF WLARGE
026621,000280:
026622,000281: 26,3033 30065 ACCDOTSM CAE KCENTRAL # RESCALE IF ACCDOT IS SMALL
026623,000282: 26,3034 00006 EXTEND
026624,000283: 26,3035 77653 MP BIT5 # RESCALE K BY MULTIPLYING BY 2(4)
026625,000284: 26,3036 22065 LXCH KCENTRAL
026626,000285: 26,3037 30065 CAE KCENTRAL
026627,000286: 26,3040 00006 EXTEND
026628,000287: 26,3041 70000 SQUARE
026629,000288: 26,3042 54066 TS K2CNTRAL
026630,000289: 26,3043 37646 CAF BIT10 # SET UP VARIABLE SCALE FACTORS
026631,000290: 26,3044 54076 TS SF1
026632,000291: 26,3045 37654 CAF BIT4
026633,000292: 26,3046 13023 TCF WSFTEST # GO TEST ON MAGNITUDE OF OMEGA
026634,000293:
026635,000294: 26,3047 10071 ASFTEST CCS ACENTRAL # TEST ON MAGNITUDE OF ALPHA
026636,000295: 26,3050 63057 AD -.08882
026637,000296: 26,3051 13053 TCF +2
026638,000297: 26,3052 63057 AD -.08882
026639,000298: 26,3053 00006 EXTEND
026640,000299: 26,3054 63060 BZMF WARESCAL # IF SMALL, GO TO W,A RESCALING
026641,000300: 26,3055 13071 TCF WLARGE # IF LARGE, DO SAME AS IF W LARGE
026642,000301:
026643,000302: 26,3056 76450 -.04438 DEC -.04438
026644,000303: 26,3057 75120 -.08882 DEC -.08882
026645,000304:
026646,000305: 26,3060 30070 WARESCAL CAE WCENTRAL # RESCALE OMEGA BY MULTIPLYING BY 2(4)
026647,000306: 26,3061 00006 EXTEND
026648,000307: 26,3062 77653 MP BIT5
026649,000308: 26,3063 22070 LXCH WCENTRAL
026650,000309:
026651,000310: 26,3064 30071 CAE ACENTRAL # RESCALE ALPHA BY MULTIPLYING BY 2(3)
026652,000311: 26,3065 00006 EXTEND
026653,000312: 26,3066 77654 MP BIT4
026654,000313: 26,3067 22071 LXCH ACENTRAL
026655,000314:
026656,000315: 26,3070 13101 TCF ALGORTHM
026657,000316:
026658,000317: 26,3071 30076 WLARGE CAE SF1 # RESCALE VARIABLE SCALE FACTORS
026659,000318: 26,3072 00006 EXTEND
026660,000319: 26,3073 77643 MP BIT13 # SF1 = SF1*2(-2)
026661,000320: 26,3074 54076 TS SF1
026662,000321: 26,3075 30077 CAE SF2
026663,000322: 26,3076 00006 EXTEND
026664,000323: 26,3077 77652 MP BIT6 # SF2 = SF2*2(-9)
026665,000324: 26,3100 54077 TS SF2
026666,000325:
![]() |
Page 621 |
026668,000327: 26,3101 30075 ALGORTHM CAE ETHETA # GET RESCALED ERROR THETA
026669,000328: 26,3102 00006 EXTEND
026670,000329: 26,3103 70066 MP K2CNTRAL # FORM K(2)*THETA IN D.P.
026671,000330: 26,3104 22074 LXCH K2THETA
026672,000331: 26,3105 00006 EXTEND # FORM K(2)*THETA*SF2 IN D.P.
026673,000332: 26,3106 70077 MP SF2
026674,000333: 26,3107 52075 DXCH K2THETA
026675,000334: 26,3110 00006 EXTEND
026676,000335: 26,3111 70077 MP SF2
026677,000336: 26,3112 26075 ADS K2THETA +1
026678,000337:
026679,000338: 26,3113 30070 CAE WCENTRAL # GET OMEGA
026680,000339: 26,3114 00006 EXTEND
026681,000340: 26,3115 70065 MP KCENTRAL # FORM K*OMEGA IN D.P.
026682,000341: 26,3116 22065 LXCH OMEGA.K
026683,000342: 26,3117 00006 EXTEND # FORM OMEGA*K*SF1 IN D.P.
026684,000343: 26,3120 70076 MP SF1
026685,000344: 26,3121 52066 DXCH OMEGA.K
026686,000345: 26,3122 00006 EXTEND
026687,000346: 26,3123 70076 MP SF1
026688,000347: 26,3124 26066 ADS OMEGA.K +1
026689,000348:
026690,000349: 26,3125 30071 CAE ACENTRAL # FORM ALPHA(2) IN D.P.
026691,000350: 26,3126 00006 EXTEND
026692,000351: 26,3127 70000 SQUARE
026693,000352: 26,3130 52077 DXCH A2CNTRAL
026694,000353:
026695,000354: 26,3131 30071 CAE ACENTRAL # GET SGN(ALPHA)
026696,000355: 26,3132 00006 EXTEND
026697,000356: 26,3133 63137 BZMF +4
026698,000357: 26,3134 00006 EXTEND
026699,000358: 26,3135 30077 DCA A2CNTRAL
026700,000359: 26,3136 13141 TCF +3
026701,000360: 26,3137 00006 EXTEND
026702,000361: 26,3140 40077 DCS A2CNTRAL
026703,000362: 26,3141 53531 DXCH FUNCTION # SAVE AS SGN(ALPHA)ALPHA(2)
026704,000363: 26,3142 00006 EXTEND
026705,000364: 26,3143 30066 DCA OMEGA.K
026706,000365: 26,3144 21531 DAS FUNCTION # FORM FUNCT1
026707,000366:
026708,000367: 26,3145 11530 CCS FUNCTION # DEL = SGN(FUNCT1)
026709,000368: 26,3146 13152 TCF POSFNCT1
026710,000369: 26,3147 13151 TCF +2
026711,000370: 26,3150 13154 TCF NEGFNCT1
026712,000371:
026713,000372: 26,3151 11531 CCS FUNCTION +1 # USE LOW ORDER WORD SINCE HIGH IS ZERO
026714,000373: 26,3152 37656 POSFNCT1 CAF TWO
026715,000374: 26,3153 13155 TCF +2
026716,000375: 26,3154 37665 NEGFNCT1 CAF ZERO
026717,000376: 26,3155 67667 AD NEG1
![]() |
Page 622 |
026719,000378: 26,3156 54072 TS DEL
026720,000379:
026721,000380: 26,3157 10072 CCS DEL # MAKE OMEGA*K REALLY DEL*OMEGA*K
026722,000381: 26,3160 13165 TCF FUNCT2 # (NOTHING NEED BE DONE)
026723,000382: 26,3161 25253 .66667 DEC .66667
026724,000383: 26,3162 00006 EXTEND
026725,000384: 26,3163 40066 DCS OMEGA.K
026726,000385: 26,3164 52066 DXCH OMEGA.K # CHANGE SIGN OF OMEGA*K
026727,000386:
026728,000387: 26,3165 00006 FUNCT2 EXTEND
026729,000388: 26,3166 30066 DCA OMEGA.K
026730,000389: 26,3167 53531 DXCH FUNCTION # DEL*OMEGA*K
026731,000390: 26,3170 00006 EXTEND
026732,000391: 26,3171 30077 DCA A2CNTRAL
026733,000392: 26,3172 21531 DAS FUNCTION # DEL*OMEGA*K + SGN(ALPHA)ALPHA(2)
026734,000393:
026735,000394: 26,3173 30076 FUNCT3 CAE A2CNTRAL # CALCULATE (2/3)SGN(ALPHA)ALPHA(2)
026736,000395: 26,3174 00006 EXTEND
026737,000396: 26,3175 73161 MP .66667
026738,000397: 26,3176 52077 DXCH A2CNTRAL
026739,000398: 26,3177 56001 XCH L
026740,000399: 26,3200 00006 EXTEND
026741,000400: 26,3201 73161 MP .66667
026742,000401: 26,3202 26077 ADS A2CNTRAL +1
026743,000402: 26,3203 54001 TS L
026744,000403: 26,3204 13206 TCF +2
026745,000404: 26,3205 60076 AD A2CNTRAL
026746,000405:
026747,000406: 26,3206 52066 DXCH OMEGA.K # DEL*OMEGA*K+
026748,000407: 26,3207 20077 DAS A2CNTRAL # (2/3)SGN(ALPHA)ALPHA(2)=G
026749,000408:
026750,000409: 26,3210 30076 CAE A2CNTRAL # G*ALPHA IN D.P.
026751,000410: 26,3211 00006 EXTEND
026752,000411: 26,3212 70071 MP ACENTRAL
026753,000412: 26,3213 52077 DXCH A2CNTRAL
026754,000413: 26,3214 56001 XCH L
026755,000414: 26,3215 00006 EXTEND
026756,000415: 26,3216 70071 MP ACENTRAL
026757,000416: 26,3217 26077 ADS A2CNTRAL +1
026758,000417: 26,3220 54001 TS L
026759,000418: 26,3221 13223 TCF +2
026760,000419: 26,3222 26076 ADS A2CNTRAL
026761,000420:
026762,000421: 26,3223 52077 DXCH A2CNTRAL # FIRST AND THIRD TERMS
026763,000422: 26,3224 20075 DAS K2THETA # SUMMED IN D.P.
026764,000423:
026765,000424: # THE FOLLOWING SECTION CALCULATES .707*DEL*FUNCTION(3/2) AND ADDS IT TO THE OTHER TWO TERMS OF NEGUSUM.
026766,000425:
026767,000426: 26,3225 11530 CCS FUNCTION # TEST FOR HIGH ORDER WORD NON-ZERO
026768,000427: 26,3226 13273 TCF FMAGTEST # YES, SEE IF RESCALING IS NECESSARY
![]() |
Page 623 |
026770,000429: 26,3227 13231 TCF +2 # NO, USE LOW ORDER WORD ONLY
026771,000430: 26,3230 26501 .707GTS DEC .70711 # (CCS HOLE USED FOR DATA)
026772,000431: 26,3231 04177 TC T6JOBCHK
026773,000432:
026774,000433: 26,3232 31531 CAE FUNCTION +1 # USE LOW ORDER WORD ONLY
026775,000434: 26,3233 04275 TC SPROOT # SQUARE ROOT SUBROUTINE CALL
026776,000435: 26,3234 00006 EXTEND # 3/2
026777,000436: 26,3235 71531 MP FUNCTION +1 # FUNCTION
026778,000437: 26,3236 00006 EXTEND # (NEEDS TO BE SHIFTED RIGHT 21 PLACES)
026779,000438: 26,3237 77650 MP BIT8
026780,000439: 26,3240 56001 XCH L
026781,000440: 26,3241 37665 CAF ZERO # 3/2
026782,000441: 26,3242 53531 DXCH FUNCTION # SAVE FUNCTION IN FUNCTION LOCATION
026783,000442: 26,3243 13260 TCF DELTEST
026784,000443:
026785,000444: 26,3244 31530 SQRESCAL CAE FUNCTION # HIGH ORDER WORD OF FUNCTION NEEDS TO BE
026786,000445: 26,3245 00006 EXTEND # RESCALED FOR ACCURACY, SO MULTIPLY D.P.
026787,000446: 26,3246 77651 MP BIT7 # VALUE BY 2(6)
026788,000447: 26,3247 23530 LXCH FUNCTION
026789,000448: 26,3250 37665 CAF ZERO
026790,000449: 26,3251 57531 XCH FUNCTION +1
026791,000450: 26,3252 00006 EXTEND
026792,000451: 26,3253 77651 MP BIT7
026793,000452: 26,3254 21531 DAS FUNCTION
026794,000453:
026795,000454: 26,3255 37665 CAF ZERO # SET FLAG TO GO TO RESCALE, AND GO TO DO
026796,000455: 26,3256 55527 TS MULTFLAG # SQUARE ROOT AND FUNCTION(3/2)
026797,000456: 26,3257 13300 TCF DOSPROOT # CALCULATION
026798,000457:
026799,000458: 26,3260 47637 DELTEST CS POSMAX # SET FLAG TO GO TO NEGUSUM
026800,000459: 26,3261 55527 TS MULTFLAG
026801,000460: 26,3262 10072 CCS DEL # GET DEL*.707
026802,000461: 26,3263 33230 CAF .707GTS
026803,000462: 26,3264 13266 TCF +2
026804,000463: 26,3265 43230 CS .707GTS
026805,000464: 26,3266 13302 TCF SPDPMULT # GO TO MULTIPLY ROUTINE
026806,000465:
026807,000466: 26,3267 37637 RESHIFT CAF POSMAX # SET FLAG TO GO TO DELTEST
026808,000467: 26,3270 55527 TS MULTFLAG
026809,000468: 26,3271 37652 CAF BIT6
026810,000469: 26,3272 13302 TCF SPDPMULT # GO TO MULTIPLY ROUTINE
026811,000470:
026812,000471: 26,3273 64362 FMAGTEST AD 63/64+1 # IF MAGNITUDE OF HIGH ORDER WORD IS LESS
026813,000472: 26,3274 54000 OVSK # THAN 1/64 RESCALE WHOLE D.P. WORD
026814,000473: 26,3275 13244 TCF SQRESCAL
026815,000474:
026816,000475: 26,3276 37637 CAF POSMAX
026817,000476: 26,3277 55527 TS MULTFLAG
026818,000477:
026819,000478: 26,3300 31530 DOSPROOT CAE FUNCTION # USE HIGH ORDER WORD ONLY
![]() |
Page 624 |
026821,000480: 26,3301 04275 TC SPROOT # SQUARE ROOT SUBROUTINE CALL
026822,000481:
026823,000482: 26,3302 57530 SPDPMULT XCH FUNCTION # THIS IS AN OPEN SUBROUTINE WHICH USES
026824,000483: 26,3303 00006 EXTEND # MULTFLAG AS A RETURN SWITCH.
026825,000484: 26,3304 71530 MP FUNCTION # IT MULTIPLIES FUNCTION (D.P.) BY C(A)
026826,000485: 26,3305 53531 DXCH FUNCTION # AND LEAVES THE RESULT IN FUNCTION (D.P.)
026827,000486: 26,3306 00006 EXTEND # IT IS USED FOR-
026828,000487: 26,3307 70001 MP L # 1) F(1/2)*F
026829,000488: 26,3310 27531 ADS FUNCTION +1 # 2) (.707*DEL)*F
026830,000489: 26,3311 54001 TS L # 3) 2(-9)*F
026831,000490: 26,3312 13314 TCF +2
026832,000491: 26,3313 27530 ADS FUNCTION
026833,000492:
026834,000493: 26,3314 11527 CCS MULTFLAG # POSMAX MEANS GO TO DELTEST
026835,000494: 26,3315 13260 TCF DELTEST # ZERO MEANS GO TO RESHIFT
026836,000495: 26,3316 13267 TCF RESHIFT # NEGMAX MEANS GO TO NEGUSUM
026837,000496:
026838,000497: 26,3317 00006 NEGUSUM EXTEND # FORM FINAL SUM FOR NEGUSUM
026839,000498: 26,3320 31531 DCA FUNCTION
026840,000499: 26,3321 20075 DAS K2THETA
026841,000500:
026842,000501: 26,3322 10074 CCS K2THETA # TEST FOR ZERO HIGH ORDER PART
026843,000502: 26,3323 13327 TCF NEGDRIVE
026844,000503: 26,3324 13326 TCF +2
026845,000504: 26,3325 13331 TCF POSDRIVE
026846,000505:
026847,000506: 26,3326 10075 CCS K2THETA +1 # SIGN TEST ON LOW ORDER PART
026848,000507: 26,3327 37656 NEGDRIVE CAF TWO
026849,000508: 26,3330 13332 TCF +2
026850,000509: 26,3331 37665 POSDRIVE CAF ZERO
026851,000510: 26,3332 67667 AD NEG1
026852,000511: 26,3333 50073 INDEX ITEMP6 # SET NEGUQ,R TO NEG DRIVE
026853,000512: 26,3334 55532 TS NEGUQ
026854,000513:
026855,000514: 26,3335 40000 COM
026856,000515: 26,3336 00006 EXTEND # SEND BACK JERK TERM
026857,000516: 26,3337 50073 INDEX ITEMP6
026858,000517: 26,3340 71541 MP ACCDOTQ
026859,000518: 26,3341 50073 INDEX ITEMP6
026860,000519: 26,3342 23542 LXCH QACCDOT
026861,000520:
026862,000521: 26,3343 10073 CCS QRCNTR # LOOP COUNTER
026863,000522: 26,3344 12771 TCF GOQTRIMG
026864,000523:
026865,000524: # TRANSFORM JERKS BACK TO GIMBAL AXES.
026866,000525:
026867,000526: 26,3345 31542 CAE QACCDOT # SCALED AT PI/2(7)
026868,000527: 26,3346 00006 EXTEND
026869,000528: 26,3347 71400 MP MR12 # SCALED AT 2
026870,000529: 26,3350 55576 TS Y3DOT
![]() |
Page 625 |
026872,000531: 26,3351 31544 CAE RACCDOT # SCALED AT PI/2(7)
026873,000532: 26,3352 00006 EXTEND
026874,000533: 26,3353 71402 MP MR13 # SCALED AT 2
026875,000534: 26,3354 27576 ADS Y3DOT
026876,000535: 26,3355 27576 ADS Y3DOT # SCALED AT PI/2(7)
026877,000536:
026878,000537: 26,3356 31542 CAE QACCDOT # SCALED AT PI/2(7)
026879,000538: 26,3357 00006 EXTEND
026880,000539: 26,3360 71401 MP MR22 # SCALED AT 1
026881,000540: 26,3361 55600 TS Z3DOT
026882,000541: 26,3362 31544 CAE RACCDOT # SCALED AT PI/2(7)
026883,000542: 26,3363 00006 EXTEND
026884,000543: 26,3364 71403 MP MR23 # SCALED AT 1
026885,000544: 26,3365 27600 ADS Z3DOT # SCALED AT PI/2(7)
026886,000545:
026887,000546: 26,3366 03400 TC WRCHN12 # SEND GIMBAL DRIVES TO SERVOS
026888,000547: 26,3367 14606 TCF RESUME # WAIT UNTIL NEXT TRIM GIMBAL RUPT
026889,000548:
026890,000549: # WAITLIST TASKS TO SET TRIM GIMBAL TURN OFF BITS.
026891,000550:
026892,000551: 26,3370 37665 OFFGIMQ CAF ZERO # SET Q-AXIS FLAG TO ZERO
026893,000552: 26,3371 55532 TS NEGUQ
026894,000553: 26,3372 13375 TCF +3
026895,000554: 26,3373 37665 OFFGIMR CAF ZERO # SET R-AXIS FLAG TO ZERO
026896,000555: 26,3374 55534 TS NEGUR
026897,000556: 26,3375 03400 TC WRCHN12 # FLAGS TO CHANNEL BITS
026898,000557: 26,3376 14602 TCF TASKOVER
026899,000558:
026900,000559: # THE WRCHN12 SUBROUTINE SETS BITS 9,10,11,12 OF CHANNEL 12 ON THE BASIS OF THE CONTENTS OF NEGUQ,NEGUR WHICH ARE
026901,000560: # THE NEGATIVES OF THE TRIM GIMBAL DESIRED DRIVES.
026902,000561:
026903,000562: 26,3377 07400 BGIM OCTAL 07400
026904,000563: 26,3400 0073 CHNL12 EQUALS ITEMP6
026905,000564:
026906,000565: 26,3400 43377 WRCHN12 CS BGIM # SAVE THE REST OF CHANNEL 12 DURING TESTS
026907,000566: 26,3401 00006 EXTEND
026908,000567: 26,3402 02012 RAND 12
026909,000568: 26,3403 54073 TS CHNL12 # (TEMPORARY STORAGE)
026910,000569:
026911,000570: 26,3404 11532 CCS NEGUQ
026912,000571: 26,3405 37647 CAF BIT9
026913,000572: 26,3406 13410 TCF +2
026914,000573: 26,3407 37646 CAF BIT10
026915,000574: 26,3410 26073 ADS CHNL12
026916,000575:
026917,000576: 26,3411 11534 CCS NEGUR
026918,000577: 26,3412 37645 CAF BIT11
026919,000578: 26,3413 13415 TCF +2
026920,000579: 26,3414 37644 CAF BIT12
026921,000580: 26,3415 26073 ADS CHNL12 # (STORED RESULT NOT USED AT PRESENT)
![]() |
Page 626 |
026923,000582: 26,3416 00006 EXTEND
026924,000583: 26,3417 01012 WRITE 12
026925,000584:
026926,000585: 26,3420 00002 TC Q # SIMPLE RETURN ALWAYS
026927,000586:
026928,000587: # Q,R-TRANSF TRANSFORMS A Y,Z GIMBAL COORDINATE VARIABLE PAIR (IN A,L) TO PILOT COORDINATES (Q/R), RETURNED IN A.
026929,000588: # (THE MATRIX M FROM GIMBAL TO PILOT AXES IS ASSUMED TO BE DONE BY T4RUPT AND SCALED AT +1.)
026930,000589:
026931,000590: 26,3421 0073 QRERAS EQUALS ITEMP6
026932,000591:
026933,000592: 26,3421 22073 QTRANSF LXCH QRERAS # SAVE Z-AXIS VARIABLE
026934,000593: 26,3422 00006 EXTEND
026935,000594: 26,3423 71405 MP M21 # (Y-AXIS)*M21
026936,000595: 26,3424 56073 XCH QRERAS # SAVE, GET Z-AXIS VARIABLE
026937,000596: 26,3425 00006 EXTEND
026938,000597: 26,3426 71401 MP M22 # (Z-AXIS)*M22
026939,000598: 26,3427 60073 AD QRERAS # SUM = (Y-AXIS)*M21 + (Z-AXIS)*M22
026940,000599: 26,3430 00002 TC Q # RETURN WITH SUM IN A
026941,000600:
026942,000601: 26,3431 22073 RTRANSF LXCH QRERAS # SAVE Z-AXIS VARIABLE
026943,000602: 26,3432 00006 EXTEND
026944,000603: 26,3433 71406 MP M31 # (Y-AXIS)*M31
026945,000604: 26,3434 56073 XCH QRERAS # SAVE, GET Z-AXIS VARIABLE
026946,000605: 26,3435 00006 EXTEND
026947,000606: 26,3436 71403 MP M32 # (Z-AXIS)*M32
026948,000607: 26,3437 60073 AD QRERAS # SUM = (Y-AXIS)*M31 + (Z-AXIS)*M32
026949,000608: 26,3440 00002 TC Q # RETURN WITH SUM IN A
026950,000609:
026951,000610: 26,3441 25253 (2/3) DEC 0.66667
026952,000611:
![]() |
Page 627 |
026954,000613: # SUBROUTINE: TGOFFCAL MOD. NO. 1 DATE: AUGUST 22, 1966
026955,000614:
026956,000615: # PROGRAM DESIGN BY: RICHARD D. GOSS (MIT/IL)
026957,000616:
026958,000617: # PROGRAM IMPLEMENTATION BY: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
026959,000618:
026960,000619: # THIS SUBROUTINE CALCULATES THE TRIM GIMBAL SHUTDOWN TIME FOR EITHER THE Q OR THE R AXIS (DEPENDING ON THE
026961,000620: # CALLING SEQUENCE). THIS TIME IS SCALED FOR IMMEDIATE USE BY A WAITLIST CALL AS SHOWN IN THE CALLING SEQUENCES.
026962,000621: # IF THE TIME-TO-GO IS MORE THAN TWO MINUTES, IT IS LIMITED TO TWO MINUTES DUE TO THE WAITLIST SPECIFICATION. IF
026963,000622: # THE TIME-TO-GO IS LESS THAN TEN MILLISECONDS, THE SHUTDOWN IS PERFORMED IMMEDIATELY AND THE WAITLIST CALL IS
026964,000623: # BY-PASSED. FINALLY, IF THE TRIM GIMBAL SHOULD HAPPEN TO BE MOVING IN A DIRECTION WHICH INCREASES THE ANGULAR
026965,000624: # ACCELERATION ABOUT THE GIVEN AXIS, THEN THE NEGATIVE GIMBAL DRIVE FLAG IS IMMEDIATELY COMPLEMENTED AND THE
026966,000625: # NORMAL CALCULATIONS ARE RESUMED.
026967,000626:
026968,000627: # THESE TIME-TO-GO CALCULATIONS ARE DESIGNED TO DRIVE THE TRIM GIMBAL TO A POSITION WHERE THE DESCENT ENGINE WILL
026969,000628: # CAUSE NO ANGULAR ACCELERATION. THIS SUBROUTINE IS CALLED ONLY FROM THE WAITLIST TASK CHEKDRIV WHICH IS
026970,000629: # INITIATED ONLY WHEN THE TRIM GIMBAL CONTROL LAW HAS LOST CONTROL OF THE LEM VEHICLE ATTITUDE AND MUST RETURN TO
026971,000630: # THE USE OF REACTION CONTROL SYSTEM JETS.
026972,000631:
026973,000632: # CALLING SEQUENCES:
026974,000633:
026975,000634: # 26,1000 3 7657 1 CAF ZERO Q-AXIS INDEXER
026976,000635: # 26,1001 0 $$$$ $ TC TGOFFCAL CALL TGOFFCAL (*** REPLACE $S ***)
026977,000636: # 26,1002 0 4511 0 TC WAITLIST CALL WAITLIST WITH CALCULATED TIME
026978,000637: # 26,1003 0$$$$ $ 2CADR OFFGIMQ 2CADR OF Q-AXIS SHUTDOWN PROGRAM
026979,000638: # 26,1004 54006 1
026980,000639:
026981,000640: # 26,1005 3 7657 1 CAF TWO R-AXIS INDEXER
026982,000641: # 26,1006 0 $$$$ $ TC TGOFFCAL CALL TGOFFCAL (*** REPLACE $S ***)
026983,000642: # 26,1007 0 4511 0 TC WAITLIST CALL WAITLIST WITH CALCULATED TIME
026984,000643: # 26,1010 0$$$$ $ 2CADR OFFGIMR 2CADR OF R-AXIS SHUTDOWN PROGRAM
026985,000644: # 26,1011 54006 1
026986,000645:
026987,000646: # SUBROUTINES CALLED: NONE, BUT WRCHNL12 IS CALLED AFTER BOTH TGOFFCALL CALLS.
026988,000647:
026989,000648: # NORMAL EXITS: TO WAITLIST CALL OR BEYOND 2CADR IN CALLING SEQUENCE AS SPECIFIED ABOVE.
026990,000649:
026991,000650: # ALARM OR ABORT EXIT MODES: NONE
026992,000651:
026993,000652: # INPUT: 1. THE AXIS INDEXER: 0 FOR Q, 2 FOR R (SEE CALLING SEQUENCES)
026994,000653: # 2. THE SIGNED TIME DERIVATIVE OF ACCELERATION (QACCDOT OR RACCDOT) SCALED AT PI/2(7) RAD/SEC(3).
026995,000654: # 3. THE ACCELERATION APPROXIMATION FROM THE DESCENT KALMAN FILTER TRANSFORMED TO PILOT AXES (ALPHAQ OR
026996,000655: # ALPHAR) SCALED AT PI/8 RAD/SEC(2).
026997,000656: # 4. THE NEGATIVE GIMBAL DRIVE FLAG (NEGUQ AND NEGUR) WHERE +1 BIT INDICATES A GIMBAL DRIVE DIRECTION WHICH
026998,000657: # DECREASES THE SIGNED GIMBAL ANGLE, WHERE -1 BIT INDICATES A GIMBAL DRIVE DIRECTION WHICH INCREASES THE SIGNED
026999,000658: # GIMBAL ANGLE, AND WHERE ZERO INDICATES NO DRIVE.
027000,000659: # 5. CHANNEL 12 CONTAINS THE TRIM GIMBAL DRIVES AND OTHER BITS.
027001,000660:
027002,000661: # ERASABLE STORAGE CONFIGURATION (NEEDED BY THE INDEXING METHODS):
![]() |
Page 628 |
027004,000663: # NEGUQ ERASE +2 NEGATIVE OF Q-AXIS GIMBAL DRIVE
027005,000664: # (SPWORD) EQUALS NEGUQ +1 ANY S.P. ERASABLE NUMBER, NOW THRSTCMD
027006,000665: # NEGUR EQUALS NEGUQ +2 NEGATIVE OF R-AXIS GIMBAL DRIVE
027007,000666:
027008,000667: # QACCDOT ERASE +2 Q-JERK SCALED AT PI/2(7) RAD/SEC(3) +SGN
027009,000668: # (SPWORD) EQUALS QACCDOT +1 ANY S.P. ERASABLE NUMBER, NOW ACCDOTR
027010,000669: # RACCDOT EQUALS QACCDOT +2 R-JERK SCALED AT PI/2(7) RAD/SEC(3) +SGN
027011,000670: # NOTE: NOW ACCDOTQ MUST PRECEDE QACCDOT
027012,000671:
027013,000672: # ALPHAQ ERASE +2 Q-AXIS ACCELERATION SCALED AT PI/8 R/S2
027014,000673: # (SPWORD) EQUALS ALPHAQ +1 ANY S.P. ERASABLE NUMBER, NOW OMEGAR
027015,000674: # ALPHAR EQUALS ALPHAQ +2 R-AXIS ACCELERATION SCALED AT PI/8 R/S2
027016,000675: # NOTE: NOW OMEGAP,OMEGAQ PRECEDE ALPHAQ
027017,000676:
027018,000677: # DEBRIS: L, Q, ITEMP1, ITEMP2, ITEMP6
027019,000678:
027020,000679:
027021,000680: 26,3442 54065 TGOFFCAL TS QRNDXER # Q OR R AXIS INDEXER
027022,000681: 26,3443 50065 INDEX QRNDXER # GET SIGNED JERK TERM SCALED AT PI/2(7)
027023,000682: 26,3444 31542 CAE QACCDOT # IN RADIANS/SECOND(3)
027024,000683: 26,3445 00006 EXTEND # IF THETA TRIPLE-DOT IS ZERO, THEN RESET
027025,000684: 26,3446 13511 BZF TGOFFNOW # DRIVE TO ZERO (SHOULD BE REDUNDANT)
027026,000685: 26,3447 54066 TS NZACCDOT # SAVE NON-ZERO JERK FOR DENOMINATOR
027027,000686: 26,3450 00006 EXTEND # TEST FOR REDUCING ACCELERATION IS SAME
027028,000687: 26,3451 50065 INDEX QRNDXER # AS TEST FOR SAME SIGN IN -ACC AND ACCDOT
027029,000688: 26,3452 71420 MP ALPHAQ # IF POSITIVE PRODUCT, THEN GIMBAL DRIVE
027030,000689: 26,3453 10000 CCS A # SHOULD BE REVERSED: NOTE THAT A SIMPLE
027031,000690: 26,3454 13460 TCF NEGTIME # BZMF TEST WILL NOT WORK WHEN THE MP
027032,000691: 26,3455 13460 TCF NEGTIME # INSTRUCTION RESULTS IN ZERO IN A
027033,000692: 26,3456 13466 TCF POSTIME # AT POSTIME IT IS INSURED THAT A POSITIVE
027034,000693: 26,3457 13466 TCF POSTIME # TIME WILL RESULT AND ACC WILL GO TO ZERO
027035,000694:
027036,000695: 26,3460 50065 NEGTIME INDEX QRNDXER # COMPLEMENT THE DRIVE DIRECTION FLAG
027037,000696: 26,3461 41532 CS NEGUQ
027038,000697: 26,3462 50065 INDEX QRNDXER
027039,000698: 26,3463 55532 TS NEGUQ
027040,000699: 26,3464 40066 CS NZACCDOT # COMPLEMENT ACCDOT TO GET A GUARANTEED
027041,000700: 26,3465 54066 TS NZACCDOT # POSITIVE TIME FROM QUOTIENT
027042,000701:
027043,000702: 26,3466 50065 POSTIME INDEX QRNDXER # TIME = -ACC/ACCDOT (POSITIVE VALUE)
027044,000703: 26,3467 41420 CS ALPHAQ # SCALED AT PI/8 RADIANS/SECOND(2)
027045,000704: 26,3470 00006 EXTEND # MULTIPLY BY 1/16
027046,000705: 26,3471 77645 MP BIT11 # TO CHANGE SCALING TO 2PI RAD/SEC(2)
027047,000706: 26,3472 00006 EXTEND # ACCDOT SCALED AT PI/2(7) IN DENOMINATOR
027048,000707: 26,3473 10066 DV NZACCDOT # YIELDS TIME SCALED AT 256 SECONDS
027049,000708: 26,3474 63517 AD -2MIN256 # COMPARE WITH MAXIMUM 2 MINUTE DELAY OF
027050,000709: 26,3475 10000 CCS A # WAITLIST ACTION (TIMES AT 256 SECONDS)
027051,000710: 26,3476 43516 CS -2MINWL # MORE THAN TWO MINUTES, USE 2 MINUTES
027052,000711: 26,3477 00002 TC Q # RETURN WL CALL WITH 2 MIN AT 1BIT=10MS
![]() |
Page 629 |
027054,000713: 26,3500 67657 AD ONE # (CORRECT FOR CCS BIT)
027055,000714: 26,3501 00006 EXTEND # CALCULATE DT = ABS(T-2MIN)
027056,000715: 26,3502 73520 MP 128/164 # AND RESCALE DT TO WAITLIST SCALING
027057,000716: 26,3503 20001 DDOUBL
027058,000717: 26,3504 63516 AD -2MINWL # -T = DT + 2MIN (IN WAITLIST SCALING)
027059,000718: 26,3505 40000 COM # MAKE T POSITIVE FOR WAITLIST
027060,000719: 26,3506 00006 EXTEND # MAKE FINAL CHECK TO INSURE T .G. 10MS
027061,000720: 26,3507 63511 BZMF TGOFFNOW # DO SHUTDOWN NOW (COULD USE BZF)
027062,000721: 26,3510 00002 TC Q # RETURN TO WAITLIST CALL WITH WL TIME
027063,000722:
027064,000723: 26,3511 37665 TGOFFNOW CAF ZERO # MAKE SURE PLUS ZERO FOR DRIVE FLAG
027065,000724: 26,3512 50065 INDEX QRNDXER # TURN OFF DRIVE FLAG NOW
027066,000725: 26,3513 55532 TS NEGUQ
027067,000726: 26,3514 50002 INDEX Q
027068,000727: 26,3515 00003 TC 3 # SKIP WAITLIST CALL AND 2CADR
027069,000728:
027070,000729:
027071,000730: 26,3516 0065 QRNDXER EQUALS ITEMP1 # INDEXER FOR Q OR R AXIS
027072,000731: 26,3516 0066 NZACCDOT EQUALS ITEMP2 # TEMPORARY STORAGE FOR NON-ZERO ACCDOT
027073,000732: 26,3516 50437 -2MINWL DEC -12000 B-14 # - 2 MINUTES SCALED FOR WAITLIST
027074,000733: 26,3517 60777 -2MIN256 DEC -.46875 # - 2 MINUTES SCALED AT 256
027075,000734: 26,3520 31000 128/164 OCTAL 31000 # 128/163.84 CONVERTING 256 TO WAITLIST/2
027076,000735: 26,3521 ENDDAP26 EQUALS
End of include-file TRIM_GIMBAL_CONTROL_SYSTEM.agc. Parent file is MAIN.agc