Source Code
![]() |
These source-code files were obtained by digitally photographing
an Artemis 72 program listing from a private collection and then
modifying pre-existing Comanche 55 (Apollo 11) source files to
incorporate changes. Note that the page images
presented online are of reduced quality, and that additional images
may be 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 072 OF AGC PROGRAM ARTEMIS BY NASA 2021114-011 11:40 FEB. 26, 1971 THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS COLOSSUS 3 THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED IN REPORT R-577. THIS PROGRAM WAS PREPARED UNDER OSR PROJECT 55-23890, SPONSORED BY THE MANNED SPACECRAFT CENTER OF THE NATIONAL AERONAUTICS AND SPACE ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE CHARLES STARK DRAPER LABORATORY, MASSACHUSETTS INSTITUTE OF TECHNOLOGY, CAMBRIDGE, MASS. |
046330,000002: # Copyright: Public domain.
046331,000003: # Filename: CM_ENTRY_DIGITAL_AUTOPILOT.agc
046332,000004: # Purpose: Part of the source code for Artemis (i.e., Colossus 3),
046333,000005: # build 072. This is for the Command Module's (CM)
046334,000006: # Apollo Guidance Computer (AGC), we believe for
046335,000007: # Apollo 15-17.
046336,000008: # Assembler: yaYUL
046337,000009: # Contact: Sergio Navarro <sergionavarrog@gmail.com>
046338,000010: # Website: www.ibiblio.org/apollo/index.html
046339,000011: # Page scans: www.ibiblio.org/apollo/ScansForConversion/Artemis072/
046340,000012: # Mod history: 2009-08-27 SN Adapted from corresponding Comanche 055 file.
046341,000013: # 2009-09-03 JL Duplicate definition of VSQMIN, one line is a comment in page scan.
046342,000014: # 2009-09-10 JL Fixed typos.
046343,000015: # 2010-02-20 RSB Un-##'d this header.
046344,000016:
046345,000017: # # Page 1063
046346,000018:
046347,000019: # SUBROUTINE TO READ GIMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2S COMPLEMENT, BUT THE
046348,000020: # DIFFERENCES ARE IN 1S COMP. ENTER AND READ ANGLES EACH .1 SEC.
046349,000021:
046350,000022: # CM/DSTBY = 1 FOR DAP OPERATION
046351,000023: # CM/DSTBY = 0 TO TERMINATE DAP OPERATION.
046352,000024:
046353,000025:
046354,000026: 15,2000 SETLOC ETRYDAP
046355,000027: 15,2000 BANK
046356,000028:
046357,000029: 15,2063 COUNT* $$/DAPEN
046358,000030: 15,2063 E6,1661 EBANK= AOG
046359,000031:
046360,000032: 15,2063 34355 READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO
046361,000033: 15,2064 27725 ADS CM/GYMDT # PIPTIME. (GROUP 6)
046362,000034:
046363,000035: # IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE
046364,000036: # PHASCHNG PROTECTION IS IN CM/DAPIC.
046365,000037:
046366,000038: 15,2065 34763 CA NOIMUDAP # CHECK FOR FINE ALIGN MODE OF CDU.
046367,000039: 15,2066 71334 MASK IMODES33 # (PROTECT AOG/PIP ETC AS WELL AS
046368,000040: 15,2067 00006 EXTEND # GIMBAL DIFFERENCES)
046369,000041: 15,2070 12076 BZF READGYM1 # OK
046370,000042:
046371,000043: 15,2071 44770 CS GYMDIBIT # NOT IN FINE ALIGN, SO IDLE
046372,000044: 15,2072 70102 MASK CM/FLAGS # SET GYMDIFSW =0
046373,000045: 15,2073 54102 TS CM/FLAGS
046374,000046: 15,2074 06000 TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE.
046375,000047: 15,2075 02143 TC CM/GYMIC +2
046376,000048:
046377,000049: 15,2076 30032 READGYM1 CA CDUX
046378,000050: 15,2077 57661 XCH AOG
046379,000051: 15,2100 00006 EXTEND
046380,000052: 15,2101 21661 MSU AOG # -DELAOG=AOG(N-1) - AOG(N)
046381,000053: 15,2102 55675 TS -DELAOG
046382,000054:
046383,000055: 15,2103 30033 CA CDUY
046384,000056: 15,2104 57662 XCH AIG
046385,000057: 15,2105 00006 EXTEND
046386,000058: 15,2106 21662 MSU AIG
046387,000059: 15,2107 55676 TS -DELAIG
046388,000060:
046389,000061: 15,2110 30034 CA CDUZ
046390,000062: 15,2111 57663 XCH AMG
046391,000063: 15,2112 00006 EXTEND
046392,000064: 15,2113 21663 MSU AMG
046393,000065: 15,2114 55677 TS -DELAMG
046394,000066:
046395,000067: 15,2115 30102 DOBRATE? CA CM/FLAGS
046396,000068: 15,2116 74767 MASK CM/DSBIT
046397,000069: 15,2117 10000 CCS A
046398,000070: # # Page 1064
046399,000071: 15,2120 12135 TCF CKGYMSW
046400,000072:
046401,000073: 15,2121 06000 TC FLUSHJET # TURN OFF ALL JETS
046402,000074:
046403,000075: 15,2122 05402 TC PHASCHNG
046404,000076: 15,2123 00006 OCT 00006 # DEACTIVATE DAP GROUP 6.
046405,000077:
046406,000078: 15,2124 05314 TC TASKOVER
046407,000079:
046408,000080: 15,2125 34770 DOBRATE CA ONE # DO BODYRATE
046409,000081: 15,2126 55720 DOBRATE1 TS JETEM # SKIP BODYRATE.
046410,000082:
046411,000083: 15,2127 34355 CA TEN # KEEP CDU READ GOING.
046412,000084: 15,2130 05223 TC TWIDDLE
046413,000085: 15,2131 02063 ADRES READGYMB
046414,000086: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
046415,000087:
046416,000088: 15,2132 11720 CCS JETEM
046417,000089: 15,2133 02165 TC BODYRATE
046418,000090: 15,2134 05314 TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES)
046419,000091:
046420,000092: 15,2135 40102 CKGYMSW CS CM/FLAGS
046421,000093: 15,2136 74770 MASK GYMDIBIT
046422,000094: 15,2137 00006 EXTEND
046423,000095: 15,2140 12125 BZF DOBRATE
046424,000096: 15,2141 26102 CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0
046425,000097: 15,2142 34772 CAF ZERO
046426,000098: 15,2143 55711 +2 TS JETAG
046427,000099: 15,2144 55706 TS OLDELP
046428,000100: 15,2145 55707 TS OLDELQ
046429,000101: 15,2146 55710 TS OLDELR
046430,000102: 15,2147 55723 TS GAMDOT # NO GYM DIF, PROB NO GAM DIF.
046431,000103: 15,2150 02126 TC DOBRATE1
046432,000104:
046433,000105: # # Page 1065
046434,000106:
046435,000107: # COME HERE TO CORRECT FOR OVERFLOW IN ANGULAR CALCULATIONS
046436,000108:
046437,000109: 15,2151 54001 ANGOVCOR TS L # THIS COSTS 2 MCT TO USE.
046438,000110: 15,2152 00002 TC Q # NO OVFL
046439,000111: 15,2153 50000 INDEX A
046440,000112: 15,2154 34751 CAF LIMITS
046441,000113: 15,2155 26001 ADS L
046442,000114: 15,2156 00002 TC Q
046443,000115:
046444,000116: 6000 SETLOC FFTAG6
046445,000117: 6000 BANK
046446,000118:
046447,000119: 6000 COUNT* $$/DAPEN
046448,000120: 6000 30007 FLUSHJET CA 7 # COME HERE TO TURN OFF ALL JETS.
046449,000121: 6001 00006 EXTEND
046450,000122: 6002 01006 WRITE ROLLJETS # ZERO CHANNEL 6
046451,000123: 6003 00006 EXTEND
046452,000124: 6004 01005 WRITE PYJETS # ZERO CHANNEL 5
046453,000125: 6005 00002 TC Q
046454,000126:
046455,000127: 15,2000 SETLOC ETRYDAP
046456,000128: 15,2000 BANK
046457,000129:
046458,000130: 15,2157 COUNT* $$/DAPEN
046459,000131: 15,2157 40000 RATEAVG COM # SUBROUTINE TO ESTIMATE RATES IN PRESENCE
046460,000132: 15,2160 61720 AD JETEM # OF CONSTANT ACCELERATION.
046461,000133: 15,2161 00006 EXTEND
046462,000134: 15,2162 74753 MP HALF # DELV (EST) = DELV +(DELV-OLDELV)/2
046463,000135: 15,2163 61720 AD JETEM
046464,000136: 15,2164 00002 TC Q
046465,000137:
046466,000138: # # Page 1066
046467,000139:
046468,000140: # THESE ARE CALLED FOR THE VARIOUS INITIALIZATIONS NEEDED.
046469,000141:
046470,000142: 20,2000 SETLOC DAPS1
046471,000143: 20,2000 BANK
046472,000144:
046473,000145: 20,3624 COUNT* $$/DAPEN
046474,000146: 20,3624 E6,1661 EBANK= AOG
046475,000147:
046476,000148: 20,3624 04611 CM/DAPON TC E6SETTER
046477,000149:
046478,000150: 20,3625 05561 TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER.
046479,000151: 20,3626 00132 ADRES DAPBIT1 # BIT 15 FLAG 6 CM FLAGS.
046480,000152: 20,3627 05561 TC DOWNFLAG # RESET DAPBIT2
046481,000153: 20,3630 00133 ADRES DAPBIT2 # BIT 14 FLAG 6
046482,000154: 20,3631 00006 EXTEND
046483,000155: 20,3632 33747 DCA T5IDLER1 # DISABLE RCS CALCULATION
046484,000156: 20,3633 52113 DXCH T5LOC
046485,000157: 20,3634 00006 EXTEND
046486,000158: 20,3635 33747 DCA T5IDLER1 # DISABLE RCS JET CALLS
046487,000159: 20,3636 52111 DXCH T6LOC
046488,000160:
046489,000161: 20,3637 06000 TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS.
046490,000162:
046491,000163: 20,3640 47673 CS 13,14,15
046492,000164: 20,3641 71465 MASK DAPDATR1 # SET CONFIG BITS =0 FOR ENTRY
046493,000165: 20,3642 55465 TS DAPDATR1
046494,000166: 20,3643 03647 TC +4
046495,000167:
046496,000168: 20,3644 35011 NOTYET CA .5SEC
046497,000169: 20,3645 04636 TC BANKCALL
046498,000170: 20,3646 01731 CADR DELAYJOB # (DELAYJOB DOES INHINT)
046499,000171: 20,3647 34756 +4 CA GMDIFBIT # GAMDIFSW = 94D BIT11 INITLY=0
046500,000172: 20,3650 70102 MASK CM/FLAGS # IF ZERO, WAIT UNTIL CM/POSE UPDATE.
046501,000173: 20,3651 00006 EXTEND
046502,000174: 20,3652 13644 BZF NOTYET
046503,000175:
046504,000176: 20,3653 44770 CS ONE # ACTIVATE CM/DAP
046505,000177: 20,3654 55501 TS RCSFLAGS # USE BIT3 TO INITIALIZE NEEDLER ON
046506,000178: # NEXT PASS.
046507,000179: 20,3655 55727 TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL
046508,000180: # HEADSUP IS SET IN P62.
046509,000181: # FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62.
046510,000182:
046511,000183: 20,3656 30007 CA 7
046512,000184: 20,3657 55711 TS JETAG
046513,000185: 20,3660 55713 TS PAXERR1 # KEEP NEEDLES ZERO UNTIL DAP UPDATE
046514,000186: # IN CASE CMDAPMOD IS NOT +1.
046515,000187: 20,3661 00004 INHINT
046516,000188: 20,3662 00006 EXTEND
046517,000189: 20,3663 31666 DCA ALFA/180 # DO ATTITUDE HOLD UNTIL KEYBOARD
046518,000190: # # Page 1067
046519,000191: 20,3664 53604 DXCH ALFACOM # ESTABLISHES HEADSUP.
046520,000192: 20,3665 31664 CA ROLL/180
046521,000193: 20,3666 55717 TS ROLLHOLD # FOR ATTITUDE HOLD IN MODE +1.
046522,000194: 20,3667 00006 EXTEND
046523,000195: 20,3670 74753 MP HALF
046524,000196: 20,3671 55715 TS ROLLC # NOT INTERESTED IN LO WORD.
046525,000197:
046526,000198: 20,3672 40102 CS CM/FLAGS
046527,000199: 20,3673 74755 MASK CMARMBIT # CMDAPARM = 93D BIT12 INITLY=0
046528,000200: 20,3674 26102 ADS CM/FLAGS # SET BIT TO 1.
046529,000201:
046530,000202: 20,3675 40076 CS FLAGWRD2 # SET NODOFLAG TO PREVENT FURTHER
046531,000203: 20,3676 74770 MASK NODOBIT # V 37 ENTRIES
046532,000204: 20,3677 26076 ADS FLAGWRD2
046533,000205:
046534,000206: 20,3700 00003 RELINT
046535,000207:
046536,000208: 20,3701 04655 TC POSTJUMP
046537,000209: 20,3702 54343 CADR P62.1
046538,000210:
046539,000211: # # Page 1068
046540,000212:
046541,000213: # INITIALIZE CM/DAP. WAITLIST CALL FOR READGYMB. SET SWITCH CM/DSTBY =1
046542,000214: # SO READACCS WILL ENTER A WTLST CALL FOR SETJTAG .
046543,000215: # CMDAPARM = 0, SO ONLY BODY RATE AND ATTITUDE CALCULATIONS ARE DONE.
046544,000216: # SET AVEGEXIT TO CONTINUE AT CM/POSE
046545,000217:
046546,000218: 20,3703 04611 CM/DAPIC TC E6SETTER
046547,000219:
046548,000220: 20,3704 00004 INHINT
046549,000221: 20,3705 41044 CM/DAP2C CS PIPTIME +1
046550,000222: # PRIO OF P62 L PRIO AVG,:PIPTM=PIPTM1
046551,000223: 20,3706 55720 TS JETEM
046552,000224:
046553,000225: 20,3707 34753 CA POS1/2
046554,000226: 20,3710 64753 AD POS1/2
046555,000227: 20,3711 60025 AD TIME1 # OVFL GUARANTEED
046556,000228: 20,3712 27720 ADS JETEM # C(A) = DELTA TIME SINCE PIPUP
046557,000229:
046558,000230: 20,3713 44773 CS FIVE
046559,000231: 20,3714 61720 AD JETEM
046560,000232: 20,3715 10000 CCS A
046561,000233: 20,3716 63745 AD -CDUT+1
046562,000234: 20,3717 13715 TCF -2
046563,000235: 20,3720 13721 NOOP
046564,000236: 20,3721 64770 AD ONE # SEND NO ZERO TO WTLST
046565,000237: 20,3722 55725 TS CM/GYMDT # FOR RESTART
046566,000238: 20,3723 05233 TC WAITLIST
046567,000239: 20,3724 E6,1661 EBANK= AOG
046568,000240: 20,3724 02063 32066 2CADR READGYMB
046569,000241:
046570,000242:
046571,000243: 20,3726 43744 CS CM/SWIC1 # GAMDIFSW, GYMDIFSW, CM/DSTBY
046572,000244: 20,3727 70102 MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP
046573,000245: 20,3730 64355 AD CM/SWIC2 # SET CM/DSTBY, LATSW
046574,000246: # DISABLE ENTRY DISPLAY, SINCE DES. GIMB.
046575,000247: # CALC. (P62.3) GOES TO ENDEXIT.
046576,000248: 20,3731 54102 TS CM/FLAGS
046577,000249:
046578,000250: 20,3732 30007 CA 7
046579,000251: 20,3733 55666 TS BETA/180 # NECESSARY: NO OVFL CORRECTION
046580,000252: 20,3734 34770 CA ONE # INITIALIZE THE TM OF BODY RATES VIA
046581,000253: 20,3735 54305 TS SW/NDX # UPBUFF.
046582,000254:
046583,000255: 20,3736 05362 TC 2PHSCHNG # DOES INHINT/RELINT
046584,000256: 20,3737 40116 OCT 40116 # SAVE TBASE6
046585,000257: 20,3740 05024 OCT 05024
046586,000258: 20,3741 13000 OCT 13000
046587,000259:
046588,000260: 20,3742 01,2336 6P11SPT1 = 6.11SPOT
046589,000261: 20,3742 04655 TC POSTJUMP
046590,000262: # # Page 1069
046591,000263: 20,3743 54327 CADR P62.2
046592,000264:
046593,000265: 20,3744 16017 CM/SWIC1 OCT 16017
046594,000266: 20,3745 4355 CM/SWIC2 = TEN # 00012 : CM/DSTBY, LATSW
046595,000267: 20,3745 77766 -CDUT+1 OCT 77766
046596,000268: 20,3746 0112 EBANK= T5LOC
046597,000269: 20,3746 03226 12060 T5IDLER1 2CADR T5IDLOC
046598,000270:
046599,000271: # # Page 1070
046600,000272:
046601,000273: # THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES
046602,000274: # XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQUIREMENT: TEMPORARILY ERASE. JETEM, JETEM +1
046603,000275:
046604,000276: # SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS,
046605,000277: # 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
046606,000278: # ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER, IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS
046607,000279: # STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE.
046608,000280: # THIS IS NECESSARY UNDER THE GROUND-RULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS.
046609,000281:
046610,000282: 20,3750 E6,1661 EBANK= AOG
046611,000283: 15,2000 SETLOC ETRYDAP
046612,000284: 15,2000 BANK
046613,000285:
046614,000286: 15,2165 COUNT* $$/DAPEN
046615,000287: 15,2165 31663 BODYRATE CA AMG # THESE ARE 2S COMPL NOS, BUT USE ANYWAY.
046616,000288: 15,2166 05060 TC SPCOS
046617,000289: 15,2167 55511 TS COSM
046618,000290:
046619,000291: 15,2170 31661 CA AOG # C(AOG) = AOG/180
046620,000292: 15,2171 05061 TC SPSIN # SINO
046621,000293: 15,2172 55512 TS SINO # SINO = SIN(AOG)
046622,000294:
046623,000295: 15,2173 00006 EXTEND
046624,000296: 15,2174 71511 MP COSM
046625,000297: 15,2175 55514 TS SINOCOSM # SO CM
046626,000298:
046627,000299: 15,2176 31661 CA AOG
046628,000300: 15,2177 05060 TC SPCOS # COSO
046629,000301: 15,2200 55513 TS COSO
046630,000302:
046631,000303: 15,2201 00006 EXTEND
046632,000304: 15,2202 71511 MP COSM
046633,000305: 15,2203 55515 TS COSOCOSM # CO CM
046634,000306:
046635,000307: # PITCHDOT: Q TCDU/180 = IDOT TCDU/180 COSO COSM + MDOT TCDU/180 SINO
046636,000308:
046637,000309: 15,2204 41677 CS -DELAMG
046638,000310: 15,2205 00006 EXTEND
046639,000311: 15,2206 71512 MP SINO
046640,000312: 15,2207 53721 DXCH JETEM # 2 LOCS _
046641,000313: 15,2210 41676 CS -DELAIG
046642,000314: 15,2211 00006 EXTEND
046643,000315: 15,2212 71515 MP COSOCOSM
046644,000316: 15,2213 21721 DAS JETEM
046645,000317: 15,2214 31720 CA JETEM
046646,000318: 15,2215 57707 XCH OLDELQ
046647,000319: 15,2216 02157 TC RATEAVG
046648,000320: 15,2217 55702 TS QREL # PITCHDOT = Q TCDU/180
046649,000321:
046650,000322: # # Page 1071
046651,000323:
046652,000324: # YAWDOT: R TCDU/180 = -IDOT TCDU/180 COSM SINO + MDOT TCDU/180 COSO
046653,000325:
046654,000326: 15,2220 41677 CS -DELAMG
046655,000327: 15,2221 00006 EXTEND
046656,000328: 15,2222 71513 MP COSO
046657,000329: 15,2223 53721 DXCH JETEM
046658,000330: 15,2224 31676 CA -DELAIG
046659,000331: 15,2225 00006 EXTEND
046660,000332: 15,2226 71514 MP SINOCOSM
046661,000333: 15,2227 21721 DAS JETEM
046662,000334: 15,2230 31720 CA JETEM
046663,000335: 15,2231 57710 XCH OLDELR
046664,000336: 15,2232 02157 TC RATEAVG
046665,000337: 15,2233 55703 TS RREL # YAWDOT = R TCDU/180
046666,000338:
046667,000339: # ROLLDOT: P TCDU/180 = ODOT TCDU/180 + IDOT TCDU/180 SINM
046668,000340:
046669,000341: 15,2234 31663 CA AMG
046670,000342: 15,2235 05061 TC SPSIN
046671,000343: 15,2236 55510 TS SINM
046672,000344:
046673,000345: 15,2237 00006 EXTEND
046674,000346: 15,2240 71676 MP -DELAIG
046675,000347: 15,2241 55720 TS JETEM
046676,000348: 15,2242 34772 CA ZERO
046677,000349: 15,2243 20001 DDOUBL # ROUND L INTO A
046678,000350: 15,2244 61675 AD -DELAOG
046679,000351: 15,2245 61720 AD JETEM
046680,000352: 15,2246 40000 CS A
046681,000353: 15,2247 55720 TS JETEM
046682,000354: 15,2250 57706 XCH OLDELP
046683,000355: 15,2251 02157 TC RATEAVG
046684,000356: 15,2252 55701 TS PREL # ROLLDOT = P TCDU/180
046685,000357:
046686,000358: # IF GAMDOT < 0.5 DEG/SEC, THEN GAMDOT =0
046687,000359:
046688,000360: 15,2253 11723 CCS GAMDOT
046689,000361: 15,2254 02256 TC +2
046690,000362: 15,2255 02300 TC NOGAMDUT
046691,000363: 15,2256 41664 CS ROLL/180
046692,000364: 15,2257 05061 TC SPSIN
046693,000365: 15,2260 00006 EXTEND
046694,000366: 15,2261 71723 MP GAMDOT
046695,000367: 15,2262 55721 TS JETEM +1 # -SR GAMDOT
046696,000368: 15,2263 00006 EXTEND
046697,000369: 15,2264 72626 MP SINTRIM # SIN(-20) (FOR NOMINAL L/D = .3)
046698,000370: 15,2265 27701 ADS PREL # PREL TCDU/180=(P-SALF SR GAMDOT)TCDU/180
046699,000371:
046700,000372: 15,2266 31664 CA ROLL/180
046701,000373: 15,2267 05060 TC SPCOS
046702,000374: # # Page 1072
046703,000375: 15,2270 40000 COM
046704,000376: 15,2271 00006 EXTEND
046705,000377: 15,2272 71723 MP GAMDOT
046706,000378: 15,2273 27702 ADS QREL # QREL TCDU/180=(Q-CR GAMDOT) TCDU/180
046707,000379:
046708,000380: 15,2274 41721 CS JETEM +1 # B( ) = -SR GAMDOT
046709,000381: 15,2275 00006 EXTEND
046710,000382: 15,2276 72627 MP COSTRIM # COS(-20) (FOR NOMINAL L/D = .3)
046711,000383: 15,2277 27703 ADS RREL # RREL TCDU/180=(R+CALF SR GAMDOT)TCDU/180
046712,000384:
046713,000385: 15,2300 34755 NOGAMDUT CA CMARMBIT # CMDAPARM = 93D BIT 12
046714,000386: 15,2301 70102 MASK CM/FLAGS
046715,000387: 15,2302 00006 EXTEND
046716,000388: 15,2303 15314 STBYDUMP BZF TASKOVER # DAP NOT ARMED.
046717,000389:
046718,000390: 15,2304 34750 CA POSMAX # PICK UP AT ATTRATES IN 10 MS OR SO.
046719,000391: 15,2305 54030 TS TIME5
046720,000392:
046721,000393: 15,2306 00006 EXTEND
046722,000394: 15,2307 32313 DCA ATDOTCAD
046723,000395: 15,2310 52113 DXCH T5LOC
046724,000396: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
046725,000397:
046726,000398: 15,2311 05314 TC TASKOVER
046727,000399:
046728,000400: 15,2312 E6,1661 EBANK= AOG
046729,000401: 15,2312 02314 32066 ATDOTCAD 2CADR ATTRATES
046730,000402:
046731,000403: # # Page 1073
046732,000404:
046733,000405: # CALCULATE BODY ATTITUDE RATES AND INTEGRATE TO OBTAIN ATTITUDE ANGLES.
046734,000406:
046735,000407: # CB PHIDOT TCDU/180 = (CA PREL + SA RREL) TCDU/180
046736,000408: # BETADOT TCDU/180 = (-SA PREL + CA RREL) TCDU/180
046737,000409: # ALFADOT TCDU = (QREL + SB PHIDOT) TCDU/180
046738,000410:
046739,000411: 15,2314 22016 ATTRATES LXCH BANKRUPT # CONTINUE HERE VIA T5
046740,000412: 15,2315 00006 EXTEND # TASK MAY BE SKIPPED AT RESTART.
046741,000413: 15,2316 22012 QXCH QRUPT
046742,000414: 15,2317 30021 CA SR
046743,000415: 15,2320 60000 DOUBLE
046744,000416: 15,2321 55623 TS CM/SAVE
046745,000417: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
046746,000418:
046747,000419: 15,2322 31702 CA QREL
046748,000420: 15,2323 61665 AD ALFA/180
046749,000421: 15,2324 02151 TC ANGOVCOR
046750,000422: 15,2325 55665 TS ALFA/180
046751,000423: 15,2326 05060 TC SPCOS
046752,000424: 15,2327 55506 TS CALFA # CALFA
046753,000425: 15,2330 55705 TS PHIDOT
046754,000426:
046755,000427: 15,2331 00006 EXTEND
046756,000428: 15,2332 71701 MP PREL
046757,000429: 15,2333 57705 XCH PHIDOT # CA PREL
046758,000430: 15,2334 00006 EXTEND
046759,000431: 15,2335 71703 MP RREL # CA RREL
046760,000432: 15,2336 55704 TS BETADOT
046761,000433:
046762,000434: 15,2337 31665 CA ALFA/180
046763,000435: 15,2340 05061 TC SPSIN
046764,000436: 15,2341 55507 TS SALFA # SIN(ALFA)
046765,000437:
046766,000438: 15,2342 00006 EXTEND
046767,000439: 15,2343 71703 MP RREL # SA RREL
046768,000440: 15,2344 27705 ADS PHIDOT # CB PHIDOT, SAVED.
046769,000441:
046770,000442: 15,2345 41507 CS SALFA
046771,000443: 15,2346 00006 EXTEND
046772,000444: 15,2347 71701 MP PREL
046773,000445: 15,2350 27704 ADS BETADOT # SAVE BETADOT TCDU/180
046774,000446: 15,2351 27666 ADS BETA/180 # BETA DONE.
046775,000447:
046776,000448: 15,2352 05061 TC SPSIN
046777,000449: 15,2353 00006 EXTEND
046778,000450: 15,2354 71705 MP PHIDOT # NEGLECT CB IN CB PHIDOT
046779,000451: 15,2355 61665 AD ALFA/180
046780,000452: 15,2356 02151 TC ANGOVCOR
046781,000453: 15,2357 55665 TS ALFA/180 # ALFA DONE.
046782,000454: # # Page 1074
046783,000455: 15,2360 40000 COM
046784,000456: 15,2361 61603 AD ALFACOM
046785,000457: 15,2362 02151 TC ANGOVCOR # JUST IN CASE ...
046786,000458: 15,2363 55477 TS AK1
046787,000459: 15,2364 55572 TS QAXERR # FOR PITCH FDAI AND EDIT.
046788,000460:
046789,000461: 15,2365 31705 CA PHIDOT # PHIDOT TCDU/180, NEGLECTING CB
046790,000462: 15,2366 61664 AD ROLL/180
046791,000463: 15,2367 02151 TC ANGOVCOR
046792,000464: 15,2370 55714 TS ROLLTM # ROLL/180 FOR TM.
046793,000465: 15,2371 55664 TS ROLL/180 # ROLL DONE.
046794,000466:
046795,000467: # START YAW AUTOPILOT HERE . RATE DAMPING WITH ENFORCED COORDINATED ROLL MANEUVER.
046796,000468:
046797,000469: 15,2372 41666 CS BETA/180 # IF IN ATM, SAVE 'RAXERR' FOR TM DNLST.
046798,000470: 15,2373 61604 AD BETACOM
046799,000471: 15,2374 55573 TS RAXERR # IF OUTSIDE ATM, USE TM REGISTER 'RAXERR'
046800,000472: # AS A TEMPORARY. (DAP OPERATION IS IN INTERRUPT, SO
046801,000473: # IS OK.) FINAL C(RAXERR) AT END OF DAP CYCLE WILL
046802,000474: # BE R-AXIS ERROR.
046803,000475:
046804,000476: 15,2375 34766 CA .05GBIT # .05GSW = 102D BIT3 SW=0, LESS .05G
046805,000477: 15,2376 70102 MASK CM/FLAGS # SWITCH =1, GREATER THAN .05 G
046806,000478: 15,2377 00006 EXTEND
046807,000479: 15,2400 12466 BZF EXDAP # IF G LESS THAN .05
046808,000480: 15,2401 44770 CS ONE # IF G GEQ THAN .05
046809,000481: 15,2402 55700 TS CMDAPMOD # SAVE -1 FOR USE IN CM/RCS
046810,000482:
046811,000483: 15,2403 55477 TS AK1 # TO ZERO PITCH AND YAW FDAI NEEDLES
046812,000484: 15,2404 55500 TS AK2 # IN ATM. (MODE =-1)
046813,000485:
046814,000486: 15,2405 41701 CS PREL # YAW ERROR = RREL - PREL TAN(ALFA)
046815,000487: 15,2406 00006 EXTEND
046816,000488: 15,2407 72626 MP SINTRIM # LET SIN(-20) BE APPROX FOR TAN(-20)
046817,000489: 15,2410 61703 AD RREL
046818,000490: 15,2411 02456 TC 2D/SDZ # GO TEST DZ. GET TAG: +0 IF IN DZ
046819,000491: 15,2412 50000 INDEX A # +/- 1 IF NOT
046820,000492: 15,2413 32631 CAF YJETCODE
046821,000493:
046822,000494: 15,2414 55720 TS JETEM
046823,000495:
046824,000496: # START PITCH AUTOPILOT HERE. RATE DAMPING ONLY.
046825,000497:
046826,000498: 15,2415 31702 CA QREL
046827,000499: 15,2416 02456 TC 2D/SDZ
046828,000500: 15,2417 50000 EXDAPIN INDEX A # COME HERE FROM EX ATM DAP
046829,000501: 15,2420 32634 CAF P/RJCODE
046830,000502: 15,2421 27720 ADS JETEM # COMBINE ALL NEW BITS.
046831,000503:
046832,000504: 15,2422 00006 EXTEND # DOES NOT REQUIRE SAVING OLD CODES.
046833,000505: # # Page 1075
046834,000506: 15,2423 01005 WRITE PYJETS # SET PYCHAN TO DESIRED BIT CONFIG.
046835,000507:
046836,000508: 15,2424 11711 CCS JETAG
046837,000509: 15,2425 02645 TC CM/RCS
046838,000510: 15,2426 03325 TC CM/FDAI
046839,000511: 15,2427 03332 TC CM/FDAIR -1 # (JETAG=-1 EQUIVALENT TO CMDAPMOD=+1)
046840,000512:
046841,000513: # # Page 1076
046842,000514:
046843,000515: # DEAD ZONE LOGIC USED BY ENTRY DIGITAL AUTOPILOTS.
046844,000516:
046845,000517: 15,2430 10000 3DDZ CCS A # YAWLIM=1.0-3/180=16384-273=16111
046846,000518: 15,2431 62624 AD YAWLIM
046847,000519: 15,2432 12462 TCF DZCOM
046848,000520: 15,2433 62624 AD YAWLIM
046849,000521: 15,2434 12463 TCF DZNOCOM
046850,000522:
046851,000523: # BIASED DZ FOR EXT ATM DAP.
046852,000524: 15,2435 55624 BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L.
046853,000525: 15,2436 10000 CCS A # START ERROR DZ.
046854,000526: 15,2437 42623 CS CM/BIAS # = .6/180
046855,000527: 15,2440 12442 TCF +2
046856,000528: 15,2441 32623 CA CM/BIAS
046857,000529: 15,2442 60001 AD L # BIAS THE ERROR.
046858,000530: 15,2443 22002 LXCH Q # SAVE CALLERS RETURN ADDRESS.
046859,000531: 15,2444 02430 TC 3DDZ # GO GENERATE THE ERROR BIT.
046860,000532: 15,2445 52002 DXCH L # BIT TO L, RESTORE CALLERS Q.
046861,000533: 15,2446 11624 4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT
046862,000534: 15,2447 62621 AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE
046863,000535: 15,2450 12452 TCF +2 # JET BITS ACCORDING TO SGN OF RATE.
046864,000536: 15,2451 62621 AD 4D/SLIM
046865,000537: 15,2452 54000 TS A
046866,000538: 15,2453 12455 TCF +2 # RATE OK. CONTINUE
046867,000539: 15,2454 22007 ZL # RATE GEQ 4 D/S. OVER RIDE ERROR BIT
046868,000540: 15,2455 57624 XCH JETEM2 # AND CONTINUE TO GET SIGN.
046869,000541:
046870,000542: 15,2456 10000 2D/SDZ CCS A # COME HERE TO TEST IF A WITHIN 2DEG/S DZ
046871,000543: 15,2457 62622 AD YDOTLIM # 1.0 - YDOT DZ ( OR PDOT)
046872,000544: 15,2460 12463 TCF +3
046873,000545: 15,2461 62622 AD YDOTLIM # YDOT DZ = 2 DEG/SEC
046874,000546: 15,2462 40000 DZCOM COM
046875,000547: 15,2463 55721 DZNOCOM TS JETEM +1 # GENERATE TAG, SET C(A)= -+1 OUTSIDE DZ
046876,000548: 15,2464 34772 CA ZERO # SET C(A) = +0 INSIDE
046877,000549: 15,2465 00002 TC Q
046878,000550:
046879,000551: # # Page 1077
046880,000552:
046881,000553: # EXTRA ATMOSPHERIC DIGITAL AUTOPILOT
046882,000554:
046883,000555: # 1. IF ABS(CALF) -C(45) POS, USE IF CALFA POS, CMDAPMOD= +0
046884,000556: # BETA: YAW ERROR = SGN(CALF) (BETACOM -BETA) IF CALFA NEG, CMDAPMOD= -0
046885,000557: # RATE = BETADOT IF CMDAPMOD = -0, RATE = RREL
046886,000558: # R-AXIS = CONTROL
046887,000559:
046888,000560: # ROLL: ROLL ERROR = SGN(CALF) (ROLLC - ROLL) IF CMDAPMOD = -0, RATE DAMP ONLY.
046889,000561: # RATE = PREL
046890,000562: # P-AXIS = CONTROL
046891,000563:
046892,000564: # 2. IF C(45) GEQ CALFA GEQ -C(45), USE CMDAPMOD = +1
046893,000565: # BETA: ROLL ERROR = SGN(-SALF) (BETACOM -BETA)
046894,000566: # RATE = BETADOT
046895,000567: # P-AXIS = CONTROL
046896,000568:
046897,000569: # ROLL: YAW ERROR = SGN(SALF) (ROLLC -ROLL) RATE DAMP ONLY.
046898,000570: # RATE = RREL
046899,000571: # R-AXIS = CONTROL
046900,000572:
046901,000573: # 3. FOR ALL CASES, USE
046902,000574: # ALFA: PITCH ERROR = (ALFACOM - ALFA)
046903,000575: # RATE = QREL
046904,000576: # Q-AXIS = CONTROL
046905,000577:
046906,000578:
046907,000579:
046908,000580: 15,2466 55700 EXDAP TS CMDAPMOD # +0 FOR NOW
046909,000581: 15,2467 11506 CCS CALFA
046910,000582: 15,2470 62625 AD C45LIM # =1.0-COS(45)
046911,000583: 15,2471 12473 TCF +2
046912,000584: 15,2472 62625 AD C45LIM
046913,000585: 15,2473 54000 TS A
046914,000586: 15,2474 12555 TCF EXDAP2 # HERE IF ABS(CALFA) L COS(45)
046915,000587:
046916,000588: 15,2475 11506 CCS CALFA # |CALFA| > 0.707
046917,000589: 15,2476 12477 TCF +1 # CONTINUE IF POS; GO TO EXDAP4 IF NEG.
046918,000590:
046919,000591: 15,2477 11727 CCS P63FLAG # VALID VALUES ARE: -1, +1, +0.
046920,000592: 15,2500 02513 TC EXDAP4
046921,000593: 15,2501 02503 TC +2
046922,000594: 15,2502 02513 TC EXDAP4
046923,000595: 15,2503 05402 TC PHASCHNG # SINGLE PASS THROUGH HERE.
046924,000596: 15,2504 40334 OCT 40334
046925,000597: 15,2505 01,2170 4P33SPT1 = 4.33SPOT
046926,000598: 15,2505 44770 CS ONE
046927,000599: 15,2506 55727 TS P63FLAG # SET FLAG TO ASSURE SINGLE PASS.
046928,000600: 15,2507 32620 CA NSEC
046929,000601: 15,2510 05233 TC WAITLIST
046930,000602: 15,2511 E6,1661 EBANK= AOG
046931,000603: # # Page 1078
046932,000604: 15,2511 02375 54066 2CADR WAKEP62 # CALL TO TERMINATE P62 IN N SEC.
046933,000605:
046934,000606: # 65 DEG/ 3DEG/SEC = 21 SEC NOMINAL
046935,000607: # TRANSIT TIME FROM ALFA=45 TO ALFA TRIM.
046936,000608:
046937,000609: 15,2513 11711 EXDAP4 CCS JETAG # ROLLJET INTERFACE TEST BETWEEN .1 SEC
046938,000610: 15,2514 12522 TCF EXDAP3 # DAP AND THE 2 SEC CM/RCS DAP
046939,000611: 15,2515 12522 TCF EXDAP3
046940,000612: 15,2516 34772 CA ZERO
046941,000613: 15,2517 00006 EXTEND # TURN OFF ROLL JETS IF ON AND WAIT
046942,000614: 15,2520 01006 WRITE ROLLJETS # UNTIL START OF 2 SEC CM/RCS CYCLE
046943,000615: 15,2521 55711 TS JETAG # RESTORE PROPER VALUE +0
046944,000616:
046945,000617: # ROLL FDAI WILL BE IN ERROR UNTIL NEXT CM/RCS CALL.
046946,000618: 15,2522 11506 EXDAP3 CCS CALFA # HERE IF ABS(CALFA) GEQ COS(45)
046947,000619: 15,2523 31573 CA RAXERR # C()= BETACOM - BETA/180
046948,000620: 15,2524 12530 TCF EXDAP1
046949,000621: 15,2525 44772 CS ZERO
046950,000622: 15,2526 55700 TS CMDAPMOD # FOR CM/RCS
046951,000623: 15,2527 41573 CS RAXERR # COMPLEMENT OF YAW ERROR.
046952,000624: 15,2530 55573 EXDAP1 TS RAXERR # FOR YAW FDAI
046953,000625: 15,2531 55500 TS AK2 # WANT RAXERR FOR TM.
046954,000626: 15,2532 54001 TS L
046955,000627: 15,2533 11700 CCS CMDAPMOD # COORDINATE BETA CONTROL.
046956,000628: 15,2534 02537 TC +3 # C(CMDAPMOD) CAN BE +1, +0, OR -0.
046957,000629: 15,2535 34770 CA ONE # USE BETADOT TO COORD IN MODE +0
046958,000630: 15,2536 50000 INDEX A # OTHERWISE USE RREL.
046959,000631: 15,2537 31703 CA RREL
046960,000632: 15,2540 02435 TC BIASEDZ # GO TEST DZ. +0 IF IN DZ, +-1 OTHERWISE
046961,000633: # IF GEQ 4D/S, SET ERROR BIT IN L =0)
046962,000634: 15,2541 00006 EXTEND
046963,000635: 15,2542 04001 ROR LCHAN # L HAS BETA BIT
046964,000636: 15,2543 50000 INDEX A
046965,000637: 15,2544 32631 CAF YJETCODE
046966,000638: 15,2545 55720 TS JETEM
046967,000639:
046968,000640: 15,2546 31572 CA QAXERR # ALFA ERROR.
046969,000641: 15,2547 54001 TS L
046970,000642: 15,2550 31702 CA QREL # FOR ALFADOT USE QREL
046971,000643: 15,2551 02435 TC BIASEDZ
046972,000644: 15,2552 00006 EXTEND
046973,000645: 15,2553 04001 ROR LCHAN
046974,000646: 15,2554 12417 TCF EXDAPIN # CONTINUE ON IN DAP
046975,000647:
046976,000648: 15,2555 25700 EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1
046977,000649:
046978,000650: 15,2556 44770 CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO
046979,000651: 15,2557 55711 TS JETAG # TO 2 SEC FOR ROLL JETS.( IF CMDAPMOD
046980,000652: # =0 AND JETAG =-1, QUENCHES JETS IF ON)
046981,000653: # # Page 1079
046982,000654: 15,2560 11727 CCS P63FLAG # IF FLAG WAS +1, SET =0.
046983,000655: 15,2561 55727 TS P63FLAG
046984,000656: 15,2562 12563 NOOP
046985,000657:
046986,000658: 15,2563 11507 CCS SALFA # BETA CONTROL WITH P JETS
046987,000659: 15,2564 41573 CS RAXERR # B()= BETACOM - BETA/180
046988,000660: 15,2565 12567 TCF +2
046989,000661: 15,2566 31573 CA RAXERR
046990,000662: 15,2567 55713 TS PAXERR1 # TEMP SAVE. ERROR/180
046991,000663: 15,2570 00006 EXTEND
046992,000664: 15,2571 74753 MP HALF # CM/FDAI EXPECTS ERROR/360.
046993,000665: 15,2572 57713 XCH PAXERR1 # ERROR/360 FOR FDAI, GET ERROR/180.
046994,000666: 15,2573 54001 TS L
046995,000667: 15,2574 11507 CCS SALFA
046996,000668: 15,2575 41704 CS BETADOT # USE BETADOT TO COORD IN MODE +1
046997,000669: 15,2576 02600 TC +2
046998,000670: 15,2577 31704 CA BETADOT
046999,000671: 15,2600 02435 TC BIASEDZ
047000,000672: 15,2601 00006 EXTEND
047001,000673: 15,2602 04001 ROR LCHAN
047002,000674: 15,2603 50000 INDEX A
047003,000675: 15,2604 32634 CAF P/RJCODE # GET ROLL CODE
047004,000676: 15,2605 00006 EXTEND # ROLL CONTROL WITH YAW JETS.
047005,000677: 15,2606 01006 WRITE ROLLJETS # WE'LL SKIP REGULAR ROLL SYST
047006,000678:
047007,000679: 15,2607 31717 CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME.
047008,000680: 15,2610 00006 EXTEND
047009,000681: 15,2611 21664 MSU ROLL/180 # 1'S COMPL, BUT SO WHATS A BIT.?
047010,000682: 15,2612 54001 TS L # FORCE A LIMIT CYCLE IN YAW RATE.
047011,000683: 15,2613 11507 CCS SALFA
047012,000684: 15,2614 30001 CA L # TO REMOVE ITS BIASING EFFECT ON M DOT.
047013,000685: 15,2615 02530 TC EXDAP1
047014,000686: 15,2616 40001 CS L
047015,000687: 15,2617 02530 TC EXDAP1
047016,000688:
047017,000689: 15,2620 04064 NSEC DEC 2100 B-14 # 65 DEG/ 3 DEG/SEC
047018,000690: # IF NSEC IS CHANGED, REMEMBER TO CHANGE 4.33SPOT.
047019,000691: 15,2621 37734 4D/SLIM DEC 16348 B-14 # 1.0 -4/180 D/S = 4/1800 EXP 14
047020,000692: 15,2622 37756 YDOTLIM DEC 16366 B-14 # =1.0 - YDOT DZ= 16384 -18
047021,000693: # YDOT DZ = YDOT TCDU/180 = 2/1800 EXP 14
047022,000694:
047023,000695: 15,2623 00067 CM/BIAS DEC 55 B-14 # =.6/180 B14 = 55
047024,000696: 15,2624 37267 YAWLIM DEC 16055 B-14 # YAWLIM=1.0-3.6/180=16384-329=16055
047025,000697: 15,2625 11277 C45LIM DEC .29289 # =1.0-COS(45)
047026,000698:
047027,000699: 15,2626 65033 SINTRIM DEC -.34202 # SIN(-20) (FOR NOMINAL L/D = .3)
047028,000700: 15,2627 36044 COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3)
047029,000701:
047030,000702: # TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA
047031,000703: # USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY
047032,000704: # # Page 1080
047033,000705: # FROM TRIM, SO USE ON-BOARD ESTIMATES.
047034,000706:
047035,000707:
047036,000708: # JET CODE TABLES FOLLOW _
047037,000709:
047038,000710: 15,2630 00120 OCTAL 00120 # POS Y
047039,000711: 15,2631 00000 YJETCODE OCTAL 00000 # RCS JET BITS
047040,000712: 15,2632 00240 OCTAL 00240 # NEG Y
047041,000713: 15,2633 00005 OCTAL 00005 # POS R JET BITS ALSO POS P JET BITS
047042,000714: 15,2634 00000 P/RJCODE OCTAL 00000
047043,000715: 15,2635 00012 OCTAL 00012 # NEG R ALSO NEG P
047044,000716:
047045,000717: # # Page 1081
047046,000718:
047047,000719: # RCS THIS SECTION IS ENTERED EACH 2 SEC BY WAITLIST CALL FOLLOWING A DELAY OF 1.2 SEC AFTER PIPUP.
047048,000720: # THE TASK SETJTAG SETS A FLAG IN JETAG TO SIGNIFY THAT ROLL UPDATE IS DUE. IN ROUGHLY 5 CS BPDYRATE WILL BE
047049,000721: # EXECUTED AND JETAG WILL CAUSE CM/RCS TO ACT ON ROLLC IMMEDIATELY THEREAFTER. THE
047050,000722: # TASK SAVES THE CALL TIME SO THAT CM/RCS CAN DETERMINE HOW MUCH OF THE 2 SEC INTERVAL REMAINS BEFORE THE
047051,000723: # NEXT UPDATE.
047052,000724:
047053,000725: 15,2636 40025 SETJTAG CS TIME1 # SAVE NOMINAL UPDATE TIME FOR SYNCH
047054,000726: 15,2637 55712 TS TUSED
047055,000727: # THE 5 CS APPEARS IN TIMETST.
047056,000728: 15,2640 34770 CA ONE # RATHER THAN INCR, FOR SAFETY
047057,000729: 15,2641 55711 TS JETAG # SET JETAG=1 TO CAUSE CM/RCS TO BE
047058,000730: 15,2642 05402 TC PHASCHNG
047059,000731: 15,2643 00001 OCT 00001
047060,000732:
047061,000733: 15,2644 05314 TC TASKOVER # EXECUTED AFTER NEXT BODYRATE UPDATE
047062,000734:
047063,000735: # PREDICTIVE ROLL SYSTEM ENTRY STEERING PROVIDES ROLL COMMAND IN LOC ROLLC. THE FOLLOWING CALCULATES THE
047064,000736: # TRAJECTORY TO THE ORIGIN IN PHASE PLANE (X,V). PROGRAM ENTERS JET ON AND OFF CALLS INTO WTLST TO PRODUCE
047065,000737: # THE DESIRED TRAJECTORY. ONLY THOSE CALLS WHICH CAN BE EXECUTED WITHIN THE INTERVAL T (2 SEC) ARE ENTERED IN
047066,000738: # WTLST, THE REMAINDER ARE RECONSIDERED AT NEXT UPDATE.
047067,000739:
047068,000740: 15,2645 4752 HALFPR EQUALS NEG1/2 +1
047069,000741:
047070,000742: # CLEAR JETAG BEFORE TIMETST. SET TO +0 TO SHOW
047071,000743: # ROLL DAP CALLED. IN EVENT OF RESTART, BODYRATE
047072,000744: # MAY MISS A CYCLE. CM/RCS WILL MISS A CYCLE ONLY
047073,000745: # IF A RESTART OCCURS AFTER TIMETST COMMENCES.
047074,000746:
047075,000747: 15,2645 44770 CM/RCS CS ONE
047076,000748: 15,2646 55617 TS JNDX # SET NDX FOR POS ROLL, AND CHANGE LATER
047077,000749:
047078,000750: 15,2647 45004 CS 2T/TCDU # ROLLDOT = DELAOG + DELAIG SINM =DELR
047079,000751: 15,2650 00006 EXTEND
047080,000752: 15,2651 71701 MP PREL # DELR/180 = RDOT TCDU/180 = RDOT/1800
047081,000753: 15,2652 60001 AD L # -2 RDOT T/180 IN L
047082,000754: 15,2653 55613 TS -VT/180 # SAVE -2VT/180 HERE
047083,000755:
047084,000756: 15,2654 41664 CS ROLL/180
047085,000757: 15,2655 54021 TS SR # SAVE (-R/180) /2
047086,000758:
047087,000759: 15,2656 40102 CS CM/FLAGS
047088,000760: 15,2657 74765 MASK LATSWBIT # LATSW = 101D BIT4
047089,000761: 15,2660 00006 EXTEND # ROLL OVER TOP $
047090,000762: 15,2661 12667 BZF GETLCX # NO, TAKE SHORTEST PATH
047091,000763: 15,2662 26102 ADS CM/FLAGS # YES, ENFORCE ROLL OVER TOP.. (BIT =0)
047092,000764: 15,2663 31715 CA ROLLC # (ROLLC/180) /2
047093,000765: 15,2664 60021 AD SR # -(R/180) /2
047094,000766: 15,2665 57614 XCH LCX/360 # DIFFERENT X REQD HERE. DISCONT AT 180.
047095,000767: 15,2666 12727 TCF COMPAT # POSSIBLE OVFL ABOVE.
047096,000768:
047097,000769: # # Page 1082
047098,000770: 15,2667 34753 GETLCX CA POS1/2 # FORM RCOM/360
047099,000771: 15,2670 60000 DOUBLE
047100,000772: 15,2671 61715 AD ROLLC
047101,000773: 15,2672 57614 XCH LCX/360 # IGNORE POSSIBLE OVFL.
047102,000774:
047103,000775: 15,2673 30021 CA SR # FORM -R/360
047104,000776: 15,2674 64751 AD NEG1/2
047105,000777: 15,2675 64751 AD NEG1/2 # IGNORE OVFL
047106,000778: 15,2676 57614 XCH LCX/360 # -R/360
047107,000779: 15,2677 27614 ADS LCX/360 # LCX/360 = RCOM/360 -R/360 RANGE (-1,1)
047108,000780:
047109,000781: # DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL ?
047110,000782:
047111,000783: 15,2700 11613 CCS -VT/180 # TAKE SHORTEST ANGULAR PATH
047112,000784: 15,2701 64770 AD ONE # (BASED ON SINGLE JET ACCELERATION)
047113,000785: 15,2702 12704 TCF +2
047114,000786: 15,2703 64770 AD ONE
047115,000787: 15,2704 00006 EXTEND
047116,000788: 15,2705 71613 MP -VT/180 # C(-VT/180) = -2 VT/180
047117,000789: 15,2706 00006 EXTEND
047118,000790: 15,2707 73375 MP 1/16A1 # = 180/(16 A1 TT)
047119,000791: 15,2710 00006 EXTEND
047120,000792: 15,2711 11506 DV CALFA
047121,000793: 15,2712 54001 TS L
047122,000794: 15,2713 11614 CCS LCX/360
047123,000795: 15,2714 34753 CAF POS1/2
047124,000796: 15,2715 12717 TCF +2
047125,000797: 15,2716 44753 CS POS1/2
047126,000798: 15,2717 61614 AD LCX/360 # IS LCX/360 LESS THAN 180 DEG $
047127,000799: 15,2720 60001 AD L
047128,000800: 15,2721 54001 TS L
047129,000801: 15,2722 12727 TCF COMPAT # YES, GO ON.
047130,000802: 15,2723 50000 TRTAGXPI INDEX A # NO, SHIFT X BY - SGN(X) 2 PI
047131,000803: 15,2724 44752 CS HALFPR # +A YIELDS -1/2
047132,000804: 15,2725 60000 DOUBLE
047133,000805: 15,2726 27614 ADS LCX/360
047134,000806:
047135,000807: 15,2727 31614 COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN.
047136,000808: 15,2730 00006 EXTEND
047137,000809: 15,2731 71506 MP CALFA # COS ALFA
047138,000810: 15,2732 55614 TS LCX/360 # SCALED LCX OK HERE.
047139,000811:
047140,000812: 15,2733 11700 CCS CMDAPMOD # FOUR POSSIBILITIES HERE
047141,000813: 15,2734 03323 TC DZCALL1 # EXIT, SETTING JETAG=0.(C(A)=0)
047142,000814: # ALL 3 AXES ALREADY DONE.
047143,000815: 15,2735 02736 TC +1 # G LESS THAN .05. CA POS. CONTINUE
047144,000816: 15,2736 31614 CA LCX/360 # G GEQ .05. CONTINUE IN CM/RCS
047145,000817: 15,2737 55614 TS LCX/360 # CMDAPMOD=-0. DAMPING ONLY. SET LCX=0
047146,000818: 15,2740 55571 TS ERRORZ # INITIAL ROLL ERROR (UNREFLECTED) FOR TM.
047147,000819: 15,2741 55713 TS PAXERR1 # SAVE LCX FOR FDAI AND EDIT.( /360)
047148,000820: # # Page 1083
047149,000821: 15,2742 31613 CA -VT/180 # GET - 2 VT/180
047150,000822: 15,2743 54021 TS SR
047151,000823: 15,2744 30021 CA SR # GET -VT/180, LEAVE -VT/360 IN SR FOR DZ
047152,000824: 15,2745 55570 TS -VT/180E # DIAGNOSTIC ****
047153,000825: 15,2746 57613 XCH -VT/180 # NOW CONTENTS OF -VT/180 AS LABELED
047154,000826: 15,2747 00006 EXTEND
047155,000827: 15,2750 71613 MP -VT/180 # B(A) = -2VT/180
047156,000828: 15,2751 00006 EXTEND
047157,000829: 15,2752 73375 MP 180/8ATT
047158,000830: 15,2753 55616 TS VSQ/4API
047159,000831:
047160,000832: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 - .5 BUFLIM/360 POS ?
047161,000833:
047162,000834: 15,2754 60000 WHICHALF DOUBLE # FOR SECOND BURN, A1
047163,000835: 15,2755 40000 COM
047164,000836: 15,2756 63401 AD BUFLIM # =BUFLIM/(2 360)
047165,000837: 15,2757 54001 TS L
047166,000838: 15,2760 11613 CCS -VT/180
047167,000839: 15,2761 40001 CS L
047168,000840: 15,2762 12764 TCF +2
047169,000841: 15,2763 30001 CA L
047170,000842: 15,2764 61614 AD LCX/360
047171,000843: 15,2765 63401 AD BUFLIM
047172,000844: 15,2766 00006 EXTEND
047173,000845: 15,2767 63004 BZMF REFLECT # POINT (X,V) IN LHP.
047174,000846:
047175,000847: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 + .5 BUFLIM/360 NEG ?
047176,000848:
047177,000849: 15,2770 40000 COM
047178,000850: 15,2771 63401 AD BUFLIM
047179,000851: 15,2772 63401 AD BUFLIM
047180,000852: 15,2773 00006 EXTEND
047181,000853: 15,2774 63013 BZMF DZ1 # POINT (X,V) IN RHP
047182,000854:
047183,000855: # IS POINT WITHIN VELOCITY DZ?
047184,000856:
047185,000857: 15,2775 44355 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG ?
047186,000858: 15,2776 61616 AD VSQ/4API
047187,000859: 15,2777 00006 EXTEND
047188,000860: 15,3000 63305 BZMF DZCALL # YES.
047189,000861:
047190,000862: # POINT IS IN BUFFER ZONE. THRUST TO X AXIS.
047191,000863:
047192,000864: 15,3001 41617 CS JNDX
047193,000865: 15,3002 55620 TS JNDX1
047194,000866: 15,3003 03066 TC OVRLINE1
047195,000867:
047196,000868: 15,3004 41613 REFLECT CS -VT/180 # REFLECT LHP INTO RHP REL TO TERM CONTR
047197,000869: 15,3005 55613 TS -VT/180
047198,000870: 15,3006 54021 TS SR # -VT/360 SAVED FOR DZ.
047199,000871: # # Page 1084
047200,000872: 15,3007 41614 CS LCX/360
047201,000873: 15,3010 55614 TS LCX/360
047202,000874: 15,3011 41617 CS JNDX
047203,000875: 15,3012 55617 TS JNDX
047204,000876:
047205,000877: # IS VSQ/4API - (VSQ/4API) MIN NEG $
047206,000878:
047207,000879: 15,3013 44355 DZ1 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG $
047208,000880: 15,3014 61616 AD VSQ/4API
047209,000881: 15,3015 00006 EXTEND
047210,000882: 15,3016 63020 BZMF DZ2 # YES, GO TEST FURTHER.
047211,000883: 15,3017 13025 TCF MAXVTEST # NO
047212,000884:
047213,000885: # IS X/360 - XMIN/360 -VT/360 NEG $
047214,000886:
047215,000887: 15,3020 43377 DZ2 CS XMIN/360 # XMIN/360 = 4/360
047216,000888: 15,3021 61614 AD LCX/360
047217,000889: 15,3022 60021 AD SR # C(SR) = -VT/360
047218,000890: 15,3023 00006 EXTEND # IS X/360 - XMIN/360 -VT/360 NEG $
047219,000891: 15,3024 63305 BZMF DZCALL # YES, IN DZ. EXIT SETTING JETAG=0.
047220,000892:
047221,000893: # IS XD/360 - VM/360K - XS/360 POS ?
047222,000894:
047223,000895: 15,3025 41617 MAXVTEST CS JNDX
047224,000896: 15,3026 55620 TS JNDX1 # NOW CAN SET JNDX1 FOR TON2 JETS.
047225,000897: 15,3027 43401 CS XS/360 # XS/360 = (XMIN -YMIN/K) /360
047226,000898: 15,3030 61616 AD VSQ/4API
047227,000899: 15,3031 61614 AD LCX/360
047228,000900: 15,3032 55615 TS XD/360 # XD/360= X/360 +VSQ/4API X INTERCEPT
047229,000901: # BUT C(XD/360) = (XD - XS) /360
047230,000902: 15,3033 63400 AD -VM/360K # X INTERCEPT FOR MAX V (VM)
047231,000903: 15,3034 40000 COM
047232,000904: 15,3035 00006 EXTEND
047233,000905: 15,3036 63044 BZMF MAXVTIM1 # YES, THRUST TO VM
047234,000906: 15,3037 31615 CA XD/360
047235,000907: 15,3040 00006 EXTEND
047236,000908: 15,3041 74753 MP KTRCS
047237,000909: 15,3042 20001 DDOUBL # GO SAVE PREDICTED DRIFTING VELOCITY.
047238,000910:
047239,000911: 15,3043 03047 TC GETON1 # INSURE THAT Q IS POS AS TAG.
047240,000912: 15,3044 00006 MAXVTIM1 EXTEND
047241,000913: 15,3045 22007 ZQ # SET +Q AS TAG
047242,000914: 15,3046 43400 CS -VMT/180
047243,000915: 15,3047 55567 GETON1 TS VDT/180 # VDT/180 OR VMT/180.
047244,000916: 15,3050 61613 AD -VT/180
047245,000917: 15,3051 60000 DOUBLE
047246,000918: 15,3052 00006 EXTEND
047247,000919: 15,3053 73375 MP 180/8ATT
047248,000920: 15,3054 55621 TS TON1 # TON1 / 4T
047249,000921: # # Page 1085
047250,000922: 15,3055 00006 EXTEND
047251,000923: 15,3056 63060 BZMF OVRLINE
047252,000924: 15,3057 03072 TC GETON2 # RESET Q POS IF CAME FROM MAXVTIM1
047253,000925:
047254,000926: 15,3060 10002 OVRLINE CCS Q
047255,000927: 15,3061 13066 TCF OVRLINE1
047256,000928: 15,3062 31620 MAXVTIM2 CA JNDX1 # ABOVE VM, SO THRUST DOWN
047257,000929: 15,3063 55617 TS JNDX
047258,000930: 15,3064 41621 CS TON1
047259,000931: 15,3065 13071 TCF OVRLINE2 +1
047260,000932:
047261,000933: 15,3066 41613 OVRLINE1 CS -VT/180 # DRIFT AT V
047262,000934: 15,3067 55567 TS VDT/180
047263,000935: 15,3070 34772 OVRLINE2 CA ZERO
047264,000936: 15,3071 55621 +1 TS TON1
047265,000937: 15,3072 31567 GETON2 CA VDT/180 # VDT/180, OR VMT/180 OR VT/180
047266,000938: 15,3073 60000 DOUBLE
047267,000939: 15,3074 00006 EXTEND
047268,000940: 15,3075 73375 MP 180/8ATT
047269,000941: 15,3076 60000 DOUBLE # FOR SECOND BURN, A1
047270,000942: 15,3077 55607 TS TON2 # = TON2 / 4T
047271,000943:
047272,000944: 15,3100 40000 COM
047273,000945: 15,3101 00006 EXTEND
047274,000946: 15,3102 63106 BZMF GETOFF
047275,000947: 15,3103 55607 TS TON2
047276,000948: 15,3104 31617 CA JNDX
047277,000949: 15,3105 55620 TS JNDX1
047278,000950:
047279,000951: 15,3106 41607 GETOFF CS TON2 # TON2 / 4T
047280,000952: 15,3107 00006 EXTEND
047281,000953: 15,3110 71567 MP VDT/180 # VDT/180, OR VT/180, OR VMT/180.
047282,000954: 15,3111 55615 TS XD/360 # USE AS TEMP
047283,000955: 15,3112 41567 CS VDT/180
047284,000956: 15,3113 00006 EXTEND
047285,000957: 15,3114 13130 BZF TOFFOVFL # OMIT THE DIVIDE IF DEN = 0.
047286,000958: 15,3115 61613 AD -VT/180
047287,000959: 15,3116 00006 EXTEND
047288,000960: 15,3117 71621 MP TON1 # TON1 /4T
047289,000961: 15,3120 61615 AD XD/360 # TEMP = -VDT/180 / 2 TON2
047290,000962: 15,3121 61614 AD LCX/360
047291,000963: 15,3122 22007 ZL
047292,000964: 15,3123 56001 XCH L # TEST THE DIVIDE
047293,000965: 15,3124 00006 EXTEND
047294,000966: 15,3125 11567 DV VDT/180
047295,000967: 15,3126 00006 EXTEND
047296,000968: 15,3127 13132 BZF GETOFF2 # DIVIDE OK
047297,000969:
047298,000970: 15,3130 35020 TOFFOVFL CA 2JETT # OVFL, USE 2T FOR CONVENIENCE.
047299,000971: 15,3131 13137 TCF TIMSCAL
047300,000972:
047301,000973: # # Page 1086
047302,000974: 15,3132 56001 GETOFF2 XCH L # GET NUMERATOR.
047303,000975: 15,3133 00006 EXTEND
047304,000976: 15,3134 11567 DV VDT/180 # C(A) = TOFF / 2T
047305,000977: 15,3135 00006 EXTEND
047306,000978: 15,3136 75020 MP 2JETT
047307,000979: 15,3137 55605 TIMSCAL TS TOFF # IN CS
047308,000980:
047309,000981: 15,3140 33376 CAF 4JETT
047310,000982: 15,3141 00006 EXTEND
047311,000983: 15,3142 71621 MP TON1 # C(TON1) = TON1 / 4T
047312,000984: 15,3143 55621 TS TON1 # IN CS
047313,000985:
047314,000986: 15,3144 33376 CAF 4JETT
047315,000987: 15,3145 00006 EXTEND
047316,000988: 15,3146 71607 MP TON2 # C(TON2) = TON2 / 4T
047317,000989: 15,3147 55607 TS TON2 # IN CS
047318,000990:
047319,000991: 15,3150 34772 CA ZERO # CANNOT REDO AFTER TIMETST. TUSED GONE
047320,000992: 15,3151 55711 TS JETAG # SET +0 TO SHOW ROLL DAP CALLED.
047321,000993:
047322,000994: # CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE
047323,000995: # INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON NEXT
047324,000996: # AND ON ALTERNATE PASSES THROUGH CM/DUMPR.
047325,000997:
047326,000998: 15,3152 34770 CA ONE
047327,000999: 15,3153 54305 TS SW/NDX
047328,001000:
047329,001001: # # Page 1087
047330,001002:
047331,001003: # TIMETEST SECTION FOR RCS
047332,001004: # ENTER WITH THREE TIME INTERVALS AND THE CORRESPONDING JET CODE INDEXES IN ERASABLE LOCS TON1, TOFF, TON2, JNDX
047333,001005: # JNDX1. SECTION PROCESSES TIME INTERVALS FOR WTLST CALLS AND ASSURES THAT WTLST CALLS ARE MADE ONLY
047334,001006: # (1) FOR POS INTERVALS GREATER THAN A SPECIFIED MINIMUM ( HERE CHOSEN AS 2 CS) AND
047335,001007: # (2) FOR THE INTERVALS THAT WILL BE EXECUTED WITHIN THE TIME REMAINING IN THE SAMPLE INTERVAL T (2 SEC).
047336,001008: # TIMETST ESTABLISHES 6 LOCS CONTAINING JET CODES AND CORRESPONDING TIME INTERVALS. THUS: TON1, T1BITS,
047337,001009: # TOFF, TBITS, TON2, T2BITS. OF THESE THE FIRST 2 LOCS ARE TEMPORARY, FOR IMMEDIATE ACTION, IN GENERAL.
047338,001010: # SECTION JETCALL BELOW PROCESSES THIS LIST.
047339,001011:
047340,001012: 15,3154 30025 TIMETST CA TIME1 # CORRECT FOR POSSIBLE TIME1 OVFL.
047341,001013: 15,3155 64753 AD POS1/2
047342,001014: 15,3156 64753 AD POS1/2 # OVFL GUARANTEED.
047343,001015: 15,3157 27712 ADS TUSED # B(TUSED) =-TUSED =-OLTIME1
047344,001016:
047345,001017: 15,3160 33374 CA -T-3 # =-T +2 -5 (SEE SETJTAG)
047346,001018: # THE +2 REQUIRED FOR PROPER BRANCH.
047347,001019: 15,3161 27712 ADS TUSED # TUSED = TIME(K)-TIME(K-1)-T+2
047348,001020:
047349,001021: 15,3162 44767 CS TWO # USE 2 SINCE TIME3 UNCERTAIN TO 1
047350,001022: 15,3163 61621 AD TON1
047351,001023: 15,3164 00006 EXTEND
047352,001024: 15,3165 63177 BZMF TIMETST1
047353,001025: 15,3166 51617 INDEX JNDX
047354,001026: 15,3167 32634 CAF P/RJCODE
047355,001027: 15,3170 55622 TS T1BITS
047356,001028:
047357,001029: 15,3171 31621 CA TON1
047358,001030: 15,3172 27712 ADS TUSED
047359,001031: 15,3173 00006 EXTEND
047360,001032: 15,3174 63201 BZMF TOFFTEST
047361,001033: 15,3175 34772 CA ZERO
047362,001034: 15,3176 13232 TCF TIMETST3
047363,001035: 15,3177 44770 TIMETST1 CS ONE
047364,001036: 15,3200 55621 TS TON1
047365,001037: 15,3201 44767 TOFFTEST CS TWO
047366,001038: 15,3202 61605 AD TOFF
047367,001039: 15,3203 00006 EXTEND
047368,001040: 15,3204 63213 BZMF TIMETST2
047369,001041: 15,3205 31605 CA TOFF
047370,001042: 15,3206 27712 ADS TUSED
047371,001043: 15,3207 00006 EXTEND
047372,001044: 15,3210 63215 BZMF TON2TEST
047373,001045: 15,3211 34772 CA ZERO
047374,001046: 15,3212 13234 TCF TIMETST4
047375,001047: 15,3213 44770 TIMETST2 CS ONE
047376,001048: 15,3214 55605 TS TOFF
047377,001049: 15,3215 44767 TON2TEST CS TWO
047378,001050: 15,3216 61607 AD TON2
047379,001051: 15,3217 00006 EXTEND
047380,001052: 15,3220 63235 BZMF TIMETST5
047381,001053: # # Page 1088
047382,001054: 15,3221 51620 INDEX JNDX1
047383,001055: 15,3222 32634 CAF P/RJCODE
047384,001056: 15,3223 55610 TS T2BITS
047385,001057: 15,3224 31607 CA TON2
047386,001058: 15,3225 27712 ADS TUSED
047387,001059: 15,3226 00006 EXTEND
047388,001060: 15,3227 63237 BZMF JETCALL1
047389,001061: 15,3230 34772 CA ZERO
047390,001062: 15,3231 13236 TCF TIMETST5 +1
047391,001063: 15,3232 55621 TIMETST3 TS TON1
047392,001064: 15,3233 44770 CS ONE
047393,001065: 15,3234 55605 TIMETST4 TS TOFF
047394,001066: 15,3235 44770 TIMETST5 CS ONE
047395,001067: 15,3236 55607 +1 TS TON2
047396,001068:
047397,001069: # SECTION JETCALL EXAMINES CONTENTS OF JET TIMES IN LIST, ESTABLISHES WTLST ENTRIES, AND EXECUTES CORRESPONDING
047398,001070: # JET CODES. A POSITIVE NZ NUMBER IN A TIME REGISTER INDICATES THAT A WTLST CALL IS TO BE MADE, AND ITS JET BITS
047399,001071: # EXECUTED. A +0 INDICATES THAT THE TIME INTERVAL DOES NOT APPLY, BUT THE CORRESPOINDING JET BITS ARE TO BE
047400,001072: # EXECUTED. A NEG NUMBER INDICATES THAT THE TIME INTERVAL HAS BEEN PROCESSED. IN EVENT OF +0 OR -1, THE
047401,001073: # SUBSEQUENT TIME REGISTER IS EXAMINED FOR POSSIBLE ACTION. THUS JET BITS TO BE EXECUTED MAY COME FROM MORE
047402,001074: # THAN ONE REGISTER.
047403,001075:
047404,001076: 15,3237 34772 JETCALL1 CA ZERO
047405,001077: 15,3240 55611 TS OUTTAG
047406,001078: 15,3241 55612 TS NUJET
047407,001079: 15,3242 55606 TS TBITS
047408,001080: 15,3243 53622 DXCH TON1
047409,001081: 15,3244 10000 CCS A
047410,001082: 15,3245 13262 TCF JETCALL2 # CALL WTLST
047411,001083: 15,3246 23612 JETCALL3 LXCH NUJET # WTLST ENTRIES COME HERE FROM JETCALL
047412,001084: 15,3247 44770 CS ONE
047413,001085: 15,3250 53606 DXCH TOFF
047414,001086: 15,3251 10000 CCS A
047415,001087: 15,3252 13262 TCF JETCALL2 # CALL WTLST
047416,001088: 15,3253 23612 LXCH NUJET
047417,001089: 15,3254 44770 CS ONE
047418,001090: 15,3255 53610 DXCH TON2
047419,001091: 15,3256 10000 CCS A
047420,001092: 15,3257 13262 TCF JETCALL2 # CALL WTLST
047421,001093: 15,3260 23612 LXCH NUJET
047422,001094: 15,3261 03270 TC JETACTN # C(A) = +0
047423,001095: 15,3262 56001 JETCALL2 XCH L # SAVE JET BITS FOR AFTER WTLST CALL
047424,001096: 15,3263 27612 ADS NUJET
047425,001097: 15,3264 56001 XCH L
047426,001098: 15,3265 64770 AD ONE # RESTORE FOR CCS
047427,001099: 15,3266 05223 TC TWIDDLE
047428,001100: 15,3267 03276 ADRES JETCALL
047429,001101: 15,3270 31612 JETACTN CA NUJET # COME HERE WHEN DESIRED JET CODE IS KNOWN
047430,001102: 15,3271 00006 +1 EXTEND # NO NEED TO SAVE OLD CODES
047431,001103: 15,3272 01006 WRITE ROLLJETS # SET RCHAN TO NEW BIT CONFIG.
047432,001104: # # Page 1089
047433,001105: 15,3273 11611 CCS OUTTAG
047434,001106: 15,3274 05314 TC TASKOVER
047435,001107: 15,3275 03333 ROLLDUMP TC CM/FDAIR
047436,001108:
047437,001109: # EDIT DUMP AT ABOVE LOCATION.
047438,001110:
047439,001111: # WAITLIST ENTRIES COME HERE.
047440,001112:
047441,001113: 15,3276 34767 JETCALL CAF CM/DSBIT # CM/DSTBY = BIT2 103D
047442,001114: 15,3277 55611 TS OUTTAG # SIGNIFY WTLST ENTRY
047443,001115: 15,3300 70102 MASK CM/FLAGS # IS SYSTEM DISABLED $
047444,001116: 15,3301 00006 EXTEND
047445,001117: 15,3302 13271 BZF JETACTN +1 # YES, QUENCH ROLL JETS, IF ON AND EXIT.
047446,001118: 15,3303 22007 ZL # NO, CONTINUE.
047447,001119: 15,3304 13246 TCF JETCALL3 # C(A) POS, C(L) = +0
047448,001120:
047449,001121: # DEAD ZONE ENTRIES COME HERE.
047450,001122:
047451,001123: 15,3305 41700 DZCALL CS CMDAPMOD # POSSIBLE VALUES OF CMDAPMOD: -1, +0, -0.
047452,001124: 15,3306 74770 MASK BIT1
047453,001125: 15,3307 54001 TS L # C(L)=0 FOR -0; C(L)=1 FOR -1 OR +0.
047454,001126: 15,3310 50000 INDEX A # ERASABLE ORDER: ROLLTM,ROLLC,ROLLC +1.
047455,001127: 15,3311 31714 CA ROLLTM # GET ROLL/180 OR ROLLC (/360).
047456,001128: 15,3312 50001 INDEX L
047457,001129: 15,3313 54000 TS A # IF C(L)=1, STORE 'ROLLC' IN 'L'.
047458,001130: 15,3314 60001 AD L # (BOTH MUST BE SCALED DEG/180)
047459,001131: 15,3315 02151 TC ANGOVCOR # C(A)=ROLL/180 OR 2 ROLLC .
047460,001132: 15,3316 55717 TS ROLLHOLD # IF CMDAPMOD =-0, SAVE ROLL ANGLE.
047461,001133: # OTHERWISE, SAVE ROLL COMMAND.
047462,001134:
047463,001135: 15,3317 34772 CA ZERO # COME HERE IF IN DZ, AND CANCEL JETS.
047464,001136: 15,3320 00006 EXTEND # INHINT NOT NEEDED HERE.
047465,001137: 15,3321 01006 WRITE ROLLJETS # TURN OFF ALL ROLL JETS.
047466,001138: 15,3322 55567 TS VDT/180 # SET =0 TO SHOW IN DEAD ZONE.
047467,001139: 15,3323 55711 DZCALL1 TS JETAG # COME HERE WITH C(A)=0.
047468,001140: 15,3324 03275 TC ROLLDUMP
047469,001141:
047470,001142: # # Page 1090
047471,001143:
047472,001144: # CM ENTRY FDAI DISPLAY
047473,001145:
047474,001146: # CALCULATE BY INTEGRATION THE ROLL ERROR BETWEEN THE 2 SEC CM/RCS UPDATES . DISPLAY ATTITUDE ERRORS AS FOLLOWS:
047475,001147: # ATM DAP: DISPLAY ONLY ROLL ATTITUDE ERROR.
047476,001148: # EXT ATM DAP: PRESENT 3 ATTITUDE ERRORS RELATIVE TO THE APPROPRIATE BODY AXES EACH .1 SEC.
047477,001149: # ROLL ROLLC-ROLL
047478,001150: # PITCH ALFAC-ALFA
047479,001151: # YAW BETAC-BETA
047480,001152:
047481,001153: # DURING ENTRY, THE FDAI NEEDLES HAVE FULL SCALE OF 67.5 DEG IN ROLL AND 16.875 DEG IN PITCH AND YAW.
047482,001154: # THE SUBROUTINE NEEDLER EXPECTS (ANGLE/180) AND SCALES TO 16.875 DEG FULL SCALE.
047483,001155:
047484,001156: # COME HERE EACH .1 SEC. (CMDAPMOD=+1 COMES BELOW)
047485,001157: 15,3325 41705 CM/FDAI CS PHIDOT # INTEGRATE ROLL ERROR 'TWEEN 2SEC UPDATES
047486,001158: 15,3326 00006 EXTEND
047487,001159: 15,3327 71506 MP CALFA # FOR ASSUMED COORDINATION.
047488,001160: 15,3330 00006 EXTEND
047489,001161: 15,3331 74753 MP HALF
047490,001162: 15,3332 27713 -1 ADS PAXERR1 # ROLL ERROR/360. OVFL OK.
047491,001163:
047492,001164: # EDIT DUMP AT ABOVE LOCATION.
047493,001165: 15,3333 34753 CM/FDAIR CA HALF
047494,001166: 15,3334 00006 EXTEND
047495,001167: 15,3335 71713 MP PAXERR1 # FULL SCALE FOR FDAI (ROLL) IS 67.5 D
047496,001168: 15,3336 55476 TS PAXERR # .25 (ROLL ERROR/180) FOR FDAI NEEDLE.
047497,001169:
047498,001170: # PROGRAM TO FILE BODY RATES FOR TM ON ONE PASS AND
047499,001171: # TO UPDATE THE NEEDLE DISPLAY ON THE NEXT.
047500,001172: # SYNCHRONIZATION WITH CM/RCS IS USED SO THAT THE TM
047501,001173: # IS DONE WITH THE ROLL SYSTEM AND NEEDLES START ON
047502,001174: # THE SUBSEQUENT PASS.
047503,001175:
047504,001176:
047505,001177: 15,3337 40305 CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE
047506,001178: 15,3340 54305 TS SW/NDX
047507,001179: 15,3341 00006 EXTEND # INDEX.
047508,001180: 15,3342 63346 BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO
047509,001181: # ENDBUF.
047510,001182: # INDEX IS POS FOR NEEDLES.
047511,001183:
047512,001184: 15,3343 04714 TC IBNKCALL
047513,001185: 15,3344 42425 CADR NEEDLER
047514,001186:
047515,001187: 15,3345 03364 TC CM/END
047516,001188:
047517,001189: # INDEX IS NEG FOR TM FILE
047518,001190:
047519,001191: 15,3346 66214 CMTMFILE AD THREE
047520,001192: 15,3347 00006 EXTEND
047521,001193: 15,3350 63354 BZMF SAVENDX
047522,001194:
047523,001195: # # Page 1091
047524,001196: 15,3351 30025 CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF.
047525,001197: 15,3352 54304 TS CMTMTIME
047526,001198: 15,3353 44776 CS THIRTEEN # INITIALIZE COUNTER
047527,001199: 15,3354 54305 SAVENDX TS SW/NDX # A NEGATIVE NUMBER.
047528,001200: 15,3355 00006 EXTEND
047529,001201: 15,3356 31702 DCA PREL
047530,001202: 15,3357 50305 INDEX SW/NDX
047531,001203: 15,3360 52324 DXCH ENDBUF -1
047532,001204: 15,3361 31703 CA RREL
047533,001205: 15,3362 50305 INDEX SW/NDX
047534,001206: 15,3363 54325 TS ENDBUF +1
047535,001207:
047536,001208: 15,3364 31623 CM/END CA CM/SAVE
047537,001209: 15,3365 54021 TS SR
047538,001210: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
047539,001211:
047540,001212: 15,3366 00006 EXTEND
047541,001213: 15,3367 33373 DCA T5IDLER2
047542,001214: 15,3370 52113 DXCH T5LOC
047543,001215: 15,3371 05323 TC RESUME
047544,001216:
047545,001217: 15,3372 0112 EBANK= T5LOC
047546,001218: 15,3372 03226 12060 T5IDLER2 2CADR T5IDLOC
047547,001219:
047548,001220: # DEFINE THE FOLLOWING 17D REGISTERS IN UPBUFF TO BE
047549,001221: # USED TO TELEMETER CM VEHICLE BODY RATE INFORMATION.
047550,001222: # THE INFORMATION IS FILED EACH 0.2 SEC, GIVING 15D
047551,001223: # DATA POINTS EACH 1 SEC. TM LIST IS READ TWICE
047552,001224: # EACH 2 SECONDS.
047553,001225:
047554,001226: # THE SEQUENCE IS: SP TIME INITIAL TIME
047555,001227: # SWITCH ALSO INDEX.
047556,001228: # P ROLL RATE
047557,001229: # Q PITCH RATE
047558,001230: # R YAW RATE
047559,001231: # ETC.
047560,001232:
047561,001233: # CMTMTIME = UPBUFF
047562,001234: # SW/NDX = UPBUFF +1
047563,001235: # ENDBUF = UPBUFF +16D
047564,001236:
047565,001237: # # Page 1092
047566,001238:
047567,001239: # SPACER
047568,001240:
047569,001241: # CONSTANTS USED IN THE ROLL CONTROL SYSTEM:
047570,001242: # CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC,
047571,001243: # XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE
047572,001244: # XBUF = 4DEG
047573,001245:
047574,001246: 15,3374 77464 -T-3 DEC -203 B-14 # CS
047575,001247: # VSQMIN DEC .61050061 E-3 # VSQ MIN/4 A PI = 4/(4 (9.1) 180)
047576,001248: 15,3375 4355 VSQMIN = OCT12
047577,001249: 15,3375 5004 2T/TCDU = OCT50 # T/TCDU EXP-14 TCDU = .1SEC
047578,001250: 15,3375 23617 180/8ATT DEC .61813187 # 180/(8 (9.1) 4)=(180/ATT) EXP -3
047579,001251: 15,3376 15,3400 -VMT/180 = -VM/360K # = 20 (2) / 180
047580,001252: 15,3376 5020 2JETT = 4SECS # CS 2 (2) 100 INTEGER
047581,001253: 15,3376 01440 4JETT DEC 800 B-14 # CS 4 (2) 100 INTEGER
047582,001254: 15,3377 00266 XMIN/360 DEC 182 B-14 # XMIN/360 = 4/ 360 EXP 14 = 182 INTEGER
047583,001255: 15,3400 70706 -VM/360K DEC -.22222222 # =-20/( 360 (.25))
047584,001256: 15,3401 15,3375 1/16A1 = 180/8ATT
047585,001257: # 1/16A1 = 180/(16 A1 TT)
047586,001258: # =180/(16 4.55 4)
047587,001259: 15,3401 00133 XS/360 DEC 91 B-14 # =(XMIN +VI (T-1/K))/360 = 2/360 EXP 14
047588,001260: 15,3402 15,3401 BUFLIM = XS/360 # 4/(2 360)
047589,001261:
047590,001262: 15,3402 4753 KTRCS = HALF # KT = (.25) 2 = .5
047591,001263:
047592,001264: # *** END OF ULYSSES .029 ***
End of include-file CM_ENTRY_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc