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