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