Source Code
These source-code files are part of a reconstructed copy of Comanche 67, the
Apollo Guidance Computer (AGC) Command Module (CM) software for Apollo 12.
They have been adapted from sources files for Comanche 55, and updated via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-1081, 2003972-1091, 2003972-1111, 2003972-1121, 2003972-1131, and 2003972-1141. Since only binary dumps (rather than listings) of Comanche 67 are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
045054,000002: ## Copyright: Public domain.
045055,000003: ## Filename: CM_ENTRY_DIGITAL_AUTOPILOT.agc
045056,000004: ## Purpose: A section of Comanche revision 067.
045057,000005: ## It is part of the reconstructed source code for the flight
045058,000006: ## software for the Command Module's (CM) Apollo Guidance Computer
045059,000007: ## (AGC) for Apollo 12. No original listings of this program are
045060,000008: ## available; instead, this file was created via dissassembly of
045061,000009: ## dumps of Comanche 067 core rope modules and comparison with
045062,000010: ## other AGC programs.
045063,000011: ## Assembler: yaYUL
045064,000012: ## Contact: Ron Burkey <info@sandroid.org>.
045065,000013: ## Website: www.ibiblio.org/apollo/index.html
045066,000014: ## Mod history: 2023-08-16 MAS Created from Comanche 055.
045067,000015:
045068,000016: # SUBROUTINE TO READ GYMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2S COMPLEMENT, BUT THE
045069,000017: # DIFFERENCES ARE IN 1S COMP. ENTER AND READ ANGLES EACH .1 SEC.
045070,000018:
045071,000019: # CM/DSTBY = 1 FOR DAP OPERATION
045072,000020: # CM/DSTBY = 0 TO TERMINATE DAP OPERATION.
045073,000021:
045074,000022: 15,2454 BANK 15
045075,000023:
045076,000024: 15,2000 SETLOC ETRYDAP
045077,000025: 15,2000 BANK
045078,000026:
045079,000027: 15,2454 COUNT 15/DAPEN
045080,000028:
045081,000029: 15,2454 E6,1661 EBANK= AOG
045082,000030:
045083,000031: 15,2454 34377 READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO
045084,000032: 15,2455 27725 ADS CM/GYMDT # PIPTIME. (GROUP 6)
045085,000033:
045086,000034: # IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE
045087,000035: # PHASCHNG PROTECTION IS IN CM/DAPIC.
045088,000036:
045089,000037: 15,2456 35026 CA BIT6 # CHECK FOR FINE ALIGN MODE OF CDU.
045090,000038: 15,2457 71321 MASK IMODES33 # (PROTECT AOG/PIP ETC AS WELL AS
045091,000039: 15,2460 00006 EXTEND # GIMBAL DIFFERENCES)
045092,000040: 15,2461 12467 BZF READGYM1 # OK
045093,000041:
045094,000042: 15,2462 45033 CS BIT1 # NOT IN FINE ALIGN, SO IDLE.
045095,000043: 15,2463 70102 MASK CM/FLAGS # SET GYMDIFSW = 0
045096,000044: 15,2464 54102 TS CM/FLAGS
045097,000045: 15,2465 06000 TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE.
045098,000046: 15,2466 02534 TC CM/GYMIC +2
045099,000047:
045100,000048: 15,2467 30032 READGYM1 CA CDUX
045101,000049: 15,2470 57661 XCH AOG
045102,000050: 15,2471 00006 EXTEND
045103,000051: 15,2472 21661 MSU AOG # -DELAOG=AOG(N-1) - AOG(N)
045104,000052: 15,2473 55675 TS -DELAOG
045105,000053:
045106,000054: 15,2474 30033 CA CDUY
045107,000055: 15,2475 57662 XCH AIG
045108,000056: 15,2476 00006 EXTEND
045109,000057: 15,2477 21662 MSU AIG
045110,000058: 15,2500 55676 TS -DELAIG
045111,000059:
045112,000060: 15,2501 30034 CA CDUZ
045113,000061: 15,2502 57663 XCH AMG
045114,000062: 15,2503 00006 EXTEND
045115,000063: 15,2504 21663 MSU AMG
045116,000064: 15,2505 55677 TS -DELAMG
045117,000065:
045118,000066: 15,2506 40102 DOBRATE? CS CM/FLAGS # CM/DSTBY=103D BIT2 GYMDIFSW=104D BIT1
045119,000067: 15,2507 76214 MASK THREE
045120,000068: 15,2510 50000 INDEX A
045121,000069: 15,2511 02512 TC +1
045122,000070: 15,2512 02521 TC DOBRATE # OK, GO ON
045123,000071: 15,2513 02532 TC CM/GYMIC # DONT CALC BODYRATE ON FIRST PASS.
045124,000072: 15,2514 12515 NOOP
045125,000073: 15,2515 06000 TC FLUSHJET # TURN OFF ALL JETS
045126,000074:
045127,000075: 15,2516 05426 TC PHASCHNG
045128,000076: 15,2517 00006 OCT 00006 # DEACTIVATE DAP GROUP 6.
045129,000077:
045130,000078: 15,2520 05340 TC TASKOVER
045131,000079:
045132,000080: 15,2521 35033 DOBRATE CA ONE # DO BODYRATE
045133,000081: 15,2522 55720 DOBRATE1 TS JETEM # SKIP BODYRATE.
045134,000082:
045135,000083: 15,2523 34377 CA TEN # KEEP CDU READ GOING.
045136,000084: 15,2524 05261 TC WAITLIST
045137,000085: 15,2525 E6,1661 EBANK= AOG
045138,000086: 15,2525 02454 32066 2CADR READGYMB
045139,000087:
045140,000088: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
045141,000089:
045142,000090: 15,2527 11720 CCS JETEM
045143,000091: 15,2530 02556 TC BODYRATE
045144,000092: 15,2531 05340 TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES)
045145,000093:
045146,000094: 15,2532 26102 CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0
045147,000095: 15,2533 35035 CAF ZERO
045148,000096: 15,2534 55711 TS JETAG
045149,000097: 15,2535 55706 TS OLDELP
045150,000098: 15,2536 55707 TS OLDELQ
045151,000099: 15,2537 55710 TS OLDELR
045152,000100: 15,2540 55723 TS GAMDOT # NO GYM DIF, PROB NO GAM DIF.
045153,000101: 15,2541 02522 TC DOBRATE1
045154,000102:
045155,000103: # COME HERE TO CORRECT FOR OVERFLOW IN ANGULAR CALCULATIONS
045156,000104:
045157,000105: 15,2542 54001 ANGOVCOR TS L # THIS COSTS 2 MCT TO USE.
045158,000106: 15,2543 00002 TC Q # NO OVFL
045159,000107: 15,2544 50000 INDEX A
045160,000108: 15,2545 35014 CAF LIMITS
045161,000109: 15,2546 26001 ADS L
045162,000110: 15,2547 00002 TC Q
045163,000111:
045164,000112: 6000 BLOCK 3
045165,000113:
045166,000114: 6000 COUNT 03/DAPEN
045167,000115:
045168,000116: 6000 30007 FLUSHJET CA 7 # COME HERE TO TURN OFF ALL JETS.
045169,000117: 6001 00006 EXTEND
045170,000118: 6002 01006 WRITE ROLLJETS # ZERO CHANNEL 6
045171,000119: 6003 00006 EXTEND
045172,000120: 6004 01005 WRITE PYJETS # ZERO CHANNEL 5
045173,000121: 6005 00002 TC Q
045174,000122:
045175,000123: 15,2550 BANK 15
045176,000124:
045177,000125: 15,2550 COUNT 15/DAPEN
045178,000126:
045179,000127: 15,2000 SETLOC ETRYDAP
045180,000128: 15,2000 BANK
045181,000129:
045182,000130: 15,2550 40000 RATEAVG COM # SUBROUTINE TO ESTIMATE RATES IN PRESENCE
045183,000131: 15,2551 61720 AD JETEM # OF CONSTANT ACCELERATION.
045184,000132: 15,2552 00006 EXTEND
045185,000133: 15,2553 75016 MP HALF # DELV (EST) = DELV +(DELV-OLDELV)/2
045186,000134: 15,2554 61720 AD JETEM
045187,000135: 15,2555 00002 TC Q
045188,000136:
045189,000137: # THESE ARE CALLED FOR THE VARIOUS INITIALIZATIONS NEEDED.
045190,000138:
045191,000139: 20,3651 BANK 20
045192,000140: 20,2000 SETLOC DAPS1
045193,000141: 20,2000 BANK
045194,000142:
045195,000143: 20,3651 COUNT 20/DAPEN
045196,000144: 20,3651 E6,1661 EBANK= AOG
045197,000145:
045198,000146: 20,3651 35073 CM/DAPON CA EBAOG
045199,000147: 20,3652 54003 TS EBANK
045200,000148:
045201,000149: 20,3653 05574 TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER.
045202,000150: 20,3654 00132 ADRES DAPBIT1 # BIT 15 FLAG 6 CMFLAGS.
045203,000151: 20,3655 05574 TC DOWNFLAG # RESET DAPBIT2
045204,000152: 20,3656 00133 ADRES DAPBIT2 # BIT 14 FLAG 6
045205,000153: 20,3657 00006 EXTEND
045206,000154: 20,3660 33776 DCA T5IDLER1 # DISABLE RCS CALCULATION
045207,000155: 20,3661 53313 DXCH T5LOC
045208,000156: 20,3662 00006 EXTEND
045209,000157: 20,3663 33776 DCA T5IDLER1 # DISABLE RCS JET CALLS
045210,000158: 20,3664 53311 DXCH T6LOC
045211,000159:
045212,000160: 20,3665 06000 TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS.
045213,000161:
045214,000162: 20,3666 47707 CS 13,14,15
045215,000163: 20,3667 71466 MASK DAPDATR1 # SET CONFIG BITS=0 FOR ENTRY
045216,000164: 20,3670 55466 TS DAPDATR1
045217,000165: 20,3671 03675 TC +4
045218,000166:
045219,000167: 20,3672 35052 NOTYET CA .5SEC
045220,000168: 20,3673 04676 TC BANKCALL
045221,000169: 20,3674 01732 CADR DELAYJOB # (DELAYJOB DOES INHINT)
045222,000170: 20,3675 35021 +4 CA BIT11 # GAMDIFSW = 94D BIT11, INITLY=0
045223,000171: 20,3676 70102 MASK CM/FLAGS # IF ZERO, WAIT UNTIL CM/POSE UPDATE.
045224,000172: 20,3677 00006 EXTEND
045225,000173: 20,3700 13672 BZF NOTYET
045226,000174:
045227,000175: 20,3701 45033 CS ONE # ACTIVATE CM/DAP
045228,000176: 20,3702 55501 TS RCSFLAGS # USE BIT3 TO INITIALIZE NEEDLER ON
045229,000177: # NEXT PASS.
045230,000178: 20,3703 55727 TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL
045231,000179: # HEADSUP IS SET IN P62.
045232,000180:
045233,000181: # FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62.
045234,000182:
045235,000183: 20,3704 30007 CA 7
045236,000184: 20,3705 55711 TS JETAG
045237,000185: 20,3706 55713 TS PAXERR1 # KEEP NEEDLES ZERO UNTIL DAP UPDATE
045238,000186: # IN CASE CMDAPMOD IS NOT +1.
045239,000187: 20,3707 00004 INHINT
045240,000188: 20,3710 00006 EXTEND
045241,000189: 20,3711 31666 DCA ALFA/180 # DO ATTITUDE HOLD UNTIL KEYBOARD
045242,000190: 20,3712 53604 DXCH ALFACOM # ESTABLISHES HEADSUP.
045243,000191: 20,3713 31664 CA ROLL/180
045244,000192: 20,3714 55717 TS ROLLHOLD # FOR ATTITUDE HOLD IN MODE +1.
045245,000193: 20,3715 00006 EXTEND
045246,000194: 20,3716 75016 MP HALF
045247,000195: 20,3717 55715 TS ROLLC # NOT INTERESTED IN LO WORD.
045248,000196:
045249,000197: 20,3720 40102 CS CM/FLAGS
045250,000198: 20,3721 75020 MASK BIT12 # CMDAPARM =93D BIT12 INITLY=0
045251,000199: 20,3722 26102 ADS CM/FLAGS # SET BIT TO 1.
045252,000200:
045253,000201: 20,3723 40076 CS FLAGWRD2 # SET NODOFLAG TO PREVENT FURTHER
045254,000202: 20,3724 75033 MASK BIT1 # V 37 ENTRIES.
045255,000203: 20,3725 26076 ADS FLAGWRD2
045256,000204:
045257,000205: 20,3726 00003 RELINT
045258,000206:
045259,000207: 20,3727 04715 TC POSTJUMP
045260,000208: 20,3730 54335 CADR P62.1
045261,000209:
045262,000210: # INITIALIZE CM/DAP. WAITLIST CALL FOR READGYMB. SET SWITCH CM/DSTBY =1
045263,000211: # SO READACCS WILL ENTER A WTLST CALL FOR SETJTAG .
045264,000212: # CMDAPARM = 0, SO ONLY BODY RATE AND ATTITUDE CALCULATIONS ARE DONE.
045265,000213: # SET AVEGEXIT TO CONTINUE AT CM/POSE
045266,000214:
045267,000215: 20,3731 35073 CM/DAPIC CA EBAOG
045268,000216: 20,3732 54003 TS EBANK
045269,000217:
045270,000218: 20,3733 00004 INHINT
045271,000219: 20,3734 41205 CM/DAP2C CS PIPTIME +1
045272,000220: # PRIO OF P62 L PRIO AVG,:PIPTM=PIPTM1
045273,000221: 20,3735 55720 TS JETEM
045274,000222:
045275,000223: 20,3736 35016 CA POS1/2
045276,000224: 20,3737 65016 AD POS1/2
045277,000225: 20,3740 60025 AD TIME1 # OVFL GUARANTEED
045278,000226: 20,3741 27720 ADS JETEM # C(A) = DELTA TIME SINCE PIPUP
045279,000227:
045280,000228: 20,3742 45036 CS FIVE
045281,000229: 20,3743 61720 AD JETEM
045282,000230: 20,3744 10000 CCS A
045283,000231: 20,3745 63774 AD -CDUT+1
045284,000232: 20,3746 13744 TCF -2
045285,000233: 20,3747 13750 NOOP
045286,000234: 20,3750 65033 AD ONE # SEND NO ZERO TO WTLST
045287,000235: 20,3751 55725 TS CM/GYMDT # FOR RESTART
045288,000236: 20,3752 05261 TC WAITLIST
045289,000237: 20,3753 E6,1661 EBANK= AOG
045290,000238: 20,3753 02454 32066 2CADR READGYMB
045291,000239:
045292,000240: 20,3755 43773 CS CM/SWIC1 # GAMDIFSW, GYMDIFSW, CM/DSTBY
045293,000241: 20,3756 70102 MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP
045294,000242: 20,3757 64377 AD CM/SWIC2 # SET CM/DSTBY, LATSW
045295,000243: # DISABLE ENTRY DISPLAY, SINCE DES. GIMB.
045296,000244: # CALC. (P62.3) GOES TO ENDEXIT.
045297,000245: 20,3760 54102 TS CM/FLAGS
045298,000246:
045299,000247: 20,3761 30007 CA 7
045300,000248: 20,3762 55666 TS BETA/180 # NECESSARY: NO OVFL CORRECTION
045301,000249: 20,3763 35033 CA ONE # INITIALIZE THE TM OF BODY RATES VIA
045302,000250: 20,3764 54305 TS SW/NDX # UPBUFF.
045303,000251:
045304,000252: 20,3765 05406 TC 2PHSCHNG # DOES INHINT/RELINT
045305,000253: 20,3766 40116 OCT 40116 # SAVE TBASE6
045306,000254: 20,3767 05024 OCT 05024
045307,000255: 20,3770 13000 OCT 13000
045308,000256:
045309,000257: 20,3771 04715 TC POSTJUMP
045310,000258: 20,3772 54321 CADR P62.2
045311,000259:
045312,000260: 20,3773 16017 CM/SWIC1 OCT 16017
045313,000261: 20,3774 4377 CM/SWIC2 = TEN # 00012: CM/DSTBY, LATSW
045314,000262: 20,3774 77766 -CDUT+1 OCT 77766
045315,000263: 20,3775 1312 EBANK= T5LOC
045316,000264: 20,3775 03155 12062 T5IDLER1 2CADR T5IDLOC
045317,000265:
045318,000266: # THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES
045319,000267: # XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQUIREMENT: TEMPORARY ERASE. JETEM, JETEM +1
045320,000268:
045321,000269: # SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS,
045322,000270: # THE 0.1 SEC DAPS WILL MISS A CYCLE, AND WILL PICK UP AT THE NEXT 0.1 SEC UPDATE. MOST OF THE TIME THE 2 SEC
045323,000271: # ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS
045324,000272: # STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE.
045325,000273: # THIS IS NECESSARY UNDER THE GROUNDRULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS.
045326,000274:
045327,000275: 20,3777 E6,1661 EBANK= AOG
045328,000276: 15,2556 BANK 15
045329,000277: 15,2000 SETLOC ETRYDAP
045330,000278: 15,2000 BANK
045331,000279:
045332,000280: 15,2556 COUNT 15/DAPEN
045333,000281:
045334,000282: 15,2556 31663 BODYRATE CA AMG # THESE ARE 2S COMPL NOS, BUT USE ANYWAY.
045335,000283: 15,2557 05110 TC SPCOS
045336,000284: 15,2560 55511 TS COSM
045337,000285:
045338,000286: 15,2561 31661 CA AOG # C(AOG) = AOG/180
045339,000287: 15,2562 05111 TC SPSIN # SINO
045340,000288: 15,2563 55512 TS SINO # SINO = SIN(AOG)
045341,000289:
045342,000290: 15,2564 00006 EXTEND
045343,000291: 15,2565 71511 MP COSM
045344,000292: 15,2566 55514 TS SINOCOSM # SO CM
045345,000293:
045346,000294: 15,2567 31661 CA AOG
045347,000295: 15,2570 05110 TC SPCOS # COSO
045348,000296: 15,2571 55513 TS COSO
045349,000297:
045350,000298: 15,2572 00006 EXTEND
045351,000299: 15,2573 71511 MP COSM
045352,000300: 15,2574 55515 TS COSOCOSM # CO CM
045353,000301:
045354,000302: # PITCHDOT: Q TCDU/180 = IDOT TCDU/180 COSO COSM + MDOT TCDU/180 SINO
045355,000303:
045356,000304: 15,2575 41677 CS -DELAMG
045357,000305: 15,2576 00006 EXTEND
045358,000306: 15,2577 71512 MP SINO
045359,000307: 15,2600 53721 DXCH JETEM # 2 LOCS _
045360,000308: 15,2601 41676 CS -DELAIG
045361,000309: 15,2602 00006 EXTEND
045362,000310: 15,2603 71515 MP COSOCOSM
045363,000311: 15,2604 21721 DAS JETEM
045364,000312: 15,2605 31720 CA JETEM
045365,000313: 15,2606 57707 XCH OLDELQ
045366,000314: 15,2607 02550 TC RATEAVG
045367,000315: 15,2610 55702 TS QREL # PITCHDOT = Q TCDU/180
045368,000316:
045369,000317: # YAWDOT: R TCDU/180 = -IDOT TCDU/180 COSM SINO + MDOT TCDU/180 COSO
045370,000318:
045371,000319: 15,2611 41677 CS -DELAMG
045372,000320: 15,2612 00006 EXTEND
045373,000321: 15,2613 71513 MP COSO
045374,000322: 15,2614 53721 DXCH JETEM
045375,000323: 15,2615 31676 CA -DELAIG
045376,000324: 15,2616 00006 EXTEND
045377,000325: 15,2617 71514 MP SINOCOSM
045378,000326: 15,2620 21721 DAS JETEM
045379,000327: 15,2621 31720 CA JETEM
045380,000328: 15,2622 57710 XCH OLDELR
045381,000329: 15,2623 02550 TC RATEAVG
045382,000330: 15,2624 55703 TS RREL # YAWDOT = R TCDU/180
045383,000331:
045384,000332: # ROLLDOT: P TCDU/180 = ODOT TCDU/180 + IDOT TCDU/180 SINM
045385,000333:
045386,000334: 15,2625 31663 CA AMG
045387,000335: 15,2626 05111 TC SPSIN
045388,000336: 15,2627 55510 TS SINM
045389,000337:
045390,000338: 15,2630 00006 EXTEND
045391,000339: 15,2631 71676 MP -DELAIG
045392,000340: 15,2632 55720 TS JETEM
045393,000341: 15,2633 35035 CA ZERO
045394,000342: 15,2634 20001 DDOUBL # ROUND L INTO A
045395,000343: 15,2635 61675 AD -DELAOG
045396,000344: 15,2636 61720 AD JETEM
045397,000345: 15,2637 40000 CS A
045398,000346: 15,2640 55720 TS JETEM
045399,000347: 15,2641 57706 XCH OLDELP
045400,000348: 15,2642 02550 TC RATEAVG
045401,000349: 15,2643 55701 TS PREL # ROLLDOT = P TCDU/180
045402,000350:
045403,000351: # IF GAMDOT < 0.5 DEG/SEC, THEN GAMDOT =0
045404,000352:
045405,000353: 15,2644 11723 CCS GAMDOT
045406,000354: 15,2645 02647 TC +2
045407,000355: 15,2646 02671 TC NOGAMDUT
045408,000356: 15,2647 41664 CS ROLL/180
045409,000357: 15,2650 05111 TC SPSIN
045410,000358: 15,2651 00006 EXTEND
045411,000359: 15,2652 71723 MP GAMDOT
045412,000360: 15,2653 55721 TS JETEM +1 # -SR GAMDOT
045413,000361: 15,2654 00006 EXTEND
045414,000362: 15,2655 73217 MP SINTRIM # SIN(-20) (FOR NOMINAL L/D = .3)
045415,000363: 15,2656 27701 ADS PREL # PREL TCDU/180=(P-SALF SR GAMDOT)TCDU/180
045416,000364:
045417,000365: 15,2657 31664 CA ROLL/180
045418,000366: 15,2660 05110 TC SPCOS
045419,000367: 15,2661 40000 COM
045420,000368: 15,2662 00006 EXTEND
045421,000369: 15,2663 71723 MP GAMDOT
045422,000370: 15,2664 27702 ADS QREL # QREL TCDU/180=(Q-CR GAMDOT) TCDU/180
045423,000371:
045424,000372: 15,2665 41721 CS JETEM +1 # B( ) = -SR GAMDOT
045425,000373: 15,2666 00006 EXTEND
045426,000374: 15,2667 73220 MP COSTRIM # COS(-20) (FOR NOMINAL L/D = .3)
045427,000375: 15,2670 27703 ADS RREL # RREL TCDU/180=(R+CALF SR GAMDOT)TCDU/180
045428,000376:
045429,000377: 15,2671 35020 NOGAMDUT CA BIT12 # CMDAPARM = 93D BIT 12
045430,000378: 15,2672 70102 MASK CM/FLAGS
045431,000379: 15,2673 00006 EXTEND
045432,000380: 15,2674 15340 STBYDUMP BZF TASKOVER # DAP NOT ARMED.
045433,000381:
045434,000382: 15,2675 35013 CA POSMAX # PICK UP AT ATTRATES IN 10 MS OR SO.
045435,000383: 15,2676 54030 TS TIME5
045436,000384:
045437,000385: 15,2677 00006 EXTEND
045438,000386: 15,2700 32704 DCA ATDOTCAD
045439,000387: 15,2701 53313 DXCH T5LOC
045440,000388: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
045441,000389:
045442,000390: 15,2702 05340 TC TASKOVER
045443,000391:
045444,000392: 15,2703 E6,1661 EBANK= AOG
045445,000393: 15,2703 02705 32066 ATDOTCAD 2CADR ATTRATES
045446,000394:
045447,000395: # CALCULATE BODY ATTITUDE RATES AND INTEGRATE TO OBTAIN ATTITUDE ANGLES.
045448,000396:
045449,000397: # CB PHIDOT TCDU/180 = (CA PREL + SA RREL) TCDU/180
045450,000398: # BETADOT TCDU/180 = (-SA PREL + CA RREL) TCDU/180
045451,000399: # ALFADOT TCDU = (QREL + SB PHIDOT) TCDU/180
045452,000400:
045453,000401: 15,2705 22016 ATTRATES LXCH BANKRUPT # CONTINUE HERE VIA T5
045454,000402: 15,2706 00006 EXTEND # TASK MAY BE SKIPPED AT RESTART.
045455,000403: 15,2707 22012 QXCH QRUPT
045456,000404: 15,2710 30021 CA SR
045457,000405: 15,2711 60000 DOUBLE
045458,000406: 15,2712 55623 TS CM/SAVE
045459,000407: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
045460,000408:
045461,000409: 15,2713 31702 CA QREL
045462,000410: 15,2714 61665 AD ALFA/180
045463,000411: 15,2715 02542 TC ANGOVCOR
045464,000412: 15,2716 55665 TS ALFA/180
045465,000413: 15,2717 05110 TC SPCOS
045466,000414: 15,2720 55506 TS CALFA # CALFA
045467,000415: 15,2721 55705 TS PHIDOT
045468,000416:
045469,000417: 15,2722 00006 EXTEND
045470,000418: 15,2723 71701 MP PREL
045471,000419: 15,2724 57705 XCH PHIDOT # CA PREL
045472,000420: 15,2725 00006 EXTEND
045473,000421: 15,2726 71703 MP RREL # CA RREL
045474,000422: 15,2727 55704 TS BETADOT
045475,000423:
045476,000424: 15,2730 31665 CA ALFA/180
045477,000425: 15,2731 05111 TC SPSIN
045478,000426: 15,2732 55507 TS SALFA # SIN(ALFA)
045479,000427:
045480,000428: 15,2733 00006 EXTEND
045481,000429: 15,2734 71703 MP RREL # SA RREL
045482,000430: 15,2735 27705 ADS PHIDOT # CB PHIDOT, SAVED.
045483,000431:
045484,000432: 15,2736 41507 CS SALFA
045485,000433: 15,2737 00006 EXTEND
045486,000434: 15,2740 71701 MP PREL
045487,000435: 15,2741 27704 ADS BETADOT # SAVE BETADOT TCDU/180
045488,000436: 15,2742 27666 ADS BETA/180 # BETA DONE.
045489,000437:
045490,000438: 15,2743 05111 TC SPSIN
045491,000439: 15,2744 00006 EXTEND
045492,000440: 15,2745 71705 MP PHIDOT # NEGLECT CB IN CB PHIDOT
045493,000441: 15,2746 61665 AD ALFA/180
045494,000442: 15,2747 02542 TC ANGOVCOR
045495,000443: 15,2750 55665 TS ALFA/180 # ALFA DONE.
045496,000444: 15,2751 40000 COM
045497,000445: 15,2752 61603 AD ALFACOM
045498,000446: 15,2753 02542 TC ANGOVCOR # JUST IN CASE ...
045499,000447: 15,2754 55477 TS AK1
045500,000448: 15,2755 55572 TS QAXERR # FOR PITCH FDAI AND EDIT.
045501,000449:
045502,000450: 15,2756 31705 CA PHIDOT # PHIDOT TCDU/180, NEGLECTING CB
045503,000451: 15,2757 61664 AD ROLL/180
045504,000452: 15,2760 02542 TC ANGOVCOR
045505,000453: 15,2761 55714 TS ROLLTM # ROLL/180 FOR TM.
045506,000454: 15,2762 55664 TS ROLL/180 # ROLL DONE.
045507,000455:
045508,000456: # START YAW AUTOPILOT HERE. RATE DAMPING WITH ENFORCED COORDINATED ROLL MANEUVER.
045509,000457:
045510,000458: 15,2763 41666 CS BETA/180 # IF IN ATM, SAVE 'RAXERR' FOR TM DNLST.
045511,000459: 15,2764 61604 AD BETACOM
045512,000460: 15,2765 55573 TS RAXERR # IF OUTSIDE ATM, USE TM REGISTER 'RAXERR'
045513,000461: # AS A TEMPORARY. (DAP OPERATION IS IN INTERRUPT, SO
045514,000462: # IS OK.) FINAL C(RAXERR) AT END OF DAP CYCLE WILL
045515,000463: # BE R-AXIS ERROR.
045516,000464:
045517,000465: 15,2766 35031 CA BIT3 # .05GSW = 102D BIT3 SW=0, LESS .05G
045518,000466: 15,2767 70102 MASK CM/FLAGS # SWITCH =1, GREATER THAN .05 G
045519,000467: 15,2770 00006 EXTEND
045520,000468: 15,2771 13057 BZF EXDAP # IF G LESS THAN .05
045521,000469: 15,2772 45033 CS ONE # IF G GEQ THAN .05
045522,000470: 15,2773 55700 TS CMDAPMOD # SAVE -1 FOR USE IN CM/RCS
045523,000471:
045524,000472: 15,2774 55477 TS AK1 # TO ZERO PITCH AND YAW FDAI NEEDLES
045525,000473: 15,2775 55500 TS AK2 # IN ATM. (MODE =-1)
045526,000474:
045527,000475: 15,2776 41701 CS PREL # YAW ERROR = RREL - PREL TAN(ALFA)
045528,000476: 15,2777 00006 EXTEND
045529,000477: 15,3000 73217 MP SINTRIM # LET SIN(-20) BE APPROX FOR TAN(-20)
045530,000478: 15,3001 61703 AD RREL
045531,000479: 15,3002 03047 TC 2D/SDZ # GO TEST DZ. GET TAG: +0 IF IN DZ
045532,000480: 15,3003 50000 INDEX A # +/- 1 IF NOT
045533,000481: 15,3004 33222 CAF YJETCODE
045534,000482:
045535,000483: 15,3005 55720 TS JETEM
045536,000484:
045537,000485: # START PITCH AUTOPILOT HERE. RATE DAMPING ONLY.
045538,000486:
045539,000487: 15,3006 31702 CA QREL
045540,000488: 15,3007 03047 TC 2D/SDZ
045541,000489: 15,3010 50000 EXDAPIN INDEX A # COME HERE FROM EX ATM DAP
045542,000490: 15,3011 33225 CAF P/RJCODE
045543,000491: 15,3012 27720 ADS JETEM # COMBINE ALL NEW BITS.
045544,000492:
045545,000493: 15,3013 00006 EXTEND # DOES NOT REQUIRE SAVING OLD CODES.
045546,000494: 15,3014 01005 WRITE PYJETS # SET PYCHAN TO DESIRED BIT CONFIG.
045547,000495:
045548,000496: 15,3015 11711 CCS JETAG
045549,000497: 15,3016 03236 TC CM/RCS
045550,000498: 15,3017 03717 TC CM/FDAI
045551,000499: 15,3020 03724 TC CM/FDAIR -1 # (JETAG=-1 EQUIVALENT TO CMDAPMOD=+1)
045552,000500:
045553,000501: # DEAD ZONE LOGIC USED BY ENTRY DIGITAL AUTOPILOTS.
045554,000502:
045555,000503: 15,3021 10000 3DDZ CCS A # YAWLIM=1.0-3/180=16384-273=16111
045556,000504: 15,3022 63215 AD YAWLIM
045557,000505: 15,3023 13053 TCF DZCOM
045558,000506: 15,3024 63215 AD YAWLIM
045559,000507: 15,3025 13054 TCF DZNOCOM
045560,000508:
045561,000509: # BIASED DZ FOR EXT ATM DAP.
045562,000510: 15,3026 55624 BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L.
045563,000511: 15,3027 10000 CCS A # START ERROR DZ.
045564,000512: 15,3030 43214 CS CM/BIAS # = .6/180
045565,000513: 15,3031 13033 TCF +2
045566,000514: 15,3032 33214 CA CM/BIAS
045567,000515: 15,3033 60001 AD L # BIAS THE ERROR.
045568,000516: 15,3034 22002 LXCH Q # SAVE CALLERS RETURN ADDRESS.
045569,000517: 15,3035 03021 TC 3DDZ # GO GENERATE THE ERROR BIT.
045570,000518: 15,3036 52002 DXCH L # BIT TO L, RESTORE CALLERS Q.
045571,000519: 15,3037 11624 4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT
045572,000520: 15,3040 63212 AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE
045573,000521: 15,3041 13043 TCF +2 # JET BITS ACCORDING TO SGN OF RATE.
045574,000522: 15,3042 63212 AD 4D/SLIM
045575,000523: 15,3043 54000 TS A
045576,000524: 15,3044 13046 TCF +2 # RATE OK. CONTINUE
045577,000525: 15,3045 22007 ZL # RATE GEQ 4 D/S. OVER RIDE ERROR BIT
045578,000526: 15,3046 57624 XCH JETEM2 # AND CONTINUE TO GET SIGN.
045579,000527:
045580,000528: 15,3047 10000 2D/SDZ CCS A # COME HERE TO TEST IF A WITHIN 2DEG/S DZ
045581,000529: 15,3050 63213 AD YDOTLIM # 1.0 - YDOT DZ (OR PDOT)
045582,000530: 15,3051 13054 TCF +3
045583,000531: 15,3052 63213 AD YDOTLIM # YDOT DZ = 2 DEG/SEC
045584,000532: 15,3053 40000 DZCOM COM
045585,000533: 15,3054 55721 DZNOCOM TS JETEM +1 # GENERATE TAG, SET C(A)= -+1 OUTSIDE DZ
045586,000534: 15,3055 35035 CA ZERO # SET C(A) = +0 INSIDE
045587,000535: 15,3056 00002 TC Q
045588,000536:
045589,000537: # EXTRA ATMOSPHERIC DIGITAL AUTOPILOT
045590,000538:
045591,000539: # 1. IF ABS(CALF) -C(45) POS, USE IF CALFA POS, CMDAPMOD= +0
045592,000540: # BETA: YAW ERROR = SGN(CALF) (BETACOM -BETA) IF CALFA NEG, CMDAPMOD= -0
045593,000541: # RATE = BETADOT IF CMDAPMOD = -0, RATE = RREL
045594,000542: # R-AXIS = CONTROL
045595,000543:
045596,000544: # ROLL: ROLL ERROR = SGN(CALF) (ROLLC - ROLL) IF CMDAPMOD = -0, RATE DAMP ONLY.
045597,000545: # RATE = PREL
045598,000546: # P-AXIS = CONTROL
045599,000547:
045600,000548: # 2. IF C(45) GEQ CALFA GEQ -C(45), USE CMDAPMOD = +1
045601,000549: # BETA: ROLL ERROR = SGN(-SALF) (BETACOM -BETA)
045602,000550: # RATE = BETADOT
045603,000551: # P-AXIS = CONTROL
045604,000552:
045605,000553: # ROLL: YAW ERROR = SGN(SALF) (ROLLC - ROLL) RATE DAMP ONLY.
045606,000554: # RATE = RREL
045607,000555: # R-AXIS = CONTROL
045608,000556:
045609,000557: # 3. FOR ALL CASES, USE
045610,000558: # ALFA: PITCH ERROR = (ALFACOM - ALFA)
045611,000559: # RATE = QREL
045612,000560: # Q-AXIS = CONTROL
045613,000561:
045614,000562: 15,3057 55700 EXDAP TS CMDAPMOD # +0 FOR NOW
045615,000563: 15,3060 11506 CCS CALFA
045616,000564: 15,3061 63216 AD C45LIM # =1.0-COS(45)
045617,000565: 15,3062 13064 TCF +2
045618,000566: 15,3063 63216 AD C45LIM
045619,000567: 15,3064 54000 TS A
045620,000568: 15,3065 13146 TCF EXDAP2 # HERE IF ABS(CALFA) L COS(45)
045621,000569:
045622,000570: 15,3066 11506 CCS CALFA # |CALFA| > 0.707
045623,000571: 15,3067 13070 TCF +1 # CONTINUE IF POS; GO TO EXDAP4 IF NEG.
045624,000572:
045625,000573: 15,3070 11727 CCS P63FLAG # VALID VALUES ARE: -1, +1, +0.
045626,000574: 15,3071 03104 TC EXDAP4
045627,000575: 15,3072 03074 TC +2
045628,000576: 15,3073 03104 TC EXDAP4
045629,000577: 15,3074 05426 TC PHASCHNG # SINGLE PASS THROUGH HERE.
045630,000578: 15,3075 40334 OCT 40334
045631,000579: 15,3076 45033 CS ONE
045632,000580: 15,3077 55727 TS P63FLAG # SET FLAG TO ASSURE SINGLE PASS.
045633,000581: 15,3100 33211 CA NSEC
045634,000582: 15,3101 05261 TC WAITLIST
045635,000583: 15,3102 E6,1661 EBANK= AOG
045636,000584: 15,3102 02367 54066 2CADR WAKEP62 # CALL TO TERMINATE P62 IN N SEC.
045637,000585: # 65 DEG/ 3DEG/SEC = 21 SEC NOMINAL
045638,000586: # TRANSIT TIME FROM ALFA=45 TO ALFA TRIM.
045639,000587:
045640,000588: 15,3104 11711 EXDAP4 CCS JETAG # ROLLJET INTERFACE TEST BETWEEN .1 SEC
045641,000589: 15,3105 13113 TCF EXDAP3 # DAP AND THE 2 SEC CM/RCS DAP
045642,000590: 15,3106 13113 TCF EXDAP3
045643,000591: 15,3107 35035 CA ZERO
045644,000592: 15,3110 00006 EXTEND # TURN OFF ROLL JETS IF ON AND WAIT
045645,000593: 15,3111 01006 WRITE ROLLJETS # UNTIL START OF 2 SEC CM/RCS CYCLE
045646,000594: 15,3112 55711 TS JETAG # RESTORE PROPER VALUE +0
045647,000595:
045648,000596: # ROLL FDAI WILL BE IN ERROR UNTIL NEXT CM/RCS CALL.
045649,000597: 15,3113 11506 EXDAP3 CCS CALFA # HERE IF ABS(CALFA) GEQ COS(45)
045650,000598: 15,3114 31573 CA RAXERR # C()= BETACOM - BETA/180
045651,000599: 15,3115 13121 TCF EXDAP1
045652,000600: 15,3116 45035 CS ZERO
045653,000601: 15,3117 55700 TS CMDAPMOD # FOR CM/RCS
045654,000602: 15,3120 41573 CS RAXERR # COMPLEMENT OF YAW ERROR.
045655,000603: 15,3121 55573 EXDAP1 TS RAXERR # FOR YAW FDAI
045656,000604: 15,3122 55500 TS AK2 # WANT RAXERR FOR TM.
045657,000605: 15,3123 54001 TS L
045658,000606: 15,3124 11700 CCS CMDAPMOD # COORDINATE BETA CONTROL.
045659,000607: 15,3125 03130 TC +3 # C(CMDAPMOD) CAN BE +1, +0, OR -0.
045660,000608: 15,3126 35033 CA ONE # USE BETADOT TO COORD IN MODE +0
045661,000609: 15,3127 50000 INDEX A # OTHERWISE USE RREL.
045662,000610: 15,3130 31703 CA RREL
045663,000611: 15,3131 03026 TC BIASEDZ # GO TEST DZ. +0 IF IN DZ, +-1 OTHERWISE
045664,000612: # IF GEQ 4D/S, SET ERROR BIT IN L=0)
045665,000613: 15,3132 00006 EXTEND
045666,000614: 15,3133 04001 ROR LCHAN # L HAS BETA BIT
045667,000615: 15,3134 50000 INDEX A
045668,000616: 15,3135 33222 CAF YJETCODE
045669,000617: 15,3136 55720 TS JETEM
045670,000618:
045671,000619: 15,3137 31572 CA QAXERR # ALFA ERROR.
045672,000620: 15,3140 54001 TS L
045673,000621: 15,3141 31702 CA QREL # FOR ALFADOT USE QREL
045674,000622: 15,3142 03026 TC BIASEDZ
045675,000623: 15,3143 00006 EXTEND
045676,000624: 15,3144 04001 ROR LCHAN
045677,000625: 15,3145 13010 TCF EXDAPIN # CONTINUE ON IN DAP
045678,000626:
045679,000627: 15,3146 25700 EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1
045680,000628:
045681,000629: 15,3147 45033 CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO
045682,000630: 15,3150 55711 TS JETAG # TO 2 SEC FOR ROLL JETS. (IF CMDAPMOD
045683,000631: # =0 AND JETAG =-1, QUENCHES JETS IF ON)
045684,000632:
045685,000633: 15,3151 11727 CCS P63FLAG # IF FLAG WAS +1, SET =0.
045686,000634: 15,3152 55727 TS P63FLAG
045687,000635: 15,3153 13154 NOOP
045688,000636:
045689,000637: 15,3154 11507 CCS SALFA # BETA CONTROL WITH P JETS
045690,000638: 15,3155 41573 CS RAXERR # B()= BETACOM - BETA/180
045691,000639: 15,3156 13160 TCF +2
045692,000640: 15,3157 31573 CA RAXERR
045693,000641: 15,3160 55713 TS PAXERR1 # TEMP SAVE. ERROR/180
045694,000642: 15,3161 00006 EXTEND
045695,000643: 15,3162 75016 MP HALF # CM/FDAI EXPECTS ERROR/360.
045696,000644: 15,3163 57713 XCH PAXERR1 # ERROR/360 FOR FDAI, GET ERROR/180.
045697,000645: 15,3164 54001 TS L
045698,000646: 15,3165 11507 CCS SALFA
045699,000647: 15,3166 41704 CS BETADOT # USE BETADOT TO COORD IN MODE +1
045700,000648: 15,3167 03171 TC +2
045701,000649: 15,3170 31704 CA BETADOT
045702,000650: 15,3171 03026 TC BIASEDZ
045703,000651: 15,3172 00006 EXTEND
045704,000652: 15,3173 04001 ROR LCHAN
045705,000653: 15,3174 50000 INDEX A
045706,000654: 15,3175 33225 CAF P/RJCODE # GET ROLL CODE
045707,000655: 15,3176 00006 EXTEND # ROLL CONTROL WITH YAW JETS.
045708,000656: 15,3177 01006 WRITE ROLLJETS # WE,LL SKIP REGULAR ROLL SYST
045709,000657:
045710,000658: 15,3200 31717 CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME.
045711,000659: 15,3201 00006 EXTEND
045712,000660: 15,3202 21664 MSU ROLL/180 # 1,S COMPL, BUT SO WHATS A BIT.?
045713,000661: 15,3203 54001 TS L # FORCE A LIMIT CYCLE IN YAW RATE.
045714,000662: 15,3204 11507 CCS SALFA
045715,000663: 15,3205 30001 CA L # TO REMOVE ITS BIASING EFFECT ON M DOT.
045716,000664: 15,3206 03121 TC EXDAP1
045717,000665: 15,3207 40001 CS L
045718,000666: 15,3210 03121 TC EXDAP1
045719,000667:
045720,000668: 15,3211 04064 NSEC DEC 2100 B-14 # 65 DEG/ 3 DEG/SEC
045721,000669: # IF NSEC IS CHANGED, REMEMBER TO CHANGE 4.33SPOT.
045722,000670: 15,3212 37734 4D/SLIM DEC 16348 B-14 # 1.0 -4/180 D/S = 4/1800 EXP 14
045723,000671: 15,3213 37756 YDOTLIM DEC 16366 B-14 # =1.0 - YDOT DZ= 16384 -18
045724,000672: # YDOT DZ = YDOT TCDU/180 = 2/1800 EXP 14
045725,000673:
045726,000674: 15,3214 00067 CM/BIAS DEC 55 B-14 # =.6/180 B14 = 55
045727,000675: 15,3215 37267 YAWLIM DEC 16055 B-14 # YAWLIM=1.0-3.6/180=16384-329=16055
045728,000676: 15,3216 11277 C45LIM DEC .29289 # =1.0-COS(45)
045729,000677:
045730,000678: 15,3217 65033 SINTRIM DEC -.34202 # SIN(-20) (FOR NOMINAL L/D = .3)
045731,000679: 15,3220 36044 COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3)
045732,000680:
045733,000681: # TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA
045734,000682: # USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY
045735,000683: # FROM TRIM, SO USE ON-BOARD ESTIMATES.
045736,000684:
045737,000685: # JET CODE TABLES FOLLOW _
045738,000686:
045739,000687: 15,3221 00120 OCTAL 00120 # POS Y
045740,000688: 15,3222 00000 YJETCODE OCTAL 00000 # RCS JET BITS
045741,000689: 15,3223 00240 OCTAL 00240 # NEG Y
045742,000690: 15,3224 00005 OCTAL 00005 # POS R JET BITS ALSO POS P JET BITS
045743,000691: 15,3225 00000 P/RJCODE OCTAL 00000
045744,000692: 15,3226 00012 OCTAL 00012 # NEG R ALSO NEG P
045745,000693:
045746,000694: # RCS THIS SECTION IS ENTERED EACH 2 SEC BY WAITLIST CALL FOLLOWING A DELAY OF 1.2 SEC AFTER PIPUP.
045747,000695: # THE TASK SETJTAG SETS A FLAG IN JETAG TO SIGNIFY THAT ROLL UPDATE IS DUE. IN ROUGHLY 5 CS BPDYRATE WILL BE
045748,000696: # EXECUTED AND JETAG WILL CAUSE CM/RCS TO ACT ON ROLLC IMMEDIATELY THEREAFTER. THE
045749,000697: # TASK SAVES THE CALL TIME SO THAT CM/RCS CAN DETERMINE HOW MUCH OF THE 2 SEC INTERVAL REMAINS BEFORE THE
045750,000698: # NEXT UPDATE.
045751,000699:
045752,000700: 15,3227 40025 SETJTAG CS TIME1 # SAVE NOMINAL UPDATE TIME FOR SYNCH
045753,000701: 15,3230 55712 TS TUSED
045754,000702: # THE 5 CS APPEARS IN TIMETST.
045755,000703: 15,3231 35033 CA ONE # RATHER THAN INCR, FOR SAFETY
045756,000704: 15,3232 55711 TS JETAG # SET JETAG=1 TO CAUSE CM/RCS TO BE
045757,000705: 15,3233 05426 TC PHASCHNG
045758,000706: 15,3234 00001 OCT 00001
045759,000707:
045760,000708: 15,3235 05340 TC TASKOVER # EXECUTED AFTER NEXT BODYRATE UPDATE
045761,000709:
045762,000710: # PREDICTIVE ROLL SYSTEM ENTRY STEERING PROVIDES ROLL COMMAND IN LOC ROLLC. THE FOLLOWING CALCULATES THE
045763,000711: # TRAJECTORY TO THE ORIGIN IN PHASE PLANE (X,V). PROGRAM ENTERS JET ON AND OFF CALLS INTO WTLST TO PRODUCE
045764,000712: # THE DESIRED TRAJECTORY. ONLY THOSE CALLS WHICH CAN BE EXECUTED WITHIN THE INTERVAL T (2 SEC) ARE ENTERED IN
045765,000713: # WTLST, THE REMAINDER ARE RECONSIDERED AT NEXT UPDATE.
045766,000714:
045767,000715: 15,3236 5015 HALFPR EQUALS NEG1/2 +1
045768,000716:
045769,000717: # CLEAR JETAG BEFORE TIMETST. SET TO +0 TO SHOW
045770,000718: # ROLL DAP CALLED. IN EVENT OF RESTART, BODYRATE
045771,000719: # MAY MISS A CYCLE. CM/RCS WILL MISS A CYCLE ONLY
045772,000720: # IF A RESTART OCCURS AFTER TIMETST COMMENCES.
045773,000721:
045774,000722: 15,3236 45033 CM/RCS CS ONE
045775,000723: 15,3237 55617 TS JNDX # SET NDX FOR POS ROLL, AND CHANGE LATER
045776,000724:
045777,000725: 15,3240 45047 CS 2T/TCDU # ROLLDOT = DELAOG + DELAIG SINM =DELR
045778,000726: 15,3241 00006 EXTEND
045779,000727: 15,3242 71701 MP PREL # DELR/180 = RDOT TCDU/180 = RDOT/1800
045780,000728: 15,3243 60001 AD L # -2 RDOT T/180 IN L
045781,000729: 15,3244 55613 TS -VT/180 # SAVE -2VT/180 HERE
045782,000730:
045783,000731: 15,3245 41664 CS ROLL/180
045784,000732: 15,3246 54021 TS SR # SAVE (-R/180) /2
045785,000733:
045786,000734: 15,3247 40102 CS CM/FLAGS
045787,000735: 15,3250 75030 MASK BIT4 # LATSW = 101D BIT4
045788,000736: 15,3251 00006 EXTEND # ROLL OVER TOP $
045789,000737: 15,3252 13260 BZF GETLCX # NO, TAKE SHORTEST PATH
045790,000738: 15,3253 26102 ADS CM/FLAGS # YES, ENFORCE ROLL OVER TOP.. (BIT =0)
045791,000739: 15,3254 31715 CA ROLLC # (ROLLC/180) /2
045792,000740: 15,3255 60021 AD SR # -(R/180) /2
045793,000741: 15,3256 57614 XCH LCX/360 # DIFFERENT X REQD HERE. DISCONT AT 180.
045794,000742: 15,3257 13320 TCF COMPAT # POSSIBLE OVFL ABOVE.
045795,000743:
045796,000744: 15,3260 35016 GETLCX CA POS1/2 # FORM RCOM/360
045797,000745: 15,3261 60000 DOUBLE
045798,000746: 15,3262 61715 AD ROLLC
045799,000747: 15,3263 57614 XCH LCX/360 # IGNORE POSSIBLE OVFL.
045800,000748:
045801,000749: 15,3264 30021 CA SR # FORM -R/360
045802,000750: 15,3265 65014 AD NEG1/2
045803,000751: 15,3266 65014 AD NEG1/2 # IGNORE OVFL
045804,000752: 15,3267 57614 XCH LCX/360 # -R/360
045805,000753: 15,3270 27614 ADS LCX/360 # LCX/360 = RCOM/360 - R/360 RANGE (-1,1)
045806,000754:
045807,000755: # DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL ?
045808,000756:
045809,000757: 15,3271 11613 CCS -VT/180 # TAKE SHORTEST ANGULAR PATH
045810,000758: 15,3272 65033 AD ONE # (BASED ON SINGLE JET ACCELERATION)
045811,000759: 15,3273 13275 TCF +2
045812,000760: 15,3274 65033 AD ONE
045813,000761: 15,3275 00006 EXTEND
045814,000762: 15,3276 71613 MP -VT/180 # C(-VT/180) = -2 VT/180
045815,000763: 15,3277 00006 EXTEND
045816,000764: 15,3300 73770 MP 1/16A1 # = 180/(16 A1 TT)
045817,000765: 15,3301 00006 EXTEND
045818,000766: 15,3302 11506 DV CALFA
045819,000767: 15,3303 54001 TS L
045820,000768: 15,3304 11614 CCS LCX/360
045821,000769: 15,3305 35016 CAF POS1/2
045822,000770: 15,3306 13310 TCF +2
045823,000771: 15,3307 45016 CS POS1/2
045824,000772: 15,3310 61614 AD LCX/360 # IS LCX/360 LESS THAN 180 DEG $
045825,000773: 15,3311 60001 AD L
045826,000774: 15,3312 54001 TS L
045827,000775: 15,3313 13320 TCF COMPAT # YES, GO ON.
045828,000776: 15,3314 50000 TRTAGXPI INDEX A # NO, SHIFT X BY - SGN(X) 2 PI
045829,000777: 15,3315 45015 CS HALFPR # +A YIELDS -1/2
045830,000778: 15,3316 60000 DOUBLE
045831,000779: 15,3317 27614 ADS LCX/360
045832,000780:
045833,000781: 15,3320 31614 COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN.
045834,000782: 15,3321 00006 EXTEND
045835,000783: 15,3322 71506 MP CALFA # COS ALFA
045836,000784: 15,3323 55614 TS LCX/360 # SCALED LCX OK HERE.
045837,000785:
045838,000786: 15,3324 11700 CCS CMDAPMOD # FOUR POSSIBILITIES HERE
045839,000787: 15,3325 03715 TC DZCALL1 # EXIT, SETTING JETAG=0. (C(A)=0)
045840,000788: # ALL 3 AXES ALREADY DONE.
045841,000789: 15,3326 03327 TC +1 # G LESS THAN .05. CA POS. CONTINUE
045842,000790: 15,3327 31614 CA LCX/360 # G GEQ .05. CONTINUE IN CM/RCS
045843,000791: 15,3330 55614 TS LCX/360 # CMDAPMOD=-0. DAMPING ONLY. SET LCX=0
045844,000792: 15,3331 55571 TS ERRORZ # INITIAL ROLL ERROR (UNREFLECTED) FOR TM.
045845,000793: 15,3332 55713 TS PAXERR1 # SAVE LCX FOR FDAI AND EDIT. (/360)
045846,000794: 15,3333 31613 CA -VT/180 # GET - 2 VT/180
045847,000795: 15,3334 54021 TS SR
045848,000796: 15,3335 30021 CA SR # GET -VT/180, LEAVE -VT/360 IN SR FOR DZ
045849,000797: 15,3336 55570 TS -VT/180E # DIAGNOSTIC ****
045850,000798: 15,3337 57613 XCH -VT/180 # NOW CONTENTS OF -VT/180 AS LABELED
045851,000799: 15,3340 00006 EXTEND
045852,000800: 15,3341 71613 MP -VT/180 # B(A) = -2VT/180
045853,000801: 15,3342 00006 EXTEND
045854,000802: 15,3343 73770 MP 180/8ATT
045855,000803: 15,3344 55616 TS VSQ/4API
045856,000804:
045857,000805: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 -.5 BUFLIM/360 POS?
045858,000806:
045859,000807: 15,3345 60000 WHICHALF DOUBLE # FOR SECOND BURN, A1
045860,000808: 15,3346 40000 COM
045861,000809: 15,3347 63774 AD BUFLIM # =BUFLIM/(2 360)
045862,000810: 15,3350 54001 TS L
045863,000811: 15,3351 11613 CCS -VT/180
045864,000812: 15,3352 40001 CS L
045865,000813: 15,3353 13355 TCF +2
045866,000814: 15,3354 30001 CA L
045867,000815: 15,3355 61614 AD LCX/360
045868,000816: 15,3356 63774 AD BUFLIM
045869,000817: 15,3357 00006 EXTEND
045870,000818: 15,3360 63375 BZMF REFLECT # POINT (X,V) IN LHP.
045871,000819:
045872,000820: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 + .5 BUFLIM/360 NEG?
045873,000821:
045874,000822: 15,3361 40000 COM
045875,000823: 15,3362 63774 AD BUFLIM
045876,000824: 15,3363 63774 AD BUFLIM
045877,000825: 15,3364 00006 EXTEND
045878,000826: 15,3365 63404 BZMF DZ1 # POINT (X,V) IN RHP.
045879,000827:
045880,000828: # IS POINT WITHIN VELOCITY DZ?
045881,000829:
045882,000830: 15,3366 43767 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG?
045883,000831: 15,3367 61616 AD VSQ/4API
045884,000832: 15,3370 00006 EXTEND
045885,000833: 15,3371 63677 BZMF DZCALL # YES.
045886,000834:
045887,000835: # POINT IS IN BUFFER ZONE. THRUST TO X AXIS.
045888,000836:
045889,000837: 15,3372 41617 CS JNDX
045890,000838: 15,3373 55620 TS JNDX1
045891,000839: 15,3374 03457 TC OVRLINE1
045892,000840:
045893,000841: 15,3375 41613 REFLECT CS -VT/180 # REFLECT LHP INTO RHP REL TO TERM CONTR
045894,000842: 15,3376 55613 TS -VT/180
045895,000843: 15,3377 54021 TS SR # -VT/360 SAVED FOR DZ.
045896,000844: 15,3400 41614 CS LCX/360
045897,000845: 15,3401 55614 TS LCX/360
045898,000846: 15,3402 41617 CS JNDX
045899,000847: 15,3403 55617 TS JNDX
045900,000848:
045901,000849: # IS VSQ/4API - (VSQ/4API) MIN NEG $
045902,000850:
045903,000851: 15,3404 43767 DZ1 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG $
045904,000852: 15,3405 61616 AD VSQ/4API
045905,000853: 15,3406 00006 EXTEND
045906,000854: 15,3407 63411 BZMF DZ2 # YES, GO TEST FURTHER.
045907,000855: 15,3410 13416 TCF MAXVTEST # NO
045908,000856:
045909,000857: # IS X/360 - XMIN/360 -VT/360 NEG $
045910,000858:
045911,000859: 15,3411 43772 DZ2 CS XMIN/360 # XMIN/360 = 4/360
045912,000860: 15,3412 61614 AD LCX/360
045913,000861: 15,3413 60021 AD SR # C(SR) = -VT/360
045914,000862: 15,3414 00006 EXTEND # IS X/360 - XMIN/360 -VT/360 NEG $
045915,000863: 15,3415 63677 BZMF DZCALL # YES,IN DZ. EXIT SETTING JETAG=0.
045916,000864:
045917,000865: # IS XD/360 - VM/360K - XS/360 POS ?
045918,000866:
045919,000867: 15,3416 41617 MAXVTEST CS JNDX
045920,000868: 15,3417 55620 TS JNDX1 # NOW CAN SET JNDX1 FOR TON2 JETS.
045921,000869: 15,3420 43774 CS XS/360 # XS/360 = (XMIN -YMIN/K) /360
045922,000870: 15,3421 61616 AD VSQ/4API
045923,000871: 15,3422 61614 AD LCX/360
045924,000872: 15,3423 55615 TS XD/360 # XD/360= X/360 +VSQ/4API X INTERCEPT
045925,000873: # BUT C(XD/360) = (XD - XS) /360
045926,000874: 15,3424 63773 AD -VM/360K # X INTERCEPT FOR MAX V (VM)
045927,000875: 15,3425 40000 COM
045928,000876: 15,3426 00006 EXTEND
045929,000877: 15,3427 63435 BZMF MAXVTIM1 # YES, THRUST TO VM
045930,000878: 15,3430 31615 CA XD/360
045931,000879: 15,3431 00006 EXTEND
045932,000880: 15,3432 75016 MP KTRCS
045933,000881: 15,3433 20001 DDOUBL # GO SAVE PREDICTED DRIFTING VELOCITY.
045934,000882:
045935,000883: 15,3434 03440 TC GETON1 # INSURE THAT Q IS POS AS TAG.
045936,000884: 15,3435 00006 MAXVTIM1 EXTEND
045937,000885: 15,3436 22007 ZQ # SET +0 AS TAG
045938,000886: 15,3437 43773 CS -VMT/180
045939,000887: 15,3440 55567 GETON1 TS VDT/180 # VDT/180 OR VMT/180.
045940,000888: 15,3441 61613 AD -VT/180
045941,000889: 15,3442 60000 DOUBLE
045942,000890: 15,3443 00006 EXTEND
045943,000891: 15,3444 73770 MP 180/8ATT
045944,000892: 15,3445 55621 TS TON1 # TON1 / 4T
045945,000893: 15,3446 00006 EXTEND
045946,000894: 15,3447 63451 BZMF OVRLINE
045947,000895: 15,3450 03463 TC GETON2 # RESET Q POS IF CAME FROM MAXVTIM1
045948,000896:
045949,000897: 15,3451 10002 OVRLINE CCS Q
045950,000898: 15,3452 13457 TCF OVRLINE1
045951,000899: 15,3453 31620 MAXVTIM2 CA JNDX1 # ABOVE VM, SO THRUST DOWN
045952,000900: 15,3454 55617 TS JNDX
045953,000901: 15,3455 41621 CS TON1
045954,000902: 15,3456 13462 TCF OVRLINE2 +1
045955,000903:
045956,000904: 15,3457 41613 OVRLINE1 CS -VT/180 # DRIFT AT V
045957,000905: 15,3460 55567 TS VDT/180
045958,000906: 15,3461 35035 OVRLINE2 CA ZERO
045959,000907: 15,3462 55621 TS TON1
045960,000908: 15,3463 31567 GETON2 CA VDT/180 # VDT/180, OR VMT/180 OR VT/180
045961,000909: 15,3464 60000 DOUBLE
045962,000910: 15,3465 00006 EXTEND
045963,000911: 15,3466 73770 MP 180/8ATT
045964,000912: 15,3467 60000 DOUBLE # FOR SECOND BURN, A1
045965,000913: 15,3470 55607 TS TON2 # = TON2 / 4T
045966,000914:
045967,000915: 15,3471 40000 COM
045968,000916: 15,3472 00006 EXTEND
045969,000917: 15,3473 63477 BZMF GETOFF
045970,000918: 15,3474 55607 TS TON2
045971,000919: 15,3475 31617 CA JNDX
045972,000920: 15,3476 55620 TS JNDX1
045973,000921:
045974,000922: 15,3477 41607 GETOFF CS TON2 # TON2 / 4T
045975,000923: 15,3500 00006 EXTEND
045976,000924: 15,3501 71567 MP VDT/180 # VDT/180, OR VT/180, OR VMT/180.
045977,000925: 15,3502 55615 TS XD/360 # USE AS TEMP
045978,000926: 15,3503 41567 CS VDT/180
045979,000927: 15,3504 00006 EXTEND
045980,000928: 15,3505 13521 BZF TOFFOVFL # OMIT THE DIVIDE IF DEN = 0.
045981,000929: 15,3506 61613 AD -VT/180
045982,000930: 15,3507 00006 EXTEND
045983,000931: 15,3510 71621 MP TON1 # TON1 /4T
045984,000932: 15,3511 61615 AD XD/360 # TEMP = -VDT/180 / 2 TON2
045985,000933: 15,3512 61614 AD LCX/360
045986,000934: 15,3513 22007 ZL
045987,000935: 15,3514 56001 XCH L # TEST THE DIVIDE
045988,000936: 15,3515 00006 EXTEND
045989,000937: 15,3516 11567 DV VDT/180
045990,000938: 15,3517 00006 EXTEND
045991,000939: 15,3520 13523 BZF GETOFF2 # DIVIDE OK
045992,000940:
045993,000941: 15,3521 35061 TOFFOVFL CA 2JETT # OVFL, USE 2T FOR CONVENIENCE.
045994,000942: 15,3522 13530 TCF TIMSCAL
045995,000943:
045996,000944: 15,3523 56001 GETOFF2 XCH L # GET NUMERATOR.
045997,000945: 15,3524 00006 EXTEND
045998,000946: 15,3525 11567 DV VDT/180 # C(A) = TOFF / 2T
045999,000947: 15,3526 00006 EXTEND
046000,000948: 15,3527 75061 MP 2JETT
046001,000949: 15,3530 55605 TIMSCAL TS TOFF # IN CS
046002,000950:
046003,000951: 15,3531 33771 CAF 4JETT
046004,000952: 15,3532 00006 EXTEND
046005,000953: 15,3533 71621 MP TON1 # C(TON1) = TON1 / 4T
046006,000954: 15,3534 55621 TS TON1 # IN CS
046007,000955:
046008,000956: 15,3535 33771 CAF 4JETT
046009,000957: 15,3536 00006 EXTEND
046010,000958: 15,3537 71607 MP TON2 # C(TON2) = TON2 / 4T
046011,000959: 15,3540 55607 TS TON2 # IN CS
046012,000960:
046013,000961: 15,3541 35035 CA ZERO # CANNOT REDO AFTER TIMETST. TUSED GONE
046014,000962: 15,3542 55711 TS JETAG # SET +0 TO SHOW ROLL DAP CALLED.
046015,000963:
046016,000964: # CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE
046017,000965: # INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON NEXT
046018,000966: # AND ON ALTERNATE PASSES THROUGH CM/DUMPR.
046019,000967:
046020,000968: 15,3543 35033 CA ONE
046021,000969: 15,3544 54305 TS SW/NDX
046022,000970:
046023,000971: # TIMETEST SECTION FOR RCS
046024,000972:
046025,000973: # ENTER WITH THREE TIME INTERVALS AND THE CORRESPONDING JET CODE INDEXES IN ERASEABLE LOCS TON1, TOFF, TON2, JNDX
046026,000974: # JNDX1. SECTION PROCESSES TIME INTERVALS FOR WTLST CALLS AND ASSURES THAT WTLST CALLS ARE MADE ONLY
046027,000975: # (1) FOR POS INTERVALS GREATER THAN A SPECIFIED MINIMUM (HERE CHOSEN AS 2 CS) AND
046028,000976: # (2) FOR THE INTERVALS THAT WILL BE EXECUTED WITHIN THE TIME REMAINING IN THE SAMPLE INTERVAL T (2 SEC).
046029,000977: # TIMETST ESTABLISHES 6 LOCS CONTAINING JET CODES AND CORRESPONDING TIME INTERVALS. THUS: TON1, T1BITS,
046030,000978: # TOFF, TBITS, TON2, T2BITS. OF THESE THE FIRST 2 LOCS ARE TEMPORARY, FOR IMMEDIATE ACTION, IN GENERAL.
046031,000979: # SECTION JETCALL BELOW PROCESSES THIS LIST.
046032,000980:
046033,000981: 15,3545 30025 TIMETST CA TIME1 # CORRECT FOR POSSIBLE TIME1 OVFL.
046034,000982: 15,3546 65016 AD POS1/2
046035,000983: 15,3547 65016 AD POS1/2 # OVFL GUARANTEED.
046036,000984: 15,3550 27712 ADS TUSED # B(TUSED) =-TUSED =-OLTIME1
046037,000985:
046038,000986: 15,3551 33766 CA -T-3 # =-T +2 -5 (SEE SETJTAG)
046039,000987: # THE +2 REQUIRED FOR PROPER BRANCH.
046040,000988: 15,3552 27712 ADS TUSED # TUSED = TIME(K)-TIME(K-1)-T+2
046041,000989:
046042,000990: 15,3553 45032 CS TWO # USE 2 SINCE TIME3 UNCERTAIN TO 1
046043,000991: 15,3554 61621 AD TON1
046044,000992: 15,3555 00006 EXTEND
046045,000993: 15,3556 63570 BZMF TIMETST1
046046,000994: 15,3557 51617 INDEX JNDX
046047,000995: 15,3560 33225 CAF P/RJCODE
046048,000996: 15,3561 55622 TS T1BITS
046049,000997:
046050,000998: 15,3562 31621 CA TON1
046051,000999: 15,3563 27712 ADS TUSED
046052,001000: 15,3564 00006 EXTEND
046053,001001: 15,3565 63572 BZMF TOFFTEST
046054,001002: 15,3566 35035 CA ZERO
046055,001003: 15,3567 13623 TCF TIMETST3
046056,001004: 15,3570 45033 TIMETST1 CS ONE
046057,001005: 15,3571 55621 TS TON1
046058,001006: 15,3572 45032 TOFFTEST CS TWO
046059,001007: 15,3573 61605 AD TOFF
046060,001008: 15,3574 00006 EXTEND
046061,001009: 15,3575 63604 BZMF TIMETST2
046062,001010: 15,3576 31605 CA TOFF
046063,001011: 15,3577 27712 ADS TUSED
046064,001012: 15,3600 00006 EXTEND
046065,001013: 15,3601 63606 BZMF TON2TEST
046066,001014: 15,3602 35035 CA ZERO
046067,001015: 15,3603 13625 TCF TIMETST4
046068,001016: 15,3604 45033 TIMETST2 CS ONE
046069,001017: 15,3605 55605 TS TOFF
046070,001018: 15,3606 45032 TON2TEST CS TWO
046071,001019: 15,3607 61607 AD TON2
046072,001020: 15,3610 00006 EXTEND
046073,001021: 15,3611 63626 BZMF TIMETST5
046074,001022: 15,3612 51620 INDEX JNDX1
046075,001023: 15,3613 33225 CAF P/RJCODE
046076,001024: 15,3614 55610 TS T2BITS
046077,001025: 15,3615 31607 CA TON2
046078,001026: 15,3616 27712 ADS TUSED
046079,001027: 15,3617 00006 EXTEND
046080,001028: 15,3620 63630 BZMF JETCALL1
046081,001029: 15,3621 35035 CA ZERO
046082,001030: 15,3622 13627 TCF TIMETST5 +1
046083,001031: 15,3623 55621 TIMETST3 TS TON1
046084,001032: 15,3624 45033 CS ONE
046085,001033: 15,3625 55605 TIMETST4 TS TOFF
046086,001034: 15,3626 45033 TIMETST5 CS ONE
046087,001035: 15,3627 55607 TS TON2
046088,001036:
046089,001037: # SECTION JETCALL EXAMINES CONTENTS OF JET TIMES IN LIST, ESTABLISHES WTLST ENTRIES, AND EXECUTES CORRESPONDING
046090,001038: # JET CODES. A POSITIVE NZ NUMBER IN A TIME REGISTER INDICATES THAT A WTLST CALL IS TO BE MADE, AND ITS JET BITS
046091,001039: # EXECUTED. A +0 INDICATES THAT THE TIME INTERVAL DOES NOT APPLY, BUT THE CORRESPONDING JET BITS ARE TO BE
046092,001040: # EXECUTED. A NEG NUMBER INDICATES THAT THE TIME INTERVAL HAS BEEN PROCESSED. IN EVENT OF +0 OR -1, THE
046093,001041: # SUBSEQUENT TIME REGISTER IS EXAMINED FOR POSSIBLE ACTION. THUS JET BITS TO BE EXECUTED MAY COME FROM MORE
046094,001042: # THAN ONE REGISTER.
046095,001043:
046096,001044: 15,3630 35035 JETCALL1 CA ZERO
046097,001045: 15,3631 55611 TS OUTTAG
046098,001046: 15,3632 55612 TS NUJET
046099,001047: 15,3633 55606 TS TBITS
046100,001048: 15,3634 53622 DXCH TON1
046101,001049: 15,3635 10000 CCS A
046102,001050: 15,3636 13653 TCF JETCALL2 # CALL WTLST
046103,001051: 15,3637 23612 JETCALL3 LXCH NUJET # WTLST ENTRIES COME HERE FROM JETCALL
046104,001052: 15,3640 45033 CS ONE
046105,001053: 15,3641 53606 DXCH TOFF
046106,001054: 15,3642 10000 CCS A
046107,001055: 15,3643 13653 TCF JETCALL2 # CALL WTLST
046108,001056: 15,3644 23612 LXCH NUJET
046109,001057: 15,3645 45033 CS ONE
046110,001058: 15,3646 53610 DXCH TON2
046111,001059: 15,3647 10000 CCS A
046112,001060: 15,3650 13653 TCF JETCALL2 # CALL WTLST
046113,001061: 15,3651 23612 LXCH NUJET
046114,001062: 15,3652 03662 TC JETACTN # C(A) = +0
046115,001063: 15,3653 56001 JETCALL2 XCH L # SAVE JET BITS FOR AFTER WTLST CALL
046116,001064: 15,3654 27612 ADS NUJET
046117,001065: 15,3655 56001 XCH L
046118,001066: 15,3656 65033 AD ONE # RESTORE FOR CCS
046119,001067: 15,3657 05261 TC WAITLIST
046120,001068: 15,3660 E6,1661 EBANK= AOG
046121,001069: 15,3660 03670 32066 2CADR JETCALL
046122,001070:
046123,001071: 15,3662 31612 JETACTN CA NUJET # COME HERE WHEN DESIRED JET CODE IS KNOWN
046124,001072: 15,3663 00006 EXTEND # NO NEED TO SAVE OLD CODES
046125,001073: 15,3664 01006 WRITE ROLLJETS # SET RCHAN TO NEW BIT CONFIG.
046126,001074:
046127,001075: 15,3665 11611 CCS OUTTAG
046128,001076: 15,3666 05340 TC TASKOVER
046129,001077: 15,3667 03725 ROLLDUMP TC CM/FDAIR
046130,001078:
046131,001079: # EDIT DUMP AT ABOVE LOCATION.
046132,001080:
046133,001081: # WAITLIST ENTRIES COME HERE.
046134,001082:
046135,001083: 15,3670 35032 JETCALL CAF BIT2 # CM/DSTBY =103D BIT2
046136,001084: 15,3671 55611 TS OUTTAG # SIGNIFY WTLST ENTRY
046137,001085: 15,3672 70102 MASK CM/FLAGS # IS SYSTEM DISABLED $
046138,001086: 15,3673 00006 EXTEND
046139,001087: 15,3674 13663 BZF JETACTN +1 # YES, QUENCH ROLL JETS, IF ON AND EXIT.
046140,001088: 15,3675 22007 ZL # NO, CONTINUE.
046141,001089: 15,3676 13637 TCF JETCALL3 # C(A) POS, C(L) = +0
046142,001090:
046143,001091: # DEAD ZONE ENTRIES COME HERE.
046144,001092:
046145,001093: 15,3677 41700 DZCALL CS CMDAPMOD # POSSIBLE VALUES OF CMDAPMOD: -1, +0, -0.
046146,001094: 15,3700 75033 MASK BIT1
046147,001095: 15,3701 54001 TS L # C(L)=0 FOR -0; C(L)=1 FOR -1 OR +0.
046148,001096: 15,3702 50000 INDEX A # ERASBLE ORDER: ROLLTM,ROLLC,ROLLC +1.
046149,001097: 15,3703 31714 CA ROLLTM # GET ROLL/180 OR ROLLC (/360).
046150,001098: 15,3704 50001 INDEX L
046151,001099: 15,3705 54000 TS A # IF C(L)=1, STORE 'ROLLC' IN 'L'.
046152,001100: 15,3706 60001 AD L # (BOTH MUST BE SCALED DEG/180)
046153,001101: 15,3707 02542 TC ANGOVCOR # C(A)=ROLL/180 OR 2 ROLLC .
046154,001102: 15,3710 55717 TS ROLLHOLD # IF CMDAPMOD =-0, SAVE ROLL ANGLE,
046155,001103: # OTHERWISE, SAVE ROLL COMMAND.
046156,001104:
046157,001105: 15,3711 35035 CA ZERO # COME HERE IF IN DZ, AND CANCEL JETS.
046158,001106: 15,3712 00006 EXTEND # INHINT NOT NEEDED HERE.
046159,001107: 15,3713 01006 WRITE ROLLJETS # TURN OFF ALL ROLL JETS.
046160,001108: 15,3714 55567 TS VDT/180 # SET =0 TO SHOW IN DEAD ZONE.
046161,001109: 15,3715 55711 DZCALL1 TS JETAG # COME HERE WITH C(A)=0.
046162,001110: 15,3716 03667 TC ROLLDUMP
046163,001111:
046164,001112: # CM ENTRY FDAI DISPLAY
046165,001113:
046166,001114: # CALCULATE BY INTEGRATION THE ROLL ERROR BETWEEN THE 2 SEC CM/RCS UPDATES. DISPLAY ATTITUDE ERRORS AS FOLLOWS:
046167,001115: # ATM DAP: DISPLAY ONLY ROLL ATTITUDE ERROR.
046168,001116: # EXT ATM DAP: PRESENT 3 ATTITUDE ERRORS RELATIVE TO THE APPROPRIATE BODY AXES EACH .1 SEC.
046169,001117: # ROLL ROLLC-ROLL
046170,001118: # PITCH ALFAC-ALFA
046171,001119: # YAW BETAC-BETA
046172,001120:
046173,001121: # DURING ENTRY, THE FDAI NEEDLES HAVE FULL SCALE OF 67.5 DEG IN ROLL AND 16.875 DEG IN PITCH AND YAW.
046174,001122: # THE SUBROUTINE NEEDLER EXPECTS (ANGLE/180) AND SCALES TO 16.875 DEG FULL SCALE.
046175,001123:
046176,001124: # COME HERE EACH .1 SEC. (CMDAPMOD=+1 COMES BELOW)
046177,001125: 15,3717 41705 CM/FDAI CS PHIDOT # INTEGRATE ROLL ERROR 'TWEEN 2SEC UPDATES
046178,001126: 15,3720 00006 EXTEND
046179,001127: 15,3721 71506 MP CALFA # FOR ASSUMED COORDINATION.
046180,001128: 15,3722 00006 EXTEND
046181,001129: 15,3723 75016 MP HALF
046182,001130: 15,3724 27713 ADS PAXERR1 # ROLL ERROR/360. OVFL OK.
046183,001131:
046184,001132: # EDIT DUMP AT ABOVE LOCATION.
046185,001133: 15,3725 35016 CM/FDAIR CA HALF
046186,001134: 15,3726 00006 EXTEND
046187,001135: 15,3727 71713 MP PAXERR1 # FULL SCALE FOR FDAI (ROLL) IS 67.5 D
046188,001136: 15,3730 55476 TS PAXERR # .25 (ROLL ERROR/180) FOR FDAI NEEDLE.
046189,001137:
046190,001138: # PROGRAM TO FILE BODY RATES FOR TM ON ONE PASS AND
046191,001139: # TO UPDATE THE NEEDLE DISPLAY ON THE NEXT.
046192,001140: # SYNCHRONIZATION WITH CM/RCS IS USED SO THAT THE TM
046193,001141: # IS DONE WITH THE ROLL SYSTEM AND NEEDLES START ON
046194,001142: # THE SUBSEQUENT PASS.
046195,001143:
046196,001144: 15,3731 40305 CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE
046197,001145: 15,3732 54305 TS SW/NDX
046198,001146: 15,3733 00006 EXTEND # INDEX.
046199,001147: 15,3734 63740 BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO
046200,001148: # ENDBUF.
046201,001149: # INDEX IS POS FOR NEEDLES
046202,001150:
046203,001151: 15,3735 04754 TC IBNKCALL
046204,001152: 15,3736 42432 CADR NEEDLER
046205,001153:
046206,001154: 15,3737 03756 TC CM/END
046207,001155:
046208,001156: # INDEX IS NEG FOR TM FILE
046209,001157:
046210,001158: 15,3740 66214 CMTMFILE AD THREE
046211,001159: 15,3741 00006 EXTEND
046212,001160: 15,3742 63746 BZMF SAVENDX
046213,001161:
046214,001162: 15,3743 30025 CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF.
046215,001163: 15,3744 54304 TS CMTMTIME
046216,001164: 15,3745 45041 CS THIRTEEN # INITIALIZE COUNTER
046217,001165: 15,3746 54305 SAVENDX TS SW/NDX # A NEGATIVE NUMBER.
046218,001166: 15,3747 00006 EXTEND
046219,001167: 15,3750 31702 DCA PREL
046220,001168: 15,3751 50305 INDEX SW/NDX
046221,001169: 15,3752 52324 DXCH ENDBUF -1
046222,001170: 15,3753 31703 CA RREL
046223,001171: 15,3754 50305 INDEX SW/NDX
046224,001172: 15,3755 54325 TS ENDBUF +1
046225,001173:
046226,001174: 15,3756 31623 CM/END CA CM/SAVE
046227,001175: 15,3757 54021 TS SR
046228,001176: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
046229,001177:
046230,001178: 15,3760 00006 EXTEND
046231,001179: 15,3761 33765 DCA T5IDLER2
046232,001180: 15,3762 53313 DXCH T5LOC
046233,001181: 15,3763 05347 TC RESUME
046234,001182:
046235,001183: 15,3764 1312 EBANK= T5LOC
046236,001184: 15,3764 03155 12062 T5IDLER2 2CADR T5IDLOC
046237,001185:
046238,001186: # DEFINE THE FOLLOWING 17D REGISTERS IN UPBUFF TO BE
046239,001187: # USED TO TELEMETER CM VEHICLE BODY RATE INFORMATION.
046240,001188: # THE INFORMATION IS FILED EACH 0.2 SEC, GIVING 15D
046241,001189: # DATA POINTS EACH 1 SEC. TM LIST IS READ TWICE
046242,001190: # EACH 2 SECONDS.
046243,001191:
046244,001192: # THE SEQUENCE IS: SP TIME INITIAL TIME
046245,001193: # SWITCH ALSO INDEX.
046246,001194: # P ROLL RATE
046247,001195: # Q PITCH RATE
046248,001196: # R YAW RATE
046249,001197: # ETC.
046250,001198:
046251,001199: # CMTMTIME = UPBUFF
046252,001200: # SW/NDX = UPBUFF +1
046253,001201: # ENDBUF = UPBUFF +16D
046254,001202:
046255,001203: # SPACER
046256,001204:
046257,001205: # CONSTANTS USED IN THE ROLL CONTROL SYSTEM:
046258,001206: # CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC,
046259,001207: # XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE
046260,001208: # XBUF = 4DEG
046261,001209:
046262,001210: 15,3766 77464 -T-3 DEC -203 B-14 # CS
046263,001211: 15,3767 00012 VSQMIN DEC .61050061 E-3 # VSQ MIN/4 A PI = 4/(4 (9.1) 180)
046264,001212: 15,3770 5047 2T/TCDU = OCT50 # T/TCDU EXP-14 TCDU = .1SEC
046265,001213: 15,3770 23617 180/8ATT DEC .61813187 # 180/(8 (9.1) 4)=(180/ATT) EXP -3
046266,001214: 15,3771 15,3773 -VMT/180 = -VM/360K # = 20 (2) / 180
046267,001215: 15,3771 5061 2JETT = 4SECS # CS 2 (2) 100 INTEGER
046268,001216: 15,3771 01440 4JETT DEC 800 B-14 # CS 4 (2) 100 INTEGER
046269,001217: 15,3772 00266 XMIN/360 DEC 182 B-14 # XMIN/360 = 4/ 360 EXP 14 = 182 INTEGER
046270,001218: 15,3773 70706 -VM/360K DEC -.22222222 # =-20/( 360 (.25))
046271,001219: 15,3774 15,3770 1/16A1 = 180/8ATT
046272,001220: # 1/16A1 = 180/(16 A1 TT)
046273,001221: # = 180/(16 4.55 4)
046274,001222: 15,3774 00133 XS/360 DEC 91 B-14 # = (XMIN +VI (T-1/K))/360 = 2/360 EXP 14
046275,001223: 15,3775 15,3774 BUFLIM = XS/360 # 4/(2 360)
046276,001224:
046277,001225: 15,3775 5016 KTRCS = HALF # KT = (.25) 2 = .5
046278,001226:
046279,001227:
End of include-file CM_ENTRY_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc