Source Code

045533,000001: # Copyright: Public domain. 045534,000002: # Filename: CM_ENTRY_DIGITAL_AUTOPILOT.agc 045535,000003: # Purpose: Part of the source code for Colossus, build 249. 045536,000004: # It is part of the source code for the Command Module's (CM) 045537,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 045538,000006: # Assembler: yaYUL 045539,000007: # Reference: Starts on p. 1038 of 1701.pdf. 045540,000008: # Contact: Ron Burkey <info@sandroid.org>. 045541,000009: # Website: www.ibiblio.org/apollo. 045542,000010: # Mod history: 08/27/04 RSB. Began transcribing. 045543,000011: 045544,000012: # The contents of the "Colossus249" files, in general, are transcribed 045545,000013: # from a scanned document obtained from MIT's website, 045546,000014: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 045547,000015: # document read, in part: 045548,000016: 045549,000017: # Assemble revision 249 of AGC program Colossus by NASA 045550,000018: # 2021111-041. October 28, 1968. 045551,000019: 045552,000020: # This AGC program shall also be referred to as 045553,000021: # Colossus 1A 045554,000022: 045555,000023: # Prepared by 045556,000024: # Massachussets Institute of Technology 045557,000025: # 75 Cambridge Parkway 045558,000026: # Cambridge, Massachusetts 045559,000027: # under NASA contract NAS 9-4065. 045560,000028: 045561,000029: # Refer directly to the online document mentioned above for further information. 045562,000030: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 045563,000031: 045564,000032: # In some cases, where the source code for Luminary 131 overlaps that of 045565,000033: # Colossus 249, this code is instead copied from the corresponding Luminary 131 045566,000034: # source file, and then is proofed to incorporate any changes. 045567,000035: 045568,000036: # Page 1038 045569,000037: # SUBROUTINE TO READ GYMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2'S COMPLEMENT, BUT THE 045570,000038: # DIFFERENECES ARE IN 1'S COMP. ENTER AND READ ANGLES EACH .1 SEC. 045571,000039: 045572,000040: # CM/DSTBY = 1 FOR DAP OPERATION 045573,000041: # CM/DSTBY = 0 TO TERMINATE DAP OPERATION 045574,000042: 045575,000043: 15,2454 BANK 15 045576,000044: 045577,000045: 15,2000 SETLOC ETRYDAP 045578,000046: 15,2000 BANK 045579,000047: 045580,000048: 15,2454 COUNT 15/DAPEN 045581,000049: 045582,000050: 15,2454 E6,1661 EBANK= AOG 045583,000051: 045584,000052: 15,2454 34377 READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO 045585,000053: 15,2455 27725 ADS CM/GYMDT # PIPTIME. (GROUP 6) 045586,000054: 045587,000055: # IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE 045588,000056: # PHASCHNG PROTECTION IS IN CM/DAPIC. 045589,000057: 045590,000058: 15,2456 34705 CA BIT6 # CHECK FOR FINE ALIGN MODE OF CDU. 045591,000059: 15,2457 71321 MASK IMODES33 # (PROTECT AOG/PIP ETC AS WELL AS 045592,000060: 15,2460 00006 EXTEND # GIMBAL DIFFERENCES) 045593,000061: 15,2461 12467 BZF READGYM1 # OK 045594,000062: 045595,000063: 15,2462 44712 CS BIT1 # NOT IN FINE ALIGN, SO IDLE 045596,000064: 15,2463 70102 MASK CM/FLAGS # SET GYMDIFSW = 0 045597,000065: 15,2464 54102 TS CM/FLAGS 045598,000066: 15,2465 06000 TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE. 045599,000067: 15,2466 02534 TC CM/GYMIC +2 045600,000068: 045601,000069: 15,2467 30032 READGYM1 CA CDUX 045602,000070: 15,2470 57661 XCH AOG 045603,000071: 15,2471 00006 EXTEND 045604,000072: 15,2472 21661 MSU AOG # -DELAOG=AOG(N-1) - AOG(N) 045605,000073: 15,2473 55675 TS -DELAOG 045606,000074: 045607,000075: 15,2474 30033 CA CDUY 045608,000076: 15,2475 57662 XCH AIG 045609,000077: 15,2476 00006 EXTEND 045610,000078: 15,2477 21662 MSU AIG 045611,000079: 15,2500 55676 TS -DELAIG 045612,000080: 045613,000081: 15,2501 30034 CA CDUZ 045614,000082: 15,2502 57663 XCH AMG 045615,000083: 15,2503 00006 EXTEND 045616,000084: 15,2504 21663 MSU AMG 045617,000085: 15,2505 55677 TS -DELAMG 045618,000086: 045619,000087: # Page 1039 045620,000088: 15,2506 40102 DOBRATEW CS CM/FLAGS # CM/DSTBY=103D BIT2 GYMDIFSW=104D BIT1 045621,000089: 15,2507 76214 MASK THREE 045622,000090: 15,2510 50000 INDEX A 045623,000091: 15,2511 02512 TC +1 045624,000092: 15,2512 02521 TC DOBRATE # OK, GO ON 045625,000093: 15,2513 02532 TC CM/GYMIC # DON'T CALC BODYRATE ON FIRST PASS. 045626,000094: 15,2514 12515 NOOP 045627,000095: 15,2515 06000 TC FLUSHJET # TURN OFF ALL JETS 045628,000096: 045629,000097: 15,2516 05301 TC PHASCHNG 045630,000098: 15,2517 00006 OCT 00006 # DEACTIVATE DAP GROUP 6. 045631,000099: 045632,000100: 15,2520 05213 TC TASKOVER 045633,000101: 045634,000102: 15,2521 34712 DOBRATE CA ONE # DO BODYRATE 045635,000103: 15,2522 55720 DOBRATE1 TS JETEM # SKIP BODYRATE 045636,000104: 045637,000105: 15,2523 34377 CA TEN # KEEP CDU READ GOING. 045638,000106: 15,2524 05140 TC WAITLIST 045639,000107: 15,2525 E6,1661 EBANK= AOG 045640,000108: 15,2525 02454 32066 2CADR READGYMB 045641,000109: 045642,000110: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS 045643,000111: 045644,000112: 15,2527 11720 CCS JETEM 045645,000113: 15,2530 02556 TC BODYRATE 045646,000114: 15,2531 05213 TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES) 045647,000115: 045648,000116: 15,2532 26102 CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0 045649,000117: 15,2533 34714 CAF ZERO 045650,000118: 15,2534 55711 TS JETAG 045651,000119: 15,2535 55706 TS OLDELP 045652,000120: 15,2536 55707 TS OLDELQ 045653,000121: 15,2537 55710 TS OLDELR 045654,000122: 15,2540 55723 TS GAMDOT # NO GYM DIF, PROB NO GAM DIF. 045655,000123: 15,2541 02522 TC DOBRATE1 045656,000124: 045657,000125: # Page 1040 045658,000126: # COME HERE TO CORRECT FOR OVERFLOW IN ANGULAR CALCULATIONS 045659,000127: 045660,000128: 15,2542 54001 ANGOVCOR TS L # THIS COSTS 2 MCT TO USE. 045661,000129: 15,2543 00002 TC Q # NO OVFL 045662,000130: 15,2544 50000 INDEX A 045663,000131: 15,2545 34673 CAF LIMITS 045664,000132: 15,2546 26001 ADS L 045665,000133: 15,2547 00002 TC Q 045666,000134: 045667,000135: 6000 BLOCK 3 045668,000136: 045669,000137: 6000 COUNT 03/DAPEN 045670,000138: 045671,000139: 6000 30007 FLUSHJET CA 7 # COME HERE TO TURN OFF ALL JETS. 045672,000140: 6001 00006 EXTEND 045673,000141: 6002 01006 WRITE ROLLJETS # ZERO CHANNEL 6 045674,000142: 6003 00006 EXTEND 045675,000143: 6004 01005 WRITE PYJETS # ZERO CHANNEL 5 045676,000144: 6005 00002 TC Q 045677,000145: 045678,000146: 15,2550 BANK 15 045679,000147: 045680,000148: 15,2550 COUNT 15/DAPEN 045681,000149: 045682,000150: 15,2000 SETLOC ETRYDAP 045683,000151: 15,2000 BANK 045684,000152: 045685,000153: 15,2550 40000 RATEAVG COM # SUBROUTINE TO ESTIMATE RATES IN PRESENCE 045686,000154: 15,2551 61720 AD JETEM # OF CONSTANT ACCELERATION. 045687,000155: 15,2552 00006 EXTEND 045688,000156: 15,2553 74675 MP HALF # DELV (EST) = DELV +(DELV-OLDELV)/2 045689,000157: 15,2554 61720 AD JETEM 045690,000158: 15,2555 00002 TC Q 045691,000159: 045692,000160: # Page 1041 045693,000161: # THESE ARE CALLED FOR THE VARIOUS INITIALIZATIONS NEEDED. 045694,000162: 045695,000163: 20,3565 BANK 20 045696,000164: 20,2000 SETLOC DAPS1 045697,000165: 20,2000 BANK 045698,000166: 045699,000167: 20,3565 COUNT 20/DAPEN 045700,000168: 20,3565 E6,1661 EBANK= AOG 045701,000169: 045702,000170: 20,3565 34752 CM/DAPON CA EBAOG 045703,000171: 20,3566 54003 TS EBANK 045704,000172: 045705,000173: 20,3567 05447 TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER. 045706,000174: 20,3570 00132 ADRES DAPBIT1 # BIT 15 FLAG 6 CMFLAGS. 045707,000175: 20,3571 05447 TC DOWNFLAG # RESET DAPBIT2 045708,000176: 20,3572 00133 ADRES DAPBIT2 # BIT 14 FLAG 6 045709,000177: 20,3573 00006 EXTEND 045710,000178: 20,3574 33712 DCA T5IDLER1 # DISABLE RCS CALCULATION 045711,000179: 20,3575 53313 DXCH T5LOC 045712,000180: 20,3576 00006 EXTEND 045713,000181: 20,3577 33712 DCA T5IDLER1 # DISABLE RCS JET CALLS 045714,000182: 20,3600 53311 DXCH T6LOC 045715,000183: 045716,000184: 20,3601 06000 TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS. 045717,000185: 045718,000186: 20,3602 47707 CS 13,14,15 045719,000187: 20,3603 71466 MASK DAPDATR1 # SET CONFIG BITS=0 FOR ENTRY 045720,000188: 20,3604 55466 TS DAPDATR1 045721,000189: 20,3605 03611 TC +4 045722,000190: 045723,000191: 20,3606 34731 NOTYET CA .5SEC 045724,000192: 20,3607 04555 TC BANKCALL 045725,000193: 20,3610 01732 CADR DELAYJOB # (DELAYJOB DOES INHINT) 045726,000194: 20,3611 34700 +4 CA BIT11 # GAMDIFSW = 94D BIT11, INITLY=0 045727,000195: 20,3612 70102 MASK CM/FLAGS # IF ZERO, WAIT UNTIL CM/POSE UPDATE. 045728,000196: 20,3613 00006 EXTEND 045729,000197: 20,3614 13606 BZF NOTYET 045730,000198: 045731,000199: 20,3615 44712 CS ONE # ACTIVATE CM/DAP 045732,000200: 20,3616 55501 TS RCSFLAGS # USE BIT3 TO INITIALIZE NEEDLER ON 045733,000201: # NEXT PASS. 045734,000202: 20,3617 55727 TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL 045735,000203: # HEADSUP IS SET IN P62. 045736,000204: 045737,000205: # FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62 045738,000206: 045739,000207: 20,3620 30007 CA 7 045740,000208: 20,3621 55711 TS JETAG 045741,000209: 20,3622 55713 TS PAXERR1 # KEEP NEEDLES ZERO UNTIL DAP UPDATE 045742,000210: # IN CASE CMDAPMOD IS NOT +1. 045743,000211: # Page 1042 045744,000212: 20,3623 00004 INHINT 045745,000213: 20,3624 00006 EXTEND 045746,000214: 20,3625 31666 DCA ALFA/180 # DO ATTITUDE HOLD UNTIL KEYBOARD 045747,000215: 20,3626 53604 DXCH ALFACOM # ESTABLISHES HEADSUP. 045748,000216: 20,3627 31664 CA ROLL/180 045749,000217: 20,3630 55717 TS ROLLHOLD # FOR ATTITUDE HOLD IN MODE +1. 045750,000218: 20,3631 00006 EXTEND 045751,000219: 20,3632 74675 MP HALF 045752,000220: 20,3633 55715 TS ROLLC # NOT INTERESTED IN LO WORD. 045753,000221: 045754,000222: 20,3634 40102 CS CM/FLAGS 045755,000223: 20,3635 74677 MASK BIT12 # CMDAPARM =93D BIT12 INITLY=0 045756,000224: 20,3636 26102 ADS CM/FLAGS # SET BIT TO 1. 045757,000225: 045758,000226: 20,3637 40076 CS FLAGWRD2 # SET NODOFLAG TO PREVENT FURTHER 045759,000227: 20,3640 74712 MASK BIT1 # V 37 ENTRIES. 045760,000228: 20,3641 26076 ADS FLAGWRD2 045761,000229: 045762,000230: 20,3642 00003 RELINT 045763,000231: 045764,000232: 20,3643 04574 TC POSTJUMP 045765,000233: 20,3644 54342 CADR P62.1 045766,000234: 045767,000235: # Page 1043 045768,000236: # INITIALIZE CM/DAP. WAITLIST CALL FOR READGYMB. SET SWITCH CM/DSTBY =1 045769,000237: # SO READACCS WILL ENTER A WTLST CALL FOR SETJTAG . 045770,000238: # CMDAPARM = 0, SO ONLY BODY RATE AND ATTITUDE CALCULATIONS ARE DONE. 045771,000239: # SET AVEGEXIT TO CONTINUE AT CM/POSE 045772,000240: 045773,000241: 20,3645 34752 CM/DAPIC CA EBAOG 045774,000242: 20,3646 54003 TS EBANK 045775,000243: 045776,000244: 20,3647 00004 INHINT 045777,000245: 20,3650 41205 CM/DAP2C CS PIPTIME +1 045778,000246: # PRIO OF P62 L PRIO AVG, 'PIPTM=PIPTM1. 045779,000247: 20,3651 55720 TS JETEM 045780,000248: 045781,000249: 20,3652 34675 CA POS1/2 045782,000250: 20,3653 64675 AD POS1/2 045783,000251: 20,3654 60025 AD TIME1 # OVFL GUARANTEED 045784,000252: 20,3655 27720 ADS JETEM # C(A) = DELTA TIME SINCE PIPUP 045785,000253: 045786,000254: 20,3656 44715 CS FIVE 045787,000255: 20,3657 61720 AD JETEM 045788,000256: 20,3660 10000 CCS A 045789,000257: 20,3661 63710 AD -CDUT+1 045790,000258: 20,3662 13660 TCF -2 045791,000259: 20,3663 13664 NOOP 045792,000260: 20,3664 64712 AD ONE # SEND NO ZERO TO WTLST 045793,000261: 20,3665 55725 TS CM/GYMDT # FOR RESTART 045794,000262: 20,3666 05140 TC WAITLIST 045795,000263: 20,3667 E6,1661 EBANK= AOG 045796,000264: 20,3667 02454 32066 2CADR READGYMB 045797,000265: 045798,000266: 20,3671 43707 CS CM/SWIC1 # GAMDIFSW, GYMDIFSW, CM/DSTBY 045799,000267: 20,3672 70102 MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP 045800,000268: 20,3673 64377 AD CM/SWIC2 # SET CM/DSTBY, LATSW 045801,000269: # DISABLE ENTRY DISPLAY, SINCE DES. GIMB. 045802,000270: # CALC. (P62.3) GOES TO ENDEXIT 045803,000271: 20,3674 54102 TS CM/FLAGS 045804,000272: 045805,000273: 20,3675 30007 CA 7 045806,000274: 20,3676 55666 TS BETA/180 # NECESSARY: NO OVFL CORRECTIO 045807,000275: 20,3677 34712 CA ONE # INITIALIZE THE TM OF BODY RATES VIA 045808,000276: 20,3700 54305 TS SW/NDX # UPBUFF. 045809,000277: 045810,000278: 20,3701 05261 TC 2PHSCHNG # DOES INHINT/RELINT 045811,000279: 20,3702 40116 OCT 40116 # SAVE TBASE6 045812,000280: 20,3703 05024 OCT 05024 045813,000281: 20,3704 13000 OCT 13000 045814,000282: 045815,000283: 20,3705 04574 TC POSTJUMP 045816,000284: # Page 1044 045817,000285: 20,3706 54326 CADR P62.2 045818,000286: 045819,000287: 20,3707 16017 CM/SWIC1 OCT 16017 045820,000288: 20,3710 4377 CM/SWIC2 = TEN # 00012: CM/DSTBY, LATSW 045821,000289: 20,3710 77766 -CDUT+1 OCT 77766 045822,000290: 20,3711 1312 EBANK= T5LOC 045823,000291: 20,3711 03143 12062 T5IDLER1 2CADR T5IDLOC 045824,000292: 045825,000293: # Page 1045 045826,000294: # THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES 045827,000295: # XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQIREMENT: TEMPORARILY ERASE. JETEM, JETEM +1 045828,000296: 045829,000297: # SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS, 045830,000298: # 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 045831,000299: # ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER, IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS 045832,000300: # STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE. 045833,000301: # THIS IS NECESSARY UNDER THE GROUND-RULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS. 045834,000302: 045835,000303: 20,3713 E6,1661 EBANK= AOG 045836,000304: 15,2556 BANK 15 045837,000305: 15,2000 SETLOC ETRYDAP 045838,000306: 15,2000 BANK 045839,000307: 045840,000308: 15,2556 COUNT 15/DAPEN 045841,000309: 045842,000310: 15,2556 31663 BODYRATE CA AMG # THESE ARE 2'S COMPL NOS, BUT USE ANYWAY. 045843,000311: 15,2557 04767 TC SPCOS 045844,000312: 15,2560 55511 TS COSM 045845,000313: 045846,000314: 15,2561 31661 CA AOG # C(AOG) = AOG/180 045847,000315: 15,2562 04770 TC SPSIN # SINO 045848,000316: 15,2563 55512 TS SINO # SINO = SIN(AOG) 045849,000317: 045850,000318: 15,2564 00006 EXTEND 045851,000319: 15,2565 71511 MP COSM 045852,000320: 15,2566 55514 TS SINOCOSM # SO CM 045853,000321: 045854,000322: 15,2567 31661 CA AOG 045855,000323: 15,2570 04767 TC SPCOS # COSO 045856,000324: 15,2571 55513 TS COSO 045857,000325: 045858,000326: 15,2572 00006 EXTEND 045859,000327: 15,2573 71511 MP COSM 045860,000328: 15,2574 55515 TS COSOCOSM # CO CM 045861,000329: 045862,000330: # PITCHDOT: Q TCDU/180 = IDOT TCDU/180 COSO COSM + MDOT TCDU/180 SINO 045863,000331: 045864,000332: 15,2575 41677 CS -DELAMG 045865,000333: 15,2576 00006 EXTEND 045866,000334: 15,2577 71512 MP SINO 045867,000335: 15,2600 53721 DXCH JETEM # 2 LOCS 045868,000336: 15,2601 41676 CS -DELAIG 045869,000337: 15,2602 00006 EXTEND 045870,000338: 15,2603 71515 MP COSOCOSM 045871,000339: 15,2604 21721 DAS JETEM 045872,000340: 15,2605 31720 CA JETEM 045873,000341: 15,2606 57707 XCH OLDELQ 045874,000342: 15,2607 02550 TC RATEAVG 045875,000343: 15,2610 55702 TS QREL # PITCHDOT = Q TCDU/180 045876,000344: 045877,000345: # Page 1046 045878,000346: # YAWDOT: R TCDU/180 = -IDOT TCDU/180 COSM SINO + MDOT TCDU/180 COSO 045879,000347: 045880,000348: 15,2611 41677 CS -DELAMG 045881,000349: 15,2612 00006 EXTEND 045882,000350: 15,2613 71513 MP COSO 045883,000351: 15,2614 53721 DXCH JETEM 045884,000352: 15,2615 31676 CA -DELAIG 045885,000353: 15,2616 00006 EXTEND 045886,000354: 15,2617 71514 MP SINOCOSM 045887,000355: 15,2620 21721 DAS JETEM 045888,000356: 15,2621 31720 CA JETEM 045889,000357: 15,2622 57710 XCH OLDELR 045890,000358: 15,2623 02550 TC RATEAVG 045891,000359: 15,2624 55703 TS RREL # YAWDOT = R TCDU/180 045892,000360: 045893,000361: # ROLLDOT: P TCDU/180 = CDOT TCDU/180 + IDOT/180 SINM 045894,000362: 045895,000363: 15,2625 31663 CA AMG 045896,000364: 15,2626 04770 TC SPSIN 045897,000365: 15,2627 55510 TS SINM 045898,000366: 045899,000367: 15,2630 00006 EXTEND 045900,000368: 15,2631 71676 MP -DELAIG 045901,000369: 15,2632 55720 TS JETEM 045902,000370: 15,2633 34714 CA ZERO 045903,000371: 15,2634 20001 DDOUBL # ROUND L INTO A 045904,000372: 15,2635 61675 AD -DELAOG 045905,000373: 15,2636 61720 AD JETEM 045906,000374: 15,2637 40000 CS A 045907,000375: 15,2640 55720 TS JETEM 045908,000376: 15,2641 57706 XCH OLDELP 045909,000377: 15,2642 02550 TC RATEAVG 045910,000378: 15,2643 55701 TS PREL # ROLLDOT = P TCDU/180 045911,000379: 045912,000380: # IF GAMDOT < 0.5 DEG/SEC, THEN GAMDOT =0 045913,000381: 045914,000382: 15,2644 11723 CCS GAMDOT 045915,000383: 15,2645 02647 TC +2 045916,000384: 15,2646 02671 TC NOGAMDUT 045917,000385: 15,2647 41664 CS ROLL/180 045918,000386: 15,2650 04770 TC SPSIN 045919,000387: 15,2651 00006 EXTEND 045920,000388: 15,2652 71723 MP GAMDOT 045921,000389: 15,2653 55721 TS JETEM +1 # -SR GAMDOT 045922,000390: 15,2654 00006 EXTEND 045923,000391: 15,2655 73217 MP SINTRIM # SIN(-20) (FOR NOMINAL L/D = .3) 045924,000392: 15,2656 27701 ADS PREL # PREL TCDU/180=(P-SALF SR GAMDOT)TCDU/180 045925,000393: 045926,000394: 15,2657 31664 CA ROLL/180 045927,000395: 15,2660 04767 TC SPCOS 045928,000396: # Page 1047 045929,000397: 15,2661 40000 COM 045930,000398: 15,2662 00006 EXTEND 045931,000399: 15,2663 71723 MP GAMDOT 045932,000400: 15,2664 27702 ADS QREL # QREL TCDU/180=(Q-CR GAMDOT) TCDU/180 045933,000401: 045934,000402: 15,2665 41721 CS JETEM +1 # B( ) = -SR GAMDOT 045935,000403: 15,2666 00006 EXTEND 045936,000404: 15,2667 73220 MP COSTRIM # COS(-20) (FOR NOMINAL L/D = /3) 045937,000405: 15,2670 27703 ADS RREL # RREL TCDU/180=(R+CALF SR GAMDOT)TCDU/180 045938,000406: 045939,000407: 15,2671 34677 NOGAMDUT CA BIT12 # CMDAPARM = 93D BIT 12 045940,000408: 15,2672 70102 MASK CM/FLAGS 045941,000409: 15,2673 00006 EXTEND 045942,000410: 15,2674 15213 STBYDUMP BZF TASKOVER # DAP NOT ARMED. 045943,000411: 045944,000412: 15,2675 34672 CA POSMAX # PICK UP AT ATTRATES IN 10 MS OR SO. 045945,000413: 15,2676 54030 TS TIME5 045946,000414: 045947,000415: 15,2677 00006 EXTEND 045948,000416: 15,2700 32704 DCA ATDOTCAD 045949,000417: 15,2701 53313 DXCH T5LOC 045950,000418: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS 045951,000419: 045952,000420: 15,2702 05213 TC TASKOVER 045953,000421: 045954,000422: 15,2703 E6,1661 EBANK= AOG 045955,000423: 15,2703 02705 32066 ATDOTCAD 2CADR ATTRATES 045956,000424: 045957,000425: # Page Page 1048 045958,000426: # CALCULATE BODY ATTITUDE RATES AND INTEGRATE TO OBTAIN ATTITUDE ANGLES. 045959,000427: 045960,000428: # CB PHIDOT TCDU/180 = (CA PREL + SA RREL) TCDU/180 045961,000429: # BETADOT TCDU/180 = (-SA PREL + CA RREL) TCDU/180 045962,000430: # ALFADOT TCDU = (QREL + SB PHIDOT) TCDU/180 045963,000431: 045964,000432: 15,2705 22016 ATTRATES LXCH BANKRUPT # CONTINUE HERE VIA T5 045965,000433: 15,2706 00006 EXTEND # TASK MAY BE SKIPPED AT RESTART. 045966,000434: 15,2707 22012 QXCH QRUPT 045967,000435: 15,2710 30021 CA SR 045968,000436: 15,2711 60000 DOUBLE 045969,000437: 15,2712 55623 TS CM/SAVE 045970,000438: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS 045971,000439: 045972,000440: 15,2713 31702 CA QREL 045973,000441: 15,2714 61665 AD ALFA/180 045974,000442: 15,2715 02542 TC ANGOVCOR 045975,000443: 15,2716 55665 TS ALFA/180 045976,000444: 15,2717 04767 TC SPCOS 045977,000445: 15,2720 55506 TS CALFA # CALFA 045978,000446: 15,2721 55705 TS PHIDOT 045979,000447: 045980,000448: 15,2722 00006 EXTEND 045981,000449: 15,2723 71701 MP PREL 045982,000450: 15,2724 57705 XCH PHIDOT # CA PREL 045983,000451: 15,2725 00006 EXTEND 045984,000452: 15,2726 71703 MP RREL # CA RREL 045985,000453: 15,2727 55704 TS BETADOT 045986,000454: 045987,000455: 15,2730 31665 CA ALFA/180 045988,000456: 15,2731 04770 TC SPSIN 045989,000457: 15,2732 55507 TS SALFA # SIN(ALFA) 045990,000458: 045991,000459: 15,2733 00006 EXTEND 045992,000460: 15,2734 71703 MP RREL # SA RREL 045993,000461: 15,2735 27705 ADS PHIDOT # CB PHIDOT, SAVED. 045994,000462: 045995,000463: 15,2736 41507 CS SALFA 045996,000464: 15,2737 00006 EXTEND 045997,000465: 15,2740 71701 MP PREL 045998,000466: 15,2741 27704 ADS BETADOT # SAVE BETADOT TCDU/180 045999,000467: 15,2742 27666 ADS BETA/180 # BETA DONE. 046000,000468: 046001,000469: 15,2743 04770 TC SPSIN 046002,000470: 15,2744 00006 EXTEND 046003,000471: 15,2745 71705 MP PHIDOT # NEGLECT CB IN CB PHIDOT 046004,000472: 15,2746 61665 AD ALFA/180 046005,000473: 15,2747 02542 TC ANGOVCOR 046006,000474: 15,2750 55665 TS ALFA/180 # ALFA DONE. 046007,000475: # Page 1049 046008,000476: 15,2751 40000 COM 046009,000477: 15,2752 61603 AD ALFACOM 046010,000478: 15,2753 02542 TC ANGOVCOR # JUST IN CASE ... 046011,000479: 15,2754 55477 TS AK1 046012,000480: 15,2755 55572 TS QAXERR # FOR PITCH FDAI AND EDIT. 046013,000481: 046014,000482: 15,2756 31705 CA PHIDOT # PHIDOT TCDU/180, NEGLECTING CB 046015,000483: 15,2757 61664 AD ROLL/180 046016,000484: 15,2760 02542 TC ANGOVCOR 046017,000485: 15,2761 55714 TS ROLLTM # ROLL/180 FOR TM. 046018,000486: 15,2762 55664 TS ROLL/180 # ROLL DONE. 046019,000487: 046020,000488: # START YAW AUTOPILOT HERE. RATE DAMPING WITH ENFORCED COORDINATED ROLL MANEUVER. 046021,000489: 046022,000490: 15,2763 34710 CA BIT3 # .05GSW = 102D BIT3 SW=0, LESS .05G 046023,000491: 15,2764 70102 MASK CM/FLAGS # SWITCH =1, GREATER THAN .05 G 046024,000492: 15,2765 00006 EXTEND 046025,000493: 15,2766 13054 BZF EXDAP # IF G LESS THAN .05 046026,000494: 15,2767 44712 CS ONE # IF G GEQ THAN .05 046027,000495: 15,2770 55700 TS CMDAPMOD # SAVE -1 FOR USE IN CM/RCS 046028,000496: 046029,000497: 15,2771 55477 TS AK1 # TO ZERO PITCH AND YAW FDAI NEEDLES 046030,000498: 15,2772 55500 TS AK2 # IN ATM. (MODE =-1) 046031,000499: 046032,000500: 15,2773 41701 CS PREL # YAW ERROR = RREL - PREL TAN(ALFA) 046033,000501: 15,2774 00006 EXTEND 046034,000502: 15,2775 73217 MP SINTRIM # LET SIN(-20) BE APPROX FOR TAN(-20) 046035,000503: 15,2776 61703 AD RREL 046036,000504: 15,2777 03044 TC 2D/SDZ # GO TEST DZ. GET TAG: +0 IF IN DZ 046037,000505: 15,3000 50000 INDEX A # +/- 1 IF NOT 046038,000506: 15,3001 33222 CAF YJETCODE 046039,000507: 046040,000508: 15,3002 55720 TS JETEM 046041,000509: 046042,000510: # START PITCH AUTOPILOT HERE. RATE DAMPING ONLY. 046043,000511: 046044,000512: 15,3003 31702 CA QREL 046045,000513: 15,3004 03044 TC 2D/SDZ 046046,000514: 15,3005 50000 EXDAPIN INDEX A # COME HERE FROM EX ATM DAP 046047,000515: 15,3006 33225 CAF P/RJCODE 046048,000516: 15,3007 27720 ADS JETEM # COMBINE ALL NEW BITS. 046049,000517: 046050,000518: 15,3010 00006 EXTEND # DOES NOT REQUIRE SAVING OLD CODES. 046051,000519: 15,3011 01005 WRITE PYJETS # SET PYCHAN TO DESIRED BIT CONFIG. 046052,000520: 046053,000521: 15,3012 11711 CCS JETAG 046054,000522: 15,3013 03236 TC CM/RCS 046055,000523: 15,3014 03716 TC CM/FDAI 046056,000524: 15,3015 03723 TC CM/FDAIR -1 # (JETAG=-1 EQUIVALENT TO CMDAPMOD=+1) 046057,000525: 046058,000526: # Page 1050 046059,000527: # DEAD ZONE LOGIC USED BY ENTRY DIGITAL AUTOPILOTS. 046060,000528: 046061,000529: 15,3016 10000 3DDZ CCS A # YAWLIM=1.0-3/180=16384-273=16111 046062,000530: 15,3017 63215 AD YAWLIM 046063,000531: 15,3020 13050 TCF DZCOM 046064,000532: 15,3021 63215 AD YAWLIM 046065,000533: 15,3022 13051 TCF DZNOCOM 046066,000534: 046067,000535: # BIASED DZ FOR EXT ATM DAP. 046068,000536: 15,3023 55624 BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L. 046069,000537: 15,3024 10000 CCS A # START ERROR DZ. 046070,000538: 15,3025 43214 CS CM/BIAS # = .6/180 046071,000539: 15,3026 13030 TCF +2 046072,000540: 15,3027 33214 CA CM/BIAS 046073,000541: 15,3030 60001 AD L # BIAS THE ERROR. 046074,000542: 15,3031 22002 LXCH Q # SAVE CALLER'S RETURN ADDRES. 046075,000543: 15,3032 03016 TC 3DDZ # GO GENERATE THE ERROR BIT. 046076,000544: 15,3033 52002 DXCH L # BIT TO L, RESTORE CALLER'S Q. 046077,000545: 15,3034 11624 4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT 046078,000546: 15,3035 63212 AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE 046079,000547: 15,3036 13040 TCF +2 # JET BITS ACCORDING TO SGN OF RATE. 046080,000548: 15,3037 63212 AD 4D/SLIM 046081,000549: 15,3040 54000 TS A 046082,000550: 15,3041 13043 TCF +2 # RATE OK. CONTINUE 046083,000551: 15,3042 22007 ZL # RATE GEQ 4 D/S. OVER RIDE ERROR BIT 046084,000552: 15,3043 57624 XCH JETEM2 # AND CONTINUE TO GET SIGN. 046085,000553: 046086,000554: 15,3044 10000 2D/SDZ CCS A # COME HERE TO TEST IF A WITHIN 2DEG/S DZ 046087,000555: 15,3045 63213 AD YDOTLIM # 1.0 - YDOT DZ (OR PDOT) 046088,000556: 15,3046 13051 TCF +3 046089,000557: 15,3047 63213 AD YDOTLIM # YDOT DZ = 2 DEG/SEC 046090,000558: 15,3050 40000 DZCOM COM 046091,000559: 15,3051 55721 DZNOCOM TS JETEM +1 # GENERATE TAG, SET C(A)= -+1 OUTSIDE DZ 046092,000560: 15,3052 34714 CA ZERO # SET C(A) = +0 INSIDE 046093,000561: 15,3053 00002 TC Q 046094,000562: 046095,000563: # Page 1051 046096,000564: # EXTRA ATMOSPHERIC DIGITAL AUTOPILOT 046097,000565: 046098,000566: # 1. IF ABS(CALF) -C(45) POS, USE IF CALFA POS, CMDAPMOD= +0 046099,000567: # BETA: YAW ERROR = SGN(CALF) (BETACOM -BETA) IF CALFA NEG, CMDAPMOD= -0 046100,000568: # RATE = BETADOT IF CMDAPMOD = -0, RATE = RREL 046101,000569: # R-AXIS = CONTROL 046102,000570: 046103,000571: # ROLL: ROLL ERROR = SGN(CALF) (ROLLC - ROLL) IF CMDAPMOD = -0, RATE DAMP ONLY. 046104,000572: # RATE = PREL 046105,000573: # P-AXIS = CONTROL 046106,000574: 046107,000575: # 2. IF C(45) GEQ CALFA GEQ -C(45), USE CMDAPMOD = +1 046108,000576: # BETA: ROLL ERROR = SGN(-SALF) (BETACOM -BETA) 046109,000577: # RATE = BETADOT 046110,000578: # P-AXIS = CONTROL 046111,000579: 046112,000580: # ROLL: YAW ERROR = SGN(SALF) (ROLLC - ROLL) RATE DAMP ONLY. 046113,000581: # RATE = RREL 046114,000582: # R-AXIS = CONTROL 046115,000583: 046116,000584: # 3. FOR ALL CASES, USE 046117,000585: # ALFA: PITCH ERROR = (ALFACOM - ALFA) 046118,000586: # RATE = QREL 046119,000587: # Q-AXIS = CONTROL 046120,000588: 046121,000589: 15,3054 55700 EXDAP TS CMDAPMOD # +0 FOR NOW 046122,000590: 15,3055 41666 CS BETA/180 046123,000591: 15,3056 61604 AD BETACOM 046124,000592: 15,3057 55721 TS JETEM +1 # PRESERV THIS FOR A WHILE. 046125,000593: 046126,000594: 15,3060 11506 CCS CALFA 046127,000595: 15,3061 63216 AD C45LIM # =1.0-COS(45) 046128,000596: 15,3062 13064 TCF +2 046129,000597: 15,3063 63216 AD C45LIM 046130,000598: 15,3064 54000 TS A 046131,000599: 15,3065 13146 TCF EXDAP2 # HERE IF ABS(CALFA) L COS(45) 046132,000600: 046133,000601: 15,3066 11506 CCS CALFA # |CALFA| > 0.707 046134,000602: 15,3067 13070 TCF +1 # CONTINUE IF POS 046135,000603: # Page 1052 -- Blank -- RSB 2004 046136,000604: # Page 1053 046137,000605: 15,3070 11727 CCS P63FLAG # VALID VALUES ARE: -1, +1, +0. 046138,000606: 15,3071 03104 TC EXDAP4 046139,000607: 15,3072 03074 TC +2 046140,000608: 15,3073 03104 TC EXDAP4 046141,000609: 15,3074 05301 TC PHASCHNG # SINGLE PASS THROUGH HERE. 046142,000610: 15,3075 40334 OCT 40334 046143,000611: 15,3076 44712 CS ONE 046144,000612: 15,3077 55727 TS P63FLAG # SET FLAG TO ASSURE SINGLE PASS. 046145,000613: # Page 1054 -- Is blank -- RSB 2004 046146,000614: # Page 1055 046147,000615: 15,3100 33211 CA NSEC 046148,000616: 15,3101 05140 TC WAITLIST 046149,000617: 15,3102 E6,1661 EBANK= AOG 046150,000618: 15,3102 02374 54066 2CADR WAKEP62 # CALL TO TERMINATE P62 IN N SEC. 046151,000619: 046152,000620: # 65 DEG/ 3DEG/SEC = 21 SEC NOMINAL 046153,000621: # TRANSIT TIME FROM ALFA=45 TO ALFA TRIM. 046154,000622: 046155,000623: 15,3104 11711 EXDAP4 CCS JETAG # ROLLJET INTERFACE TEST BETWEEN .1 SEC 046156,000624: 15,3105 13113 TCF EXDAP3 # DAP AND THE 2 SEC CM/RCS DAP 046157,000625: 15,3106 13113 TCF EXDAP3 046158,000626: 15,3107 34714 CA ZERO 046159,000627: 15,3110 00006 EXTEND # TURN OFF ROLL JETS IF ON AND WAIT 046160,000628: 15,3111 01006 WRITE ROLLJETS # UNTIL START OF 2 SEC CM/RCS CYCLE 046161,000629: 15,3112 55711 TS JETAG # RESTORE PROPER VALUE +0 046162,000630: 046163,000631: # ROLL FDAI WILL BE IN ERROR UNTIL NEXT CM/RCS CALL. 046164,000632: 15,3113 11506 EXDAP3 CCS CALFA # HERE IF ABS(CALFA) GEQ COS(45) 046165,000633: 15,3114 31721 CA JETEM +1 046166,000634: 15,3115 13121 TCF EXDAP1 046167,000635: 15,3116 44714 CS ZERO 046168,000636: 15,3117 55700 TS CMDAPMOD # FOR CM/RCS 046169,000637: 15,3120 41721 CS JETEM +1 046170,000638: 15,3121 55573 EXDAP1 TS RAXERR # FOR YAW FDAI 046171,000639: 15,3122 55500 TS AK2 # WANT RAXERR FOR TM. 046172,000640: 15,3123 54001 TS L 046173,000641: 15,3124 11700 CCS CMDAPMOD # COORDINATE BETA CONTROL. 046174,000642: 15,3125 03130 TC +3 # C(CMDAPMOD) CAN BE +1, +0, OR -0. 046175,000643: 15,3126 34712 CA ONE # USE BETADOT TO COORD IN MODE +0 046176,000644: 15,3127 50000 INDEX A # OTHERWISE USE RREL. 046177,000645: 15,3130 31703 CA RREL 046178,000646: 15,3131 03023 TC BIASEDZ # GO TEST DZ +0 IF IN DX, +-1 OTHERWISE 046179,000647: # IF GEQ 4D/S, SET ERROR BIT IN L=0 046180,000648: 15,3132 00006 EXTEND 046181,000649: 15,3133 04001 ROR LCHAN # L HAS BETA BIT 046182,000650: 15,3134 50000 INDEX A 046183,000651: 15,3135 33222 CAF YJETCODE 046184,000652: 15,3136 55720 TS JETEM 046185,000653: 046186,000654: 15,3137 31572 CA QAXERR # ALFA ERROR. 046187,000655: 15,3140 54001 TS L 046188,000656: 15,3141 31702 CA QREL # FOR ALPHADOT USE QREL 046189,000657: 15,3142 03023 TC BIASEDZ 046190,000658: 15,3143 00006 EXTEND 046191,000659: 15,3144 04001 ROR LCHAN 046192,000660: 15,3145 13005 TCF EXDAPIN # CONTINUE ON IN DAP 046193,000661: 046194,000662: 15,3146 25700 EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1 046195,000663: 046196,000664: 15,3147 44712 CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO 046197,000665: # Page 1056 -- blank -- RSB 2004. 046198,000666: # Page 1057 046199,000667: 15,3150 55711 TS JETAG # TO 2 SEC FOR ROLL JETS. (IF CMDAPMOD 046200,000668: # =0 AND JETAG =-1, QUENCHES JETS IF ON) 046201,000669: 046202,000670: 15,3151 11727 CCS P63FLAG # IF FLAG WAS +1, SET =0. 046203,000671: 15,3152 55727 TS P63FLAG 046204,000672: 15,3153 13154 NOOP 046205,000673: 046206,000674: 15,3154 11507 CCS SALFA # BETA CONTROL WITH P JETS 046207,000675: 15,3155 41721 CS JETEM +1 046208,000676: 15,3156 13160 TCF +2 046209,000677: 15,3157 31721 CA JETEM +1 046210,000678: 15,3160 55713 TS PAXERR1 # TEMP SAVE. ERROR/180 046211,000679: 15,3161 00006 EXTEND 046212,000680: 15,3162 74675 MP HALF # CM/FDAI EXPECTS ERROR/360. 046213,000681: 15,3163 57713 XCH PAXERR1 # ERROR/360 FOR FDAI, GET ERROR/180. 046214,000682: 15,3164 54001 TS L 046215,000683: 15,3165 11507 CCS SALFA 046216,000684: 15,3166 41704 CS BETADOT # USE BETADOT TO COORD IN MODE +1 046217,000685: 15,3167 03171 TC +2 046218,000686: 15,3170 31704 CA BETADOT 046219,000687: 15,3171 03023 TC BIASEDZ 046220,000688: 15,3172 00006 EXTEND 046221,000689: 15,3173 04001 ROR LCHAN 046222,000690: 15,3174 50000 INDEX A 046223,000691: 15,3175 33225 CAF P/RJCODE # GET ROLL CODE 046224,000692: 15,3176 00006 EXTEND # ROLL CONTROL WITH YAW JETS. 046225,000693: 15,3177 01006 WRITE ROLLJETS # WE'LL SKIP REGULAR ROLL SYSTE 046226,000694: 046227,000695: 15,3200 31717 CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME. 046228,000696: 15,3201 00006 EXTEND 046229,000697: 15,3202 21664 MSU ROLL/180 # 1'S COMPL, BUT SO WHAT'S A BIT? 046230,000698: 15,3203 54001 TS L # FORCE A LIMIT CYCLE IN YAW RATE. 046231,000699: 15,3204 11507 CCS SALFA 046232,000700: 15,3205 30001 CA L # TO REMOVE ITS BIASING EFFECT ON M DOT. 046233,000701: 15,3206 03121 TC EXDAP1 046234,000702: 15,3207 40001 CS L 046235,000703: 15,3210 03121 TC EXDAP1 046236,000704: 046237,000705: 15,3211 04064 NSEC DEC 2100 B-14 # 65 DEG/ 3 DEG/SEC 046238,000706: # IF NSEC IS CHANGED, REMEMBER TO CHANGE 4.33SPOT. 046239,000707: 15,3212 37734 4D/SLIM DEC 16348 B-14 # 1.0 -4/180 D/S = 4/1800 EXP 14 046240,000708: 15,3213 37756 YDOTLIM DEC 16366 B-14 # =1.0 - YDOT DZ= 16384 -18 046241,000709: # YDOT DZ = YDOT TCDU/180 = 2/1800 EXP 14 046242,000710: 046243,000711: 15,3214 00067 CM/BIAS DEC 55 B-14 # =.6/180 B14 = 55 046244,000712: 15,3215 37267 YAWLIM DEC 16055 B-14 # YAWLIM=1.0-3.6/180=16384-329=16055 046245,000713: 15,3216 11277 C45LIM DEC .29289 # =1.0-COS(45) 046246,000714: 046247,000715: 15,3217 65033 SINTRIM DEC -.34202 # SIN(-20) (FOR NOMINAL L/D = .3) 046248,000716: 15,3220 36044 COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3) 046249,000717: 046250,000718: # Page 1058 046251,000719: # TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA 046252,000720: # USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY 046253,000721: # FROM TRIM, SO USE ON-BOARD ESTIMATES. 046254,000722: 046255,000723: # JET CODE TABLES FOLLOW 046256,000724: 046257,000725: 15,3221 00120 OCTAL 00120 # POS Y 046258,000726: 15,3222 00000 YJETCODE OCTAL 00000 # RCS JET BITS 046259,000727: 15,3223 00240 OCTAL 00240 # NEG Y 046260,000728: 15,3224 00005 OCTAL 00005 # POS R JET BITS ALSO POS P JET BITS 046261,000729: 15,3225 00000 P/RJCODE OCTAL 00000 046262,000730: 15,3226 00012 OCTAL 00012 # NEG R ALSO NEG P 046263,000731: 046264,000732: # Page 1059 046265,000733: # RCS THIS SECTION IS ENTERED EACH 2 SEC BY WAITLIST CALL FOLLOWING A DELAY OF 1.2 SEC AFTER PIPUP. 046266,000734: # THE TASK SETJTAG SETS A FLAG IN JETAG TO SIGNIFY THAT ROLL UPDATE IS DUE. IN ROUGHLY 5 CS BPDYRATE WILL BE 046267,000735: # EXECUTED AND JETAG WILL CAUSE CM/RCS TO ACT ON ROLLC IMMEDIATELY THEREAFTER. THE 046268,000736: # TASK SAVES THE CALL TIME SO THAT CM/RCS CAN DETERMINE HOW MUCH OF THE 2 SEC INTERVAL REMAINS BEFORE THE 046269,000737: # NEXT UPDATE. 046270,000738: 046271,000739: 15,3227 40025 SETJTAG CS TIME1 # SAVE NOMINAL UPDATE TIME FOR SYNCH 046272,000740: 15,3230 55712 TS TUSED 046273,000741: # THE 5 CS APPEARS IN TIMETST. 046274,000742: 15,3231 34712 CA ONE # RATHER THAN INCR, FOR SAFETY 046275,000743: 15,3232 55711 TS JETAG # SET JETAG=1 TO CAUSE CM/RCS TO BE 046276,000744: 15,3233 05301 TC PHASCHNG 046277,000745: 15,3234 00001 OCT 00001 046278,000746: 046279,000747: 15,3235 05213 TC TASKOVER # EXECUTED AFTER NEXT BODYRATE UPDATE 046280,000748: 046281,000749: # PREDICTIVE ROLL SYSTEM ENTRY STEERING PROVIDES ROLL COMMAND IN LOC ROLLC. THE FOLLOWING CALCULATES THE 046282,000750: # TRAJECTORY TO THE ORIGIN IN PHASE PLANE (X,V). PROGRAM ENTERS JET ON AND OFF CALLS INTO WTLST TO PRODUCE 046283,000751: # THE DESIRED TRAJECTORY. ONLY THOSE CALLS WHICH CAN BE EXECUTED WITHIN THE INTERVAL T (2SEC) ARE ENTERED IN 046284,000752: # WTLST, THE REMAINDER ARE RECONSIDERED AT NEXT UPDATE. 046285,000753: 046286,000754: 15,3236 4674 HALFPR EQUALS NEG1/2 +1 046287,000755: 046288,000756: # CLEAR JETAG BEFORE TIMETST. SET TO +0 TO SHOW 046289,000757: # ROLL DAP CALLED. IN EVENT OF RESTART, BODYRATE 046290,000758: # MAY MISS A CYCLE. CM/RCS WILL MISS A CYCLE ONLY 046291,000759: # IF A RESTART OCCURS AFTER TIMETST COMMENCES. 046292,000760: 046293,000761: 15,3236 44712 CM/RCS CS ONE 046294,000762: 15,3237 55617 TS JNDX # SET NDX FOR POS ROLL, AND CHANGE LATER 046295,000763: 046296,000764: 15,3240 44726 CS 2T/TCDU # ROLLDOT = DELAOG + DELAIG SINM =DELR 046297,000765: 15,3241 00006 EXTEND 046298,000766: 15,3242 71701 MP PREL # DELR/180 = RDOT TCDU/180 = RDOT/1800 046299,000767: 15,3243 60001 AD L # -2 RDOT T/180 IN L 046300,000768: 15,3244 55613 TS -VT/180 # SAVE -2VT/180 HERE 046301,000769: 046302,000770: 15,3245 41664 CS ROLL/180 046303,000771: 15,3246 54021 TS SR # SAVE (-R/180) /2 046304,000772: 046305,000773: 15,3247 40102 CS CM/FLAGS 046306,000774: 15,3250 74707 MASK BIT4 # LATSW = 101D BIT4 046307,000775: 15,3251 00006 EXTEND # ROLL OVER TOP S 046308,000776: 15,3252 13260 BZF GETLCX # NO, TAKE SHORTEST PATH 046309,000777: 15,3253 26102 ADS CM/FLAGS # YES, ENFORCE ROLL OVER TOP.. (BIT =0) 046310,000778: 15,3254 31715 CA ROLLC # (ROLLC/180) /2 046311,000779: 15,3255 60021 AD SR # -(R/180) /2 046312,000780: 15,3256 57614 XCH LCX/360 # DIFFERENT X REQD HERE. DISCONT AT 180. 046313,000781: 15,3257 13320 TCF COMPAT # POSSIBLE OVFL ABOVE. 046314,000782: 046315,000783: # Page 1060 046316,000784: 15,3260 34675 GETLCX CA POS1/2 # FORM RCOM/360 046317,000785: 15,3261 60000 DOUBLE 046318,000786: 15,3262 61715 AD ROLLC 046319,000787: 15,3263 57614 XCH LCX/360 # IGNORE POSSIBLE OVFL. 046320,000788: 046321,000789: 15,3264 30021 CA SR # FORM -R/360 046322,000790: 15,3265 64673 AD NEG1/2 046323,000791: 15,3266 64673 AD NEG1/2 # IGNORE OVFL 046324,000792: 15,3267 57614 XCH LCX/360 # -R/360 046325,000793: 15,3270 27614 ADS LCX/360 # LCX/360 = RCOM/360 - R/360 RANGE (-1,1) 046326,000794: 046327,000795: # DOES SGN(-VT) (VT/180) (VT/180) (180/(R A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL? 046328,000796: 046329,000797: 15,3271 11613 CCS -VT/180 # TAKE SHORTEST ANGULAR PATH 046330,000798: 15,3272 64712 AD ONE # (BASED ON SINGLE JET ACCELERATION) 046331,000799: 15,3273 13275 TCF +2 046332,000800: 15,3274 64712 AD ONE 046333,000801: 15,3275 00006 EXTEND 046334,000802: 15,3276 71613 MP -VT/180 # C(-VT/180) = -2 VT/180 046335,000803: 15,3277 00006 EXTEND 046336,000804: 15,3300 73767 MP 1/16A1 # = 180/(16 A1 TT) 046337,000805: 15,3301 00006 EXTEND 046338,000806: 15,3302 11506 DV CALFA 046339,000807: 15,3303 54001 TS L 046340,000808: 15,3304 11614 CCS LCX/360 046341,000809: 15,3305 34675 CAF POS1/2 046342,000810: 15,3306 13310 TCF +2 046343,000811: 15,3307 44675 CS POS1/2 046344,000812: 15,3310 61614 AD LCX/360 # IS LCX/360 LESS THAN 180 DEGS 046345,000813: 15,3311 60001 AD L 046346,000814: 15,3312 54001 TS L 046347,000815: 15,3313 13320 TCF COMPAT # YES, GO ON. 046348,000816: 15,3314 50000 TRTAGXPI INDEX A # NO, SHIFT X BY - SGN(X) 2 PI 046349,000817: 15,3315 44674 CS HALFPR # +A YIELDS -1/2 046350,000818: 15,3316 60000 DOUBLE 046351,000819: 15,3317 27614 ADS LCX/360 046352,000820: 046353,000821: 15,3320 31614 COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN. 046354,000822: 15,3321 00006 EXTEND 046355,000823: 15,3322 71506 MP CALFA # COS ALFA 046356,000824: 15,3323 55614 TS LCX/360 # SCALED LCX OK HERE. 046357,000825: 046358,000826: 15,3324 11700 CCS CMDAPMOD # FOUR POSSIBILITIES HERE 046359,000827: 15,3325 03714 TC DZCALL1 # EXIT, SETTING JETAG=0. (C(A)=0) 046360,000828: # ALL 3 AXES ALREADY DONE. 046361,000829: 15,3326 03327 TC +1 # G LESS THAN .05. CA POS. CONTINUE 046362,000830: 15,3327 31614 CA LCX/360 # G GEQ .05. CONTINUE IN CM/RCS 046363,000831: 15,3330 55614 TS LCX/360 # CMDAPMOD=-0. DAMPING ONLY. SET LCX=0 046364,000832: 15,3331 55713 TS PAXERR1 # SAVE LCX FOR FDAI AND EDIT. (/360) 046365,000833: # Page 1061 046366,000834: 15,3332 31613 CA -VT/180 # GET - 2 VT/180 046367,000835: 15,3333 54021 TS SR 046368,000836: 15,3334 30021 CA SR # GET -VT/180, LEAVE -VT/360 IN SR FOR DZ 046369,000837: 15,3335 55570 TS -VT/180E # DIAGNOSTIC **** 046370,000838: 15,3336 57613 XCH -VT/180 # NOW CONTENTS OF -VT/180 AS LABELED 046371,000839: 15,3337 00006 EXTEND 046372,000840: 15,3340 71613 MP -VT/180 # B(A) = -ZVT/180 046373,000841: 15,3341 00006 EXTEND 046374,000842: 15,3342 73767 MP 180/8ATT 046375,000843: 15,3343 55616 TS VSQ/4API 046376,000844: 046377,000845: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 -.5 BUFLIM/360 POS? 046378,000846: 046379,000847: 15,3344 60000 WHICHALF DOUBLE # FOR SECOND BURN, A1 046380,000848: 15,3345 40000 COM 046381,000849: 15,3346 63773 AD BUFLIM # =BUFLIM/(2 360) 046382,000850: 15,3347 54001 TS L 046383,000851: 15,3350 11613 CCS -VT/180 046384,000852: 15,3351 40001 CS L 046385,000853: 15,3352 13354 TCF +2 046386,000854: 15,3353 30001 CA L 046387,000855: 15,3354 61614 AD LCX/360 046388,000856: 15,3355 63773 AD BUFLIM 046389,000857: 15,3356 00006 EXTEND 046390,000858: 15,3357 63374 BZMF REFLECT # POINT (X,V) IN LHP. 046391,000859: 046392,000860: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 + .5 BUFLIM/360 NEG? 046393,000861: 046394,000862: 15,3360 40000 COM 046395,000863: 15,3361 63773 AD BUFLIM 046396,000864: 15,3362 63773 AD BUFLIM 046397,000865: 15,3363 00006 EXTEND 046398,000866: 15,3364 63403 BZMF DZ1 # POINT (X,V) IN RHP 046399,000867: 046400,000868: # IS POINT WITHIN VELOCITY DZ? 046401,000869: 046402,000870: 15,3365 43766 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG? 046403,000871: 15,3366 61616 AD VSQ/4API 046404,000872: 15,3367 00006 EXTEND 046405,000873: 15,3370 63676 BZMF DZCALL # YES. 046406,000874: 046407,000875: # POINT IS IN BUFFER ZONE. THRUST TO X AXIS. 046408,000876: 046409,000877: 15,3371 41617 CS JNDX 046410,000878: 15,3372 55620 TS JNDX1 046411,000879: 15,3373 03456 TC OVRLINE1 046412,000880: 046413,000881: 15,3374 41613 REFLECT CS -VT/180 # RELFECT LHP INTO RHP REL TO TERM CONTR 046414,000882: 15,3375 55613 TS -VT/180 046415,000883: 15,3376 54021 TS SR # -VT/360 SAVED FOR DZ. 046416,000884: # Page 1062 046417,000885: 15,3377 41614 CS LCX/360 046418,000886: 15,3400 55614 TS LCX/360 046419,000887: 15,3401 41617 CS JNDX 046420,000888: 15,3402 55617 TS JNDX 046421,000889: 046422,000890: # IS VSQ/4API - (VSQ/4API) MIN NEG? 046423,000891: 046424,000892: 15,3403 43766 DZ1 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG? 046425,000893: 15,3404 61616 AD VSQ/4API 046426,000894: 15,3405 00006 EXTEND 046427,000895: 15,3406 63410 BZMF DZ2 # YES, GO TEST FURTHER. 046428,000896: 15,3407 13415 TCF MAXVTEST # NO 046429,000897: 046430,000898: # IS X/360 - XMIN/360 -VT/360 NEG? 046431,000899: 046432,000900: 15,3410 43771 DZ2 CS XMIN/360 # XMIN/360 = 4/360 046433,000901: 15,3411 61614 AD LCX/360 046434,000902: 15,3412 60021 AD SR # C(SR) = -VT/360 046435,000903: 15,3413 00006 EXTEND # IS X/360 - XMIN/360 -VT/360 NEG? 046436,000904: 15,3414 63676 BZMF DZCALL # YES, IN DZ. EXIT SETTING JETAG=0. 046437,000905: 046438,000906: # IS XD/360 - VM/360K - XS/360 POS? 046439,000907: 046440,000908: 15,3415 41617 MAXVTEST CS JNDX 046441,000909: 15,3416 55620 TS JNDX1 # NOW CAN SET JNDX1 FOR TON2 JETS. 046442,000910: 15,3417 43773 CS XS/360 # XS/360 = (XMIN -YMIN/K) /360 046443,000911: 15,3420 61616 AD VSQ/4API 046444,000912: 15,3421 61614 AD LCX/360 046445,000913: 15,3422 55615 TS XD/360 # XD/360= X/360 +VSQ/4API X INTERCEPT 046446,000914: # BUT C(XD/360) = (XD - XS) /360 046447,000915: 15,3423 63772 AD -VM/360K # X INTERCEPT FOR MAX V (VM) 046448,000916: 15,3424 40000 COM 046449,000917: 15,3425 00006 EXTEND 046450,000918: 15,3426 63434 BZMF MAXVTIM1 # YES, THRUST TO VM 046451,000919: 15,3427 31615 CA XD/360 046452,000920: 15,3430 00006 EXTEND 046453,000921: 15,3431 74675 MP KTRCS 046454,000922: 15,3432 20001 DDOUBL # GO SAVE PREDICTED DRIFTING VELOCITY. 046455,000923: 046456,000924: 15,3433 03437 TC GETON1 # INSURE THAT Q IS POS AS TAG. 046457,000925: 15,3434 00006 MAXVTIM1 EXTEND 046458,000926: 15,3435 22007 ZQ # SET +Q AS TAG 046459,000927: 15,3436 43772 CS -VMT/180 046460,000928: 15,3437 55567 GETON1 TS VDT/180 # VDT/180 OR VMT/180 046461,000929: 15,3440 61613 AD -VT/180 046462,000930: 15,3441 60000 DOUBLE 046463,000931: 15,3442 00006 EXTEND 046464,000932: 15,3443 73767 MP 180/8ATT 046465,000933: 15,3444 55621 TS TON1 # TON1 / 4T 046466,000934: # Page 1063 046467,000935: 15,3445 00006 EXTEND 046468,000936: 15,3446 63450 BZMF OVRLINE 046469,000937: 15,3447 03462 TC GETON2 # RESET Q POS IF CAME FROM MAXVTIM1 046470,000938: 046471,000939: 15,3450 10002 OVRLINE CCS Q 046472,000940: 15,3451 13456 TCF OVRLINE1 046473,000941: 15,3452 31620 MAXVTIM2 CA JNDX1 # ABOVE VM, SO THRUST DOWN 046474,000942: 15,3453 55617 TS JNDX 046475,000943: 15,3454 41621 CS TON1 046476,000944: 15,3455 13461 TCF OVRLINE2 +1 046477,000945: 046478,000946: 15,3456 41613 OVRLINE1 CS -VT/180 # DRIFT AT V 046479,000947: 15,3457 55567 TS VDT/180 046480,000948: 15,3460 34714 OVRLINE2 CA ZERO 046481,000949: 15,3461 55621 TS TON1 046482,000950: 15,3462 31567 GETON2 CA VDT/180 # VDT/180, OR VMT/180 OR VT/180 046483,000951: 15,3463 60000 DOUBLE 046484,000952: 15,3464 00006 EXTEND 046485,000953: 15,3465 73767 MP 180/8ATT 046486,000954: 15,3466 60000 DOUBLE # FOR SECOND BURN, A1 046487,000955: 15,3467 55607 TS TON2 # = TON2 / 4T 046488,000956: 046489,000957: 15,3470 40000 COM 046490,000958: 15,3471 00006 EXTEND 046491,000959: 15,3472 63476 BZMF GETOFF 046492,000960: 15,3473 55607 TS TON2 046493,000961: 15,3474 31617 CA JNDX 046494,000962: 15,3475 55620 TS JNDX1 046495,000963: 046496,000964: 15,3476 41607 GETOFF CS TON2 # TON2 / 4T 046497,000965: 15,3477 00006 EXTEND 046498,000966: 15,3500 71567 MP VDT/180 # VDT/180, OR VT/180, OR VMT/180. 046499,000967: 15,3501 55615 TS XD/360 # USE AS TEMP 046500,000968: 15,3502 41567 CS VDT/180 046501,000969: 15,3503 00006 EXTEND 046502,000970: 15,3504 13520 BZF TOFFOVFL # OMIT THE DIVIDE IF DEN = 0. 046503,000971: 15,3505 61613 AD -VT/180 046504,000972: 15,3506 00006 EXTEND 046505,000973: 15,3507 71621 MP TON1 # TON1 /4T 046506,000974: 15,3510 61615 AD XD/360 # TEMP = -VDT/180 / 2 TON2 046507,000975: 15,3511 61614 AD LCX/360 046508,000976: 15,3512 22007 ZL 046509,000977: 15,3513 56001 XCH L # TEST THE DIVIDE 046510,000978: 15,3514 00006 EXTEND 046511,000979: 15,3515 11567 DV VDT/180 046512,000980: 15,3516 00006 EXTEND 046513,000981: 15,3517 13522 BZF GETOFF2 # DIVIDE OK 046514,000982: 046515,000983: 15,3520 34740 TOFFOVFL CA 2JETT # OVFL, USE 2T FOR CONVENIENCE. 046516,000984: 15,3521 13527 TCF TIMSCAL 046517,000985: 046518,000986: # Page 1064 046519,000987: 15,3522 56001 GETOFF2 XCH L # GET NUMERATOR. 046520,000988: 15,3523 00006 EXTEND 046521,000989: 15,3524 11567 DV VDT/180 # C(A) = TOFF / 2T 046522,000990: 15,3525 00006 EXTEND 046523,000991: 15,3526 74740 MP 2JETT 046524,000992: 15,3527 55605 TIMSCAL TS TOFF # IN CS 046525,000993: 046526,000994: 15,3530 33770 CAF 4JETT 046527,000995: 15,3531 00006 EXTEND 046528,000996: 15,3532 71621 MP TON1 # C(TON1) = TON1 / 4T 046529,000997: 15,3533 55621 TS TON1 # IN CS 046530,000998: 046531,000999: 15,3534 33770 CAF 4JETT 046532,001000: 15,3535 00006 EXTEND 046533,001001: 15,3536 71607 MP TON2 # C(TON2) = TON2 / 4T 046534,001002: 15,3537 55607 TS TON2 # IN CS 046535,001003: 046536,001004: 15,3540 34714 CA ZERO # CANNOT REDO AFTER TIMETST. TUSED GONE 046537,001005: 15,3541 55711 TS JETAG # SET +0 TO SHOW ROLL DAP CALLED. 046538,001006: 046539,001007: # CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE 046540,001008: # INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON EXIT 046541,001009: # AND ON ALTERNATE PASSES THROUGH CM/DUMPR. 046542,001010: 046543,001011: 15,3542 34712 CA ONE 046544,001012: 15,3543 54305 TS SW/NDX 046545,001013: 046546,001014: # Page 1065 046547,001015: # TIMETEST SECTION FOR RCS 046548,001016: 046549,001017: # ENTER WITH THREE TIME INTERVALS AND THE CORRESPONDING JET CODE INDEXES IN ERASABLE LOCS TON1, TOFF, TON2, JNDX 046550,001018: # JNDX1. SECTION PROCESSES TIME INTERVALS FOR WTLST CALLS AND ASSURES THAT WTLST CALLS ARE MADE ONLY 046551,001019: # (1) FOR POS INTERVALS GREATER THAN A SPECIFIED MINIMUM (HERE CHOSEN AS 2 CS) AND 046552,001020: # (2) FOR THE INTERVALS THAT WILL BE EXECUTED WITHIN THE TIME REMAINING IN THE SAMPLE INTERVAL T (2 SEC). 046553,001021: # TIMETST ESTABLISHES 6 LOCS CONTAINING JET CODES AND CORRESPONDING TIME INTERVALS. THUS: TON1, T1BITS, 046554,001022: # TOFF, TBITS, TON2, T2BITS. OF THESE THE FIRST 2 LOCS ARE TEMPORARY, FOR IMMEDIATE ACTION, IN GENERAL. 046555,001023: # SECTION JETCALL BELOW PROCESSES THIS LIST. 046556,001024: 046557,001025: 15,3544 30025 TIMETST CA TIME1 # CORRECT FOR POSSIBLE TIME1 OVFL. 046558,001026: 15,3545 64675 AD POS1/2 046559,001027: 15,3546 64675 AD POS1/2 # OVFL GUARANTEED. 046560,001028: 15,3547 27712 ADS TUSED # B(TUSED) =-TUSED =-OLTIME1 046561,001029: 046562,001030: 15,3550 33765 CA -T-3 # =-T +2 -5 (SEE SETJTAG) 046563,001031: # THE +2 REQUIRED FOR PROPER BRANCH. 046564,001032: 15,3551 27712 ADS TUSED # TUSED = TIME(K)-TIME(K-1)-T+2 046565,001033: 046566,001034: 15,3552 44711 CS TWO # USE 2 SINCE TIME3 UNCERTAIN TO 1 046567,001035: 15,3553 61621 AD TON1 046568,001036: 15,3554 00006 EXTEND 046569,001037: 15,3555 63567 BZMF TIMETST1 046570,001038: 15,3556 51617 INDEX JNDX 046571,001039: 15,3557 33225 CAF P/RJCODE 046572,001040: 15,3560 55622 TS T1BITS 046573,001041: 046574,001042: 15,3561 31621 CA TON1 046575,001043: 15,3562 27712 ADS TUSED 046576,001044: 15,3563 00006 EXTEND 046577,001045: 15,3564 63571 BZMF TOFFTEST 046578,001046: 15,3565 34714 CA ZERO 046579,001047: 15,3566 13622 TCF TIMETST3 046580,001048: 15,3567 44712 TIMETST1 CS ONE 046581,001049: 15,3570 55621 TS TON1 046582,001050: 15,3571 44711 TOFFTEST CS TWO 046583,001051: 15,3572 61605 AD TOFF 046584,001052: 15,3573 00006 EXTEND 046585,001053: 15,3574 63603 BZMF TIMETST2 046586,001054: 15,3575 31605 CA TOFF 046587,001055: 15,3576 27712 ADS TUSED 046588,001056: 15,3577 00006 EXTEND 046589,001057: 15,3600 63605 BZMF TON2TEST 046590,001058: 15,3601 34714 CA ZERO 046591,001059: 15,3602 13624 TCF TIMETST4 046592,001060: 15,3603 44712 TIMETST2 CS ONE 046593,001061: 15,3604 55605 TS TOFF 046594,001062: 15,3605 44711 TON2TEST CS TWO 046595,001063: 15,3606 61607 AD TON2 046596,001064: 15,3607 00006 EXTEND 046597,001065: 15,3610 63625 BZMF TIMETST5 046598,001066: # Page 1066 046599,001067: 15,3611 51620 INDEX JNDX1 046600,001068: 15,3612 33225 CAF P/RJCODE 046601,001069: 15,3613 55610 TS T2BITS 046602,001070: 15,3614 31607 CA TON2 046603,001071: 15,3615 27712 ADS TUSED 046604,001072: 15,3616 00006 EXTEND 046605,001073: 15,3617 63627 BZMF JETCALL1 046606,001074: 15,3620 34714 CA ZERO 046607,001075: 15,3621 13626 TCF TIMETST5 +1 046608,001076: 15,3622 55621 TIMETST3 TS TON1 046609,001077: 15,3623 44712 CS ONE 046610,001078: 15,3624 55605 TIMETST4 TS TOFF 046611,001079: 15,3625 44712 TIMETST5 CS ONE 046612,001080: 15,3626 55607 TS TON2 046613,001081: 046614,001082: # SECTION JETCALL EXAMINES CONTENTS OF JET TIMES IN LIST, ESTABLISHES WTLST ENTRIES, AND EXECUTES CORRESPONDING 046615,001083: # JET CODES. A POSITIVE NZ NUMBER IN A TIME REGISTER INDICATES THAT A WTLST CALL IS TO BE MADE, AND ITS JET BITS 046616,001084: # EXECUTED. A +0 INDICATES THAT THE TIME INTERVAL DOES NOT APPLY, BUT THE CORRESPOINDING JET BITS ARE TO BE 046617,001085: # EXECUTED. A NEG NUMBER INDICATES THAT THE TIME INTERVAL HAS BEEN PROCESSED. IN EVENT OF +0 OR -1, THE 046618,001086: # SUBSEQUENT TIME REGISTER IS EXAMINED FOR POSSIBLE ACTION. THUS JET BITS TO BE EXECUTED MAY COME FROM MORE 046619,001087: # THAN ONE REGISTER. 046620,001088: 046621,001089: 15,3627 34714 JETCALL1 CA ZERO 046622,001090: 15,3630 55611 TS OUTTAG 046623,001091: 15,3631 55612 TS NUJET 046624,001092: 15,3632 55606 TS TBITS 046625,001093: 15,3633 53622 DXCH TON1 046626,001094: 15,3634 10000 CCS A 046627,001095: 15,3635 13652 TCF JETCALL2 # CALL WTLST 046628,001096: 15,3636 23612 JETCALL3 LXCH NUJET # WTLST ENTRIES COME HERE FROM JETCALL 046629,001097: 15,3637 44712 CS ONE 046630,001098: 15,3640 53606 DXCH TOFF 046631,001099: 15,3641 10000 CCS A 046632,001100: 15,3642 13652 TCF JETCALL2 # CALL WTLST 046633,001101: 15,3643 23612 LXCH NUJET 046634,001102: 15,3644 44712 CS ONE 046635,001103: 15,3645 53610 DXCH TON2 046636,001104: 15,3646 10000 CCS A 046637,001105: 15,3647 13652 TCF JETCALL2 # CALL WTLST 046638,001106: 15,3650 23612 LXCH NUJET 046639,001107: 15,3651 03661 TC JETACTN # C(A) = +0 046640,001108: 15,3652 56001 JETCALL2 XCH L # SAVE JET BITS FOR AFTER WTLST CALL 046641,001109: 15,3653 27612 ADS NUJET 046642,001110: 15,3654 56001 XCH L 046643,001111: 15,3655 64712 AD ONE # RESTORE FOR CCS 046644,001112: 15,3656 05140 TC WAITLIST 046645,001113: 15,3657 E6,1661 EBANK= AOG 046646,001114: 15,3657 03667 32066 2CADR JETCALL 046647,001115: 046648,001116: 15,3661 31612 JETACTN CA NUJET # COME HERE WHEN DESIRED JET CODE IS KNOWN 046649,001117: # Page 1067 046650,001118: 15,3662 00006 EXTEND # NO NEED TO SAVE OLD CODES 046651,001119: 15,3663 01006 WRITE ROLLJETS # SET RCHAN TO NEW BIT CONFIG. 046652,001120: 046653,001121: 15,3664 11611 CCS OUTTAG 046654,001122: 15,3665 05213 TC TASKOVER 046655,001123: 15,3666 03724 ROLLDUMP TC CM/FDAIR 046656,001124: 046657,001125: # EDIT DUMP AT ABOVE LOCATION. 046658,001126: 046659,001127: # WAITLIST ENTRIES COME HERE. 046660,001128: 046661,001129: 15,3667 34711 JETCALL CAF BIT2 # CM/DSTBY =103D BIT2 046662,001130: 15,3670 55611 TS OUTTAG # SIGNIFY WTLST ENTRY 046663,001131: 15,3671 70102 MASK CM/FLAGS # IS SYSTEM DISABLED? 046664,001132: 15,3672 00006 EXTEND 046665,001133: 15,3673 13662 BZF JETACTN +1 # YES, QUENCH ROLL JETS, IF ON AND EXIT. 046666,001134: 15,3674 22007 ZL # NO, CONTINUE. 046667,001135: 15,3675 13636 TCF JETCALL3 # C(A) POS, C(L) = +0 046668,001136: 046669,001137: # DEAD ZONE ENTRIES COME HERE. 046670,001138: 046671,001139: 15,3676 41700 DZCALL CS CMDAPMOD # POSSIBLE VALUES OF CMDAPMOD: -1, +0, -0. 046672,001140: 15,3677 74712 MASK BIT1 046673,001141: 15,3700 54001 TS L # C(L)=0 FOR -0 046674,001142: # Page 1068 --- blank --- RSB 2004 046675,001143: # Page 1069 046676,001144: 15,3701 50000 INDEX A # ERASABLE ORDER: ROLLTM, ROLLC, ROLLC +1. 046677,001145: 15,3702 31714 CA ROLLTM # GET ROLL/180 OR ROLLC (/360). 046678,001146: 15,3703 50001 INDEX L 046679,001147: 15,3704 54000 TS A # IF C(L)=1, STORE "ROLLC" IN "L". 046680,001148: 15,3705 60001 AD L # (BOTH MUST BE SCALED DEG/180) 046681,001149: 15,3706 02542 TC ANGOVCOR # C(A)=ROLL/180 OR 2 ROLLC. 046682,001150: 15,3707 55717 TS ROLLHOLD # IF CMDAPMOD =-0, SAVE ROLL ANGLE. 046683,001151: # OTHERWISE, SAVE ROLL COMMAND. 046684,001152: 046685,001153: 15,3710 34714 CA ZERO # COME HERE IF IN DZ, AND CANCEL JETS. 046686,001154: 15,3711 00006 EXTEND # INHINT NOT NEEDED HERE. 046687,001155: 15,3712 01006 WRITE ROLLJETS # TURN OFF ALL ROLL JETS. 046688,001156: 15,3713 55567 TS VDT/180 # SET =0 TO SHOW IN DEAD ZONE. 046689,001157: 15,3714 55711 DZCALL1 TS JETAG # COME HERE WITH C(A)=0. 046690,001158: 15,3715 03666 TC ROLLDUMP 046691,001159: 046692,001160: # Page 1070 --- blank --- RSB 2004 046693,001161: # Page 1071 046694,001162: # CM ENTRY FDAI DISPLAY 046695,001163: 046696,001164: # CALCULATE BY INTEGRATION THE ROLL ERROR BETWEEN THE 2 SEC CM/RCS UPDATES. DISPLAY ATTITUDE ERRORS AS FOLLOWS: 046697,001165: # ATM DAP: DISPLAY ONLY ROLL ATTITUDE ERROR. 046698,001166: # EXT ATM DAP: PRESENT 3 ATTITUDE ERRORS RELATIVE TO THE APPROPRIATE BODY AXES EACH .1 SEC. 046699,001167: # ROLL ROLL-ROLL 046700,001168: # PITCH ALFAC-ALFA 046701,001169: # YAW BETAC-BETA 046702,001170: 046703,001171: # DURING ENTRY, THE FDAI NEEDLES HAVE FULL SCALE OF 67.5 DEG IN ROLL AND 16.875 DEG IN PITCH AND YAW. 046704,001172: # THE SUBROUTINE NEEDLER EXPECTS (ANGLE/180) AND SCALES TO 16.875 DEG FULL SCALE. 046705,001173: 046706,001174: # COME HERE EACH .1 SEC. (CMDAPMOD=+1 COMES BELOW) 046707,001175: 15,3716 41705 CM/FDAI CS PHIDOT # INTEGRATE ROLL ERROR 'TWEEN 2SEC UPDATES 046708,001176: 15,3717 00006 EXTEND 046709,001177: 15,3720 71506 MP CALFA # FOR ASSUMED COORDINATION. 046710,001178: 15,3721 00006 EXTEND 046711,001179: 15,3722 74675 MP HALF 046712,001180: 15,3723 27713 ADS PAXERR1 # ROLL ERROR/360. OVFL OK. 046713,001181: 046714,001182: # EDIT DUMP AT ABOVE LOCATION. 046715,001183: 15,3724 34675 CM/FDAIR CA HALF 046716,001184: 15,3725 00006 EXTEND 046717,001185: 15,3726 71713 MP PAXERR1 # FULL SCALE FOR FDAI (ROLL) IS 67.5 D 046718,001186: 15,3727 55476 TS PAXERR # .25 (ROLL ERROR/180) FOR FDAI NEEDLE. 046719,001187: 046720,001188: # PROGRAM TO FILE BODY RATES FOR TM ON ONE PASS AND 046721,001189: # TO UPDATE THE NEEDLE DISPLAY ON THE NEXT. 046722,001190: # SYNCHRONIZATION WITH CM/RCS IS USED SO THAT THE TM 046723,001191: # IS DONE WITH THE ROLL SYSTEM AND NEEDLES START ON 046724,001192: # THE SUBSEQUENT PASS. 046725,001193: 046726,001194: 15,3730 40305 CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE 046727,001195: 15,3731 54305 TS SW/NDX 046728,001196: 15,3732 00006 EXTEND # INDEX 046729,001197: 15,3733 63737 BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO 046730,001198: # ENDBUF. 046731,001199: 046732,001200: # INDEX IS POS FOR NEEDLES. 046733,001201: 046734,001202: 15,3734 04633 TC IBNKCALL 046735,001203: 15,3735 42404 CADR NEEDLER 046736,001204: 046737,001205: 15,3736 03755 TC CM/END 046738,001206: 046739,001207: # INDEX IS NEG FOR TM FILE 046740,001208: 046741,001209: 15,3737 66214 CMTMFILE AD THREE 046742,001210: 15,3740 00006 EXTEND 046743,001211: 15,3741 63745 BZMF SAVENDX 046744,001212: # Page 1072 --- blank --- RSB 2004 046745,001213: # Page 1073 046746,001214: 15,3742 30025 CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF. 046747,001215: 15,3743 54304 TS CMTMTIME 046748,001216: 15,3744 44720 CS THIRTEEN # INITIALIZE COUNTER 046749,001217: 15,3745 54305 SAVENDX TS SW/NDX # A NEGATIVE NUMBER. 046750,001218: 15,3746 00006 EXTEND 046751,001219: 15,3747 31702 DCA PREL 046752,001220: 15,3750 50305 INDEX SW/NDX 046753,001221: 15,3751 52324 DXCH ENDBUF -1 046754,001222: 15,3752 31703 CA RREL 046755,001223: 15,3753 50305 INDEX SW/NDX 046756,001224: 15,3754 54325 TS ENDBUF +1 046757,001225: 046758,001226: 15,3755 31623 CM/END CA CM/SAVE 046759,001227: 15,3756 54021 TS SR 046760,001228: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS 046761,001229: 046762,001230: 15,3757 00006 EXTEND 046763,001231: 15,3760 33764 DCA T5IDLER2 046764,001232: 15,3761 53313 DXCH T5LOC 046765,001233: 15,3762 05222 TC RESUME 046766,001234: 046767,001235: 15,3763 1312 EBANK= T5LOC 046768,001236: 15,3763 03143 12062 T5IDLER2 2CADR T5IDLOC 046769,001237: 046770,001238: # DEFINE THE FOLLOWING 17D REGISTERS IN UPBUFF TO BE 046771,001239: # USED TO TELEMETER CM VEHICLE BODY RATE INFORMATION. 046772,001240: # THE INFORMATION IS FILED EACH 0.2 SEC, GIVING 15D 046773,001241: # DATA POINTS EACH 1 SEC. TM LIST IS READ TWICE 046774,001242: # EACH 2 SECONDS. 046775,001243: 046776,001244: # THE SEQUENCE IS: SP TIME INITIAL TIME 046777,001245: # SWITCH ALSO INDEX. 046778,001246: # P ROLL RATE 046779,001247: # Q PITCH RATE 046780,001248: # R YAW RATE 046781,001249: # ETC. 046782,001250: 046783,001251: # CMTMTIME = UPBUFF 046784,001252: # SW/NDX = UPBUFF +1 046785,001253: # ENDBUF = UPBUFF +16D 046786,001254: 046787,001255: # Page 1074 046788,001256: # SPACER 046789,001257: 046790,001258: # CONSTANTS USED IN THE ROLL CONTROL SYSTEM: 046791,001259: # CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC, 046792,001260: # XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE 046793,001261: # XBUF = 4DEG 046794,001262: 046795,001263: 15,3765 77464 -T-3 DEC -203 B-14 # CS 046796,001264: 15,3766 00012 VSQMIN DEC .61050061 E-3 # VSQ MIN/4 A PI = 4/(4 (9.1) 180) 046797,001265: 15,3767 4726 2T/TCDU = OCT50 # T/TCDU EXP-14 TCDU = .1SEC 046798,001266: 15,3767 23617 180/8ATT DEC .61813187 # 180/(8 (9.1) 4)=(180/ATT) EXP -3 046799,001267: 15,3770 15,3772 -VMT/180 = -VM/360K # = 20 (2) / 180 046800,001268: 15,3770 4740 2JETT = 4SECS # CS 2 (2) 100 INTEGER 046801,001269: 15,3770 01440 4JETT DEC 800 B-14 # CS 4 (2) 100 INTEGER 046802,001270: 15,3771 00266 XMIN/360 DEC 182 B-14 # XMIN/360 = 4/ 360 EXP 14 = 182 INTEGER 046803,001271: 15,3772 70706 -VM/360K DEC -.22222222 # =-20/( 360 (.25)) 046804,001272: 15,3773 15,3767 1/16A1 = 180/8ATT 046805,001273: # 1/16A1 = 180/(16 A1 TT) 046806,001274: # = 180/(16 4.55 4) 046807,001275: 15,3773 00133 XS/360 DEC 91 B-14 # = (XMIN +VI (T-1/K))/360 = 2/360 EXP 14 046808,001276: 15,3774 15,3773 BUFLIM = XS/360 # 4/(2 360) 046809,001277: 046810,001278: 15,3774 4675 KTRCS = HALF # KT = (.25) 2 = .5 046811,001279: 046812,001280: # *** END OF DAPCSM .95 *** 046813,001281: End of include-file CM_ENTRY_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc