Source Code
These source-code files are part of a reconstructed copy of Skylark 048, the
Block II Command Module (CM) Apollo Guidance Computer (AGC) software for the
Skylab-2, Skylab-3, Skylab-4, and Apollo-Soyuz Test Project missions.
They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on Skylab-2, part numbers 2010802-541, 2010802-551, 2010802-561, 2010802-571, 2010802-581, and 2010802-591. Access to these modules was provided by the New Mexico Museum of Space History, who we are much indebted to. The source code for the Apollo 15, 16, and 17 software, Artemis 072, was used as a starting point. Heavy use was made of TRW 4900.5-244, Programmed Guidance Equations for Skylark Command Module Earth Orbital Program, dated 14 February 1972. This document contains pseudocode of essentially all of Skylark, using original program labels which have been copied for this source reconstruction. Since only binary dumps (rather than listings) of Skylark are available as source material, all comments and labels are approximate. They have been taken from the Programmed Guidance Equations or other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
038577,000002: ## Copyright: Public domain.
038578,000003: ## Filename: TVCDAPS.agc
038579,000004: ## Purpose: A section of Skylark revision 048.
038580,000005: ## It is part of the source code for the Apollo Guidance Computer (AGC)
038581,000006: ## for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
038582,000007: ## this software are available; instead, this file was created via
038583,000008: ## disassembly of dumps of the core rope modules actually flown on
038584,000009: ## Skylab-2. Access to these modules was provided by the New Mexico
038585,000010: ## Museum of Space History.
038586,000011: ## Assembler: yaYUL
038587,000012: ## Contact: Ron Burkey <info@sandroid.org>.
038588,000013: ## Website: www.ibiblio.org/apollo/index.html
038589,000014: ## Mod history: 2023-09-04 MAS Created from Artemis 072.
038590,000015:
038591,000016: # PROGRAM NAME....TVCDAP, CONSISTING OF PITCHDAP, YAWDAP, ETC.
038592,000017: # LOG SECTION...TVCDAPS SUBROUTINE...DAPCSM
038593,000018: # MODIFIED BY SCHLUNDT 21 OCTOBER 1968
038594,000019: # FUNCTIONAL DESCRIPTION....
038595,000020:
038596,000021: # SELF-PERPETUATING T5 TASKS WHICH GENERATE THE COMMAND SIGNALS
038597,000022: # FOR THE PITCH AND YAW SPS GIMBAL ACTUATORS DURING TVC (SPS) BURNS,
038598,000023: # IN RESPONSE TO BODY-AXIS RATE COMMANDS FROM CROSS-PRODUCT STEERING
038599,000024: # (S40.8). IF NO STEERING (IMPULSIVE BURNS) MAINTAINS ATTITUDE-HOLD
038600,000025: # ABOUT THE REFERENCE (INITIAL) DIRECTIONS (ZERO RATE COMMANDS).
038601,000026:
038602,000027: # THE PITCH AND YAW LOOPS ARE SEPARATE, BUT STRUCTURED IDENTICALLY.
038603,000028: # EACH ATTITUDE-RATE LOOP INCLUDES GIMBAL ANGLE RATE DERIVATION,
038604,000029: # GIMBAL/BODY AXIS TRANSFORMATION, BODY-AXIS ATTITUDE ERROR
038605,000030: # INTEGRATION WITH ERROR LIMITING, THE GENERALIZED 6TH-ORDER FILTER
038606,000031: # FOR CSM OR CSM/LM OPERATION, A FILTER OUTPUT LIMITER,
038607,000032: # CG-OFFSET TRACKER FILTER, AND THE CG-TRACKER MINOR LOOP.
038608,000033:
038609,000034: # THE DAPS ARE CYCLIC, CALLING EACH OTHER AT 1/2 THE DAP SAMPLE
038610,000035: # TIME, AS DETERMINED BY T5TVCDT. THE ACTUATOR COMMANDS ARE
038611,000036: # REGENERATED AS ANALOG VOLTAGES BY THE OPTICS ERROR COUNTERS, WHICH
038612,000037: # TRANSMIT THE SIGNAL TO THE ACTUATOR SERVOS WHEN THERE IS PROPER CDU
038613,000038: # MODING.
038614,000039:
038615,000040: # CALLING SEQUENCE.... (TYPICALLY)
038616,000041:
038617,000042: # T5 CALL OF TVCDAPON (TVCINITIALIZE) BY DOTVCON (P40)
038618,000043: # T5 CALL OF DAPINIT (TVCDAPS) BY TVCINIT4 (TVCINITIALIZE)
038619,000044: # T5 CALL OF PITCHDAP BY DAPINIT
038620,000045: # T5 CALL OF YAWDAP BY PITCHDAP
038621,000046: # T5 CALL OF PITCHDAP BY YAWDAP
038622,000047: # ETC.
038623,000048: # (AUTOMATIC SEQUENCING FROM TVCDAPON)
038624,000049:
038625,000050: # NORMAL EXIT MODE....RESUME
038626,000051:
038627,000052: # ALARM OR ABORT EXIT MODES....NONE
038628,000053:
038629,000054: # SUBROUTINES CALLED....
038630,000055:
038631,000056: # HACK FOR STROKE TEST (V68) WAVEFORM GENERATION
038632,000057: # PCOPY, YCOPY FOR COPY-CYCLES (USED ALSO BY TVC RESTART PACKAGE)
038633,000058: # DAPINIT FOR INITIAL CDUS FOR RATE MEASUREMENTS
038634,000059: # ERRORLIM, ACTLIM FOR INPUT (ATTITUDE-ERROR INTEGRATION) AND
038635,000060: # OUTPUT (ACTUATOR COMMAND) LIMITING, COMMON TO PITCH AND
038636,000061: # YAW DAPS
038637,000062: # FWDFLTR (INCLUDING OPTVARK) AND PRECOMP, TO COMPUTE FILTER
038638,000063: # OUTPUTS AND STORAGE VALUES
038639,000064: # RESUME
038640,000065:
038641,000066: # OTHER INTERFACES....
038642,000067:
038643,000068: # S40.8 CROSS-PRODUCT STEERING FOR BODY AXIS RATE COMMANDS OMEGAY,ZC
038644,000069: # S40.15 FOR THE INITIAL DAP GAINS VARK AND 1/CONACC
038645,000070: # TVCEXECUTIVE FOR DAP GAIN UPDATES AND TMC LOOP OPERATIONS
038646,000071: # TVCRESTART PACKAGE FOR TVC RESTART PROTECTION.
038647,000072:
038648,000073: # ERASABLE INITIALIZATION REQUIRED....
038649,000074:
038650,000075: # PAD-LOAD ERASABLES ( SEE ERASABLE ASSIGNMENTS )
038651,000076: # CONFIGURATION BITS (14, 13) OF DAPDATR1 AS IN R03
038652,000077: # ENGINE-ON BIT (11.13) FOR RESTARTS
038653,000078: # TVCPHASE FOR RESTARTS ( SEE DOTVCON, AND TVCINIT4 )
038654,000079: # T5 BITS (15,14 OF FLAGWRD6) FOR RESTARTS
038655,000080: # MISCELLANEOUS VARIABLES SET UP OR COMPUTED BY TVCDAPON....TVCINIT4,
038656,000081: # INCLUDING THE ZEROING OF TEMPORARIES BY MRCLEAN
038657,000082: # CDUX,Y,Z AND SINCDUX....COSCDUZ AS PREPARED BY QUICTRIG (WITH
038658,000083: # UPDATES EVERY 1/2 SECOND)
038659,000084: # ALSO G+N PRIMARY, TVC ENABLE, AND OPTICS ERROR COUNTER ENABLE
038660,000085: # UNLESS BENCH-TESTING.
038661,000086:
038662,000087: # OUTPUT....
038663,000088:
038664,000089: # TVCPITCH AND TVCYAW WITH COUNTER RELEASE (11.14 AND 11.13 INCREMEN-
038665,000090: # TAL COMMANDS TO OPTICS ERROR COUNTERS), FILTER NODES, BODY-
038666,000091: # AXIS ATTITUDE ERROR INTEGRATOR, TOTAL ACTUATOR COMMANDS,
038667,000092: # OFFSET-TRACKER-FILTER OUTPUTS, ETC.
038668,000093: # DEBRIS....
038669,000094:
038670,000095: # MUCH, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
038671,000096:
038672,000097: 20,2000 SETLOC DAPS2
038673,000098: 20,2000 BANK
038674,000099:
038675,000100: 20,2601 E6,1453 EBANK= CNTR
038676,000101:
038677,000102:
038678,000103: 20,2601 COUNT* $$/DAPS
038679,000104:
038680,000105:
038681,000106: # PITCH TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
038682,000107:
038683,000108:
038684,000109: 20,2601 22016 PITCHDAP LXCH BANKRUPT # T5 ENTRY, NORMAL OR VIA DAPINIT
038685,000110: 20,2602 00006 EXTEND
038686,000111: 20,2603 22012 QXCH QRUPT
038687,000112:
038688,000113: 20,2604 33555 CAF YAWT5 # SET UP T5 CALL FOR YAW AUTOPILOT (LOW-
038689,000114: 20,2605 54112 TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
038690,000115: 20,2606 31654 CAE T5TVCDT
038691,000116: 20,2607 54030 TS TIME5
038692,000117:
038693,000118: 20,2610 30033 PCDUDOTS CAE CDUY # COMPUTE CDUYDOT
038694,000119: 20,2611 57665 XCH PCDUYPST
038695,000120: 20,2612 00006 EXTEND
038696,000121: 20,2613 21665 MSU PCDUYPST
038697,000122: 20,2614 02625 TCR RLIMTEST # RATE TEST
038698,000123: 20,2615 55671 TS MCDUYDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
038699,000124:
038700,000125: 20,2616 30034 CAE CDUZ # COMPUTE CDUZDOT
038701,000126: 20,2617 57666 XCH PCDUZPST
038702,000127: 20,2620 00006 EXTEND
038703,000128: 20,2621 21666 MSU PCDUZPST
038704,000129: 20,2622 02625 TCR RLIMTEST # RATE TEST
038705,000130: 20,2623 55672 TS MCDUZDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
038706,000131: 20,2624 12636 TCF PINTEGRL
038707,000132:
038708,000133: 20,2625 55640 RLIMTEST TS TTMP1 # TEST FOR EXCESSIVE CDU RATES (GREATER
038709,000134: 20,2626 00006 EXTEND # THAN 2.33 DEG IN ONE SAMPLE PERIOD)
038710,000135: 20,2627 73556 MP 1/RTLIM # (USED BY PITCH AND YAW PASSES)
038711,000136: 20,2630 00006 EXTEND
038712,000137: 20,2631 12634 BZF +3
038713,000138: 20,2632 35003 CAF ZERO
038714,000139: 20,2633 55640 TS TTMP1
038715,000140: 20,2634 31640 CAE TTMP1
038716,000141: 20,2635 00002 TC Q
038717,000142:
038718,000143: 20,2636 00006 PINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS PITCH-RATE
038719,000144: 20,2637 31625 DCA PERRB # ERROR, SC.AT B-1 REVS
038720,000145: 20,2640 53714 DXCH ERRBTMP
038721,000146:
038722,000147: 20,2641 00006 EXTEND
038723,000148: 20,2642 31557 DCA OMEGAYC
038724,000149: 20,2643 21714 DAS ERRBTMP
038725,000150:
038726,000151: 20,2644 41141 CS COSCDUZ # PREPARE BODY-AXIS PITCH RATE, OMEGAYB
038727,000152: 20,2645 00006 EXTEND
038728,000153: 20,2646 71143 MP COSCDUX
038729,000154: 20,2647 20001 DDOUBL
038730,000155: 20,2650 00006 EXTEND
038731,000156: 20,2651 71671 MP MCDUYDOT
038732,000157: 20,2652 20001 DDOUBL
038733,000158: 20,2653 53565 DXCH OMEGAYB
038734,000159:
038735,000160: 20,2654 41672 CS MCDUZDOT
038736,000161: 20,2655 00006 EXTEND
038737,000162: 20,2656 71135 MP SINCDUX
038738,000163: 20,2657 20001 DDOUBL
038739,000164: 20,2660 21565 DAS OMEGAYB # OMEGAYB, SCALED (B-1)/TVCDT REVS/SEC
038740,000165:
038741,000166: 20,2661 00006 EXTEND # PICK UP -OMEGAYB (SIGN CHNG, INTEGRATE)
038742,000167: 20,2662 41565 DCS OMEGAYB
038743,000168: 20,2663 21714 DAS ERRBTMP
038744,000169:
038745,000170: 20,2664 03203 PERORLIM TCR ERRORLIM # PITCH BODY-AXIS-ERROR INPUT LIMITER
038746,000171:
038747,000172: 20,2665 00006 PFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
038748,000173: 20,2666 31571 DCA PTMP1 # FOR THE PITCH CHANNEL
038749,000174: 20,2667 53720 DXCH TMP1
038750,000175: 20,2670 00006 EXTEND
038751,000176: 20,2671 31575 DCA PTMP3
038752,000177: 20,2672 53724 DXCH TMP3
038753,000178: 20,2673 00006 EXTEND
038754,000179: 20,2674 31601 DCA PTMP5
038755,000180: 20,2675 53730 DXCH TMP5
038756,000181:
038757,000182: 20,2676 03235 TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
038758,000183: # (INCLUDES VARIABLE GAIN PACKAGE)
038759,000184:
038760,000185: 20,2677 00006 POFFSET EXTEND
038761,000186: 20,2700 31635 DCA PDELOFF
038762,000187: 20,2701 21716 DAS CMDTMP # NOW SCALED AT B+0 ASCREV
038763,000188:
038764,000189: 20,2702 03216 PACLIM TCR ACTLIM # ROUND OFF & LIMIT PITCH ACTUATOR COMMAND
038765,000190:
038766,000191: 20,2703 41652 POUT CS PCMD # INCREMENTAL PITCH COMMAND
038767,000192: 20,2704 61715 AD CMDTMP
038768,000193: 20,2705 26054 ADS TVCPITCH # UPDATE THE ERROR COUNTER (NO RESTART-
038769,000194: # PROTECT, SINCE ERROR CNTR ZEROED)
038770,000195:
038771,000196: 20,2706 34767 CAF BIT11 # BIT FOR TVCPITCH COUNT RELEASE
038772,000197: 20,2707 00006 EXTEND
038773,000198: 20,2710 05014 WOR CHAN14
038774,000199:
038775,000200: 20,2711 00006 PPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR PITCH
038776,000201: 20,2712 31573 DCA PTMP2
038777,000202: 20,2713 53722 DXCH TMP2
038778,000203: 20,2714 00006 EXTEND
038779,000204: 20,2715 31577 DCA PTMP4
038780,000205: 20,2716 53726 DXCH TMP4
038781,000206: 20,2717 00006 EXTEND
038782,000207: 20,2720 31603 DCA PTMP6
038783,000208: 20,2721 53732 DXCH TMP6
038784,000209:
038785,000210: 20,2722 03327 TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
038786,000211:
038787,000212: 20,2723 31631 DELBARP CAE DELPBAR +1 # UPDATE PITCH OFFSET-TRACKER-FILTER
038788,000213: 20,2724 00006 EXTEND
038789,000214: 20,2725 73560 MP E(-AT)
038790,000215: 20,2726 55712 TS DELBRTMP +1
038791,000216: 20,2727 31630 CAE DELPBAR
038792,000217: 20,2730 00006 EXTEND
038793,000218: 20,2731 73560 MP E(-AT)
038794,000219: 20,2732 21712 DAS DELBRTMP
038795,000220: 20,2733 31715 CAE CMDTMP
038796,000221: 20,2734 00006 EXTEND
038797,000222: 20,2735 73557 MP 1-E(-AT)
038798,000223: 20,2736 21712 DAS DELBRTMP
038799,000224:
038800,000225: 20,2737 02741 PCOPYCYC TCR PCOPY # PITCH COPYCYCLE
038801,000226:
038802,000227: 20,2740 15336 PDAPEND TCF RESUME # PITCH DAP COMPLETED
038803,000228:
038804,000229:
038805,000230: # PITCH TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA PITCH TVCDAP OR TVC RESTART PACKAGE)
038806,000231:
038807,000232: 20,2741 25664 PCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (1)
038808,000233: # NOTE POSSIBLE RE-ENTRY FROM RESTART
038809,000234: # PACKAGE, SHOULD A RESTART OCCUR
038810,000235: # DURING PITCH COPYCYCLE.
038811,000236:
038812,000237: 20,2742 00006 EXTEND
038813,000238: 20,2743 31720 DCA TMP1
038814,000239: 20,2744 53571 DXCH PTMP1
038815,000240: 20,2745 00006 EXTEND
038816,000241: 20,2746 31722 DCA TMP2
038817,000242: 20,2747 53573 DXCH PTMP2
038818,000243: 20,2750 00006 EXTEND
038819,000244: 20,2751 31724 DCA TMP3
038820,000245: 20,2752 53575 DXCH PTMP3
038821,000246: 20,2753 00006 EXTEND
038822,000247: 20,2754 31726 DCA TMP4
038823,000248: 20,2755 53577 DXCH PTMP4
038824,000249: 20,2756 00006 EXTEND
038825,000250: 20,2757 31730 DCA TMP5
038826,000251: 20,2760 53601 DXCH PTMP5
038827,000252: 20,2761 00006 EXTEND
038828,000253: 20,2762 31732 DCA TMP6
038829,000254: 20,2763 53603 DXCH PTMP6
038830,000255:
038831,000256: 20,2764 00006 PMISC EXTEND # MISC....PITCH-RATE-ERROR INTEGRATOR
038832,000257: 20,2765 31714 DCA ERRBTMP
038833,000258: 20,2766 55526 TS AK1 # FOR PITCH NEEDLES, SC.AT B-1 REVS
038834,000259: 20,2767 53625 DXCH PERRB
038835,000260:
038836,000261: 20,2770 31715 CAE CMDTMP # PITCH ACTUATOR COMMAND
038837,000262: 20,2771 55652 TS PCMD
038838,000263:
038839,000264: 20,2772 00006 EXTEND # PITCH OFFSET-TRACKER-FILTER
038840,000265: 20,2773 31712 DCA DELBRTMP
038841,000266: 20,2774 53631 DXCH DELPBAR
038842,000267:
038843,000268: 20,2775 25664 INCR TVCPHASE # PITCH COPYCYCLE COMPLETED (2)
038844,000269:
038845,000270: 20,2776 00002 TC Q
038846,000271:
038847,000272:
038848,000273: # YAW TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
038849,000274:
038850,000275:
038851,000276: 20,2777 22016 YAWDAP LXCH BANKRUPT # T5 ENTRY, NORMAL
038852,000277: 20,3000 00006 EXTEND
038853,000278: 20,3001 22012 QXCH QRUPT
038854,000279:
038855,000280: 20,3002 33553 CAF PITCHT5 # SET UP T5 CALL FOR PITCH AUTOPILOT (LOW-
038856,000281: 20,3003 54112 TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
038857,000282: 20,3004 31654 CAE T5TVCDT
038858,000283: 20,3005 54030 TS TIME5
038859,000284:
038860,000285: 20,3006 30033 YCDUDOTS CAE CDUY # COMPUTE CDUYDOT
038861,000286: 20,3007 57667 XCH YCDUYPST
038862,000287: 20,3010 00006 EXTEND
038863,000288: 20,3011 21667 MSU YCDUYPST
038864,000289: 20,3012 02625 TCR RLIMTEST # RATE TEST
038865,000290: 20,3013 55671 TS MCDUYDOT # (MINUS, SCALED 1/2TVCDT REV/SEC)
038866,000291:
038867,000292: 20,3014 30034 CAE CDUZ # COMPUTE CDUZDOT
038868,000293: 20,3015 57670 XCH YCDUZPST
038869,000294: 20,3016 00006 EXTEND
038870,000295: 20,3017 21670 MSU YCDUZPST
038871,000296: 20,3020 02625 TCR RLIMTEST # RATE TEST
038872,000297: 20,3021 55672 TS MCDUZDOT # (MINUS, SCALED 1/2TVCDT REV/SEC)
038873,000298:
038874,000299: 20,3022 00006 YINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS YAW-RATE
038875,000300: 20,3023 31627 DCA YERRB # ERROR, SC.AT B-1 REVS
038876,000301: 20,3024 53714 DXCH ERRBTMP
038877,000302:
038878,000303: 20,3025 00006 EXTEND
038879,000304: 20,3026 31561 DCA OMEGAZC
038880,000305: 20,3027 21714 DAS ERRBTMP
038881,000306:
038882,000307: 20,3030 31141 CAE COSCDUZ # PREPARE BODY-AXIS YAW-RATE, OMEGAZB
038883,000308: 20,3031 00006 EXTEND
038884,000309: 20,3032 71135 MP SINCDUX
038885,000310: 20,3033 20001 DDOUBL
038886,000311: 20,3034 00006 EXTEND
038887,000312: 20,3035 71671 MP MCDUYDOT
038888,000313: 20,3036 20001 DDOUBL
038889,000314: 20,3037 53567 DXCH OMEGAZB
038890,000315:
038891,000316: 20,3040 41672 CS MCDUZDOT
038892,000317: 20,3041 00006 EXTEND
038893,000318: 20,3042 71143 MP COSCDUX
038894,000319: 20,3043 20001 DDOUBL
038895,000320: 20,3044 21567 DAS OMEGAZB # OMEGAZB, SCALED (B-1)/TVCDT REVS/SEC
038896,000321:
038897,000322: 20,3045 00006 EXTEND # PICK UP -OMEGAZB (SIGN CHNG, INTEGRATE)
038898,000323: 20,3046 41567 DCS OMEGAZB
038899,000324: 20,3047 21714 DAS ERRBTMP
038900,000325:
038901,000326: 20,3050 03203 YERORLIM TCR ERRORLIM # YAW BODY-AXIS-ERROR INPUT LIMITER
038902,000327:
038903,000328: 20,3051 00006 YFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
038904,000329: 20,3052 31605 DCA YTMP1 # FOR THE YAW CHANNEL
038905,000330: 20,3053 53720 DXCH TMP1
038906,000331: 20,3054 00006 EXTEND
038907,000332: 20,3055 31611 DCA YTMP3
038908,000333: 20,3056 53724 DXCH TMP3
038909,000334: 20,3057 00006 EXTEND
038910,000335: 20,3060 31615 DCA YTMP5
038911,000336: 20,3061 53730 DXCH TMP5
038912,000337:
038913,000338: 20,3062 03235 TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
038914,000339: # (INCLUDES VARIABLE GAIN PACKAGE)
038915,000340:
038916,000341: 20,3063 00006 YOFFSET EXTEND
038917,000342: 20,3064 31637 DCA YDELOFF
038918,000343: 20,3065 21716 DAS CMDTMP # NOW SCALED AT B+0 ASCREV
038919,000344:
038920,000345: 20,3066 03216 YACLIM TCR ACTLIM # ROUND OFF & LIMIT YAW ACTUATOR COMMAND
038921,000346:
038922,000347: 20,3067 41653 YOUT CS YCMD # INCREMENTAL YAW COMMAND
038923,000348: 20,3070 61715 AD CMDTMP
038924,000349: 20,3071 26053 ADS TVCYAW # UPDATE THE ERROR COUNTER (NO RESTART-
038925,000350: # PROTECT, SINCE ERROR CNTR ZEROED)
038926,000351:
038927,000352: 20,3072 34766 CAF BIT12 # BIT FOR TVCYAW COUNT RELEASE
038928,000353: 20,3073 00006 EXTEND
038929,000354: 20,3074 05014 WOR CHAN14
038930,000355:
038931,000356: 20,3075 00006 YPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR YAW
038932,000357: 20,3076 31607 DCA YTMP2
038933,000358: 20,3077 53722 DXCH TMP2
038934,000359: 20,3100 00006 EXTEND
038935,000360: 20,3101 31613 DCA YTMP4
038936,000361: 20,3102 53726 DXCH TMP4
038937,000362: 20,3103 00006 EXTEND
038938,000363: 20,3104 31617 DCA YTMP6
038939,000364: 20,3105 53732 DXCH TMP6
038940,000365:
038941,000366: 20,3106 03327 TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
038942,000367:
038943,000368: 20,3107 31633 DELBARY CAE DELYBAR +1 # UPDATE YAW OFFSET-TRACKER-FILTER
038944,000369: 20,3110 00006 EXTEND
038945,000370: 20,3111 73560 MP E(-AT)
038946,000371: 20,3112 55712 TS DELBRTMP +1
038947,000372: 20,3113 31632 CAE DELYBAR
038948,000373: 20,3114 00006 EXTEND
038949,000374: 20,3115 73560 MP E(-AT)
038950,000375: 20,3116 21712 DAS DELBRTMP
038951,000376: 20,3117 31715 CAE CMDTMP
038952,000377: 20,3120 00006 EXTEND
038953,000378: 20,3121 73557 MP 1-E(-AT)
038954,000379: 20,3122 21712 DAS DELBRTMP
038955,000380:
038956,000381: 20,3123 03125 YCOPYCYC TCR YCOPY # YAW COPYCYCLE
038957,000382:
038958,000383: 20,3124 15336 YDAPEND TCF RESUME # YAW DAP COMPLETED
038959,000384:
038960,000385:
038961,000386: # YAW TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA YAW TVCDAP OR TVC RESTART PACKAGE)
038962,000387:
038963,000388: 20,3125 25664 YCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (3)
038964,000389: # NOTE POSSIBLE RE-ENTRY FROM RESTART
038965,000390: # PACKAGE, SHOULD A RESTART OCCUR
038966,000391: # DURING YAW COPYCYCLE.
038967,000392:
038968,000393: 20,3126 00006 EXTEND
038969,000394: 20,3127 31720 DCA TMP1
038970,000395: 20,3130 53605 DXCH YTMP1
038971,000396: 20,3131 00006 EXTEND
038972,000397: 20,3132 31722 DCA TMP2
038973,000398: 20,3133 53607 DXCH YTMP2
038974,000399: 20,3134 00006 EXTEND
038975,000400: 20,3135 31724 DCA TMP3
038976,000401: 20,3136 53611 DXCH YTMP3
038977,000402: 20,3137 00006 EXTEND
038978,000403: 20,3140 31726 DCA TMP4
038979,000404: 20,3141 53613 DXCH YTMP4
038980,000405: 20,3142 00006 EXTEND
038981,000406: 20,3143 31730 DCA TMP5
038982,000407: 20,3144 53615 DXCH YTMP5
038983,000408: 20,3145 00006 EXTEND
038984,000409: 20,3146 31732 DCA TMP6
038985,000410: 20,3147 53617 DXCH YTMP6
038986,000411:
038987,000412: 20,3150 00006 YMISC EXTEND # MISC....YAW-RATE-ERROR INTEGRATOR
038988,000413: 20,3151 31714 DCA ERRBTMP
038989,000414: 20,3152 55527 TS AK2 # FOR YAW NEEDLES, SC.AT B-1 REVS
038990,000415: 20,3153 53627 DXCH YERRB
038991,000416:
038992,000417: 20,3154 31715 CAE CMDTMP
038993,000418: 20,3155 55653 TS YCMD
038994,000419:
038995,000420: 20,3156 00006 EXTEND
038996,000421: 20,3157 31712 DCA DELBRTMP
038997,000422: 20,3160 53633 DXCH DELYBAR
038998,000423:
038999,000424: 20,3161 35003 CAF ZERO # YAW COPYCYCLE COMPLETED
039000,000425: 20,3162 55664 TS TVCPHASE # RESET TVCPHASE
039001,000426:
039002,000427: 20,3163 00002 TC Q
039003,000428:
039004,000429:
039005,000430: # SUBROUTINES COMMON TO BOTH PITCH AND YAW DAPS....
039006,000431:
039007,000432:
039008,000433: # INITIALIZATION PACKAGE FOR CDURATES....
039009,000434:
039010,000435: 20,3164 22016 DAPINIT LXCH BANKRUPT # T5 RUPT ENTRY (CALLED BY TVCINT4)
039011,000436:
039012,000437: 20,3165 37702 CAF NEGONE # SET UP
039013,000438: 20,3166 61654 AD T5TVCDT # T5 CALL FOR PITCHDAP IN TVCDT SECS
039014,000439: 20,3167 64763 AD NEGMAX # (T5TVCDT = POSMAX - TVCDT/2 +1)
039015,000440: 20,3170 61654 AD T5TVCDT
039016,000441: 20,3171 54030 TS TIME5
039017,000442: 20,3172 33553 CAF PITCHT5 # (BBCON ALREADY THERE)
039018,000443: 20,3173 54112 TS T5LOC
039019,000444:
039020,000445: 20,3174 30033 CAE CDUY # READ AND STORE CDUS FOR DIFFERENTIATOR
039021,000446: 20,3175 55665 TS PCDUYPST # PAST-VALUES
039022,000447: 20,3176 55667 TS YCDUYPST
039023,000448: 20,3177 30034 CAE CDUZ
039024,000449: 20,3200 55666 TS PCDUZPST
039025,000450: 20,3201 55670 TS YCDUZPST
039026,000451:
039027,000452: 20,3202 15340 TCF NOQRSM
039028,000453:
039029,000454:
039030,000455: # BODY-AXIS-ERROR INPUT LIMITER PACKAGE....
039031,000456:
039032,000457: 20,3203 31713 ERRORLIM CAE ERRBTMP # CHECK FOR INPUT-ERROR LIMIT
039033,000458: 20,3204 00006 EXTEND # CHECKS UPPER WORD ONLY
039034,000459: 20,3205 74777 MP 1/ERRLIM
039035,000460: 20,3206 00006 EXTEND
039036,000461: 20,3207 13215 BZF +6
039037,000462: 20,3210 11713 CCS ERRBTMP
039038,000463: 20,3211 34765 CAF ERRLIM
039039,000464: 20,3212 13214 TCF +2
039040,000465: 20,3213 44765 CS ERRLIM
039041,000466: 20,3214 55713 TS ERRBTMP # LIMIT WRITES OVER UPPER WORD ONLY
039042,000467:
039043,000468: 20,3215 00002 TC Q
039044,000469:
039045,000470:
039046,000471: # ACTUATOR-COMMAND LIMITER PACKAGE....
039047,000472:
039048,000473: 20,3216 31716 ACTLIM CAE CMDTMP +1 # ROUND UP FOR OUTPUT
039049,000474: 20,3217 60000 DOUBLE
039050,000475: 20,3220 54001 TS L
039051,000476: 20,3221 35003 CAF ZERO
039052,000477: 20,3222 61715 AD CMDTMP
039053,000478:
039054,000479: 20,3223 00006 EXTEND # CHECK FOR ACTUATOR COMMAND LIMIT
039055,000480: 20,3224 73552 MP 1/ACTSAT
039056,000481: 20,3225 00006 EXTEND
039057,000482: 20,3226 13234 BZF +6
039058,000483: 20,3227 11715 CCS CMDTMP # APPLY LIMITS
039059,000484: 20,3230 33551 CAF ACTSAT
039060,000485: 20,3231 13233 TCF +2
039061,000486: 20,3232 43551 CS ACTSAT
039062,000487: 20,3233 55715 TS CMDTMP # LIMITS WRITE OVER CMDTMP
039063,000488:
039064,000489: 20,3234 00002 TC Q
039065,000490:
039066,000491: # FILTER COMPUTATIONS FOR PRESENT OUTPUT................
039067,000492:
039068,000493: 20,3235 35003 FWDFLTR CAF ZERO
039069,000494: 20,3236 55644 TS DAP1
039070,000495: 20,3237 55646 TS DAP2
039071,000496: 20,3240 55650 TS DAP3
039072,000497: 20,3241 55715 TS CMDTMP
039073,000498:
039074,000499: 20,3242 55711 TS DELBRTMP
039075,000500:
039076,000501: 20,3243 31714 1DAPCAS CAE ERRBTMP +1 # FIRST DAP CASCADE
039077,000502: 20,3244 00006 EXTEND
039078,000503: 20,3245 71734 MP N10 # N10
039079,000504: 20,3246 55645 TS DAP1 +1
039080,000505: 20,3247 31713 CA ERRBTMP
039081,000506: 20,3250 00006 EXTEND
039082,000507: 20,3251 71734 MP N10 # N10
039083,000508: 20,3252 21645 DAS DAP1
039084,000509: 20,3253 53720 DXCH TMP1
039085,000510: 20,3254 21645 DAS DAP1
039086,000511:
039087,000512: 20,3255 31645 2DAPCAS CAE DAP1 +1 # SECOND DAP CASCADE
039088,000513: 20,3256 00006 EXTEND
039089,000514: 20,3257 71741 MP N10 +5 # N20
039090,000515: 20,3260 55647 TS DAP2 +1
039091,000516: 20,3261 31644 CA DAP1
039092,000517: 20,3262 00006 EXTEND
039093,000518: 20,3263 71741 MP N10 +5 # N20
039094,000519: 20,3264 21647 DAS DAP2
039095,000520: 20,3265 53724 DXCH TMP3
039096,000521: 20,3266 21647 DAS DAP2
039097,000522:
039098,000523: 20,3267 31514 CAE DAPDATR1 # TEST FOR LEM ON OR OFF
039099,000524: 20,3270 74764 MASK BIT14
039100,000525: 20,3271 10000 CCS A
039101,000526: 20,3272 13301 TCF 3DAPCAS # LEM ON
039102,000527: 20,3273 00006 EXTEND # LEM OFF
039103,000528: 20,3274 31647 DCA DAP2
039104,000529: 20,3275 20001 DDOUBL
039105,000530: 20,3276 20001 DDOUBL
039106,000531: 20,3277 53651 DXCH DAP3
039107,000532: 20,3300 13313 TCF OPTVARK
039108,000533:
039109,000534: 20,3301 31647 3DAPCAS CAE DAP2 +1 # THIRD DAP CASCADE
039110,000535: 20,3302 00006 EXTEND
039111,000536: 20,3303 71746 MP N10 +10D # N30
039112,000537: 20,3304 55651 TS DAP3 +1
039113,000538: 20,3305 31646 CA DAP2
039114,000539: 20,3306 00006 EXTEND
039115,000540: 20,3307 71746 MP N10 +10D # N30
039116,000541: 20,3310 21651 DAS DAP3
039117,000542: 20,3311 53730 DXCH TMP5
039118,000543: 20,3312 21651 DAS DAP3
039119,000544:
039120,000545: 20,3313 41651 OPTVARK CS DAP3 +1 # VARIABLE GAIN PACKAGE
039121,000546: 20,3314 00006 EXTEND # (ALSO, SIGN CHANGE IN FORWARD LOOP)
039122,000547: 20,3315 71661 MP VARK # SCALED (1.08 B+2) CSM/LM
039123,000548: 20,3316 55716 TS CMDTMP +1 # ( " B+4) CSM
039124,000549: 20,3317 41650 CS DAP3
039125,000550: 20,3320 00006 EXTEND
039126,000551: 20,3321 71661 MP VARK
039127,000552: 20,3322 21716 DAS CMDTMP
039128,000553:
039129,000554: 20,3323 53716 DXCH CMDTMP # FIX UP SCALING - SCALED B+1 ASCREV
039130,000555: 20,3324 20001 DDOUBL
039131,000556: 20,3325 53716 DXCH CMDTMP # - SCALED B+0 ASCREV
039132,000557: # NOTE - THERE IS AN INHERANT GAIN OF
039133,000558: # (B+1 ASCREV/REV) ON THE OUTPUT DACS.
039134,000559:
039135,000560: 20,3326 00002 TC Q
039136,000561:
039137,000562:
039138,000563: # FILTER PRECOMPUTATIONS FOR NEXT PASS...................
039139,000564:
039140,000565: 20,3327 35003 PRECOMP CAF ZERO # ***** FIRST CASCADE FILTER **********
039141,000566: 20,3330 55640 TS TTMP1
039142,000567: 20,3331 55642 TS TTMP2
039143,000568:
039144,000569: 20,3332 31714 CA ERRBTMP +1 # MULTIPLY INPUT BY
039145,000570: 20,3333 00006 EXTEND
039146,000571: 20,3334 71735 MP N10 +1 # N11/2
039147,000572: 20,3335 55641 TS TTMP1 +1
039148,000573: 20,3336 31713 CA ERRBTMP
039149,000574: 20,3337 00006 EXTEND
039150,000575: 20,3340 71735 MP N10 +1 # N11/2
039151,000576: 20,3341 21641 DAS TTMP1
039152,000577:
039153,000578: 20,3342 41645 CS DAP1 +1 # MULTIPLY OUTPUT BY
039154,000579: 20,3343 00006 EXTEND
039155,000580: 20,3344 71737 MP N10 +3 # D11/2
039156,000581: 20,3345 55643 TS TTMP2 +1
039157,000582: 20,3346 41644 CS DAP1
039158,000583: 20,3347 00006 EXTEND
039159,000584: 20,3350 71737 MP N10 +3 # D11/2
039160,000585: 20,3351 21643 DAS TTMP2
039161,000586:
039162,000587: 20,3352 53643 DXCH TTMP2
039163,000588: 20,3353 21641 DAS TTMP1
039164,000589: 20,3354 53641 DXCH TTMP1
039165,000590: 20,3355 20001 DDOUBL
039166,000591: 20,3356 21722 DAS TMP2
039167,000592:
039168,000593: 20,3357 53722 DXCH TMP2
039169,000594: 20,3360 53720 DXCH TMP1
039170,000595:
039171,000596: 20,3361 35003 CAF ZERO
039172,000597: 20,3362 55640 TS TTMP1
039173,000598: 20,3363 55721 TS TMP2
039174,000599:
039175,000600: 20,3364 31714 CA ERRBTMP +1 # MULTIPLY INPUT BY
039176,000601: 20,3365 00006 EXTEND # SECOND-ORDER NUMERATOR COEFF.
039177,000602: 20,3366 71736 MP N10 +2 # N12
039178,000603: 20,3367 55641 TS TTMP1 +1
039179,000604: 20,3370 31713 CA ERRBTMP
039180,000605: 20,3371 00006 EXTEND
039181,000606: 20,3372 71736 MP N10 +2 # N12
039182,000607: 20,3373 21641 DAS TTMP1
039183,000608:
039184,000609: 20,3374 41645 CS DAP1 +1 # MULTIPLY OUTPUT BY
039185,000610: 20,3375 00006 EXTEND
039186,000611: 20,3376 71740 MP N10 +4 # D12
039187,000612: 20,3377 55722 TS TMP2 +1
039188,000613: 20,3400 41644 CS DAP1
039189,000614: 20,3401 00006 EXTEND
039190,000615: 20,3402 71740 MP N10 +4 # D12
039191,000616: 20,3403 21722 DAS TMP2
039192,000617:
039193,000618: 20,3404 53641 DXCH TTMP1
039194,000619: 20,3405 21722 DAS TMP2
039195,000620:
039196,000621: 20,3406 35003 2CASFLTR CAF ZERO # *****SECOND CASCADE FILTER*****
039197,000622: 20,3407 55640 TS TTMP1
039198,000623: 20,3410 55642 TS TTMP2
039199,000624:
039200,000625: 20,3411 31645 CA DAP1 +1 # MULTIPLY INPUT BY
039201,000626: 20,3412 00006 EXTEND
039202,000627: 20,3413 71742 MP N10 +6 # N21/2
039203,000628: 20,3414 55641 TS TTMP1 +1
039204,000629: 20,3415 31644 CA DAP1
039205,000630: 20,3416 00006 EXTEND
039206,000631: 20,3417 71742 MP N10 +6 # N21/2
039207,000632: 20,3420 21641 DAS TTMP1
039208,000633:
039209,000634: 20,3421 41647 CS DAP2 +1 # MULTIPLY OUTPUT BY
039210,000635: 20,3422 00006 EXTEND
039211,000636: 20,3423 71744 MP N10 +8D # D21/2
039212,000637: 20,3424 55643 TS TTMP2 +1
039213,000638: 20,3425 41646 CS DAP2
039214,000639: 20,3426 00006 EXTEND
039215,000640: 20,3427 71744 MP N10 +8D # D21/2
039216,000641: 20,3430 21643 DAS TTMP2
039217,000642:
039218,000643: 20,3431 53643 DXCH TTMP2
039219,000644: 20,3432 21641 DAS TTMP1
039220,000645: 20,3433 53641 DXCH TTMP1
039221,000646: 20,3434 20001 DDOUBL
039222,000647: 20,3435 21726 DAS TMP4
039223,000648:
039224,000649: 20,3436 53726 DXCH TMP4
039225,000650: 20,3437 53724 DXCH TMP3
039226,000651:
039227,000652: 20,3440 35003 CAF ZERO
039228,000653: 20,3441 55640 TS TTMP1
039229,000654: 20,3442 55725 TS TMP4
039230,000655:
039231,000656: 20,3443 31645 CA DAP1 +1 # MULTIPLY INPUT BY
039232,000657: 20,3444 00006 EXTEND
039233,000658: 20,3445 71743 MP N10 +7 # N22
039234,000659: 20,3446 55641 TS TTMP1 +1
039235,000660: 20,3447 31644 CA DAP1
039236,000661: 20,3450 00006 EXTEND
039237,000662: 20,3451 71743 MP N10 +7 # N22
039238,000663: 20,3452 21641 DAS TTMP1
039239,000664:
039240,000665: 20,3453 41647 CS DAP2 +1 # MULTIPLY OUTPUT BY
039241,000666: 20,3454 00006 EXTEND
039242,000667: 20,3455 71745 MP N10 +9D # D22
039243,000668: 20,3456 55726 TS TMP4 +1
039244,000669: 20,3457 41646 CS DAP2
039245,000670: 20,3460 00006 EXTEND
039246,000671: 20,3461 71745 MP N10 +9D # D22
039247,000672: 20,3462 21726 DAS TMP4
039248,000673:
039249,000674: 20,3463 53641 DXCH TTMP1
039250,000675: 20,3464 21726 DAS TMP4
039251,000676: 20,3465 31514 CAE DAPDATR1 # TEST FOR LEM ON OR OFF
039252,000677: 20,3466 74765 MASK BIT13
039253,000678: 20,3467 10000 CCS A
039254,000679: 20,3470 00002 TC Q # EXIT IF LEM OFF
039255,000680:
039256,000681: 20,3471 35003 3CASFLTR CAF ZERO # *****THIRD CASCADE FILTER*****
039257,000682: 20,3472 55640 TS TTMP1
039258,000683: 20,3473 55642 TS TTMP2
039259,000684:
039260,000685: 20,3474 31647 CA DAP2 +1 # MULTIPLY INPUT BY (1/2)
039261,000686: 20,3475 00006 EXTEND
039262,000687: 20,3476 71747 MP N10 +11D # N31/2
039263,000688: 20,3477 55641 TS TTMP1 +1
039264,000689: 20,3500 31646 CA DAP2
039265,000690: 20,3501 00006 EXTEND
039266,000691: 20,3502 71747 MP N10 +11D # N31/2
039267,000692: 20,3503 21641 DAS TTMP1
039268,000693:
039269,000694: 20,3504 41651 CS DAP3 +1
039270,000695: 20,3505 00006 EXTEND
039271,000696: 20,3506 71751 MP N10 +13D # D31/2
039272,000697: 20,3507 55643 TS TTMP2 +1
039273,000698: 20,3510 41650 CS DAP3
039274,000699: 20,3511 00006 EXTEND
039275,000700: 20,3512 71751 MP N10 +13D # D31/2
039276,000701: 20,3513 21643 DAS TTMP2
039277,000702:
039278,000703: 20,3514 53643 DXCH TTMP2
039279,000704: 20,3515 21641 DAS TTMP1
039280,000705: 20,3516 53641 DXCH TTMP1
039281,000706: 20,3517 20001 DDOUBL
039282,000707: 20,3520 21732 DAS TMP6
039283,000708:
039284,000709: 20,3521 53732 DXCH TMP6
039285,000710: 20,3522 53730 DXCH TMP5
039286,000711:
039287,000712: 20,3523 35003 CAF ZERO
039288,000713: 20,3524 55640 TS TTMP1
039289,000714: 20,3525 55731 TS TMP6
039290,000715:
039291,000716: 20,3526 31647 CA DAP2 +1 # MULTIPLY INPUT BY
039292,000717: 20,3527 00006 EXTEND
039293,000718: 20,3530 71750 MP N10 +12D # N32
039294,000719: 20,3531 55641 TS TTMP1 +1
039295,000720: 20,3532 31646 CA DAP2
039296,000721: 20,3533 00006 EXTEND
039297,000722: 20,3534 71750 MP N10 +12D # N32
039298,000723: 20,3535 21641 DAS TTMP1
039299,000724:
039300,000725: 20,3536 41651 CS DAP3 +1
039301,000726: 20,3537 00006 EXTEND
039302,000727: 20,3540 71752 MP N10 +14D # D32
039303,000728: 20,3541 55732 TS TMP6 +1
039304,000729: 20,3542 41650 CS DAP3
039305,000730: 20,3543 00006 EXTEND
039306,000731:
039307,000732: 20,3544 71752 MP N10 +14D # D32
039308,000733: 20,3545 21732 DAS TMP6
039309,000734:
039310,000735: 20,3546 53641 DXCH TTMP1
039311,000736: 20,3547 21732 DAS TMP6
039312,000737:
039313,000738: 20,3550 00002 TC Q
039314,000739:
039315,000740:
039316,000741: # CONSTANTS FOR AUTOPILOTS
039317,000742:
039318,000743: # NOTE....1 ASCREV (ACTUATOR CMD SCALING) = 85.41 ARCSEC/BIT OR 1.07975111 REVS (85.41X16384/3600/360)
039319,000744:
039320,000745: # 1 SPASCREV (SPECIAL ACTUATOR CMD SCALING) = 1.04620942 REVS
039321,000746:
039322,000747: 20,3551 00375 ACTSAT DEC 253 B-14 # ACTUATOR LIMIT (6 DEG), SC.AT 1ASCREV
039323,000748: 20,3552 00101 1/ACTSAT DEC .0039525692 # RECIPROCAL (1/253)
039324,000749:
039325,000750: 20,3553 4765 ERRLIM EQUALS BIT13 # FILTER INPUT LIMIT....B-3 REVS (45DEG),
039326,000751: 20,3553 4777 1/ERRLIM EQUALS BIT3 # SC.AT B-1 REV, AND ITS RECIPROCAL
039327,000752:
039328,000753: 20,3553 02601 PITCHT5 GENADR PITCHDAP # UPPER WORDS OF T5 2CADRS, LOWER WORDS
039329,000754: 20,3554 03164 DAPT5 GENADR DAPINIT # (BBCON) ALREADY THERE. ORDER IS
039330,000755: 20,3555 02777 YAWT5 GENADR YAWDAP # REQUIRED.
039331,000756:
039332,000757:
039333,000758: 20,3556 00115 1/RTLIM DEC 0.004715 # .004715(CDUDIF) = 0 IF CDUDIF < 2.33 DEG
039334,000759: 20,3557 00243 1-E(-AT) OCT 00243 # AT = .01SEC....EITHER(1/A=4SEC, T=40MS),
039335,000760: 20,3560 37535 E(-AT) OCT 37535 # OR(1/A=8SEC, T=80MS)
End of include-file TVCDAPS.agc. Parent file is MAIN.agc