Source Code
These source-code files are part of a reconstructed copy of Comanche 45/2 (AKA Manche45 revision 2),
the final, flown mission release of the Apollo 10 Command Module (CM) Apollo Guidance
Computer (AGC) software. Comanche 45/2 was preceded by Comanche 44 and Comanche 45. The
reconstruction is believed to be exactly accurate, but in the absence of an actual Apollo-era
listing of Comanche 45/2, some explanation of the reconstruction process is needed
to insure confidence in that accuracy.
The starting point was the source code of Comanche 45 (itself previously accurately reconstructed). Comanche 45 source code was then modified by incorporating changes known from contemporary documentation to have been made between revisions 45 and 45/2. The now-reconstructed Comanche 45/2 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 tend to match those in the Comanche 55, the most-similar revision of Comanche for which we have access to an actual non-reconstructed hardcopy; the source code would likely have different page numbers in a contemporary Comanche 45 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 44. Here's a guide to the Apollo documentation referenced in those annotations:
|
041936,000002: ## Copyright: Public domain.
041937,000003: ## Filename: TVCDAPS.agc
041938,000004: ## Purpose: A section of Manche45 revision 2.
041939,000005: ## It is part of the reconstructed source code for the
041940,000006: ## final, flown release of the flight software for the Command
041941,000007: ## Module's (CM) Apollo Guidance Computer (AGC) for Apollo 10.
041942,000008: ## The code has been recreated from a copy of Comanche 055. It
041943,000009: ## has been adapted such that the resulting bugger words
041944,000010: ## exactly match those specified for Manche 45/2 in NASA drawing
041945,000011: ## 2021153D, which gives relatively high confidence that the
041946,000012: ## reconstruction is correct.
041947,000013: ## Assembler: yaYUL
041948,000014: ## Contact: Ron Burkey <info@sandroid.org>.
041949,000015: ## Website: www.ibiblio.org/apollo/index.html
041950,000016: ## Mod history: 2020-12-24 MAS Created from Comanche 45.
041951,000017:
Page 961 |
041953,000019: # PROGRAM NAME....TVCDAP, CONSISTING OF PITCHDAP, YAWDAP, ETC.
041954,000020: # LOG SECTION...TVCDAPS SUBROUTINE...DAPCSM
041955,000021: # MODIFIED BY SCHLUNDT 21 OCTOBER 1968
041956,000022:
041957,000023: # FUNCTIONAL DESCRIPTION....
041958,000024:
041959,000025: # SELF-PERPETUATING T5 TASKS WHICH GENERATE THE COMMAND SIGNALS
041960,000026: # FOR THE PITCH AND YAW SPS GIMBAL ACTUATORS DURING TVC (SPS) BURNS,
041961,000027: # IN RESPONSE TO BODY-AXIS RATE COMMANDS FROM CROSS-PRODUCT STEERING
041962,000028: # (S40.8). IF NO STEERING (IMPULSIVE BURNS) MAINTAINS ATTITUDE-HOLD
041963,000029: # ABOUT THE REFERENCE (INITIAL) DIRECTIONS (ZERO RATE COMMANDS).
041964,000030:
041965,000031: # THE PITCH AND YAW LOOPS ARE SEPARATE, BUT STRUCTURED IDENTICALLY.
041966,000032: # EACH ATTITUDE-RATE LOOP INCLUDES GIMBAL ANGLE RATE DERIVATION,
041967,000033: # GIMBAL/BODY AXIS TRANSFORMATION, BODY-AXIS ATTITUDE ERROR
041968,000034: # INTEGRATION WITH ERROR LIMITING, THE GENERALIZED 6TH-ORDER FILTER
041969,000035: # FOR CSM OR CSM/LM OPERATION, A FILTER OUTPUT LIMITER,
041970,000036: # CG-OFFSET TRACKER FILTER, AND THE CG-TRACKER MINOR LOOP.
041971,000037:
041972,000038: # THE DAPS ARE CYCLIC, CALLING EACH OTHER AT 1/2 THE DAP SAMPLE
041973,000039: # TIME, AS DETERMINED BY T5TVCDT. THE ACTUATOR COMMANDS ARE
041974,000040: # REGENERATED AS ANALOG VOLTAGES BY THE OPTICS ERROR COUNTERS, WHICH
041975,000041: # TRANSMIT THE SIGNAL TO THE ACTUATOR SERVOS WHEN THERE IS PROPER CDU
041976,000042: # MODING.
041977,000043:
041978,000044: # CALLING SEQUENCE.... (TYPICALLY)
041979,000045:
041980,000046: # T5 CALL OF TVCDAPON (TVCINITIALIZE) BY DOTVCON (P40)
041981,000047: # T5 CALL OF DAPINIT (TVCDAPS) BY TVCINIT4 (TVCINITIALIZE)
041982,000048: # T5 CALL OF PITCHDAP BY DAPINIT
041983,000049: # T5 CALL OF YAWDAP BY PITCHDAP
041984,000050: # T5 CALL OF PITCHDAP BY YAWDAP
041985,000051: # ETC.
041986,000052: # (AUTOMATIC SEQUENCING FROM TVCDAPON)
041987,000053:
041988,000054: # NORMAL EXIT MODE....RESUME
041989,000055:
041990,000056: # ALARM OR ABORT EXIT MODES....NONE
041991,000057:
041992,000058: # SUBROUTINES CALLED....
041993,000059:
041994,000060: # HACK FOR STROKE TEST (V68) WAVEFORM GENERATION
041995,000061: # PCOPY, YCOPY FOR COPY-CYCLES (USED ALSO BY TVC RESTART PACKAGE)
041996,000062: # DAPINIT FOR INITIAL CDUS FOR RATE MEASUREMENTS
041997,000063: # ERRORLIM, ACTLIM FOR INPUT (ATTITUDE-ERROR INTEGRATION) AND
041998,000064: # OUTPUT (ACTUATOR COMMAND) LIMITING, COMMON TO PITCH AND
041999,000065: # YAW DAPS
042000,000066: # FWDFLTR (INCLUDING OPTVARK) AND PRECOMP, TO COMPUTE FILTER
042001,000067: # OUTPUTS AND STORAGE VALUES
042002,000068: # RESUME
042003,000069:
Page 962 |
042005,000071: # OTHER INTERFACES....
042006,000072:
042007,000073: # S40.8 CROSS-PRODUCT STEERING FOR BODY AXIS RATE COMMANDS OMEGAY,ZC
042008,000074: # S40.15 FOR THE INITIAL DAP GAINS VARK AND 1/CONACC
042009,000075: # TVCEXECUTIVE FOR DAP GAIN UPDATES AND TMC LOOP OPERATIONS
042010,000076: # TVCRESTART PACKAGE FOR TVC RESTART PROTECTION.
042011,000077:
042012,000078: # ERASABLE INITIALIZATION REQUIRED....
042013,000079:
042014,000080: # PAD-LOAD ERASABLES (SEE ERASABLE ASSIGNMENTS)
042015,000081: # CONFIGURATION BITS (14, 13) OF DAPDATR1 AS IN R03
042016,000082: # ENGINE-ON BIT (11.13) FOR RESTARTS
042017,000083: # TVCPHASE FOR RESTARTS (SEE DOTVCON, AND TVCINIT4)
042018,000084: # T5 BITS (15,14 OF FLAGWRD6) FOR RESTARTS
042019,000085: # MISCELLANEOUS VARIABLES SET UP OR COMPUTED BY TVCDAPON....TVCINIT4,
042020,000086: # INCLUDING THE ZEROING OF TEMPORARIES BY MRCLEAN
042021,000087: # CDUX,Y,Z AND SINCDUX.... COSCDUZ AS PREPARED BY QUICTRIG (WITH
042022,000088: # UPDATES EVERY 1/2 SECOND)
042023,000089: # ALSO G+N PRIMARY, TVC ENABLE, AND OPTICS ERROR COUNTER ENABLE
042024,000090: # UNLESS BENCH-TESTING.
042025,000091:
042026,000092: # OUTPUT....
042027,000093:
042028,000094: # TVCPITCH AND TVCYAW WITH COUNTER RELEASE (11.14 AND 11.13 INCREMEN-
042029,000095: # TAL COMMANDS TO OPTICS ERROR COUNTERS), FILTER NODES, BODY-
042030,000096: # AXIS ATTITUDE ERROR INTEGRATOR, TOTAL ACTUATOR COMMANDS,
042031,000097: # OFFSET-TRACKER-FILTER OUTPUTS, ETC.
042032,000098:
042033,000099: # DEBRIS....
042034,000100:
042035,000101: # MUCH, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
042036,000102:
042037,000103: 17,2552 BANK 17
042038,000104: 20,2000 SETLOC DAPS2
042039,000105: 20,2000 BANK
042040,000106:
042041,000107: 20,2530 E6,1702 EBANK= BZERO
042042,000108:
042043,000109: 20,2530 COUNT* $$/DAPS
042044,000110:
Page 963 |
042046,000112: # PITCH TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
042047,000113:
042048,000114: 20,2530 22016 PITCHDAP LXCH BANKRUPT # T5 ENTRY, NORMAL OR VIA DAPINIT
042049,000115: 20,2531 00006 EXTEND
042050,000116: 20,2532 22012 QXCH QRUPT
042051,000117:
042052,000118: 20,2533 33475 CAF YAWT5 # SET UP T5 CALL FOR YAW AUTOPILOT (LOW-
042053,000119: 20,2534 55312 TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
042054,000120: 20,2535 31625 CAE T5TVCDT
042055,000121: 20,2536 54030 TS TIME5
042056,000122:
042057,000123: 20,2537 11574 PSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST
042058,000124: 20,2540 03533 TC HACK # TEST-START OR TEST-IN-PROGRESS
042059,000125: 20,2541 12543 TCF +2 # NO-TEST
042060,000126: 20,2542 03533 TC HACK # TEST-IN-PROGRESS
042061,000127:
042062,000128: 20,2543 30033 PCDUDOTS CAE CDUY # COMPUTE CDUYDOT (USED BY PITCH AND YAW)
042063,000129: 20,2544 57645 XCH PCDUYPST
042064,000130: 20,2545 00006 EXTEND
042065,000131: 20,2546 21645 MSU PCDUYPST
042066,000132: 20,2547 02560 TCR RLIMTEST # RATE TEST
042067,000133: 20,2550 55647 TS MCDUYDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
042068,000134:
042069,000135: 20,2551 30034 CAE CDUZ # COMPUTE CDUZDOT (USED BY PITCH AND YAW)
042070,000136: 20,2552 57646 XCH PCDUZPST
042071,000137: 20,2553 00006 EXTEND
042072,000138: 20,2554 21646 MSU PCDUZPST
042073,000139: 20,2555 02560 TCR RLIMTEST # RATE TEST
042074,000140: 20,2556 55650 TS MCDUZDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
042075,000141: 20,2557 12571 TCF PINTEGRL
042076,000142:
042077,000143: 20,2560 55611 RLIMTEST TS TTMP1 # TEST FOR EXCESSIVE CDU RATES (GREATER
042078,000144: 20,2561 00006 EXTEND # THAN 2.33 DEG IN ONE SAMPLE PERIOD)
042079,000145: 20,2562 73476 MP 1/RTLIM
042080,000146: 20,2563 00006 EXTEND
042081,000147: 20,2564 12567 BZF +3
042082,000148: 20,2565 35021 CAF ZERO
042083,000149: 20,2566 55611 TS TTMP1
042084,000150: 20,2567 31611 CAE TTMP1
042085,000151: 20,2570 00002 TC Q
042086,000152:
042087,000153: 20,2571 00006 PINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS PITCH-RATE
042088,000154: 20,2572 31576 DCA PERRB # ERROR, SC.AT B-1 REVS
042089,000155: 20,2573 53703 DXCH ERRBTMP
042090,000156:
042091,000157: 20,2574 00006 EXTEND
042092,000158: 20,2575 31530 DCA OMEGAYC
042093,000159: 20,2576 21703 DAS ERRBTMP
042094,000160:
Page 964 |
042096,000162: 20,2577 40746 CS COSCDUZ # PREPARE BODY-AXIS PITCH RATE, OMEGAYB
042097,000163: 20,2600 00006 EXTEND
042098,000164: 20,2601 70750 MP COSCDUX
042099,000165: 20,2602 20001 DDOUBL
042100,000166: 20,2603 00006 EXTEND
042101,000167: 20,2604 71647 MP MCDUYDOT
042102,000168: 20,2605 20001 DDOUBL
042103,000169: 20,2606 53536 DXCH OMEGAYB
042104,000170:
042105,000171: 20,2607 41650 CS MCDUZDOT
042106,000172: 20,2610 00006 EXTEND
042107,000173: 20,2611 70742 MP SINCDUX
042108,000174: 20,2612 20001 DDOUBL
042109,000175: 20,2613 21536 DAS OMEGAYB # (COMPLETED OMEGAYB, SC.AT 1/2TVCDT REVS)
042110,000176:
042111,000177: 20,2614 00006 EXTEND # PICK UP -OMEGAYB (SIGN CHNG, INTEGRATE)
042112,000178: 20,2615 41536 DCS OMEGAYB
042113,000179: 20,2616 21703 DAS ERRBTMP
042114,000180:
042115,000181: 20,2617 03124 PERORLIM TCR ERRORLIM # PITCH BODY-AXIS-ERROR INPUT LIMITER
042116,000182:
042117,000183: 20,2620 00006 PFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
042118,000184: 20,2621 31542 DCA PTMP1 # FOR THE PITCH CHANNEL
042119,000185: 20,2622 53707 DXCH TMP1
042120,000186: 20,2623 00006 EXTEND
042121,000187: 20,2624 31546 DCA PTMP3
042122,000188: 20,2625 53713 DXCH TMP3
042123,000189: 20,2626 00006 EXTEND
042124,000190: 20,2627 31552 DCA PTMP5
042125,000191: 20,2630 53717 DXCH TMP5
042126,000192:
042127,000193: 20,2631 03156 TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
042128,000194: # (INCLUDES VARIABLE GAIN PACKAGE)
042129,000195:
042130,000196: 20,2632 00006 POFFSET EXTEND
042131,000197: 20,2633 31606 DCA PDELOFF
042132,000198: 20,2634 21705 DAS CMDTMP # NOW SCALED AT B+0 ASCREV
042133,000199:
042134,000200: 20,2635 03137 PACLIM TCR ACTLIM # ROUND OFF & LIMIT PITCH ACTUATOR COMMAND
042135,000201:
042136,000202: 20,2636 41623 POUT CS PCMD # INCREMENTAL PITCH COMMAND
042137,000203: 20,2637 61704 AD CMDTMP
042138,000204: 20,2640 26054 ADS TVCPITCH # UPDATE THE ERROR COUNTER (NO RESTART-
042139,000205: # PROTECT, SINCE ERROR CNTR ZEROED)
042140,000206:
042141,000207: 20,2641 35005 CAF BIT11 # BIT FOR TVCPITCH COUNT RELEASE
042142,000208: 20,2642 00006 EXTEND
042143,000209: 20,2643 05014 WOR CHAN14
042144,000210:
042145,000211: 20,2644 00006 PPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR PITCH
Page 965 |
042147,000213: 20,2645 31544 DCA PTMP2
042148,000214: 20,2646 53711 DXCH TMP2
042149,000215: 20,2647 00006 EXTEND
042150,000216: 20,2650 31550 DCA PTMP4
042151,000217: 20,2651 53715 DXCH TMP4
042152,000218: 20,2652 00006 EXTEND
042153,000219: 20,2653 31554 DCA PTMP6
042154,000220: 20,2654 53721 DXCH TMP6
042155,000221:
042156,000222: 20,2655 03247 TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
042157,000223:
042158,000224: 20,2656 31602 DELBARP CAE DELPBAR +1 # UPDATE PITCH OFFSET-TRACKER-FILTER
042159,000225: 20,2657 00006 EXTEND
042160,000226: 20,2660 73500 MP E(-AT)
042161,000227: 20,2661 55701 TS DELBRTMP +1
042162,000228: 20,2662 31601 CAE DELPBAR
042163,000229: 20,2663 00006 EXTEND
042164,000230: 20,2664 73500 MP E(-AT)
042165,000231: 20,2665 21701 DAS DELBRTMP
042166,000232: 20,2666 31704 CAE CMDTMP
042167,000233: 20,2667 00006 EXTEND
042168,000234: 20,2670 73477 MP 1-E(-AT)
042169,000235: 20,2671 21701 DAS DELBRTMP
042170,000236:
042171,000237: 20,2672 02674 PCOPYCYC TCR PCOPY # PITCH COPYCYCLE
042172,000238:
042173,000239: 20,2673 15333 PDAPEND TCF RESUME # PITCH DAP COMPLETED
Page 966 |
042175,000241: # PITCH TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA PITCH TVCDAP OR TVC RESTART PACKAGE)
042176,000242:
042177,000243: 20,2674 25644 PCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (1)
042178,000244: # NOTE POSSIBLE RE-ENTRY FROM RESTART
042179,000245: # PACKAGE, SHOULD A RESTART OCCUR
042180,000246: # DURING PITCH COPYCYCLE.
042181,000247:
042182,000248: 20,2675 00006 EXTEND
042183,000249: 20,2676 31707 DCA TMP1
042184,000250: 20,2677 53542 DXCH PTMP1
042185,000251: 20,2700 00006 EXTEND
042186,000252: 20,2701 31711 DCA TMP2
042187,000253: 20,2702 53544 DXCH PTMP2
042188,000254: 20,2703 00006 EXTEND
042189,000255: 20,2704 31713 DCA TMP3
042190,000256: 20,2705 53546 DXCH PTMP3
042191,000257: 20,2706 00006 EXTEND
042192,000258: 20,2707 31715 DCA TMP4
042193,000259: 20,2710 53550 DXCH PTMP4
042194,000260: 20,2711 00006 EXTEND
042195,000261: 20,2712 31717 DCA TMP5
042196,000262: 20,2713 53552 DXCH PTMP5
042197,000263: 20,2714 00006 EXTEND
042198,000264: 20,2715 31721 DCA TMP6
042199,000265: 20,2716 53554 DXCH PTMP6
042200,000266:
042201,000267: 20,2717 00006 PMISC EXTEND # MISC....PITCH-RATE-ERROR INTEGRATOR
042202,000268: 20,2720 31703 DCA ERRBTMP
042203,000269: 20,2721 55477 TS AK1 # FOR PITCH NEEDLES, SC.AT B-1 REVS
042204,000270: 20,2722 53576 DXCH PERRB
042205,000271:
042206,000272: 20,2723 31704 CAE CMDTMP # PITCH ACTUATOR COMMAND
042207,000273: 20,2724 55623 TS PCMD
042208,000274:
042209,000275: 20,2725 00006 EXTEND # PITCH OFFSET-TRACKER-FILTER
042210,000276: 20,2726 31701 DCA DELBRTMP
042211,000277: 20,2727 53602 DXCH DELPBAR
042212,000278:
042213,000279: 20,2730 25644 INCR TVCPHASE # PITCH COPYCYCLE COMPLETED (2)
042214,000280:
042215,000281: 20,2731 00002 TC Q
042216,000282:
Page 967 |
042218,000284: # YAW TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
042219,000285:
042220,000286: 20,2732 22016 YAWDAP LXCH BANKRUPT # T5 ENTRY, NORMAL
042221,000287: 20,2733 00006 EXTEND
042222,000288: 20,2734 22012 QXCH QRUPT
042223,000289:
042224,000290: 20,2735 33473 CAF PITCHT5 # SET UP T5 CALL FOR PITCH AUTOPILOT (LOW-
042225,000291: 20,2736 55312 TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
042226,000292: 20,2737 31625 CAE T5TVCDT
042227,000293: 20,2740 54030 TS TIME5
042228,000294:
042229,000295: 20,2741 11574 YSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST
042230,000296: 20,2742 03533 TC HACK # TEST-START OR TEST-IN-PROGRESS
042231,000297: 20,2743 12745 TCF +2 # NO-TEST
042232,000298: 20,2744 03533 TC HACK # TEST-IN-PROGRESS
042233,000299:
042234,000300: # USE BODY RATES FROM PITCHDAP (PCDUDOTS)
042235,000301:
042236,000302: 20,2745 00006 YINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS YAW-RATE
042237,000303: 20,2746 31600 DCA YERRB # ERROR, SC.AT B-1 REVS
042238,000304: 20,2747 53703 DXCH ERRBTMP
042239,000305:
042240,000306: 20,2750 00006 EXTEND
042241,000307: 20,2751 31532 DCA OMEGAZC
042242,000308: 20,2752 21703 DAS ERRBTMP
042243,000309:
042244,000310: 20,2753 30746 CAE COSCDUZ # PREPARE BODY-AXIS YAW-RATE, OMEGAZB
042245,000311: 20,2754 00006 EXTEND
042246,000312: 20,2755 70742 MP SINCDUX
042247,000313: 20,2756 20001 DDOUBL
042248,000314: 20,2757 00006 EXTEND
042249,000315: 20,2760 71647 MP MCDUYDOT
042250,000316: 20,2761 20001 DDOUBL
042251,000317: 20,2762 53540 DXCH OMEGAZB
042252,000318:
042253,000319: 20,2763 41650 CS MCDUZDOT
042254,000320: 20,2764 00006 EXTEND
042255,000321: 20,2765 70750 MP COSCDUX
042256,000322: 20,2766 20001 DDOUBL
042257,000323: 20,2767 21540 DAS OMEGAZB # (COMPLETED OMEGAZB, SC.AT 1/2TVCDT REVS)
042258,000324:
042259,000325: 20,2770 00006 EXTEND # PICK UP -OMEGAZB (SIGN CHNG, INTEGRATE)
042260,000326: 20,2771 41540 DCS OMEGAZB
042261,000327: 20,2772 21703 DAS ERRBTMP
042262,000328:
042263,000329: 20,2773 03124 YERORLIM TCR ERRORLIM # YAW BODY-AXIS-ERROR INPUT LIMITER
042264,000330:
042265,000331: 20,2774 00006 YFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
042266,000332: 20,2775 31556 DCA YTMP1 # FOR THE YAW CHANNEL
Page 968 |
042268,000334: 20,2776 53707 DXCH TMP1
042269,000335: 20,2777 00006 EXTEND
042270,000336: 20,3000 31562 DCA YTMP3
042271,000337: 20,3001 53713 DXCH TMP3
042272,000338: 20,3002 00006 EXTEND
042273,000339: 20,3003 31566 DCA YTMP5
042274,000340: 20,3004 53717 DXCH TMP5
042275,000341:
042276,000342: 20,3005 03156 TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
042277,000343: # (INCLUDES VARIABLE GAIN PACKAGE)
042278,000344:
042279,000345: 20,3006 00006 YOFFSET EXTEND
042280,000346: 20,3007 31610 DCA YDELOFF
042281,000347: 20,3010 21705 DAS CMDTMP # NOW SCALED AT B+0 ASCREV
042282,000348:
042283,000349: 20,3011 03137 YACLIM TCR ACTLIM # ROUND OFF & LIMIT YAW ACTUATOR COMMAND
042284,000350:
042285,000351: 20,3012 41624 YOUT CS YCMD # INCREMENTAL YAW COMMAND
042286,000352: 20,3013 61704 AD CMDTMP
042287,000353: 20,3014 26053 ADS TVCYAW # UPDATE THE ERROR COUNTER (NO RESTART-
042288,000354: # PROTECT, SINCE ERROR CNTR ZEROED)
042289,000355:
042290,000356: 20,3015 35004 CAF BIT12 # BIT FOR TVCYAW COUNT RELEASE
042291,000357: 20,3016 00006 EXTEND
042292,000358: 20,3017 05014 WOR CHAN14
042293,000359:
042294,000360: 20,3020 00006 YPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR YAW
042295,000361: 20,3021 31560 DCA YTMP2
042296,000362: 20,3022 53711 DXCH TMP2
042297,000363: 20,3023 00006 EXTEND
042298,000364: 20,3024 31564 DCA YTMP4
042299,000365: 20,3025 53715 DXCH TMP4
042300,000366: 20,3026 00006 EXTEND
042301,000367: 20,3027 31570 DCA YTMP6
042302,000368: 20,3030 53721 DXCH TMP6
042303,000369:
042304,000370: 20,3031 03247 TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
042305,000371:
042306,000372: 20,3032 31604 DELBARY CAE DELYBAR +1 # UPDATE YAW OFFSET-TRACKER-FILTER
042307,000373: 20,3033 00006 EXTEND
042308,000374: 20,3034 73500 MP E(-AT)
042309,000375: 20,3035 55701 TS DELBRTMP +1
042310,000376: 20,3036 31603 CAE DELYBAR
042311,000377: 20,3037 00006 EXTEND
042312,000378: 20,3040 73500 MP E(-AT)
042313,000379: 20,3041 21701 DAS DELBRTMP
042314,000380: 20,3042 31704 CAE CMDTMP
042315,000381: 20,3043 00006 EXTEND
042316,000382: 20,3044 73477 MP 1-E(-AT)
042317,000383: 20,3045 21701 DAS DELBRTMP
042318,000384:
Page 969 |
042320,000386: 20,3046 03050 YCOPYCYC TCR YCOPY # YAW COPYCYCLE
042321,000387:
042322,000388: 20,3047 15333 YDAPEND TCF RESUME # YAW DAP COMPLETED
042323,000389:
Page 970 |
042325,000391: # YAW TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA YAW TVCDAP OR TVC RESTART PACKAGE)
042326,000392:
042327,000393: 20,3050 25644 YCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (3)
042328,000394: # NOTE POSSIBLE RE-ENTRY FROM RESTART
042329,000395: # PACKAGE, SHOULD A RESTART OCCUR
042330,000396: # DURING YAW COPYCYCLE.
042331,000397:
042332,000398: 20,3051 00006 EXTEND
042333,000399: 20,3052 31707 DCA TMP1
042334,000400: 20,3053 53556 DXCH YTMP1
042335,000401: 20,3054 00006 EXTEND
042336,000402: 20,3055 31711 DCA TMP2
042337,000403: 20,3056 53560 DXCH YTMP2
042338,000404: 20,3057 00006 EXTEND
042339,000405: 20,3060 31713 DCA TMP3
042340,000406: 20,3061 53562 DXCH YTMP3
042341,000407: 20,3062 00006 EXTEND
042342,000408: 20,3063 31715 DCA TMP4
042343,000409: 20,3064 53564 DXCH YTMP4
042344,000410: 20,3065 00006 EXTEND
042345,000411: 20,3066 31717 DCA TMP5
042346,000412: 20,3067 53566 DXCH YTMP5
042347,000413: 20,3070 00006 EXTEND
042348,000414: 20,3071 31721 DCA TMP6
042349,000415: 20,3072 53570 DXCH YTMP6
042350,000416:
042351,000417: 20,3073 00006 YMISC EXTEND # MISC....YAW-RATE-ERROR INTEGRATOR
042352,000418: 20,3074 31703 DCA ERRBTMP
042353,000419: 20,3075 55500 TS AK2 # FOR YAW NEEDLES, SC.AT B-1 REVS
042354,000420: 20,3076 53600 DXCH YERRB
042355,000421:
042356,000422: 20,3077 31704 CAE CMDTMP
042357,000423: 20,3100 55624 TS YCMD
042358,000424:
042359,000425: 20,3101 00006 EXTEND
042360,000426: 20,3102 31701 DCA DELBRTMP
042361,000427: 20,3103 53604 DXCH DELYBAR
042362,000428:
042363,000429: 20,3104 35021 CAF ZERO # YAW COPYCYCLE COMPLETED
042364,000430: 20,3105 55644 TS TVCPHASE # RESET TVCPHASE
042365,000431:
042366,000432: 20,3106 00002 TC Q
042367,000433:
Page 971 |
042369,000435: # SUBROUTINES COMMON TO BOTH PITCH AND YAW DAPS....
042370,000436:
042371,000437: # INITIALIZATION PACKAGE FOR CDURATES....
042372,000438:
042373,000439: 20,3107 22016 DAPINIT LXCH BANKRUPT # T5 RUPT ENTRY (CALLED BY TVCINT4)
042374,000440:
042375,000441: 20,3110 37716 CAF NEGONE # SET UP
042376,000442: 20,3111 61625 AD T5TVCDT # T5 CALL FOR PITCHDAP IN TVCDT SECS
042377,000443: 20,3112 65001 AD NEGMAX # (T5TVCDT = POSMAX - TVCDT/2 +1)
042378,000444: 20,3113 61625 AD T5TVCDT
042379,000445: 20,3114 54030 TS TIME5
042380,000446: 20,3115 33473 CAF PITCHT5 # (BBCON ALREADY THERE)
042381,000447: 20,3116 55312 TS T5LOC
042382,000448:
042383,000449: 20,3117 30033 CAE CDUY # READ AND STORE CDUS FOR DIFFERENTIATOR
042384,000450: 20,3120 55645 TS PCDUYPST # PAST-VALUES
042385,000451: 20,3121 30034 CAE CDUZ
042386,000452: 20,3122 55646 TS PCDUZPST
042387,000453:
042388,000454: 20,3123 15335 TCF NOQRSM
042389,000455:
042390,000456: # BODY-AXIS-ERROR INPUT LIMITER PACKAGE....
042391,000457:
042392,000458: 20,3124 31702 ERRORLIM CAE ERRBTMP # CHECK FOR INPUT-ERROR LIMIT
042393,000459: 20,3125 00006 EXTEND # CHECKS UPPER WORD ONLY
042394,000460: 20,3126 75015 MP 1/ERRLIM
042395,000461: 20,3127 00006 EXTEND
042396,000462: 20,3130 13136 BZF +6
042397,000463: 20,3131 11702 CCS ERRBTMP
042398,000464: 20,3132 35003 CAF ERRLIM
042399,000465: 20,3133 13135 TCF +2
042400,000466: 20,3134 45003 CS ERRLIM
042401,000467: 20,3135 55702 TS ERRBTMP # LIMIT WRITES OVER UPPER WORD ONLY
042402,000468:
042403,000469: 20,3136 00002 TC Q
042404,000470:
042405,000471: # ACTUATOR-COMMAND LIMITER PACKAGE....
042406,000472:
042407,000473: 20,3137 31705 ACTLIM CAE CMDTMP +1 # ROUND UP FOR OUTPUT
042408,000474: 20,3140 60000 DOUBLE
042409,000475: 20,3141 54001 TS L
042410,000476: 20,3142 35021 CAF ZERO
042411,000477: 20,3143 61704 AD CMDTMP
042412,000478:
042413,000479: 20,3144 00006 EXTEND # CHECK FOR ACTUATOR COMMAND LIMIT
042414,000480: 20,3145 73472 MP 1/ACTSAT
042415,000481: 20,3146 00006 EXTEND
Page 972 |
042417,000483: 20,3147 13155 BZF +6
042418,000484: 20,3150 11704 CCS CMDTMP # APPLY LIMITS
042419,000485: 20,3151 33471 CAF ACTSAT
042420,000486: 20,3152 13154 TCF +2
042421,000487: 20,3153 43471 CS ACTSAT
042422,000488: 20,3154 55704 TS CMDTMP # LIMITS WRITE OVER CMDTMP
042423,000489:
042424,000490: 20,3155 00002 TC Q
042425,000491:
042426,000492: # FILTER COMPUTATIONS FOR PRESENT OUTPUT................
042427,000493:
042428,000494: 20,3156 35021 FWDFLTR CAF ZERO
042429,000495: 20,3157 55615 TS DAP1
042430,000496: 20,3160 55617 TS DAP2
042431,000497: 20,3161 55621 TS DAP3
042432,000498: 20,3162 55704 TS CMDTMP
042433,000499:
042434,000500: 20,3163 55700 TS DELBRTMP
042435,000501:
042436,000502: 20,3164 31703 1DAPCAS CAE ERRBTMP +1 # FIRST DAP CASCADE
042437,000503: 20,3165 00006 EXTEND
042438,000504: 20,3166 71723 MP N10 # N10
042439,000505: 20,3167 55616 TS DAP1 +1
042440,000506: 20,3170 31702 CA ERRBTMP
042441,000507: 20,3171 00006 EXTEND
042442,000508: 20,3172 71723 MP N10 # N10
042443,000509: 20,3173 21616 DAS DAP1
042444,000510: 20,3174 53707 DXCH TMP1
042445,000511: 20,3175 21616 DAS DAP1
042446,000512:
042447,000513: 20,3176 31616 2DAPCAS CAE DAP1 +1 # SECOND DAP CASCADE
042448,000514: 20,3177 00006 EXTEND
042449,000515: 20,3200 71730 MP N10 +5 # N20
042450,000516: 20,3201 55620 TS DAP2 +1
042451,000517: 20,3202 31615 CA DAP1
042452,000518: 20,3203 00006 EXTEND
042453,000519: 20,3204 71730 MP N10 +5 # N20
042454,000520: 20,3205 21620 DAS DAP2
042455,000521: 20,3206 53713 DXCH TMP3
042456,000522: 20,3207 21620 DAS DAP2
042457,000523:
042458,000524: 20,3210 31466 CAE DAPDATR1 # TEST FOR LEM ON OR OFF
042459,000525: 20,3211 75002 MASK BIT14
042460,000526: 20,3212 10000 CCS A
042461,000527: 20,3213 13220 TCF 3DAPCAS # LEM ON
042462,000528: 20,3214 00006 EXTEND # LEM OFF
042463,000529: 20,3215 31620 DCA DAP2
042464,000530: 20,3216 53622 DXCH DAP3
042465,000531: 20,3217 13232 TCF OPTVARK
042466,000532:
Page 973 |
042468,000534: 20,3220 31620 3DAPCAS CAE DAP2 +1 # THIRD DAP CASCADE
042469,000535: 20,3221 00006 EXTEND
042470,000536: 20,3222 71735 MP N10 +10D # N30
042471,000537: 20,3223 55622 TS DAP3 +1
042472,000538: 20,3224 31617 CA DAP2
042473,000539: 20,3225 00006 EXTEND
042474,000540: 20,3226 71735 MP N10 +10D # N30
042475,000541: 20,3227 21622 DAS DAP3
042476,000542: 20,3230 53717 DXCH TMP5
042477,000543: 20,3231 21622 DAS DAP3
042478,000544:
042479,000545: 20,3232 41622 OPTVARK CS DAP3 +1 # VARIABLE GAIN PACKAGE
042480,000546: 20,3233 00006 EXTEND # (ALSO, SIGN CHANGE IN FORWARD LOOP)
042481,000547: 20,3234 71641 MP VARK # SCALED AT 1/(8 ASCREV) OF ACTUAL VALUE
042482,000548: 20,3235 55705 TS CMDTMP +1
042483,000549: 20,3236 41621 CS DAP3
042484,000550: 20,3237 00006 EXTEND
042485,000551: 20,3240 71641 MP VARK
042486,000552: 20,3241 21705 DAS CMDTMP
042487,000553:
042488,000554: 20,3242 53705 DXCH CMDTMP # FIX UP SCALING - SCALED B+3 ASCREVS
042489,000555: 20,3243 20001 DDOUBL
042490,000556: 20,3244 20001 DDOUBL
042491,000557: 20,3245 53705 DXCH CMDTMP # - SCALED B+1 ASCREVS
042492,000558: # NOTE - THERE IS AN INHERANT GAIN OF
042493,000559: # (B+1 ASCREVS) ON THE OUTPUT DACS.
042494,000560:
042495,000561: 20,3246 00002 TC Q
042496,000562:
042497,000563: # FILTER PRECOMPUTATIONS FOR NEXT PASS...................
042498,000564:
042499,000565: 20,3247 35021 PRECOMP CAF ZERO # ***** FIRST CASCADE FILTER **********
042500,000566: 20,3250 55611 TS TTMP1
042501,000567: 20,3251 55613 TS TTMP2
042502,000568:
042503,000569: 20,3252 31703 CA ERRBTMP +1 # MULTIPLY INPUT BY
042504,000570: 20,3253 00006 EXTEND
042505,000571: 20,3254 71724 MP N10 +1 # N11/2
042506,000572: 20,3255 55612 TS TTMP1 +1
042507,000573: 20,3256 31702 CA ERRBTMP
042508,000574: 20,3257 00006 EXTEND
042509,000575: 20,3260 71724 MP N10 +1 # N11/2
042510,000576: 20,3261 21612 DAS TTMP1
042511,000577:
042512,000578: 20,3262 41616 CS DAP1 +1 # MULTIPLY OUTPUT BY
042513,000579: 20,3263 00006 EXTEND
042514,000580: 20,3264 71726 MP N10 +3 # D11/2
042515,000581: 20,3265 55614 TS TTMP2 +1
042516,000582: 20,3266 41615 CS DAP1
042517,000583:
Page 974 |
042519,000585: 20,3267 00006 EXTEND
042520,000586: 20,3270 71726 MP N10 +3 # D11/2
042521,000587: 20,3271 21614 DAS TTMP2
042522,000588:
042523,000589: 20,3272 53614 DXCH TTMP2
042524,000590: 20,3273 21612 DAS TTMP1
042525,000591: 20,3274 53612 DXCH TTMP1
042526,000592: 20,3275 20001 DDOUBL
042527,000593: 20,3276 21711 DAS TMP2
042528,000594:
042529,000595: 20,3277 53711 DXCH TMP2
042530,000596: 20,3300 53707 DXCH TMP1
042531,000597:
042532,000598: 20,3301 35021 CAF ZERO
042533,000599: 20,3302 55611 TS TTMP1
042534,000600: 20,3303 55710 TS TMP2
042535,000601:
042536,000602: 20,3304 31703 CA ERRBTMP +1 # MULTIPLY INPUT BY
042537,000603: 20,3305 00006 EXTEND # SECOND-ORDER NUMERATOR COEFF.
042538,000604: 20,3306 71725 MP N10 +2 # N12
042539,000605: 20,3307 55612 TS TTMP1 +1
042540,000606: 20,3310 31702 CA ERRBTMP
042541,000607: 20,3311 00006 EXTEND
042542,000608: 20,3312 71725 MP N10 +2 # N12
042543,000609: 20,3313 21612 DAS TTMP1
042544,000610:
042545,000611: 20,3314 41616 CS DAP1 +1 # MULTIPLY OUTPUT BY
042546,000612: 20,3315 00006 EXTEND
042547,000613: 20,3316 71727 MP N10 +4 # D12
042548,000614: 20,3317 55711 TS TMP2 +1
042549,000615: 20,3320 41615 CS DAP1
042550,000616: 20,3321 00006 EXTEND
042551,000617: 20,3322 71727 MP N10 +4 # D12
042552,000618: 20,3323 21711 DAS TMP2
042553,000619:
042554,000620: 20,3324 53612 DXCH TTMP1
042555,000621: 20,3325 21711 DAS TMP2
042556,000622:
042557,000623: 20,3326 35021 2CASFLTR CAF ZERO # ***** SECOND CASCADE FILTER *****
042558,000624: 20,3327 55611 TS TTMP1
042559,000625: 20,3330 55613 TS TTMP2
042560,000626:
042561,000627: 20,3331 31616 CA DAP1 +1 # MULTIPLY INPUT BY
042562,000628: 20,3332 00006 EXTEND
042563,000629: 20,3333 71731 MP N10 +6 # N21/2
042564,000630: 20,3334 55612 TS TTMP1 +1
042565,000631: 20,3335 31615 CA DAP1
042566,000632: 20,3336 00006 EXTEND
042567,000633: 20,3337 71731 MP N10 +6 # N21/2
Page 975 |
042569,000635: 20,3340 21612 DAS TTMP1
042570,000636:
042571,000637: 20,3341 41620 CS DAP2 +1 # MULTIPLY OUTPUT BY
042572,000638: 20,3342 00006 EXTEND
042573,000639: 20,3343 71733 MP N10 +8D # D21/2
042574,000640: 20,3344 55614 TS TTMP2 +1
042575,000641: 20,3345 41617 CS DAP2
042576,000642: 20,3346 00006 EXTEND
042577,000643: 20,3347 71733 MP N10 +8D # D21/2
042578,000644: 20,3350 21614 DAS TTMP2
042579,000645:
042580,000646: 20,3351 53614 DXCH TTMP2
042581,000647: 20,3352 21612 DAS TTMP1
042582,000648: 20,3353 53612 DXCH TTMP1
042583,000649: 20,3354 20001 DDOUBL
042584,000650: 20,3355 21715 DAS TMP4
042585,000651:
042586,000652: 20,3356 53715 DXCH TMP4
042587,000653: 20,3357 53713 DXCH TMP3
042588,000654:
042589,000655: 20,3360 35021 CAF ZERO
042590,000656: 20,3361 55611 TS TTMP1
042591,000657: 20,3362 55714 TS TMP4
042592,000658:
042593,000659: 20,3363 31616 CA DAP1 +1 # MULTIPLY INPUT BY
042594,000660: 20,3364 00006 EXTEND
042595,000661: 20,3365 71732 MP N10 +7 # N22
042596,000662: 20,3366 55612 TS TTMP1 +1
042597,000663: 20,3367 31615 CA DAP1
042598,000664: 20,3370 00006 EXTEND
042599,000665: 20,3371 71732 MP N10 +7 # N22
042600,000666: 20,3372 21612 DAS TTMP1
042601,000667:
042602,000668: 20,3373 41620 CS DAP2 +1 # MULTIPLY OUTPUT BY
042603,000669: 20,3374 00006 EXTEND
042604,000670: 20,3375 71734 MP N10 +9D # D22
042605,000671: 20,3376 55715 TS TMP4 +1
042606,000672: 20,3377 41617 CS DAP2
042607,000673: 20,3400 00006 EXTEND
042608,000674: 20,3401 71734 MP N10 +9D # D22
042609,000675: 20,3402 21715 DAS TMP4
042610,000676:
042611,000677: 20,3403 53612 DXCH TTMP1
042612,000678: 20,3404 21715 DAS TMP4
042613,000679:
042614,000680: 20,3405 31466 CAE DAPDATR1 # TEST FOR LEM ON OR OFF
042615,000681: 20,3406 75003 MASK BIT13
042616,000682: 20,3407 10000 CCS A
042617,000683: 20,3410 00002 TC Q # EXIT IF LEM OFF
042618,000684:
Page 976 |
042620,000686: 20,3411 35021 3CASFLTR CAF ZERO # ***** THIRD CASCADE FILTER *****
042621,000687: 20,3412 55611 TS TTMP1
042622,000688: 20,3413 55613 TS TTMP2
042623,000689:
042624,000690: 20,3414 31620 CA DAP2 +1 # MULTIPLY INPUT BY (1/2)
042625,000691: 20,3415 00006 EXTEND
042626,000692: 20,3416 71736 MP N10 +11D # N31/2
042627,000693: 20,3417 55612 TS TTMP1 +1
042628,000694: 20,3420 31617 CA DAP2
042629,000695: 20,3421 00006 EXTEND
042630,000696: 20,3422 71736 MP N10 +11D # N31/2
042631,000697: 20,3423 21612 DAS TTMP1
042632,000698:
042633,000699: 20,3424 41622 CS DAP3 +1
042634,000700: 20,3425 00006 EXTEND
042635,000701: 20,3426 71740 MP N10 +13D # D31/2
042636,000702: 20,3427 55614 TS TTMP2 +1
042637,000703: 20,3430 41621 CS DAP3
042638,000704: 20,3431 00006 EXTEND
042639,000705: 20,3432 71740 MP N10 +13D # D31/2
042640,000706: 20,3433 21614 DAS TTMP2
042641,000707:
042642,000708: 20,3434 53614 DXCH TTMP2
042643,000709: 20,3435 21612 DAS TTMP1
042644,000710: 20,3436 53612 DXCH TTMP1
042645,000711: 20,3437 20001 DDOUBL
042646,000712: 20,3440 21721 DAS TMP6
042647,000713:
042648,000714: 20,3441 53721 DXCH TMP6
042649,000715: 20,3442 53717 DXCH TMP5
042650,000716:
042651,000717: 20,3443 35021 CAF ZERO
042652,000718: 20,3444 55611 TS TTMP1
042653,000719: 20,3445 55720 TS TMP6
042654,000720:
042655,000721: 20,3446 31620 CA DAP2 +1 # MULTIPLY INPUT BY
042656,000722: 20,3447 00006 EXTEND
042657,000723: 20,3450 71737 MP N10 +12D # N32
042658,000724: 20,3451 55612 TS TTMP1 +1
042659,000725: 20,3452 31617 CA DAP2
042660,000726: 20,3453 00006 EXTEND
042661,000727: 20,3454 71737 MP N10 +12D # N32
042662,000728: 20,3455 21612 DAS TTMP1
042663,000729:
042664,000730: 20,3456 41622 CS DAP3 +1
042665,000731: 20,3457 00006 EXTEND
042666,000732: 20,3460 71741 MP N10 +14D # D32
042667,000733: 20,3461 55721 TS TMP6 +1
042668,000734: 20,3462 41621 CS DAP3
042669,000735: 20,3463 00006 EXTEND
Page 977 |
042671,000737: 20,3464 71741 MP N10 +14D # D32
042672,000738: 20,3465 21721 DAS TMP6
042673,000739:
042674,000740: 20,3466 53612 DXCH TTMP1
042675,000741: 20,3467 21721 DAS TMP6
042676,000742:
042677,000743: 20,3470 00002 TC Q
042678,000744:
Page 978 |
042680,000746: # CONSTANTS FOR AUTOPILOTS
042681,000747:
042682,000748: # NOTE....1 ASCREV (ACTUATOR CMD SCALING) = 85.41 ARCSEC/BIT OR 1.07975111 REVS (85.41X16384/3600/360)
042683,000749: # 1 SPASCREV (SPECIAL ACTUATOR CMD SCALING) = 1.04620942 REVS
042684,000750:
042685,000751: 20,3471 00375 ACTSAT DEC 253 B-14 # ACTUATOR LIMIT (6 DEG), SC.AT 1ASCREV
042686,000752: 20,3472 00101 1/ACTSAT DEC .0039525692 # RECIPROCAL (1/253)
042687,000753:
042688,000754: 20,3473 5003 ERRLIM EQUALS BIT13 # FILTER INPUT LIMIT....B-3 REVS (45DEG),
042689,000755: 20,3473 5015 1/ERRLIM EQUALS BIT3 # SC.AT B-1 REV, AND ITS RECIPROCAL
042690,000756:
042691,000757: 20,3473 02530 PITCHT5 GENADR PITCHDAP # UPPER WORDS OF T5 2CADRS, LOWER WORDS
042692,000758: 20,3474 03107 DAPT5 GENADR DAPINIT # (BBCON) ALREADY THERE. ORDER IS
042693,000759: 20,3475 02732 YAWT5 GENADR YAWDAP # REQUIRED.
042694,000760:
042695,000761: 20,3476 00115 1/RTLIM DEC 0.004715 # .004715(CDUDIF) = 0 IF CDUDIF < 2.33 DEG
042696,000762: 20,3477 00243 1-E(-AT) OCT 00243 # AT = .01SEC....EITHER(1/A=4SEC, T=40MS),
042697,000763: 20,3500 37535 E(-AT) OCT 37535 # OR(1/A=8SEC, T=80MS)
042698,000764:
End of include-file TVCDAPS.agc. Parent file is MAIN.agc