Source Code
These source-code files are part of a reconstructed copy of Skylark 048, the
Block II Command Module (CM) Apollo Guidance Computer (AGC) software for the
Skylab-2, Skylab-3, Skylab-4, and Apollo-Soyuz Test Project missions.
They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on Skylab-2, part numbers 2010802-541, 2010802-551, 2010802-561, 2010802-571, 2010802-581, and 2010802-591. Access to these modules was provided by the New Mexico Museum of Space History, who we are much indebted to. The source code for the Apollo 15, 16, and 17 software, Artemis 072, was used as a starting point. Heavy use was made of TRW 4900.5-244, Programmed Guidance Equations for Skylark Command Module Earth Orbital Program, dated 14 February 1972. This document contains pseudocode of essentially all of Skylark, using original program labels which have been copied for this source reconstruction. Since only binary dumps (rather than listings) of Skylark are available as source material, all comments and labels are approximate. They have been taken from the Programmed Guidance Equations or other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
043773,000002: ## Copyright: Public domain.
043774,000003: ## Filename: CM_ENTRY_DIGITAL_AUTOPILOT.agc
043775,000004: ## Purpose: A section of Skylark revision 048.
043776,000005: ## It is part of the source code for the Apollo Guidance Computer (AGC)
043777,000006: ## for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
043778,000007: ## this software are available; instead, this file was created via
043779,000008: ## disassembly of dumps of the core rope modules actually flown on
043780,000009: ## Skylab-2. Access to these modules was provided by the New Mexico
043781,000010: ## Museum of Space History.
043782,000011: ## Assembler: yaYUL
043783,000012: ## Contact: Ron Burkey <info@sandroid.org>.
043784,000013: ## Website: www.ibiblio.org/apollo/index.html
043785,000014: ## Mod history: 2023-09-04 MAS Created from Artemis 072.
043786,000015:
043787,000016:
043788,000017: # SUBROUTINE TO READ GYMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2S COMPLEMENT, BUT THE
043789,000018: # DIFFERENCES ARE IN 1S COMP. ENTER AND READ ANGLES EACH .1 SEC.
043790,000019:
043791,000020: # CM/DSTBY = 1 FOR DAP OPERATION
043792,000021: # CM/DSTBY = 0 TO TERMINATE DAP OPERATION.
043793,000022:
043794,000023:
043795,000024: 15,2000 SETLOC ETRYDAP
043796,000025: 15,2000 BANK
043797,000026:
043798,000027: 15,2063 COUNT* $$/DAPEN
043799,000028: 15,2063 E6,1712 EBANK= AOG
043800,000029:
043801,000030: 15,2063 34355 READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO
043802,000031: 15,2064 27756 ADS CM/GYMDT # PIPTIME. (GROUP 6)
043803,000032:
043804,000033: # IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE
043805,000034: # PHASCHNG PROTECTION IS IN CM/DAPIC.
043806,000035:
043807,000036: 15,2065 34774 CA NOIMUDAP # CHECK FOR FINE ALIGN MODE OF CDU.
043808,000037: 15,2066 71324 MASK IMODES33 # (PROTECT AOG/PIP ETC AS WELL AS
043809,000038: 15,2067 00006 EXTEND # GIMBAL DIFFERENCES)
043810,000039: 15,2070 12076 BZF READGYM1 # OK
043811,000040:
043812,000041: 15,2071 45001 CS GYMDIBIT # NOT IN FINE ALIGN, SO IDLE
043813,000042: 15,2072 70102 MASK CM/FLAGS # SET GYMDIFSW =0
043814,000043: 15,2073 54102 TS CM/FLAGS
043815,000044: 15,2074 06000 TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE.
043816,000045: 15,2075 02143 TC CM/GYMIC +2
043817,000046:
043818,000047: 15,2076 30032 READGYM1 CA CDUX
043819,000048: 15,2077 57712 XCH AOG
043820,000049: 15,2100 00006 EXTEND
043821,000050: 15,2101 21712 MSU AOG # -DELAOG=AOG(N-1) - AOG(N)
043822,000051: 15,2102 55726 TS -DELAOG
043823,000052:
043824,000053: 15,2103 30033 CA CDUY
043825,000054: 15,2104 57713 XCH AIG
043826,000055: 15,2105 00006 EXTEND
043827,000056: 15,2106 21713 MSU AIG
043828,000057: 15,2107 55727 TS -DELAIG
043829,000058:
043830,000059: 15,2110 30034 CA CDUZ
043831,000060: 15,2111 57714 XCH AMG
043832,000061: 15,2112 00006 EXTEND
043833,000062: 15,2113 21714 MSU AMG
043834,000063: 15,2114 55730 TS -DELAMG
043835,000064:
043836,000065: 15,2115 30102 DOBRATE? CA CM/FLAGS
043837,000066: 15,2116 75000 MASK CM/DSBIT
043838,000067: 15,2117 10000 CCS A
043839,000068: 15,2120 12135 TCF CKGYMSW
043840,000069:
043841,000070: 15,2121 06000 TC FLUSHJET # TURN OFF ALL JETS
043842,000071:
043843,000072: 15,2122 05415 TC PHASCHNG
043844,000073: 15,2123 00006 OCT 00006 # DEACTIVATE DAP GROUP 6.
043845,000074:
043846,000075: 15,2124 05327 TC TASKOVER
043847,000076:
043848,000077: 15,2125 35001 DOBRATE CA ONE # DO BODYRATE
043849,000078: 15,2126 55751 DOBRATE1 TS JETEM # SKIP BODYRATE.
043850,000079:
043851,000080: 15,2127 34355 CA TEN # KEEP CDU READ GOING.
043852,000081: 15,2130 05236 TC TWIDDLE
043853,000082: 15,2131 02063 ADRES READGYMB
043854,000083: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
043855,000084:
043856,000085: 15,2132 11751 CCS JETEM
043857,000086: 15,2133 02165 TC BODYRATE
043858,000087: 15,2134 05327 TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES)
043859,000088:
043860,000089: 15,2135 40102 CKGYMSW CS CM/FLAGS
043861,000090: 15,2136 75001 MASK GYMDIBIT
043862,000091: 15,2137 00006 EXTEND
043863,000092: 15,2140 12125 BZF DOBRATE
043864,000093: 15,2141 26102 CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0
043865,000094: 15,2142 35003 CAF ZERO
043866,000095: 15,2143 55742 +2 TS JETAG
043867,000096: 15,2144 55737 TS OLDELP
043868,000097: 15,2145 55740 TS OLDELQ
043869,000098: 15,2146 55741 TS OLDELR
043870,000099: 15,2147 55754 TS GAMDOT # NO GYM DIF, PROB NO GAM DIF.
043871,000100: 15,2150 02126 TC DOBRATE1
043872,000101:
043873,000102:
043874,000103: # COME HERE TO CORRECT FOR OVERFLOW IN ANGULAR CALCULATIONS
043875,000104:
043876,000105: 15,2151 54001 ANGOVCOR TS L # THIS COSTS 2 MCT TO USE.
043877,000106: 15,2152 00002 TC Q # NO OVFL
043878,000107: 15,2153 50000 INDEX A
043879,000108: 15,2154 34762 CAF LIMITS
043880,000109: 15,2155 26001 ADS L
043881,000110: 15,2156 00002 TC Q
043882,000111:
043883,000112: 6000 SETLOC FFTAG6
043884,000113: 6000 BANK
043885,000114:
043886,000115: 6000 COUNT* $$/DAPEN
043887,000116: 6000 30007 FLUSHJET CA 7 # COME HERE TO TURN OFF ALL JETS.
043888,000117: 6001 00006 EXTEND
043889,000118: 6002 01006 WRITE ROLLJETS # ZERO CHANNEL 6
043890,000119: 6003 00006 EXTEND
043891,000120: 6004 01005 WRITE PYJETS # ZERO CHANNEL 5
043892,000121: 6005 00002 TC Q
043893,000122:
043894,000123: 15,2000 SETLOC ETRYDAP
043895,000124: 15,2000 BANK
043896,000125:
043897,000126: 15,2157 COUNT* $$/DAPEN
043898,000127: 15,2157 40000 RATEAVG COM # SUBROUTINE TO ESTIMATE RATES IN PRESENCE
043899,000128: 15,2160 61751 AD JETEM # OF CONSTANT ACCELERATION.
043900,000129: 15,2161 00006 EXTEND
043901,000130: 15,2162 74764 MP HALF # DELV (EST) = DELV +(DELV-OLDELV)/2
043902,000131: 15,2163 61751 AD JETEM
043903,000132: 15,2164 00002 TC Q
043904,000133:
043905,000134:
043906,000135: # THESE ARE CALLED FOR THE VARIOUS INITIALIZATIONS NEEDED.
043907,000136:
043908,000137: 20,2000 SETLOC DAPS1
043909,000138: 20,2000 BANK
043910,000139:
043911,000140: 20,3651 COUNT* $$/DAPEN
043912,000141: 20,3651 E6,1712 EBANK= AOG
043913,000142:
043914,000143: 20,3651 04611 CM/DAPON TC E6SETTER
043915,000144:
043916,000145: 20,3652 07722 TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER.
043917,000146: 20,3653 00132 ADRES DAPBIT1 # BIT 15 FLAG 6 CM FLAGS.
043918,000147: 20,3654 07722 TC DOWNFLAG # RESET DAPBIT2
043919,000148: 20,3655 00133 ADRES DAPBIT2 # BIT 14 FLAG 6
043920,000149: 20,3656 00006 EXTEND
043921,000150: 20,3657 33774 DCA T5IDLER1 # DISABLE RCS CALCULATION
043922,000151: 20,3660 52113 DXCH T5LOC
043923,000152: 20,3661 00006 EXTEND
043924,000153: 20,3662 33774 DCA T5IDLER1 # DISABLE RCS JET CALLS
043925,000154: 20,3663 52111 DXCH T6LOC
043926,000155:
043927,000156: 20,3664 06000 TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS.
043928,000157:
043929,000158: 20,3665 47673 CS 13,14,15
043930,000159: 20,3666 71514 MASK DAPDATR1 # SET CONFIG BITS =0 FOR ENTRY
043931,000160: 20,3667 55514 TS DAPDATR1
043932,000161: 20,3670 03674 TC +4
043933,000162:
043934,000163: 20,3671 35023 NOTYET CA .5SEC
043935,000164: 20,3672 04647 TC BANKCALL
043936,000165: 20,3673 01731 CADR DELAYJOB # (DELAYJOB DOES INHINT)
043937,000166: 20,3674 34767 +4 CA GMDIFBIT # GAMDIFSW = 94D BIT11 INITLY=0
043938,000167: 20,3675 70102 MASK CM/FLAGS # IF ZERO, WAIT UNTIL CM/POSE UPDATE.
043939,000168: 20,3676 00006 EXTEND
043940,000169: 20,3677 13671 BZF NOTYET
043941,000170:
043942,000171: 20,3700 45001 CS ONE # ACTIVATE CM/DAP
043943,000172: 20,3701 55530 TS RCSFLAGS # USE BIT3 TO INITIALIZE NEEDLER ON
043944,000173: # NEXT PASS.
043945,000174: 20,3702 55760 TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL
043946,000175: # HEADSUP IS SET IN P62.
043947,000176: # FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62.
043948,000177:
043949,000178: 20,3703 30007 CA 7
043950,000179: 20,3704 55742 TS JETAG
043951,000180: 20,3705 55744 TS PAXERR1 # KEEP NEEDLES ZERO UNTIL DAP UPDATE
043952,000181: # IN CASE CMDAPMOD IS NOT +1.
043953,000182: 20,3706 00004 INHINT
043954,000183: 20,3707 00006 EXTEND
043955,000184: 20,3710 31717 DCA ALFA/180 # DO ATTITUDE HOLD UNTIL KEYBOARD
043956,000185: 20,3711 53635 DXCH ALFACOM # ESTABLISHES HEADSUP.
043957,000186: 20,3712 31715 CA ROLL/180
043958,000187: 20,3713 55750 TS ROLLHOLD # FOR ATTITUDE HOLD IN MODE +1.
043959,000188: 20,3714 00006 EXTEND
043960,000189: 20,3715 74764 MP HALF
043961,000190: 20,3716 55746 TS ROLLC # NOT INTERESTED IN LO WORD.
043962,000191:
043963,000192: 20,3717 40102 CS CM/FLAGS
043964,000193: 20,3720 74766 MASK CMARMBIT # CMDAPARM = 93D BIT12 INITLY=0
043965,000194: 20,3721 26102 ADS CM/FLAGS # SET BIT TO 1.
043966,000195:
043967,000196: 20,3722 40076 CS FLAGWRD2 # SET NODOFLAG TO PREVENT FURTHER
043968,000197: 20,3723 75001 MASK NODOBIT # V 37 ENTRIES
043969,000198: 20,3724 26076 ADS FLAGWRD2
043970,000199:
043971,000200: 20,3725 00003 RELINT
043972,000201:
043973,000202: 20,3726 04666 TC POSTJUMP
043974,000203: 20,3727 54212 CADR P62.1
043975,000204:
043976,000205:
043977,000206: # INITIALIZE CM/DAP. WAITLIST CALL FOR READGYMB. SET SWITCH CM/DSTBY =1
043978,000207: # SO READACCS WILL ENTER A WTLST CALL FOR SETJTAG .
043979,000208: # CMDAPARM = 0, SO ONLY BODY RATE AND ATTITUDE CALCULATIONS ARE DONE.
043980,000209: # SET AVEGEXIT TO CONTINUE AT CM/POSE
043981,000210:
043982,000211: 20,3730 04611 CM/DAPIC TC E6SETTER
043983,000212:
043984,000213: 20,3731 00004 INHINT
043985,000214: 20,3732 41036 CM/DAP2C CS PIPTIME +1
043986,000215: # PRIO OF P62 L PRIO AVG,:PIPTM=PIPTM1
043987,000216: 20,3733 55751 TS JETEM
043988,000217:
043989,000218: 20,3734 34764 CA POS1/2
043990,000219: 20,3735 64764 AD POS1/2
043991,000220: 20,3736 60025 AD TIME1 # OVFL GUARANTEED
043992,000221: 20,3737 27751 ADS JETEM # C(A) = DELTA TIME SINCE PIPUP
043993,000222:
043994,000223: 20,3740 45004 CS FIVE
043995,000224: 20,3741 61751 AD JETEM
043996,000225: 20,3742 10000 CCS A
043997,000226: 20,3743 63772 AD -CDUT+1
043998,000227: 20,3744 13742 TCF -2
043999,000228: 20,3745 13746 NOOP
044000,000229: 20,3746 65001 AD ONE # SEND NO ZERO TO WTLST
044001,000230: 20,3747 55756 TS CM/GYMDT # FOR RESTART
044002,000231: 20,3750 05246 TC WAITLIST
044003,000232: 20,3751 E6,1712 EBANK= AOG
044004,000233: 20,3751 02063 32066 2CADR READGYMB
044005,000234:
044006,000235:
044007,000236: 20,3753 43771 CS CM/SWIC1 # GAMDIFSW, GYMDIFSW, CM/DSTBY
044008,000237: 20,3754 70102 MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP
044009,000238: 20,3755 64355 AD CM/SWIC2 # SET CM/DSTBY, LATSW
044010,000239: # DISABLE ENTRY DISPLAY, SINCE DES. GIMB.
044011,000240: # CALC. (P62.3) GOES TO ENDEXIT.
044012,000241: 20,3756 54102 TS CM/FLAGS
044013,000242:
044014,000243: 20,3757 30007 CA 7
044015,000244: 20,3760 55717 TS BETA/180 # NECESSARY: NO OVFL CORRECTION
044016,000245: 20,3761 35001 CA ONE # INITIALIZE THE TM OF BODY RATES VIA
044017,000246: 20,3762 54305 TS SW/NDX # UPBUFF.
044018,000247:
044019,000248: 20,3763 05375 TC 2PHSCHNG # DOES INHINT/RELINT
044020,000249: 20,3764 40116 OCT 40116 # SAVE TBASE6
044021,000250: 20,3765 05024 OCT 05024
044022,000251: 20,3766 13000 OCT 13000
044023,000252:
044024,000253: 20,3767 01,2344 6P11SPT1 = 6.11SPOT
044025,000254: 20,3767 04666 TC POSTJUMP
044026,000255: 20,3770 54176 CADR P62.2
044027,000256:
044028,000257: 20,3771 16017 CM/SWIC1 OCT 16017
044029,000258: 20,3772 4355 CM/SWIC2 = TEN # 00012 : CM/DSTBY, LATSW
044030,000259: 20,3772 77766 -CDUT+1 OCT 77766
044031,000260: 20,3773 0112 EBANK= T5LOC
044032,000261: 20,3773 03132 12060 T5IDLER1 2CADR T5IDLOC
044033,000262:
044034,000263:
044035,000264: # THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES
044036,000265: # XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQUIREMENT: TEMPORARY ERASE. JETEM, JETEM +1
044037,000266:
044038,000267: # SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS,
044039,000268: # 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
044040,000269: # ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS
044041,000270: # STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE.
044042,000271: # THIS IS NECESSARY UNDER THE GROUNDRULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS.
044043,000272:
044044,000273: 20,3775 E6,1712 EBANK= AOG
044045,000274: 15,2000 SETLOC ETRYDAP
044046,000275: 15,2000 BANK
044047,000276:
044048,000277: 15,2165 COUNT* $$/DAPEN
044049,000278: 15,2165 31714 BODYRATE CA AMG # THESE ARE 2S COMPL NOS, BUT USE ANYWAY.
044050,000279: 15,2166 05073 TC SPCOS
044051,000280: 15,2167 55540 TS COSM
044052,000281:
044053,000282: 15,2170 31712 CA AOG # C(AOG) = AOG/180
044054,000283: 15,2171 05074 TC SPSIN # SINO
044055,000284: 15,2172 55541 TS SINO # SINO = SIN(AOG)
044056,000285:
044057,000286: 15,2173 00006 EXTEND
044058,000287: 15,2174 71540 MP COSM
044059,000288: 15,2175 55543 TS SINOCOSM # SO CM
044060,000289:
044061,000290: 15,2176 31712 CA AOG
044062,000291: 15,2177 05073 TC SPCOS # COSO
044063,000292: 15,2200 55542 TS COSO
044064,000293:
044065,000294: 15,2201 00006 EXTEND
044066,000295: 15,2202 71540 MP COSM
044067,000296: 15,2203 55544 TS COSOCOSM # CO CM
044068,000297:
044069,000298: # PITCHDOT: Q TCDU/180 = IDOT TCDU/180 COSO COSM + MDOT TCDU/180 SINO
044070,000299:
044071,000300: 15,2204 41730 CS -DELAMG
044072,000301: 15,2205 00006 EXTEND
044073,000302: 15,2206 71541 MP SINO
044074,000303: 15,2207 53752 DXCH JETEM # 2 LOCS _
044075,000304: 15,2210 41727 CS -DELAIG
044076,000305: 15,2211 00006 EXTEND
044077,000306: 15,2212 71544 MP COSOCOSM
044078,000307: 15,2213 21752 DAS JETEM
044079,000308: 15,2214 31751 CA JETEM
044080,000309: 15,2215 57740 XCH OLDELQ
044081,000310: 15,2216 02157 TC RATEAVG
044082,000311: 15,2217 55733 TS QREL # PITCHDOT = Q TCDU/180
044083,000312:
044084,000313:
044085,000314: # YAWDOT: R TCDU/180 = -IDOT TCDU/180 COSM SINO + MDOT TCDU/180 COSO
044086,000315:
044087,000316: 15,2220 41730 CS -DELAMG
044088,000317: 15,2221 00006 EXTEND
044089,000318: 15,2222 71542 MP COSO
044090,000319: 15,2223 53752 DXCH JETEM
044091,000320: 15,2224 31727 CA -DELAIG
044092,000321: 15,2225 00006 EXTEND
044093,000322: 15,2226 71543 MP SINOCOSM
044094,000323: 15,2227 21752 DAS JETEM
044095,000324: 15,2230 31751 CA JETEM
044096,000325: 15,2231 57741 XCH OLDELR
044097,000326: 15,2232 02157 TC RATEAVG
044098,000327: 15,2233 55734 TS RREL # YAWDOT = R TCDU/180
044099,000328:
044100,000329: # ROLLDOT: P TCDU/180 = ODOT TCDU/180 + IDOT TCDU/180 SINM
044101,000330:
044102,000331: 15,2234 31714 CA AMG
044103,000332: 15,2235 05074 TC SPSIN
044104,000333: 15,2236 55537 TS SINM
044105,000334:
044106,000335: 15,2237 00006 EXTEND
044107,000336: 15,2240 71727 MP -DELAIG
044108,000337: 15,2241 55751 TS JETEM
044109,000338: 15,2242 35003 CA ZERO
044110,000339: 15,2243 20001 DDOUBL # ROUND L INTO A
044111,000340: 15,2244 61726 AD -DELAOG
044112,000341: 15,2245 61751 AD JETEM
044113,000342: 15,2246 40000 CS A
044114,000343: 15,2247 55751 TS JETEM
044115,000344: 15,2250 57737 XCH OLDELP
044116,000345: 15,2251 02157 TC RATEAVG
044117,000346: 15,2252 55732 TS PREL # ROLLDOT = P TCDU/180
044118,000347:
044119,000348: # IF GAMDOT < 0.5 DEG/SEC, THEN GAMDOT =0
044120,000349:
044121,000350: 15,2253 11754 CCS GAMDOT
044122,000351: 15,2254 02256 TC +2
044123,000352: 15,2255 02300 TC NOGAMDUT
044124,000353: 15,2256 41715 CS ROLL/180
044125,000354: 15,2257 05074 TC SPSIN
044126,000355: 15,2260 00006 EXTEND
044127,000356: 15,2261 71754 MP GAMDOT
044128,000357: 15,2262 55752 TS JETEM +1 # -SR GAMDOT
044129,000358: 15,2263 00006 EXTEND
044130,000359: 15,2264 72626 MP SINTRIM # SIN(-20) (FOR NOMINAL L/D = .3)
044131,000360: 15,2265 27732 ADS PREL # PREL TCDU/180=(P-SALF SR GAMDOT)TCDU/180
044132,000361:
044133,000362: 15,2266 31715 CA ROLL/180
044134,000363: 15,2267 05073 TC SPCOS
044135,000364: 15,2270 40000 COM
044136,000365: 15,2271 00006 EXTEND
044137,000366: 15,2272 71754 MP GAMDOT
044138,000367: 15,2273 27733 ADS QREL # QREL TCDU/180=(Q-CR GAMDOT) TCDU/180
044139,000368:
044140,000369: 15,2274 41752 CS JETEM +1 # B( ) = -SR GAMDOT
044141,000370: 15,2275 00006 EXTEND
044142,000371: 15,2276 72627 MP COSTRIM # COS(-20) (FOR NOMINAL L/D = .3)
044143,000372: 15,2277 27734 ADS RREL # RREL TCDU/180=(R+CALF SR GAMDOT)TCDU/180
044144,000373:
044145,000374: 15,2300 34766 NOGAMDUT CA CMARMBIT # CMDAPARM = 93D BIT 12
044146,000375: 15,2301 70102 MASK CM/FLAGS
044147,000376: 15,2302 00006 EXTEND
044148,000377: 15,2303 15327 STBYDUMP BZF TASKOVER # DAP NOT ARMED.
044149,000378:
044150,000379: 15,2304 34761 CA POSMAX # PICK UP AT ATTRATES IN 10 MS OR SO.
044151,000380: 15,2305 54030 TS TIME5
044152,000381:
044153,000382: 15,2306 00006 EXTEND
044154,000383: 15,2307 32313 DCA ATDOTCAD
044155,000384: 15,2310 52113 DXCH T5LOC
044156,000385: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
044157,000386:
044158,000387: 15,2311 05327 TC TASKOVER
044159,000388:
044160,000389: 15,2312 E6,1712 EBANK= AOG
044161,000390: 15,2312 02314 32066 ATDOTCAD 2CADR ATTRATES
044162,000391:
044163,000392:
044164,000393: # CALCULATE BODY ATTITUDE RATES AND INTEGRATE TO OBTAIN ATTITUDE ANGLES.
044165,000394:
044166,000395: # CB PHIDOT TCDU/180 = (CA PREL + SA RREL) TCDU/180
044167,000396: # BETADOT TCDU/180 = (-SA PREL + CA RREL) TCDU/180
044168,000397: # ALFADOT TCDU = (QREL + SB PHIDOT) TCDU/180
044169,000398:
044170,000399: 15,2314 22016 ATTRATES LXCH BANKRUPT # CONTINUE HERE VIA T5
044171,000400: 15,2315 00006 EXTEND # TASK MAY BE SKIPPED AT RESTART.
044172,000401: 15,2316 22012 QXCH QRUPT
044173,000402: 15,2317 30021 CA SR
044174,000403: 15,2320 60000 DOUBLE
044175,000404: 15,2321 55654 TS CM/SAVE
044176,000405: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
044177,000406:
044178,000407: 15,2322 31733 CA QREL
044179,000408: 15,2323 61716 AD ALFA/180
044180,000409: 15,2324 02151 TC ANGOVCOR
044181,000410: 15,2325 55716 TS ALFA/180
044182,000411: 15,2326 05073 TC SPCOS
044183,000412: 15,2327 55535 TS CALFA # CALFA
044184,000413: 15,2330 55736 TS PHIDOT
044185,000414:
044186,000415: 15,2331 00006 EXTEND
044187,000416: 15,2332 71732 MP PREL
044188,000417: 15,2333 57736 XCH PHIDOT # CA PREL
044189,000418: 15,2334 00006 EXTEND
044190,000419: 15,2335 71734 MP RREL # CA RREL
044191,000420: 15,2336 55735 TS BETADOT
044192,000421:
044193,000422: 15,2337 31716 CA ALFA/180
044194,000423: 15,2340 05074 TC SPSIN
044195,000424: 15,2341 55536 TS SALFA # SIN(ALFA)
044196,000425:
044197,000426: 15,2342 00006 EXTEND
044198,000427: 15,2343 71734 MP RREL # SA RREL
044199,000428: 15,2344 27736 ADS PHIDOT # CB PHIDOT, SAVED.
044200,000429:
044201,000430: 15,2345 41536 CS SALFA
044202,000431: 15,2346 00006 EXTEND
044203,000432: 15,2347 71732 MP PREL
044204,000433: 15,2350 27735 ADS BETADOT # SAVE BETADOT TCDU/180
044205,000434: 15,2351 27717 ADS BETA/180 # BETA DONE.
044206,000435:
044207,000436: 15,2352 05074 TC SPSIN
044208,000437: 15,2353 00006 EXTEND
044209,000438: 15,2354 71736 MP PHIDOT # NEGLECT CB IN CB PHIDOT
044210,000439: 15,2355 61716 AD ALFA/180
044211,000440: 15,2356 02151 TC ANGOVCOR
044212,000441: 15,2357 55716 TS ALFA/180 # ALFA DONE.
044213,000442: 15,2360 40000 COM
044214,000443: 15,2361 61634 AD ALFACOM
044215,000444: 15,2362 02151 TC ANGOVCOR # JUST IN CASE ...
044216,000445: 15,2363 55526 TS AK1
044217,000446: 15,2364 55623 TS QAXERR # FOR PITCH FDAI AND EDIT.
044218,000447:
044219,000448: 15,2365 31736 CA PHIDOT # PHIDOT TCDU/180, NEGLECTING CB
044220,000449: 15,2366 61715 AD ROLL/180
044221,000450: 15,2367 02151 TC ANGOVCOR
044222,000451: 15,2370 55745 TS ROLLTM # ROLL/180 FOR TM.
044223,000452: 15,2371 55715 TS ROLL/180 # ROLL DONE.
044224,000453:
044225,000454: # START YAW AUTOPILOT HERE . RATE DAMPING WITH ENFORCED COORDINATED ROLL MANEUVER.
044226,000455:
044227,000456: 15,2372 41717 CS BETA/180 # IF IN ATM, SAVE 'RAXERR' FOR TM DNLST.
044228,000457: 15,2373 61635 AD BETACOM
044229,000458: 15,2374 55624 TS RAXERR # IF OUTSIDE ATM, USE TM REGISTER 'RAXERR'
044230,000459: # AS A TEMPORARY. (DAP OPERATION IS IN INTERRUPT, SO
044231,000460: # IS OK.) FINAL C(RAXERR) AT END OF DAP CYCLE WILL
044232,000461: # BE R-AXIS ERROR.
044233,000462:
044234,000463: 15,2375 34777 CA .05GBIT # .05GSW = 102D BIT3 SW=0, LESS .05G
044235,000464: 15,2376 70102 MASK CM/FLAGS # SWITCH =1, GREATER THAN .05 G
044236,000465: 15,2377 00006 EXTEND
044237,000466: 15,2400 12466 BZF EXDAP # IF G LESS THAN .05
044238,000467: 15,2401 45001 CS ONE # IF G GEQ THAN .05
044239,000468: 15,2402 55731 TS CMDAPMOD # SAVE -1 FOR USE IN CM/RCS
044240,000469:
044241,000470: 15,2403 55526 TS AK1 # TO ZERO PITCH AND YAW FDAI NEEDLES
044242,000471: 15,2404 55527 TS AK2 # IN ATM. (MODE =-1)
044243,000472:
044244,000473: 15,2405 41732 CS PREL # YAW ERROR = RREL - PREL TAN(ALFA)
044245,000474: 15,2406 00006 EXTEND
044246,000475: 15,2407 72626 MP SINTRIM # LET SIN(-20) BE APPROX FOR TAN(-20)
044247,000476: 15,2410 61734 AD RREL
044248,000477: 15,2411 02456 TC 2D/SDZ # GO TEST DZ. GET TAG: +0 IF IN DZ
044249,000478: 15,2412 50000 INDEX A # +/- 1 IF NOT
044250,000479: 15,2413 32631 CAF YJETCODE
044251,000480:
044252,000481: 15,2414 55751 TS JETEM
044253,000482:
044254,000483: # START PITCH AUTOPILOT HERE. RATE DAMPING ONLY.
044255,000484:
044256,000485: 15,2415 31733 CA QREL
044257,000486: 15,2416 02456 TC 2D/SDZ
044258,000487: 15,2417 50000 EXDAPIN INDEX A # COME HERE FROM EX ATM DAP
044259,000488: 15,2420 32634 CAF P/RJCODE
044260,000489: 15,2421 27751 ADS JETEM # COMBINE ALL NEW BITS.
044261,000490:
044262,000491: 15,2422 00006 EXTEND # DOES NOT REQUIRE SAVING OLD CODES.
044263,000492: 15,2423 01005 WRITE PYJETS # SET PYCHAN TO DESIRED BIT CONFIG.
044264,000493:
044265,000494: 15,2424 11742 CCS JETAG
044266,000495: 15,2425 02645 TC CM/RCS
044267,000496: 15,2426 03325 TC CM/FDAI
044268,000497: 15,2427 03332 TC CM/FDAIR -1 # (JETAG=-1 EQUIVALENT TO CMDAPMOD=+1)
044269,000498:
044270,000499:
044271,000500: # DEAD ZONE LOGIC USED BY ENTRY DIGITAL AUTOPILOTS.
044272,000501:
044273,000502: 15,2430 10000 3DDZ CCS A # YAWLIM=1.0-3/180=16384-273=16111
044274,000503: 15,2431 62624 AD YAWLIM
044275,000504: 15,2432 12462 TCF DZCOM
044276,000505: 15,2433 62624 AD YAWLIM
044277,000506: 15,2434 12463 TCF DZNOCOM
044278,000507:
044279,000508: # BIASED DZ FOR EXT ATM DAP.
044280,000509: 15,2435 55655 BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L.
044281,000510: 15,2436 10000 CCS A # START ERROR DZ.
044282,000511: 15,2437 42623 CS CM/BIAS # = .6/180
044283,000512: 15,2440 12442 TCF +2
044284,000513: 15,2441 32623 CA CM/BIAS
044285,000514: 15,2442 60001 AD L # BIAS THE ERROR.
044286,000515: 15,2443 22002 LXCH Q # SAVE CALLERS RETURN ADDRESS.
044287,000516: 15,2444 02430 TC 3DDZ # GO GENERATE THE ERROR BIT.
044288,000517: 15,2445 52002 DXCH L # BIT TO L, RESTORE CALLERS Q.
044289,000518: 15,2446 11655 4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT
044290,000519: 15,2447 62621 AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE
044291,000520: 15,2450 12452 TCF +2 # JET BITS ACCORDING TO SGN OF RATE.
044292,000521: 15,2451 62621 AD 4D/SLIM
044293,000522: 15,2452 54000 TS A
044294,000523: 15,2453 12455 TCF +2 # RATE OK. CONTINUE
044295,000524: 15,2454 22007 ZL # RATE GEQ 4 D/S. OVER RIDE ERROR BIT
044296,000525: 15,2455 57655 XCH JETEM2 # AND CONTINUE TO GET SIGN.
044297,000526:
044298,000527: 15,2456 10000 2D/SDZ CCS A # COME HERE TO TEST IF A WITHIN 2DEG/S DZ
044299,000528: 15,2457 62622 AD YDOTLIM # 1.0 - YDOT DZ ( OR PDOT)
044300,000529: 15,2460 12463 TCF +3
044301,000530: 15,2461 62622 AD YDOTLIM # YDOT DZ = 2 DEG/SEC
044302,000531: 15,2462 40000 DZCOM COM
044303,000532: 15,2463 55752 DZNOCOM TS JETEM +1 # GENERATE TAG, SET C(A)= -+1 OUTSIDE DZ
044304,000533: 15,2464 35003 CA ZERO # SET C(A) = +0 INSIDE
044305,000534: 15,2465 00002 TC Q
044306,000535:
044307,000536:
044308,000537: # EXTRA ATMOSPHERIC DIGITAL AUTOPILOT
044309,000538:
044310,000539: # 1. IF ABS(CALF) -C(45) POS, USE IF CALFA POS, CMDAPMOD= +0
044311,000540: # BETA: YAW ERROR = SGN(CALF) (BETACOM -BETA) IF CALFA NEG, CMDAPMOD= -0
044312,000541: # RATE = BETADOT IF CMDAPMOD = -0, RATE = RREL
044313,000542: # R-AXIS = CONTROL
044314,000543:
044315,000544: # ROLL: ROLL ERROR = SGN(CALF) (ROLLC - ROLL) IF CMDAPMOD = -0, RATE DAMP ONLY.
044316,000545: # RATE = PREL
044317,000546: # P-AXIS = CONTROL
044318,000547:
044319,000548: # 2. IF C(45) GEQ CALFA GEQ -C(45), USE CMDAPMOD = +1
044320,000549: # BETA: ROLL ERROR = SGN(-SALF) (BETACOM -BETA)
044321,000550: # RATE = BETADOT
044322,000551: # P-AXIS = CONTROL
044323,000552:
044324,000553: # ROLL: YAW ERROR = SGN(SALF) (ROLLC -ROLL) RATE DAMP ONLY.
044325,000554: # RATE = RREL
044326,000555: # R-AXIS = CONTROL
044327,000556:
044328,000557: # 3. FOR ALL CASES, USE
044329,000558: # ALFA: PITCH ERROR = (ALFACOM - ALFA)
044330,000559: # RATE = QREL
044331,000560: # Q-AXIS = CONTROL
044332,000561:
044333,000562:
044334,000563:
044335,000564: 15,2466 55731 EXDAP TS CMDAPMOD # +0 FOR NOW
044336,000565: 15,2467 11535 CCS CALFA
044337,000566: 15,2470 62625 AD C45LIM # =1.0-COS(45)
044338,000567: 15,2471 12473 TCF +2
044339,000568: 15,2472 62625 AD C45LIM
044340,000569: 15,2473 54000 TS A
044341,000570: 15,2474 12555 TCF EXDAP2 # HERE IF ABS(CALFA) L COS(45)
044342,000571:
044343,000572: 15,2475 11535 CCS CALFA # |CALFA| > 0.707
044344,000573: 15,2476 12477 TCF +1 # CONTINUE IF POS; GO TO EXDAP4 IF NEG.
044345,000574:
044346,000575: 15,2477 11760 CCS P63FLAG # VALID VALUES ARE: -1, +1, +0.
044347,000576: 15,2500 02513 TC EXDAP4
044348,000577: 15,2501 02503 TC +2
044349,000578: 15,2502 02513 TC EXDAP4
044350,000579: 15,2503 05415 TC PHASCHNG # SINGLE PASS THROUGH HERE.
044351,000580: 15,2504 40334 OCT 40334
044352,000581: 15,2505 01,2176 4P33SPT1 = 4.33SPOT
044353,000582: 15,2505 45001 CS ONE
044354,000583: 15,2506 55760 TS P63FLAG # SET FLAG TO ASSURE SINGLE PASS.
044355,000584: 15,2507 32620 CA NSEC
044356,000585: 15,2510 05246 TC WAITLIST
044357,000586: 15,2511 E6,1712 EBANK= AOG
044358,000587: 15,2511 02244 54066 2CADR WAKEP62 # CALL TO TERMINATE P62 IN N SEC.
044359,000588:
044360,000589: # 65 DEG/ 3DEG/SEC = 21 SEC NOMINAL
044361,000590: # TRANSIT TIME FROM ALFA=45 TO ALFA TRIM.
044362,000591:
044363,000592: 15,2513 11742 EXDAP4 CCS JETAG # ROLLJET INTERFACE TEST BETWEEN .1 SEC
044364,000593: 15,2514 12522 TCF EXDAP3 # DAP AND THE 2 SEC CM/RCS DAP
044365,000594: 15,2515 12522 TCF EXDAP3
044366,000595: 15,2516 35003 CA ZERO
044367,000596: 15,2517 00006 EXTEND # TURN OFF ROLL JETS IF ON AND WAIT
044368,000597: 15,2520 01006 WRITE ROLLJETS # UNTIL START OF 2 SEC CM/RCS CYCLE
044369,000598: 15,2521 55742 TS JETAG # RESTORE PROPER VALUE +0
044370,000599:
044371,000600: # ROLL FDAI WILL BE IN ERROR UNTIL NEXT CM/RCS CALL.
044372,000601: 15,2522 11535 EXDAP3 CCS CALFA # HERE IF ABS(CALFA) GEQ COS(45)
044373,000602: 15,2523 31624 CA RAXERR # C()= BETACOM - BETA/180
044374,000603: 15,2524 12530 TCF EXDAP1
044375,000604: 15,2525 45003 CS ZERO
044376,000605: 15,2526 55731 TS CMDAPMOD # FOR CM/RCS
044377,000606: 15,2527 41624 CS RAXERR # COMPLEMENT OF YAW ERROR.
044378,000607: 15,2530 55624 EXDAP1 TS RAXERR # FOR YAW FDAI
044379,000608: 15,2531 55527 TS AK2 # WANT RAXERR FOR TM.
044380,000609: 15,2532 54001 TS L
044381,000610: 15,2533 11731 CCS CMDAPMOD # COORDINATE BETA CONTROL.
044382,000611: 15,2534 02537 TC +3 # C(CMDAPMOD) CAN BE +1, +0, OR -0.
044383,000612: 15,2535 35001 CA ONE # USE BETADOT TO COORD IN MODE +0
044384,000613: 15,2536 50000 INDEX A # OTHERWISE USE RREL.
044385,000614: 15,2537 31734 CA RREL
044386,000615: 15,2540 02435 TC BIASEDZ # GO TEST DZ. +0 IF IN DZ, +-1 OTHERWISE
044387,000616: # IF GEQ 4D/S, SET ERROR BIT IN L =0)
044388,000617: 15,2541 00006 EXTEND
044389,000618: 15,2542 04001 ROR LCHAN # L HAS BETA BIT
044390,000619: 15,2543 50000 INDEX A
044391,000620: 15,2544 32631 CAF YJETCODE
044392,000621: 15,2545 55751 TS JETEM
044393,000622:
044394,000623: 15,2546 31623 CA QAXERR # ALFA ERROR.
044395,000624: 15,2547 54001 TS L
044396,000625: 15,2550 31733 CA QREL # FOR ALFADOT USE QREL
044397,000626: 15,2551 02435 TC BIASEDZ
044398,000627: 15,2552 00006 EXTEND
044399,000628: 15,2553 04001 ROR LCHAN
044400,000629: 15,2554 12417 TCF EXDAPIN # CONTINUE ON IN DAP
044401,000630:
044402,000631: 15,2555 25731 EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1
044403,000632:
044404,000633: 15,2556 45001 CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO
044405,000634: 15,2557 55742 TS JETAG # TO 2 SEC FOR ROLL JETS.( IF CMDAPMOD
044406,000635: # =0 AND JETAG =-1, QUENCHES JETS IF ON)
044407,000636: 15,2560 11760 CCS P63FLAG # IF FLAG WAS +1, SET =0.
044408,000637: 15,2561 55760 TS P63FLAG
044409,000638: 15,2562 12563 NOOP
044410,000639:
044411,000640: 15,2563 11536 CCS SALFA # BETA CONTROL WITH P JETS
044412,000641: 15,2564 41624 CS RAXERR # B()= BETACOM - BETA/180
044413,000642: 15,2565 12567 TCF +2
044414,000643: 15,2566 31624 CA RAXERR
044415,000644: 15,2567 55744 TS PAXERR1 # TEMP SAVE. ERROR/180
044416,000645: 15,2570 00006 EXTEND
044417,000646: 15,2571 74764 MP HALF # CM/FDAI EXPECTS ERROR/360.
044418,000647: 15,2572 57744 XCH PAXERR1 # ERROR/360 FOR FDAI, GET ERROR/180.
044419,000648: 15,2573 54001 TS L
044420,000649: 15,2574 11536 CCS SALFA
044421,000650: 15,2575 41735 CS BETADOT # USE BETADOT TO COORD IN MODE +1
044422,000651: 15,2576 02600 TC +2
044423,000652: 15,2577 31735 CA BETADOT
044424,000653: 15,2600 02435 TC BIASEDZ
044425,000654: 15,2601 00006 EXTEND
044426,000655: 15,2602 04001 ROR LCHAN
044427,000656: 15,2603 50000 INDEX A
044428,000657: 15,2604 32634 CAF P/RJCODE # GET ROLL CODE
044429,000658: 15,2605 00006 EXTEND # ROLL CONTROL WITH YAW JETS.
044430,000659: 15,2606 01006 WRITE ROLLJETS # WE,LL SKIP REGULAR ROLL SYST
044431,000660:
044432,000661: 15,2607 31750 CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME.
044433,000662: 15,2610 00006 EXTEND
044434,000663: 15,2611 21715 MSU ROLL/180 # 1,S COMPL, BUT SO WHATS A BIT.?
044435,000664: 15,2612 54001 TS L # FORCE A LIMIT CYCLE IN YAW RATE.
044436,000665: 15,2613 11536 CCS SALFA
044437,000666: 15,2614 30001 CA L # TO REMOVE ITS BIASING EFFECT ON M DOT.
044438,000667: 15,2615 02530 TC EXDAP1
044439,000668: 15,2616 40001 CS L
044440,000669: 15,2617 02530 TC EXDAP1
044441,000670:
044442,000671: 15,2620 04064 NSEC DEC 2100 B-14 # 65 DEG/ 3 DEG/SEC
044443,000672: # IF NSEC IS CHANGED, REMEMBER TO CHANGE 4.33SPOT.
044444,000673: 15,2621 37734 4D/SLIM DEC 16348 B-14 # 1.0 -4/180 D/S = 4/1800 EXP 14
044445,000674: 15,2622 37756 YDOTLIM DEC 16366 B-14 # =1.0 - YDOT DZ= 16384 -18
044446,000675: # YDOT DZ = YDOT TCDU/180 = 2/1800 EXP 14
044447,000676:
044448,000677: 15,2623 00067 CM/BIAS DEC 55 B-14 # =.6/180 B14 = 55
044449,000678: 15,2624 37267 YAWLIM DEC 16055 B-14 # YAWLIM=1.0-3.6/180=16384-329=16055
044450,000679: 15,2625 11277 C45LIM DEC .29289 # =1.0-COS(45)
044451,000680:
044452,000681: 15,2626 65033 SINTRIM DEC -.34202 # SIN(-20) (FOR NOMINAL L/D = .3)
044453,000682: 15,2627 36044 COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3)
044454,000683:
044455,000684: # TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA
044456,000685: # USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY
044457,000686: # FROM TRIM, SO USE ON-BOARD ESTIMATES.
044458,000687:
044459,000688:
044460,000689: # JET CODE TABLES FOLLOW _
044461,000690:
044462,000691: 15,2630 00120 OCTAL 00120 # POS Y
044463,000692: 15,2631 00000 YJETCODE OCTAL 00000 # RCS JET BITS
044464,000693: 15,2632 00240 OCTAL 00240 # NEG Y
044465,000694: 15,2633 00005 OCTAL 00005 # POS R JET BITS ALSO POS P JET BITS
044466,000695: 15,2634 00000 P/RJCODE OCTAL 00000
044467,000696: 15,2635 00012 OCTAL 00012 # NEG R ALSO NEG P
044468,000697:
044469,000698:
044470,000699: # RCS THIS SECTION IS ENTERED EACH 2 SEC BY WAITLIST CALL FOLLOWING A DELAY OF 1.2 SEC AFTER PIPUP.
044471,000700: # THE TASK SETJTAG SETS A FLAG IN JETAG TO SIGNIFY THAT ROLL UPDATE IS DUE. IN ROUGHLY 5 CS BPDYRATE WILL BE
044472,000701: # EXECUTED AND JETAG WILL CAUSE CM/RCS TO ACT ON ROLLC IMMEDIATELY THEREAFTER. THE
044473,000702: # TASK SAVES THE CALL TIME SO THAT CM/RCS CAN DETERMINE HOW MUCH OF THE 2 SEC INTERVAL REMAINS BEFORE THE
044474,000703: # NEXT UPDATE.
044475,000704:
044476,000705: 15,2636 40025 SETJTAG CS TIME1 # SAVE NOMINAL UPDATE TIME FOR SYNCH
044477,000706: 15,2637 55743 TS TUSED
044478,000707: # THE 5 CS APPEARS IN TIMETST.
044479,000708: 15,2640 35001 CA ONE # RATHER THAN INCR, FOR SAFETY
044480,000709: 15,2641 55742 TS JETAG # SET JETAG=1 TO CAUSE CM/RCS TO BE
044481,000710: 15,2642 05415 TC PHASCHNG
044482,000711: 15,2643 00001 OCT 00001
044483,000712:
044484,000713: 15,2644 05327 TC TASKOVER # EXECUTED AFTER NEXT BODYRATE UPDATE
044485,000714:
044486,000715: # PREDICTIVE ROLL SYSTEM ENTRY STEERING PROVIDES ROLL COMMAND IN LOC ROLLC. THE FOLLOWING CALCULATES THE
044487,000716: # TRAJECTORY TO THE ORIGIN IN PHASE PLANE (X,V). PROGRAM ENTERS JET ON AND OFF CALLS INTO WTLST TO PRODUCE
044488,000717: # THE DESIRED TRAJECTORY. ONLY THOSE CALLS WHICH CAN BE EXECUTED WITHIN THE INTERVAL T (2 SEC) ARE ENTERED IN
044489,000718: # WTLST, THE REMAINDER ARE RECONSIDERED AT NEXT UPDATE.
044490,000719:
044491,000720: 15,2645 4763 HALFPR EQUALS NEG1/2 +1
044492,000721:
044493,000722: # CLEAR JETAG BEFORE TIMETST. SET TO +0 TO SHOW
044494,000723: # ROLL DAP CALLED. IN EVENT OF RESTART, BODYRATE
044495,000724: # MAY MISS A CYCLE. CM/RCS WILL MISS A CYCLE ONLY
044496,000725: # IF A RESTART OCCURS AFTER TIMETST COMMENCES.
044497,000726:
044498,000727: 15,2645 45001 CM/RCS CS ONE
044499,000728: 15,2646 55650 TS JNDX # SET NDX FOR POS ROLL, AND CHANGE LATER
044500,000729:
044501,000730: 15,2647 45016 CS 2T/TCDU # ROLLDOT = DELAOG + DELAIG SINM =DELR
044502,000731: 15,2650 00006 EXTEND
044503,000732: 15,2651 71732 MP PREL # DELR/180 = RDOT TCDU/180 = RDOT/1800
044504,000733: 15,2652 60001 AD L # -2 RDOT T/180 IN L
044505,000734: 15,2653 55644 TS -VT/180 # SAVE -2VT/180 HERE
044506,000735:
044507,000736: 15,2654 41715 CS ROLL/180
044508,000737: 15,2655 54021 TS SR # SAVE (-R/180) /2
044509,000738:
044510,000739: 15,2656 40102 CS CM/FLAGS
044511,000740: 15,2657 74776 MASK LATSWBIT # LATSW = 101D BIT4
044512,000741: 15,2660 00006 EXTEND # ROLL OVER TOP $
044513,000742: 15,2661 12667 BZF GETLCX # NO, TAKE SHORTEST PATH
044514,000743: 15,2662 26102 ADS CM/FLAGS # YES, ENFORCE ROLL OVER TOP.. (BIT =0)
044515,000744: 15,2663 31746 CA ROLLC # (ROLLC/180) /2
044516,000745: 15,2664 60021 AD SR # -(R/180) /2
044517,000746: 15,2665 57645 XCH LCX/360 # DIFFERENT X REQD HERE. DISCONT AT 180.
044518,000747: 15,2666 12727 TCF COMPAT # POSSIBLE OVFL ABOVE.
044519,000748:
044520,000749: 15,2667 34764 GETLCX CA POS1/2 # FORM RCOM/360
044521,000750: 15,2670 60000 DOUBLE
044522,000751: 15,2671 61746 AD ROLLC
044523,000752: 15,2672 57645 XCH LCX/360 # IGNORE POSSIBLE OVFL.
044524,000753:
044525,000754: 15,2673 30021 CA SR # FORM -R/360
044526,000755: 15,2674 64762 AD NEG1/2
044527,000756: 15,2675 64762 AD NEG1/2 # IGNORE OVFL
044528,000757: 15,2676 57645 XCH LCX/360 # -R/360
044529,000758: 15,2677 27645 ADS LCX/360 # LCX/360 = RCOM/360 -R/360 RANGE (-1,1)
044530,000759:
044531,000760: # DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL ?
044532,000761:
044533,000762: 15,2700 11644 CCS -VT/180 # TAKE SHORTEST ANGULAR PATH
044534,000763: 15,2701 65001 AD ONE # (BASED ON SINGLE JET ACCELERATION)
044535,000764: 15,2702 12704 TCF +2
044536,000765: 15,2703 65001 AD ONE
044537,000766: 15,2704 00006 EXTEND
044538,000767: 15,2705 71644 MP -VT/180 # C(-VT/180) = -2 VT/180
044539,000768: 15,2706 00006 EXTEND
044540,000769: 15,2707 73375 MP 1/16A1 # = 180/(16 A1 TT)
044541,000770: 15,2710 00006 EXTEND
044542,000771: 15,2711 11535 DV CALFA
044543,000772: 15,2712 54001 TS L
044544,000773: 15,2713 11645 CCS LCX/360
044545,000774: 15,2714 34764 CAF POS1/2
044546,000775: 15,2715 12717 TCF +2
044547,000776: 15,2716 44764 CS POS1/2
044548,000777: 15,2717 61645 AD LCX/360 # IS LCX/360 LESS THAN 180 DEG $
044549,000778: 15,2720 60001 AD L
044550,000779: 15,2721 54001 TS L
044551,000780: 15,2722 12727 TCF COMPAT # YES, GO ON.
044552,000781: 15,2723 50000 TRTAGXPI INDEX A # NO, SHIFT X BY - SGN(X) 2 PI
044553,000782: 15,2724 44763 CS HALFPR # +A YIELDS -1/2
044554,000783: 15,2725 60000 DOUBLE
044555,000784: 15,2726 27645 ADS LCX/360
044556,000785:
044557,000786: 15,2727 31645 COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN.
044558,000787: 15,2730 00006 EXTEND
044559,000788: 15,2731 71535 MP CALFA # COS ALFA
044560,000789: 15,2732 55645 TS LCX/360 # SCALED LCX OK HERE.
044561,000790:
044562,000791: 15,2733 11731 CCS CMDAPMOD # FOUR POSSIBILITIES HERE
044563,000792: 15,2734 03323 TC DZCALL1 # EXIT, SETTING JETAG=0.(C(A)=0)
044564,000793: # ALL 3 AXES ALREADY DONE.
044565,000794: 15,2735 02736 TC +1 # G LESS THAN .05. CA POS. CONTINUE
044566,000795: 15,2736 31645 CA LCX/360 # G GEQ .05. CONTINUE IN CM/RCS
044567,000796: 15,2737 55645 TS LCX/360 # CMDAPMOD=-0. DAMPING ONLY. SET LCX=0
044568,000797: 15,2740 55622 TS ERRORZ # INITIAL ROLL ERROR (UNREFLECTED) FOR TM.
044569,000798: 15,2741 55744 TS PAXERR1 # SAVE LCX FOR FDAI AND EDIT.( /360)
044570,000799: 15,2742 31644 CA -VT/180 # GET - 2 VT/180
044571,000800: 15,2743 54021 TS SR
044572,000801: 15,2744 30021 CA SR # GET -VT/180, LEAVE -VT/360 IN SR FOR DZ
044573,000802: 15,2745 55621 TS -VT/180E # DIAGNOSTIC ****
044574,000803: 15,2746 57644 XCH -VT/180 # NOW CONTENTS OF -VT/180 AS LABELED
044575,000804: 15,2747 00006 EXTEND
044576,000805: 15,2750 71644 MP -VT/180 # B(A) = -2VT/180
044577,000806: 15,2751 00006 EXTEND
044578,000807: 15,2752 73375 MP 180/8ATT
044579,000808: 15,2753 55647 TS VSQ/4API
044580,000809:
044581,000810: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 - .5 BUFLIM/360 POS ?
044582,000811:
044583,000812: 15,2754 60000 WHICHALF DOUBLE # FOR SECOND BURN, A1
044584,000813: 15,2755 40000 COM
044585,000814: 15,2756 63401 AD BUFLIM # =BUFLIM/(2 360)
044586,000815: 15,2757 54001 TS L
044587,000816: 15,2760 11644 CCS -VT/180
044588,000817: 15,2761 40001 CS L
044589,000818: 15,2762 12764 TCF +2
044590,000819: 15,2763 30001 CA L
044591,000820: 15,2764 61645 AD LCX/360
044592,000821: 15,2765 63401 AD BUFLIM
044593,000822: 15,2766 00006 EXTEND
044594,000823: 15,2767 63004 BZMF REFLECT # POINT (X,V) IN LHP.
044595,000824:
044596,000825: # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 + .5 BUFLIM/360 NEG ?
044597,000826:
044598,000827: 15,2770 40000 COM
044599,000828: 15,2771 63401 AD BUFLIM
044600,000829: 15,2772 63401 AD BUFLIM
044601,000830: 15,2773 00006 EXTEND
044602,000831: 15,2774 63013 BZMF DZ1 # POINT (X,V) IN RHP.
044603,000832:
044604,000833: # IS POINT WITHIN VELOCITY DZ?
044605,000834:
044606,000835: 15,2775 44355 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG ?
044607,000836: 15,2776 61647 AD VSQ/4API
044608,000837: 15,2777 00006 EXTEND
044609,000838: 15,3000 63305 BZMF DZCALL # YES.
044610,000839:
044611,000840: # POINT IS IN BUFFER ZONE. THRUST TO X AXIS.
044612,000841:
044613,000842: 15,3001 41650 CS JNDX
044614,000843: 15,3002 55651 TS JNDX1
044615,000844: 15,3003 03066 TC OVRLINE1
044616,000845:
044617,000846: 15,3004 41644 REFLECT CS -VT/180 # REFLECT LHP INTO RHP REL TO TERM CONTR
044618,000847: 15,3005 55644 TS -VT/180
044619,000848: 15,3006 54021 TS SR # -VT/360 SAVED FOR DZ.
044620,000849: 15,3007 41645 CS LCX/360
044621,000850: 15,3010 55645 TS LCX/360
044622,000851: 15,3011 41650 CS JNDX
044623,000852: 15,3012 55650 TS JNDX
044624,000853:
044625,000854: # IS VSQ/4API - (VSQ/4API) MIN NEG $
044626,000855:
044627,000856: 15,3013 44355 DZ1 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG $
044628,000857: 15,3014 61647 AD VSQ/4API
044629,000858: 15,3015 00006 EXTEND
044630,000859: 15,3016 63020 BZMF DZ2 # YES, GO TEST FURTHER.
044631,000860: 15,3017 13025 TCF MAXVTEST # NO
044632,000861:
044633,000862: # IS X/360 - XMIN/360 -VT/360 NEG $
044634,000863:
044635,000864: 15,3020 43377 DZ2 CS XMIN/360 # XMIN/360 = 4/360
044636,000865: 15,3021 61645 AD LCX/360
044637,000866: 15,3022 60021 AD SR # C(SR) = -VT/360
044638,000867: 15,3023 00006 EXTEND # IS X/360 - XMIN/360 -VT/360 NEG $
044639,000868: 15,3024 63305 BZMF DZCALL # YES, IN DZ. EXIT SETTING JETAG=0.
044640,000869:
044641,000870: # IS XD/360 - VM/360K - XS/360 POS ?
044642,000871:
044643,000872: 15,3025 41650 MAXVTEST CS JNDX
044644,000873: 15,3026 55651 TS JNDX1 # NOW CAN SET JNDX1 FOR TON2 JETS.
044645,000874: 15,3027 43401 CS XS/360 # XS/360 = (XMIN -YMIN/K) /360
044646,000875: 15,3030 61647 AD VSQ/4API
044647,000876: 15,3031 61645 AD LCX/360
044648,000877: 15,3032 55646 TS XD/360 # XD/360= X/360 +VSQ/4API X INTERCEPT
044649,000878: # BUT C(XD/360) = (XD - XS) /360
044650,000879: 15,3033 63400 AD -VM/360K # X INTERCEPT FOR MAX V (VM)
044651,000880: 15,3034 40000 COM
044652,000881: 15,3035 00006 EXTEND
044653,000882: 15,3036 63044 BZMF MAXVTIM1 # YES, THRUST TO VM
044654,000883: 15,3037 31646 CA XD/360
044655,000884: 15,3040 00006 EXTEND
044656,000885: 15,3041 74764 MP KTRCS
044657,000886: 15,3042 20001 DDOUBL # GO SAVE PREDICTED DRIFTING VELOCITY.
044658,000887:
044659,000888: 15,3043 03047 TC GETON1 # INSURE THAT Q IS POS AS TAG.
044660,000889: 15,3044 00006 MAXVTIM1 EXTEND
044661,000890: 15,3045 22007 ZQ # SET +0 AS TAG
044662,000891: 15,3046 43400 CS -VMT/180
044663,000892: 15,3047 55620 GETON1 TS VDT/180 # VDT/180 OR VMT/180.
044664,000893: 15,3050 61644 AD -VT/180
044665,000894: 15,3051 60000 DOUBLE
044666,000895: 15,3052 00006 EXTEND
044667,000896: 15,3053 73375 MP 180/8ATT
044668,000897: 15,3054 55652 TS TON1 # TON1 / 4T
044669,000898: 15,3055 00006 EXTEND
044670,000899: 15,3056 63060 BZMF OVRLINE
044671,000900: 15,3057 03072 TC GETON2 # RESET Q POS IF CAME FROM MAXVTIM1
044672,000901:
044673,000902: 15,3060 10002 OVRLINE CCS Q
044674,000903: 15,3061 13066 TCF OVRLINE1
044675,000904: 15,3062 31651 MAXVTIM2 CA JNDX1 # ABOVE VM, SO THRUST DOWN
044676,000905: 15,3063 55650 TS JNDX
044677,000906: 15,3064 41652 CS TON1
044678,000907: 15,3065 13071 TCF OVRLINE2 +1
044679,000908:
044680,000909: 15,3066 41644 OVRLINE1 CS -VT/180 # DRIFT AT V
044681,000910: 15,3067 55620 TS VDT/180
044682,000911: 15,3070 35003 OVRLINE2 CA ZERO
044683,000912: 15,3071 55652 +1 TS TON1
044684,000913: 15,3072 31620 GETON2 CA VDT/180 # VDT/180, OR VMT/180 OR VT/180
044685,000914: 15,3073 60000 DOUBLE
044686,000915: 15,3074 00006 EXTEND
044687,000916: 15,3075 73375 MP 180/8ATT
044688,000917: 15,3076 60000 DOUBLE # FOR SECOND BURN, A1
044689,000918: 15,3077 55640 TS TON2 # = TON2 / 4T
044690,000919:
044691,000920: 15,3100 40000 COM
044692,000921: 15,3101 00006 EXTEND
044693,000922: 15,3102 63106 BZMF GETOFF
044694,000923: 15,3103 55640 TS TON2
044695,000924: 15,3104 31650 CA JNDX
044696,000925: 15,3105 55651 TS JNDX1
044697,000926:
044698,000927: 15,3106 41640 GETOFF CS TON2 # TON2 / 4T
044699,000928: 15,3107 00006 EXTEND
044700,000929: 15,3110 71620 MP VDT/180 # VDT/180, OR VT/180, OR VMT/180.
044701,000930: 15,3111 55646 TS XD/360 # USE AS TEMP
044702,000931: 15,3112 41620 CS VDT/180
044703,000932: 15,3113 00006 EXTEND
044704,000933: 15,3114 13130 BZF TOFFOVFL # OMIT THE DIVIDE IF DEN = 0.
044705,000934: 15,3115 61644 AD -VT/180
044706,000935: 15,3116 00006 EXTEND
044707,000936: 15,3117 71652 MP TON1 # TON1 /4T
044708,000937: 15,3120 61646 AD XD/360 # TEMP = -VDT/180 / 2 TON2
044709,000938: 15,3121 61645 AD LCX/360
044710,000939: 15,3122 22007 ZL
044711,000940: 15,3123 56001 XCH L # TEST THE DIVIDE
044712,000941: 15,3124 00006 EXTEND
044713,000942: 15,3125 11620 DV VDT/180
044714,000943: 15,3126 00006 EXTEND
044715,000944: 15,3127 13132 BZF GETOFF2 # DIVIDE OK
044716,000945:
044717,000946: 15,3130 35033 TOFFOVFL CA 2JETT # OVFL, USE 2T FOR CONVENIENCE.
044718,000947: 15,3131 13137 TCF TIMSCAL
044719,000948:
044720,000949: 15,3132 56001 GETOFF2 XCH L # GET NUMERATOR.
044721,000950: 15,3133 00006 EXTEND
044722,000951: 15,3134 11620 DV VDT/180 # C(A) = TOFF / 2T
044723,000952: 15,3135 00006 EXTEND
044724,000953: 15,3136 75033 MP 2JETT
044725,000954: 15,3137 55636 TIMSCAL TS TOFF # IN CS
044726,000955:
044727,000956: 15,3140 33376 CAF 4JETT
044728,000957: 15,3141 00006 EXTEND
044729,000958: 15,3142 71652 MP TON1 # C(TON1) = TON1 / 4T
044730,000959: 15,3143 55652 TS TON1 # IN CS
044731,000960:
044732,000961: 15,3144 33376 CAF 4JETT
044733,000962: 15,3145 00006 EXTEND
044734,000963: 15,3146 71640 MP TON2 # C(TON2) = TON2 / 4T
044735,000964: 15,3147 55640 TS TON2 # IN CS
044736,000965:
044737,000966: 15,3150 35003 CA ZERO # CANNOT REDO AFTER TIMETST. TUSED GONE
044738,000967: 15,3151 55742 TS JETAG # SET +0 TO SHOW ROLL DAP CALLED.
044739,000968:
044740,000969: # CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE
044741,000970: # INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON NEXT
044742,000971: # AND ON ALTERNATE PASSES THROUGH CM/DUMPR.
044743,000972:
044744,000973: 15,3152 35001 CA ONE
044745,000974: 15,3153 54305 TS SW/NDX
044746,000975:
044747,000976:
044748,000977: # TIMETEST SECTION FOR RCS
044749,000978: # ENTER WITH THREE TIME INTERVALS AND THE CORRESPONDING JET CODE INDEXES IN ERASEABLE LOCS TON1, TOFF, TON2, JNDX
044750,000979: # JNDX1. SECTION PROCESSES TIME INTERVALS FOR WTLST CALLS AND ASSURES THAT WTLST CALLS ARE MADE ONLY
044751,000980: # (1) FOR POS INTERVALS GREATER THAN A SPECIFIED MINIMUM ( HERE CHOSEN AS 2 CS) AND
044752,000981: # (2) FOR THE INTERVALS THAT WILL BE EXECUTED WITHIN THE TIME REMAINING IN THE SAMPLE INTERVAL T (2 SEC).
044753,000982: # TIMETST ESTABLISHES 6 LOCS CONTAINING JET CODES AND CORRESPONDING TIME INTERVALS. THUS: TON1, T1BITS,
044754,000983: # TOFF, TBITS, TON2, T2BITS. OF THESE THE FIRST 2 LOCS ARE TEMPORARY, FOR IMMEDIATE ACTION, IN GENERAL.
044755,000984: # SECTION JETCALL BELOW PROCESSES THIS LIST.
044756,000985:
044757,000986: 15,3154 30025 TIMETST CA TIME1 # CORRECT FOR POSSIBLE TIME1 OVFL.
044758,000987: 15,3155 64764 AD POS1/2
044759,000988: 15,3156 64764 AD POS1/2 # OVFL GUARANTEED.
044760,000989: 15,3157 27743 ADS TUSED # B(TUSED) =-TUSED =-OLTIME1
044761,000990:
044762,000991: 15,3160 33374 CA -T-3 # =-T +2 -5 (SEE SETJTAG)
044763,000992: # THE +2 REQUIRED FOR PROPER BRANCH.
044764,000993: 15,3161 27743 ADS TUSED # TUSED = TIME(K)-TIME(K-1)-T+2
044765,000994:
044766,000995: 15,3162 45000 CS TWO # USE 2 SINCE TIME3 UNCERTAIN TO 1
044767,000996: 15,3163 61652 AD TON1
044768,000997: 15,3164 00006 EXTEND
044769,000998: 15,3165 63177 BZMF TIMETST1
044770,000999: 15,3166 51650 INDEX JNDX
044771,001000: 15,3167 32634 CAF P/RJCODE
044772,001001: 15,3170 55653 TS T1BITS
044773,001002:
044774,001003: 15,3171 31652 CA TON1
044775,001004: 15,3172 27743 ADS TUSED
044776,001005: 15,3173 00006 EXTEND
044777,001006: 15,3174 63201 BZMF TOFFTEST
044778,001007: 15,3175 35003 CA ZERO
044779,001008: 15,3176 13232 TCF TIMETST3
044780,001009: 15,3177 45001 TIMETST1 CS ONE
044781,001010: 15,3200 55652 TS TON1
044782,001011: 15,3201 45000 TOFFTEST CS TWO
044783,001012: 15,3202 61636 AD TOFF
044784,001013: 15,3203 00006 EXTEND
044785,001014: 15,3204 63213 BZMF TIMETST2
044786,001015: 15,3205 31636 CA TOFF
044787,001016: 15,3206 27743 ADS TUSED
044788,001017: 15,3207 00006 EXTEND
044789,001018: 15,3210 63215 BZMF TON2TEST
044790,001019: 15,3211 35003 CA ZERO
044791,001020: 15,3212 13234 TCF TIMETST4
044792,001021: 15,3213 45001 TIMETST2 CS ONE
044793,001022: 15,3214 55636 TS TOFF
044794,001023: 15,3215 45000 TON2TEST CS TWO
044795,001024: 15,3216 61640 AD TON2
044796,001025: 15,3217 00006 EXTEND
044797,001026: 15,3220 63235 BZMF TIMETST5
044798,001027: 15,3221 51651 INDEX JNDX1
044799,001028: 15,3222 32634 CAF P/RJCODE
044800,001029: 15,3223 55641 TS T2BITS
044801,001030: 15,3224 31640 CA TON2
044802,001031: 15,3225 27743 ADS TUSED
044803,001032: 15,3226 00006 EXTEND
044804,001033: 15,3227 63237 BZMF JETCALL1
044805,001034: 15,3230 35003 CA ZERO
044806,001035: 15,3231 13236 TCF TIMETST5 +1
044807,001036: 15,3232 55652 TIMETST3 TS TON1
044808,001037: 15,3233 45001 CS ONE
044809,001038: 15,3234 55636 TIMETST4 TS TOFF
044810,001039: 15,3235 45001 TIMETST5 CS ONE
044811,001040: 15,3236 55640 +1 TS TON2
044812,001041:
044813,001042: # SECTION JETCALL EXAMINES CONTENTS OF JET TIMES IN LIST, ESTABLISHES WTLST ENTRIES, AND EXECUTES CORRESPONDING
044814,001043: # JET CODES. A POSITIVE NZ NUMBER IN A TIME REGISTER INDICATES THAT A WTLST CALL IS TO BE MADE, AND ITS JET BITS
044815,001044: # EXECUTED. A +0 INDICATES THAT THE TIME INTERVAL DOES NOT APPLY, BUT THE CORRESPONDING JET BITS ARE TO BE
044816,001045: # EXECUTED. A NEG NUMBER INDICATES THAT THE TIME INTERVAL HAS BEEN PROCESSED. IN EVENT OF +0 OR -1, THE
044817,001046: # SUBSEQUENT TIME REGISTER IS EXAMINED FOR POSSIBLE ACTION. THUS JET BITS TO BE EXECUTED MAY COME FROM MORE
044818,001047: # THAN ONE REGISTER.
044819,001048:
044820,001049: 15,3237 35003 JETCALL1 CA ZERO
044821,001050: 15,3240 55642 TS OUTTAG
044822,001051: 15,3241 55643 TS NUJET
044823,001052: 15,3242 55637 TS TBITS
044824,001053: 15,3243 53653 DXCH TON1
044825,001054: 15,3244 10000 CCS A
044826,001055: 15,3245 13262 TCF JETCALL2 # CALL WTLST
044827,001056: 15,3246 23643 JETCALL3 LXCH NUJET # WTLST ENTRIES COME HERE FROM JETCALL
044828,001057: 15,3247 45001 CS ONE
044829,001058: 15,3250 53637 DXCH TOFF
044830,001059: 15,3251 10000 CCS A
044831,001060: 15,3252 13262 TCF JETCALL2 # CALL WTLST
044832,001061: 15,3253 23643 LXCH NUJET
044833,001062: 15,3254 45001 CS ONE
044834,001063: 15,3255 53641 DXCH TON2
044835,001064: 15,3256 10000 CCS A
044836,001065: 15,3257 13262 TCF JETCALL2 # CALL WTLST
044837,001066: 15,3260 23643 LXCH NUJET
044838,001067: 15,3261 03270 TC JETACTN # C(A) = +0
044839,001068: 15,3262 56001 JETCALL2 XCH L # SAVE JET BITS FOR AFTER WTLST CALL
044840,001069: 15,3263 27643 ADS NUJET
044841,001070: 15,3264 56001 XCH L
044842,001071: 15,3265 65001 AD ONE # RESTORE FOR CCS
044843,001072: 15,3266 05236 TC TWIDDLE
044844,001073: 15,3267 03276 ADRES JETCALL
044845,001074: 15,3270 31643 JETACTN CA NUJET # COME HERE WHEN DESIRED JET CODE IS KNOWN
044846,001075: 15,3271 00006 +1 EXTEND # NO NEED TO SAVE OLD CODES
044847,001076: 15,3272 01006 WRITE ROLLJETS # SET RCHAN TO NEW BIT CONFIG.
044848,001077: 15,3273 11642 CCS OUTTAG
044849,001078: 15,3274 05327 TC TASKOVER
044850,001079: 15,3275 03333 ROLLDUMP TC CM/FDAIR
044851,001080:
044852,001081: # EDIT DUMP AT ABOVE LOCATION.
044853,001082:
044854,001083: # WAITLIST ENTRIES COME HERE.
044855,001084:
044856,001085: 15,3276 35000 JETCALL CAF CM/DSBIT # CM/DSTBY = BIT2 103D
044857,001086: 15,3277 55642 TS OUTTAG # SIGNIFY WTLST ENTRY
044858,001087: 15,3300 70102 MASK CM/FLAGS # IS SYSTEM DISABLED $
044859,001088: 15,3301 00006 EXTEND
044860,001089: 15,3302 13271 BZF JETACTN +1 # YES, QUENCH ROLL JETS, IF ON AND EXIT.
044861,001090: 15,3303 22007 ZL # NO, CONTINUE.
044862,001091: 15,3304 13246 TCF JETCALL3 # C(A) POS, C(L) = +0
044863,001092:
044864,001093: # DEAD ZONE ENTRIES COME HERE.
044865,001094:
044866,001095: 15,3305 41731 DZCALL CS CMDAPMOD # POSSIBLE VALUES OF CMDAPMOD: -1, +0, -0.
044867,001096: 15,3306 75001 MASK BIT1
044868,001097: 15,3307 54001 TS L # C(L)=0 FOR -0; C(L)=1 FOR -1 OR +0.
044869,001098: 15,3310 50000 INDEX A # ERASBLE ORDER: ROLLTM,ROLLC,ROLLC +1.
044870,001099: 15,3311 31745 CA ROLLTM # GET ROLL/180 OR ROLLC (/360).
044871,001100: 15,3312 50001 INDEX L
044872,001101: 15,3313 54000 TS A # IF C(L)=1, STORE 'ROLLC' IN 'L'.
044873,001102: 15,3314 60001 AD L # (BOTH MUST BE SCALED DEG/180)
044874,001103: 15,3315 02151 TC ANGOVCOR # C(A)=ROLL/180 OR 2 ROLLC .
044875,001104: 15,3316 55750 TS ROLLHOLD # IF CMDAPMOD =-0, SAVE ROLL ANGLE,
044876,001105: # OTHERWISE, SAVE ROLL COMMAND.
044877,001106:
044878,001107: 15,3317 35003 CA ZERO # COME HERE IF IN DZ, AND CANCEL JETS.
044879,001108: 15,3320 00006 EXTEND # INHINT NOT NEEDED HERE.
044880,001109: 15,3321 01006 WRITE ROLLJETS # TURN OFF ALL ROLL JETS.
044881,001110: 15,3322 55620 TS VDT/180 # SET =0 TO SHOW IN DEAD ZONE.
044882,001111: 15,3323 55742 DZCALL1 TS JETAG # COME HERE WITH C(A)=0.
044883,001112: 15,3324 03275 TC ROLLDUMP
044884,001113:
044885,001114:
044886,001115: # CM ENTRY FDAI DISPLAY
044887,001116:
044888,001117: # CALCULATE BY INTEGRATION THE ROLL ERROR BETWEEN THE 2 SEC CM/RCS UPDATES . DISPLAY ATTITUDE ERRORS AS FOLLOWS:
044889,001118: # ATM DAP: DISPLAY ONLY ROLL ATTITUDE ERROR.
044890,001119: # EXT ATM DAP: PRESENT 3 ATTITUDE ERRORS RELATIVE TO THE APPROPRIATE BODY AXES EACH .1 SEC.
044891,001120: # ROLL ROLLC-ROLL
044892,001121: # PITCH ALFAC-ALFA
044893,001122: # YAW BETAC-BETA
044894,001123:
044895,001124: # DURING ENTRY, THE FDAI NEEDLES HAVE FULL SCALE OF 67.5 DEG IN ROLL AND 16.875 DEG IN PITCH AND YAW.
044896,001125: # THE SUBROUTINE NEEDLER EXPECTS (ANGLE/180) AND SCALES TO 16.875 DEG FULL SCALE.
044897,001126:
044898,001127: # COME HERE EACH .1 SEC. (CMDAPMOD=+1 COMES BELOW)
044899,001128: 15,3325 41736 CM/FDAI CS PHIDOT # INTEGRATE ROLL ERROR 'TWEEN 2SEC UPDATES
044900,001129: 15,3326 00006 EXTEND
044901,001130: 15,3327 71535 MP CALFA # FOR ASSUMED COORDINATION.
044902,001131: 15,3330 00006 EXTEND
044903,001132: 15,3331 74764 MP HALF
044904,001133: 15,3332 27744 -1 ADS PAXERR1 # ROLL ERROR/360. OVFL OK.
044905,001134:
044906,001135: # EDIT DUMP AT ABOVE LOCATION.
044907,001136: 15,3333 34764 CM/FDAIR CA HALF
044908,001137: 15,3334 00006 EXTEND
044909,001138: 15,3335 71744 MP PAXERR1 # FULL SCALE FOR FDAI (ROLL) IS 67.5 D
044910,001139: 15,3336 55525 TS PAXERR # .25 (ROLL ERROR/180) FOR FDAI NEEDLE.
044911,001140:
044912,001141: # PROGRAM TO FILE BODY RATES FOR TM ON ONE PASS AND
044913,001142: # TO UPDATE THE NEEDLE DISPLAY ON THE NEXT.
044914,001143: # SYNCHRONIZATION WITH CM/RCS IS USED SO THAT THE TM
044915,001144: # IS DONE WITH THE ROLL SYSTEM AND NEEDLES START ON
044916,001145: # THE SUBSEQUENT PASS.
044917,001146:
044918,001147:
044919,001148: 15,3337 40305 CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE
044920,001149: 15,3340 54305 TS SW/NDX
044921,001150: 15,3341 00006 EXTEND # INDEX.
044922,001151: 15,3342 63346 BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO
044923,001152: # ENDBUF.
044924,001153: # INDEX IS POS FOR NEEDLES
044925,001154:
044926,001155: 15,3343 04725 TC IBNKCALL
044927,001156: 15,3344 31660 CADR NEEDLER
044928,001157:
044929,001158: 15,3345 03364 TC CM/END
044930,001159:
044931,001160: # INDEX IS NEG FOR TM FILE
044932,001161:
044933,001162: 15,3346 66214 CMTMFILE AD THREE
044934,001163: 15,3347 00006 EXTEND
044935,001164: 15,3350 63354 BZMF SAVENDX
044936,001165:
044937,001166: 15,3351 30025 CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF.
044938,001167: 15,3352 54304 TS CMTMTIME
044939,001168: 15,3353 45007 CS THIRTEEN # INITIALIZE COUNTER
044940,001169: 15,3354 54305 SAVENDX TS SW/NDX # A NEGATIVE NUMBER.
044941,001170: 15,3355 00006 EXTEND
044942,001171: 15,3356 31733 DCA PREL
044943,001172: 15,3357 50305 INDEX SW/NDX
044944,001173: 15,3360 52324 DXCH ENDBUF -1
044945,001174: 15,3361 31734 CA RREL
044946,001175: 15,3362 50305 INDEX SW/NDX
044947,001176: 15,3363 54325 TS ENDBUF +1
044948,001177:
044949,001178: 15,3364 31654 CM/END CA CM/SAVE
044950,001179: 15,3365 54021 TS SR
044951,001180: # DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
044952,001181:
044953,001182: 15,3366 00006 EXTEND
044954,001183: 15,3367 33373 DCA T5IDLER2
044955,001184: 15,3370 52113 DXCH T5LOC
044956,001185: 15,3371 05336 TC RESUME
044957,001186:
044958,001187: 15,3372 0112 EBANK= T5LOC
044959,001188: 15,3372 03132 12060 T5IDLER2 2CADR T5IDLOC
044960,001189:
044961,001190: # DEFINE THE FOLLOWING 17D REGISTERS IN UPBUFF TO BE
044962,001191: # USED TO TELEMETER CM VEHICLE BODY RATE INFORMATION.
044963,001192: # THE INFORMATION IS FILED EACH 0.2 SEC, GIVING 15D
044964,001193: # DATA POINTS EACH 1 SEC. TM LIST IS READ TWICE
044965,001194: # EACH 2 SECONDS.
044966,001195:
044967,001196: # THE SEQUENCE IS: SP TIME INITIAL TIME
044968,001197: # SWITCH ALSO INDEX.
044969,001198: # P ROLL RATE
044970,001199: # Q PITCH RATE
044971,001200: # R YAW RATE
044972,001201: # ETC.
044973,001202:
044974,001203: # CMTMTIME = UPBUFF
044975,001204: # SW/NDX = UPBUFF +1
044976,001205: # ENDBUF = UPBUFF +16D
044977,001206:
044978,001207:
044979,001208: # SPACER
044980,001209:
044981,001210: # CONSTANTS USED IN THE ROLL CONTROL SYSTEM:
044982,001211: # CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC,
044983,001212: # XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE
044984,001213: # XBUF = 4DEG
044985,001214:
044986,001215: 15,3374 77464 -T-3 DEC -203 B-14 # CS
044987,001216: # VSQMIN DEC .61050061 E-3 VSQ MIN/4 A PI = 4/(4 (9.1) 180)
044988,001217: 15,3375 4355 VSQMIN = OCT12
044989,001218: 15,3375 5016 2T/TCDU = OCT50 # T/TCDU EXP-14 TCDU = .1SEC
044990,001219: 15,3375 23617 180/8ATT DEC .61813187 # 180/(8 (9.1) 4)=(180/ATT) EXP -3
044991,001220: 15,3376 15,3400 -VMT/180 = -VM/360K # = 20 (2) / 180
044992,001221: 15,3376 5033 2JETT = 4SECS # CS 2 (2) 100 INTEGER
044993,001222: 15,3376 01440 4JETT DEC 800 B-14 # CS 4 (2) 100 INTEGER
044994,001223: 15,3377 00266 XMIN/360 DEC 182 B-14 # XMIN/360 = 4/ 360 EXP 14 = 182 INTEGER
044995,001224: 15,3400 70706 -VM/360K DEC -.22222222 # =-20/( 360 (.25))
044996,001225: 15,3401 15,3375 1/16A1 = 180/8ATT
044997,001226: # 1/16A1 = 180/(16 A1 TT)
044998,001227: # =180/(16 4.55 4)
044999,001228: 15,3401 00133 XS/360 DEC 91 B-14 # =(XMIN +VI (T-1/K))/360 = 2/360 EXP 14
045000,001229: 15,3402 15,3401 BUFLIM = XS/360 # 4/(2 360)
045001,001230:
045002,001231: 15,3402 4764 KTRCS = HALF # KT = (.25) 2 = .5
End of include-file CM_ENTRY_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc