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