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