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