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