Source Code
![]() |
These source-code files were from the printout at the MIT Museum, with many thanks
to Deborah Douglas, the Museum's Curator of Science and Technology, for releasing
it to us. The printout was digitally photographed by Paul Fjeld. A team of
volunteers transcribed the source code manually from these images or, where
appropriate, modified already-transcribed but similar source Colossus 249 (Apollo 9)
source code to agree with the images from the printout. 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:GAP: ASSEMBLE REVISION 055 OF AGC PROGRAM COMANCHE BY NASA 2021113-051 10:28 APR. 1,1969Note that the date is the date of the printout, not the date of the program revision. |
047264,000002: ## Copyright: Public domain.
047265,000003: ## Filename: CM_ENTRY_DIGITAL_AUTOPILOT.agc
047266,000004: ## Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
047267,000005: ## It is part of the source code for the Command Module's (CM)
047268,000006: ## Apollo Guidance Computer (AGC), for Apollo 11.
047269,000007: ## Assembler: yaYUL
047270,000008: ## Contact: Ron Burkey <info@sandroid.org>.
047271,000009: ## Website: www.ibiblio.org/apollo.
047272,000010: ## Pages: 1063-1092
047273,000011: ## Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
047274,000012: ## same name, using Comanche055 page images.
047275,000013: ## 2009-05-20 RSB Corrections: Removed an extraneous label
047276,000014: ## EXDAPIN, added a missing instruction in
047277,000015: ## COMPAT.
047278,000016: ## 2010-08-28 JL Fixed indentation.
047279,000017: ## 2016-12-21 RSB Proofed comment text using octopus/ProoferComments
047280,000018: ## and corrected the errors found.
047281,000019: ## 2017-01-07 RSB Fixed comment errors detected in cross-diff vs
047282,000020: ## Colossus 249.
047283,000021: ## 2017-01-21 RSB Fixed comment errors detected in diff vs
047284,000022: ## Artemis 72.
047285,000023: ##
047286,000024: ## This source code has been transcribed or otherwise adapted from digitized
047287,000025: ## images of a hardcopy from the MIT Museum. The digitization was performed
047288,000026: ## by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
047289,000027: ## thanks to both. The images (with suitable reduction in storage size and
047290,000028: ## consequent reduction in image quality as well) are available online at
047291,000029: ## www.ibiblio.org/apollo. If for some reason you find that the images are
047292,000030: ## illegible, contact me at info@sandroid.org about getting access to the
047293,000031: ## (much) higher-quality images which Paul actually created.
047294,000032: ##
047295,000033: ## Notations on the hardcopy document read, in part:
047296,000034: ##
047297,000035: ## Assemble revision 055 of AGC program Comanche by NASA
047298,000036: ## 2021113-051. 10:28 APR. 1, 1969
047299,000037: ##
047300,000038: ## This AGC program shall also be referred to as
047301,000039: ## Colossus 2A
047302,000040:
![]() |
Page 1063 |
047304,000042: # SUBROUTINE TO READ GYMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2S COMPLEMENT, BUT THE
047305,000043: # DIFFERENCES ARE IN 1S COMP. ENTER AND READ ANGLES EACH .1 SEC.
047306,000044:
047307,000045: # CM/DSTBY = 1 FOR DAP OPERATION
047308,000046: # CM/DSTBY = 0 TO TERMINATE DAP OPERATION.
047309,000047:
047310,000048: 15,2434 BANK 15
047311,000049:
047312,000050: 15,2000 SETLOC ETRYDAP
047313,000051: 15,2000 BANK
047314,000052:
047315,000053: 15,2434 COUNT 15/DAPEN
047316,000054:
047317,000055: 15,2434 E6,1661 EBANK= AOG
047318,000056:
047319,000057: 15,2434 34377 READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO
047320,000058: 15,2435 27725 ADS CM/GYMDT # PIPTIME. (GROUP 6)
047321,000059:
047322,000060: # IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE
047323,000061: # PHASCHNG PROTECTION IS IN CM/DAPIC.
047324,000062:
047325,000063: 15,2436 35012 CA BIT6 # CHECK FOR FINE ALIGN MODE OF CDU.
047326,000064: 15,2437 71321 MASK IMODES33 # (PROTECT AOG/PIP ETC AS WELL AS
047327,000065: 15,2440 00006 EXTEND # GIMBAL DIFFERENCES)
047328,000066: 15,2441 12447 BZF READGYM1 # OK
047329,000067:
047330,000068: 15,2442 45017 CS BIT1 # NOT IN FINE ALIGN, SO IDLE.
047331,000069: 15,2443 70102 MASK CM/FLAGS # SET GYMDIFSW = 0
047332,000070: 15,2444 54102 TS CM/FLAGS
047333,000071: 15,2445 06000 TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE.
047334,000072: 15,2446 02514 TC CM/GYMIC +2
047335,000073:
047336,000074: 15,2447 30032 READGYM1 CA CDUX
047337,000075: 15,2450 57661 XCH AOG
047338,000076: 15,2451 00006 EXTEND
047339,000077: 15,2452 21661 MSU AOG # -DELAOG=AOG(N-1) - AOG(N)
047340,000078: 15,2453 55675 TS -DELAOG
047341,000079:
047342,000080: 15,2454 30033 CA CDUY
047343,000081: 15,2455 57662 XCH AIG
047344,000082: 15,2456 00006 EXTEND
047345,000083: 15,2457 21662 MSU AIG
047346,000084: 15,2460 55676 TS -DELAIG
047347,000085:
047348,000086: 15,2461 30034 CA CDUZ
047349,000087: 15,2462 57663 XCH AMG
047350,000088: 15,2463 00006 EXTEND
047351,000089: 15,2464 21663 MSU AMG
047352,000090: 15,2465 55677 TS -DELAMG
047353,000091:
![]() |
Page 1064 |
047355,000093: 15,2466 40102 DOBRATE? CS CM/FLAGS # CM/DSTBY=103D BIT2 GYMDIFSW=104D BIT1
047356,000094: 15,2467 76214 MASK THREE
047357,000095: 15,2470 50000 INDEX A
047358,000096: 15,2471 02472 TC +1
047359,000097: 15,2472 02501 TC DOBRATE # OK, GO ON
047360,000098: 15,2473 02512 TC CM/GYMIC # DONT CALC BODYRATE ON FIRST PASS.
047361,000099: 15,2474 12475 NOOP
047362,000100: 15,2475 06000 TC FLUSHJET # TURN OFF ALL JETS
047363,000101:
047364,000102: 15,2476 05412 TC PHASCHNG
047365,000103: 15,2477 00006 OCT 00006 # DEACTIVATE DAP GROUP 6.
047366,000104:
047367,000105: 15,2500 05324 TC TASKOVER
047368,000106:
047369,000107: 15,2501 35017 DOBRATE CA ONE # DO BODYRATE
047370,000108: 15,2502 55720 DOBRATE1 TS JETEM # SKIP BODYRATE.
047371,000109:
047372,000110: 15,2503 34377 CA TEN # KEEP CDU READ GOING.
047373,000111: 15,2504 05245 TC WAITLIST
047374,000112: 15,2505 E6,1661 EBANK= AOG
047375,000113: 15,2505 02434 32066 2CADR READGYMB
047376,000114:
047377,000115: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
047378,000116:
047379,000117: 15,2507 11720 CCS JETEM
047380,000118: 15,2510 02536 TC BODYRATE
047381,000119: 15,2511 05324 TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES)
047382,000120:
047383,000121: 15,2512 26102 CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0
047384,000122: 15,2513 35021 CAF ZERO
047385,000123: 15,2514 55711 TS JETAG
047386,000124: 15,2515 55706 TS OLDELP
047387,000125: 15,2516 55707 TS OLDELQ
047388,000126: 15,2517 55710 TS OLDELR
047389,000127: 15,2520 55723 TS GAMDOT # NO GYM DIF, PROB NO GAM DIF.
047390,000128: 15,2521 02502 TC DOBRATE1
047391,000129:
![]() |
Page 1065 |
047393,000131: # COME HERE TO CORRECT FOR OVERFLOW IN ANGULAR CALCULATIONS
047394,000132:
047395,000133: 15,2522 54001 ANGOVCOR TS L # THIS COSTS 2 MCT TO USE.
047396,000134: 15,2523 00002 TC Q # NO OVFL
047397,000135: 15,2524 50000 INDEX A
047398,000136: 15,2525 35000 CAF LIMITS
047399,000137: 15,2526 26001 ADS L
047400,000138: 15,2527 00002 TC Q
047401,000139:
047402,000140: 6000 BLOCK 3
047403,000141:
047404,000142: 6000 COUNT 03/DAPEN
047405,000143:
047406,000144: 6000 30007 FLUSHJET CA 7 # COME HERE TO TURN OFF ALL JETS.
047407,000145: 6001 00006 EXTEND
047408,000146: 6002 01006 WRITE ROLLJETS # ZERO CHANNEL 6
047409,000147: 6003 00006 EXTEND
047410,000148: 6004 01005 WRITE PYJETS # ZERO CHANNEL 5
047411,000149: 6005 00002 TC Q
047412,000150:
047413,000151: 15,2530 BANK 15
047414,000152:
047415,000153: 15,2530 COUNT 15/DAPEN
047416,000154:
047417,000155: 15,2000 SETLOC ETRYDAP
047418,000156: 15,2000 BANK
047419,000157:
047420,000158: 15,2530 40000 RATEAVG COM # SUBROUTINE TO ESTIMATE RATES IN PRESENCE
047421,000159: 15,2531 61720 AD JETEM # OF CONSTANT ACCELERATION.
047422,000160: 15,2532 00006 EXTEND
047423,000161: 15,2533 75002 MP HALF # DELV (EST) = DELV +(DELV-OLDELV)/2
047424,000162: 15,2534 61720 AD JETEM
047425,000163: 15,2535 00002 TC Q
047426,000164:
![]() |
Page 1066 |
047428,000166: # THESE ARE CALLED FOR THE VARIOUS INITIALIZATIONS NEEDED.
047429,000167:
047430,000168: 20,3612 BANK 20
047431,000169: 20,2000 SETLOC DAPS1
047432,000170: 20,2000 BANK
047433,000171:
047434,000172: 20,3612 COUNT 20/DAPEN
047435,000173: 20,3612 E6,1661 EBANK= AOG
047436,000174:
047437,000175: 20,3612 35057 CM/DAPON CA EBAOG
047438,000176: 20,3613 54003 TS EBANK
047439,000177:
047440,000178: 20,3614 05560 TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER.
047441,000179: 20,3615 00132 ADRES DAPBIT1 # BIT 15 FLAG 6 CMFLAGS.
047442,000180: 20,3616 05560 TC DOWNFLAG # RESET DAPBIT2
047443,000181: 20,3617 00133 ADRES DAPBIT2 # BIT 14 FLAG 6
047444,000182: 20,3620 00006 EXTEND
047445,000183: 20,3621 33737 DCA T5IDLER1 # DISABLE RCS CALCULATION
047446,000184: 20,3622 53313 DXCH T5LOC
047447,000185: 20,3623 00006 EXTEND
047448,000186: 20,3624 33737 DCA T5IDLER1 # DISABLE RCS JET CALLS
047449,000187: 20,3625 53311 DXCH T6LOC
047450,000188:
047451,000189: 20,3626 06000 TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS.
047452,000190:
047453,000191: 20,3627 47707 CS 13,14,15
047454,000192: 20,3630 71466 MASK DAPDATR1 # SET CONFIG BITS=0 FOR ENTRY
047455,000193: 20,3631 55466 TS DAPDATR1
047456,000194: 20,3632 03636 TC +4
047457,000195:
047458,000196: 20,3633 35036 NOTYET CA .5SEC
047459,000197: 20,3634 04662 TC BANKCALL
047460,000198: 20,3635 01732 CADR DELAYJOB # (DELAYJOB DOES INHINT)
047461,000199: 20,3636 35005 +4 CA BIT11 # GAMDIFSW = 94D BIT11, INITLY=0
047462,000200: 20,3637 70102 MASK CM/FLAGS # IF ZERO, WAIT UNTIL CM/POSE UPDATE.
047463,000201: 20,3640 00006 EXTEND
047464,000202: 20,3641 13633 BZF NOTYET
047465,000203:
047466,000204: 20,3642 45017 CS ONE # ACTIVATE CM/DAP
047467,000205: 20,3643 55501 TS RCSFLAGS # USE BIT3 TO INITIALIZE NEEDLER ON
047468,000206: # NEXT PASS.
047469,000207: 20,3644 55727 TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL
047470,000208: # HEADSUP IS SET IN P62.
047471,000209:
047472,000210: # FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62.
047473,000211:
047474,000212: 20,3645 30007 CA 7
047475,000213: 20,3646 55711 TS JETAG
047476,000214: 20,3647 55713 TS PAXERR1 # KEEP NEEDLES ZERO UNTIL DAP UPDATE
047477,000215: # IN CASE CMDAPMOD IS NOT +1.
![]() |
Page 1067 |
047479,000217: 20,3650 00004 INHINT
047480,000218: 20,3651 00006 EXTEND
047481,000219: 20,3652 31666 DCA ALFA/180 # DO ATTITUDE HOLD UNTIL KEYBOARD
047482,000220: 20,3653 53604 DXCH ALFACOM # ESTABLISHES HEADSUP.
047483,000221: 20,3654 31664 CA ROLL/180
047484,000222: 20,3655 55717 TS ROLLHOLD # FOR ATTITUDE HOLD IN MODE +1.
047485,000223: 20,3656 00006 EXTEND
047486,000224: 20,3657 75002 MP HALF
047487,000225: 20,3660 55715 TS ROLLC # NOT INTERESTED IN LO WORD.
047488,000226:
047489,000227: 20,3661 40102 CS CM/FLAGS
047490,000228: 20,3662 75004 MASK BIT12 # CMDAPARM =93D BIT12 INITLY=0
047491,000229: 20,3663 26102 ADS CM/FLAGS # SET BIT TO 1.
047492,000230:
047493,000231: 20,3664 40076 CS FLAGWRD2 # SET NODOFLAG TO PREVENT FURTHER
047494,000232: 20,3665 75017 MASK BIT1 # V 37 ENTRIES.
047495,000233: 20,3666 26076 ADS FLAGWRD2
047496,000234:
047497,000235: 20,3667 00003 RELINT
047498,000236:
047499,000237: 20,3670 04701 TC POSTJUMP
047500,000238: 20,3671 54342 CADR P62.1
047501,000239:
![]() |
Page 1068 |
047503,000241: # INITIALIZE CM/DAP. WAITLIST CALL FOR READGYMB. SET SWITCH CM/DSTBY =1
047504,000242: # SO READACCS WILL ENTER A WTLST CALL FOR SETJTAG .
047505,000243: # CMDAPARM = 0, SO ONLY BODY RATE AND ATTITUDE CALCULATIONS ARE DONE.
047506,000244: # SET AVEGEXIT TO CONTINUE AT CM/POSE
047507,000245:
047508,000246: 20,3672 35057 CM/DAPIC CA EBAOG
047509,000247: 20,3673 54003 TS EBANK
047510,000248:
047511,000249: 20,3674 00004 INHINT
047512,000250: 20,3675 41205 CM/DAP2C CS PIPTIME +1
047513,000251: # PRIO OF P62 L PRIO AVG,:PIPTM=PIPTM1
047514,000252: 20,3676 55720 TS JETEM
047515,000253:
047516,000254: 20,3677 35002 CA POS1/2
047517,000255: 20,3700 65002 AD POS1/2
047518,000256: 20,3701 60025 AD TIME1 # OVFL GUARANTEED
047519,000257: 20,3702 27720 ADS JETEM # C(A) = DELTA TIME SINCE PIPUP
047520,000258:
047521,000259: 20,3703 45022 CS FIVE
047522,000260: 20,3704 61720 AD JETEM
047523,000261: 20,3705 10000 CCS A
047524,000262: 20,3706 63735 AD -CDUT+1
047525,000263: 20,3707 13705 TCF -2
047526,000264: 20,3710 13711 NOOP
047527,000265: 20,3711 65017 AD ONE # SEND NO ZERO TO WTLST
047528,000266: 20,3712 55725 TS CM/GYMDT # FOR RESTART
047529,000267: 20,3713 05245 TC WAITLIST
047530,000268: 20,3714 E6,1661 EBANK= AOG
047531,000269: 20,3714 02434 32066 2CADR READGYMB
047532,000270:
047533,000271: 20,3716 43734 CS CM/SWIC1 # GAMDIFSW, GYMDIFSW, CM/DSTBY
047534,000272: 20,3717 70102 MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP
047535,000273: 20,3720 64377 AD CM/SWIC2 # SET CM/DSTBY, LATSW
047536,000274: # DISABLE ENTRY DISPLAY, SINCE DES. GIMB.
047537,000275: # CALC. (P62.3) GOES TO ENDEXIT.
047538,000276: 20,3721 54102 TS CM/FLAGS
047539,000277:
047540,000278: 20,3722 30007 CA 7
047541,000279: 20,3723 55666 TS BETA/180 # NECESSARY: NO OVFL CORRECTION
047542,000280: 20,3724 35017 CA ONE # INITIALIZE THE TM OF BODY RATES VIA
047543,000281: 20,3725 54305 TS SW/NDX # UPBUFF.
047544,000282:
047545,000283: 20,3726 05372 TC 2PHSCHNG # DOES INHINT/RELINT
047546,000284: 20,3727 40116 OCT 40116 # SAVE TBASE6
047547,000285: 20,3730 05024 OCT 05024
047548,000286: 20,3731 13000 OCT 13000
047549,000287:
047550,000288: 20,3732 04701 TC POSTJUMP
![]() |
Page 1069 |
047552,000290: 20,3733 54326 CADR P62.2
047553,000291:
047554,000292: 20,3734 16017 CM/SWIC1 OCT 16017
047555,000293: 20,3735 4377 CM/SWIC2 = TEN # 00012: CM/DSTBY, LATSW
047556,000294: 20,3735 77766 -CDUT+1 OCT 77766
047557,000295: 20,3736 1312 EBANK= T5LOC
047558,000296: 20,3736 03153 12062 T5IDLER1 2CADR T5IDLOC
047559,000297:
![]() |
Page 1070 |
047561,000299: # THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES
047562,000300: # XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQUIREMENT: TEMPORARY ERASE. JETEM, JETEM +1
047563,000301:
047564,000302: # SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS,
047565,000303: # 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
047566,000304: # ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS
047567,000305: # STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE.
047568,000306: # THIS IS NECESSARY UNDER THE GROUNDRULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS.
047569,000307:
047570,000308: 20,3740 E6,1661 EBANK= AOG
047571,000309: 15,2536 BANK 15
047572,000310: 15,2000 SETLOC ETRYDAP
047573,000311: 15,2000 BANK
047574,000312:
047575,000313: 15,2536 COUNT 15/DAPEN
047576,000314:
047577,000315: 15,2536 31663 BODYRATE CA AMG # THESE ARE 2S COMPL NOS, BUT USE ANYWAY.
047578,000316: 15,2537 05074 TC SPCOS
047579,000317: 15,2540 55511 TS COSM
047580,000318:
047581,000319: 15,2541 31661 CA AOG # C(AOG) = AOG/180
047582,000320: 15,2542 05075 TC SPSIN # SINO
047583,000321: 15,2543 55512 TS SINO # SINO = SIN(AOG)
047584,000322:
047585,000323: 15,2544 00006 EXTEND
047586,000324: 15,2545 71511 MP COSM
047587,000325: 15,2546 55514 TS SINOCOSM # SO CM
047588,000326:
047589,000327: 15,2547 31661 CA AOG
047590,000328: 15,2550 05074 TC SPCOS # COSO
047591,000329: 15,2551 55513 TS COSO
047592,000330:
047593,000331: 15,2552 00006 EXTEND
047594,000332: 15,2553 71511 MP COSM
047595,000333: 15,2554 55515 TS COSOCOSM # CO CM
047596,000334:
047597,000335: # PITCHDOT: Q TCDU/180 = IDOT TCDU/180 COSO COSM + MDOT TCDU/180 SINO
047598,000336:
047599,000337: 15,2555 41677 CS -DELAMG
047600,000338: 15,2556 00006 EXTEND
047601,000339: 15,2557 71512 MP SINO
047602,000340: 15,2560 53721 DXCH JETEM # 2 LOCS _
047603,000341: 15,2561 41676 CS -DELAIG
047604,000342: 15,2562 00006 EXTEND
047605,000343: 15,2563 71515 MP COSOCOSM
047606,000344: 15,2564 21721 DAS JETEM
047607,000345: 15,2565 31720 CA JETEM
047608,000346: 15,2566 57707 XCH OLDELQ
047609,000347: 15,2567 02530 TC RATEAVG
047610,000348: 15,2570 55702 TS QREL # PITCHDOT = Q TCDU/180
047611,000349:
![]() |
Page 1071 |
047613,000351: # YAWDOT: R TCDU/180 = -IDOT TCDU/180 COSM SINO + MDOT TCDU/180 COSO
047614,000352:
047615,000353: 15,2571 41677 CS -DELAMG
047616,000354: 15,2572 00006 EXTEND
047617,000355: 15,2573 71513 MP COSO
047618,000356: 15,2574 53721 DXCH JETEM
047619,000357: 15,2575 31676 CA -DELAIG
047620,000358: 15,2576 00006 EXTEND
047621,000359: 15,2577 71514 MP SINOCOSM
047622,000360: 15,2600 21721 DAS JETEM
047623,000361: 15,2601 31720 CA JETEM
047624,000362: 15,2602 57710 XCH OLDELR
047625,000363: 15,2603 02530 TC RATEAVG
047626,000364: 15,2604 55703 TS RREL # YAWDOT = R TCDU/180
047627,000365:
047628,000366: # ROLLDOT: P TCDU/180 = ODOT TCDU/180 + IDOT TCDU/180 SINM
047629,000367:
047630,000368: 15,2605 31663 CA AMG
047631,000369: 15,2606 05075 TC SPSIN
047632,000370: 15,2607 55510 TS SINM
047633,000371:
047634,000372: 15,2610 00006 EXTEND
047635,000373: 15,2611 71676 MP -DELAIG
047636,000374: 15,2612 55720 TS JETEM
047637,000375: 15,2613 35021 CA ZERO
047638,000376: 15,2614 20001 DDOUBL # ROUND L INTO A
047639,000377: 15,2615 61675 AD -DELAOG
047640,000378: 15,2616 61720 AD JETEM
047641,000379: 15,2617 40000 CS A
047642,000380: 15,2620 55720 TS JETEM
047643,000381: 15,2621 57706 XCH OLDELP
047644,000382: 15,2622 02530 TC RATEAVG
047645,000383: 15,2623 55701 TS PREL # ROLLDOT = P TCDU/180
047646,000384:
047647,000385: # IF GAMDOT < 0.5 DEG/SEC, THEN GAMDOT =0
047648,000386:
047649,000387: 15,2624 11723 CCS GAMDOT
047650,000388: 15,2625 02627 TC +2
047651,000389: 15,2626 02651 TC NOGAMDUT
047652,000390: 15,2627 41664 CS ROLL/180
047653,000391: 15,2630 05075 TC SPSIN
047654,000392: 15,2631 00006 EXTEND
047655,000393: 15,2632 71723 MP GAMDOT
047656,000394: 15,2633 55721 TS JETEM +1 # -SR GAMDOT
047657,000395: 15,2634 00006 EXTEND
047658,000396: 15,2635 73177 MP SINTRIM # SIN(-20) (FOR NOMINAL L/D = .3)
047659,000397: 15,2636 27701 ADS PREL # PREL TCDU/180=(P-SALF SR GAMDOT)TCDU/180
047660,000398:
047661,000399: 15,2637 31664 CA ROLL/180
047662,000400: 15,2640 05074 TC SPCOS
![]() |
Page 1072 |
047664,000402: 15,2641 40000 COM
047665,000403: 15,2642 00006 EXTEND
047666,000404: 15,2643 71723 MP GAMDOT
047667,000405: 15,2644 27702 ADS QREL # QREL TCDU/180=(Q-CR GAMDOT) TCDU/180
047668,000406:
047669,000407: 15,2645 41721 CS JETEM +1 # B( ) = -SR GAMDOT
047670,000408: 15,2646 00006 EXTEND
047671,000409: 15,2647 73200 MP COSTRIM # COS(-20) (FOR NOMINAL L/D = .3)
047672,000410: 15,2650 27703 ADS RREL # RREL TCDU/180=(R+CALF SR GAMDOT)TCDU/180
047673,000411:
047674,000412: 15,2651 35004 NOGAMDUT CA BIT12 # CMDAPARM = 93D BIT 12
047675,000413: 15,2652 70102 MASK CM/FLAGS
047676,000414: 15,2653 00006 EXTEND
047677,000415: 15,2654 15324 STBYDUMP BZF TASKOVER # DAP NOT ARMED.
047678,000416:
047679,000417: 15,2655 34777 CA POSMAX # PICK UP AT ATTRATES IN 10 MS OR SO.
047680,000418: 15,2656 54030 TS TIME5
047681,000419:
047682,000420: 15,2657 00006 EXTEND
047683,000421: 15,2660 32664 DCA ATDOTCAD
047684,000422: 15,2661 53313 DXCH T5LOC
047685,000423: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
047686,000424:
047687,000425: 15,2662 05324 TC TASKOVER
047688,000426:
047689,000427: 15,2663 E6,1661 EBANK= AOG
047690,000428: 15,2663 02665 32066 ATDOTCAD 2CADR ATTRATES
047691,000429:
![]() |
Page 1073 |
047693,000431: # CALCULATE BODY ATTITUDE RATES AND INTEGRATE TO OBTAIN ATTITUDE ANGLES.
047694,000432:
047695,000433: # CB PHIDOT TCDU/180 = (CA PREL + SA RREL) TCDU/180
047696,000434: # BETADOT TCDU/180 = (-SA PREL + CA RREL) TCDU/180
047697,000435: # ALFADOT TCDU = (QREL + SB PHIDOT) TCDU/180
047698,000436:
047699,000437: 15,2665 22016 ATTRATES LXCH BANKRUPT # CONTINUE HERE VIA T5
047700,000438: 15,2666 00006 EXTEND # TASK MAY BE SKIPPED AT RESTART.
047701,000439: 15,2667 22012 QXCH QRUPT
047702,000440: 15,2670 30021 CA SR
047703,000441: 15,2671 60000 DOUBLE
047704,000442: 15,2672 55623 TS CM/SAVE
047705,000443: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
047706,000444:
047707,000445: 15,2673 31702 CA QREL
047708,000446: 15,2674 61665 AD ALFA/180
047709,000447: 15,2675 02522 TC ANGOVCOR
047710,000448: 15,2676 55665 TS ALFA/180
047711,000449: 15,2677 05074 TC SPCOS
047712,000450: 15,2700 55506 TS CALFA # CALFA
047713,000451: 15,2701 55705 TS PHIDOT
047714,000452:
047715,000453: 15,2702 00006 EXTEND
047716,000454: 15,2703 71701 MP PREL
047717,000455: 15,2704 57705 XCH PHIDOT # CA PREL
047718,000456: 15,2705 00006 EXTEND
047719,000457: 15,2706 71703 MP RREL # CA RREL
047720,000458: 15,2707 55704 TS BETADOT
047721,000459:
047722,000460: 15,2710 31665 CA ALFA/180
047723,000461: 15,2711 05075 TC SPSIN
047724,000462: 15,2712 55507 TS SALFA # SIN(ALFA)
047725,000463:
047726,000464: 15,2713 00006 EXTEND
047727,000465: 15,2714 71703 MP RREL # SA RREL
047728,000466: 15,2715 27705 ADS PHIDOT # CB PHIDOT, SAVED.
047729,000467:
047730,000468: 15,2716 41507 CS SALFA
047731,000469: 15,2717 00006 EXTEND
047732,000470: 15,2720 71701 MP PREL
047733,000471: 15,2721 27704 ADS BETADOT # SAVE BETADOT TCDU/180
047734,000472: 15,2722 27666 ADS BETA/180 # BETA DONE.
047735,000473:
047736,000474: 15,2723 05075 TC SPSIN
047737,000475: 15,2724 00006 EXTEND
047738,000476: 15,2725 71705 MP PHIDOT # NEGLECT CB IN CB PHIDOT
047739,000477: 15,2726 61665 AD ALFA/180
047740,000478: 15,2727 02522 TC ANGOVCOR
047741,000479: 15,2730 55665 TS ALFA/180 # ALFA DONE.
![]() |
Page 1074 |
047743,000481: 15,2731 40000 COM
047744,000482: 15,2732 61603 AD ALFACOM
047745,000483: 15,2733 02522 TC ANGOVCOR # JUST IN CASE ...
047746,000484: 15,2734 55477 TS AK1
047747,000485: 15,2735 55572 TS QAXERR # FOR PITCH FDAI AND EDIT.
047748,000486:
047749,000487: 15,2736 31705 CA PHIDOT # PHIDOT TCDU/180, NEGLECTING CB
047750,000488: 15,2737 61664 AD ROLL/180
047751,000489: 15,2740 02522 TC ANGOVCOR
047752,000490: 15,2741 55714 TS ROLLTM # ROLL/180 FOR TM.
047753,000491: 15,2742 55664 TS ROLL/180 # ROLL DONE.
047754,000492:
047755,000493: # START YAW AUTOPILOT HERE. RATE DAMPING WITH ENFORCED COORDINATED ROLL MANEUVER.
047756,000494:
047757,000495: 15,2743 41666 CS BETA/180 # IF IN ATM, SAVE 'RAXERR' FOR TM DNLST.
047758,000496: 15,2744 61604 AD BETACOM
047759,000497: 15,2745 55573 TS RAXERR # IF OUTSIDE ATM, USE TM REGISTER 'RAXERR'
047760,000498: # AS A TEMPORARY. (DAP OPERATION IS IN INTERRUPT, SO
047761,000499: # IS OK.) FINAL C(RAXERR) AT END OF DAP CYCLE WILL
047762,000500: # BE R-AXIS ERROR.
047763,000501:
047764,000502: 15,2746 35015 CA BIT3 # .05GSW = 102D BIT3 SW=0, LESS .05G
047765,000503: 15,2747 70102 MASK CM/FLAGS # SWITCH =1, GREATER THAN .05 G
047766,000504: 15,2750 00006 EXTEND
047767,000505: 15,2751 13037 BZF EXDAP # IF G LESS THAN .05
047768,000506: 15,2752 45017 CS ONE # IF G GEQ THAN .05
047769,000507: 15,2753 55700 TS CMDAPMOD # SAVE -1 FOR USE IN CM/RCS
047770,000508:
047771,000509: 15,2754 55477 TS AK1 # TO ZERO PITCH AND YAW FDAI NEEDLES
047772,000510: 15,2755 55500 TS AK2 # IN ATM. (MODE =-1)
047773,000511:
047774,000512: 15,2756 41701 CS PREL # YAW ERROR = RREL - PREL TAN(ALFA)
047775,000513: 15,2757 00006 EXTEND
047776,000514: 15,2760 73177 MP SINTRIM # LET SIN(-20) BE APPROX FOR TAN(-20)
047777,000515: 15,2761 61703 AD RREL
047778,000516: 15,2762 03027 TC 2D/SDZ # GO TEST DZ. GET TAG: +0 IF IN DZ
047779,000517: 15,2763 50000 INDEX A # +/- 1 IF NOT
047780,000518: 15,2764 33202 CAF YJETCODE
047781,000519:
047782,000520: 15,2765 55720 TS JETEM
047783,000521:
047784,000522: # START PITCH AUTOPILOT HERE. RATE DAMPING ONLY.
047785,000523:
047786,000524: 15,2766 31702 CA QREL
047787,000525: 15,2767 03027 TC 2D/SDZ
047788,000526: 15,2770 50000 EXDAPIN INDEX A # COME HERE FROM EX ATM DAP
047789,000527: 15,2771 33205 CAF P/RJCODE
047790,000528: 15,2772 27720 ADS JETEM # COMBINE ALL NEW BITS.
047791,000529:
047792,000530: 15,2773 00006 EXTEND # DOES NOT REQUIRE SAVING OLD CODES.
![]() |
Page 1075 |
047794,000532: 15,2774 01005 WRITE PYJETS # SET PYCHAN TO DESIRED BIT CONFIG.
047795,000533:
047796,000534: 15,2775 11711 CCS JETAG
047797,000535: 15,2776 03216 TC CM/RCS
047798,000536: 15,2777 03677 TC CM/FDAI
047799,000537: 15,3000 03704 TC CM/FDAIR -1 # (JETAG=-1 EQUIVALENT TO CMDAPMOD=+1)
047800,000538:
![]() |
Page 1076 |
047802,000540: # DEAD ZONE LOGIC USED BY ENTRY DIGITAL AUTOPILOTS.
047803,000541:
047804,000542: 15,3001 10000 3DDZ CCS A # YAWLIM=1.0-3/180=16384-273=16111
047805,000543: 15,3002 63175 AD YAWLIM
047806,000544: 15,3003 13033 TCF DZCOM
047807,000545: 15,3004 63175 AD YAWLIM
047808,000546: 15,3005 13034 TCF DZNOCOM
047809,000547:
047810,000548: # BIASED DZ FOR EXT ATM DAP.
047811,000549: 15,3006 55624 BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L.
047812,000550: 15,3007 10000 CCS A # START ERROR DZ.
047813,000551: 15,3010 43174 CS CM/BIAS # = .6/180
047814,000552: 15,3011 13013 TCF +2
047815,000553: 15,3012 33174 CA CM/BIAS
047816,000554: 15,3013 60001 AD L # BIAS THE ERROR.
047817,000555: 15,3014 22002 LXCH Q # SAVE CALLERS RETURN ADDRESS.
047818,000556: 15,3015 03001 TC 3DDZ # GO GENERATE THE ERROR BIT.
047819,000557: 15,3016 52002 DXCH L # BIT TO L, RESTORE CALLERS Q.
047820,000558: 15,3017 11624 4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT
047821,000559: 15,3020 63172 AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE
047822,000560: 15,3021 13023 TCF +2 # JET BITS ACCORDING TO SGN OF RATE.
047823,000561: 15,3022 63172 AD 4D/SLIM
047824,000562: 15,3023 54000 TS A
047825,000563: 15,3024 13026 TCF +2 # RATE OK. CONTINUE
047826,000564: 15,3025 22007 ZL # RATE GEQ 4 D/S. OVER RIDE ERROR BIT
047827,000565: 15,3026 57624 XCH JETEM2 # AND CONTINUE TO GET SIGN.
047828,000566:
047829,000567: 15,3027 10000 2D/SDZ CCS A # COME HERE TO TEST IF A WITHIN 2DEG/S DZ
047830,000568: 15,3030 63173 AD YDOTLIM # 1.0 - YDOT DZ (OR PDOT)
047831,000569: 15,3031 13034 TCF +3
047832,000570: 15,3032 63173 AD YDOTLIM # YDOT DZ = 2 DEG/SEC
047833,000571: 15,3033 40000 DZCOM COM
047834,000572: 15,3034 55721 DZNOCOM TS JETEM +1 # GENERATE TAG, SET C(A)= -+1 OUTSIDE DZ
047835,000573: 15,3035 35021 CA ZERO # SET C(A) = +0 INSIDE
047836,000574: 15,3036 00002 TC Q
047837,000575:
![]() |
Page 1077 |
047839,000577: # EXTRA ATMOSPHERIC DIGITAL AUTOPILOT
047840,000578:
047841,000579: # 1. IF ABS(CALF) -C(45) POS, USE IF CALFA POS, CMDAPMOD= +0
047842,000580: # BETA: YAW ERROR = SGN(CALF) (BETACOM -BETA) IF CALFA NEG, CMDAPMOD= -0
047843,000581: # RATE = BETADOT IF CMDAPMOD = -0, RATE = RREL
047844,000582: # R-AXIS = CONTROL
047845,000583:
047846,000584: # ROLL: ROLL ERROR = SGN(CALF) (ROLLC - ROLL) IF CMDAPMOD = -0, RATE DAMP ONLY.
047847,000585: # RATE = PREL
047848,000586: # P-AXIS = CONTROL
047849,000587:
047850,000588: # 2. IF C(45) GEQ CALFA GEQ -C(45), USE CMDAPMOD = +1
047851,000589: # BETA: ROLL ERROR = SGN(-SALF) (BETACOM -BETA)
047852,000590: # RATE = BETADOT
047853,000591: # P-AXIS = CONTROL
047854,000592:
047855,000593: # ROLL: YAW ERROR = SGN(SALF) (ROLLC - ROLL) RATE DAMP ONLY.
047856,000594: # RATE = RREL
047857,000595: # R-AXIS = CONTROL
047858,000596:
047859,000597: # 3. FOR ALL CASES, USE
047860,000598: # ALFA: PITCH ERROR = (ALFACOM - ALFA)
047861,000599: # RATE = QREL
047862,000600: # Q-AXIS = CONTROL
047863,000601:
047864,000602: 15,3037 55700 EXDAP TS CMDAPMOD # +0 FOR NOW
047865,000603: 15,3040 11506 CCS CALFA
047866,000604: 15,3041 63176 AD C45LIM # =1.0-COS(45)
047867,000605: 15,3042 13044 TCF +2
047868,000606: 15,3043 63176 AD C45LIM
047869,000607: 15,3044 54000 TS A
047870,000608: 15,3045 13126 TCF EXDAP2 # HERE IF ABS(CALFA) L COS(45)
047871,000609:
047872,000610: 15,3046 11506 CCS CALFA # |CALFA| > 0.707
047873,000611: 15,3047 13050 TCF +1 # CONTINUE IF POS; GO TO EXDAP4 IF NEG.
047874,000612:
047875,000613: 15,3050 11727 CCS P63FLAG # VALID VALUES ARE: -1, +1, +0.
047876,000614: 15,3051 03064 TC EXDAP4
047877,000615: 15,3052 03054 TC +2
047878,000616: 15,3053 03064 TC EXDAP4
047879,000617: 15,3054 05412 TC PHASCHNG # SINGLE PASS THROUGH HERE.
047880,000618: 15,3055 40334 OCT 40334
047881,000619: 15,3056 45017 CS ONE
047882,000620: 15,3057 55727 TS P63FLAG # SET FLAG TO ASSURE SINGLE PASS.
047883,000621: 15,3060 33171 CA NSEC
047884,000622: 15,3061 05245 TC WAITLIST
047885,000623: 15,3062 E6,1661 EBANK= AOG
047886,000624: 15,3062 02374 54066 2CADR WAKEP62 # CALL TO TERMINATE P62 IN N SEC.
![]() |
Page 1078 |
047888,000626: # 65 DEG/ 3DEG/SEC = 21 SEC NOMINAL
047889,000627: # TRANSIT TIME FROM ALFA=45 TO ALFA TRIM.
047890,000628:
047891,000629: 15,3064 11711 EXDAP4 CCS JETAG # ROLLJET INTERFACE TEST BETWEEN .1 SEC
047892,000630: 15,3065 13073 TCF EXDAP3 # DAP AND THE 2 SEC CM/RCS DAP
047893,000631: 15,3066 13073 TCF EXDAP3
047894,000632: 15,3067 35021 CA ZERO
047895,000633: 15,3070 00006 EXTEND # TURN OFF ROLL JETS IF ON AND WAIT
047896,000634: 15,3071 01006 WRITE ROLLJETS # UNTIL START OF 2 SEC CM/RCS CYCLE
047897,000635: 15,3072 55711 TS JETAG # RESTORE PROPER VALUE +0
047898,000636:
047899,000637: # ROLL FDAI WILL BE IN ERROR UNTIL NEXT CM/RCS CALL.
047900,000638: 15,3073 11506 EXDAP3 CCS CALFA # HERE IF ABS(CALFA) GEQ COS(45)
047901,000639: 15,3074 31573 CA RAXERR # C()= BETACOM - BETA/180
047902,000640: 15,3075 13101 TCF EXDAP1
047903,000641: 15,3076 45021 CS ZERO
047904,000642: 15,3077 55700 TS CMDAPMOD # FOR CM/RCS
047905,000643: 15,3100 41573 CS RAXERR # COMPLEMENT OF YAW ERROR.
047906,000644: 15,3101 55573 EXDAP1 TS RAXERR # FOR YAW FDAI
047907,000645: 15,3102 55500 TS AK2 # WANT RAXERR FOR TM.
047908,000646: 15,3103 54001 TS L
047909,000647: 15,3104 11700 CCS CMDAPMOD # COORDINATE BETA CONTROL.
047910,000648: 15,3105 03110 TC +3 # C(CMDAPMOD) CAN BE +1, +0, OR -0.
047911,000649: 15,3106 35017 CA ONE # USE BETADOT TO COORD IN MODE +0
047912,000650: 15,3107 50000 INDEX A # OTHERWISE USE RREL.
047913,000651: 15,3110 31703 CA RREL
047914,000652: 15,3111 03006 TC BIASEDZ # GO TEST DZ. +0 IF IN DZ, +-1 OTHERWISE
047915,000653: # IF GEQ 4D/S, SET ERROR BIT IN L=0)
047916,000654: 15,3112 00006 EXTEND
047917,000655: 15,3113 04001 ROR LCHAN # L HAS BETA BIT
047918,000656: 15,3114 50000 INDEX A
047919,000657: 15,3115 33202 CAF YJETCODE
047920,000658: 15,3116 55720 TS JETEM
047921,000659:
047922,000660: 15,3117 31572 CA QAXERR # ALFA ERROR.
047923,000661: 15,3120 54001 TS L
047924,000662: 15,3121 31702 CA QREL # FOR ALFADOT USE QREL
047925,000663: 15,3122 03006 TC BIASEDZ
047926,000664: 15,3123 00006 EXTEND
047927,000665: 15,3124 04001 ROR LCHAN
047928,000666: 15,3125 12770 TCF EXDAPIN # CONTINUE ON IN DAP
047929,000667:
047930,000668: 15,3126 25700 EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1
047931,000669:
047932,000670: 15,3127 45017 CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO
047933,000671: 15,3130 55711 TS JETAG # TO 2 SEC FOR ROLL JETS. (IF CMDAPMOD
047934,000672: # =0 AND JETAG =-1, QUENCHES JETS IF ON)
047935,000673:
047936,000674: 15,3131 11727 CCS P63FLAG # IF FLAG WAS +1, SET =0.
047937,000675: 15,3132 55727 TS P63FLAG
![]() |
Page 1079 |
047939,000677: 15,3133 13134 NOOP
047940,000678:
047941,000679: 15,3134 11507 CCS SALFA # BETA CONTROL WITH P JETS
047942,000680: 15,3135 41573 CS RAXERR # B()= BETACOM - BETA/180
047943,000681: 15,3136 13140 TCF +2
047944,000682: 15,3137 31573 CA RAXERR
047945,000683: 15,3140 55713 TS PAXERR1 # TEMP SAVE. ERROR/180
047946,000684: 15,3141 00006 EXTEND
047947,000685: 15,3142 75002 MP HALF # CM/FDAI EXPECTS ERROR/360.
047948,000686: 15,3143 57713 XCH PAXERR1 # ERROR/360 FOR FDAI, GET ERROR/180.
047949,000687: 15,3144 54001 TS L
047950,000688: 15,3145 11507 CCS SALFA
047951,000689: 15,3146 41704 CS BETADOT # USE BETADOT TO COORD IN MODE +1
047952,000690: 15,3147 03151 TC +2
047953,000691: 15,3150 31704 CA BETADOT
047954,000692: 15,3151 03006 TC BIASEDZ
047955,000693: 15,3152 00006 EXTEND
047956,000694: 15,3153 04001 ROR LCHAN
047957,000695: 15,3154 50000 INDEX A
047958,000696: 15,3155 33205 CAF P/RJCODE # GET ROLL CODE
047959,000697: 15,3156 00006 EXTEND # ROLL CONTROL WITH YAW JETS.
047960,000698: 15,3157 01006 WRITE ROLLJETS # WE,LL SKIP REGULAR ROLL SYST
047961,000699:
047962,000700: 15,3160 31717 CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME.
047963,000701: 15,3161 00006 EXTEND
047964,000702: 15,3162 21664 MSU ROLL/180 # 1,S COMPL, BUT SO WHATS A BIT.?
047965,000703: 15,3163 54001 TS L # FORCE A LIMIT CYCLE IN YAW RATE.
047966,000704: 15,3164 11507 CCS SALFA
047967,000705: 15,3165 30001 CA L # TO REMOVE ITS BIASING EFFECT ON M DOT.
047968,000706: 15,3166 03101 TC EXDAP1
047969,000707: 15,3167 40001 CS L
047970,000708: 15,3170 03101 TC EXDAP1
047971,000709:
047972,000710: 15,3171 04064 NSEC DEC 2100 B-14 # 65 DEG/ 3 DEG/SEC
047973,000711: # IF NSEC IS CHANGED, REMEMBER TO CHANGE 4.33SPOT.
047974,000712: 15,3172 37734 4D/SLIM DEC 16348 B-14 # 1.0 -4/180 D/S = 4/1800 EXP 14
047975,000713: 15,3173 37756 YDOTLIM DEC 16366 B-14 # =1.0 - YDOT DZ= 16384 -18
047976,000714: # YDOT DZ = YDOT TCDU/180 = 2/1800 EXP 14
047977,000715:
047978,000716: 15,3174 00067 CM/BIAS DEC 55 B-14 # =.6/180 B14 = 55
047979,000717: 15,3175 37267 YAWLIM DEC 16055 B-14 # YAWLIM=1.0-3.6/180=16384-329=16055
047980,000718: 15,3176 11277 C45LIM DEC .29289 # =1.0-COS(45)
047981,000719:
047982,000720: 15,3177 65033 SINTRIM DEC -.34202 # SIN(-20) (FOR NOMINAL L/D = .3)
047983,000721: 15,3200 36044 COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3)
047984,000722:
047985,000723: # TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA
047986,000724: # USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY
047987,000725: # FROM TRIM, SO USE ON-BOARD ESTIMATES.
047988,000726:
![]() |
Page 1080 |
047990,000728: # JET CODE TABLES FOLLOW _
047991,000729:
047992,000730: 15,3201 00120 OCTAL 00120 # POS Y
047993,000731: 15,3202 00000 YJETCODE OCTAL 00000 # RCS JET BITS
047994,000732: 15,3203 00240 OCTAL 00240 # NEG Y
047995,000733: 15,3204 00005 OCTAL 00005 # POS R JET BITS ALSO POS P JET BITS
047996,000734: 15,3205 00000 P/RJCODE OCTAL 00000
047997,000735: 15,3206 00012 OCTAL 00012 # NEG R ALSO NEG P
047998,000736:
![]() |
Page 1081 |
048000,000738: # RCS THIS SECTION IS ENTERED EACH 2 SEC BY WAITLIST CALL FOLLOWING A DELAY OF 1.2 SEC AFTER PIPUP.
048001,000739: # THE TASK SETJTAG SETS A FLAG IN JETAG TO SIGNIFY THAT ROLL UPDATE IS DUE. IN ROUGHLY 5 CS BPDYRATE WILL BE
048002,000740: # EXECUTED AND JETAG WILL CAUSE CM/RCS TO ACT ON ROLLC IMMEDIATELY THEREAFTER. THE
048003,000741: # TASK SAVES THE CALL TIME SO THAT CM/RCS CAN DETERMINE HOW MUCH OF THE 2 SEC INTERVAL REMAINS BEFORE THE
048004,000742: # NEXT UPDATE.
048005,000743:
048006,000744: 15,3207 40025 SETJTAG CS TIME1 # SAVE NOMINAL UPDATE TIME FOR SYNCH
048007,000745: 15,3210 55712 TS TUSED
048008,000746: # THE 5 CS APPEARS IN TIMETST.
048009,000747: 15,3211 35017 CA ONE # RATHER THAN INCR, FOR SAFETY
048010,000748: 15,3212 55711 TS JETAG # SET JETAG=1 TO CAUSE CM/RCS TO BE
048011,000749: 15,3213 05412 TC PHASCHNG
048012,000750: 15,3214 00001 OCT 00001
048013,000751:
048014,000752: 15,3215 05324 TC TASKOVER # EXECUTED AFTER NEXT BODYRATE UPDATE
048015,000753:
048016,000754: # PREDICTIVE ROLL SYSTEM ENTRY STEERING PROVIDES ROLL COMMAND IN LOC ROLLC. THE FOLLOWING CALCULATES THE
048017,000755: # TRAJECTORY TO THE ORIGIN IN PHASE PLANE (X,V). PROGRAM ENTERS JET ON AND OFF CALLS INTO WTLST TO PRODUCE
048018,000756: # THE DESIRED TRAJECTORY. ONLY THOSE CALLS WHICH CAN BE EXECUTED WITHIN THE INTERVAL T (2 SEC) ARE ENTERED IN
048019,000757: # WTLST, THE REMAINDER ARE RECONSIDERED AT NEXT UPDATE.
048020,000758:
048021,000759: 15,3216 5001 HALFPR EQUALS NEG1/2 +1
048022,000760:
048023,000761: # CLEAR JETAG BEFORE TIMETST. SET TO +0 TO SHOW
048024,000762: # ROLL DAP CALLED. IN EVENT OF RESTART, BODYRATE
048025,000763: # MAY MISS A CYCLE. CM/RCS WILL MISS A CYCLE ONLY
048026,000764: # IF A RESTART OCCURS AFTER TIMETST COMMENCES.
048027,000765:
048028,000766: 15,3216 45017 CM/RCS CS ONE
048029,000767: 15,3217 55617 TS JNDX # SET NDX FOR POS ROLL, AND CHANGE LATER
048030,000768:
048031,000769: 15,3220 45033 CS 2T/TCDU # ROLLDOT = DELAOG + DELAIG SINM =DELR
048032,000770: 15,3221 00006 EXTEND
048033,000771: 15,3222 71701 MP PREL # DELR/180 = RDOT TCDU/180 = RDOT/1800
048034,000772: 15,3223 60001 AD L # -2 RDOT T/180 IN L
048035,000773: 15,3224 55613 TS -VT/180 # SAVE -2VT/180 HERE
048036,000774:
048037,000775: 15,3225 41664 CS ROLL/180
048038,000776: 15,3226 54021 TS SR # SAVE (-R/180) /2
048039,000777:
048040,000778: 15,3227 40102 CS CM/FLAGS
048041,000779: 15,3230 75014 MASK BIT4 # LATSW = 101D BIT4
048042,000780: 15,3231 00006 EXTEND # ROLL OVER TOP $
048043,000781: 15,3232 13240 BZF GETLCX # NO, TAKE SHORTEST PATH
048044,000782: 15,3233 26102 ADS CM/FLAGS # YES, ENFORCE ROLL OVER TOP.. (BIT =0)
048045,000783: 15,3234 31715 CA ROLLC # (ROLLC/180) /2
048046,000784: 15,3235 60021 AD SR # -(R/180) /2
048047,000785: 15,3236 57614 XCH LCX/360 # DIFFERENT X REQD HERE. DISCONT AT 180.
048048,000786: 15,3237 13300 TCF COMPAT # POSSIBLE OVFL ABOVE.
048049,000787:
![]() |
Page 1082 |
048051,000789: 15,3240 35002 GETLCX CA POS1/2 # FORM RCOM/360
048052,000790: 15,3241 60000 DOUBLE
048053,000791: 15,3242 61715 AD ROLLC
048054,000792: 15,3243 57614 XCH LCX/360 # IGNORE POSSIBLE OVFL.
048055,000793:
048056,000794: 15,3244 30021 CA SR # FORM -R/360
048057,000795: 15,3245 65000 AD NEG1/2
048058,000796: 15,3246 65000 AD NEG1/2 # IGNORE OVFL
048059,000797: 15,3247 57614 XCH LCX/360 # -R/360
048060,000798: 15,3250 27614 ADS LCX/360 # LCX/360 = RCOM/360 - R/360 RANGE (-1,1)
048061,000799:
048062,000800: # DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL ?
048063,000801:
048064,000802: 15,3251 11613 CCS -VT/180 # TAKE SHORTEST ANGULAR PATH
048065,000803: 15,3252 65017 AD ONE # (BASED ON SINGLE JET ACCELERATION)
048066,000804: 15,3253 13255 TCF +2
048067,000805: 15,3254 65017 AD ONE
048068,000806: 15,3255 00006 EXTEND
048069,000807: 15,3256 71613 MP -VT/180 # C(-VT/180) = -2 VT/180
048070,000808: 15,3257 00006 EXTEND
048071,000809: 15,3260 73750 MP 1/16A1 # = 180/(16 A1 TT)
048072,000810: 15,3261 00006 EXTEND
048073,000811: 15,3262 11506 DV CALFA
048074,000812: 15,3263 54001 TS L
048075,000813: 15,3264 11614 CCS LCX/360
048076,000814: 15,3265 35002 CAF POS1/2
048077,000815: 15,3266 13270 TCF +2
048078,000816: 15,3267 45002 CS POS1/2
048079,000817: 15,3270 61614 AD LCX/360 # IS LCX/360 LESS THAN 180 DEG $
048080,000818: 15,3271 60001 AD L
048081,000819: 15,3272 54001 TS L
048082,000820: 15,3273 13300 TCF COMPAT # YES, GO ON.
048083,000821: 15,3274 50000 TRTAGXPI INDEX A # NO, SHIFT X BY - SGN(X) 2 PI
048084,000822: 15,3275 45001 CS HALFPR # +A YIELDS -1/2
048085,000823: 15,3276 60000 DOUBLE
048086,000824: 15,3277 27614 ADS LCX/360
048087,000825:
048088,000826: 15,3300 31614 COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN.
048089,000827: 15,3301 00006 EXTEND
048090,000828: 15,3302 71506 MP CALFA # COS ALFA
048091,000829: 15,3303 55614 TS LCX/360 # SCALED LCX OK HERE.
048092,000830:
048093,000831: 15,3304 11700 CCS CMDAPMOD # FOUR POSSIBILITIES HERE
048094,000832: 15,3305 03675 TC DZCALL1 # EXIT, SETTING JETAG=0. (C(A)=0)
048095,000833: # ALL 3 AXES ALREADY DONE.
048096,000834: 15,3306 03307 TC +1 # G LESS THAN .05. CA POS. CONTINUE
048097,000835: 15,3307 31614 CA LCX/360 # G GEQ .05. CONTINUE IN CM/RCS
048098,000836: 15,3310 55614 TS LCX/360 # CMDAPMOD=-0. DAMPING ONLY. SET LCX=0
048099,000837: 15,3311 55571 TS ERRORZ # INITIAL ROLL ERROR (UNREFLECTED) FOR TM.
048100,000838: 15,3312 55713 TS PAXERR1 # SAVE LCX FOR FDAI AND EDIT. (/360)
![]() |
Page 1083 |
048102,000840: 15,3313 31613 CA -VT/180 # GET - 2 VT/180
048103,000841: 15,3314 54021 TS SR
048104,000842: 15,3315 30021 CA SR # GET -VT/180, LEAVE -VT/360 IN SR FOR DZ
048105,000843: 15,3316 55570 TS -VT/180E # DIAGNOSTIC ****
048106,000844: 15,3317 57613 XCH -VT/180 # NOW CONTENTS OF -VT/180 AS LABELED
048107,000845: 15,3320 00006 EXTEND
048108,000846: 15,3321 71613 MP -VT/180 # B(A) = -2VT/180
048109,000847: 15,3322 00006 EXTEND
048110,000848: 15,3323 73750 MP 180/8ATT
048111,000849: 15,3324 55616 TS VSQ/4API
048112,000850:
048113,000851: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 -.5 BUFLIM/360 POS?
048114,000852:
048115,000853: 15,3325 60000 WHICHALF DOUBLE # FOR SECOND BURN, A1
048116,000854: 15,3326 40000 COM
048117,000855: 15,3327 63754 AD BUFLIM # =BUFLIM/(2 360)
048118,000856: 15,3330 54001 TS L
048119,000857: 15,3331 11613 CCS -VT/180
048120,000858: 15,3332 40001 CS L
048121,000859: 15,3333 13335 TCF +2
048122,000860: 15,3334 30001 CA L
048123,000861: 15,3335 61614 AD LCX/360
048124,000862: 15,3336 63754 AD BUFLIM
048125,000863: 15,3337 00006 EXTEND
048126,000864: 15,3340 63355 BZMF REFLECT # POINT (X,V) IN LHP.
048127,000865:
048128,000866: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 + .5 BUFLIM/360 NEG?
048129,000867:
048130,000868: 15,3341 40000 COM
048131,000869: 15,3342 63754 AD BUFLIM
048132,000870: 15,3343 63754 AD BUFLIM
048133,000871: 15,3344 00006 EXTEND
048134,000872: 15,3345 63364 BZMF DZ1 # POINT (X,V) IN RHP.
048135,000873:
048136,000874: # IS POINT WITHIN VELOCITY DZ?
048137,000875:
048138,000876: 15,3346 43747 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG?
048139,000877: 15,3347 61616 AD VSQ/4API
048140,000878: 15,3350 00006 EXTEND
048141,000879: 15,3351 63657 BZMF DZCALL # YES.
048142,000880:
048143,000881: # POINT IS IN BUFFER ZONE. THRUST TO X AXIS.
048144,000882:
048145,000883: 15,3352 41617 CS JNDX
048146,000884: 15,3353 55620 TS JNDX1
048147,000885: 15,3354 03437 TC OVRLINE1
048148,000886:
048149,000887: 15,3355 41613 REFLECT CS -VT/180 # REFLECT LHP INTO RHP REL TO TERM CONTR
048150,000888: 15,3356 55613 TS -VT/180
048151,000889: 15,3357 54021 TS SR # -VT/360 SAVED FOR DZ.
![]() |
Page 1084 |
048153,000891: 15,3360 41614 CS LCX/360
048154,000892: 15,3361 55614 TS LCX/360
048155,000893: 15,3362 41617 CS JNDX
048156,000894: 15,3363 55617 TS JNDX
048157,000895:
048158,000896: # IS VSQ/4API - (VSQ/4API) MIN NEG $
048159,000897:
048160,000898: 15,3364 43747 DZ1 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG $
048161,000899: 15,3365 61616 AD VSQ/4API
048162,000900: 15,3366 00006 EXTEND
048163,000901: 15,3367 63371 BZMF DZ2 # YES, GO TEST FURTHER.
048164,000902: 15,3370 13376 TCF MAXVTEST # NO
048165,000903:
048166,000904: # IS X/360 - XMIN/360 -VT/360 NEG $
048167,000905:
048168,000906: 15,3371 43752 DZ2 CS XMIN/360 # XMIN/360 = 4/360
048169,000907: 15,3372 61614 AD LCX/360
048170,000908: 15,3373 60021 AD SR # C(SR) = -VT/360
048171,000909: 15,3374 00006 EXTEND # IS X/360 - XMIN/360 -VT/360 NEG $
048172,000910: 15,3375 63657 BZMF DZCALL # YES,IN DZ. EXIT SETTING JETAG=0.
048173,000911:
048174,000912: # IS XD/360 - VM/360K - XS/360 POS ?
048175,000913:
048176,000914: 15,3376 41617 MAXVTEST CS JNDX
048177,000915: 15,3377 55620 TS JNDX1 # NOW CAN SET JNDX1 FOR TON2 JETS.
048178,000916: 15,3400 43754 CS XS/360 # XS/360 = (XMIN -YMIN/K) /360
048179,000917: 15,3401 61616 AD VSQ/4API
048180,000918: 15,3402 61614 AD LCX/360
048181,000919: 15,3403 55615 TS XD/360 # XD/360= X/360 +VSQ/4API X INTERCEPT
048182,000920: # BUT C(XD/360) = (XD - XS) /360
048183,000921: 15,3404 63753 AD -VM/360K # X INTERCEPT FOR MAX V (VM)
048184,000922: 15,3405 40000 COM
048185,000923: 15,3406 00006 EXTEND
048186,000924: 15,3407 63415 BZMF MAXVTIM1 # YES, THRUST TO VM
048187,000925: 15,3410 31615 CA XD/360
048188,000926: 15,3411 00006 EXTEND
048189,000927: 15,3412 75002 MP KTRCS
048190,000928: 15,3413 20001 DDOUBL # GO SAVE PREDICTED DRIFTING VELOCITY.
048191,000929:
048192,000930: 15,3414 03420 TC GETON1 # INSURE THAT Q IS POS AS TAG.
048193,000931: 15,3415 00006 MAXVTIM1 EXTEND
048194,000932: 15,3416 22007 ZQ # SET +0 AS TAG
048195,000933: 15,3417 43753 CS -VMT/180
048196,000934: 15,3420 55567 GETON1 TS VDT/180 # VDT/180 OR VMT/180.
048197,000935: 15,3421 61613 AD -VT/180
048198,000936: 15,3422 60000 DOUBLE
048199,000937: 15,3423 00006 EXTEND
048200,000938: 15,3424 73750 MP 180/8ATT
048201,000939: 15,3425 55621 TS TON1 # TON1 / 4T
![]() |
Page 1085 |
048203,000941: 15,3426 00006 EXTEND
048204,000942: 15,3427 63431 BZMF OVRLINE
048205,000943: 15,3430 03443 TC GETON2 # RESET Q POS IF CAME FROM MAXVTIM1
048206,000944:
048207,000945: 15,3431 10002 OVRLINE CCS Q
048208,000946: 15,3432 13437 TCF OVRLINE1
048209,000947: 15,3433 31620 MAXVTIM2 CA JNDX1 # ABOVE VM, SO THRUST DOWN
048210,000948: 15,3434 55617 TS JNDX
048211,000949: 15,3435 41621 CS TON1
048212,000950: 15,3436 13442 TCF OVRLINE2 +1
048213,000951:
048214,000952: 15,3437 41613 OVRLINE1 CS -VT/180 # DRIFT AT V
048215,000953: 15,3440 55567 TS VDT/180
048216,000954: 15,3441 35021 OVRLINE2 CA ZERO
048217,000955: 15,3442 55621 TS TON1
048218,000956: 15,3443 31567 GETON2 CA VDT/180 # VDT/180, OR VMT/180 OR VT/180
048219,000957: 15,3444 60000 DOUBLE
048220,000958: 15,3445 00006 EXTEND
048221,000959: 15,3446 73750 MP 180/8ATT
048222,000960: 15,3447 60000 DOUBLE # FOR SECOND BURN, A1
048223,000961: 15,3450 55607 TS TON2 # = TON2 / 4T
048224,000962:
048225,000963: 15,3451 40000 COM
048226,000964: 15,3452 00006 EXTEND
048227,000965: 15,3453 63457 BZMF GETOFF
048228,000966: 15,3454 55607 TS TON2
048229,000967: 15,3455 31617 CA JNDX
048230,000968: 15,3456 55620 TS JNDX1
048231,000969:
048232,000970: 15,3457 41607 GETOFF CS TON2 # TON2 / 4T
048233,000971: 15,3460 00006 EXTEND
048234,000972: 15,3461 71567 MP VDT/180 # VDT/180, OR VT/180, OR VMT/180.
048235,000973: 15,3462 55615 TS XD/360 # USE AS TEMP
048236,000974: 15,3463 41567 CS VDT/180
048237,000975: 15,3464 00006 EXTEND
048238,000976: 15,3465 13501 BZF TOFFOVFL # OMIT THE DIVIDE IF DEN = 0.
048239,000977: 15,3466 61613 AD -VT/180
048240,000978: 15,3467 00006 EXTEND
048241,000979: 15,3470 71621 MP TON1 # TON1 /4T
048242,000980: 15,3471 61615 AD XD/360 # TEMP = -VDT/180 / 2 TON2
048243,000981: 15,3472 61614 AD LCX/360
048244,000982: 15,3473 22007 ZL
048245,000983: 15,3474 56001 XCH L # TEST THE DIVIDE
048246,000984: 15,3475 00006 EXTEND
048247,000985: 15,3476 11567 DV VDT/180
048248,000986: 15,3477 00006 EXTEND
048249,000987: 15,3500 13503 BZF GETOFF2 # DIVIDE OK
048250,000988:
048251,000989: 15,3501 35045 TOFFOVFL CA 2JETT # OVFL, USE 2T FOR CONVENIENCE.
048252,000990: 15,3502 13510 TCF TIMSCAL
048253,000991:
![]() |
Page 1086 |
048255,000993: 15,3503 56001 GETOFF2 XCH L # GET NUMERATOR.
048256,000994: 15,3504 00006 EXTEND
048257,000995: 15,3505 11567 DV VDT/180 # C(A) = TOFF / 2T
048258,000996: 15,3506 00006 EXTEND
048259,000997: 15,3507 75045 MP 2JETT
048260,000998: 15,3510 55605 TIMSCAL TS TOFF # IN CS
048261,000999:
048262,001000: 15,3511 33751 CAF 4JETT
048263,001001: 15,3512 00006 EXTEND
048264,001002: 15,3513 71621 MP TON1 # C(TON1) = TON1 / 4T
048265,001003: 15,3514 55621 TS TON1 # IN CS
048266,001004:
048267,001005: 15,3515 33751 CAF 4JETT
048268,001006: 15,3516 00006 EXTEND
048269,001007: 15,3517 71607 MP TON2 # C(TON2) = TON2 / 4T
048270,001008: 15,3520 55607 TS TON2 # IN CS
048271,001009:
048272,001010: 15,3521 35021 CA ZERO # CANNOT REDO AFTER TIMETST. TUSED GONE
048273,001011: 15,3522 55711 TS JETAG # SET +0 TO SHOW ROLL DAP CALLED.
048274,001012:
048275,001013: # CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE
048276,001014: # INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON NEXT
048277,001015: # AND ON ALTERNATE PASSES THROUGH CM/DUMPR.
048278,001016:
048279,001017: 15,3523 35017 CA ONE
048280,001018: 15,3524 54305 TS SW/NDX
048281,001019:
![]() |
Page 1087 |
048283,001021: # TIMETEST SECTION FOR RCS
048284,001022:
048285,001023: # ENTER WITH THREE TIME INTERVALS AND THE CORRESPONDING JET CODE INDEXES IN ERASEABLE LOCS TON1, TOFF, TON2, JNDX
048286,001024: # JNDX1. SECTION PROCESSES TIME INTERVALS FOR WTLST CALLS AND ASSURES THAT WTLST CALLS ARE MADE ONLY
048287,001025: # (1) FOR POS INTERVALS GREATER THAN A SPECIFIED MINIMUM (HERE CHOSEN AS 2 CS) AND
048288,001026: # (2) FOR THE INTERVALS THAT WILL BE EXECUTED WITHIN THE TIME REMAINING IN THE SAMPLE INTERVAL T (2 SEC).
048289,001027: # TIMETST ESTABLISHES 6 LOCS CONTAINING JET CODES AND CORRESPONDING TIME INTERVALS. THUS: TON1, T1BITS,
048290,001028: # TOFF, TBITS, TON2, T2BITS. OF THESE THE FIRST 2 LOCS ARE TEMPORARY, FOR IMMEDIATE ACTION, IN GENERAL.
048291,001029: # SECTION JETCALL BELOW PROCESSES THIS LIST.
048292,001030:
048293,001031: 15,3525 30025 TIMETST CA TIME1 # CORRECT FOR POSSIBLE TIME1 OVFL.
048294,001032: 15,3526 65002 AD POS1/2
048295,001033: 15,3527 65002 AD POS1/2 # OVFL GUARANTEED.
048296,001034: 15,3530 27712 ADS TUSED # B(TUSED) =-TUSED =-OLTIME1
048297,001035:
048298,001036: 15,3531 33746 CA -T-3 # =-T +2 -5 (SEE SETJTAG)
048299,001037: # THE +2 REQUIRED FOR PROPER BRANCH.
048300,001038: 15,3532 27712 ADS TUSED # TUSED = TIME(K)-TIME(K-1)-T+2
048301,001039:
048302,001040: 15,3533 45016 CS TWO # USE 2 SINCE TIME3 UNCERTAIN TO 1
048303,001041: 15,3534 61621 AD TON1
048304,001042: 15,3535 00006 EXTEND
048305,001043: 15,3536 63550 BZMF TIMETST1
048306,001044: 15,3537 51617 INDEX JNDX
048307,001045: 15,3540 33205 CAF P/RJCODE
048308,001046: 15,3541 55622 TS T1BITS
048309,001047:
048310,001048: 15,3542 31621 CA TON1
048311,001049: 15,3543 27712 ADS TUSED
048312,001050: 15,3544 00006 EXTEND
048313,001051: 15,3545 63552 BZMF TOFFTEST
048314,001052: 15,3546 35021 CA ZERO
048315,001053: 15,3547 13603 TCF TIMETST3
048316,001054: 15,3550 45017 TIMETST1 CS ONE
048317,001055: 15,3551 55621 TS TON1
048318,001056: 15,3552 45016 TOFFTEST CS TWO
048319,001057: 15,3553 61605 AD TOFF
048320,001058: 15,3554 00006 EXTEND
048321,001059: 15,3555 63564 BZMF TIMETST2
048322,001060: 15,3556 31605 CA TOFF
048323,001061: 15,3557 27712 ADS TUSED
048324,001062: 15,3560 00006 EXTEND
048325,001063: 15,3561 63566 BZMF TON2TEST
048326,001064: 15,3562 35021 CA ZERO
048327,001065: 15,3563 13605 TCF TIMETST4
048328,001066: 15,3564 45017 TIMETST2 CS ONE
048329,001067: 15,3565 55605 TS TOFF
048330,001068: 15,3566 45016 TON2TEST CS TWO
048331,001069: 15,3567 61607 AD TON2
048332,001070: 15,3570 00006 EXTEND
048333,001071: 15,3571 63606 BZMF TIMETST5
![]() |
Page 1088 |
048335,001073: 15,3572 51620 INDEX JNDX1
048336,001074: 15,3573 33205 CAF P/RJCODE
048337,001075: 15,3574 55610 TS T2BITS
048338,001076: 15,3575 31607 CA TON2
048339,001077: 15,3576 27712 ADS TUSED
048340,001078: 15,3577 00006 EXTEND
048341,001079: 15,3600 63610 BZMF JETCALL1
048342,001080: 15,3601 35021 CA ZERO
048343,001081: 15,3602 13607 TCF TIMETST5 +1
048344,001082: 15,3603 55621 TIMETST3 TS TON1
048345,001083: 15,3604 45017 CS ONE
048346,001084: 15,3605 55605 TIMETST4 TS TOFF
048347,001085: 15,3606 45017 TIMETST5 CS ONE
048348,001086: 15,3607 55607 TS TON2
048349,001087:
048350,001088: # SECTION JETCALL EXAMINES CONTENTS OF JET TIMES IN LIST, ESTABLISHES WTLST ENTRIES, AND EXECUTES CORRESPONDING
048351,001089: # JET CODES. A POSITIVE NZ NUMBER IN A TIME REGISTER INDICATES THAT A WTLST CALL IS TO BE MADE, AND ITS JET BITS
048352,001090: # EXECUTED. A +0 INDICATES THAT THE TIME INTERVAL DOES NOT APPLY, BUT THE CORRESPONDING JET BITS ARE TO BE
048353,001091: # EXECUTED. A NEG NUMBER INDICATES THAT THE TIME INTERVAL HAS BEEN PROCESSED. IN EVENT OF +0 OR -1, THE
048354,001092: # SUBSEQUENT TIME REGISTER IS EXAMINED FOR POSSIBLE ACTION. THUS JET BITS TO BE EXECUTED MAY COME FROM MORE
048355,001093: # THAN ONE REGISTER.
048356,001094:
048357,001095: 15,3610 35021 JETCALL1 CA ZERO
048358,001096: 15,3611 55611 TS OUTTAG
048359,001097: 15,3612 55612 TS NUJET
048360,001098: 15,3613 55606 TS TBITS
048361,001099: 15,3614 53622 DXCH TON1
048362,001100: 15,3615 10000 CCS A
048363,001101: 15,3616 13633 TCF JETCALL2 # CALL WTLST
048364,001102: 15,3617 23612 JETCALL3 LXCH NUJET # WTLST ENTRIES COME HERE FROM JETCALL
048365,001103: 15,3620 45017 CS ONE
048366,001104: 15,3621 53606 DXCH TOFF
048367,001105: 15,3622 10000 CCS A
048368,001106: 15,3623 13633 TCF JETCALL2 # CALL WTLST
048369,001107: 15,3624 23612 LXCH NUJET
048370,001108: 15,3625 45017 CS ONE
048371,001109: 15,3626 53610 DXCH TON2
048372,001110: 15,3627 10000 CCS A
048373,001111: 15,3630 13633 TCF JETCALL2 # CALL WTLST
048374,001112: 15,3631 23612 LXCH NUJET
048375,001113: 15,3632 03642 TC JETACTN # C(A) = +0
048376,001114: 15,3633 56001 JETCALL2 XCH L # SAVE JET BITS FOR AFTER WTLST CALL
048377,001115: 15,3634 27612 ADS NUJET
048378,001116: 15,3635 56001 XCH L
048379,001117: 15,3636 65017 AD ONE # RESTORE FOR CCS
048380,001118: 15,3637 05245 TC WAITLIST
048381,001119: 15,3640 E6,1661 EBANK= AOG
048382,001120: 15,3640 03650 32066 2CADR JETCALL
048383,001121:
048384,001122: 15,3642 31612 JETACTN CA NUJET # COME HERE WHEN DESIRED JET CODE IS KNOWN
![]() |
Page 1089 |
048386,001124: 15,3643 00006 EXTEND # NO NEED TO SAVE OLD CODES
048387,001125: 15,3644 01006 WRITE ROLLJETS # SET RCHAN TO NEW BIT CONFIG.
048388,001126:
048389,001127: 15,3645 11611 CCS OUTTAG
048390,001128: 15,3646 05324 TC TASKOVER
048391,001129: 15,3647 03705 ROLLDUMP TC CM/FDAIR
048392,001130:
048393,001131: # EDIT DUMP AT ABOVE LOCATION.
048394,001132:
048395,001133: # WAITLIST ENTRIES COME HERE.
048396,001134:
048397,001135: 15,3650 35016 JETCALL CAF BIT2 # CM/DSTBY =103D BIT2
048398,001136: 15,3651 55611 TS OUTTAG # SIGNIFY WTLST ENTRY
048399,001137: 15,3652 70102 MASK CM/FLAGS # IS SYSTEM DISABLED $
048400,001138: 15,3653 00006 EXTEND
048401,001139: 15,3654 13643 BZF JETACTN +1 # YES, QUENCH ROLL JETS, IF ON AND EXIT.
048402,001140: 15,3655 22007 ZL # NO, CONTINUE.
048403,001141: 15,3656 13617 TCF JETCALL3 # C(A) POS, C(L) = +0
048404,001142:
048405,001143: # DEAD ZONE ENTRIES COME HERE.
048406,001144:
048407,001145: 15,3657 41700 DZCALL CS CMDAPMOD # POSSIBLE VALUES OF CMDAPMOD: -1, +0, -0.
048408,001146: 15,3660 75017 MASK BIT1
048409,001147: 15,3661 54001 TS L # C(L)=0 FOR -0; C(L)=1 FOR -1 OR +0.
048410,001148: 15,3662 50000 INDEX A # ERASBLE ORDER: ROLLTM,ROLLC,ROLLC +1.
048411,001149: 15,3663 31714 CA ROLLTM # GET ROLL/180 OR ROLLC (/360).
048412,001150: 15,3664 50001 INDEX L
048413,001151: 15,3665 54000 TS A # IF C(L)=1, STORE 'ROLLC' IN 'L'.
048414,001152: 15,3666 60001 AD L # (BOTH MUST BE SCALED DEG/180)
048415,001153: 15,3667 02522 TC ANGOVCOR # C(A)=ROLL/180 OR 2 ROLLC .
048416,001154: 15,3670 55717 TS ROLLHOLD # IF CMDAPMOD =-0, SAVE ROLL ANGLE,
048417,001155: # OTHERWISE, SAVE ROLL COMMAND.
048418,001156:
048419,001157: 15,3671 35021 CA ZERO # COME HERE IF IN DZ, AND CANCEL JETS.
048420,001158: 15,3672 00006 EXTEND # INHINT NOT NEEDED HERE.
048421,001159: 15,3673 01006 WRITE ROLLJETS # TURN OFF ALL ROLL JETS.
048422,001160: 15,3674 55567 TS VDT/180 # SET =0 TO SHOW IN DEAD ZONE.
048423,001161: 15,3675 55711 DZCALL1 TS JETAG # COME HERE WITH C(A)=0.
048424,001162: 15,3676 03647 TC ROLLDUMP
048425,001163:
![]() |
Page 1090 |
048427,001165: # CM ENTRY FDAI DISPLAY
048428,001166:
048429,001167: # CALCULATE BY INTEGRATION THE ROLL ERROR BETWEEN THE 2 SEC CM/RCS UPDATES. DISPLAY ATTITUDE ERRORS AS FOLLOWS:
048430,001168: # ATM DAP: DISPLAY ONLY ROLL ATTITUDE ERROR.
048431,001169: # EXT ATM DAP: PRESENT 3 ATTITUDE ERRORS RELATIVE TO THE APPROPRIATE BODY AXES EACH .1 SEC.
048432,001170: # ROLL ROLLC-ROLL
048433,001171: # PITCH ALFAC-ALFA
048434,001172: # YAW BETAC-BETA
048435,001173:
048436,001174: # DURING ENTRY, THE FDAI NEEDLES HAVE FULL SCALE OF 67.5 DEG IN ROLL AND 16.875 DEG IN PITCH AND YAW.
048437,001175: # THE SUBROUTINE NEEDLER EXPECTS (ANGLE/180) AND SCALES TO 16.875 DEG FULL SCALE.
048438,001176:
048439,001177: # COME HERE EACH .1 SEC. (CMDAPMOD=+1 COMES BELOW)
048440,001178: 15,3677 41705 CM/FDAI CS PHIDOT # INTEGRATE ROLL ERROR 'TWEEN 2SEC UPDATES
048441,001179: 15,3700 00006 EXTEND
048442,001180: 15,3701 71506 MP CALFA # FOR ASSUMED COORDINATION.
048443,001181: 15,3702 00006 EXTEND
048444,001182: 15,3703 75002 MP HALF
048445,001183: 15,3704 27713 ADS PAXERR1 # ROLL ERROR/360. OVFL OK.
048446,001184:
048447,001185: # EDIT DUMP AT ABOVE LOCATION.
048448,001186: 15,3705 35002 CM/FDAIR CA HALF
048449,001187: 15,3706 00006 EXTEND
048450,001188: 15,3707 71713 MP PAXERR1 # FULL SCALE FOR FDAI (ROLL) IS 67.5 D
048451,001189: 15,3710 55476 TS PAXERR # .25 (ROLL ERROR/180) FOR FDAI NEEDLE.
048452,001190:
048453,001191: # PROGRAM TO FILE BODY RATES FOR TM ON ONE PASS AND
048454,001192: # TO UPDATE THE NEEDLE DISPLAY ON THE NEXT.
048455,001193: # SYNCHRONIZATION WITH CM/RCS IS USED SO THAT THE TM
048456,001194: # IS DONE WITH THE ROLL SYSTEM AND NEEDLES START ON
048457,001195: # THE SUBSEQUENT PASS.
048458,001196:
048459,001197: 15,3711 40305 CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE
048460,001198: 15,3712 54305 TS SW/NDX
048461,001199: 15,3713 00006 EXTEND # INDEX.
048462,001200: 15,3714 63720 BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO
048463,001201: # ENDBUF.
048464,001202: # INDEX IS POS FOR NEEDLES
048465,001203:
048466,001204: 15,3715 04740 TC IBNKCALL
048467,001205: 15,3716 42420 CADR NEEDLER
048468,001206:
048469,001207: 15,3717 03736 TC CM/END
048470,001208:
048471,001209: # INDEX IS NEG FOR TM FILE
048472,001210:
048473,001211: 15,3720 66214 CMTMFILE AD THREE
048474,001212: 15,3721 00006 EXTEND
048475,001213: 15,3722 63726 BZMF SAVENDX
048476,001214:
![]() |
Page 1091 |
048478,001216: 15,3723 30025 CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF.
048479,001217: 15,3724 54304 TS CMTMTIME
048480,001218: 15,3725 45025 CS THIRTEEN # INITIALIZE COUNTER
048481,001219: 15,3726 54305 SAVENDX TS SW/NDX # A NEGATIVE NUMBER.
048482,001220: 15,3727 00006 EXTEND
048483,001221: 15,3730 31702 DCA PREL
048484,001222: 15,3731 50305 INDEX SW/NDX
048485,001223: 15,3732 52324 DXCH ENDBUF -1
048486,001224: 15,3733 31703 CA RREL
048487,001225: 15,3734 50305 INDEX SW/NDX
048488,001226: 15,3735 54325 TS ENDBUF +1
048489,001227:
048490,001228: 15,3736 31623 CM/END CA CM/SAVE
048491,001229: 15,3737 54021 TS SR
048492,001230: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
048493,001231:
048494,001232: 15,3740 00006 EXTEND
048495,001233: 15,3741 33745 DCA T5IDLER2
048496,001234: 15,3742 53313 DXCH T5LOC
048497,001235: 15,3743 05333 TC RESUME
048498,001236:
048499,001237: 15,3744 1312 EBANK= T5LOC
048500,001238: 15,3744 03153 12062 T5IDLER2 2CADR T5IDLOC
048501,001239:
048502,001240: # DEFINE THE FOLLOWING 17D REGISTERS IN UPBUFF TO BE
048503,001241: # USED TO TELEMETER CM VEHICLE BODY RATE INFORMATION.
048504,001242: # THE INFORMATION IS FILED EACH 0.2 SEC, GIVING 15D
048505,001243: # DATA POINTS EACH 1 SEC. TM LIST IS READ TWICE
048506,001244: # EACH 2 SECONDS.
048507,001245:
048508,001246: # THE SEQUENCE IS: SP TIME INITIAL TIME
048509,001247: # SWITCH ALSO INDEX.
048510,001248: # P ROLL RATE
048511,001249: # Q PITCH RATE
048512,001250: # R YAW RATE
048513,001251: # ETC.
048514,001252:
048515,001253: # CMTMTIME = UPBUFF
048516,001254: # SW/NDX = UPBUFF +1
048517,001255: # ENDBUF = UPBUFF +16D
048518,001256:
![]() |
Page 1092 |
048520,001258: # SPACER
048521,001259:
048522,001260: # CONSTANTS USED IN THE ROLL CONTROL SYSTEM:
048523,001261: # CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC,
048524,001262: # XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE
048525,001263: # XBUF = 4DEG
048526,001264:
048527,001265: 15,3746 77464 -T-3 DEC -203 B-14 # CS
048528,001266: 15,3747 00012 VSQMIN DEC .61050061 E-3 # VSQ MIN/4 A PI = 4/(4 (9.1) 180)
048529,001267: 15,3750 5033 2T/TCDU = OCT50 # T/TCDU EXP-14 TCDU = .1SEC
048530,001268: 15,3750 23617 180/8ATT DEC .61813187 # 180/(8 (9.1) 4)=(180/ATT) EXP -3
048531,001269: 15,3751 15,3753 -VMT/180 = -VM/360K # = 20 (2) / 180
048532,001270: 15,3751 5045 2JETT = 4SECS # CS 2 (2) 100 INTEGER
048533,001271: 15,3751 01440 4JETT DEC 800 B-14 # CS 4 (2) 100 INTEGER
048534,001272: 15,3752 00266 XMIN/360 DEC 182 B-14 # XMIN/360 = 4/ 360 EXP 14 = 182 INTEGER
048535,001273: 15,3753 70706 -VM/360K DEC -.22222222 # =-20/( 360 (.25))
048536,001274: 15,3754 15,3750 1/16A1 = 180/8ATT
048537,001275: # 1/16A1 = 180/(16 A1 TT)
048538,001276: # = 180/(16 4.55 4)
048539,001277: 15,3754 00133 XS/360 DEC 91 B-14 # = (XMIN +VI (T-1/K))/360 = 2/360 EXP 14
048540,001278: 15,3755 15,3754 BUFLIM = XS/360 # 4/(2 360)
048541,001279:
048542,001280: 15,3755 5002 KTRCS = HALF # KT = (.25) 2 = .5
048543,001281:
048544,001282:
End of include-file CM_ENTRY_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc