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