Source Code

042691,000001: # Copyright: Public domain. 042692,000002: # Filename: TVCDAPS.agc 042693,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055. 042694,000004: # It is part of the source code for the Command Module's (CM) 042695,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 042696,000006: # Assembler: yaYUL 042697,000007: # Contact: Ron Burkey <info@sandroid.org>. 042698,000008: # Website: www.ibiblio.org/apollo. 042699,000009: # Pages: 961-978 042700,000010: # Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the 042701,000011: # same name, using Comanche055 page images. 042702,000012: # 2009-05-20 RSB Corrections: Eliminated an extraneous EXTEND, 042703,000013: # added a missing instruction to PFORWARD. 042704,000014: # 2000-05-21 RSB Wrong opcode was used with DELBRTMP and 042705,000015: # DELBRTMP +1 operands in 4 places. Corrected 042706,000016: # an MP operation in 2CASFLTR. 042707,000017: 042708,000018: # This source code has been transcribed or otherwise adapted from digitized 042709,000019: # images of a hardcopy from the MIT Museum. The digitization was performed 042710,000020: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many 042711,000021: # thanks to both. The images (with suitable reduction in storage size and 042712,000022: # consequent reduction in image quality as well) are available online at 042713,000023: # www.ibiblio.org/apollo. If for some reason you find that the images are 042714,000024: # illegible, contact me at info@sandroid.org about getting access to the 042715,000025: # (much) higher-quality images which Paul actually created. 042716,000026: 042717,000027: # Notations on the hardcopy document read, in part: 042718,000028: 042719,000029: # Assemble revision 055 of AGC program Comanche by NASA 042720,000030: # 2021113-051. 10:28 APR. 1, 1969 042721,000031: 042722,000032: # This AGC program shall also be referred to as 042723,000033: # Colossus 2A 042724,000034: 042725,000035: # Page 961 042726,000036: # PROGRAM NAME....TVCDAP, CONSISTING OF PITCHDAP, YAWDAP, ETC. 042727,000037: # LOG SECTION....TVCDAPS SUBROUTINE....DAPCSM 042728,000038: # MODIFIED BY SCHLUNDT 21 OCTOBER 1968 042729,000039: 042730,000040: # FUNCTIONAL DESCRIPTION 042731,000041: 042732,000042: # SELF-PERPETUATING T5 TASKS WHICH GENERATE THE COMMAND SIGNALS 042733,000043: # FOR THE PITCH AND YAW SPS GIMBAL ACTUATORS DURING TVC (SPS) BURNS, 042734,000044: # IN RESPONSE TO BODY-AXIS RATE COMMANDS FROM CROSS-PRODUCT STEERING 042735,000045: # (S40.8). IF NO STEERING (IMPULSIVE BURNS) MAINTAINS ATTITUDE-HOLD 042736,000046: # ABOUT THE REFERENCE (INITIAL) DIRECTIONS (ZERO RATE COMMANDS). 042737,000047: 042738,000048: # THE PITCH AND YAW LOOPS ARE SEPARATE, BUT STRUCTURED IDENTICALLY. 042739,000049: # EACH ATTITUDE-RATE LOOP INCLUDES GIMBAL ANGLE RATE DERIVATION, 042740,000050: # GIMBAL/BODY AXIS TRANSFORMATION, BODY-AXIS ATTITUDE ERROR 042741,000051: # INTEGRATION WITH ERROR LIMITING, THE GENERALIZED 6TH-ORDER FILTERS 042742,000052: # FOR CSM OR CSM/LM OPERATION. A FILTER OUTPUT LIMITER. 042743,000053: # CG-OFFSET TRACKER FILTER, AND THE CG-TRACKER MINOR LOOP. 042744,000054: 042745,000055: # THE DAPS ARE CYCLIC, CALLING EACH OTHER AT 1/2 THE DAP SAMPLE 042746,000056: # TIME, AS DETERMINED BY T5TVCDT. THE ACTUATOR COMMANDS ARE 042747,000057: # REGENERATED AS ANALOG VOLTAGES BY THE OPTICS ERROR COUNTERS, WHICH 042748,000058: # TRANSMIT THE SIGNAL TO THE ACTUATOR SERVOS WHEN THERE IS PROPER CDU 042749,000059: # MODING. 042750,000060: 042751,000061: # CALLING SEQUENCE.... (TYPICALLY) 042752,000062: 042753,000063: # T5 CALL OF TVCDAPON (TVCINITIALIZE) BY DOTVCON (P40) 042754,000064: # T5 CALL OF DAPINIT (TVCDAPS) BY TVCINIT4 (TVCINITIALIZE) 042755,000065: # T5 CALL OF PITCHDAP BY DAPINIT 042756,000066: # T5 CALL OF YAWDAP BY PITCHDAP 042757,000067: # T5 CALL OF PITCHDAP BY YAWDAP 042758,000068: # ETC. 042759,000069: # (AUTOMATIC SEQUENCING FROM TVCDAPON) 042760,000070: 042761,000071: # NORMAL EXIT MODE....RESUME 042762,000072: 042763,000073: # ALARM OR ABORT EXIT MODES....NONE 042764,000074: 042765,000075: # SUBROUTINES CALLED.... 042766,000076: 042767,000077: # HACK FOR STROKE TEST (V68) WAVEFORM GENERATION 042768,000078: # PCOPY, YCOPY FOR COPY-CYCLES (USED ALSO BY TVC RESTART PACKAGE) 042769,000079: # DAPINIT FOR INITIAL CDUS FOR RATE MEASUREMENTS 042770,000080: # ERRORLIM, ACTLIM FOR INPUT (ATTITUDE-ERROR INTEGRATION) AND 042771,000081: # OUTPUT (ACTUATOR COMMAND) LIMITING, COMMON TO PITCH AND 042772,000082: # YAW DAPS 042773,000083: # FWDFLTR (INCLUDING OPTVARK) AND PRECOMP, TO COMPUTE FILTER 042774,000084: # OUTPUTS AND STORAGE VALUES 042775,000085: # RESUME 042776,000086: 042777,000087: # Page 962 042778,000088: # OTHER INTERFACES 042779,000089: 042780,000090: # S40.8 CROSS-PRODUCT STEERING FOR BODY AXIS RATE COMMANDS OMEGAY,ZC 042781,000091: # S40.15 FOR THE INITIAL DAP GAINS VARK AND 1/CONACC 042782,000092: # TVCEXECUTIVE FOR DAP GAIN UPDATES AND TMC LOOP OPERATIONS 042783,000093: # TVCRESTART PACKAGE FOR TVC RESTART PROTECTION. 042784,000094: 042785,000095: # ERASABLE INITIALIZATION REQUIRED.... 042786,000096: 042787,000097: # PAD-LOAD ERASABLES (SEE ERASABLE ASSIGNMENTS) 042788,000098: # CONFIGURATION BITS (14, 13) OF DAPDATR1 AS IN R03 042789,000099: # ENGINE-ON BIT (11.13) FOR RESTARTS 042790,000100: # TVCPHASE FOR RESTARTS (SEE DOTVCON, AND TVCINIT4) 042791,000101: # T5 BITS (15,14 OF FLAGWRD6) FOR RESTARTS 042792,000102: # MISCELLANEOUS VARIABLES SET UP OR COMPUTED BY TVCDAPON....TVCINIT4, 042793,000103: # INCLUDING THE ZEROING OF TEMPORARIES BY MRCLEAN 042794,000104: # CDUX,Y,Z AND SINCDUX.... COSCDUX AS PREPARED BY QUICTRIG1 (WITH 042795,000105: # UPDATES EVERY 1/2 SECOND) 042796,000106: # ALSO G+N PRIMARY, TVC ENABLE, AND OPTICS ERROR COUNTER ENABLE 042797,000107: # UNLESS BENCH-TESTING. 042798,000108: 042799,000109: # OUTPUT.... 042800,000110: 042801,000111: # TVCPITCH AND TVCYAW WITH COUNTER RELEASE (11.14 AND 11.13 INCREMENTAL 042802,000112: # COMMANDS TO OPTICS ERROR COUNTERS), FILTER NODES, BODY- 042803,000113: # AXIS ATTITUDE ERROR INTEGRATOR, TOTAL ACTUATOR COMMANDS, 042804,000114: # OFFSET-TRACKER-FILTER OUTPUTS, ETC. 042805,000115: 042806,000116: # DEBRIS.... 042807,000117: 042808,000118: # MUCH, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY 042809,000119: 042810,000120: 17,2552 BANK 17 042811,000121: 20,2000 SETLOC DAPS2 042812,000122: 20,2000 BANK 042813,000123: 042814,000124: 20,2530 E6,1702 EBANK= BZERO 042815,000125: 042816,000126: 20,2530 COUNT* $$/DAPS 042817,000127: 042818,000128: # Page 963 042819,000129: # PITCH TVCDAP STARTS HERE....(INCOPORATES CSM/LEM DAP FILTER, MODOR DESIGN) 042820,000130: 042821,000131: 20,2530 22016 PITCHDAP LXCH BANKRUPT # T5 ENTRY, NORMAL OR VIA DAPINIT 042822,000132: 20,2531 00006 EXTEND 042823,000133: 20,2532 22012 QXCH QRUPT 042824,000134: 042825,000135: 20,2533 33475 CAF YAWT5 # SET UP T5 CALL FOR YAW AUTOPILOT (LOW- 042826,000136: 20,2534 55312 TS T5LOC # ORDER PART OF 2CADR ALREADY THERE) 042827,000137: 20,2535 31625 CAE T5TVCDT 042828,000138: 20,2536 54030 TS TIME5 042829,000139: 042830,000140: 20,2537 11574 PSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST 042831,000141: 20,2540 03533 TC HACK # TEST-START OR TEST-IN-PROGRESS 042832,000142: 20,2541 12543 TCF +2 # NO-TEST 042833,000143: 20,2542 03533 TC HACK # TEST-IN-PROGRESS 042834,000144: 042835,000145: 20,2543 30033 PCDUDOTS CAE CDUY # COMPUTE CDUYDOT (USED BY PITCH AND YAW) 042836,000146: 20,2544 57645 XCH PCDUYPST 042837,000147: 20,2545 00006 EXTEND 042838,000148: 20,2546 21645 MSU PCDUYPST 042839,000149: 20,2547 02560 TCR RLIMTEST # RATE TEST 042840,000150: 20,2550 55647 TS MCDUYDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC) 042841,000151: 042842,000152: 20,2551 30034 CAE CDUZ # COMPUTE CDUZDOT (USED BY PITCH AND YAW) 042843,000153: 20,2552 57646 XCH PCDUZPST 042844,000154: 20,2553 00006 EXTEND 042845,000155: 20,2554 21646 MSU PCDUZPST 042846,000156: 20,2555 02560 TCR RLIMTEST # RATE TEST 042847,000157: 20,2556 55650 TS MCDUZDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC) 042848,000158: 20,2557 12571 TCF PINTEGRL 042849,000159: 042850,000160: 20,2560 55611 RLIMTEST TS TTMP1 # TEST FOR EXCESSIVE CDU RATES (GREATER 042851,000161: 20,2561 00006 EXTEND # THAN 2.33 DEG IN ONE SAMPLE PERIOD 042852,000162: 20,2562 73476 MP 1/RTLIM 042853,000163: 20,2563 00006 EXTEND 042854,000164: 20,2564 12567 BZF +3 042855,000165: 20,2565 35021 CAF ZERO 042856,000166: 20,2566 55611 TS TTMP1 042857,000167: 20,2567 31611 CAE TTMP1 042858,000168: 20,2570 00002 TC Q 042859,000169: 042860,000170: 20,2571 00006 PINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS PITCH-RATE 042861,000171: 20,2572 31576 DCA PERRB # ERROR, SC.AT B-1 REVS 042862,000172: 20,2573 53703 DXCH ERRBTMP 042863,000173: 042864,000174: 20,2574 00006 EXTEND 042865,000175: 20,2575 31530 DCA OMEGAYC 042866,000176: 20,2576 21703 DAS ERRBTMP 042867,000177: 042868,000178: # Page 964 042869,000179: 20,2577 40746 CS COSCDUZ # PREPARE BODY-AXIS PITCH RATE, OMEGAYB 042870,000180: 20,2600 00006 EXTEND 042871,000181: 20,2601 70750 MP COSCDUX 042872,000182: 20,2602 20001 DDOUBL 042873,000183: 20,2603 00006 EXTEND 042874,000184: 20,2604 71647 MP MCDUYDOT 042875,000185: 20,2605 20001 DDOUBL 042876,000186: 20,2606 53536 DXCH OMEGAYB 042877,000187: 042878,000188: 20,2607 41650 CS MCDUZDOT 042879,000189: 20,2610 00006 EXTEND 042880,000190: 20,2611 70742 MP SINCDUX 042881,000191: 20,2612 20001 DDOUBL 042882,000192: 20,2613 21536 DAS OMEGAYB # (COMPLETED OMEGAYB, SC.AT 1/2TVCDT REVS) 042883,000193: 042884,000194: 20,2614 00006 EXTEND # PICK UP -OMEGAYB (SIGN CHNG, INTEGRATE) 042885,000195: 20,2615 41536 DCS OMEGAYB 042886,000196: 20,2616 21703 DAS ERRBTMP 042887,000197: 042888,000198: 20,2617 03124 PERORLIM TCR ERRORLIM # PITCH BODY-AXIS-ERROR INPUT LIMITER 042889,000199: 042890,000200: 20,2620 00006 PFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS 042891,000201: 20,2621 31542 DCA PTMP1 # FOR THE PITCH CHANNEL 042892,000202: 20,2622 53707 DXCH TMP1 042893,000203: 20,2623 00006 EXTEND 042894,000204: 20,2624 31546 DCA PTMP3 042895,000205: 20,2625 53713 DXCH TMP3 042896,000206: 20,2626 00006 EXTEND 042897,000207: 20,2627 31552 DCA PTMP5 042898,000208: 20,2630 53717 DXCH TMP5 042899,000209: 042900,000210: 20,2631 03156 TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT 042901,000211: # (INCLUDES VARIABLE GAIN PACKAGE) 042902,000212: 042903,000213: 20,2632 00006 POFFSET EXTEND 042904,000214: 20,2633 31606 DCA PDELOFF 042905,000215: 20,2634 21705 DAS CMDTMP # NO SCALED AT B+0 ASCREV 042906,000216: 042907,000217: 20,2635 03137 PACLIM TCR ACTLIM # ROUND OFF & LIMIT PITCH ACTUATOR COMMAND 042908,000218: 042909,000219: 20,2636 41623 POUT CS PCMD # INCREMENTAL PITCH COMMAND 042910,000220: 20,2637 61704 AD CMDTMP 042911,000221: 20,2640 26054 ADS TVCPITCH # UPDATE THE ERROR COUNTER (NO RESTART- 042912,000222: # PROTECT. SINCE ERROR CNTR ZEROED) 042913,000223: 042914,000224: 20,2641 35005 CAF BIT11 # BIT FOR TVCPITCH COUNT RELEASE 042915,000225: 20,2642 00006 EXTEND 042916,000226: 20,2643 05014 WOR CHAN14 042917,000227: 042918,000228: 20,2644 00006 PPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR PITCH 042919,000229: # Page 965 042920,000230: 20,2645 31544 DCA PTMP2 042921,000231: 20,2646 53711 DXCH TMP2 042922,000232: 20,2647 00006 EXTEND 042923,000233: 20,2650 31550 DCA PTMP4 042924,000234: 20,2651 53715 DXCH TMP4 042925,000235: 20,2652 00006 EXTEND 042926,000236: 20,2653 31554 DCA PTMP6 042927,000237: 20,2654 53721 DXCH TMP6 042928,000238: 042929,000239: 20,2655 03247 TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION 042930,000240: 042931,000241: 20,2656 31602 DELBARP CAE DELPBAR +1 042932,000242: 20,2657 00006 EXTEND 042933,000243: 20,2660 73500 MP E(-AT) 042934,000244: 20,2661 55701 TS DELBRTMP +1 042935,000245: 20,2662 31601 CAE DELPBAR 042936,000246: 20,2663 00006 EXTEND 042937,000247: 20,2664 73500 MP E(-AT) 042938,000248: 20,2665 21701 DAS DELBRTMP 042939,000249: 20,2666 31704 CAE CMDTMP 042940,000250: 20,2667 00006 EXTEND 042941,000251: 20,2670 73477 MP 1-E(-AT) 042942,000252: 20,2671 21701 DAS DELBRTMP 042943,000253: 042944,000254: 20,2672 02674 PCOPYCYC TCR PCOPY # PITCH COPYCYCLE 042945,000255: 042946,000256: 20,2673 15333 PDAPEND TCF RESUME # PITCH DAP COMPLETED 042947,000257: # Page 966 042948,000258: # PITCH TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA PITCH TVCDAP OR TVC RESTART PACKAGE) 042949,000259: 042950,000260: 20,2674 25644 PCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (1) 042951,000261: # NOTE POSSIBLE RE-ENTRY FROM RESTART 042952,000262: # PACKAGE, SHOULD A RESTART OCCUR 042953,000263: # DURING PITCH COPYCYCLE. 042954,000264: 042955,000265: 20,2675 00006 EXTEND 042956,000266: 20,2676 31707 DCA TMP1 042957,000267: 20,2677 53542 DXCH PTMP1 042958,000268: 20,2700 00006 EXTEND 042959,000269: 20,2701 31711 DCA TMP2 042960,000270: 20,2702 53544 DXCH PTMP2 042961,000271: 20,2703 00006 EXTEND 042962,000272: 20,2704 31713 DCA TMP3 042963,000273: 20,2705 53546 DXCH PTMP3 042964,000274: 20,2706 00006 EXTEND 042965,000275: 20,2707 31715 DCA TMP4 042966,000276: 20,2710 53550 DXCH PTMP4 042967,000277: 20,2711 00006 EXTEND 042968,000278: 20,2712 31717 DCA TMP5 042969,000279: 20,2713 53552 DXCH PTMP5 042970,000280: 20,2714 00006 EXTEND 042971,000281: 20,2715 31721 DCA TMP6 042972,000282: 20,2716 53554 DXCH PTMP6 042973,000283: 042974,000284: 20,2717 00006 PMISC EXTEND # MISC....PITCH-RATE-ERROR INTEGRATOR 042975,000285: 20,2720 31703 DCA ERRBTMP 042976,000286: 20,2721 55477 TS AK1 # FOR PITCH NEEDLES, SC.AT B-1 REVS 042977,000287: 20,2722 53576 DXCH PERRB 042978,000288: 042979,000289: 20,2723 31704 CAE CMDTMP # PITCH ACTUATOR COMMAND 042980,000290: 20,2724 55623 TS PCMD 042981,000291: 042982,000292: 20,2725 00006 EXTEND # PITCH OFFSET-TRACKER-FILTER 042983,000293: 20,2726 31701 DCA DELBRTMP 042984,000294: 20,2727 53602 DXCH DELPBAR 042985,000295: 042986,000296: 20,2730 25644 INCR TVCPHASE # PITCH COPYCYCLE COMPLETED (2) 042987,000297: 042988,000298: 20,2731 00002 TC Q 042989,000299: 042990,000300: # Page 967 042991,000301: # YAW TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN) 042992,000302: 042993,000303: 20,2732 22016 YAWDAP LXCH BANKRUPT # T5 ENTRY, NORMAL 042994,000304: 20,2733 00006 EXTEND 042995,000305: 20,2734 22012 QXCH QRUPT 042996,000306: 042997,000307: 20,2735 33473 CAF PITCHT5 # SET UP T5 CALL FOR PITCH AUTOPILOT (LOW- 042998,000308: 20,2736 55312 TS T5LOC # ORDER PART OF 2CADR ALREADY THERE) 042999,000309: 20,2737 31625 CAE T5TVCDT 043000,000310: 20,2740 54030 TS TIME5 043001,000311: 043002,000312: 20,2741 11574 YSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST 043003,000313: 20,2742 03533 TC HACK # TEST-START OR TEST-IN-PROGRESS 043004,000314: 20,2743 12745 TCF +2 # NO-TEST 043005,000315: 20,2744 03533 TC HACK # TEST-IN-PROGRESS 043006,000316: 043007,000317: # USE BODY RATES FROM PITCHDAP (PCDUDOTS) 043008,000318: 043009,000319: 20,2745 00006 YINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS YAW-RATE 043010,000320: 20,2746 31600 DCA YERRB # ERROR, SC.AT B-1 REVS 043011,000321: 20,2747 53703 DXCH ERRBTMP 043012,000322: 043013,000323: 20,2750 00006 EXTEND 043014,000324: 20,2751 31532 DCA OMEGAZC 043015,000325: 20,2752 21703 DAS ERRBTMP 043016,000326: 043017,000327: 20,2753 30746 CAE COSCDUZ # PREPARE BODY-AXIS YAW-RATE, OMEGAZB 043018,000328: 20,2754 00006 EXTEND 043019,000329: 20,2755 70742 MP SINCDUX 043020,000330: 20,2756 20001 DDOUBL 043021,000331: 20,2757 00006 EXTEND 043022,000332: 20,2760 71647 MP MCDUYDOT 043023,000333: 20,2761 20001 DDOUBL 043024,000334: 20,2762 53540 DXCH OMEGAZB 043025,000335: 043026,000336: 20,2763 41650 CS MCDUZDOT 043027,000337: 20,2764 00006 EXTEND 043028,000338: 20,2765 70750 MP COSCDUX 043029,000339: 20,2766 20001 DDOUBL 043030,000340: 20,2767 21540 DAS OMEGAZB # (COMPLETED OMEGAZB, SC.AT 1/2TVCDT REVS) 043031,000341: 043032,000342: 20,2770 00006 EXTEND # PICK UP -OMEGAZB (SIGN CHNG, INTEGRATE) 043033,000343: 20,2771 41540 DCS OMEGAZB 043034,000344: 20,2772 21703 DAS ERRBTMP 043035,000345: 043036,000346: 20,2773 03124 YERORLIM TCR ERRORLIM # YAW BODY-AXIS-ERROR INPUT LIMITER 043037,000347: 043038,000348: 20,2774 00006 YFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS 043039,000349: 20,2775 31556 DCA YTMP1 # FOR THE YAW CHANNEL 043040,000350: # Page 968 043041,000351: 20,2776 53707 DXCH TMP1 043042,000352: 20,2777 00006 EXTEND 043043,000353: 20,3000 31562 DCA YTMP3 043044,000354: 20,3001 53713 DXCH TMP3 043045,000355: 20,3002 00006 EXTEND 043046,000356: 20,3003 31566 DCA YTMP5 043047,000357: 20,3004 53717 DXCH TMP5 043048,000358: 043049,000359: 20,3005 03156 TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT 043050,000360: # (INCLUDES VARIABLE GAIN PACKAGE) 043051,000361: 043052,000362: 20,3006 00006 YOFFSET EXTEND 043053,000363: 20,3007 31610 DCA YDELOFF 043054,000364: 20,3010 21705 DAS CMDTMP # NOW SCALED AT B+0 ASCREV 043055,000365: 043056,000366: 20,3011 03137 YACLIM TCR ACTLIM # YAW ACTUATOR-COMMAND-LIMITER 043057,000367: 043058,000368: 20,3012 41624 YOUT CS YCMD # INCRMENTAL YAW COMMAND 043059,000369: 20,3013 61704 AD CMDTMP 043060,000370: 20,3014 26053 ADS TVCYAW # UPDATE THE ERROR COUNTER (NO RESTART- 043061,000371: # PROTECT, SINCE ERROR CNTR ZEROED) 043062,000372: 043063,000373: 20,3015 35004 CAF BIT12 # BIT FOR TVCYAW COUNT RELEASE 043064,000374: 20,3016 00006 EXTEND 043065,000375: 20,3017 05014 WOR CHAN14 043066,000376: 043067,000377: 20,3020 00006 YPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR YAW 043068,000378: 20,3021 31560 DCA YTMP2 043069,000379: 20,3022 53711 DXCH TMP2 043070,000380: 20,3023 00006 EXTEND 043071,000381: 20,3024 31564 DCA YTMP4 043072,000382: 20,3025 53715 DXCH TMP4 043073,000383: 20,3026 00006 EXTEND 043074,000384: 20,3027 31570 DCA YTMP6 043075,000385: 20,3030 53721 DXCH TMP6 043076,000386: 043077,000387: 20,3031 03247 TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION 043078,000388: 043079,000389: 20,3032 31604 DELBARY CAE DELYBAR +1 # UPDATE YAW OFFSET-TRACKER-FILTER 043080,000390: 20,3033 00006 EXTEND 043081,000391: 20,3034 73500 MP E(-AT) 043082,000392: 20,3035 55701 TS DELBRTMP +1 043083,000393: 20,3036 31603 CAE DELYBAR 043084,000394: 20,3037 00006 EXTEND 043085,000395: 20,3040 73500 MP E(-AT) 043086,000396: 20,3041 21701 DAS DELBRTMP 043087,000397: 20,3042 31704 CAE CMDTMP 043088,000398: 20,3043 00006 EXTEND 043089,000399: 20,3044 73477 MP 1-E(-AT) 043090,000400: 20,3045 21701 DAS DELBRTMP 043091,000401: 043092,000402: # Page 969 043093,000403: 20,3046 03050 YCOPYCYC TCR YCOPY # YAW COPYCYCLE 043094,000404: 043095,000405: 20,3047 15333 YDAPEND TCF RESUME # YAW DAP COMPLETED 043096,000406: 043097,000407: # Page 970 043098,000408: # TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA YAW TVCDAP OR TVC RESTART PACKAGE) 043099,000409: 043100,000410: 20,3050 25644 YCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (3) 043101,000411: # NOTE POSSIBLE RE-ENTRY FROM RESTART 043102,000412: # PACKAGE, SHOULD A RESTART OCCUR 043103,000413: # DURING YAW COPYCYCLE. 043104,000414: 043105,000415: 20,3051 00006 EXTEND 043106,000416: 20,3052 31707 DCA TMP1 043107,000417: 20,3053 53556 DXCH YTMP1 043108,000418: 20,3054 00006 EXTEND 043109,000419: 20,3055 31711 DCA TMP2 043110,000420: 20,3056 53560 DXCH YTMP2 043111,000421: 20,3057 00006 EXTEND 043112,000422: 20,3060 31713 DCA TMP3 043113,000423: 20,3061 53562 DXCH YTMP3 043114,000424: 20,3062 00006 EXTEND 043115,000425: 20,3063 31715 DCA TMP4 043116,000426: 20,3064 53564 DXCH YTMP4 043117,000427: 20,3065 00006 EXTEND 043118,000428: 20,3066 31717 DCA TMP5 043119,000429: 20,3067 53566 DXCH YTMP5 043120,000430: 20,3070 00006 EXTEND 043121,000431: 20,3071 31721 DCA TMP6 043122,000432: 20,3072 53570 DXCH YTMP6 043123,000433: 043124,000434: 20,3073 00006 YMISC EXTEND # MISC....YAW-RATE-ERROR INTEGRATOR 043125,000435: 20,3074 31703 DCA ERRBTMP 043126,000436: 20,3075 55500 TS AK2 # FOR YAW NEEDLES, SC.AT B-1 REVS 043127,000437: 20,3076 53600 DXCH YERRB 043128,000438: 043129,000439: 20,3077 31704 CAE CMDTMP 043130,000440: 20,3100 55624 TS YCMD 043131,000441: 043132,000442: 20,3101 00006 EXTEND 043133,000443: 20,3102 31701 DCA DELBRTMP 043134,000444: 20,3103 53604 DXCH DELYBAR 043135,000445: 043136,000446: 20,3104 35021 CAF ZERO # YAW COPYCYCLE COMPLETED 043137,000447: 20,3105 55644 TS TVCPHASE # RESET TVCPHASE 043138,000448: 043139,000449: 20,3106 00002 TC Q 043140,000450: 043141,000451: # Page 971 043142,000452: # SUBROUTINES COMMON TO BOTH PITCH AND YAW DAPS.... 043143,000453: 043144,000454: # INITIALIZATION PACKAGE FOR CDURATES.... 043145,000455: 043146,000456: 20,3107 22016 DAPINIT LXCH BANKRUPT # T5 RUPT ENTRY (CALLED BY TVCINT4) 043147,000457: 043148,000458: 20,3110 37716 CAF NEGONE # SET UP 043149,000459: 20,3111 61625 AD T5TVCDT # T5 CALL FOR PITCHDAP IN TVCDT SECS 043150,000460: 20,3112 65001 AD NEGMAX # (T5TVCDT = POSMAX - TVCDT/2 +1) 043151,000461: 20,3113 61625 AD T5TVCDT 043152,000462: 20,3114 54030 TS TIME5 043153,000463: 20,3115 33473 CAF PITCHT5 # (BBCON ALREADY THERE) 043154,000464: 20,3116 55312 TS T5LOC 043155,000465: 043156,000466: 20,3117 30033 CAE CDUY # READ AND STORE CDUS FOR DIFFERENTIATOR 043157,000467: 20,3120 55645 TS PCDUYPST # PAST-VALUES 043158,000468: 20,3121 30034 CAE CDUZ 043159,000469: 20,3122 55646 TS PCDUZPST 043160,000470: 043161,000471: 20,3123 15335 TCF NOQRSM 043162,000472: 043163,000473: # BODY-AXIS-ERROR INPUT LIMITER PACKAGE.... 043164,000474: 043165,000475: 20,3124 31702 ERRORLIM CAE ERRBTMP # CHECK FOR INPUT-ERROR LIMIT 043166,000476: 20,3125 00006 EXTEND # CHECKS UPPER WORD ONLY 043167,000477: 20,3126 75015 MP 1/ERRLIM 043168,000478: 20,3127 00006 EXTEND 043169,000479: 20,3130 13136 BZF +6 043170,000480: 20,3131 11702 CCS ERRBTMP 043171,000481: 20,3132 35003 CAF ERRLIM 043172,000482: 20,3133 13135 TCF +2 043173,000483: 20,3134 45003 CS ERRLIM 043174,000484: 20,3135 55702 TS ERRBTMP # LIMIT WRITES OVER UPPER WORD ONLY 043175,000485: 043176,000486: 20,3136 00002 TC Q 043177,000487: 043178,000488: # ACTUATOR-COMMAND LIMITER PACKAGE.... 043179,000489: 043180,000490: 20,3137 31705 ACTLIM CAE CMDTMP +1 # ROUND UP FOR OUTPUT 043181,000491: 20,3140 60000 DOUBLE 043182,000492: 20,3141 54001 TS L 043183,000493: 20,3142 35021 CAF ZERO 043184,000494: 20,3143 61704 AD CMDTMP 043185,000495: 043186,000496: 20,3144 00006 EXTEND # CHECK FOR ACTUATOR COMMAND LIMIT 043187,000497: 20,3145 73472 MP 1/ACTSAT 043188,000498: 20,3146 00006 EXTEND 043189,000499: # Page 972 043190,000500: 20,3147 13155 BZF +6 043191,000501: 20,3150 11704 CCS CMDTMP # APPLY LIMITS 043192,000502: 20,3151 33471 CAF ACTSAT 043193,000503: 20,3152 13154 TCF +2 043194,000504: 20,3153 43471 CS ACTSAT 043195,000505: 20,3154 55704 TS CMDTMP # LIMITS WRITE OVER CMDTMP 043196,000506: 043197,000507: 20,3155 00002 TC Q 043198,000508: 043199,000509: # FILTER COMPUTATIONS FOR PRESENT OUTPUT................ 043200,000510: 043201,000511: 20,3156 35021 FWDFLTR CAF ZERO 043202,000512: 20,3157 55615 TS DAP1 043203,000513: 20,3160 55617 TS DAP2 043204,000514: 20,3161 55621 TS DAP3 043205,000515: 20,3162 55704 TS CMDTMP 043206,000516: 043207,000517: 20,3163 55700 TS DELBRTMP 043208,000518: 043209,000519: 20,3164 31703 1DAPCAS CAE ERRBTMP +1 # FIRST DAP CASCADE 043210,000520: 20,3165 00006 EXTEND 043211,000521: 20,3166 71723 MP N10 # N10 043212,000522: 20,3167 55616 TS DAP1 +1 043213,000523: 20,3170 31702 CA ERRBTMP 043214,000524: 20,3171 00006 EXTEND 043215,000525: 20,3172 71723 MP N10 # N10 043216,000526: 20,3173 21616 DAS DAP1 043217,000527: 20,3174 53707 DXCH TMP1 043218,000528: 20,3175 21616 DAS DAP1 043219,000529: 043220,000530: 20,3176 31616 2DAPCAS CAE DAP1 +1 # SECOND DAP CASCADE 043221,000531: 20,3177 00006 EXTEND 043222,000532: 20,3200 71730 MP N10 +5 # N20 043223,000533: 20,3201 55620 TS DAP2 +1 043224,000534: 20,3202 31615 CA DAP1 043225,000535: 20,3203 00006 EXTEND 043226,000536: 20,3204 71730 MP N10 +5 # N20 043227,000537: 20,3205 21620 DAS DAP2 043228,000538: 20,3206 53713 DXCH TMP3 043229,000539: 20,3207 21620 DAS DAP2 043230,000540: 043231,000541: 20,3210 31466 CAE DAPDATR1 # TEST FOR LEM ON OR OFF 043232,000542: 20,3211 75002 MASK BIT14 043233,000543: 20,3212 10000 CCS A 043234,000544: 20,3213 13220 TCF 3DAPCAS # LEM ON 043235,000545: 20,3214 00006 EXTEND # LEM OFF 043236,000546: 20,3215 31620 DCA DAP2 043237,000547: 20,3216 53622 DXCH DAP3 043238,000548: 20,3217 13232 TCF OPTVARK 043239,000549: 043240,000550: # Page 973 043241,000551: 20,3220 31620 3DAPCAS CAE DAP2 +1 # THIRD DAP CASCADE 043242,000552: 20,3221 00006 EXTEND 043243,000553: 20,3222 71735 MP N10 +10D # N30 043244,000554: 20,3223 55622 TS DAP3 +1 043245,000555: 20,3224 31617 CA DAP2 043246,000556: 20,3225 00006 EXTEND 043247,000557: 20,3226 71735 MP N10 +10D # N30 043248,000558: 20,3227 21622 DAS DAP3 043249,000559: 20,3230 53717 DXCH TMP5 043250,000560: 20,3231 21622 DAS DAP3 043251,000561: 043252,000562: 20,3232 41622 OPTVARK CS DAP3 +1 # VARIABLE GAIN PACKAGE 043253,000563: 20,3233 00006 EXTEND # (ALSO, SIGN CHANGE IN FORWARD LOOP) 043254,000564: 20,3234 71641 MP VARK # SCALED AT 1/(8 ASCREV) OF ACTUAL VALUE 043255,000565: 20,3235 55705 TS CMDTMP +1 043256,000566: 20,3236 41621 CS DAP3 043257,000567: 20,3237 00006 EXTEND 043258,000568: 20,3240 71641 MP VARK 043259,000569: 20,3241 21705 DAS CMDTMP 043260,000570: 043261,000571: 20,3242 53705 DXCH CMDTMP # FIX UP SCALING -- SCALED B+3 ASCREVS 043262,000572: 20,3243 20001 DDOUBL 043263,000573: 20,3244 20001 DDOUBL 043264,000574: 20,3245 53705 DXCH CMDTMP # -- SCALED B+1 ASCREVS 043265,000575: # NOTE -- THERE IS AN INHERENT GAIN OF 043266,000576: # (B+1 ASCREVS) ON THE OUTPUT DACS. 043267,000577: 043268,000578: 20,3246 00002 TC Q 043269,000579: 043270,000580: # FILTER PRECOMPUTATIONS FOR NEXT PASS................ 043271,000581: 043272,000582: 20,3247 35021 PRECOMP CAF ZERO # **** FIRST CASCADE FILTER ********** 043273,000583: 20,3250 55611 TS TTMP1 043274,000584: 20,3251 55613 TS TTMP2 043275,000585: 043276,000586: 20,3252 31703 CA ERRBTMP +1 # MULTIPLY INPUT BY 043277,000587: 20,3253 00006 EXTEND 043278,000588: 20,3254 71724 MP N10 +1 # N11/2 043279,000589: 20,3255 55612 TS TTMP1 +1 043280,000590: 20,3256 31702 CA ERRBTMP 043281,000591: 20,3257 00006 EXTEND 043282,000592: 20,3260 71724 MP N10 +1 # N11/2 043283,000593: 20,3261 21612 DAS TTMP1 043284,000594: 043285,000595: 20,3262 41616 CS DAP1 +1 # MULTIPLY OUTPUT BY 043286,000596: 20,3263 00006 EXTEND 043287,000597: 20,3264 71726 MP N10 +3 # D11/2 043288,000598: 20,3265 55614 TS TTMP2 +1 043289,000599: 20,3266 41615 CS DAP1 043290,000600: 043291,000601: # Page 974 043292,000602: 20,3267 00006 EXTEND 043293,000603: 20,3270 71726 MP N10 +3 # D11/2 043294,000604: 20,3271 21614 DAS TTMP2 043295,000605: 043296,000606: 20,3272 53614 DXCH TTMP2 043297,000607: 20,3273 21612 DAS TTMP1 043298,000608: 20,3274 53612 DXCH TTMP1 043299,000609: 20,3275 20001 DDOUBL 043300,000610: 20,3276 21711 DAS TMP2 043301,000611: 043302,000612: 20,3277 53711 DXCH TMP2 043303,000613: 20,3300 53707 DXCH TMP1 043304,000614: 043305,000615: 20,3301 35021 CAF ZERO 043306,000616: 20,3302 55611 TS TTMP1 043307,000617: 20,3303 55710 TS TMP2 043308,000618: 043309,000619: 20,3304 31703 CA ERRBTMP +1 # MULTIPLY INPUT BY 043310,000620: 20,3305 00006 EXTEND # SECOND-ORDER NUMERATOR COEFF. 043311,000621: 20,3306 71725 MP N10 +2 # N12 043312,000622: 20,3307 55612 TS TTMP1 +1 043313,000623: 20,3310 31702 CA ERRBTMP 043314,000624: 20,3311 00006 EXTEND 043315,000625: 20,3312 71725 MP N10 +2 # N12 043316,000626: 20,3313 21612 DAS TTMP1 043317,000627: 043318,000628: 20,3314 41616 CS DAP1 +1 # MULTIPLY OUTPUT BY 043319,000629: 20,3315 00006 EXTEND 043320,000630: 20,3316 71727 MP N10 +4 # D12 043321,000631: 20,3317 55711 TS TMP2 +1 043322,000632: 20,3320 41615 CS DAP1 043323,000633: 20,3321 00006 EXTEND 043324,000634: 20,3322 71727 MP N10 +4 # D12 043325,000635: 20,3323 21711 DAS TMP2 043326,000636: 043327,000637: 20,3324 53612 DXCH TTMP1 043328,000638: 20,3325 21711 DAS TMP2 043329,000639: 043330,000640: 20,3326 35021 2CASFLTR CAF ZERO # **** SECOND CASCADE FILTER ********** 043331,000641: 20,3327 55611 TS TTMP1 043332,000642: 20,3330 55613 TS TTMP2 043333,000643: 043334,000644: 20,3331 31616 CA DAP1 +1 # MULTIPLY INPUT BY 043335,000645: 20,3332 00006 EXTEND 043336,000646: 20,3333 71731 MP N10 +6 # N21/2 043337,000647: 20,3334 55612 TS TTMP1 +1 043338,000648: 20,3335 31615 CA DAP1 043339,000649: 20,3336 00006 EXTEND 043340,000650: 20,3337 71731 MP N10 +6 # N21/2 043341,000651: # Page 975 043342,000652: 20,3340 21612 DAS TTMP1 043343,000653: 043344,000654: 20,3341 41620 CS DAP2 +1 # MULTIPLY OUTPUT BY 043345,000655: 20,3342 00006 EXTEND 043346,000656: 20,3343 71733 MP N10 +8D # D21/2 043347,000657: 20,3344 55614 TS TTMP2 +1 043348,000658: 20,3345 41617 CS DAP2 043349,000659: 20,3346 00006 EXTEND 043350,000660: 20,3347 71733 MP N10 +8D # D21/2 043351,000661: 20,3350 21614 DAS TTMP2 043352,000662: 043353,000663: 20,3351 53614 DXCH TTMP2 043354,000664: 20,3352 21612 DAS TTMP1 043355,000665: 20,3353 53612 DXCH TTMP1 043356,000666: 20,3354 20001 DDOUBL 043357,000667: 20,3355 21715 DAS TMP4 043358,000668: 043359,000669: 20,3356 53715 DXCH TMP4 043360,000670: 20,3357 53713 DXCH TMP3 043361,000671: 043362,000672: 20,3360 35021 CAF ZERO 043363,000673: 20,3361 55611 TS TTMP1 043364,000674: 20,3362 55714 TS TMP4 043365,000675: 043366,000676: 20,3363 31616 CA DAP1 +1 # MULTIPLY INPUT BY 043367,000677: 20,3364 00006 EXTEND # SECOND-ORDER NUMERATOR COEFF. 043368,000678: 20,3365 71732 MP N10 +7 # N22 043369,000679: 20,3366 55612 TS TTMP1 +1 043370,000680: 20,3367 31615 CA DAP1 043371,000681: 20,3370 00006 EXTEND 043372,000682: 20,3371 71732 MP N10 +7 # N22 043373,000683: 20,3372 21612 DAS TTMP1 043374,000684: 043375,000685: 20,3373 41620 CS DAP2 +1 # MULTIPLY OUTPUT BY 043376,000686: 20,3374 00006 EXTEND 043377,000687: 20,3375 71734 MP N10 +9D # D22 043378,000688: 20,3376 55715 TS TMP4 +1 043379,000689: 20,3377 41617 CS DAP2 043380,000690: 20,3400 00006 EXTEND 043381,000691: 20,3401 71734 MP N10 +9D # D22 043382,000692: 20,3402 21715 DAS TMP4 043383,000693: 043384,000694: 20,3403 53612 DXCH TTMP1 043385,000695: 20,3404 21715 DAS TMP4 043386,000696: 043387,000697: 20,3405 31466 CAE DAPDATR1 # TEST FOR LEM ON OR OFF 043388,000698: 20,3406 75003 MASK BIT13 043389,000699: 20,3407 10000 CCS A 043390,000700: 20,3410 00002 TC Q # EXIT IF LEM OFF 043391,000701: 043392,000702: # Page 976 043393,000703: 20,3411 35021 3CASFLTR CAF ZERO # **** THIRD CASCADE FILTER ********** 043394,000704: 20,3412 55611 TS TTMP1 043395,000705: 20,3413 55613 TS TTMP2 043396,000706: 043397,000707: 20,3414 31620 CA DAP2 +1 # MULTIPLY INPUT BY (1/2) 043398,000708: 20,3415 00006 EXTEND 043399,000709: 20,3416 71736 MP N10 +11D # N31/2 043400,000710: 20,3417 55612 TS TTMP1 +1 043401,000711: 20,3420 31617 CA DAP2 043402,000712: 20,3421 00006 EXTEND 043403,000713: 20,3422 71736 MP N10 +11D # N31/2 043404,000714: 20,3423 21612 DAS TTMP1 043405,000715: 043406,000716: 20,3424 41622 CS DAP3 +1 043407,000717: 20,3425 00006 EXTEND 043408,000718: 20,3426 71740 MP N10 +13D # D31/2 043409,000719: 20,3427 55614 TS TTMP2 +1 043410,000720: 20,3430 41621 CS DAP3 043411,000721: 20,3431 00006 EXTEND 043412,000722: 20,3432 71740 MP N10 +13D # D31/2 043413,000723: 20,3433 21614 DAS TTMP2 043414,000724: 043415,000725: 20,3434 53614 DXCH TTMP2 043416,000726: 20,3435 21612 DAS TTMP1 043417,000727: 20,3436 53612 DXCH TTMP1 043418,000728: 20,3437 20001 DDOUBL 043419,000729: 20,3440 21721 DAS TMP6 043420,000730: 043421,000731: 20,3441 53721 DXCH TMP6 043422,000732: 20,3442 53717 DXCH TMP5 043423,000733: 043424,000734: 20,3443 35021 CAF ZERO 043425,000735: 20,3444 55611 TS TTMP1 043426,000736: 20,3445 55720 TS TMP6 043427,000737: 043428,000738: 20,3446 31620 CA DAP2 +1 # MULTIPLY INPUT BY 043429,000739: 20,3447 00006 EXTEND 043430,000740: 20,3450 71737 MP N10 +12D # N32 043431,000741: 20,3451 55612 TS TTMP1 +1 043432,000742: 20,3452 31617 CA DAP2 043433,000743: 20,3453 00006 EXTEND 043434,000744: 20,3454 71737 MP N10 +12D # N32 043435,000745: 20,3455 21612 DAS TTMP1 043436,000746: 043437,000747: 20,3456 41622 CS DAP3 +1 043438,000748: 20,3457 00006 EXTEND 043439,000749: 20,3460 71741 MP N10 +14D # D32 043440,000750: 20,3461 55721 TS TMP6 +1 043441,000751: 20,3462 41621 CS DAP3 043442,000752: 20,3463 00006 EXTEND 043443,000753: # Page 977 043444,000754: 20,3464 71741 MP N10 +14D # D32 043445,000755: 20,3465 21721 DAS TMP6 043446,000756: 043447,000757: 20,3466 53612 DXCH TTMP1 043448,000758: 20,3467 21721 DAS TMP6 043449,000759: 043450,000760: 20,3470 00002 TC Q 043451,000761: 043452,000762: # Page 978 043453,000763: # CONSTANTS FOR AUTOPILOTS 043454,000764: 043455,000765: # NOTE....1 ASCREV (ACTUATOR CMD SCALING) = 85.41 ARCSEC/BIT OR 1.07975111 REVS (85.41x16384/3600/360) 043456,000766: # 1 SPASCREV (SPECIAL ACTUATOR CMD SCALING) = 1.04620942 REVS 043457,000767: 043458,000768: 20,3471 00375 ACTSAT DEC 253 B-14 # ACTUATOR LIMIT (6 DEG), SC.AT 1ASCREV 043459,000769: 20,3472 00101 1/ACTSAT DEC .0039525692 # RECIPROCAL (1/253) 043460,000770: 043461,000771: 20,3473 5003 ERRLIM EQUALS BIT13 # FILTER INPUT LIMIT....B-3 REVS (45DEG), 043462,000772: 20,3473 5015 1/ERRLIM EQUALS BIT3 # SC.AT B-1 REV, AND ITS RECIPROCAL 043463,000773: 043464,000774: 20,3473 02530 PITCHT5 GENADR PITCHDAP # UPPER WORDS OF T5 2CADRS, LOWER WORDS 043465,000775: 20,3474 03107 DAPT5 GENADR DAPINIT # (BBCON) ALREADY THERE. ORDER IS 043466,000776: 20,3475 02732 YAWT5 GENADR YAWDAP # REQUIRED. 043467,000777: 043468,000778: 20,3476 00115 1/RTLIM DEC 0.004715 # .004715(CDUDIF) = 0 IF CDUIF < 2.33 DEG 043469,000779: 20,3477 00243 1-E(-AT) OCT 00243 # AT = .01SEC....EITHER(1/A=4SEC, T=40MS), 043470,000780: 20,3500 37535 E(-AT) OCT 37535 # OR(1/A=8SEC, T=80MS) 043471,000781: End of include-file TVCDAPS.agc. Parent file is MAIN.agc