Source Code

046943,000001: # Copyright: Public domain. 046944,000002: # Filename: CM_ENTRY_DIGITAL_AUTOPILOT.agc 046945,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055. 046946,000004: # It is part of the source code for the Command Module's (CM) 046947,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 046948,000006: # Assembler: yaYUL 046949,000007: # Contact: Ron Burkey <info@sandroid.org>. 046950,000008: # Website: www.ibiblio.org/apollo. 046951,000009: # Pages: 1063-1092 046952,000010: # Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the 046953,000011: # same name, using Comanche055 page images. 046954,000012: # 2009-05-20 RSB Corrections: Removed an extraneous label 046955,000013: # EXDAPIN, added a missing instruction in 046956,000014: # COMPAT. 046957,000015: # 2010-08-28 JL Fixed indentation. 046958,000016: 046959,000017: # This source code has been transcribed or otherwise adapted from digitized 046960,000018: # images of a hardcopy from the MIT Museum. The digitization was performed 046961,000019: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many 046962,000020: # thanks to both. The images (with suitable reduction in storage size and 046963,000021: # consequent reduction in image quality as well) are available online at 046964,000022: # www.ibiblio.org/apollo. If for some reason you find that the images are 046965,000023: # illegible, contact me at info@sandroid.org about getting access to the 046966,000024: # (much) higher-quality images which Paul actually created. 046967,000025: 046968,000026: # Notations on the hardcopy document read, in part: 046969,000027: 046970,000028: # Assemble revision 055 of AGC program Comanche by NASA 046971,000029: # 2021113-051. 10:28 APR. 1, 1969 046972,000030: 046973,000031: # This AGC program shall also be referred to as 046974,000032: # Colossus 2A 046975,000033: 046976,000034: # Page 1063 046977,000035: # SUBROUTINE TO READ GIMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2'S COMPLEMENT, BUT THE 046978,000036: # DIFFERENECES ARE IN 1'S COMP. ENTER AND READ ANGLES EACH .1 SEC. 046979,000037: 046980,000038: # CM/DSTBY = 1 FOR DAP OPERATION 046981,000039: # CM/DSTBY = 0 TO TERMINATE DAP OPERATION 046982,000040: 046983,000041: 15,2434 BANK 15 046984,000042: 046985,000043: 15,2000 SETLOC ETRYDAP 046986,000044: 15,2000 BANK 046987,000045: 046988,000046: 15,2434 COUNT 15/DAPEN 046989,000047: 046990,000048: 15,2434 E6,1661 EBANK= AOG 046991,000049: 046992,000050: 15,2434 34377 READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO 046993,000051: 15,2435 27725 ADS CM/GYMDT # PIPTIME. (GROUP 6) 046994,000052: 046995,000053: # IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE 046996,000054: # PHASCHNG PROTECTION IS IN CM/DAPIC. 046997,000055: 046998,000056: 15,2436 35012 CA BIT6 # CHECK FOR FINE ALIGN MODE OF CDU. 046999,000057: 15,2437 71321 MASK IMODES33 # (PROTECT AOG/PIP ETC AS WELL AS 047000,000058: 15,2440 00006 EXTEND # GIMBAL DIFFERENCES) 047001,000059: 15,2441 12447 BZF READGYM1 # OK 047002,000060: 047003,000061: 15,2442 45017 CS BIT1 # NOT IN FINE ALIGN, SO IDLE 047004,000062: 15,2443 70102 MASK CM/FLAGS # SET GYMDIFSW = 0 047005,000063: 15,2444 54102 TS CM/FLAGS 047006,000064: 15,2445 06000 TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE. 047007,000065: 15,2446 02514 TC CM/GYMIC +2 047008,000066: 047009,000067: 15,2447 30032 READGYM1 CA CDUX 047010,000068: 15,2450 57661 XCH AOG 047011,000069: 15,2451 00006 EXTEND 047012,000070: 15,2452 21661 MSU AOG # -DELAOG=AOG(N-1) - AOG(N) 047013,000071: 15,2453 55675 TS -DELAOG 047014,000072: 047015,000073: 15,2454 30033 CA CDUY 047016,000074: 15,2455 57662 XCH AIG 047017,000075: 15,2456 00006 EXTEND 047018,000076: 15,2457 21662 MSU AIG 047019,000077: 15,2460 55676 TS -DELAIG 047020,000078: 047021,000079: 15,2461 30034 CA CDUZ 047022,000080: 15,2462 57663 XCH AMG 047023,000081: 15,2463 00006 EXTEND 047024,000082: 15,2464 21663 MSU AMG 047025,000083: 15,2465 55677 TS -DELAMG 047026,000084: 047027,000085: # Page 1064 047028,000086: 15,2466 40102 DOBRATE? CS CM/FLAGS # CM/DSTBY=103D BIT2 GYMDIFSW=104D BIT1 047029,000087: 15,2467 76214 MASK THREE 047030,000088: 15,2470 50000 INDEX A 047031,000089: 15,2471 02472 TC +1 047032,000090: 15,2472 02501 TC DOBRATE # OK, GO ON 047033,000091: 15,2473 02512 TC CM/GYMIC # DON'T CALC BODYRATE ON FIRST PASS. 047034,000092: 15,2474 12475 NOOP 047035,000093: 15,2475 06000 TC FLUSHJET # TURN OFF ALL JETS 047036,000094: 047037,000095: 15,2476 05412 TC PHASCHNG 047038,000096: 15,2477 00006 OCT 00006 # DEACTIVATE DAP GROUP 6. 047039,000097: 047040,000098: 15,2500 05324 TC TASKOVER 047041,000099: 047042,000100: 15,2501 35017 DOBRATE CA ONE # DO BODYRATE 047043,000101: 15,2502 55720 DOBRATE1 TS JETEM # SKIP BODYRATE 047044,000102: 047045,000103: 15,2503 34377 CA TEN # KEEP CDU READ GOING. 047046,000104: 15,2504 05245 TC WAITLIST 047047,000105: 15,2505 E6,1661 EBANK= AOG 047048,000106: 15,2505 02434 32066 2CADR READGYMB 047049,000107: 047050,000108: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS 047051,000109: 047052,000110: 15,2507 11720 CCS JETEM 047053,000111: 15,2510 02536 TC BODYRATE 047054,000112: 15,2511 05324 TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES) 047055,000113: 047056,000114: 15,2512 26102 CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0 047057,000115: 15,2513 35021 CAF ZERO 047058,000116: 15,2514 55711 TS JETAG 047059,000117: 15,2515 55706 TS OLDELP 047060,000118: 15,2516 55707 TS OLDELQ 047061,000119: 15,2517 55710 TS OLDELR 047062,000120: 15,2520 55723 TS GAMDOT # NO GYM DIF, PROB NO GAM DIF. 047063,000121: 15,2521 02502 TC DOBRATE1 047064,000122: 047065,000123: # Page 1065 047066,000124: # COME HERE TO CORRECT FOR OVERFLOW IN ANGULAR CALCULATIONS 047067,000125: 047068,000126: 15,2522 54001 ANGOVCOR TS L # THIS COSTS 2 MCT TO USE. 047069,000127: 15,2523 00002 TC Q # NO OVFL 047070,000128: 15,2524 50000 INDEX A 047071,000129: 15,2525 35000 CAF LIMITS 047072,000130: 15,2526 26001 ADS L 047073,000131: 15,2527 00002 TC Q 047074,000132: 047075,000133: 6000 BLOCK 3 047076,000134: 047077,000135: 6000 COUNT 03/DAPEN 047078,000136: 047079,000137: 6000 30007 FLUSHJET CA 7 # COME HERE TO TURN OFF ALL JETS. 047080,000138: 6001 00006 EXTEND 047081,000139: 6002 01006 WRITE ROLLJETS # ZERO CHANNEL 6 047082,000140: 6003 00006 EXTEND 047083,000141: 6004 01005 WRITE PYJETS # ZERO CHANNEL 5 047084,000142: 6005 00002 TC Q 047085,000143: 047086,000144: 15,2530 BANK 15 047087,000145: 047088,000146: 15,2530 COUNT 15/DAPEN 047089,000147: 047090,000148: 15,2000 SETLOC ETRYDAP 047091,000149: 15,2000 BANK 047092,000150: 047093,000151: 15,2530 40000 RATEAVG COM # SUBROUTINE TO ESTIMATE RATES IN PRESENCE 047094,000152: 15,2531 61720 AD JETEM # OF CONSTANT ACCELERATION. 047095,000153: 15,2532 00006 EXTEND 047096,000154: 15,2533 75002 MP HALF # DELV (EST) = DELV +(DELV-OLDELV)/2 047097,000155: 15,2534 61720 AD JETEM 047098,000156: 15,2535 00002 TC Q 047099,000157: 047100,000158: # Page 1066 047101,000159: # THESE ARE CALLED FOR THE VARIOUS INITIALIZATIONS NEEDED. 047102,000160: 047103,000161: 20,3612 BANK 20 047104,000162: 20,2000 SETLOC DAPS1 047105,000163: 20,2000 BANK 047106,000164: 047107,000165: 20,3612 COUNT 20/DAPEN 047108,000166: 20,3612 E6,1661 EBANK= AOG 047109,000167: 047110,000168: 20,3612 35057 CM/DAPON CA EBAOG 047111,000169: 20,3613 54003 TS EBANK 047112,000170: 047113,000171: 20,3614 05560 TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER. 047114,000172: 20,3615 00132 ADRES DAPBIT1 # BIT 15 FLAG 6 CMFLAGS. 047115,000173: 20,3616 05560 TC DOWNFLAG # RESET DAPBIT2 047116,000174: 20,3617 00133 ADRES DAPBIT2 # BIT 14 FLAG 6 047117,000175: 20,3620 00006 EXTEND 047118,000176: 20,3621 33737 DCA T5IDLER1 # DISABLE RCS CALCULATION 047119,000177: 20,3622 53313 DXCH T5LOC 047120,000178: 20,3623 00006 EXTEND 047121,000179: 20,3624 33737 DCA T5IDLER1 # DISABLE RCS JET CALLS 047122,000180: 20,3625 53311 DXCH T6LOC 047123,000181: 047124,000182: 20,3626 06000 TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS. 047125,000183: 047126,000184: 20,3627 47707 CS 13,14,15 047127,000185: 20,3630 71466 MASK DAPDATR1 # SET CONFIG BITS=0 FOR ENTRY 047128,000186: 20,3631 55466 TS DAPDATR1 047129,000187: 20,3632 03636 TC +4 047130,000188: 047131,000189: 20,3633 35036 NOTYET CA .5SEC 047132,000190: 20,3634 04662 TC BANKCALL 047133,000191: 20,3635 01732 CADR DELAYJOB # (DELAYJOB DOES INHINT) 047134,000192: 20,3636 35005 +4 CA BIT11 # GAMDIFSW = 94D BIT11, INITLY=0 047135,000193: 20,3637 70102 MASK CM/FLAGS # IF ZERO, WAIT UNTIL CM/POSE UPDATE. 047136,000194: 20,3640 00006 EXTEND 047137,000195: 20,3641 13633 BZF NOTYET 047138,000196: 047139,000197: 20,3642 45017 CS ONE # ACTIVATE CM/DAP 047140,000198: 20,3643 55501 TS RCSFLAGS # USE BIT3 TO INITIALIZE NEEDLER ON 047141,000199: # NEXT PASS. 047142,000200: 20,3644 55727 TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL 047143,000201: # HEADSUP IS SET IN P62. 047144,000202: 047145,000203: # FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62 047146,000204: 047147,000205: 20,3645 30007 CA 7 047148,000206: 20,3646 55711 TS JETAG 047149,000207: 20,3647 55713 TS PAXERR1 # KEEP NEEDLES ZERO UNTIL DAP UPDATE 047150,000208: # IN CASE CMDAPMOD IS NOT +1. 047151,000209: # Page 1067 047152,000210: 20,3650 00004 INHINT 047153,000211: 20,3651 00006 EXTEND 047154,000212: 20,3652 31666 DCA ALFA/180 # DO ATTITUDE HOLD UNTIL KEYBOARD 047155,000213: 20,3653 53604 DXCH ALFACOM # ESTABLISHES HEADSUP. 047156,000214: 20,3654 31664 CA ROLL/180 047157,000215: 20,3655 55717 TS ROLLHOLD # FOR ATTITUDE HOLD IN MODE +1. 047158,000216: 20,3656 00006 EXTEND 047159,000217: 20,3657 75002 MP HALF 047160,000218: 20,3660 55715 TS ROLLC # NOT INTERESTED IN LO WORD. 047161,000219: 047162,000220: 20,3661 40102 CS CM/FLAGS 047163,000221: 20,3662 75004 MASK BIT12 # CMDAPARM =93D BIT12 INITLY=0 047164,000222: 20,3663 26102 ADS CM/FLAGS # SET BIT TO 1. 047165,000223: 047166,000224: 20,3664 40076 CS FLAGWRD2 # SET NODOFLAG TO PREVENT FURTHER 047167,000225: 20,3665 75017 MASK BIT1 # V 37 ENTRIES. 047168,000226: 20,3666 26076 ADS FLAGWRD2 047169,000227: 047170,000228: 20,3667 00003 RELINT 047171,000229: 047172,000230: 20,3670 04701 TC POSTJUMP 047173,000231: 20,3671 54342 CADR P62.1 047174,000232: 047175,000233: # Page 1068 047176,000234: # INITIALIZE CM/DAP. WAITLIST CALL FOR READGYMB. SET SWITCH CM/DSTBY =1 047177,000235: # SO READACCS WILL ENTER A WTLST CALL FOR SETJTAG . 047178,000236: # CMDAPARM = 0, SO ONLY BODY RATE AND ATTITUDE CALCULATIONS ARE DONE. 047179,000237: # SET AVEGEXIT TO CONTINUE AT CM/POSE 047180,000238: 047181,000239: 20,3672 35057 CM/DAPIC CA EBAOG 047182,000240: 20,3673 54003 TS EBANK 047183,000241: 047184,000242: 20,3674 00004 INHINT 047185,000243: 20,3675 41205 CM/DAP2C CS PIPTIME +1 047186,000244: # PRIO OF P62 L PRIO AVG.:PIPTM=PIPTM1. 047187,000245: 20,3676 55720 TS JETEM 047188,000246: 047189,000247: 20,3677 35002 CA POS1/2 047190,000248: 20,3700 65002 AD POS1/2 047191,000249: 20,3701 60025 AD TIME1 # OVFL GUARANTEED 047192,000250: 20,3702 27720 ADS JETEM # C(A) = DELTA TIME SINCE PIPUP 047193,000251: 047194,000252: 20,3703 45022 CS FIVE 047195,000253: 20,3704 61720 AD JETEM 047196,000254: 20,3705 10000 CCS A 047197,000255: 20,3706 63735 AD -CDUT+1 047198,000256: 20,3707 13705 TCF -2 047199,000257: 20,3710 13711 NOOP 047200,000258: 20,3711 65017 AD ONE # SEND NO ZERO TO WTLST 047201,000259: 20,3712 55725 TS CM/GYMDT # FOR RESTART 047202,000260: 20,3713 05245 TC WAITLIST 047203,000261: 20,3714 E6,1661 EBANK= AOG 047204,000262: 20,3714 02434 32066 2CADR READGYMB 047205,000263: 047206,000264: 20,3716 43734 CS CM/SWIC1 # GAMDIFSW, GYMDIFSW, CM/DSTBY 047207,000265: 20,3717 70102 MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP 047208,000266: 20,3720 64377 AD CM/SWIC2 # SET CM/DSTBY, LATSW 047209,000267: # DISABLE ENTRY DISPLAY, SINCE DES. GIMB. 047210,000268: # CALC. (P62.3) GOES TO ENDEXIT 047211,000269: 20,3721 54102 TS CM/FLAGS 047212,000270: 047213,000271: 20,3722 30007 CA 7 047214,000272: 20,3723 55666 TS BETA/180 # NECESSARY: NO OVFL CORRECTIO 047215,000273: 20,3724 35017 CA ONE # INITIALIZE THE TM OF BODY RATES VIA 047216,000274: 20,3725 54305 TS SW/NDX # UPBUFF. 047217,000275: 047218,000276: 20,3726 05372 TC 2PHSCHNG # DOES INHINT/RELINT 047219,000277: 20,3727 40116 OCT 40116 # SAVE TBASE6 047220,000278: 20,3730 05024 OCT 05024 047221,000279: 20,3731 13000 OCT 13000 047222,000280: 047223,000281: 20,3732 04701 TC POSTJUMP 047224,000282: # Page 1069 047225,000283: 20,3733 54326 CADR P62.2 047226,000284: 047227,000285: 20,3734 16017 CM/SWIC1 OCT 16017 047228,000286: 20,3735 4377 CM/SWIC2 = TEN # 00012: CM/DSTBY, LATSW 047229,000287: 20,3735 77766 -CDUT+1 OCT 77766 047230,000288: 20,3736 1312 EBANK= T5LOC 047231,000289: 20,3736 03153 12062 T5IDLER1 2CADR T5IDLOC 047232,000290: 047233,000291: # Page 1070 047234,000292: # THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES 047235,000293: # XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQIREMENT: TEMPORARILY ERASE. JETEM, JETEM +1 047236,000294: 047237,000295: # SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS, 047238,000296: # 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 047239,000297: # ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER, IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS 047240,000298: # STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE. 047241,000299: # THIS IS NECESSARY UNDER THE GROUND-RULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS. 047242,000300: 047243,000301: 20,3740 E6,1661 EBANK= AOG 047244,000302: 15,2536 BANK 15 047245,000303: 15,2000 SETLOC ETRYDAP 047246,000304: 15,2000 BANK 047247,000305: 047248,000306: 15,2536 COUNT 15/DAPEN 047249,000307: 047250,000308: 15,2536 31663 BODYRATE CA AMG # THESE ARE 2'S COMPL NOS, BUT USE ANYWAY. 047251,000309: 15,2537 05074 TC SPCOS 047252,000310: 15,2540 55511 TS COSM 047253,000311: 047254,000312: 15,2541 31661 CA AOG # C(AOG) = AOG/180 047255,000313: 15,2542 05075 TC SPSIN # SINO 047256,000314: 15,2543 55512 TS SINO # SINO = SIN(AOG) 047257,000315: 047258,000316: 15,2544 00006 EXTEND 047259,000317: 15,2545 71511 MP COSM 047260,000318: 15,2546 55514 TS SINOCOSM # SO CM 047261,000319: 047262,000320: 15,2547 31661 CA AOG 047263,000321: 15,2550 05074 TC SPCOS # COSO 047264,000322: 15,2551 55513 TS COSO 047265,000323: 047266,000324: 15,2552 00006 EXTEND 047267,000325: 15,2553 71511 MP COSM 047268,000326: 15,2554 55515 TS COSOCOSM # CO CM 047269,000327: 047270,000328: # PITCHDOT: Q TCDU/180 = IDOT TCDU/180 COSO COSM + MDOT TCDU/180 SINO 047271,000329: 047272,000330: 15,2555 41677 CS -DELAMG 047273,000331: 15,2556 00006 EXTEND 047274,000332: 15,2557 71512 MP SINO 047275,000333: 15,2560 53721 DXCH JETEM # 2 LOCS 047276,000334: 15,2561 41676 CS -DELAIG 047277,000335: 15,2562 00006 EXTEND 047278,000336: 15,2563 71515 MP COSOCOSM 047279,000337: 15,2564 21721 DAS JETEM 047280,000338: 15,2565 31720 CA JETEM 047281,000339: 15,2566 57707 XCH OLDELQ 047282,000340: 15,2567 02530 TC RATEAVG 047283,000341: 15,2570 55702 TS QREL # PITCHDOT = Q TCDU/180 047284,000342: 047285,000343: # Page 1071 047286,000344: # YAWDOT: R TCDU/180 = -IDOT TCDU/180 COSM SINO + MDOT TCDU/180 COSO 047287,000345: 047288,000346: 15,2571 41677 CS -DELAMG 047289,000347: 15,2572 00006 EXTEND 047290,000348: 15,2573 71513 MP COSO 047291,000349: 15,2574 53721 DXCH JETEM 047292,000350: 15,2575 31676 CA -DELAIG 047293,000351: 15,2576 00006 EXTEND 047294,000352: 15,2577 71514 MP SINOCOSM 047295,000353: 15,2600 21721 DAS JETEM 047296,000354: 15,2601 31720 CA JETEM 047297,000355: 15,2602 57710 XCH OLDELR 047298,000356: 15,2603 02530 TC RATEAVG 047299,000357: 15,2604 55703 TS RREL # YAWDOT = R TCDU/180 047300,000358: 047301,000359: # ROLLDOT: P TCDU/180 = ODOT TCDU/180 + IDOT TCDU/180 SINM 047302,000360: 047303,000361: 15,2605 31663 CA AMG 047304,000362: 15,2606 05075 TC SPSIN 047305,000363: 15,2607 55510 TS SINM 047306,000364: 047307,000365: 15,2610 00006 EXTEND 047308,000366: 15,2611 71676 MP -DELAIG 047309,000367: 15,2612 55720 TS JETEM 047310,000368: 15,2613 35021 CA ZERO 047311,000369: 15,2614 20001 DDOUBL # ROUND L INTO A 047312,000370: 15,2615 61675 AD -DELAOG 047313,000371: 15,2616 61720 AD JETEM 047314,000372: 15,2617 40000 CS A 047315,000373: 15,2620 55720 TS JETEM 047316,000374: 15,2621 57706 XCH OLDELP 047317,000375: 15,2622 02530 TC RATEAVG 047318,000376: 15,2623 55701 TS PREL # ROLLDOT = P TCDU/180 047319,000377: 047320,000378: # IF GAMDOT < 0.5 DEG/SEC, THEN GAMDOT =0 047321,000379: 047322,000380: 15,2624 11723 CCS GAMDOT 047323,000381: 15,2625 02627 TC +2 047324,000382: 15,2626 02651 TC NOGAMDUT 047325,000383: 15,2627 41664 CS ROLL/180 047326,000384: 15,2630 05075 TC SPSIN 047327,000385: 15,2631 00006 EXTEND 047328,000386: 15,2632 71723 MP GAMDOT 047329,000387: 15,2633 55721 TS JETEM +1 # -SR GAMDOT 047330,000388: 15,2634 00006 EXTEND 047331,000389: 15,2635 73177 MP SINTRIM # SIN(-20) (FOR NOMINAL L/D = .3) 047332,000390: 15,2636 27701 ADS PREL # PREL TCDU/180=(P-SALF SR GAMDOT)TCDU/180 047333,000391: 047334,000392: 15,2637 31664 CA ROLL/180 047335,000393: 15,2640 05074 TC SPCOS 047336,000394: # Page 1072 047337,000395: 15,2641 40000 COM 047338,000396: 15,2642 00006 EXTEND 047339,000397: 15,2643 71723 MP GAMDOT 047340,000398: 15,2644 27702 ADS QREL # QREL TCDU/180=(Q-CR GAMDOT) TCDU/180 047341,000399: 047342,000400: 15,2645 41721 CS JETEM +1 # B( ) = -SR GAMDOT 047343,000401: 15,2646 00006 EXTEND 047344,000402: 15,2647 73200 MP COSTRIM # COS(-20) (FOR NOMINAL L/D = .3) 047345,000403: 15,2650 27703 ADS RREL # RREL TCDU/180=(R+CALF SR GAMDOT)TCDU/180 047346,000404: 047347,000405: 15,2651 35004 NOGAMDUT CA BIT12 # CMDAPARM = 93D BIT 12 047348,000406: 15,2652 70102 MASK CM/FLAGS 047349,000407: 15,2653 00006 EXTEND 047350,000408: 15,2654 15324 STBYDUMP BZF TASKOVER # DAP NOT ARMED. 047351,000409: 047352,000410: 15,2655 34777 CA POSMAX # PICK UP AT ATTRATES IN 10 MS OR SO. 047353,000411: 15,2656 54030 TS TIME5 047354,000412: 047355,000413: 15,2657 00006 EXTEND 047356,000414: 15,2660 32664 DCA ATDOTCAD 047357,000415: 15,2661 53313 DXCH T5LOC 047358,000416: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS 047359,000417: 047360,000418: 15,2662 05324 TC TASKOVER 047361,000419: 047362,000420: 15,2663 E6,1661 EBANK= AOG 047363,000421: 15,2663 02665 32066 ATDOTCAD 2CADR ATTRATES 047364,000422: 047365,000423: # Page 1073 047366,000424: # CALCULATE BODY ATTITUDE RATES AND INTEGRATE TO OBTAIN ATTITUDE ANGLES. 047367,000425: 047368,000426: # CB PHIDOT TCDU/180 = (CA PREL + SA RREL) TCDU/180 047369,000427: # BETADOT TCDU/180 = (-SA PREL + CA RREL) TCDU/180 047370,000428: # ALFADOT TCDU = (QREL + SB PHIDOT) TCDU/180 047371,000429: 047372,000430: 15,2665 22016 ATTRATES LXCH BANKRUPT # CONTINUE HERE VIA T5 047373,000431: 15,2666 00006 EXTEND # TASK MAY BE SKIPPED AT RESTART. 047374,000432: 15,2667 22012 QXCH QRUPT 047375,000433: 15,2670 30021 CA SR 047376,000434: 15,2671 60000 DOUBLE 047377,000435: 15,2672 55623 TS CM/SAVE 047378,000436: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS 047379,000437: 047380,000438: 15,2673 31702 CA QREL 047381,000439: 15,2674 61665 AD ALFA/180 047382,000440: 15,2675 02522 TC ANGOVCOR 047383,000441: 15,2676 55665 TS ALFA/180 047384,000442: 15,2677 05074 TC SPCOS 047385,000443: 15,2700 55506 TS CALFA # CALFA 047386,000444: 15,2701 55705 TS PHIDOT 047387,000445: 047388,000446: 15,2702 00006 EXTEND 047389,000447: 15,2703 71701 MP PREL 047390,000448: 15,2704 57705 XCH PHIDOT # CA PREL 047391,000449: 15,2705 00006 EXTEND 047392,000450: 15,2706 71703 MP RREL # CA RREL 047393,000451: 15,2707 55704 TS BETADOT 047394,000452: 047395,000453: 15,2710 31665 CA ALFA/180 047396,000454: 15,2711 05075 TC SPSIN 047397,000455: 15,2712 55507 TS SALFA # SIN(ALFA) 047398,000456: 047399,000457: 15,2713 00006 EXTEND 047400,000458: 15,2714 71703 MP RREL # SA RREL 047401,000459: 15,2715 27705 ADS PHIDOT # CB PHIDOT, SAVED. 047402,000460: 047403,000461: 15,2716 41507 CS SALFA 047404,000462: 15,2717 00006 EXTEND 047405,000463: 15,2720 71701 MP PREL 047406,000464: 15,2721 27704 ADS BETADOT # SAVE BETADOT TCDU/180 047407,000465: 15,2722 27666 ADS BETA/180 # BETA DONE. 047408,000466: 047409,000467: 15,2723 05075 TC SPSIN 047410,000468: 15,2724 00006 EXTEND 047411,000469: 15,2725 71705 MP PHIDOT # NEGLECT CB IN CB PHIDOT 047412,000470: 15,2726 61665 AD ALFA/180 047413,000471: 15,2727 02522 TC ANGOVCOR 047414,000472: 15,2730 55665 TS ALFA/180 # ALFA DONE. 047415,000473: # Page 1074 047416,000474: 15,2731 40000 COM 047417,000475: 15,2732 61603 AD ALFACOM 047418,000476: 15,2733 02522 TC ANGOVCOR # JUST IN CASE ... 047419,000477: 15,2734 55477 TS AK1 047420,000478: 15,2735 55572 TS QAXERR # FOR PITCH FDAI AND EDIT. 047421,000479: 047422,000480: 15,2736 31705 CA PHIDOT # PHIDOT TCDU/180, NEGLECTING CB 047423,000481: 15,2737 61664 AD ROLL/180 047424,000482: 15,2740 02522 TC ANGOVCOR 047425,000483: 15,2741 55714 TS ROLLTM # ROLL/180 FOR TM. 047426,000484: 15,2742 55664 TS ROLL/180 # ROLL DONE. 047427,000485: 047428,000486: # START YAW AUTOPILOT HERE. RATE DAMPING WITH ENFORCED COORDINATED ROLL MANEUVER. 047429,000487: 047430,000488: 15,2743 41666 CS BETA/180 # IF IN ATM, SAVE 'RAXERR' FOR TM DNLST. 047431,000489: 15,2744 61604 AD BETACOM 047432,000490: 15,2745 55573 TS RAXERR # IF OUTSIDE ATM, USE TM REGISTER 'RAXERR' 047433,000491: # AS A TEMPORARY. (DAP OPERATION IS IN INTERRUPT, SO 047434,000492: # IS OK.) FINAL C(RAXERR) AT END OF DAP CYCLE WILL 047435,000493: # BE R-AXIS ERROR. 047436,000494: 047437,000495: 15,2746 35015 CA BIT3 # .05GSW = 102D BIT3 SW=0, LESS .05G 047438,000496: 15,2747 70102 MASK CM/FLAGS # SWITCH =1, GREATER THAN .05 G 047439,000497: 15,2750 00006 EXTEND 047440,000498: 15,2751 13037 BZF EXDAP # IF G LESS THAN .05 047441,000499: 15,2752 45017 CS ONE # IF G GEQ THAN .05 047442,000500: 15,2753 55700 TS CMDAPMOD # SAVE -1 FOR USE IN CM/RCS 047443,000501: 047444,000502: 15,2754 55477 TS AK1 # TO ZERO PITCH AND YAW FDAI NEEDLES 047445,000503: 15,2755 55500 TS AK2 # IN ATM. (MODE =-1) 047446,000504: 047447,000505: 15,2756 41701 CS PREL # YAW ERROR = RREL - PREL TAN(ALFA) 047448,000506: 15,2757 00006 EXTEND 047449,000507: 15,2760 73177 MP SINTRIM # LET SIN(-20) BE APPROX FOR TAN(-20) 047450,000508: 15,2761 61703 AD RREL 047451,000509: 15,2762 03027 TC 2D/SDZ # GO TEST DZ. GET TAG: +0 IF IN DZ 047452,000510: 15,2763 50000 INDEX A # +/- 1 IF NOT 047453,000511: 15,2764 33202 CAF YJETCODE 047454,000512: 047455,000513: 15,2765 55720 TS JETEM 047456,000514: 047457,000515: # START PITCH AUTOPILOT HERE. RATE DAMPING ONLY. 047458,000516: 047459,000517: 15,2766 31702 CA QREL 047460,000518: 15,2767 03027 TC 2D/SDZ 047461,000519: 15,2770 50000 EXDAPIN INDEX A # COME HERE FROM EX ATM DAP 047462,000520: 15,2771 33205 CAF P/RJCODE 047463,000521: 15,2772 27720 ADS JETEM # COMBINE ALL NEW BITS. 047464,000522: 047465,000523: 15,2773 00006 EXTEND # DOES NOT REQUIRE SAVING OLD CODES. 047466,000524: # Page 1075 047467,000525: 15,2774 01005 WRITE PYJETS # SET PYCHAN TO DESIRED BIT CONFIG. 047468,000526: 047469,000527: 15,2775 11711 CCS JETAG 047470,000528: 15,2776 03216 TC CM/RCS 047471,000529: 15,2777 03677 TC CM/FDAI 047472,000530: 15,3000 03704 TC CM/FDAIR -1 # (JETAG=-1 EQUIVALENT TO CMDAPMOD=+1) 047473,000531: 047474,000532: # Page 1076 047475,000533: # DEAD ZONE LOGIC USED BY ENTRY DIGITAL AUTOPILOTS. 047476,000534: 047477,000535: 15,3001 10000 3DDZ CCS A # YAWLIM=1.0-3/180=16384-273=16111 047478,000536: 15,3002 63175 AD YAWLIM 047479,000537: 15,3003 13033 TCF DZCOM 047480,000538: 15,3004 63175 AD YAWLIM 047481,000539: 15,3005 13034 TCF DZNOCOM 047482,000540: 047483,000541: # BIASED DZ FOR EXT ATM DAP. 047484,000542: 15,3006 55624 BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L. 047485,000543: 15,3007 10000 CCS A # START ERROR DZ. 047486,000544: 15,3010 43174 CS CM/BIAS # = .6/180 047487,000545: 15,3011 13013 TCF +2 047488,000546: 15,3012 33174 CA CM/BIAS 047489,000547: 15,3013 60001 AD L # BIAS THE ERROR. 047490,000548: 15,3014 22002 LXCH Q # SAVE CALLER'S RETURN ADDRES. 047491,000549: 15,3015 03001 TC 3DDZ # GO GENERATE THE ERROR BIT. 047492,000550: 15,3016 52002 DXCH L # BIT TO L, RESTORE CALLER'S Q. 047493,000551: 15,3017 11624 4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT 047494,000552: 15,3020 63172 AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE 047495,000553: 15,3021 13023 TCF +2 # JET BITS ACCORDING TO SGN OF RATE. 047496,000554: 15,3022 63172 AD 4D/SLIM 047497,000555: 15,3023 54000 TS A 047498,000556: 15,3024 13026 TCF +2 # RATE OK. CONTINUE 047499,000557: 15,3025 22007 ZL # RATE GEQ 4 D/S. OVER RIDE ERROR BIT 047500,000558: 15,3026 57624 XCH JETEM2 # AND CONTINUE TO GET SIGN. 047501,000559: 047502,000560: 15,3027 10000 2D/SDZ CCS A # COME HERE TO TEST IF A WITHIN 2DEG/S DZ 047503,000561: 15,3030 63173 AD YDOTLIM # 1.0 - YDOT DZ (OR PDOT) 047504,000562: 15,3031 13034 TCF +3 047505,000563: 15,3032 63173 AD YDOTLIM # YDOT DZ = 2 DEG/SEC 047506,000564: 15,3033 40000 DZCOM COM 047507,000565: 15,3034 55721 DZNOCOM TS JETEM +1 # GENERATE TAG, SET C(A)= -+1 OUTSIDE DZ 047508,000566: 15,3035 35021 CA ZERO # SET C(A) = +0 INSIDE 047509,000567: 15,3036 00002 TC Q 047510,000568: 047511,000569: # Page 1077 047512,000570: # EXTRA ATMOSPHERIC DIGITAL AUTOPILOT 047513,000571: 047514,000572: # 1. IF ABS(CALF) -C(45) POS, USE IF CALFA POS, CMDAPMOD= +0 047515,000573: # BETA: YAW ERROR = SGN(CALF) (BETACOM -BETA) IF CALFA NEG, CMDAPMOD= -0 047516,000574: # RATE = BETADOT IF CMDAPMOD = -0, RATE = RREL 047517,000575: # R-AXIS = CONTROL 047518,000576: 047519,000577: # ROLL: ROLL ERROR = SGN(CALF) (ROLLC - ROLL) IF CMDAPMOD = -0, RATE DAMP ONLY. 047520,000578: # RATE = PREL 047521,000579: # P-AXIS = CONTROL 047522,000580: 047523,000581: # 2. IF C(45) GEQ CALFA GEQ -C(45), USE CMDAPMOD = +1 047524,000582: # BETA: ROLL ERROR = SGN(-SALF) (BETACOM -BETA) 047525,000583: # RATE = BETADOT 047526,000584: # P-AXIS = CONTROL 047527,000585: 047528,000586: # ROLL: YAW ERROR = SGN(SALF) (ROLLC - ROLL) RATE DAMP ONLY. 047529,000587: # RATE = RREL 047530,000588: # R-AXIS = CONTROL 047531,000589: 047532,000590: # 3. FOR ALL CASES, USE 047533,000591: # ALFA: PITCH ERROR = (ALFACOM - ALFA) 047534,000592: # RATE = QREL 047535,000593: # Q-AXIS = CONTROL 047536,000594: 047537,000595: 15,3037 55700 EXDAP TS CMDAPMOD # +0 FOR NOW 047538,000596: 15,3040 11506 CCS CALFA 047539,000597: 15,3041 63176 AD C45LIM # =1.0-COS(45) 047540,000598: 15,3042 13044 TCF +2 047541,000599: 15,3043 63176 AD C45LIM 047542,000600: 15,3044 54000 TS A 047543,000601: 15,3045 13126 TCF EXDAP2 # HERE IF ABS(CALFA) L COS(45) 047544,000602: 047545,000603: 15,3046 11506 CCS CALFA # |CALFA| > 0.707 047546,000604: 15,3047 13050 TCF +1 # CONTINUE IF POS; GO TO EXDAP4 IF NEG. 047547,000605: 047548,000606: 15,3050 11727 CCS P63FLAG # VALID VALUES ARE: -1, +1, +0. 047549,000607: 15,3051 03064 TC EXDAP4 047550,000608: 15,3052 03054 TC +2 047551,000609: 15,3053 03064 TC EXDAP4 047552,000610: 15,3054 05412 TC PHASCHNG # SINGLE PASS THROUGH HERE. 047553,000611: 15,3055 40334 OCT 40334 047554,000612: 15,3056 45017 CS ONE 047555,000613: 15,3057 55727 TS P63FLAG # SET FLAG TO ASSURE SINGLE PASS. 047556,000614: 15,3060 33171 CA NSEC 047557,000615: 15,3061 05245 TC WAITLIST 047558,000616: 15,3062 E6,1661 EBANK= AOG 047559,000617: 15,3062 02374 54066 2CADR WAKEP62 # CALL TO TERMINATE P62 IN N SEC. 047560,000618: # Page 1078 047561,000619: # 65 DEG/ 3DEG/SEC = 21 SEC NOMINAL 047562,000620: # TRANSIT TIME FROM ALFA=45 TO ALFA TRIM. 047563,000621: 047564,000622: 15,3064 11711 EXDAP4 CCS JETAG # ROLLJET INTERFACE TEST BETWEEN .1 SEC 047565,000623: 15,3065 13073 TCF EXDAP3 # DAP AND THE 2 SEC CM/RCS DAP 047566,000624: 15,3066 13073 TCF EXDAP3 047567,000625: 15,3067 35021 CA ZERO 047568,000626: 15,3070 00006 EXTEND # TURN OFF ROLL JETS IF ON AND WAIT 047569,000627: 15,3071 01006 WRITE ROLLJETS # UNTIL START OF 2 SEC CM/RCS CYCLE 047570,000628: 15,3072 55711 TS JETAG # RESTORE PROPER VALUE +0 047571,000629: 047572,000630: # ROLL FDAI WILL BE IN ERROR UNTIL NEXT CM/RCS CALL. 047573,000631: 15,3073 11506 EXDAP3 CCS CALFA # HERE IF ABS(CALFA) GEQ COS(45) 047574,000632: 15,3074 31573 CA RAXERR # C()= BETACOM - BETA/180 047575,000633: 15,3075 13101 TCF EXDAP1 047576,000634: 15,3076 45021 CS ZERO 047577,000635: 15,3077 55700 TS CMDAPMOD # FOR CM/RCS 047578,000636: 15,3100 41573 CS RAXERR # COMPLEMENT OF YAW ERROR. 047579,000637: 15,3101 55573 EXDAP1 TS RAXERR # FOR YAW FDAI 047580,000638: 15,3102 55500 TS AK2 # WANT RAXERR FOR TM. 047581,000639: 15,3103 54001 TS L 047582,000640: 15,3104 11700 CCS CMDAPMOD # COORDINATE BETA CONTROL. 047583,000641: 15,3105 03110 TC +3 # C(CMDAPMOD) CAN BE +1, +0, OR -0. 047584,000642: 15,3106 35017 CA ONE # USE BETADOT TO COORD IN MODE +0 047585,000643: 15,3107 50000 INDEX A # OTHERWISE USE RREL. 047586,000644: 15,3110 31703 CA RREL 047587,000645: 15,3111 03006 TC BIASEDZ # GO TEST DZ +0 IF IN DX, +-1 OTHERWISE 047588,000646: # IF GEQ 4D/S, SET ERROR BIT IN L=0 047589,000647: 15,3112 00006 EXTEND 047590,000648: 15,3113 04001 ROR LCHAN # L HAS BETA BIT 047591,000649: 15,3114 50000 INDEX A 047592,000650: 15,3115 33202 CAF YJETCODE 047593,000651: 15,3116 55720 TS JETEM 047594,000652: 047595,000653: 15,3117 31572 CA QAXERR # ALFA ERROR. 047596,000654: 15,3120 54001 TS L 047597,000655: 15,3121 31702 CA QREL # FOR ALPHADOT USE QREL 047598,000656: 15,3122 03006 TC BIASEDZ 047599,000657: 15,3123 00006 EXTEND 047600,000658: 15,3124 04001 ROR LCHAN 047601,000659: 15,3125 12770 TCF EXDAPIN # CONTINUE ON IN DAP 047602,000660: 047603,000661: 15,3126 25700 EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1 047604,000662: 047605,000663: 15,3127 45017 CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO 047606,000664: 15,3130 55711 TS JETAG # TO 2 SEC FOR ROLL JETS. (IF CMDAPMOD 047607,000665: # =0 AND JETAG =-1, QUENCHES JETS IF ON) 047608,000666: 047609,000667: 15,3131 11727 CCS P63FLAG # IF FLAG WAS +1, SET =0. 047610,000668: 15,3132 55727 TS P63FLAG 047611,000669: # Page 1079 047612,000670: 15,3133 13134 NOOP 047613,000671: 047614,000672: 15,3134 11507 CCS SALFA # BETA CONTROL WITH P JETS 047615,000673: 15,3135 41573 CS RAXERR # B()= BETACOM - BETA/180 047616,000674: 15,3136 13140 TCF +2 047617,000675: 15,3137 31573 CA RAXERR 047618,000676: 15,3140 55713 TS PAXERR1 # TEMP SAVE. ERROR/180 047619,000677: 15,3141 00006 EXTEND 047620,000678: 15,3142 75002 MP HALF # CM/FDAI EXPECTS ERROR/360. 047621,000679: 15,3143 57713 XCH PAXERR1 # ERROR/360 FOR FDAI, GET ERROR/180. 047622,000680: 15,3144 54001 TS L 047623,000681: 15,3145 11507 CCS SALFA 047624,000682: 15,3146 41704 CS BETADOT # USE BETADOT TO COORD IN MODE +1 047625,000683: 15,3147 03151 TC +2 047626,000684: 15,3150 31704 CA BETADOT 047627,000685: 15,3151 03006 TC BIASEDZ 047628,000686: 15,3152 00006 EXTEND 047629,000687: 15,3153 04001 ROR LCHAN 047630,000688: 15,3154 50000 INDEX A 047631,000689: 15,3155 33205 CAF P/RJCODE # GET ROLL CODE 047632,000690: 15,3156 00006 EXTEND # ROLL CONTROL WITH YAW JETS. 047633,000691: 15,3157 01006 WRITE ROLLJETS # WE'LL SKIP REGULAR ROLL SYST 047634,000692: 047635,000693: 15,3160 31717 CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME. 047636,000694: 15,3161 00006 EXTEND 047637,000695: 15,3162 21664 MSU ROLL/180 # 1'S COMPL, BUT SO WHAT'S A BIT? 047638,000696: 15,3163 54001 TS L # FORCE A LIMIT CYCLE IN YAW RATE. 047639,000697: 15,3164 11507 CCS SALFA 047640,000698: 15,3165 30001 CA L # TO REMOVE ITS BIASING EFFECT ON M DOT. 047641,000699: 15,3166 03101 TC EXDAP1 047642,000700: 15,3167 40001 CS L 047643,000701: 15,3170 03101 TC EXDAP1 047644,000702: 047645,000703: 15,3171 04064 NSEC DEC 2100 B-14 # 65 DEG/ 3 DEG/SEC 047646,000704: # IF NSEC IS CHANGED, REMEMBER TO CHANGE 4.33SPOT. 047647,000705: 15,3172 37734 4D/SLIM DEC 16348 B-14 # 1.0 -4/180 D/S = 4/1800 EXP 14 047648,000706: 15,3173 37756 YDOTLIM DEC 16366 B-14 # =1.0 - YDOT DZ= 16384 -18 047649,000707: # YDOT DZ = YDOT TCDU/180 = 2/1800 EXP 14 047650,000708: 047651,000709: 15,3174 00067 CM/BIAS DEC 55 B-14 # =.6/180 B14 = 55 047652,000710: 15,3175 37267 YAWLIM DEC 16055 B-14 # YAWLIM=1.0-3.6/180=16384-329=16055 047653,000711: 15,3176 11277 C45LIM DEC .29289 # =1.0-COS(45) 047654,000712: 047655,000713: 15,3177 65033 SINTRIM DEC -.34202 # SIN(-20) (FOR NOMINAL L/D = .3) 047656,000714: 15,3200 36044 COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3) 047657,000715: 047658,000716: # TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA 047659,000717: # USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY 047660,000718: # FROM TRIM, SO USE ON-BOARD ESTIMATES. 047661,000719: 047662,000720: # Page 1080 047663,000721: # JET CODE TABLES FOLLOW 047664,000722: 047665,000723: 15,3201 00120 OCTAL 00120 # POS Y 047666,000724: 15,3202 00000 YJETCODE OCTAL 00000 # RCS JET BITS 047667,000725: 15,3203 00240 OCTAL 00240 # NEG Y 047668,000726: 15,3204 00005 OCTAL 00005 # POS R JET BITS ALSO POS P JET BITS 047669,000727: 15,3205 00000 P/RJCODE OCTAL 00000 047670,000728: 15,3206 00012 OCTAL 00012 # NEG R ALSO NEG P 047671,000729: 047672,000730: # Page 1081 047673,000731: # RCS THIS SECTION IS ENTERED EACH 2 SEC BY WAITLIST CALL FOLLOWING A DELAY OF 1.2 SEC AFTER PIPUP. 047674,000732: # THE TASK SETJTAG SETS A FLAG IN JETAG TO SIGNIFY THAT ROLL UPDATE IS DUE. IN ROUGHLY 5 CS BPDYRATE WILL BE 047675,000733: # EXECUTED AND JETAG WILL CAUSE CM/RCS TO ACT ON ROLLC IMMEDIATELY THEREAFTER. THE 047676,000734: # TASK SAVES THE CALL TIME SO THAT CM/RCS CAN DETERMINE HOW MUCH OF THE 2 SEC INTERVAL REMAINS BEFORE THE 047677,000735: # NEXT UPDATE. 047678,000736: 047679,000737: 15,3207 40025 SETJTAG CS TIME1 # SAVE NOMINAL UPDATE TIME FOR SYNCH 047680,000738: 15,3210 55712 TS TUSED 047681,000739: # THE 5 CS APPEARS IN TIMETST. 047682,000740: 15,3211 35017 CA ONE # RATHER THAN INCR, FOR SAFETY 047683,000741: 15,3212 55711 TS JETAG # SET JETAG=1 TO CAUSE CM/RCS TO BE 047684,000742: 15,3213 05412 TC PHASCHNG 047685,000743: 15,3214 00001 OCT 00001 047686,000744: 047687,000745: 15,3215 05324 TC TASKOVER # EXECUTED AFTER NEXT BODYRATE UPDATE 047688,000746: 047689,000747: # PREDICTIVE ROLL SYSTEM ENTRY STEERING PROVIDES ROLL COMMAND IN LOC ROLLC. THE FOLLOWING CALCULATES THE 047690,000748: # TRAJECTORY TO THE ORIGIN IN PHASE PLANE (X,V). PROGRAM ENTERS JET ON AND OFF CALLS INTO WTLST TO PRODUCE 047691,000749: # THE DESIRED TRAJECTORY. ONLY THOSE CALLS WHICH CAN BE EXECUTED WITHIN THE INTERVAL T (2 SEC) ARE ENTERED IN 047692,000750: # WTLST, THE REMAINDER ARE RECONSIDERED AT NEXT UPDATE. 047693,000751: 047694,000752: 15,3216 5001 HALFPR EQUALS NEG1/2 +1 047695,000753: 047696,000754: # CLEAR JETAG BEFORE TIMETST. SET TO +0 TO SHOW 047697,000755: # ROLL DAP CALLED. IN EVENT OF RESTART, BODYRATE 047698,000756: # MAY MISS A CYCLE. CM/RCS WILL MISS A CYCLE ONLY 047699,000757: # IF A RESTART OCCURS AFTER TIMETST COMMENCES. 047700,000758: 047701,000759: 15,3216 45017 CM/RCS CS ONE 047702,000760: 15,3217 55617 TS JNDX # SET NDX FOR POS ROLL, AND CHANGE LATER 047703,000761: 047704,000762: 15,3220 45033 CS 2T/TCDU # ROLLDOT = DELAOG + DELAIG SINM =DELR 047705,000763: 15,3221 00006 EXTEND 047706,000764: 15,3222 71701 MP PREL # DELR/180 = RDOT TCDU/180 = RDOT/1800 047707,000765: 15,3223 60001 AD L # -2 RDOT T/180 IN L 047708,000766: 15,3224 55613 TS -VT/180 # SAVE -2VT/180 HERE 047709,000767: 047710,000768: 15,3225 41664 CS ROLL/180 047711,000769: 15,3226 54021 TS SR # SAVE (-R/180) /2 047712,000770: 047713,000771: 15,3227 40102 CS CM/FLAGS 047714,000772: 15,3230 75014 MASK BIT4 # LATSW = 101D BIT4 047715,000773: 15,3231 00006 EXTEND # ROLL OVER TOP $ 047716,000774: 15,3232 13240 BZF GETLCX # NO, TAKE SHORTEST PATH 047717,000775: 15,3233 26102 ADS CM/FLAGS # YES, ENFORCE ROLL OVER TOP.. (BIT =0) 047718,000776: 15,3234 31715 CA ROLLC # (ROLLC/180) /2 047719,000777: 15,3235 60021 AD SR # -(R/180) /2 047720,000778: 15,3236 57614 XCH LCX/360 # DIFFERENT X REQD HERE. DISCONT AT 180. 047721,000779: 15,3237 13300 TCF COMPAT # POSSIBLE OVFL ABOVE. 047722,000780: 047723,000781: # Page 1082 047724,000782: 15,3240 35002 GETLCX CA POS1/2 # FORM RCOM/360 047725,000783: 15,3241 60000 DOUBLE 047726,000784: 15,3242 61715 AD ROLLC 047727,000785: 15,3243 57614 XCH LCX/360 # IGNORE POSSIBLE OVFL. 047728,000786: 047729,000787: 15,3244 30021 CA SR # FORM -R/360 047730,000788: 15,3245 65000 AD NEG1/2 047731,000789: 15,3246 65000 AD NEG1/2 # IGNORE OVFL 047732,000790: 15,3247 57614 XCH LCX/360 # -R/360 047733,000791: 15,3250 27614 ADS LCX/360 # LCX/360 = RCOM/360 - R/360 RANGE (-1,1) 047734,000792: 047735,000793: # DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL ? 047736,000794: 047737,000795: 15,3251 11613 CCS -VT/180 # TAKE SHORTEST ANGULAR PATH 047738,000796: 15,3252 65017 AD ONE # (BASED ON SINGLE JET ACCELERATION) 047739,000797: 15,3253 13255 TCF +2 047740,000798: 15,3254 65017 AD ONE 047741,000799: 15,3255 00006 EXTEND 047742,000800: 15,3256 71613 MP -VT/180 # C(-VT/180) = -2 VT/180 047743,000801: 15,3257 00006 EXTEND 047744,000802: 15,3260 73750 MP 1/16A1 # = 180/(16 A1 TT) 047745,000803: 15,3261 00006 EXTEND 047746,000804: 15,3262 11506 DV CALFA 047747,000805: 15,3263 54001 TS L 047748,000806: 15,3264 11614 CCS LCX/360 047749,000807: 15,3265 35002 CAF POS1/2 047750,000808: 15,3266 13270 TCF +2 047751,000809: 15,3267 45002 CS POS1/2 047752,000810: 15,3270 61614 AD LCX/360 # IS LCX/360 LESS THAN 180 DEGS $ 047753,000811: 15,3271 60001 AD L 047754,000812: 15,3272 54001 TS L 047755,000813: 15,3273 13300 TCF COMPAT # YES, GO ON. 047756,000814: 15,3274 50000 TRTAGXPI INDEX A # NO, SHIFT X BY - SGN(X) 2 PI 047757,000815: 15,3275 45001 CS HALFPR # +A YIELDS -1/2 047758,000816: 15,3276 60000 DOUBLE 047759,000817: 15,3277 27614 ADS LCX/360 047760,000818: 047761,000819: 15,3300 31614 COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN. 047762,000820: 15,3301 00006 EXTEND 047763,000821: 15,3302 71506 MP CALFA # COS ALFA 047764,000822: 15,3303 55614 TS LCX/360 # SCALED LCX OK HERE. 047765,000823: 047766,000824: 15,3304 11700 CCS CMDAPMOD # FOUR POSSIBILITIES HERE 047767,000825: 15,3305 03675 TC DZCALL1 # EXIT, SETTING JETAG=0. (C(A)=0) 047768,000826: # ALL 3 AXES ALREADY DONE. 047769,000827: 15,3306 03307 TC +1 # G LESS THAN .05. CA POS. CONTINUE 047770,000828: 15,3307 31614 CA LCX/360 # G GEQ .05. CONTINUE IN CM/RCS 047771,000829: 15,3310 55614 TS LCX/360 # CMDAPMOD=-0. DAMPING ONLY. SET LCX=0 047772,000830: 15,3311 55571 TS ERRORZ # INITIAL ROLL ERROR (UNREFLECTED) FOR TM. 047773,000831: 15,3312 55713 TS PAXERR1 # SAVE LCX FOR FDAI AND EDIT. (/360) 047774,000832: # Page 1083 047775,000833: 15,3313 31613 CA -VT/180 # GET - 2 VT/180 047776,000834: 15,3314 54021 TS SR 047777,000835: 15,3315 30021 CA SR # GET -VT/180, LEAVE -VT/360 IN SR FOR DZ 047778,000836: 15,3316 55570 TS -VT/180E # DIAGNOSTIC **** 047779,000837: 15,3317 57613 XCH -VT/180 # NOW CONTENTS OF -VT/180 AS LABELED 047780,000838: 15,3320 00006 EXTEND 047781,000839: 15,3321 71613 MP -VT/180 # B(A) = -ZVT/180 047782,000840: 15,3322 00006 EXTEND 047783,000841: 15,3323 73750 MP 180/8ATT 047784,000842: 15,3324 55616 TS VSQ/4API 047785,000843: 047786,000844: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 -.5 BUFLIM/360 POS? 047787,000845: 047788,000846: 15,3325 60000 WHICHALF DOUBLE # FOR SECOND BURN, A1 047789,000847: 15,3326 40000 COM 047790,000848: 15,3327 63754 AD BUFLIM # =BUFLIM/(2 360) 047791,000849: 15,3330 54001 TS L 047792,000850: 15,3331 11613 CCS -VT/180 047793,000851: 15,3332 40001 CS L 047794,000852: 15,3333 13335 TCF +2 047795,000853: 15,3334 30001 CA L 047796,000854: 15,3335 61614 AD LCX/360 047797,000855: 15,3336 63754 AD BUFLIM 047798,000856: 15,3337 00006 EXTEND 047799,000857: 15,3340 63355 BZMF REFLECT # POINT (X,V) IN LHP. 047800,000858: 047801,000859: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 + .5 BUFLIM/360 NEG? 047802,000860: 047803,000861: 15,3341 40000 COM 047804,000862: 15,3342 63754 AD BUFLIM 047805,000863: 15,3343 63754 AD BUFLIM 047806,000864: 15,3344 00006 EXTEND 047807,000865: 15,3345 63364 BZMF DZ1 # POINT (X,V) IN RHP 047808,000866: 047809,000867: # IS POINT WITHIN VELOCITY DZ? 047810,000868: 047811,000869: 15,3346 43747 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG? 047812,000870: 15,3347 61616 AD VSQ/4API 047813,000871: 15,3350 00006 EXTEND 047814,000872: 15,3351 63657 BZMF DZCALL # YES. 047815,000873: 047816,000874: # POINT IS IN BUFFER ZONE. THRUST TO X AXIS. 047817,000875: 047818,000876: 15,3352 41617 CS JNDX 047819,000877: 15,3353 55620 TS JNDX1 047820,000878: 15,3354 03437 TC OVRLINE1 047821,000879: 047822,000880: 15,3355 41613 REFLECT CS -VT/180 # RELFECT LHP INTO RHP REL TO TERM CONTR 047823,000881: 15,3356 55613 TS -VT/180 047824,000882: 15,3357 54021 TS SR # -VT/360 SAVED FOR DZ. 047825,000883: # Page 1084 047826,000884: 15,3360 41614 CS LCX/360 047827,000885: 15,3361 55614 TS LCX/360 047828,000886: 15,3362 41617 CS JNDX 047829,000887: 15,3363 55617 TS JNDX 047830,000888: 047831,000889: # IS VSQ/4API - (VSQ/4API) MIN NEG? 047832,000890: 047833,000891: 15,3364 43747 DZ1 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG $ 047834,000892: 15,3365 61616 AD VSQ/4API 047835,000893: 15,3366 00006 EXTEND 047836,000894: 15,3367 63371 BZMF DZ2 # YES, GO TEST FURTHER. 047837,000895: 15,3370 13376 TCF MAXVTEST # NO 047838,000896: 047839,000897: # IS X/360 - XMIN/360 -VT/360 NEG? 047840,000898: 047841,000899: 15,3371 43752 DZ2 CS XMIN/360 # XMIN/360 = 4/360 047842,000900: 15,3372 61614 AD LCX/360 047843,000901: 15,3373 60021 AD SR # C(SR) = -VT/360 047844,000902: 15,3374 00006 EXTEND # IS X/360 - XMIN/360 -VT/360 NEG $ 047845,000903: 15,3375 63657 BZMF DZCALL # YES, IN DZ. EXIT SETTING JETAG=0. 047846,000904: 047847,000905: # IS XD/360 - VM/360K - XS/360 POS? 047848,000906: 047849,000907: 15,3376 41617 MAXVTEST CS JNDX 047850,000908: 15,3377 55620 TS JNDX1 # NOW CAN SET JNDX1 FOR TON2 JETS. 047851,000909: 15,3400 43754 CS XS/360 # XS/360 = (XMIN -YMIN/K) /360 047852,000910: 15,3401 61616 AD VSQ/4API 047853,000911: 15,3402 61614 AD LCX/360 047854,000912: 15,3403 55615 TS XD/360 # XD/360= X/360 +VSQ/4API X INTERCEPT 047855,000913: # BUT C(XD/360) = (XD - XS) /360 047856,000914: 15,3404 63753 AD -VM/360K # X INTERCEPT FOR MAX V (VM) 047857,000915: 15,3405 40000 COM 047858,000916: 15,3406 00006 EXTEND 047859,000917: 15,3407 63415 BZMF MAXVTIM1 # YES, THRUST TO VM 047860,000918: 15,3410 31615 CA XD/360 047861,000919: 15,3411 00006 EXTEND 047862,000920: 15,3412 75002 MP KTRCS 047863,000921: 15,3413 20001 DDOUBL # GO SAVE PREDICTED DRIFTING VELOCITY. 047864,000922: 047865,000923: 15,3414 03420 TC GETON1 # INSURE THAT Q IS POS AS TAG. 047866,000924: 15,3415 00006 MAXVTIM1 EXTEND 047867,000925: 15,3416 22007 ZQ # SET +Q AS TAG 047868,000926: 15,3417 43753 CS -VMT/180 047869,000927: 15,3420 55567 GETON1 TS VDT/180 # VDT/180 OR VMT/180 047870,000928: 15,3421 61613 AD -VT/180 047871,000929: 15,3422 60000 DOUBLE 047872,000930: 15,3423 00006 EXTEND 047873,000931: 15,3424 73750 MP 180/8ATT 047874,000932: 15,3425 55621 TS TON1 # TON1 / 4T 047875,000933: # Page 1085 047876,000934: 15,3426 00006 EXTEND 047877,000935: 15,3427 63431 BZMF OVRLINE 047878,000936: 15,3430 03443 TC GETON2 # RESET Q POS IF CAME FROM MAXVTIM1 047879,000937: 047880,000938: 15,3431 10002 OVRLINE CCS Q 047881,000939: 15,3432 13437 TCF OVRLINE1 047882,000940: 15,3433 31620 MAXVTIM2 CA JNDX1 # ABOVE VM, SO THRUST DOWN 047883,000941: 15,3434 55617 TS JNDX 047884,000942: 15,3435 41621 CS TON1 047885,000943: 15,3436 13442 TCF OVRLINE2 +1 047886,000944: 047887,000945: 15,3437 41613 OVRLINE1 CS -VT/180 # DRIFT AT V 047888,000946: 15,3440 55567 TS VDT/180 047889,000947: 15,3441 35021 OVRLINE2 CA ZERO 047890,000948: 15,3442 55621 TS TON1 047891,000949: 15,3443 31567 GETON2 CA VDT/180 # VDT/180, OR VMT/180 OR VT/180 047892,000950: 15,3444 60000 DOUBLE 047893,000951: 15,3445 00006 EXTEND 047894,000952: 15,3446 73750 MP 180/8ATT 047895,000953: 15,3447 60000 DOUBLE # FOR SECOND BURN, A1 047896,000954: 15,3450 55607 TS TON2 # = TON2 / 4T 047897,000955: 047898,000956: 15,3451 40000 COM 047899,000957: 15,3452 00006 EXTEND 047900,000958: 15,3453 63457 BZMF GETOFF 047901,000959: 15,3454 55607 TS TON2 047902,000960: 15,3455 31617 CA JNDX 047903,000961: 15,3456 55620 TS JNDX1 047904,000962: 047905,000963: 15,3457 41607 GETOFF CS TON2 # TON2 / 4T 047906,000964: 15,3460 00006 EXTEND 047907,000965: 15,3461 71567 MP VDT/180 # VDT/180, OR VT/180, OR VMT/180. 047908,000966: 15,3462 55615 TS XD/360 # USE AS TEMP 047909,000967: 15,3463 41567 CS VDT/180 047910,000968: 15,3464 00006 EXTEND 047911,000969: 15,3465 13501 BZF TOFFOVFL # OMIT THE DIVIDE IF DEN = 0. 047912,000970: 15,3466 61613 AD -VT/180 047913,000971: 15,3467 00006 EXTEND 047914,000972: 15,3470 71621 MP TON1 # TON1 /4T 047915,000973: 15,3471 61615 AD XD/360 # TEMP = -VDT/180 / 2 TON2 047916,000974: 15,3472 61614 AD LCX/360 047917,000975: 15,3473 22007 ZL 047918,000976: 15,3474 56001 XCH L # TEST THE DIVIDE 047919,000977: 15,3475 00006 EXTEND 047920,000978: 15,3476 11567 DV VDT/180 047921,000979: 15,3477 00006 EXTEND 047922,000980: 15,3500 13503 BZF GETOFF2 # DIVIDE OK 047923,000981: 047924,000982: 15,3501 35045 TOFFOVFL CA 2JETT # OVFL, USE 2T FOR CONVENIENCE. 047925,000983: 15,3502 13510 TCF TIMSCAL 047926,000984: 047927,000985: # Page 1086 047928,000986: 15,3503 56001 GETOFF2 XCH L # GET NUMERATOR. 047929,000987: 15,3504 00006 EXTEND 047930,000988: 15,3505 11567 DV VDT/180 # C(A) = TOFF / 2T 047931,000989: 15,3506 00006 EXTEND 047932,000990: 15,3507 75045 MP 2JETT 047933,000991: 15,3510 55605 TIMSCAL TS TOFF # IN CS 047934,000992: 047935,000993: 15,3511 33751 CAF 4JETT 047936,000994: 15,3512 00006 EXTEND 047937,000995: 15,3513 71621 MP TON1 # C(TON1) = TON1 / 4T 047938,000996: 15,3514 55621 TS TON1 # IN CS 047939,000997: 047940,000998: 15,3515 33751 CAF 4JETT 047941,000999: 15,3516 00006 EXTEND 047942,001000: 15,3517 71607 MP TON2 # C(TON2) = TON2 / 4T 047943,001001: 15,3520 55607 TS TON2 # IN CS 047944,001002: 047945,001003: 15,3521 35021 CA ZERO # CANNOT REDO AFTER TIMETST. TUSED GONE 047946,001004: 15,3522 55711 TS JETAG # SET +0 TO SHOW ROLL DAP CALLED. 047947,001005: 047948,001006: # CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE 047949,001007: # INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON EXIT 047950,001008: # AND ON ALTERNATE PASSES THROUGH CM/DUMPR. 047951,001009: 047952,001010: 15,3523 35017 CA ONE 047953,001011: 15,3524 54305 TS SW/NDX 047954,001012: 047955,001013: # Page 1087 047956,001014: # TIMETEST SECTION FOR RCS 047957,001015: 047958,001016: # ENTER WITH THREE TIME INTERVALS AND THE CORRESPONDING JET CODE INDEXES IN ERASABLE LOCS TON1, TOFF, TON2, JNDX 047959,001017: # JNDX1. SECTION PROCESSES TIME INTERVALS FOR WTLST CALLS AND ASSURES THAT WTLST CALLS ARE MADE ONLY 047960,001018: # (1) FOR POS INTERVALS GREATER THAN A SPECIFIED MINIMUM (HERE CHOSEN AS 2 CS) AND 047961,001019: # (2) FOR THE INTERVALS THAT WILL BE EXECUTED WITHIN THE TIME REMAINING IN THE SAMPLE INTERVAL T (2 SEC). 047962,001020: # TIMETST ESTABLISHES 6 LOCS CONTAINING JET CODES AND CORRESPONDING TIME INTERVALS. THUS: TON1, T1BITS, 047963,001021: # TOFF, TBITS, TON2, T2BITS. OF THESE THE FIRST 2 LOCS ARE TEMPORARY, FOR IMMEDIATE ACTION, IN GENERAL. 047964,001022: # SECTION JETCALL BELOW PROCESSES THIS LIST. 047965,001023: 047966,001024: 15,3525 30025 TIMETST CA TIME1 # CORRECT FOR POSSIBLE TIME1 OVFL. 047967,001025: 15,3526 65002 AD POS1/2 047968,001026: 15,3527 65002 AD POS1/2 # OVFL GUARANTEED. 047969,001027: 15,3530 27712 ADS TUSED # B(TUSED) =-TUSED =-OLTIME1 047970,001028: 047971,001029: 15,3531 33746 CA -T-3 # =-T +2 -5 (SEE SETJTAG) 047972,001030: # THE +2 REQUIRED FOR PROPER BRANCH. 047973,001031: 15,3532 27712 ADS TUSED # TUSED = TIME(K)-TIME(K-1)-T+2 047974,001032: 047975,001033: 15,3533 45016 CS TWO # USE 2 SINCE TIME3 UNCERTAIN TO 1 047976,001034: 15,3534 61621 AD TON1 047977,001035: 15,3535 00006 EXTEND 047978,001036: 15,3536 63550 BZMF TIMETST1 047979,001037: 15,3537 51617 INDEX JNDX 047980,001038: 15,3540 33205 CAF P/RJCODE 047981,001039: 15,3541 55622 TS T1BITS 047982,001040: 047983,001041: 15,3542 31621 CA TON1 047984,001042: 15,3543 27712 ADS TUSED 047985,001043: 15,3544 00006 EXTEND 047986,001044: 15,3545 63552 BZMF TOFFTEST 047987,001045: 15,3546 35021 CA ZERO 047988,001046: 15,3547 13603 TCF TIMETST3 047989,001047: 15,3550 45017 TIMETST1 CS ONE 047990,001048: 15,3551 55621 TS TON1 047991,001049: 15,3552 45016 TOFFTEST CS TWO 047992,001050: 15,3553 61605 AD TOFF 047993,001051: 15,3554 00006 EXTEND 047994,001052: 15,3555 63564 BZMF TIMETST2 047995,001053: 15,3556 31605 CA TOFF 047996,001054: 15,3557 27712 ADS TUSED 047997,001055: 15,3560 00006 EXTEND 047998,001056: 15,3561 63566 BZMF TON2TEST 047999,001057: 15,3562 35021 CA ZERO 048000,001058: 15,3563 13605 TCF TIMETST4 048001,001059: 15,3564 45017 TIMETST2 CS ONE 048002,001060: 15,3565 55605 TS TOFF 048003,001061: 15,3566 45016 TON2TEST CS TWO 048004,001062: 15,3567 61607 AD TON2 048005,001063: 15,3570 00006 EXTEND 048006,001064: 15,3571 63606 BZMF TIMETST5 048007,001065: # Page 1088 048008,001066: 15,3572 51620 INDEX JNDX1 048009,001067: 15,3573 33205 CAF P/RJCODE 048010,001068: 15,3574 55610 TS T2BITS 048011,001069: 15,3575 31607 CA TON2 048012,001070: 15,3576 27712 ADS TUSED 048013,001071: 15,3577 00006 EXTEND 048014,001072: 15,3600 63610 BZMF JETCALL1 048015,001073: 15,3601 35021 CA ZERO 048016,001074: 15,3602 13607 TCF TIMETST5 +1 048017,001075: 15,3603 55621 TIMETST3 TS TON1 048018,001076: 15,3604 45017 CS ONE 048019,001077: 15,3605 55605 TIMETST4 TS TOFF 048020,001078: 15,3606 45017 TIMETST5 CS ONE 048021,001079: 15,3607 55607 TS TON2 048022,001080: 048023,001081: # SECTION JETCALL EXAMINES CONTENTS OF JET TIMES IN LIST, ESTABLISHES WTLST ENTRIES, AND EXECUTES CORRESPONDING 048024,001082: # JET CODES. A POSITIVE NZ NUMBER IN A TIME REGISTER INDICATES THAT A WTLST CALL IS TO BE MADE, AND ITS JET BITS 048025,001083: # EXECUTED. A +0 INDICATES THAT THE TIME INTERVAL DOES NOT APPLY, BUT THE CORRESPOINDING JET BITS ARE TO BE 048026,001084: # EXECUTED. A NEG NUMBER INDICATES THAT THE TIME INTERVAL HAS BEEN PROCESSED. IN EVENT OF +0 OR -1, THE 048027,001085: # SUBSEQUENT TIME REGISTER IS EXAMINED FOR POSSIBLE ACTION. THUS JET BITS TO BE EXECUTED MAY COME FROM MORE 048028,001086: # THAN ONE REGISTER. 048029,001087: 048030,001088: 15,3610 35021 JETCALL1 CA ZERO 048031,001089: 15,3611 55611 TS OUTTAG 048032,001090: 15,3612 55612 TS NUJET 048033,001091: 15,3613 55606 TS TBITS 048034,001092: 15,3614 53622 DXCH TON1 048035,001093: 15,3615 10000 CCS A 048036,001094: 15,3616 13633 TCF JETCALL2 # CALL WTLST 048037,001095: 15,3617 23612 JETCALL3 LXCH NUJET # WTLST ENTRIES COME HERE FROM JETCALL 048038,001096: 15,3620 45017 CS ONE 048039,001097: 15,3621 53606 DXCH TOFF 048040,001098: 15,3622 10000 CCS A 048041,001099: 15,3623 13633 TCF JETCALL2 # CALL WTLST 048042,001100: 15,3624 23612 LXCH NUJET 048043,001101: 15,3625 45017 CS ONE 048044,001102: 15,3626 53610 DXCH TON2 048045,001103: 15,3627 10000 CCS A 048046,001104: 15,3630 13633 TCF JETCALL2 # CALL WTLST 048047,001105: 15,3631 23612 LXCH NUJET 048048,001106: 15,3632 03642 TC JETACTN # C(A) = +0 048049,001107: 15,3633 56001 JETCALL2 XCH L # SAVE JET BITS FOR AFTER WTLST CALL 048050,001108: 15,3634 27612 ADS NUJET 048051,001109: 15,3635 56001 XCH L 048052,001110: 15,3636 65017 AD ONE # RESTORE FOR CCS 048053,001111: 15,3637 05245 TC WAITLIST 048054,001112: 15,3640 E6,1661 EBANK= AOG 048055,001113: 15,3640 03650 32066 2CADR JETCALL 048056,001114: 048057,001115: 15,3642 31612 JETACTN CA NUJET # COME HERE WHEN DESIRED JET CODE IS KNOWN 048058,001116: # Page 1089 048059,001117: 15,3643 00006 EXTEND # NO NEED TO SAVE OLD CODES 048060,001118: 15,3644 01006 WRITE ROLLJETS # SET RCHAN TO NEW BIT CONFIG. 048061,001119: 048062,001120: 15,3645 11611 CCS OUTTAG 048063,001121: 15,3646 05324 TC TASKOVER 048064,001122: 15,3647 03705 ROLLDUMP TC CM/FDAIR 048065,001123: 048066,001124: # EDIT DUMP AT ABOVE LOCATION. 048067,001125: 048068,001126: # WAITLIST ENTRIES COME HERE. 048069,001127: 048070,001128: 15,3650 35016 JETCALL CAF BIT2 # CM/DSTBY =103D BIT2 048071,001129: 15,3651 55611 TS OUTTAG # SIGNIFY WTLST ENTRY 048072,001130: 15,3652 70102 MASK CM/FLAGS # IS SYSTEM DISABLED $ 048073,001131: 15,3653 00006 EXTEND 048074,001132: 15,3654 13643 BZF JETACTN +1 # YES, QUENCH ROLL JETS, IF ON AND EXIT. 048075,001133: 15,3655 22007 ZL # NO, CONTINUE. 048076,001134: 15,3656 13617 TCF JETCALL3 # C(A) POS, C(L) = +0 048077,001135: 048078,001136: # DEAD ZONE ENTRIES COME HERE. 048079,001137: 048080,001138: 15,3657 41700 DZCALL CS CMDAPMOD # POSSIBLE VALUES OF CMDAPMOD: -1, +0, -0. 048081,001139: 15,3660 75017 MASK BIT1 048082,001140: 15,3661 54001 TS L # C(L)=0 FOR -0: C(L)=1 FOR -1 OR +0. 048083,001141: 15,3662 50000 INDEX A # ERASABLE ORDER: ROLLTM, ROLLC, ROLLC +1. 048084,001142: 15,3663 31714 CA ROLLTM # GET ROLL/180 OR ROLLC (/360). 048085,001143: 15,3664 50001 INDEX L 048086,001144: 15,3665 54000 TS A # IF C(L)=1, STORE 'ROLLC' IN 'L'. 048087,001145: 15,3666 60001 AD L # (BOTH MUST BE SCALED DEG/180) 048088,001146: 15,3667 02522 TC ANGOVCOR # C(A)=ROLL/180 OR 2 ROLLC. 048089,001147: 15,3670 55717 TS ROLLHOLD # IF CMDAPMOD =-0, SAVE ROLL ANGLE. 048090,001148: # OTHERWISE, SAVE ROLL COMMAND. 048091,001149: 048092,001150: 15,3671 35021 CA ZERO # COME HERE IF IN DZ, AND CANCEL JETS. 048093,001151: 15,3672 00006 EXTEND # INHINT NOT NEEDED HERE. 048094,001152: 15,3673 01006 WRITE ROLLJETS # TURN OFF ALL ROLL JETS. 048095,001153: 15,3674 55567 TS VDT/180 # SET =0 TO SHOW IN DEAD ZONE. 048096,001154: 15,3675 55711 DZCALL1 TS JETAG # COME HERE WITH C(A)=0. 048097,001155: 15,3676 03647 TC ROLLDUMP 048098,001156: 048099,001157: # Page 1090 048100,001158: # CM ENTRY FDAI DISPLAY 048101,001159: 048102,001160: # CALCULATE BY INTEGRATION THE ROLL ERROR BETWEEN THE 2 SEC CM/RCS UPDATES. DISPLAY ATTITUDE ERRORS AS FOLLOWS: 048103,001161: # ATM DAP: DISPLAY ONLY ROLL ATTITUDE ERROR. 048104,001162: # EXT ATM DAP: PRESENT 3 ATTITUDE ERRORS RELATIVE TO THE APPROPRIATE BODY AXES EACH .1 SEC. 048105,001163: # ROLL ROLLC-ROLL 048106,001164: # PITCH ALFAC-ALFA 048107,001165: # YAW BETAC-BETA 048108,001166: 048109,001167: # DURING ENTRY, THE FDAI NEEDLES HAVE FULL SCALE OF 67.5 DEG IN ROLL AND 16.875 DEG IN PITCH AND YAW. 048110,001168: # THE SUBROUTINE NEEDLER EXPECTS (ANGLE/180) AND SCALES TO 16.875 DEG FULL SCALE. 048111,001169: 048112,001170: # COME HERE EACH .1 SEC. (CMDAPMOD=+1 COMES BELOW) 048113,001171: 15,3677 41705 CM/FDAI CS PHIDOT # INTEGRATE ROLL ERROR 'TWEEN 2SEC UPDATES 048114,001172: 15,3700 00006 EXTEND 048115,001173: 15,3701 71506 MP CALFA # FOR ASSUMED COORDINATION. 048116,001174: 15,3702 00006 EXTEND 048117,001175: 15,3703 75002 MP HALF 048118,001176: 15,3704 27713 ADS PAXERR1 # ROLL ERROR/360. OVFL OK. 048119,001177: 048120,001178: # EDIT DUMP AT ABOVE LOCATION. 048121,001179: 15,3705 35002 CM/FDAIR CA HALF 048122,001180: 15,3706 00006 EXTEND 048123,001181: 15,3707 71713 MP PAXERR1 # FULL SCALE FOR FDAI (ROLL) IS 67.5 D 048124,001182: 15,3710 55476 TS PAXERR # .25 (ROLL ERROR/180) FOR FDAI NEEDLE. 048125,001183: 048126,001184: # PROGRAM TO FILE BODY RATES FOR TM ON ONE PASS AND 048127,001185: # TO UPDATE THE NEEDLE DISPLAY ON THE NEXT. 048128,001186: # SYNCHRONIZATION WITH CM/RCS IS USED SO THAT THE TM 048129,001187: # IS DONE WITH THE ROLL SYSTEM AND NEEDLES START ON 048130,001188: # THE SUBSEQUENT PASS. 048131,001189: 048132,001190: 15,3711 40305 CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE 048133,001191: 15,3712 54305 TS SW/NDX 048134,001192: 15,3713 00006 EXTEND # INDEX 048135,001193: 15,3714 63720 BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO 048136,001194: # ENDBUF. 048137,001195: # INDEX IS POS FOR NEEDLES. 048138,001196: 048139,001197: 15,3715 04740 TC IBNKCALL 048140,001198: 15,3716 42420 CADR NEEDLER 048141,001199: 048142,001200: 15,3717 03736 TC CM/END 048143,001201: 048144,001202: # INDEX IS NEG FOR TM FILE 048145,001203: 048146,001204: 15,3720 66214 CMTMFILE AD THREE 048147,001205: 15,3721 00006 EXTEND 048148,001206: 15,3722 63726 BZMF SAVENDX 048149,001207: 048150,001208: # Page 1091 048151,001209: 15,3723 30025 CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF. 048152,001210: 15,3724 54304 TS CMTMTIME 048153,001211: 15,3725 45025 CS THIRTEEN # INITIALIZE COUNTER 048154,001212: 15,3726 54305 SAVENDX TS SW/NDX # A NEGATIVE NUMBER. 048155,001213: 15,3727 00006 EXTEND 048156,001214: 15,3730 31702 DCA PREL 048157,001215: 15,3731 50305 INDEX SW/NDX 048158,001216: 15,3732 52324 DXCH ENDBUF -1 048159,001217: 15,3733 31703 CA RREL 048160,001218: 15,3734 50305 INDEX SW/NDX 048161,001219: 15,3735 54325 TS ENDBUF +1 048162,001220: 048163,001221: 15,3736 31623 CM/END CA CM/SAVE 048164,001222: 15,3737 54021 TS SR 048165,001223: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS 048166,001224: 048167,001225: 15,3740 00006 EXTEND 048168,001226: 15,3741 33745 DCA T5IDLER2 048169,001227: 15,3742 53313 DXCH T5LOC 048170,001228: 15,3743 05333 TC RESUME 048171,001229: 048172,001230: 15,3744 1312 EBANK= T5LOC 048173,001231: 15,3744 03153 12062 T5IDLER2 2CADR T5IDLOC 048174,001232: 048175,001233: # DEFINE THE FOLLOWING 17D REGISTERS IN UPBUFF TO BE 048176,001234: # USED TO TELEMETER CM VEHICLE BODY RATE INFORMATION. 048177,001235: # THE INFORMATION IS FILED EACH 0.2 SEC, GIVING 15D 048178,001236: # DATA POINTS EACH 1 SEC. TM LIST IS READ TWICE 048179,001237: # EACH 2 SECONDS. 048180,001238: 048181,001239: # THE SEQUENCE IS: SP TIME INITIAL TIME 048182,001240: # SWITCH ALSO INDEX. 048183,001241: # P ROLL RATE 048184,001242: # Q PITCH RATE 048185,001243: # R YAW RATE 048186,001244: # ETC. 048187,001245: 048188,001246: # CMTMTIME = UPBUFF 048189,001247: # SW/NDX = UPBUFF +1 048190,001248: # ENDBUF = UPBUFF +16D 048191,001249: 048192,001250: # Page 1092 048193,001251: # SPACER 048194,001252: 048195,001253: # CONSTANTS USED IN THE ROLL CONTROL SYSTEM: 048196,001254: # CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC, 048197,001255: # XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE 048198,001256: # XBUF = 4DEG 048199,001257: 048200,001258: 15,3746 77464 -T-3 DEC -203 B-14 # CS 048201,001259: 15,3747 00012 VSQMIN DEC .61050061 E-3 # VSQ MIN/4 A PI = 4/(4 (9.1) 180) 048202,001260: 15,3750 5033 2T/TCDU = OCT50 # T/TCDU EXP-14 TCDU = .1SEC 048203,001261: 15,3750 23617 180/8ATT DEC .61813187 # 180/(8 (9.1) 4)=(180/ATT) EXP -3 048204,001262: 15,3751 15,3753 -VMT/180 = -VM/360K # = 20 (2) / 180 048205,001263: 15,3751 5045 2JETT = 4SECS # CS 2 (2) 100 INTEGER 048206,001264: 15,3751 01440 4JETT DEC 800 B-14 # CS 4 (2) 100 INTEGER 048207,001265: 15,3752 00266 XMIN/360 DEC 182 B-14 # XMIN/360 = 4/ 360 EXP 14 = 182 INTEGER 048208,001266: 15,3753 70706 -VM/360K DEC -.22222222 # =-20/( 360 (.25)) 048209,001267: 15,3754 15,3750 1/16A1 = 180/8ATT 048210,001268: # 1/16A1 = 180/(16 A1 TT) 048211,001269: # = 180/(16 4.55 4) 048212,001270: 15,3754 00133 XS/360 DEC 91 B-14 # = (XMIN +VI (T-1/K))/360 = 2/360 EXP 14 048213,001271: 15,3755 15,3754 BUFLIM = XS/360 # 4/(2 360) 048214,001272: 048215,001273: 15,3755 5002 KTRCS = HALF # KT = (.25) 2 = .5 048216,001274: 048217,001275: # *** END OF TVCDAPS .011 *** 048218,001276: End of include-file CM_ENTRY_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc