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