Source Code
This is the source-code for the Apollo 9 Command Module's Guidance Computer.
These files were derived originally from the scan from MIT's Dibner Institute's
now-discontinued website titled "History of Recent Science and Technology", which
in turn was originally created by Gary Neff, though his high-quality scans were
unfortunately reduced in legibility when presented online.
The markings on the front of the
printout imply that it was the original AGC developer Norm Brodeur's copy.
A scan by Ron Burkey has superceded it, made from a more-legible copy from the collection of original
AGC developer Fred Martin. The source code was transcribed from
those images by Ron Burkey. Note that the page images
presented online are of reduced quality, and that higher-quality images
are available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:ASSEMBLE REVISION 249 OF AGC PROGRAM COLOSSUS BY NASA 2021111-041 20'35 OCT. 28,1968Note that the date is the date of the printout, not the date of the program revision. |
046112,000002: ## Copyright: Public domain.
046113,000003: ## Filename: CM_ENTRY_DIGITAL_AUTOPILOT.agc
046114,000004: ## Purpose: Part of the source code for Colossus, build 249.
046115,000005: ## It is part of the source code for the Command Module's (CM)
046116,000006: ## Apollo Guidance Computer (AGC), for Apollo 9.
046117,000007: ## Assembler: yaYUL
046118,000008: ## Reference: Starts on p. 1034
046119,000009: ## Contact: Ron Burkey <info@sandroid.org>.
046120,000010: ## Website: www.ibiblio.org/apollo.
046121,000011: ## Mod history: 08/27/04 RSB. Began transcribing.
046122,000012: ## 2010-10-24 JL Indentation fixes.
046123,000013: ## 2017-01-06 RSB Page numbers now agree with those on the
046124,000014: ## original harcopy, as opposed to the PDF page
046125,000015: ## numbers in 1701.pdf.
046126,000016: ## 2017-01-07 RSB Cross-diff'd comment text (not whitespace)
046127,000017: ## vs the already-proofed corresponding Colossus
046128,000018: ## 237 and Comanche 55 source-code files
046129,000019: ## and corrected errors found.
046130,000020: ## 2017-03-16 RSB Comment-text fixes identified in 5-way
046131,000021: ## side-by-side diff of Luminary 69/99/116/131/210.
046132,000022: ## 2017-03-16 RSB Comment-text fixes identified in 4-way side-by-side
046133,000023: ## diff of Colossus237/249/Comanche55/Artemis72.
046134,000024:
046135,000025: ## The contents of the "Colossus249" files, in general, are transcribed
046136,000026: ## from a scanned copy of the program listing. Notations on this
046137,000027: ## document read, in part:
046138,000028: ##
046139,000029: ## Assemble revision 249 of AGC program Colossus by NASA
046140,000030: ## 2021111-041. October 28, 1968.
046141,000031: ##
046142,000032: ## This AGC program shall also be referred to as
046143,000033: ## Colossus 1A
046144,000034: ##
046145,000035: ## Prepared by
046146,000036: ## Massachusetts Institute of Technology
046147,000037: ## 75 Cambridge Parkway
046148,000038: ## Cambridge, Massachusetts
046149,000039: ## under NASA contract NAS 9-4065.
046150,000040: ##
046151,000041: ## Refer directly to the online document mentioned above for further information.
046152,000042: ## Please report any errors (relative to the scanned pages) to info@sandroid.org.
046153,000043: ##
046154,000044: ## In some cases, where the source code for Luminary 131 overlaps that of
046155,000045: ## Colossus 249, this code is instead copied from the corresponding Luminary 131
046156,000046: ## source file, and then is proofed to incorporate any changes.
046157,000047:
Page 1034 |
046159,000049: # SUBROUTINE TO READ GYMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2S COMPLEMENT, BUT THE
046160,000050: # DIFFERENCES ARE IN 1S COMP. ENTER AND READ ANGLES EACH .1 SEC.
046161,000051:
046162,000052: # CM/DSTBY = 1 FOR DAP OPERATION
046163,000053: # CM/DSTBY = 0 TO TERMINATE DAP OPERATION.
046164,000054:
046165,000055: 15,2454 BANK 15
046166,000056:
046167,000057: 15,2000 SETLOC ETRYDAP
046168,000058: 15,2000 BANK
046169,000059:
046170,000060: 15,2454 COUNT 15/DAPEN
046171,000061:
046172,000062: 15,2454 E6,1661 EBANK= AOG
046173,000063:
046174,000064: 15,2454 34377 READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO
046175,000065: 15,2455 27725 ADS CM/GYMDT # PIPTIME. (GROUP 6)
046176,000066:
046177,000067: # IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE
046178,000068: # PHASCHNG PROTECTION IS IN CM/DAPIC.
046179,000069:
046180,000070: 15,2456 34705 CA BIT6 # CHECK FOR FINE ALIGN MODE OF CDU.
046181,000071: 15,2457 71321 MASK IMODES33 # (PROTECT AOG/PIP ETC AS WELL AS
046182,000072: 15,2460 00006 EXTEND # GIMBAL DIFFERENCES)
046183,000073: 15,2461 12467 BZF READGYM1 # OK
046184,000074:
046185,000075: 15,2462 44712 CS BIT1 # NOT IN FINE ALIGN, SO IDLE.
046186,000076: 15,2463 70102 MASK CM/FLAGS # SET GYMDIFSW = 0
046187,000077: 15,2464 54102 TS CM/FLAGS
046188,000078: 15,2465 06000 TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE.
046189,000079: 15,2466 02534 TC CM/GYMIC +2
046190,000080:
046191,000081: 15,2467 30032 READGYM1 CA CDUX
046192,000082: 15,2470 57661 XCH AOG
046193,000083: 15,2471 00006 EXTEND
046194,000084: 15,2472 21661 MSU AOG # -DELAOG=AOG(N-1) - AOG(N)
046195,000085: 15,2473 55675 TS -DELAOG
046196,000086:
046197,000087: 15,2474 30033 CA CDUY
046198,000088: 15,2475 57662 XCH AIG
046199,000089: 15,2476 00006 EXTEND
046200,000090: 15,2477 21662 MSU AIG
046201,000091: 15,2500 55676 TS -DELAIG
046202,000092:
046203,000093: 15,2501 30034 CA CDUZ
046204,000094: 15,2502 57663 XCH AMG
046205,000095: 15,2503 00006 EXTEND
046206,000096: 15,2504 21663 MSU AMG
046207,000097: 15,2505 55677 TS -DELAMG
046208,000098:
Page 1035 |
046210,000100: 15,2506 40102 DOBRATEW CS CM/FLAGS # CM/DSTBY=103D BIT2 GYMDIFSW=104D BIT1
046211,000101: 15,2507 76214 MASK THREE
046212,000102: 15,2510 50000 INDEX A
046213,000103: 15,2511 02512 TC +1
046214,000104: 15,2512 02521 TC DOBRATE # OK, GO ON
046215,000105: 15,2513 02532 TC CM/GYMIC # DONT CALC BODYRATE ON FIRST PASS.
046216,000106: 15,2514 12515 NOOP
046217,000107: 15,2515 06000 TC FLUSHJET # TURN OFF ALL JETS
046218,000108:
046219,000109: 15,2516 05301 TC PHASCHNG
046220,000110: 15,2517 00006 OCT 00006 # DEACTIVATE DAP GROUP 6.
046221,000111:
046222,000112: 15,2520 05213 TC TASKOVER
046223,000113:
046224,000114: 15,2521 34712 DOBRATE CA ONE # DO BODYRATE
046225,000115: 15,2522 55720 DOBRATE1 TS JETEM # SKIP BODYRATE.
046226,000116:
046227,000117: 15,2523 34377 CA TEN # KEEP CDU READ GOING.
046228,000118: 15,2524 05140 TC WAITLIST
046229,000119: 15,2525 E6,1661 EBANK= AOG
046230,000120: 15,2525 02454 32066 2CADR READGYMB
046231,000121:
046232,000122: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
046233,000123:
046234,000124: 15,2527 11720 CCS JETEM
046235,000125: 15,2530 02556 TC BODYRATE
046236,000126: 15,2531 05213 TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES)
046237,000127:
046238,000128: 15,2532 26102 CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0
046239,000129: 15,2533 34714 CAF ZERO
046240,000130: 15,2534 55711 TS JETAG
046241,000131: 15,2535 55706 TS OLDELP
046242,000132: 15,2536 55707 TS OLDELQ
046243,000133: 15,2537 55710 TS OLDELR
046244,000134: 15,2540 55723 TS GAMDOT # NO GYM DIF, PROB NO GAM DIF.
046245,000135: 15,2541 02522 TC DOBRATE1
046246,000136:
Page 1036 |
046248,000138: # COME HERE TO CORRECT FOR OVERFLOW IN ANGULAR CALCULATIONS
046249,000139:
046250,000140: 15,2542 54001 ANGOVCOR TS L # THIS COSTS 2 MCT TO USE.
046251,000141: 15,2543 00002 TC Q # NO OVFL
046252,000142: 15,2544 50000 INDEX A
046253,000143: 15,2545 34673 CAF LIMITS
046254,000144: 15,2546 26001 ADS L
046255,000145: 15,2547 00002 TC Q
046256,000146:
046257,000147: 6000 BLOCK 3
046258,000148:
046259,000149: 6000 COUNT 03/DAPEN
046260,000150:
046261,000151: 6000 30007 FLUSHJET CA 7 # COME HERE TO TURN OFF ALL JETS.
046262,000152: 6001 00006 EXTEND
046263,000153: 6002 01006 WRITE ROLLJETS # ZERO CHANNEL 6
046264,000154: 6003 00006 EXTEND
046265,000155: 6004 01005 WRITE PYJETS # ZERO CHANNEL 5
046266,000156: 6005 00002 TC Q
046267,000157:
046268,000158: 15,2550 BANK 15
046269,000159:
046270,000160: 15,2550 COUNT 15/DAPEN
046271,000161:
046272,000162: 15,2000 SETLOC ETRYDAP
046273,000163: 15,2000 BANK
046274,000164:
046275,000165: 15,2550 40000 RATEAVG COM # SUBROUTINE TO ESTIMATE RATES IN PRESENCE
046276,000166: 15,2551 61720 AD JETEM # OF CONSTANT ACCELERATION.
046277,000167: 15,2552 00006 EXTEND
046278,000168: 15,2553 74675 MP HALF # DELV (EST) = DELV +(DELV-OLDELV)/2
046279,000169: 15,2554 61720 AD JETEM
046280,000170: 15,2555 00002 TC Q
046281,000171:
Page 1037 |
046283,000173: # THESE ARE CALLED FOR THE VARIOUS INITIALIZATIONS NEEDED.
046284,000174:
046285,000175: 20,3565 BANK 20
046286,000176: 20,2000 SETLOC DAPS1
046287,000177: 20,2000 BANK
046288,000178:
046289,000179: 20,3565 COUNT 20/DAPEN
046290,000180: 20,3565 E6,1661 EBANK= AOG
046291,000181:
046292,000182: 20,3565 34752 CM/DAPON CA EBAOG
046293,000183: 20,3566 54003 TS EBANK
046294,000184:
046295,000185: 20,3567 05447 TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER.
046296,000186: 20,3570 00132 ADRES DAPBIT1 # BIT 15 FLAG 6 CMFLAGS.
046297,000187: 20,3571 05447 TC DOWNFLAG # RESET DAPBIT2
046298,000188: 20,3572 00133 ADRES DAPBIT2 # BIT 14 FLAG 6
046299,000189: 20,3573 00006 EXTEND
046300,000190: 20,3574 33712 DCA T5IDLER1 # DISABLE RCS CALCULATION
046301,000191: 20,3575 53313 DXCH T5LOC
046302,000192: 20,3576 00006 EXTEND
046303,000193: 20,3577 33712 DCA T5IDLER1 # DISABLE RCS JET CALLS
046304,000194: 20,3600 53311 DXCH T6LOC
046305,000195:
046306,000196: 20,3601 06000 TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS.
046307,000197:
046308,000198: 20,3602 47707 CS 13,14,15
046309,000199: 20,3603 71466 MASK DAPDATR1 # SET CONFIG BITS=0 FOR ENTRY
046310,000200: 20,3604 55466 TS DAPDATR1
046311,000201: 20,3605 03611 TC +4
046312,000202:
046313,000203: 20,3606 34731 NOTYET CA .5SEC
046314,000204: 20,3607 04555 TC BANKCALL
046315,000205: 20,3610 01732 CADR DELAYJOB # (DELAYJOB DOES INHINT)
046316,000206: 20,3611 34700 +4 CA BIT11 # GAMDIFSW = 94D BIT11, INITLY=0
046317,000207: 20,3612 70102 MASK CM/FLAGS # IF ZERO, WAIT UNTIL CM/POSE UPDATE.
046318,000208: 20,3613 00006 EXTEND
046319,000209: 20,3614 13606 BZF NOTYET
046320,000210:
046321,000211: 20,3615 44712 CS ONE # ACTIVATE CM/DAP
046322,000212: 20,3616 55501 TS RCSFLAGS # USE BIT3 TO INITIALIZE NEEDLER ON
046323,000213: # NEXT PASS.
046324,000214: 20,3617 55727 TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL
046325,000215: # HEADSUP IS SET IN P62.
046326,000216:
046327,000217: # FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62.
046328,000218:
046329,000219: 20,3620 30007 CA 7
046330,000220: 20,3621 55711 TS JETAG
046331,000221: 20,3622 55713 TS PAXERR1 # KEEP NEEDLES ZERO UNTIL DAP UPDATE
046332,000222: # IN CASE CMDAPMOD IS NOT +1.
Page 1038 |
046334,000224: 20,3623 00004 INHINT
046335,000225: 20,3624 00006 EXTEND
046336,000226: 20,3625 31666 DCA ALFA/180 # DO ATTITUDE HOLD UNTIL KEYBOARD
046337,000227: 20,3626 53604 DXCH ALFACOM # ESTABLISHES HEADSUP.
046338,000228: 20,3627 31664 CA ROLL/180
046339,000229: 20,3630 55717 TS ROLLHOLD # FOR ATTITUDE HOLD IN MODE +1.
046340,000230: 20,3631 00006 EXTEND
046341,000231: 20,3632 74675 MP HALF
046342,000232: 20,3633 55715 TS ROLLC # NOT INTERESTED IN LO WORD.
046343,000233:
046344,000234: 20,3634 40102 CS CM/FLAGS
046345,000235: 20,3635 74677 MASK BIT12 # CMDAPARM =93D BIT12 INITLY=0
046346,000236: 20,3636 26102 ADS CM/FLAGS # SET BIT TO 1.
046347,000237:
046348,000238: 20,3637 40076 CS FLAGWRD2 # SET NODOFLAG TO PREVENT FURTHER
046349,000239: 20,3640 74712 MASK BIT1 # V 37 ENTRIES.
046350,000240: 20,3641 26076 ADS FLAGWRD2
046351,000241:
046352,000242: 20,3642 00003 RELINT
046353,000243:
046354,000244: 20,3643 04574 TC POSTJUMP
046355,000245: 20,3644 54342 CADR P62.1
046356,000246:
Page 1039 |
046358,000248: # INITIALIZE CM/DAP. WAITLIST CALL FOR READGYMB. SET SWITCH CM/DSTBY =1
046359,000249: # SO READACCS WILL ENTER A WTLST CALL FOR SETJTAG .
046360,000250: # CMDAPARM = 0, SO ONLY BODY RATE AND ATTITUDE CALCULATIONS ARE DONE.
046361,000251: # SET AVEGEXIT TO CONTINUE AT CM/POSE
046362,000252:
046363,000253: 20,3645 34752 CM/DAPIC CA EBAOG
046364,000254: 20,3646 54003 TS EBANK
046365,000255:
046366,000256: 20,3647 00004 INHINT
046367,000257: 20,3650 41205 CM/DAP2C CS PIPTIME +1
046368,000258: # PRIO OF P62 L PRIO AVG,:PIPTM=PIPTM1
046369,000259: 20,3651 55720 TS JETEM
046370,000260:
046371,000261: 20,3652 34675 CA POS1/2
046372,000262: 20,3653 64675 AD POS1/2
046373,000263: 20,3654 60025 AD TIME1 # OVFL GUARANTEED
046374,000264: 20,3655 27720 ADS JETEM # C(A) = DELTA TIME SINCE PIPUP
046375,000265:
046376,000266: 20,3656 44715 CS FIVE
046377,000267: 20,3657 61720 AD JETEM
046378,000268: 20,3660 10000 CCS A
046379,000269: 20,3661 63710 AD -CDUT+1
046380,000270: 20,3662 13660 TCF -2
046381,000271: 20,3663 13664 NOOP
046382,000272: 20,3664 64712 AD ONE # SEND NO ZERO TO WTLST
046383,000273: 20,3665 55725 TS CM/GYMDT # FOR RESTART
046384,000274: 20,3666 05140 TC WAITLIST
046385,000275: 20,3667 E6,1661 EBANK= AOG
046386,000276: 20,3667 02454 32066 2CADR READGYMB
046387,000277:
046388,000278: 20,3671 43707 CS CM/SWIC1 # GAMDIFSW, GYMDIFSW, CM/DSTBY
046389,000279: 20,3672 70102 MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP
046390,000280: 20,3673 64377 AD CM/SWIC2 # SET CM/DSTBY, LATSW
046391,000281: # DISABLE ENTRY DISPLAY, SINCE DES. GIMB.
046392,000282: # CALC. (P62.3) GOES TO ENDEXIT.
046393,000283: 20,3674 54102 TS CM/FLAGS
046394,000284:
046395,000285: 20,3675 30007 CA 7
046396,000286: 20,3676 55666 TS BETA/180 # NECESSARY: NO OVFL CORRECTION
046397,000287: 20,3677 34712 CA ONE # INITIALIZE THE TM OF BODY RATES VIA
046398,000288: 20,3700 54305 TS SW/NDX # UPBUFF.
046399,000289:
046400,000290: 20,3701 05261 TC 2PHSCHNG # DOES INHINT/RELINT
046401,000291: 20,3702 40116 OCT 40116 # SAVE TBASE6
046402,000292: 20,3703 05024 OCT 05024
046403,000293: 20,3704 13000 OCT 13000
046404,000294:
046405,000295: 20,3705 04574 TC POSTJUMP
Page 1040 |
046407,000297: 20,3706 54326 CADR P62.2
046408,000298:
046409,000299: 20,3707 16017 CM/SWIC1 OCT 16017
046410,000300: 20,3710 4377 CM/SWIC2 = TEN # 00012: CM/DSTBY, LATSW
046411,000301: 20,3710 77766 -CDUT+1 OCT 77766
046412,000302: 20,3711 1312 EBANK= T5LOC
046413,000303: 20,3711 03143 12062 T5IDLER1 2CADR T5IDLOC
046414,000304:
Page 1041 |
046416,000306: # THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES
046417,000307: # XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQUIREMENT: TEMPORARY ERASE. JETEM, JETEM +1
046418,000308:
046419,000309: # SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS,
046420,000310: # 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
046421,000311: # ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS
046422,000312: # STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE.
046423,000313: # THIS IS NECESSARY UNDER THE GROUNDRULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS.
046424,000314:
046425,000315: 20,3713 E6,1661 EBANK= AOG
046426,000316: 15,2556 BANK 15
046427,000317: 15,2000 SETLOC ETRYDAP
046428,000318: 15,2000 BANK
046429,000319:
046430,000320: 15,2556 COUNT 15/DAPEN
046431,000321:
046432,000322: 15,2556 31663 BODYRATE CA AMG # THESE ARE 2S COMPL NOS, BUT USE ANYWAY.
046433,000323: 15,2557 04767 TC SPCOS
046434,000324: 15,2560 55511 TS COSM
046435,000325:
046436,000326: 15,2561 31661 CA AOG # C(AOG) = AOG/180
046437,000327: 15,2562 04770 TC SPSIN # SINO
046438,000328: 15,2563 55512 TS SINO # SINO = SIN(AOG)
046439,000329:
046440,000330: 15,2564 00006 EXTEND
046441,000331: 15,2565 71511 MP COSM
046442,000332: 15,2566 55514 TS SINOCOSM # SO CM
046443,000333:
046444,000334: 15,2567 31661 CA AOG
046445,000335: 15,2570 04767 TC SPCOS # COSO
046446,000336: 15,2571 55513 TS COSO
046447,000337:
046448,000338: 15,2572 00006 EXTEND
046449,000339: 15,2573 71511 MP COSM
046450,000340: 15,2574 55515 TS COSOCOSM # CO CM
046451,000341:
046452,000342: # PITCHDOT: Q TCDU/180 = IDOT TCDU/180 COSO COSM + MDOT TCDU/180 SINO
046453,000343:
046454,000344: 15,2575 41677 CS -DELAMG
046455,000345: 15,2576 00006 EXTEND
046456,000346: 15,2577 71512 MP SINO
046457,000347: 15,2600 53721 DXCH JETEM # 2 LOCS _
046458,000348: 15,2601 41676 CS -DELAIG
046459,000349: 15,2602 00006 EXTEND
046460,000350: 15,2603 71515 MP COSOCOSM
046461,000351: 15,2604 21721 DAS JETEM
046462,000352: 15,2605 31720 CA JETEM
046463,000353: 15,2606 57707 XCH OLDELQ
046464,000354: 15,2607 02550 TC RATEAVG
046465,000355: 15,2610 55702 TS QREL # PITCHDOT = Q TCDU/180
046466,000356:
Page 1042 |
046468,000358: # YAWDOT: R TCDU/180 = -IDOT TCDU/180 COSM SINO + MDOT TCDU/180 COSO
046469,000359:
046470,000360: 15,2611 41677 CS -DELAMG
046471,000361: 15,2612 00006 EXTEND
046472,000362: 15,2613 71513 MP COSO
046473,000363: 15,2614 53721 DXCH JETEM
046474,000364: 15,2615 31676 CA -DELAIG
046475,000365: 15,2616 00006 EXTEND
046476,000366: 15,2617 71514 MP SINOCOSM
046477,000367: 15,2620 21721 DAS JETEM
046478,000368: 15,2621 31720 CA JETEM
046479,000369: 15,2622 57710 XCH OLDELR
046480,000370: 15,2623 02550 TC RATEAVG
046481,000371: 15,2624 55703 TS RREL # YAWDOT = R TCDU/180
046482,000372:
046483,000373: # ROLLDOT: P TCDU/180 = ODOT TCDU/180 + IDOT TCDU/180 SINM
046484,000374:
046485,000375: 15,2625 31663 CA AMG
046486,000376: 15,2626 04770 TC SPSIN
046487,000377: 15,2627 55510 TS SINM
046488,000378:
046489,000379: 15,2630 00006 EXTEND
046490,000380: 15,2631 71676 MP -DELAIG
046491,000381: 15,2632 55720 TS JETEM
046492,000382: 15,2633 34714 CA ZERO
046493,000383: 15,2634 20001 DDOUBL # ROUND L INTO A
046494,000384: 15,2635 61675 AD -DELAOG
046495,000385: 15,2636 61720 AD JETEM
046496,000386: 15,2637 40000 CS A
046497,000387: 15,2640 55720 TS JETEM
046498,000388: 15,2641 57706 XCH OLDELP
046499,000389: 15,2642 02550 TC RATEAVG
046500,000390: 15,2643 55701 TS PREL # ROLLDOT = P TCDU/180
046501,000391:
046502,000392: # IF GAMDOT < 0.5 DEG/SEC, THEN GAMDOT =0
046503,000393:
046504,000394: 15,2644 11723 CCS GAMDOT
046505,000395: 15,2645 02647 TC +2
046506,000396: 15,2646 02671 TC NOGAMDUT
046507,000397: 15,2647 41664 CS ROLL/180
046508,000398: 15,2650 04770 TC SPSIN
046509,000399: 15,2651 00006 EXTEND
046510,000400: 15,2652 71723 MP GAMDOT
046511,000401: 15,2653 55721 TS JETEM +1 # -SR GAMDOT
046512,000402: 15,2654 00006 EXTEND
046513,000403: 15,2655 73217 MP SINTRIM # SIN(-20) (FOR NOMINAL L/D = .3)
046514,000404: 15,2656 27701 ADS PREL # PREL TCDU/180=(P-SALF SR GAMDOT)TCDU/180
046515,000405:
046516,000406: 15,2657 31664 CA ROLL/180
046517,000407: 15,2660 04767 TC SPCOS
Page 1043 |
046519,000409: 15,2661 40000 COM
046520,000410: 15,2662 00006 EXTEND
046521,000411: 15,2663 71723 MP GAMDOT
046522,000412: 15,2664 27702 ADS QREL # QREL TCDU/180=(Q-CR GAMDOT) TCDU/180
046523,000413:
046524,000414: 15,2665 41721 CS JETEM +1 # B( ) = -SR GAMDOT
046525,000415: 15,2666 00006 EXTEND
046526,000416: 15,2667 73220 MP COSTRIM # COS(-20) (FOR NOMINAL L/D = .3)
046527,000417: 15,2670 27703 ADS RREL # RREL TCDU/180=(R+CALF SR GAMDOT)TCDU/180
046528,000418:
046529,000419: 15,2671 34677 NOGAMDUT CA BIT12 # CMDAPARM = 93D BIT 12
046530,000420: 15,2672 70102 MASK CM/FLAGS
046531,000421: 15,2673 00006 EXTEND
046532,000422: 15,2674 15213 STBYDUMP BZF TASKOVER # DAP NOT ARMED.
046533,000423:
046534,000424: 15,2675 34672 CA POSMAX # PICK UP AT ATTRATES IN 10 MS OR SO.
046535,000425: 15,2676 54030 TS TIME5
046536,000426:
046537,000427: 15,2677 00006 EXTEND
046538,000428: 15,2700 32704 DCA ATDOTCAD
046539,000429: 15,2701 53313 DXCH T5LOC
046540,000430: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
046541,000431:
046542,000432: 15,2702 05213 TC TASKOVER
046543,000433:
046544,000434: 15,2703 E6,1661 EBANK= AOG
046545,000435: 15,2703 02705 32066 ATDOTCAD 2CADR ATTRATES
046546,000436:
Page 1044 |
046548,000438: # CALCULATE BODY ATTITUDE RATES AND INTEGRATE TO OBTAIN ATTITUDE ANGLES.
046549,000439:
046550,000440: # CB PHIDOT TCDU/180 = (CA PREL + SA RREL) TCDU/180
046551,000441: # BETADOT TCDU/180 = (-SA PREL + CA RREL) TCDU/180
046552,000442: # ALFADOT TCDU = (QREL + SB PHIDOT) TCDU/180
046553,000443:
046554,000444: 15,2705 22016 ATTRATES LXCH BANKRUPT # CONTINUE HERE VIA T5
046555,000445: 15,2706 00006 EXTEND # TASK MAY BE SKIPPED AT RESTART.
046556,000446: 15,2707 22012 QXCH QRUPT
046557,000447: 15,2710 30021 CA SR
046558,000448: 15,2711 60000 DOUBLE
046559,000449: 15,2712 55623 TS CM/SAVE
046560,000450: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
046561,000451:
046562,000452: 15,2713 31702 CA QREL
046563,000453: 15,2714 61665 AD ALFA/180
046564,000454: 15,2715 02542 TC ANGOVCOR
046565,000455: 15,2716 55665 TS ALFA/180
046566,000456: 15,2717 04767 TC SPCOS
046567,000457: 15,2720 55506 TS CALFA # CALFA
046568,000458: 15,2721 55705 TS PHIDOT
046569,000459:
046570,000460: 15,2722 00006 EXTEND
046571,000461: 15,2723 71701 MP PREL
046572,000462: 15,2724 57705 XCH PHIDOT # CA PREL
046573,000463: 15,2725 00006 EXTEND
046574,000464: 15,2726 71703 MP RREL # CA RREL
046575,000465: 15,2727 55704 TS BETADOT
046576,000466:
046577,000467: 15,2730 31665 CA ALFA/180
046578,000468: 15,2731 04770 TC SPSIN
046579,000469: 15,2732 55507 TS SALFA # SIN(ALFA)
046580,000470:
046581,000471: 15,2733 00006 EXTEND
046582,000472: 15,2734 71703 MP RREL # SA RREL
046583,000473: 15,2735 27705 ADS PHIDOT # CB PHIDOT, SAVED.
046584,000474:
046585,000475: 15,2736 41507 CS SALFA
046586,000476: 15,2737 00006 EXTEND
046587,000477: 15,2740 71701 MP PREL
046588,000478: 15,2741 27704 ADS BETADOT # SAVE BETADOT TCDU/180
046589,000479: 15,2742 27666 ADS BETA/180 # BETA DONE.
046590,000480:
046591,000481: 15,2743 04770 TC SPSIN
046592,000482: 15,2744 00006 EXTEND
046593,000483: 15,2745 71705 MP PHIDOT # NEGLECT CB IN CB PHIDOT
046594,000484: 15,2746 61665 AD ALFA/180
046595,000485: 15,2747 02542 TC ANGOVCOR
046596,000486: 15,2750 55665 TS ALFA/180 # ALFA DONE.
Page 1045 |
046598,000488: 15,2751 40000 COM
046599,000489: 15,2752 61603 AD ALFACOM
046600,000490: 15,2753 02542 TC ANGOVCOR # JUST IN CASE ...
046601,000491: 15,2754 55477 TS AK1
046602,000492: 15,2755 55572 TS QAXERR # FOR PITCH FDAI AND EDIT.
046603,000493:
046604,000494: 15,2756 31705 CA PHIDOT # PHIDOT TCDU/180, NEGLECTING CB
046605,000495: 15,2757 61664 AD ROLL/180
046606,000496: 15,2760 02542 TC ANGOVCOR
046607,000497: 15,2761 55714 TS ROLLTM # ROLL/180 FOR TM.
046608,000498: 15,2762 55664 TS ROLL/180 # ROLL DONE.
046609,000499:
046610,000500: # START YAW AUTOPILOT HERE. RATE DAMPING WITH ENFORCED COORDINATED ROLL MANEUVER.
046611,000501:
046612,000502: 15,2763 34710 CA BIT3 # .05GSW = 102D BIT3 SW=0, LESS .05G
046613,000503: 15,2764 70102 MASK CM/FLAGS # SWITCH =1, GREATER THAN .05 G
046614,000504: 15,2765 00006 EXTEND
046615,000505: 15,2766 13054 BZF EXDAP # IF G LESS THAN .05
046616,000506: 15,2767 44712 CS ONE # IF G GEQ THAN .05
046617,000507: 15,2770 55700 TS CMDAPMOD # SAVE -1 FOR USE IN CM/RCS
046618,000508:
046619,000509: 15,2771 55477 TS AK1 # TO ZERO PITCH AND YAW FDAI NEEDLES
046620,000510: 15,2772 55500 TS AK2 # IN ATM. (MODE =-1)
046621,000511:
046622,000512: 15,2773 41701 CS PREL # YAW ERROR = RREL - PREL TAN(ALFA)
046623,000513: 15,2774 00006 EXTEND
046624,000514: 15,2775 73217 MP SINTRIM # LET SIN(-20) BE APPROX FOR TAN(-20)
046625,000515: 15,2776 61703 AD RREL
046626,000516: 15,2777 03044 TC 2D/SDZ # GO TEST DZ. GET TAG: +0 IF IN DZ
046627,000517: 15,3000 50000 INDEX A # +/- 1 IF NOT
046628,000518: 15,3001 33222 CAF YJETCODE
046629,000519:
046630,000520: 15,3002 55720 TS JETEM
046631,000521:
046632,000522: # START PITCH AUTOPILOT HERE. RATE DAMPING ONLY.
046633,000523:
046634,000524: 15,3003 31702 CA QREL
046635,000525: 15,3004 03044 TC 2D/SDZ
046636,000526: 15,3005 50000 EXDAPIN INDEX A # COME HERE FROM EX ATM DAP
046637,000527: 15,3006 33225 CAF P/RJCODE
046638,000528: 15,3007 27720 ADS JETEM # COMBINE ALL NEW BITS.
046639,000529:
046640,000530: 15,3010 00006 EXTEND # DOES NOT REQUIRE SAVING OLD CODES.
046641,000531: 15,3011 01005 WRITE PYJETS # SET PYCHAN TO DESIRED BIT CONFIG.
046642,000532:
046643,000533: 15,3012 11711 CCS JETAG
046644,000534: 15,3013 03236 TC CM/RCS
046645,000535: 15,3014 03716 TC CM/FDAI
046646,000536: 15,3015 03723 TC CM/FDAIR -1 # (JETAG=-1 EQUIVALENT TO CMDAPMOD=+1)
046647,000537:
Page 1046 |
046649,000539: # DEAD ZONE LOGIC USED BY ENTRY DIGITAL AUTOPILOTS.
046650,000540:
046651,000541: 15,3016 10000 3DDZ CCS A # YAWLIM=1.0-3/180=16384-273=16111
046652,000542: 15,3017 63215 AD YAWLIM
046653,000543: 15,3020 13050 TCF DZCOM
046654,000544: 15,3021 63215 AD YAWLIM
046655,000545: 15,3022 13051 TCF DZNOCOM
046656,000546:
046657,000547: # BIASED DZ FOR EXT ATM DAP.
046658,000548: 15,3023 55624 BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L.
046659,000549: 15,3024 10000 CCS A # START ERROR DZ.
046660,000550: 15,3025 43214 CS CM/BIAS # = .6/180
046661,000551: 15,3026 13030 TCF +2
046662,000552: 15,3027 33214 CA CM/BIAS
046663,000553: 15,3030 60001 AD L # BIAS THE ERROR.
046664,000554: 15,3031 22002 LXCH Q # SAVE CALLERS RETURN ADDRESS.
046665,000555: 15,3032 03016 TC 3DDZ # GO GENERATE THE ERROR BIT.
046666,000556: 15,3033 52002 DXCH L # BIT TO L, RESTORE CALLERS Q.
046667,000557: 15,3034 11624 4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT
046668,000558: 15,3035 63212 AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE
046669,000559: 15,3036 13040 TCF +2 # JET BITS ACCORDING TO SGN OF RATE.
046670,000560: 15,3037 63212 AD 4D/SLIM
046671,000561: 15,3040 54000 TS A
046672,000562: 15,3041 13043 TCF +2 # RATE OK. CONTINUE
046673,000563: 15,3042 22007 ZL # RATE GEQ 4 D/S. OVER RIDE ERROR BIT
046674,000564: 15,3043 57624 XCH JETEM2 # AND CONTINUE TO GET SIGN.
046675,000565:
046676,000566: 15,3044 10000 2D/SDZ CCS A # COME HERE TO TEST IF A WITHIN 2DEG/S DZ
046677,000567: 15,3045 63213 AD YDOTLIM # 1.0 - YDOT DZ (OR PDOT)
046678,000568: 15,3046 13051 TCF +3
046679,000569: 15,3047 63213 AD YDOTLIM # YDOT DZ = 2 DEG/SEC
046680,000570: 15,3050 40000 DZCOM COM
046681,000571: 15,3051 55721 DZNOCOM TS JETEM +1 # GENERATE TAG, SET C(A)= -+1 OUTSIDE DZ
046682,000572: 15,3052 34714 CA ZERO # SET C(A) = +0 INSIDE
046683,000573: 15,3053 00002 TC Q
046684,000574:
Page 1047 |
046686,000576: # EXTRA ATMOSPHERIC DIGITAL AUTOPILOT
046687,000577:
046688,000578: # 1. IF ABS(CALF) -C(45) POS, USE IF CALFA POS, CMDAPMOD= +0
046689,000579: # BETA: YAW ERROR = SGN(CALF) (BETACOM -BETA) IF CALFA NEG, CMDAPMOD= -0
046690,000580: # RATE = BETADOT IF CMDAPMOD = -0, RATE = RREL
046691,000581: # R-AXIS = CONTROL
046692,000582:
046693,000583: # ROLL: ROLL ERROR = SGN(CALF) (ROLLC - ROLL) IF CMDAPMOD = -0, RATE DAMP ONLY.
046694,000584: # RATE = PREL
046695,000585: # P-AXIS = CONTROL
046696,000586:
046697,000587: # 2. IF C(45) GEQ CALFA GEQ -C(45), USE CMDAPMOD = +1
046698,000588: # BETA: ROLL ERROR = SGN(-SALF) (BETACOM -BETA)
046699,000589: # RATE = BETADOT
046700,000590: # P-AXIS = CONTROL
046701,000591:
046702,000592: # ROLL: YAW ERROR = SGN(SALF) (ROLLC - ROLL) RATE DAMP ONLY.
046703,000593: # RATE = RREL
046704,000594: # R-AXIS = CONTROL
046705,000595:
046706,000596: # 3. FOR ALL CASES, USE
046707,000597: # ALFA: PITCH ERROR = (ALFACOM - ALFA)
046708,000598: # RATE = QREL
046709,000599: # Q-AXIS = CONTROL
046710,000600:
046711,000601: 15,3054 55700 EXDAP TS CMDAPMOD # +0 FOR NOW
046712,000602: 15,3055 41666 CS BETA/180
046713,000603: 15,3056 61604 AD BETACOM
046714,000604: 15,3057 55721 TS JETEM +1 # PRESERVE THIS FOR A WHILE.
046715,000605:
046716,000606: 15,3060 11506 CCS CALFA
046717,000607: 15,3061 63216 AD C45LIM # =1.0-COS(45)
046718,000608: 15,3062 13064 TCF +2
046719,000609: 15,3063 63216 AD C45LIM
046720,000610: 15,3064 54000 TS A
046721,000611: 15,3065 13146 TCF EXDAP2 # HERE IF ABS(CALFA) L COS(45)
046722,000612:
046723,000613: 15,3066 11506 CCS CALFA # |CALFA| > 0.707
046724,000614: 15,3067 13070 TCF +1 # CONTINUE IF POS
046725,000615:
046726,000616: 15,3070 11727 CCS P63FLAG # VALID VALUES ARE: -1, +1, +0.
046727,000617: 15,3071 03104 TC EXDAP4
046728,000618: 15,3072 03074 TC +2
046729,000619: 15,3073 03104 TC EXDAP4
046730,000620: 15,3074 05301 TC PHASCHNG # SINGLE PASS THROUGH HERE.
046731,000621: 15,3075 40334 OCT 40334
046732,000622: 15,3076 44712 CS ONE
046733,000623: 15,3077 55727 TS P63FLAG # SET FLAG TO ASSURE SINGLE PASS.
046734,000624:
Page 1048 |
046736,000626: 15,3100 33211 CA NSEC
046737,000627: 15,3101 05140 TC WAITLIST
046738,000628: 15,3102 E6,1661 EBANK= AOG
046739,000629: 15,3102 02374 54066 2CADR WAKEP62 # CALL TO TERMINATE P62 IN N SEC.
046740,000630:
046741,000631: # 65 DEG/ 3DEG/SEC = 21 SEC NOMINAL
046742,000632: # TRANSIT TIME FROM ALFA=45 TO ALFA TRIM.
046743,000633:
046744,000634: 15,3104 11711 EXDAP4 CCS JETAG # ROLLJET INTERFACE TEST BETWEEN .1 SEC
046745,000635: 15,3105 13113 TCF EXDAP3 # DAP AND THE 2 SEC CM/RCS DAP
046746,000636: 15,3106 13113 TCF EXDAP3
046747,000637: 15,3107 34714 CA ZERO
046748,000638: 15,3110 00006 EXTEND # TURN OFF ROLL JETS IF ON AND WAIT
046749,000639: 15,3111 01006 WRITE ROLLJETS # UNTIL START OF 2 SEC CM/RCS CYCLE
046750,000640: 15,3112 55711 TS JETAG # RESTORE PROPER VALUE +0
046751,000641:
046752,000642: # ROLL FDAI WILL BE IN ERROR UNTIL NEXT CM/RCS CALL.
046753,000643: 15,3113 11506 EXDAP3 CCS CALFA # HERE IF ABS(CALFA) GEQ COS(45)
046754,000644: 15,3114 31721 CA JETEM +1
046755,000645: 15,3115 13121 TCF EXDAP1
046756,000646: 15,3116 44714 CS ZERO
046757,000647: 15,3117 55700 TS CMDAPMOD # FOR CM/RCS
046758,000648: 15,3120 41721 CS JETEM +1
046759,000649: 15,3121 55573 EXDAP1 TS RAXERR # FOR YAW FDAI
046760,000650: 15,3122 55500 TS AK2 # WANT RAXERR FOR TM.
046761,000651: 15,3123 54001 TS L
046762,000652: 15,3124 11700 CCS CMDAPMOD # COORDINATE BETA CONTROL.
046763,000653: 15,3125 03130 TC +3 # C(CMDAPMOD) CAN BE +1, +0, OR -0.
046764,000654: 15,3126 34712 CA ONE # USE BETADOT TO COORD IN MODE +0
046765,000655: 15,3127 50000 INDEX A # OTHERWISE USE RREL.
046766,000656: 15,3130 31703 CA RREL
046767,000657: 15,3131 03023 TC BIASEDZ # GO TEST DZ. +0 IF IN DZ, +-1 OTHERWISE
046768,000658: # IF GEQ 4D/S, SET ERROR BIT IN L=0)
046769,000659: 15,3132 00006 EXTEND
046770,000660: 15,3133 04001 ROR LCHAN # L HAS BETA BIT
046771,000661: 15,3134 50000 INDEX A
046772,000662: 15,3135 33222 CAF YJETCODE
046773,000663: 15,3136 55720 TS JETEM
046774,000664:
046775,000665: 15,3137 31572 CA QAXERR # ALFA ERROR.
046776,000666: 15,3140 54001 TS L
046777,000667: 15,3141 31702 CA QREL # FOR ALFADOT USE QREL
046778,000668: 15,3142 03023 TC BIASEDZ
046779,000669: 15,3143 00006 EXTEND
046780,000670: 15,3144 04001 ROR LCHAN
046781,000671: 15,3145 13005 TCF EXDAPIN # CONTINUE ON IN DAP
046782,000672:
046783,000673: 15,3146 25700 EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1
046784,000674:
046785,000675: 15,3147 44712 CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO
046786,000676:
Page 1049 |
046788,000678: 15,3150 55711 TS JETAG # TO 2 SEC FOR ROLL JETS. (IF CMDAPMOD
046789,000679: # =0 AND JETAG =-1, QUENCHES JETS IF ON)
046790,000680:
046791,000681: 15,3151 11727 CCS P63FLAG # IF FLAG WAS +1, SET =0.
046792,000682: 15,3152 55727 TS P63FLAG
046793,000683: 15,3153 13154 NOOP
046794,000684:
046795,000685: 15,3154 11507 CCS SALFA # BETA CONTROL WITH P JETS
046796,000686: 15,3155 41721 CS JETEM +1
046797,000687: 15,3156 13160 TCF +2
046798,000688: 15,3157 31721 CA JETEM +1
046799,000689: 15,3160 55713 TS PAXERR1 # TEMP SAVE. ERROR/180
046800,000690: 15,3161 00006 EXTEND
046801,000691: 15,3162 74675 MP HALF # CM/FDAI EXPECTS ERROR/360.
046802,000692: 15,3163 57713 XCH PAXERR1 # ERROR/360 FOR FDAI, GET ERROR/180.
046803,000693: 15,3164 54001 TS L
046804,000694: 15,3165 11507 CCS SALFA
046805,000695: 15,3166 41704 CS BETADOT # USE BETADOT TO COORD IN MODE +1
046806,000696: 15,3167 03171 TC +2
046807,000697: 15,3170 31704 CA BETADOT
046808,000698: 15,3171 03023 TC BIASEDZ
046809,000699: 15,3172 00006 EXTEND
046810,000700: 15,3173 04001 ROR LCHAN
046811,000701: 15,3174 50000 INDEX A
046812,000702: 15,3175 33225 CAF P/RJCODE # GET ROLL CODE
046813,000703: 15,3176 00006 EXTEND # ROLL CONTROL WITH YAW JETS.
046814,000704: 15,3177 01006 WRITE ROLLJETS # WE,LL SKIP REGULAR ROLL SYST
046815,000705:
046816,000706: 15,3200 31717 CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME.
046817,000707: 15,3201 00006 EXTEND
046818,000708: 15,3202 21664 MSU ROLL/180 # 1,S COMPL, BUT SO WHATS A BIT.?
046819,000709: 15,3203 54001 TS L # FORCE A LIMIT CYCLE IN YAW RATE.
046820,000710: 15,3204 11507 CCS SALFA
046821,000711: 15,3205 30001 CA L # TO REMOVE ITS BIASING EFFECT ON M DOT.
046822,000712: 15,3206 03121 TC EXDAP1
046823,000713: 15,3207 40001 CS L
046824,000714: 15,3210 03121 TC EXDAP1
046825,000715:
046826,000716: 15,3211 04064 NSEC DEC 2100 B-14 # 65 DEG/ 3 DEG/SEC
046827,000717: # IF NSEC IS CHANGED, REMEMBER TO CHANGE 4.33SPOT.
046828,000718: 15,3212 37734 4D/SLIM DEC 16348 B-14 # 1.0 -4/180 D/S = 4/1800 EXP 14
046829,000719: 15,3213 37756 YDOTLIM DEC 16366 B-14 # =1.0 - YDOT DZ= 16384 -18
046830,000720: # YDOT DZ = YDOT TCDU/180 = 2/1800 EXP 14
046831,000721:
046832,000722: 15,3214 00067 CM/BIAS DEC 55 B-14 # =.6/180 B14 = 55
046833,000723: 15,3215 37267 YAWLIM DEC 16055 B-14 # YAWLIM=1.0-3.6/180=16384-329=16055
046834,000724: 15,3216 11277 C45LIM DEC .29289 # =1.0-COS(45)
046835,000725:
046836,000726: 15,3217 65033 SINTRIM DEC -.34202 # SIN(-20) (FOR NOMINAL L/D = .3)
046837,000727: 15,3220 36044 COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3)
046838,000728:
Page 1050 |
046840,000730: # TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA
046841,000731: # USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY
046842,000732: # FROM TRIM, SO USE ON-BOARD ESTIMATES.
046843,000733:
046844,000734: # JET CODE TABLES FOLLOW_
046845,000735:
046846,000736: 15,3221 00120 OCTAL 00120 # POS Y
046847,000737: 15,3222 00000 YJETCODE OCTAL 00000 # RCS JET BITS
046848,000738: 15,3223 00240 OCTAL 00240 # NEG Y
046849,000739: 15,3224 00005 OCTAL 00005 # POS R JET BITS ALSO POS P JET BITS
046850,000740: 15,3225 00000 P/RJCODE OCTAL 00000
046851,000741: 15,3226 00012 OCTAL 00012 # NEG R ALSO NEG P
046852,000742:
Page 1051 |
046854,000744: # RCS THIS SECTION IS ENTERED EACH 2 SEC BY WAITLIST CALL FOLLOWING A DELAY OF 1.2 SEC AFTER PIPUP.
046855,000745: # THE TASK SETJTAG SETS A FLAG IN JETAG TO SIGNIFY THAT ROLL UPDATE IS DUE. IN ROUGHLY 5 CS BPDYRATE WILL BE
046856,000746: # EXECUTED AND JETAG WILL CAUSE CM/RCS TO ACT ON ROLLC IMMEDIATELY THEREAFTER. THE
046857,000747: # TASK SAVES THE CALL TIME SO THAT CM/RCS CAN DETERMINE HOW MUCH OF THE 2 SEC INTERVAL REMAINS BEFORE THE
046858,000748: # NEXT UPDATE.
046859,000749:
046860,000750: 15,3227 40025 SETJTAG CS TIME1 # SAVE NOMINAL UPDATE TIME FOR SYNCH
046861,000751: 15,3230 55712 TS TUSED
046862,000752: # THE 5 CS APPEARS IN TIMETST.
046863,000753: 15,3231 34712 CA ONE # RATHER THAN INCR, FOR SAFETY
046864,000754: 15,3232 55711 TS JETAG # SET JETAG=1 TO CAUSE CM/RCS TO BE
046865,000755: 15,3233 05301 TC PHASCHNG
046866,000756: 15,3234 00001 OCT 00001
046867,000757:
046868,000758: 15,3235 05213 TC TASKOVER # EXECUTED AFTER NEXT BODYRATE UPDATE
046869,000759:
046870,000760: # PREDICTIVE ROLL SYSTEM ENTRY STEERING PROVIDES ROLL COMMAND IN LOC ROLLC. THE FOLLOWING CALCULATES THE
046871,000761: # TRAJECTORY TO THE ORIGIN IN PHASE PLANE (X,V). PROGRAM ENTERS JET ON AND OFF CALLS INTO WTLST TO PRODUCE
046872,000762: # THE DESIRED TRAJECTORY. ONLY THOSE CALLS WHICH CAN BE EXECUTED WITHIN THE INTERVAL T (2SEC) ARE ENTERED IN
046873,000763: # WTLST, THE REMAINDER ARE RECONSIDERED AT NEXT UPDATE.
046874,000764:
046875,000765: 15,3236 4674 HALFPR EQUALS NEG1/2 +1
046876,000766:
046877,000767: # CLEAR JETAG BEFORE TIMETST. SET TO +0 TO SHOW
046878,000768: # ROLL DAP CALLED. IN EVENT OF RESTART, BODYRATE
046879,000769: # MAY MISS A CYCLE. CM/RCS WILL MISS A CYCLE ONLY
046880,000770: # IF A RESTART OCCURS AFTER TIMETST COMMENCES.
046881,000771:
046882,000772: 15,3236 44712 CM/RCS CS ONE
046883,000773: 15,3237 55617 TS JNDX # SET NDX FOR POS ROLL, AND CHANGE LATER
046884,000774:
046885,000775: 15,3240 44726 CS 2T/TCDU # ROLLDOT = DELAOG + DELAIG SINM =DELR
046886,000776: 15,3241 00006 EXTEND
046887,000777: 15,3242 71701 MP PREL # DELR/180 = RDOT TCDU/180 = RDOT/1800
046888,000778: 15,3243 60001 AD L # -2 RDOT T/180 IN L
046889,000779: 15,3244 55613 TS -VT/180 # SAVE -2VT/180 HERE
046890,000780:
046891,000781: 15,3245 41664 CS ROLL/180
046892,000782: 15,3246 54021 TS SR # SAVE (-R/180) /2
046893,000783:
046894,000784: 15,3247 40102 CS CM/FLAGS
046895,000785: 15,3250 74707 MASK BIT4 # LATSW = 101D BIT4
046896,000786: 15,3251 00006 EXTEND # ROLL OVER TOP $
046897,000787: 15,3252 13260 BZF GETLCX # NO, TAKE SHORTEST PATH
046898,000788: 15,3253 26102 ADS CM/FLAGS # YES, ENFORCE ROLL OVER TOP.. (BIT =0)
046899,000789: 15,3254 31715 CA ROLLC # (ROLLC/180) /2
046900,000790: 15,3255 60021 AD SR # -(R/180) /2
046901,000791: 15,3256 57614 XCH LCX/360 # DIFFERENT X REQD HERE. DISCONT AT 180.
046902,000792: 15,3257 13320 TCF COMPAT # POSSIBLE OVFL ABOVE.
046903,000793:
Page 1052 |
046905,000795: 15,3260 34675 GETLCX CA POS1/2 # FORM RCOM/360
046906,000796: 15,3261 60000 DOUBLE
046907,000797: 15,3262 61715 AD ROLLC
046908,000798: 15,3263 57614 XCH LCX/360 # IGNORE POSSIBLE OVFL.
046909,000799:
046910,000800: 15,3264 30021 CA SR # FORM -R/360
046911,000801: 15,3265 64673 AD NEG1/2
046912,000802: 15,3266 64673 AD NEG1/2 # IGNORE OVFL
046913,000803: 15,3267 57614 XCH LCX/360 # -R/360
046914,000804: 15,3270 27614 ADS LCX/360 # LCX/360 = RCOM/360 - R/360 RANGE (-1,1)
046915,000805:
046916,000806: # DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL ?
046917,000807:
046918,000808: 15,3271 11613 CCS -VT/180 # TAKE SHORTEST ANGULAR PATH
046919,000809: 15,3272 64712 AD ONE # (BASED ON SINGLE JET ACCELERATION)
046920,000810: 15,3273 13275 TCF +2
046921,000811: 15,3274 64712 AD ONE
046922,000812: 15,3275 00006 EXTEND
046923,000813: 15,3276 71613 MP -VT/180 # C(-VT/180) = -2 VT/180
046924,000814: 15,3277 00006 EXTEND
046925,000815: 15,3300 73767 MP 1/16A1 # = 180/(16 A1 TT)
046926,000816: 15,3301 00006 EXTEND
046927,000817: 15,3302 11506 DV CALFA
046928,000818: 15,3303 54001 TS L
046929,000819: 15,3304 11614 CCS LCX/360
046930,000820: 15,3305 34675 CAF POS1/2
046931,000821: 15,3306 13310 TCF +2
046932,000822: 15,3307 44675 CS POS1/2
046933,000823: 15,3310 61614 AD LCX/360 # IS LCX/360 LESS THAN 180 DEG $
046934,000824: 15,3311 60001 AD L
046935,000825: 15,3312 54001 TS L
046936,000826: 15,3313 13320 TCF COMPAT # YES, GO ON.
046937,000827: 15,3314 50000 TRTAGXPI INDEX A # NO, SHIFT X BY - SGN(X) 2 PI
046938,000828: 15,3315 44674 CS HALFPR # +A YIELDS -1/2
046939,000829: 15,3316 60000 DOUBLE
046940,000830: 15,3317 27614 ADS LCX/360
046941,000831:
046942,000832: 15,3320 31614 COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN.
046943,000833: 15,3321 00006 EXTEND
046944,000834: 15,3322 71506 MP CALFA # COS ALFA
046945,000835: 15,3323 55614 TS LCX/360 # SCALED LCX OK HERE.
046946,000836:
046947,000837: 15,3324 11700 CCS CMDAPMOD # FOUR POSSIBILITIES HERE
046948,000838: 15,3325 03714 TC DZCALL1 # EXIT, SETTING JETAG=0. (C(A)=0)
046949,000839: # ALL 3 AXES ALREADY DONE.
046950,000840: 15,3326 03327 TC +1 # G LESS THAN .05. CA POS. CONTINUE
046951,000841: 15,3327 31614 CA LCX/360 # G GEQ .05. CONTINUE IN CM/RCS
046952,000842: 15,3330 55614 TS LCX/360 # CMDAPMOD=-0. DAMPING ONLY. SET LCX=0
046953,000843: 15,3331 55713 TS PAXERR1 # SAVE LCX FOR FDAI AND EDIT. (/360)
Page 1053 |
046955,000845: 15,3332 31613 CA -VT/180 # GET - 2 VT/180
046956,000846: 15,3333 54021 TS SR
046957,000847: 15,3334 30021 CA SR # GET -VT/180, LEAVE -VT/360 IN SR FOR DZ
046958,000848: 15,3335 55570 TS -VT/180E # DIAGNOSTIC ****
046959,000849: 15,3336 57613 XCH -VT/180 # NOW CONTENTS OF -VT/180 AS LABELED
046960,000850: 15,3337 00006 EXTEND
046961,000851: 15,3340 71613 MP -VT/180 # B(A) = -2VT/180
046962,000852: 15,3341 00006 EXTEND
046963,000853: 15,3342 73767 MP 180/8ATT
046964,000854: 15,3343 55616 TS VSQ/4API
046965,000855:
046966,000856: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 -.5 BUFLIM/360 POS?
046967,000857:
046968,000858: 15,3344 60000 WHICHALF DOUBLE # FOR SECOND BURN, A1
046969,000859: 15,3345 40000 COM
046970,000860: 15,3346 63773 AD BUFLIM # =BUFLIM/(2 360)
046971,000861: 15,3347 54001 TS L
046972,000862: 15,3350 11613 CCS -VT/180
046973,000863: 15,3351 40001 CS L
046974,000864: 15,3352 13354 TCF +2
046975,000865: 15,3353 30001 CA L
046976,000866: 15,3354 61614 AD LCX/360
046977,000867: 15,3355 63773 AD BUFLIM
046978,000868: 15,3356 00006 EXTEND
046979,000869: 15,3357 63374 BZMF REFLECT # POINT (X,V) IN LHP.
046980,000870:
046981,000871: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 + .5 BUFLIM/360 NEG?
046982,000872:
046983,000873: 15,3360 40000 COM
046984,000874: 15,3361 63773 AD BUFLIM
046985,000875: 15,3362 63773 AD BUFLIM
046986,000876: 15,3363 00006 EXTEND
046987,000877: 15,3364 63403 BZMF DZ1 # POINT (X,V) IN RHP.
046988,000878:
046989,000879: # IS POINT WITHIN VELOCITY DZ?
046990,000880:
046991,000881: 15,3365 43766 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG?
046992,000882: 15,3366 61616 AD VSQ/4API
046993,000883: 15,3367 00006 EXTEND
046994,000884: 15,3370 63676 BZMF DZCALL # YES.
046995,000885:
046996,000886: # POINT IS IN BUFFER ZONE. THRUST TO X AXIS.
046997,000887:
046998,000888: 15,3371 41617 CS JNDX
046999,000889: 15,3372 55620 TS JNDX1
047000,000890: 15,3373 03456 TC OVRLINE1
047001,000891:
047002,000892: 15,3374 41613 REFLECT CS -VT/180 # REFLECT LHP INTO RHP REL TO TERM CONTR
047003,000893: 15,3375 55613 TS -VT/180
047004,000894: 15,3376 54021 TS SR # -VT/360 SAVED FOR DZ.
Page 1054 |
047006,000896: 15,3377 41614 CS LCX/360
047007,000897: 15,3400 55614 TS LCX/360
047008,000898: 15,3401 41617 CS JNDX
047009,000899: 15,3402 55617 TS JNDX
047010,000900:
047011,000901: # IS VSQ/4API - (VSQ/4API) MIN NEG $
047012,000902:
047013,000903: 15,3403 43766 DZ1 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG $
047014,000904: 15,3404 61616 AD VSQ/4API
047015,000905: 15,3405 00006 EXTEND
047016,000906: 15,3406 63410 BZMF DZ2 # YES, GO TEST FURTHER.
047017,000907: 15,3407 13415 TCF MAXVTEST # NO
047018,000908:
047019,000909: # IS X/360 - XMIN/360 -VT/360 NEG $
047020,000910:
047021,000911: 15,3410 43771 DZ2 CS XMIN/360 # XMIN/360 = 4/360
047022,000912: 15,3411 61614 AD LCX/360
047023,000913: 15,3412 60021 AD SR # C(SR) = -VT/360
047024,000914: 15,3413 00006 EXTEND # IS X/360 - XMIN/360 -VT/360 NEG $
047025,000915: 15,3414 63676 BZMF DZCALL # YES, IN DZ. EXIT SETTING JETAG=0.
047026,000916:
047027,000917: # IS XD/360 - VM/360K - XS/360 POS?
047028,000918:
047029,000919: 15,3415 41617 MAXVTEST CS JNDX
047030,000920: 15,3416 55620 TS JNDX1 # NOW CAN SET JNDX1 FOR TON2 JETS.
047031,000921: 15,3417 43773 CS XS/360 # XS/360 = (XMIN -YMIN/K) /360
047032,000922: 15,3420 61616 AD VSQ/4API
047033,000923: 15,3421 61614 AD LCX/360
047034,000924: 15,3422 55615 TS XD/360 # XD/360= X/360 +VSQ/4API X INTERCEPT
047035,000925: # BUT C(XD/360) = (XD - XS) /360
047036,000926: 15,3423 63772 AD -VM/360K # X INTERCEPT FOR MAX V (VM)
047037,000927: 15,3424 40000 COM
047038,000928: 15,3425 00006 EXTEND
047039,000929: 15,3426 63434 BZMF MAXVTIM1 # YES, THRUST TO VM
047040,000930: 15,3427 31615 CA XD/360
047041,000931: 15,3430 00006 EXTEND
047042,000932: 15,3431 74675 MP KTRCS
047043,000933: 15,3432 20001 DDOUBL # GO SAVE PREDICTED DRIFTING VELOCITY.
047044,000934:
047045,000935: 15,3433 03437 TC GETON1 # INSURE THAT Q IS POS AS TAG.
047046,000936: 15,3434 00006 MAXVTIM1 EXTEND
047047,000937: 15,3435 22007 ZQ # SET +0 AS TAG
047048,000938: 15,3436 43772 CS -VMT/180
047049,000939: 15,3437 55567 GETON1 TS VDT/180 # VDT/180 OR VMT/180.
047050,000940: 15,3440 61613 AD -VT/180
047051,000941: 15,3441 60000 DOUBLE
047052,000942: 15,3442 00006 EXTEND
047053,000943: 15,3443 73767 MP 180/8ATT
047054,000944: 15,3444 55621 TS TON1 # TON1 / 4T
Page 1055 |
047056,000946: 15,3445 00006 EXTEND
047057,000947: 15,3446 63450 BZMF OVRLINE
047058,000948: 15,3447 03462 TC GETON2 # RESET Q POS IF CAME FROM MAXVTIM1
047059,000949:
047060,000950: 15,3450 10002 OVRLINE CCS Q
047061,000951: 15,3451 13456 TCF OVRLINE1
047062,000952: 15,3452 31620 MAXVTIM2 CA JNDX1 # ABOVE VM, SO THRUST DOWN
047063,000953: 15,3453 55617 TS JNDX
047064,000954: 15,3454 41621 CS TON1
047065,000955: 15,3455 13461 TCF OVRLINE2 +1
047066,000956:
047067,000957: 15,3456 41613 OVRLINE1 CS -VT/180 # DRIFT AT V
047068,000958: 15,3457 55567 TS VDT/180
047069,000959: 15,3460 34714 OVRLINE2 CA ZERO
047070,000960: 15,3461 55621 TS TON1
047071,000961: 15,3462 31567 GETON2 CA VDT/180 # VDT/180, OR VMT/180 OR VT/180
047072,000962: 15,3463 60000 DOUBLE
047073,000963: 15,3464 00006 EXTEND
047074,000964: 15,3465 73767 MP 180/8ATT
047075,000965: 15,3466 60000 DOUBLE # FOR SECOND BURN, A1
047076,000966: 15,3467 55607 TS TON2 # = TON2 / 4T
047077,000967:
047078,000968: 15,3470 40000 COM
047079,000969: 15,3471 00006 EXTEND
047080,000970: 15,3472 63476 BZMF GETOFF
047081,000971: 15,3473 55607 TS TON2
047082,000972: 15,3474 31617 CA JNDX
047083,000973: 15,3475 55620 TS JNDX1
047084,000974:
047085,000975: 15,3476 41607 GETOFF CS TON2 # TON2 / 4T
047086,000976: 15,3477 00006 EXTEND
047087,000977: 15,3500 71567 MP VDT/180 # VDT/180, OR VT/180, OR VMT/180.
047088,000978: 15,3501 55615 TS XD/360 # USE AS TEMP
047089,000979: 15,3502 41567 CS VDT/180
047090,000980: 15,3503 00006 EXTEND
047091,000981: 15,3504 13520 BZF TOFFOVFL # OMIT THE DIVIDE IF DEN = 0.
047092,000982: 15,3505 61613 AD -VT/180
047093,000983: 15,3506 00006 EXTEND
047094,000984: 15,3507 71621 MP TON1 # TON1 /4T
047095,000985: 15,3510 61615 AD XD/360 # TEMP = -VDT/180 / 2 TON2
047096,000986: 15,3511 61614 AD LCX/360
047097,000987: 15,3512 22007 ZL
047098,000988: 15,3513 56001 XCH L # TEST THE DIVIDE
047099,000989: 15,3514 00006 EXTEND
047100,000990: 15,3515 11567 DV VDT/180
047101,000991: 15,3516 00006 EXTEND
047102,000992: 15,3517 13522 BZF GETOFF2 # DIVIDE OK
047103,000993:
047104,000994: 15,3520 34740 TOFFOVFL CA 2JETT # OVFL, USE 2T FOR CONVENIENCE.
047105,000995: 15,3521 13527 TCF TIMSCAL
047106,000996:
Page 1056 |
047108,000998: 15,3522 56001 GETOFF2 XCH L # GET NUMERATOR.
047109,000999: 15,3523 00006 EXTEND
047110,001000: 15,3524 11567 DV VDT/180 # C(A) = TOFF / 2T
047111,001001: 15,3525 00006 EXTEND
047112,001002: 15,3526 74740 MP 2JETT
047113,001003: 15,3527 55605 TIMSCAL TS TOFF # IN CS
047114,001004:
047115,001005: 15,3530 33770 CAF 4JETT
047116,001006: 15,3531 00006 EXTEND
047117,001007: 15,3532 71621 MP TON1 # C(TON1) = TON1 / 4T
047118,001008: 15,3533 55621 TS TON1 # IN CS
047119,001009:
047120,001010: 15,3534 33770 CAF 4JETT
047121,001011: 15,3535 00006 EXTEND
047122,001012: 15,3536 71607 MP TON2 # C(TON2) = TON2 / 4T
047123,001013: 15,3537 55607 TS TON2 # IN CS
047124,001014:
047125,001015: 15,3540 34714 CA ZERO # CANNOT REDO AFTER TIMETST. TUSED GONE
047126,001016: 15,3541 55711 TS JETAG # SET +0 TO SHOW ROLL DAP CALLED.
047127,001017:
047128,001018: # CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE
047129,001019: # INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON NEXT
047130,001020: # AND ON ALTERNATE PASSES THROUGH CM/DUMPR.
047131,001021:
047132,001022: 15,3542 34712 CA ONE
047133,001023: 15,3543 54305 TS SW/NDX
047134,001024:
Page 1057 |
047136,001026: # TIMETEST SECTION FOR RCS
047137,001027:
047138,001028: # ENTER WITH THREE TIME INTERVALS AND THE CORRESPONDING JET CODE INDEXES IN ERASEABLE LOCS TON1, TOFF, TON2, JNDX
047139,001029: # JNDX1. SECTION PROCESSES TIME INTERVALS FOR WTLST CALLS AND ASSURES THAT WTLST CALLS ARE MADE ONLY
047140,001030: # (1) FOR POS INTERVALS GREATER THAN A SPECIFIED MINIMUM (HERE CHOSEN AS 2 CS) AND
047141,001031: # (2) FOR THE INTERVALS THAT WILL BE EXECUTED WITHIN THE TIME REMAINING IN THE SAMPLE INTERVAL T (2 SEC).
047142,001032: # TIMETST ESTABLISHES 6 LOCS CONTAINING JET CODES AND CORRESPONDING TIME INTERVALS. THUS: TON1, T1BITS,
047143,001033: # TOFF, TBITS, TON2, T2BITS. OF THESE THE FIRST 2 LOCS ARE TEMPORARY, FOR IMMEDIATE ACTION, IN GENERAL.
047144,001034: # SECTION JETCALL BELOW PROCESSES THIS LIST.
047145,001035:
047146,001036: 15,3544 30025 TIMETST CA TIME1 # CORRECT FOR POSSIBLE TIME1 OVFL.
047147,001037: 15,3545 64675 AD POS1/2
047148,001038: 15,3546 64675 AD POS1/2 # OVFL GUARANTEED.
047149,001039: 15,3547 27712 ADS TUSED # B(TUSED) =-TUSED =-OLTIME1
047150,001040:
047151,001041: 15,3550 33765 CA -T-3 # =-T +2 -5 (SEE SETJTAG)
047152,001042: # THE +2 REQUIRED FOR PROPER BRANCH.
047153,001043: 15,3551 27712 ADS TUSED # TUSED = TIME(K)-TIME(K-1)-T+2
047154,001044:
047155,001045: 15,3552 44711 CS TWO # USE 2 SINCE TIME3 UNCERTAIN TO 1
047156,001046: 15,3553 61621 AD TON1
047157,001047: 15,3554 00006 EXTEND
047158,001048: 15,3555 63567 BZMF TIMETST1
047159,001049: 15,3556 51617 INDEX JNDX
047160,001050: 15,3557 33225 CAF P/RJCODE
047161,001051: 15,3560 55622 TS T1BITS
047162,001052:
047163,001053: 15,3561 31621 CA TON1
047164,001054: 15,3562 27712 ADS TUSED
047165,001055: 15,3563 00006 EXTEND
047166,001056: 15,3564 63571 BZMF TOFFTEST
047167,001057: 15,3565 34714 CA ZERO
047168,001058: 15,3566 13622 TCF TIMETST3
047169,001059: 15,3567 44712 TIMETST1 CS ONE
047170,001060: 15,3570 55621 TS TON1
047171,001061: 15,3571 44711 TOFFTEST CS TWO
047172,001062: 15,3572 61605 AD TOFF
047173,001063: 15,3573 00006 EXTEND
047174,001064: 15,3574 63603 BZMF TIMETST2
047175,001065: 15,3575 31605 CA TOFF
047176,001066: 15,3576 27712 ADS TUSED
047177,001067: 15,3577 00006 EXTEND
047178,001068: 15,3600 63605 BZMF TON2TEST
047179,001069: 15,3601 34714 CA ZERO
047180,001070: 15,3602 13624 TCF TIMETST4
047181,001071: 15,3603 44712 TIMETST2 CS ONE
047182,001072: 15,3604 55605 TS TOFF
047183,001073: 15,3605 44711 TON2TEST CS TWO
047184,001074: 15,3606 61607 AD TON2
047185,001075: 15,3607 00006 EXTEND
047186,001076: 15,3610 63625 BZMF TIMETST5
Page 1058 |
047188,001078: 15,3611 51620 INDEX JNDX1
047189,001079: 15,3612 33225 CAF P/RJCODE
047190,001080: 15,3613 55610 TS T2BITS
047191,001081: 15,3614 31607 CA TON2
047192,001082: 15,3615 27712 ADS TUSED
047193,001083: 15,3616 00006 EXTEND
047194,001084: 15,3617 63627 BZMF JETCALL1
047195,001085: 15,3620 34714 CA ZERO
047196,001086: 15,3621 13626 TCF TIMETST5 +1
047197,001087: 15,3622 55621 TIMETST3 TS TON1
047198,001088: 15,3623 44712 CS ONE
047199,001089: 15,3624 55605 TIMETST4 TS TOFF
047200,001090: 15,3625 44712 TIMETST5 CS ONE
047201,001091: 15,3626 55607 TS TON2
047202,001092:
047203,001093: # SECTION JETCALL EXAMINES CONTENTS OF JET TIMES IN LIST, ESTABLISHES WTLST ENTRIES, AND EXECUTES CORRESPONDING
047204,001094: # JET CODES. A POSITIVE NZ NUMBER IN A TIME REGISTER INDICATES THAT A WTLST CALL IS TO BE MADE, AND ITS JET BITS
047205,001095: # EXECUTED. A +0 INDICATES THAT THE TIME INTERVAL DOES NOT APPLY, BUT THE CORRESPONDING JET BITS ARE TO BE
047206,001096: # EXECUTED. A NEG NUMBER INDICATES THAT THE TIME INTERVAL HAS BEEN PROCESSED. IN EVENT OF +0 OR -1, THE
047207,001097: # SUBSEQUENT TIME REGISTER IS EXAMINED FOR POSSIBLE ACTION. THUS JET BITS TO BE EXECUTED MAY COME FROM MORE
047208,001098: # THAN ONE REGISTER.
047209,001099:
047210,001100: 15,3627 34714 JETCALL1 CA ZERO
047211,001101: 15,3630 55611 TS OUTTAG
047212,001102: 15,3631 55612 TS NUJET
047213,001103: 15,3632 55606 TS TBITS
047214,001104: 15,3633 53622 DXCH TON1
047215,001105: 15,3634 10000 CCS A
047216,001106: 15,3635 13652 TCF JETCALL2 # CALL WTLST
047217,001107: 15,3636 23612 JETCALL3 LXCH NUJET # WTLST ENTRIES COME HERE FROM JETCALL
047218,001108: 15,3637 44712 CS ONE
047219,001109: 15,3640 53606 DXCH TOFF
047220,001110: 15,3641 10000 CCS A
047221,001111: 15,3642 13652 TCF JETCALL2 # CALL WTLST
047222,001112: 15,3643 23612 LXCH NUJET
047223,001113: 15,3644 44712 CS ONE
047224,001114: 15,3645 53610 DXCH TON2
047225,001115: 15,3646 10000 CCS A
047226,001116: 15,3647 13652 TCF JETCALL2 # CALL WTLST
047227,001117: 15,3650 23612 LXCH NUJET
047228,001118: 15,3651 03661 TC JETACTN # C(A) = +0
047229,001119: 15,3652 56001 JETCALL2 XCH L # SAVE JET BITS FOR AFTER WTLST CALL
047230,001120: 15,3653 27612 ADS NUJET
047231,001121: 15,3654 56001 XCH L
047232,001122: 15,3655 64712 AD ONE # RESTORE FOR CCS
047233,001123: 15,3656 05140 TC WAITLIST
047234,001124: 15,3657 E6,1661 EBANK= AOG
047235,001125: 15,3657 03667 32066 2CADR JETCALL
047236,001126:
047237,001127: 15,3661 31612 JETACTN CA NUJET # COME HERE WHEN DESIRED JET CODE IS KNOWN
Page 1059 |
047239,001129: 15,3662 00006 EXTEND # NO NEED TO SAVE OLD CODES
047240,001130: 15,3663 01006 WRITE ROLLJETS # SET RCHAN TO NEW BIT CONFIG.
047241,001131:
047242,001132: 15,3664 11611 CCS OUTTAG
047243,001133: 15,3665 05213 TC TASKOVER
047244,001134: 15,3666 03724 ROLLDUMP TC CM/FDAIR
047245,001135:
047246,001136: # EDIT DUMP AT ABOVE LOCATION.
047247,001137:
047248,001138: # WAITLIST ENTRIES COME HERE.
047249,001139:
047250,001140: 15,3667 34711 JETCALL CAF BIT2 # CM/DSTBY =103D BIT2
047251,001141: 15,3670 55611 TS OUTTAG # SIGNIFY WTLST ENTRY
047252,001142: 15,3671 70102 MASK CM/FLAGS # IS SYSTEM DISABLED $
047253,001143: 15,3672 00006 EXTEND
047254,001144: 15,3673 13662 BZF JETACTN +1 # YES, QUENCH ROLL JETS, IF ON AND EXIT.
047255,001145: 15,3674 22007 ZL # NO, CONTINUE.
047256,001146: 15,3675 13636 TCF JETCALL3 # C(A) POS, C(L) = +0
047257,001147:
047258,001148: # DEAD ZONE ENTRIES COME HERE.
047259,001149:
047260,001150: 15,3676 41700 DZCALL CS CMDAPMOD # POSSIBLE VALUES OF CMDAPMOD: -1, +0, -0.
047261,001151: 15,3677 74712 MASK BIT1
047262,001152: 15,3700 54001 TS L # C(L)=0 FOR -0
047263,001153:
047264,001154: 15,3701 50000 INDEX A # ERASBLE ORDER: ROLLTM,ROLLC,ROLLC +1.
047265,001155: 15,3702 31714 CA ROLLTM # GET ROLL/180 OR ROLLC (/360).
047266,001156: 15,3703 50001 INDEX L
047267,001157: 15,3704 54000 TS A # IF C(L)=1, STORE 'ROLLC' IN 'L'.
047268,001158: 15,3705 60001 AD L # (BOTH MUST BE SCALED DEG/180)
047269,001159: 15,3706 02542 TC ANGOVCOR # C(A)=ROLL/180 OR 2 ROLLC .
047270,001160: 15,3707 55717 TS ROLLHOLD # IF CMDAPMOD =-0, SAVE ROLL ANGLE,
047271,001161: # OTHERWISE, SAVE ROLL COMMAND.
047272,001162:
047273,001163: 15,3710 34714 CA ZERO # COME HERE IF IN DZ, AND CANCEL JETS.
047274,001164: 15,3711 00006 EXTEND # INHINT NOT NEEDED HERE.
047275,001165: 15,3712 01006 WRITE ROLLJETS # TURN OFF ALL ROLL JETS.
047276,001166: 15,3713 55567 TS VDT/180 # SET =0 TO SHOW IN DEAD ZONE.
047277,001167: 15,3714 55711 DZCALL1 TS JETAG # COME HERE WITH C(A)=0.
047278,001168: 15,3715 03666 TC ROLLDUMP
047279,001169:
Page 1060 |
047281,001171: # CM ENTRY FDAI DISPLAY
047282,001172:
047283,001173: # CALCULATE BY INTEGRATION THE ROLL ERROR BETWEEN THE 2 SEC CM/RCS UPDATES. DISPLAY ATTITUDE ERRORS AS FOLLOWS:
047284,001174: # ATM DAP: DISPLAY ONLY ROLL ATTITUDE ERROR.
047285,001175: # EXT ATM DAP: PRESENT 3 ATTITUDE ERRORS RELATIVE TO THE APPROPRIATE BODY AXES EACH .1 SEC.
047286,001176: # ROLL ROLLC-ROLL
047287,001177: # PITCH ALFAC-ALFA
047288,001178: # YAW BETAC-BETA
047289,001179:
047290,001180: # DURING ENTRY, THE FDAI NEEDLES HAVE FULL SCALE OF 67.5 DEG IN ROLL AND 16.875 DEG IN PITCH AND YAW.
047291,001181: # THE SUBROUTINE NEEDLER EXPECTS (ANGLE/180) AND SCALES TO 16.875 DEG FULL SCALE.
047292,001182:
047293,001183: # COME HERE EACH .1 SEC. (CMDAPMOD=+1 COMES BELOW)
047294,001184: 15,3716 41705 CM/FDAI CS PHIDOT # INTEGRATE ROLL ERROR 'TWEEN 2SEC UPDATES
047295,001185: 15,3717 00006 EXTEND
047296,001186: 15,3720 71506 MP CALFA # FOR ASSUMED COORDINATION.
047297,001187: 15,3721 00006 EXTEND
047298,001188: 15,3722 74675 MP HALF
047299,001189: 15,3723 27713 ADS PAXERR1 # ROLL ERROR/360. OVFL OK.
047300,001190:
047301,001191: # EDIT DUMP AT ABOVE LOCATION.
047302,001192: 15,3724 34675 CM/FDAIR CA HALF
047303,001193: 15,3725 00006 EXTEND
047304,001194: 15,3726 71713 MP PAXERR1 # FULL SCALE FOR FDAI (ROLL) IS 67.5 D
047305,001195: 15,3727 55476 TS PAXERR # .25 (ROLL ERROR/180) FOR FDAI NEEDLE.
047306,001196:
047307,001197: # PROGRAM TO FILE BODY RATES FOR TM ON ONE PASS AND
047308,001198: # TO UPDATE THE NEEDLE DISPLAY ON THE NEXT.
047309,001199: # SYNCHRONIZATION WITH CM/RCS IS USED SO THAT THE TM
047310,001200: # IS DONE WITH THE ROLL SYSTEM AND NEEDLES START ON
047311,001201: # THE SUBSEQUENT PASS.
047312,001202:
047313,001203: 15,3730 40305 CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE
047314,001204: 15,3731 54305 TS SW/NDX
047315,001205: 15,3732 00006 EXTEND # INDEX.
047316,001206: 15,3733 63737 BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO
047317,001207: # ENDBUF.
047318,001208:
047319,001209: # INDEX IS POS FOR NEEDLES
047320,001210:
047321,001211: 15,3734 04633 TC IBNKCALL
047322,001212: 15,3735 42404 CADR NEEDLER
047323,001213:
047324,001214: 15,3736 03755 TC CM/END
047325,001215:
047326,001216: # INDEX IS NEG FOR TM FILE
047327,001217:
047328,001218: 15,3737 66214 CMTMFILE AD THREE
047329,001219: 15,3740 00006 EXTEND
047330,001220: 15,3741 63745 BZMF SAVENDX
047331,001221:
Page 1061 |
047333,001223: 15,3742 30025 CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF.
047334,001224: 15,3743 54304 TS CMTMTIME
047335,001225: 15,3744 44720 CS THIRTEEN # INITIALIZE COUNTER
047336,001226: 15,3745 54305 SAVENDX TS SW/NDX # A NEGATIVE NUMBER.
047337,001227: 15,3746 00006 EXTEND
047338,001228: 15,3747 31702 DCA PREL
047339,001229: 15,3750 50305 INDEX SW/NDX
047340,001230: 15,3751 52324 DXCH ENDBUF -1
047341,001231: 15,3752 31703 CA RREL
047342,001232: 15,3753 50305 INDEX SW/NDX
047343,001233: 15,3754 54325 TS ENDBUF +1
047344,001234:
047345,001235: 15,3755 31623 CM/END CA CM/SAVE
047346,001236: 15,3756 54021 TS SR
047347,001237: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
047348,001238:
047349,001239: 15,3757 00006 EXTEND
047350,001240: 15,3760 33764 DCA T5IDLER2
047351,001241: 15,3761 53313 DXCH T5LOC
047352,001242: 15,3762 05222 TC RESUME
047353,001243:
047354,001244: 15,3763 1312 EBANK= T5LOC
047355,001245: 15,3763 03143 12062 T5IDLER2 2CADR T5IDLOC
047356,001246:
047357,001247: # DEFINE THE FOLLOWING 17D REGISTERS IN UPBUFF TO BE
047358,001248: # USED TO TELEMETER CM VEHICLE BODY RATE INFORMATION.
047359,001249: # THE INFORMATION IS FILED EACH 0.2 SEC, GIVING 15D
047360,001250: # DATA POINTS EACH 1 SEC. TM LIST IS READ TWICE
047361,001251: # EACH 2 SECONDS.
047362,001252:
047363,001253: # THE SEQUENCE IS: SP TIME INITIAL TIME
047364,001254: # SWITCH ALSO INDEX.
047365,001255: # P ROLL RATE
047366,001256: # Q PITCH RATE
047367,001257: # R YAW RATE
047368,001258: # ETC.
047369,001259:
047370,001260: # CMTMTIME = UPBUFF
047371,001261: # SW/NDX = UPBUFF +1
047372,001262: # ENDBUF = UPBUFF +16D
047373,001263:
Page 1062 |
047375,001265: # SPACER
047376,001266:
047377,001267: # CONSTANTS USED IN THE ROLL CONTROL SYSTEM:
047378,001268: # CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC,
047379,001269: # XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE
047380,001270: # XBUF = 4DEG
047381,001271:
047382,001272: 15,3765 77464 -T-3 DEC -203 B-14 # CS
047383,001273: 15,3766 00012 VSQMIN DEC .61050061 E-3 # VSQ MIN/4 A PI = 4/(4 (9.1) 180)
047384,001274: 15,3767 4726 2T/TCDU = OCT50 # T/TCDU EXP-14 TCDU = .1SEC
047385,001275: 15,3767 23617 180/8ATT DEC .61813187 # 180/(8 (9.1) 4)=(180/ATT) EXP -3
047386,001276: 15,3770 15,3772 -VMT/180 = -VM/360K # = 20 (2) / 180
047387,001277: 15,3770 4740 2JETT = 4SECS # CS 2 (2) 100 INTEGER
047388,001278: 15,3770 01440 4JETT DEC 800 B-14 # CS 4 (2) 100 INTEGER
047389,001279: 15,3771 00266 XMIN/360 DEC 182 B-14 # XMIN/360 = 4/ 360 EXP 14 = 182 INTEGER
047390,001280: 15,3772 70706 -VM/360K DEC -.22222222 # =-20/( 360 (.25))
047391,001281: 15,3773 15,3767 1/16A1 = 180/8ATT
047392,001282: # 1/16A1 = 180/(16 A1 TT)
047393,001283: # = 180/(16 4.55 4)
047394,001284: 15,3773 00133 XS/360 DEC 91 B-14 # = (XMIN +VI (T-1/K))/360 = 2/360 EXP 14
047395,001285: 15,3774 15,3773 BUFLIM = XS/360 # 4/(2 360)
047396,001286:
047397,001287: 15,3774 4675 KTRCS = HALF # KT = (.25) 2 = .5
End of include-file CM_ENTRY_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc