Source Code
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
021690,000002: ## Copyright: Public domain.
021691,000003: ## Filename: Q_R-AXES_REACTION_CONTROL_SYSTEM_AUTOPILOT.agc
021692,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
021693,000005: ## is part of the source code for the Lunar Module's
021694,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
021695,000007: ## Assembler: yaYUL
021696,000008: ## Contact: Ron Burkey <info@sandroid.org>.
021697,000009: ## Website: www.ibiblio.org/apollo/index.html
021698,000010: ## Mod history: 2016-09-30 RSB Created draft version.
021699,000011: ## 2016-10-30 RSB Transcribed through page 537.
021700,000012: ## 2016-10-31 RSB Transcribed. Boo!
021701,000013: ## 2016-10-31 RSB Typos.
021702,000014: ## 2016-11-01 RSB More typos.
021703,000015: ## 2016-11-02 RSB More typos.
021704,000016: ## 2016-12-05 RSB Comment-proofing with octopus/ProoferComments
021705,000017: ## completed, changes made.
021706,000018: ## 2021-05-30 ABS Added missing EBANK= statement.
021707,000019: ## NETAPOSB -> NEGAPOSB
021708,000020:
Page 519 |
021710,000022: 17,2000 BANK 17
021711,000023: # THE FOLLOWING T5RUPT ENTRY BEGINS THE PROGRAM WHICH CONTROLS THE Q,R-AXIS ACTION OF THE LEM USING THE RCS JETS.
021712,000024: # THE NOMINAL TIME BETWEEN THE Q,R-AXIS RUPTS IS 100 MS (UNLESS THE TRIM GIMBAL CONTROL SYSTEM IS USED, IN WHICH
021713,000025: # CASE THIS PROGRAM IS IDLE).
021714,000026:
021715,000027: 17,2000 E6,1542 EBANK= DT
021716,000028: 17,2000 03033 40066 NULLFILT 2CADR FILDUMMY
021717,000029: 17,2002 E6,1542 EBANK= DT
021718,000030:
021719,000031: 17,2002 32560 QRAXIS CAF MS20QR # RESET TIMER IMMEDIATELY - DT = 20 MS
021720,000032: 17,2003 54030 TS TIME5
021721,000033:
021722,000034: 17,2004 22016 LXCH BANKRUPT # INTERRUPT LEAD IN (CONTINUED)
021723,000035: 17,2005 00006 EXTEND
021724,000036: 17,2006 22012 QXCH QRUPT
021725,000037:
021726,000038: # SET UP A DUMMY KALMAN FILTER T5RUPT. (THIS MAY BE RESET TO THE KALMAN FILTER INITIALIZATION PASS, IF THE TRIM
021727,000039: # GIMBAL CONTROL SYSTEM SHOULD BE USED.)
021728,000040:
021729,000041: 17,2007 00006 EXTEND
021730,000042: 17,2010 32001 DCA NULLFILT
021731,000043:
021732,000044: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
In the original printout, the following line actually ended with a 1/2 symbol (½) rather than a question mark. |
021735,000047: 17,2011 12107 INSERT17 TCF TRMCHECK # ARE EXTRAORDINARY GTS ENTRIES NEEDED?
021736,000048: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
021737,000049:
021738,000050: # CALCULATE LEM BODY RATES FOR Q AND R AXES:
021739,000051:
021740,000052: # THIS COMPUTATION IS VALID FOR BOTH ASCENT AND DESCENT SINCE THE OFFSET ACCELERATION TERM IS INCLUDED ALWAYS,
021741,000053: # BUT HAS VALUE ZERO IN DESCENT, AND SINCE THE WEIGHTING FACTORS ARE IN ERASABLE AND DISTINCT.
021742,000054:
021743,000055: # FIRST, CONSTRUCT Y AND Z CDU INCREMENTS:
021744,000056:
021745,000057: 17,2012 30033 BODYRATE CAE CDUY # 2:S COMPLEMENT MEASUREMENT SCALED AT PI.
021746,000058: 17,2013 54001 TS L # (SAVE FOR UPDATING OF OLDYFORQ)
021747,000059: 17,2014 00006 EXTEND # FORM INCREMENT IN CDUY FOR LAST 100 MS
021748,000060: 17,2015 21427 MSU OLDYFORQ # (100 MS OLD CDUY SAVED FROM LAST PASS)
021749,000061: 17,2016 23427 LXCH OLDYFORQ # UPDATE OLDYFORQ WITH NEW CDUY VALUE
021750,000062: 17,2017 54061 TS ITEMP1 # SAVE 1:S COMPLEMENT VALUE TEMPORARILY
021751,000063: 17,2020 30034 CAE CDUZ # 2'S COMPLEMENT MEASUREMENT SCALED AT PI
021752,000064: 17,2021 54001 TS L # (SAVE FOR UPDATING OF OLDZFORQ)
021753,000065: 17,2022 00006 EXTEND # FORM INCREMENT IN CDUZ FOR LAST 100 MS
021754,000066: 17,2023 21430 MSU OLDZFORQ # (100 MS OLD CDUZ SAVED FROM LAST PASS)
021755,000067: 17,2024 23430 LXCH OLDZFORQ # UPDATE OLDZFORQ WITH NEW CDUZ VALUE
021756,000068: 17,2025 54062 TS ITEMP2 # SAVE 1'S COMPLEMENT VALUE TEMPORARILY
021757,000069:
Page 520 |
021759,000071: # SECOND, TRANSFORM CPU INCREMENTS TO BODY-ANGLE INCREMENTS:
021760,000072:
021761,000073: 17,2026 31406 CAE M31 # MATRIX*VECTOR(WITH x COMPONENT ZERO)
021762,000074: 17,2027 00006 EXTEND
021763,000075: 17,2030 70061 MP ITEMP1 # M31 * ITEMP1 = M31 * DELTA CDUY
021764,000076: 17,2031 52065 DXCH ITEMP4
021765,000077: 17,2032 31403 CAE M32 # M32 * ITEMP2 = M32 * DELTA CDUZ
021766,000078: 17,2033 00006 EXTEND
021767,000079: 17,2034 70062 MP ITEMP2 # DELTAR = M31*(DEL CDUY) + M32*(DEL CDUZ)
021768,000080: 17,2035 20065 DAS ITEMP4 # DOUBLE PRECISION R BODY ANGLE INCREMENT
021769,000081:
021770,000082: 17,2036 37753 CAF BIT9
021771,000083: 17,2037 54002 TS Q
021772,000084: 17,2040 00006 EXTEND
021773,000085: 17,2041 30065 DCA ITEMP4
021774,000086: 17,2042 00006 EXTEND
021775,000087: 17,2043 10002 DV Q # RESCALE TO PI/64 AND
021776,000088: 17,2044 54064 TS ITEMP4 # STORE AS SINGLE PRECISION
021777,000089: 17,2045 31405 CAE M21 # MATRIX*VECTOR(WITH X COMPONENT ZERO)
021778,000090: 17,2046 00006 EXTEND # CLOBBERS ITEMP2=DEL CDUZ, FOR EFFICIENCY
021779,000091: 17,2047 70061 MP ITEMP1 # M21 * ITEMP1 = M21 * DELTA CDUY
021780,000092: 17,2050 52063 DXCH ITEMP2 # M22 * ITEMP2 = M22 * DELTA CDUZ
021781,000093: 17,2051 00006 EXTEND
021782,000094: 17,2052 71401 MP M22 # DELTAQ = M21*(DEL CDUY) + M22*(DEL CDUZ)
021783,000095: 17,2053 20063 DAS ITEMP2 # DOUBLE PRECISION Q-BODY-ANGLE INCREMENT
021784,000096: 17,2054 00006 EXTEND
021785,000097: 17,2055 30063 DCA ITEMP2
021786,000098: 17,2056 00006 EXTEND
021787,000099: 17,2057 10002 DV Q # RESCALE TO PI/64
021788,000100: # FINALLY, DERIVE Q AND R BODY ANGULAR RATES:
021789,000101:
021790,000102: 17,2060 00006 EXTEND # WFORQR IS K/(NOMINAL DT) SCALED AT 16
021791,000103: 17,2061 71641 MP WFORQR # FORM WEIGHTED VALUE OF MEASURED DATA
021792,000104: 17,2062 57416 XCH OMEGAQ # SAVE AND BEGIN TO WEIGHT VALUE OF OLD W
021793,000105: 17,2063 00006 EXTEND # (1-K) IS SCALED AT 1 FOR EFFICIENT CALC
021794,000106: 17,2064 71642 MP (1-K) # (K CHANGES EVERY 2 SECONDS IN ASCENT.)
021795,000107: 17,2065 61605 AD JETRATEQ # WEIGHTED TERM DUE TO JET ACCELERATION
021796,000108: 17,2066 61664 AD AOSQTERM # TERM DUE TO ASCENT OFFSET ACCELERATION
021797,000109: 17,2067 27416 ADS OMEGAQ # TOTAL RATE ESTIMATE SCALED AT PI/4
021798,000110:
021799,000111: 17,2070 30064 CAE ITEMP4 # GET DELTAR
021800,000112: 17,2071 00006 EXTEND # WFORQR IS K/(NOMINAL DT) SCALED AT 16
021801,000113: 17,2072 71641 MP WFORQR # FORM WEIGHTED VALUE OF MEASURED DATA
021802,000114: 17,2073 57420 XCH OMEGAR # SAVE AND BEGIN TO WEIGHT VALUE OF OLD W
021803,000115: 17,2074 00006 EXTEND # (1-K) IS SCALED AT 1 FOR EFFICIENT CALC
021804,000116: 17,2075 71642 MP (1-K) # (K CHANGES EVERY 2 SECONDS IN ASCENT.)
021805,000117: 17,2076 61606 AD JETRATER # WEIGHTED TERM DUE TO JET ACCELERATION
021806,000118: 17,2077 61665 AD AOSRTERM # TERM DUE TO ASCENT OFFSET ACCELERATION
021807,000119: 17,2100 27420 ADS OMEGAR # TOTAL RATE ESTIMATE SCALED AT PI/4
021808,000120:
Page 521 |
021810,000122: 17,2101 01653 TC QJUMPADR
021811,000123: 17,2102 32105 SKIPQRAX CA NORMQADR
021812,000124: 17,2103 55653 TS QJUMPADR # DO NOT JUMP NEXT TIME.
021813,000125: 17,2104 12610 TCF CHKGIMBL # CHKGIMBL ATTEMPTS TO USE GTS.
021814,000126:
021815,000127: 17,2105 02106 NORMQADR GENADR NORMALQ
021816,000128: 17,2106 12620 NORMALQ TCF ATTSTEER # NO RHC INPUTS ON 206.
021817,000129:
021818,000130: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
021819,000131:
021820,000132: 17,2107 53001 TRMCHECK DXCH T5ADR # SET UP NEXT T5RUPT ADDRESS.
021821,000133:
021822,000134: # CHECK IF TRIMCNTR HAS BEEN COUNTED DOWN TO ZERO, INDICATING THAT 20.0 SECONDS HAVE PASSED SINCE DPS ON AND
021823,000135: # CONTROL SHOULD BE TRANSFERRED TO GTS. THEN SEE IF A RECENT ENGINE-ON REQUIRES AN EARLY GTS ENTRY.
In the original printout, the following line actually ended with a 1/2 symbol (½) rather than a question mark. |
021826,000138: 17,2110 11744 CCS TRIMCNTR # IS GTS NEEDED PRIOR TO THROTTLE-UP?
021827,000139: 17,2111 12121 TCF CHKMNITR # NOT YET, BUT CHECK IF FIRST GTS DONE.
021828,000140: 17,2112 04736 TC CCSHOLE # ILLEGAL VALUE OF TRIMCNTR.
021829,000141: 17,2113 12012 TCF INSERT17 +1 # NOT ACTIVE, RETURN TO RCS CONTROL.
In the original printout, the following line actually ended with a 1/2 symbol (½) rather than a question mark. |
021832,000144: 17,2114 37762 OKAYGTS CAF USEQRJTS # YES, IS GIMBAL SYSTEM USABLE?
021833,000145: 17,2115 70077 MASK DAPBOOLS
021834,000146: 17,2116 00006 EXTEND
021835,000147: 17,2117 12124 BZF GOGIMBAL # USABLE. GO TO GTS.
021836,000148: 17,2120 12012 TCF INSERT17 +1 # NOT USABLE. GO ON WITH RCS CONTROL.
021837,000149:
In the original printout, the following line actually ended with a 1/2 symbol (½) rather than a question mark. |
021840,000152: 17,2121 11745 CHKMNITR CCS GTSMNITR # IS AN IMMEDIATE (FIRST) GTS CALLED FOR?
021841,000153: 17,2122 12114 TCF OKAYGTS # YES, CHECK IF GIMBAL SYSTEM USABLE.
021842,000154: 17,2123 12012 TCF INSERT17 +1 # NO, RETURN TO RCS CONTROL.
021843,000155: 17,2124 46311 GOGIMBAL CS THREE # RESET TIME5 COUNTER FROM 20 TO 50 MSEC.
021844,000156: 17,2125 26030 ADS TIME5
021845,000157:
021846,000158: 17,2126 42614 CS BGIM24 # TURN OFF GIMBALS FOR BETTER FILTERING.
021847,000159: 17,2127 00006 EXTEND
021848,000160: 17,2130 03012 WAND 12
021849,000161:
021850,000162: 17,2131 47763 CS BIT1 # DEACTIVATE GIMBAL DRIVE TIMERS
021851,000163: 17,2132 55753 TS QGIMTIMR
021852,000164: 17,2133 55754 TS RGIMTIMR
021853,000165:
021854,000166: 17,2134 37767 CAF ZERO
021855,000167: 17,2135 00006 EXTEND
021856,000168: 17,2136 01005 WRITE 5 # TURN OFF ALL Q,R AXIS JETS.
021857,000169:
021858,000170: 17,2137 00006 EXTEND
021859,000171: 17,2140 32143 DCA ADRGOGTS
021860,000172: 17,2141 52006 DTCB
021861,000173: 17,2142 E6,1542 EBANK= DT
021862,000174: 17,2142 03606 42066 ADRGOGTS 2CADR GOTOGTS +2 # TIME5 COUNTER WAS ALREADY ADVANCED.
021863,000175:
021864,000176: # *** THE FOLLOWING NEW CODING IS NOT BEING USED ***
Page 522 |
021866,000178: # LEFT IN PLACE AS FILLER)))MAY BE WRITTEN OVER
021867,000179:
021868,000180: 17,2144 04736 TC CCSHOLE # FILLER
021869,000181: 17,2145 04736 TC CCSHOLE # FILLER
021870,000182: 17,2146 04736 TC CCSHOLE # FILLER
021871,000183: 17,2147 04736 TC CCSHOLE # FILLER
021872,000184: 17,2150 04736 TC CCSHOLE # FILLER
021873,000185: 17,2151 04736 TC CCSHOLE # FILLER
021874,000186: 17,2152 04736 TC CCSHOLE # FILLER
021875,000187: 17,2153 04736 TC CCSHOLE # FILLER
021876,000188: 17,2154 04736 TC CCSHOLE # FILLER
021877,000189: 17,2155 E6,1525 EBANK= NEGUR
021878,000190: 17,2155 03236 42066 RGIMADR 2CADR OFFGIMR
021879,000191:
021880,000192: 17,2157 31746 GETCNTR CAE FORCETRM # LOAD TRIMCNTR TO FORCE TRIM JUST BEFORE
021881,000193: 17,2160 55744 TS TRIMCNTR # THE THROTTLE-UP.
021882,000194: 17,2161 37763 CAF BIT1 # ENABLE MONITOR TO CALL GTS AS SOON AS
021883,000195: 17,2162 55745 TS GTSMNITR # POSSIBLE.
021884,000196:
021885,000197: 17,2163 31765 CAE SIMPINIT # INITIALIZE SIMPCNTR. DECISECONDS.
021886,000198: 17,2164 55764 TS SIMPCNTR
021887,000199:
021888,000200: 17,2165 00006 EXTEND # RETURN TO ORIGINAL CODING
021889,000201: 17,2166 32172 DCA INSRTADR
021890,000202: 17,2167 52006 DTCB
021891,000203:
021892,000204: 17,2170 04736 TC CCSHOLE # THIS IS A FILLER
021893,000205: 17,2171 E6,1466 EBANK= PERROR
021894,000206: 17,2171 02232 40066 INSRTADR 2CADR INSERT20 +1
021895,000207:
021896,000208: 17,2173 40376 17INSRT CS /TEMP1/ # COMPARE Q WITH THE GENADR OF SWRETURN
021897,000209: 17,2174 62264 AD SWRETADR # TO SEE IF ENGINOFF WAS CALLED VIA
021898,000210: 17,2175 00006 EXTEND # BANKCALL OR IBNKCALL.
021899,000211: 17,2176 12243 BZF 17INSRTB # *BANKCALL - DO NOT DELAY*
021900,000212:
021901,000213: 17,2177 00006 EXTEND # *IBNKCALL - CHECK FURTHER*
021902,000214: 17,2200 00030 READ 30
021903,000215: 17,2201 40000 COM # SEE IF ENGINE IN QUESTION IS APS OR DPS.
021904,000216: 17,2202 77762 MASK BIT2
021905,000217: 17,2203 00006 EXTEND
021906,000218: 17,2204 12243 BZF 17INSRTB # *DPS ENGINE - DO NOT DELAY*
021907,000219:
021908,000220: 17,2205 40302 CS MODREG # *APS ENGINE - CHECK FURTHER*
021909,000221: 17,2206 62265 AD MP3MMODE
021910,000222: 17,2207 00006 EXTEND # SEE IF THIS IS THE MP 3 SHORT APS BURN.
021911,000223: 17,2210 12243 BZF 17INSRTB # *IT IS - DO NOT DELAY*
021912,000224:
021913,000225: 17,2211 41074 CS DVMNEXIT # *IT IS NOT - CHECK FOR A FORGET2 ENTRY*
021914,000226: 17,2212 62266 AD KILLAVEG
021915,000227: 17,2213 00006 EXTEND
Page 523 |
021917,000229: 17,2214 12257 BZF 17INSRTD # GENADRS MATCH - CHECK THE BBCONS.
021918,000230:
021919,000231: 17,2215 00006 17INSRTE EXTEND
021920,000232: 17,2216 41760 DCS /TEMP3/
021921,000233: 17,2217 52073 DXCH RUPTREG3 # PUT MINUS (ENGINEON TIME) IN RUPTREGS
021922,000234: 17,2220 53762 DXCH /TEMP5/ # AND SAVE FORMER CONTENTS FOR ISWRETRN.
021923,000235:
021924,000236: 17,2221 00006 EXTEND # BLEND IN THE CURRENT TIME.
021925,000237: 17,2222 30025 DCA TIME2
021926,000238: 17,2223 20073 DAS RUPTREG3
021927,000239:
021928,000240: 17,2224 37746 CAF HALF # FORCE SIGN AGREEMENT.
021929,000241: 17,2225 60000 DOUBLE
021930,000242: 17,2226 60073 AD RUPTREG4
021931,000243: 17,2227 54073 TS RUPTREG4
021932,000244: 17,2230 37767 CAF ZERO
021933,000245: 17,2231 67771 AD NEGONE
021934,000246: 17,2232 26072 ADS RUPTREG3
021935,000247:
021936,000248: 17,2233 30072 CA RUPTREG3 # SEE IF BURN HAS BEEN LONGER THAN
021937,000249: 17,2234 00006 EXTEND # 163.84 SECONDS.
021938,000250: 17,2235 12247 BZF 17INSRTC # *LESS THAN 163.84 SECONDS*
021939,000251:
021940,000252: 17,2236 00006 17INSRTA EXTEND # *MORE THAN 163.84 SECONDS*
021941,000253: 17,2237 31762 DCA /TEMP5/
021942,000254: 17,2240 52073 DXCH RUPTREG3 # RESTORE RUPTREGS FOR ISWRETRN.
021943,000255:
021944,000256: 17,2241 37745 17INSRTF CAF NEGMAX # SET TMINAPS NEGATIVE TO INACTIVATE
021945,000257: 17,2242 55763 TS TMINAPS # THE ENGINOFF DELAY LOGIC
021946,000258:
021947,000259: 17,2243 31756 17INSRTB CA /TEMP2/ # RESTORE CALLERS EBANK.
021948,000260: 17,2244 54003 TS EBANK
021949,000261: 17,2245 05225 TC POSTJUMP # RETURN TO THE ENGINOFF SEQUENCE.
021950,000262: 17,2246 40264 CADR ENGINOFF +1
021951,000263:
021952,000264: 17,2247 40073 17INSRTC CS RUPTREG4 # CHECK LENGTH OF BURN AGAINST TMINAPS.
021953,000265: 17,2250 61763 AD TMINAPS
021954,000266: 17,2251 00006 EXTEND
021955,000267: 17,2252 62236 BZMF 17INSRTA # BURN IS LONG ENOUTH - DO THE ENGINOFF.
021956,000268:
021957,000269: 17,2253 05663 TC WAITLIST # SUSPEND CURRENT MISSION PHASE AND SET
021958,000270: 17,2254 E6,1763 EBANK= TMINAPS # WAITLIST FOR RESUMPTION AT THE PROPER
021959,000271: 17,2254 02236 36066 2CADR 17INSRTA # TIME.
021960,000272:
021961,000273: 17,2256 05727 TC TASKOVER
021962,000274:
021963,000275: 17,2257 41075 17INSRTD CS DVMNEXIT +1
021964,000276: 17,2260 62267 AD KILLAVEG +1
021965,000277: 17,2261 00006 EXTEND
021966,000278: 17,2262 12241 BZF 17INSRTF # BBCONS MATCH - DO NOT DELAY
Page 524 |
021968,000280: 17,2263 12215 TCF 17INSRTE
021969,000281:
021970,000282: 17,2264 05221 SWRETADR GENADR SWRETURN
021971,000283:
021972,000284: 17,2265 00071 MP3MMODE OCT 00071 # MAJOR MODE OF MISSION PHASE 3.
021973,000285:
021974,000286: 17,2266 E3,1400 EBANK= LST1
021975,000287: 17,2266 02072 16063 KILLAVEG 2CADR AVEGKILL
021976,000288:
021977,000289: # FOLLOWING CODING LEFT IN PLACE TO KEEP ADDRESSES CONSTANT.
021978,000290:
021979,000291: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
021980,000292:
021981,000293: 17,2270 04736 NOQJETS TC CCSHOLE # LABEL PREVENTS ASSEMBLER CUSSES.
021982,000294: 17,2271 12413 TCF XTRANS
021983,000295: 17,2272 12365 TCF R-,CHKDB
021984,000296: 17,2273 12413 TCF XTRANS
021985,000297:
021986,000298: 17,2274 61501 NEGQEROR AD -RATEDB
021987,000299: 17,2275 00006 EXTEND
021988,000300: 17,2276 62270 BZMF NOQJETS
021989,000301:
021990,000302: 17,2277 11424 CCS RRATEDIF
021991,000303: 17,2300 12311 TCF R+Q-CHKR
021992,000304: 17,2301 12303 TCF Q-NORJTS
021993,000305: 17,2302 12316 TCF R-Q-CHKR
021994,000306:
021995,000307: 17,2303 41423 Q-NORJTS CS QRATEDIF
021996,000308: 17,2304 55437 TS RATEDIF
021997,000309: 17,2305 61500 AD -2JETLIM
021998,000310: 17,2306 00006 EXTEND
021999,000311: 17,2307 63426 BZMF 2JETS+Q
022000,000312: 17,2310 13424 TCF 4JETS+Q
022001,000313:
022002,000314: 17,2311 61501 R+Q-CHKR AD -RATEDB
022003,000315: 17,2312 00006 EXTEND
022004,000316: 17,2313 62303 BZMF Q-NORJTS
022005,000317: 17,2314 03515 TC EDOTVGEN
022006,000318: 17,2315 13344 TCF 2-V.RATE
022007,000319:
022008,000320: 17,2316 61501 R-Q-CHKR AD -RATEDB
022009,000321: 17,2317 00006 EXTEND
022010,000322: 17,2320 62303 BZMF Q-NORJTS
022011,000323: 17,2321 03511 TC EDOTUGEN
022012,000324: 17,2322 00006 EXTEND
022013,000325: 17,2323 61424 SU RRATEDIF
022014,000326: 17,2324 13373 TCF 2+U.RATE
022015,000327:
022016,000328: 17,2325 61501 POSQEROR AD -RATEDB
022017,000329: 17,2326 00006 EXTEND
Page 525 |
022019,000331: 17,2327 62270 BZMF NOQJETS
022020,000332:
022021,000333: 17,2330 11424 CCS RRATEDIF
022022,000334: 17,2331 12342 TCF R+Q+CHKR
022023,000335: 17,2332 12334 TCF Q+NORJTS
022024,000336: 17,2333 12347 TCF R-Q+CHKR
022025,000337:
022026,000338: 17,2334 31423 Q+NORJTS CA QRATEDIF
022027,000339: 17,2335 55437 TS RATEDIF
022028,000340: 17,2336 61500 AD -2JETLIM
022029,000341: 17,2337 00006 EXTEND
022030,000342: 17,2340 63265 BZMF 2JETS-Q
022031,000343: 17,2341 13263 TCF 4JETS-Q
022032,000344:
022033,000345: 17,2342 61501 R+Q+CHKR AD -RATEDB
022034,000346: 17,2343 00006 EXTEND
022035,000347: 17,2344 62334 BZMF Q+NORJTS
022036,000348: 17,2345 03511 TC EDOTUGEN
022037,000349: 17,2346 13243 TCF 2-U.RATE
022038,000350:
022039,000351: 17,2347 61501 R-Q+CHKR AD -RATEDB
022040,000352: 17,2350 00006 EXTEND
022041,000353: 17,2351 62334 BZMF Q+NORJTS
022042,000354: 17,2352 03515 TC EDOTVGEN
022043,000355: 17,2353 13301 TCF 2+V.RATE
022044,000356:
022045,000357: 17,2354 61501 R+,CHKDB AD -RATEDB
022046,000358: 17,2355 00006 EXTEND
022047,000359: 17,2356 62413 BZMF XTRANS
022048,000360: 17,2357 31424 CA RRATEDIF
022049,000361: 17,2360 55437 TS RATEDIF
022050,000362: 17,2361 61500 AD -2JETLIM
022051,000363: 17,2362 00006 EXTEND
022052,000364: 17,2363 63227 BZMF 2JETS-R
022053,000365: 17,2364 13225 TCF 4JETS-R
022054,000366:
022055,000367: 17,2365 61501 R-,CHKDB AD -RATEDB
022056,000368: 17,2366 00006 EXTEND
022057,000369: 17,2367 62413 BZMF XTRANS
022058,000370: 17,2370 41424 CS RRATEDIF
022059,000371: 17,2371 55437 TS RATEDIF
022060,000372: 17,2372 61500 AD -2JETLIM
022061,000373: 17,2373 00006 EXTEND
022062,000374: 17,2374 63412 BZMF 2JETS+R
022063,000375: 17,2375 13410 TCF 4JETS+R
022064,000376:
022065,000377: 17,2376 11437 RTJETIME CCS RATEDIF # SCALED AT PI/4 RADIANS/SECOND
022066,000378: 17,2377 67763 AD ONE
022067,000379: 17,2400 12402 TCF +2
022068,000380: 17,2401 67763 AD ONE # ABS(RATEDIF)
Page 526 |
022070,000382: 17,2402 00006 EXTEND
022071,000383: 17,2403 70066 MP 1/NJETAC # SCALED AT 2(8)/PI SECOND(2)/RADIANS
022072,000384: 17,2404 00006 EXTEND
022073,000385: 17,2405 77760 MP BIT4 # SCALED AT 2(3) SECONDS
022074,000386: 17,2406 30001 CAE L
022075,000387: 17,2407 00006 EXTEND
022076,000388: 17,2410 72557 MP 25/32.QR # TJET NOW PROPERLY SCALED IN A
022077,000389: 17,2411 55612 TS TQR # AT 2(4)16/25 SECONDS
022078,000390: 17,2412 12457 TCF MNIMPTST
022079,000391:
022080,000392:
Page 527 |
022082,000394: # DAP SECTION: XTRANS MOD. NO. 3 DATE: JANUARY 6, 1967.
022083,000395:
022084,000396: # AUTHOR: JOHN S. BLISS (ADAMS ASSOCIATES)
022085,000397:
022086,000398: # MODIFICATION BY: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
022087,000399:
022088,000400: # X-AXIS TRANSLATION LOGIC (IN THE ABSENSE OF Q,R-AXIS ROTATION) IS INITIATED IN THE "XTRANS" SECTION.
022089,000401:
022090,000402: # XTRANS FIRST SETS ADDTLT6 AND ADDT6JTS TO ZERO FOR USE BY "JTLST" AND "T6JOB" WHEN THEY ARE CALLED. IT THEN
022091,000403: # CHECKS FOR PLUS OR MINUS X TRANSLATION REQUESTS FROM THE ASTRONAUT'S STICK. IF NONE IS REQUESTED IN THAT WAY,
022092,000404: # THE ULLAGE BIT OF DAPBOOLS IS CHECKED. (NOTE THAT THE ORDER OF THE TESTS ALLOWS THE ASTRONAUT TO OVERRIDE THE
022093,000405: # INTERNAL ULLAGE REQUEST.) IF NO TRANSLATION IS REQUESTED, ALL Q,R-AXIS JETS ARE TURNED OFF AND THE INTERRUPT
022094,000406: # IS TERMINATED.
022095,000407:
022096,000408: # CALLING SEQUENCE: NONE SUBROUTINES CALLED: WRITEQR
022097,000409:
022098,000410: # NORMAL EXIT: 1. IF NO TRANSLATION, RESUME.
022099,000411: # 2. IF TRANSLATION OR ULLAGE, +/-XTRAN
022100,000412:
022101,000413: # ALARM/ABORT MODE: NONE.
022102,000414:
022103,000415: # INPUT: ULLAGER/DAPBOOLS,BITS7,8/CHANNEL 31.
022104,000416:
022105,000417: # OUTPUT: C(ANYTRANS) = NEGMAX FOR +X TRANSLATION.
022106,000418: # C(ANYTRANS) = POSMAX FOR -X TRANSLATION.
022107,000419: # C(TRANSNOW) = C(TRANSAVE) = +0.
022108,000420: # C(TRANONLY) = PNZ
022109,000421: # C(ADDTLT6), C(ADDT6JTS), C(TQR), C(TOFJTCHG) = 0.
022110,000422:
022111,000423: # C(CHANNEL 5) = 0 IF NO X-TRANSLATION REQUESTED
022112,000424:
022113,000425: # DEBRIS: A, L, Q
022114,000426:
022115,000427:
022116,000428: 17,2413 37767 XTRANS CAF ZERO # PICK UP ZERO AND INITIALIZE
022117,000429: 17,2414 55474 TS ADDTLT6
022118,000430: 17,2415 55473 TS ADDT6JTS
022119,000431: 17,2416 55475 TS TOFJTCHG
022120,000432: 17,2417 55612 TS TQR # A ZERO OF JET TIME FOR THE TORQUE VECTOR
022121,000433:
022122,000434: 17,2420 37755 CAF BIT7 # IS PLUS X TRANSLATION DESIRED
022123,000435: 17,2421 00006 EXTEND
022124,000436: 17,2422 02031 RAND 31 # CHANNEL 31 BITS INVERTED
022125,000437: 17,2423 00006 EXTEND
022126,000438: 17,2424 12441 BZF +XORULGE # YES, +X
022127,000439:
022128,000440: 17,2425 37754 CAF BIT8 # NO, IS MINUS X TRANSLATION DESIRED
022129,000441: 17,2426 00006 EXTEND
022130,000442: 17,2427 02031 RAND 31 # CHANNEL 31 BITS INVERTED
Page 528 |
022132,000444: 17,2430 00006 EXTEND
022133,000445: 17,2431 12443 BZF -XTRANS # YES, -X
022134,000446:
022135,000447: 17,2432 37756 CAF BIT6 # NO, IS ULLAGE(+X TRANSLATION) DESIRED
022136,000448: 17,2433 70077 MASK DAPBOOLS
022137,000449: 17,2434 10000 CCS A
022138,000450: 17,2435 12441 TCF +XORULGE # YES, ULLAGE
022139,000451:
022140,000452: 17,2436 37767 CAF ZERO # SINCE NEITHER ROTATION NOR TRANSLATION
022141,000453: 17,2437 06046 TC WRITEQR # ARE NEEDED, TURN OFF ALL Q,R-AXES JETS.
022142,000454: 17,2440 15733 TCF RESUME
022143,000455:
022144,000456: 17,2441 37745 +XORULGE CAF NEGMAX # PLUS TRANSLATION OR ULLAGE DESIRED:
022145,000457: 17,2442 12444 TCF +2 # LOAD NEGMAX IN A AND SKIP NEXT OPCODE TO
022146,000458:
022147,000459: 17,2443 37743 -XTRANS CAF POSMAX # -X TRANSLATION DESIRED, A = POSMAX, AND
022148,000460: 17,2444 54071 TS ANYTRANS # LOAD ANYTRANS WITH A(NEG/POS MAX)
022149,000461:
022150,000462: 17,2445 37767 CAF ZERO # INITIALIZE TRANSNOW AND TRANSAVE WITH
022151,000463: 17,2446 54072 TS TRANSNOW # ZERO FOR USE IN THE JET POLICY SELECTION
022152,000464: 17,2447 54073 TS TRANSAVE # PROGRAM.
022153,000465:
022154,000466: 17,2450 00006 EXTEND # SET UP 2CADR FOR TRANSFER TO +/-XTRAN.
022155,000467: 17,2451 32455 DCA JTPOLADR
022156,000468: 17,2452 54070 TS TRANONLY # STORE POSITIVE, NON-ZERO S-REGISTER IN
022157,000469: 17,2453 52006 DTCB # TRANONLY. AFTER +/-XTRAN, GO TO JTLST.
022158,000470:
022159,000471: 17,2454 E6,1471 EBANK= JTSONNOW
022160,000472: 17,2454 02447 40066 JTPOLADR 2CADR +/-XTRAN # TRANSLATION ONLY ENTRY TO JET POLICY
022161,000473:
022162,000474:
Page 529 |
022164,000476: # ALL Q,R AXES TQR COMPUTATIONS TERMINATE IN THIS PROGRAM WHICH PERFORMS A SERIES OF TESTS TO DETERMINE THE TRUE
022165,000477: # TIME THE JETS SHOULD BE ON. THESE TESTS ARE AS FOLLOWS ...
022166,000478:
022167,000479: # 1. TEST THE ON TIME AGAINST THE 7.5 MS ELECTRICAL COMMAND (MIN).IF THE ON TIME IS LESS THAN THE MINIMUM
022168,000480: # WE BUG OUT TO XTRAN,WHERE X TRANSLATION IS DONE(IF NEEDED).
022169,000481:
022170,000482: # 2. TEST THE ON TIME AGAINST 150 MS, IF TQR IS GREATER THAN 150MS ,THEN THE NEXT QR AXIS IS DONE IN 100 MS.
022171,000483: # IF TQR IS LESS THAN 150 MS, THEN THE NEXT QR AXIS IS DONE IN 200 MS. THAT IS A QR AXIS SKIP IS DONE.
022172,000484:
022173,000485: # 3. WHEN TQR IS LESS THAN 150 MS THE PROGRAM GOES TO THE JET LIST PROGRAM WHERE THE T6 CLOCK IS SET UP.
022174,000486:
022175,000487: # 4. BEFORE GOING TO THE JET LIST THE COMPUTED TIME HAS EITHER 7.5 MS ADDED OR 5MS SUBTRACTED-THE EXACT
022176,000488: # OPERATION BEING DECIDED BY WHETHER THE JETS WHICH ARE TO GO ON ARE OFF OR ARE ON RESPECTIVELY.
022177,000489:
022178,000490: # 5. IF SOME OF THE JETS WHICH ARE TO GO ON ARE NOW ON AND SOME ARE OFF, THEN A ******* COMPUTATION CALLED
022179,000491: # NOTRANS DECIDES WHICH JETS GO OFF AT TQR AND WHICH GO OFF AT TQR+6.5MS. THIS 6.5 MS. IS STORED IN
022180,000492: # ADDTLT6. ADDTLT6 IS SET TO ZERO OTHERWISE.
022181,000493:
022182,000494: 17,2456 55612 NORMRETN TS TQR
022183,000495:
022184,000496:
022185,000497: 17,2457 41612 MNIMPTST CS TQR # TEST FOR TQR GREATER THAN MIN. IMPULSE.
022186,000498: 17,2460 62556 AD +T6TJMIN
022187,000499: 17,2461 00006 EXTEND # CORRECT BRANCH.
022188,000500: 17,2462 62464 BZMF TQRGTTMI # BRANCH FOR TQR = OR GREATER THAN MINIMP.
022189,000501: 17,2463 12413 TCF XTRANS # SEE IF TRANSLATION IS DESIRED .
022190,000502: 17,2464 31612 TQRGTTMI CAE TQR # HERE JETS ON FOR LONGER THAN GRUMANN
022191,000503: 17,2465 55475 TS TOFJTCHG # MINIMUM IMPULSE SPECIFICATIONS.
022192,000504: 17,2466 62555 AD -1.5CSP
022193,000505: 17,2467 00006 EXTEND
022194,000506: 17,2470 62475 BZMF DOQRSKIP
022195,000507: 17,2471 31471 CAE JTSONNOW
022196,000508: 17,2472 06046 TC WRITEQR
022197,000509: 17,2473 15733 TCF RESUME
022198,000510:
022199,000511: 17,2474 02102 SKIPQRAD GENADR SKIPQRAX
022200,000512: # CHANGE JET ON AND OFF BITS TO ACCOUNT FOR THE PRESENT STATE OF THE
022201,000513: # CHANNEL. THE CHANGES ACCOUNT FOR PURE ROTATION ONLY- NOT TRANSLATION.
022202,000514: 17,2475 31471 DOQRSKIP CA JTSONNOW
022203,000515: 17,2476 00006 EXTEND
022204,000516: 17,2477 02005 RAND 5 # MASK THE CHANNEL WITH THE DESIRED STATE.
022205,000517: 17,2500 00006 FROMROOT EXTEND # ENTER HERE FROM DORUTDUM (IN K.E. BANK)
022206,000518: 17,2501 12526 BZF NOQRON # A IS ZERO IF NO JETS TO GO ON ARE ON.
022207,000519: 17,2502 67745 AD BIT15 # MAKE DIFFERENCE CORRESPOND TO A QR JET.
022208,000520: 17,2503 00006 EXTEND
022209,000521: 17,2504 61471 SU JTSONNOW # RESULT IS COMPLEMENT OF JET BITS WHICH
022210,000522: 17,2505 54001 TS L # ARE TO BE ON FOR 6.5MS MORE THAN CALC.
022211,000523: 17,2506 00006 EXTEND
022212,000524: 17,2507 12531 BZF JTSAREON # A=0,THUS ALL JETS TO GO ON ARE NOW ON.
Page 530 |
022214,000526: 17,2510 31472 TRSLTMN2 CAE JTSATCHG
022215,000527: 17,2511 77743 MASK POSMAX # REMOVE BIT15 FROM JTSATCHG.
022216,000528: 17,2512 00006 EXTEND
022217,000529: 17,2513 12517 BZF NOTRANS # IF JTSATCHG = 0 THEN NO TRANSLATION NOW.
022218,000530: 17,2514 32566 CA 14-TQRMN
022219,000531: 17,2515 27475 ADS TOFJTCHG # INSURE T GREATER THAN 14 MS.
022220,000532: 17,2516 12544 TCF TOJTLST
022221,000533: 17,2517 40001 NOTRANS CS L
022222,000534: 17,2520 67745 AD BIT15 # MAKE JET BITS CORRESPOND TO QR AXIS.
022223,000535: 17,2521 57472 XCH JTSATCHG # JTSONNOW - L = JETS ON AT TOFJTCHG.
022224,000536: 17,2522 55473 TS ADDT6JTS # JTS ON AT TOFJTCHG +ONDELAY.
022225,000537: 17,2523 32566 CA 14-TQRMN
022226,000538: 17,2524 55474 TS ADDTLT6
022227,000539: 17,2525 12544 TCF TOJTLST
022228,000540: 17,2526 32566 NOQRON CA 14-TQRMN
022229,000541: 17,2527 27475 ADS TOFJTCHG
022230,000542: 17,2530 12542 TCF TOJTLST -2
022231,000543: 17,2531 31472 JTSAREON CAE JTSATCHG
022232,000544: 17,2532 77743 MASK POSMAX
022233,000545: 17,2533 00006 EXTEND
022234,000546: 17,2534 12536 BZF +2
022235,000547: 17,2535 12542 TCF TOJTLST -2
022236,000548: 17,2536 32565 CAF MCOMPTQR
022237,000549: 17,2537 27475 ADS TOFJTCHG
022238,000550: 17,2540 00006 EXTEND # TEST FOR COMPUTATION OF NEGATIVE OR ZERO
022239,000551: 17,2541 62553 BZMF QUICKOFF # TOFJTCHG, IF SO, MAKE -0.
022240,000552: 17,2542 37767 -2 CAF ZERO
022241,000553: 17,2543 55474 TS ADDTLT6
022242,000554: 17,2544 32474 TOJTLST CA SKIPQRAD
022243,000555: 17,2545 55653 TS QJUMPADR
022244,000556: 17,2546 31471 CAE JTSONNOW # TURN ON JETS TO GO ON NOW (EVEN IF ALL
022245,000557: 17,2547 06046 TC WRITEQR # ARE ALREADY ON), AFTER TESTING FOR RISE.
022246,000558: 17,2550 00006 EXTEND
022247,000559: 17,2551 32606 DCA JTLSTADR
022248,000560: 17,2552 52006 DTCB
022249,000561:
022250,000562: 17,2553 41475 QUICKOFF CS TOFJTCHG # SET TOFJTCHG TO -0 IN SHORTEST WAY.
022251,000563: 17,2554 12527 TCF NOQRON +1
022252,000564:
022253,000565: 17,2555 77417 -1.5CSP DEC -0.01465
022254,000566: 17,2556 00014 +T6TJMIN DEC +.00073
022255,000567: 17,2557 31000 25/32.QR DEC 0.78125
022256,000568: 17,2560 37776 MS20QR OCTAL 37776
022257,000569: 17,2561 37775 MS30QR OCTAL 37775
022258,000570: 17,2562 37773 MS50QR OCTAL 37773
022259,000571: 17,2563 00010 16/32400 DEC 0.00049
022260,000572: 17,2564 00600 BIT8,9 OCTAL 00600
022261,000573: 17,2565 77757 MCOMPTQR DEC -16 B-14 # -10 MS SCALED AS TIME6.
022262,000574: 17,2566 00013 14-TQRMN DEC 11 B-14
022263,000575: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
Page 531 |
022265,000577: 17,2567 04736 MINTADR GENADR CCSHOLE
022266,000578: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
022267,000579: 17,2570 43415 -.88975 DEC -.88975
022268,000580: 17,2571 20000 (1-K),QR DEC 0.50000 # K = 1/2
022269,000581: 17,2572 02000 (1-KQ)/8 DEC 0.06250
022270,000582: 17,2573 77557 -90MS DEC -.00879
022271,000583: 17,2574 00220 +90MS DEC 0.00879
022272,000584: 17,2575 77537 NEGCSP2 DEC -.00977
022273,000585: 17,2576 40252 ALL+XJTS OCTAL 40252
022274,000586: 17,2577 00201 2,10-OUT OCTAL 00201
022275,000587: 17,2600 40042 +X,A OCTAL 40042
022276,000588: 17,2601 40210 +X,B OCTAL 40210
022277,000589: 17,2602 00104 1,9-OUT OCTAL 00104
022278,000590: 17,2603 40104 -X,A OCTAL 40104
022279,000591: 17,2604 40021 -X,B OCTAL 40021
022280,000592: 17,2605 E6,1471 EBANK= JTSONNOW
022281,000593: 17,2605 03402 34066 JTLSTADR 2CADR JTLST
022282,000594:
022283,000595: 17,2607 02376 RTJETADR GENADR RTJETIME
022284,000596:
022285,000597:
Page 532 |
022287,000599: # Q,R-AXES ATTITUDE STEERING CALCULATIONS:
022288,000600:
022289,000601: # (EXECUTED WHEN LGC IS IN AUTOMATIC SCSMODE OR IF SCSMODE IS ATTITUDE HOLD AND THE ROTATIONAL HAND CONTROLLER IS
022290,000602: # NEITHER OUT OF DETENT NOR IS THE RATE COMMAND BIT SET IN DAPBOOLS)
022291,000603:
022292,000604: 17,2610 00006 CHKGIMBL EXTEND
022293,000605: 17,2611 32617 DCA TRYGTSAD # TRYGTS ATTEMPTS GTS CONTROL.
022294,000606: 17,2612 52006 DXCH Z
022295,000607: 17,2613 04736 TC CCSHOLE
022296,000608:
022297,000609: 17,2614 07400 BGIM24 OCTAL 07400
022298,000610: 17,2615 03533 DESCADR GENADR TJETLAW
022299,000611:
022300,000612: 17,2616 E6,1542 EBANK= DT
022301,000613: 17,2616 03573 42066 TRYGTSAD 2CADR TRYGTS # TRYGTS ATTEMPTS GTS CONTROL.
022302,000614:
022303,000615:
Page 533 |
022305,000617: # "ATTSTEER" IS THE NOMINAL ENTRY POINT FOR REACTION CONTROL SYSTEM ATTITUDE STEERING
022306,000618:
022307,000619: 17,2620 17,2620 ATTSTEER EQUALS QERRCALC
022308,000620: 17,2620 30033 QERRCALC CAE CDUY # Q-ERROR CALCULATION
022309,000621: 17,2621 00006 EXTEND
022310,000622: 17,2622 20767 MSU CDUYD # CDU ANGLE - ANGLE DESIRED (Y-AXIS)
022311,000623: 17,2623 54061 TS ITEMP1 # SAVE FOR RERRCALC
022312,000624: 17,2624 00006 EXTEND
022313,000625: 17,2625 71405 MP M21 # (CDUY-CDUYD)*M21 SCALED AT PI RADIANS
022314,000626: 17,2626 57413 XCH ER # SAVE FIRST TERM (OF TWO) IN OPP.AXIS REG
022315,000627: 17,2627 30034 CAE CDUZ # SECOND TERM CALCULATION:
022316,000628: 17,2630 00006 EXTEND
022317,000629: 17,2631 20770 MSU CDUZD # CDU ANGLE -ANGLE DESIRED (Z-AXIS)
022318,000630: 17,2632 54062 TS ITEMP2 # SAVE FOR RERRCALC
022319,000631: 17,2633 00006 EXTEND
022320,000632: 17,2634 71401 MP M22 # (CDUZ-CDUZD)*M22 SCALED AT PI RADIANS
022321,000633: 17,2635 27413 ADS ER # SAVE SUM OF TERMS, NO OVERFLOW EVER
022322,000634: 17,2636 55467 TS QERROR # SAVE QERROR FOR EIGHT-BALL DISPLAY
022323,000635:
022324,000636: 17,2637 30061 RERRCALC CAE ITEMP1 # R-ERROR CALCULATION:
022325,000637: 17,2640 00006 EXTEND # CDU ANGLE -ANGLE DESIRED (Y-AXIS)
022326,000638: 17,2641 71406 MP M31 # (CDUY-CDUYD)*M31 SCALED AT PI RADIANS
022327,000639: 17,2642 57411 XCH E # SAVE FIRST TERM (OF TWO) IN OPP.AXIS REG
022328,000640: 17,2643 30062 CAE ITEMP2 # SECOND TERM CALCULATION:
022329,000641: 17,2644 00006 EXTEND # CDU ANGLE -ANGLE DESIRED (Z-AXIS)
022330,000642: 17,2645 71403 MP M32 # (CDUZ-CDUZD)*M32 SCALED AT PI RADIANS
022331,000643: 17,2646 27411 ADS E # SAVE SUM OF TERMS, NO OVERFLOW EVER
022332,000644: 17,2647 55470 TS RERROR # SAVE R-ERROR FOR EIGHT-BALL DISPLAY
022333,000645:
022334,000646: 17,2650 12715 TCF STILLRCS
022335,000647:
022336,000648: # THIS CODING IS ENTERED FROM BURGZERO, WHEN BOTH URGENCIES ARE ZERO. EXITS TO GTS IF POSSIBLE, XTRANS OTHERWISE
022337,000649:
022338,000650: 17,2651 37762 GIMBLTRY CAF USEQRJTS # IS JET USAGE MANDATORY.
022339,000651: 17,2652 70077 MASK DAPBOOLS
022340,000652: 17,2653 10000 CCS A
022341,000653: 17,2654 12413 TCF XTRANS # YES. GO TO XTRANS.
022342,000654:
022343,000655: 17,2655 00006 EXTEND # ARE GIMBALS DRIVING?
022344,000656: 17,2656 00012 READ 12
022345,000657: 17,2657 72614 MASK BGIM24 # BITS 9,10,11,12 ARE GIMBAL DRIVE BITS.
022346,000658: 17,2660 10000 CCS A
022347,000659: 17,2661 12413 TCF XTRANS # YES. DRIVING. GO TO XTRANS.
022348,000660:
022349,000661: 17,2662 00006 EXTEND # NO. CHECK JETS.
022350,000662: 17,2663 00005 READ 5 # ARE ANY Q,R JETS ON NOW.
022351,000663: # (CAN ONLY BE ROTATION JETS.)
022352,000664: 17,2664 00006 EXTEND
022353,000665: 17,2665 12413 BZF XTRANS # NO. GO TO XTRANS.
022354,000666:
Page 534 |
022356,000668: 17,2666 37767 CAF ZERO # YES. TURN OFF JETS.
022357,000669: 17,2667 00006 EXTEND
022358,000670: 17,2670 01005 WRITE 5
022359,000671:
022360,000672: 17,2671 00006 EXTEND # NO. GO TO GTS.
022361,000673: 17,2672 32675 DCA GOGTSADR
022362,000674: 17,2673 52006 DXCH Z
022363,000675:
022364,000676: 17,2674 E6,1542 EBANK= DT
022365,000677: 17,2674 03604 42066 GOGTSADR 2CADR GOTOGTS
022366,000678:
022367,000679: # REMAINING CODING (HERE TO STILLRCS) STAYS IN TO KEEP ADDRESSES CONSTANT.
022368,000680:
022369,000681: 17,2676 04736 TC CCSHOLE # FILLER.
022370,000682: 17,2677 12715 TCF STILLRCS # NO. SO USE RCS.
022371,000683: 17,2700 50066 INDEX QRCNTR # YES. TRY THE ERROR MAGNITUDE.
022372,000684: 17,2701 11467 CCS QDIFF # IS ERROR SMALL ENOUGH FOR GTS.
022373,000685: 17,2702 62714 AD -XBND+1 # -1.4 DEG SCALED AT PI + 1 BIT
022374,000686: 17,2703 12705 TCF +2
022375,000687: 17,2704 62714 AD -XBND+1
022376,000688: 17,2705 00006 EXTEND
022377,000689: 17,2706 62710 BZMF +2 # IS ERROR LESS,EQUAL 1.4 DEG.
022378,000690: 17,2707 12715 TCF STILLRCS # NO. USE RCS CONTROL.
022379,000691: 17,2710 10066 CCS QRCNTR # THIS AXIS IS FINE. ARE BOTH DONE.
022380,000692: 17,2711 04736 TC CCSHOLE # REMOVE REFERENCE TO ELIMINATED SYMBOL.
022381,000693: 17,2712 04736 TC CCSHOLE # FILLER.
022382,000694: 17,2713 77512 -RATLM+1 OCT 77512 # -.5 DEG/SEC SCALED AT PI/4 + 1 BIT
022383,000695: 17,2714 77601 -XBND+1 OCT 77601 # -1.4 DEG SCALED AT PI, + 1 BIT.
022384,000696: # "STILLRCS" IS THE ENTRY POINT TO RCS ATTITUDE STERRING WHENEVER IT IS FOUND THAT THE TRIM GIMBAL CONTROL
022385,000697: # SYSTEM SHOULD NOT BE USED;
022386,000698:
Page 535 |
022388,000700: # Q,R-AXES RCS URGENCY FUNCTION LOGIC:
022389,000701:
022390,000702: 17,2715 10077 STILLRCS CCS DAPBOOLS # BRANCH TO SPS-BACKUP RCS CONTROL LOGIC.
022391,000703: 17,2716 13526 TCF SPSBAKUP # WHEN BIT15/DAPBOOLS = 0.
022392,000704: 17,2717 12720 NOOP
022393,000705: 17,2720 32615 CAF DESCADR # SET JET SELECT LOGIC RETURN ADDRESS TO
022394,000706: 17,2721 54062 TS TJETADR # THE Q,R-AXIS TJETLAW CALCULATION
022395,000707:
022396,000708: 17,2722 06013 TC T6JOBCHK # CHECK T6 CLOCK RUPT BEFORE SUBROUTINE
022397,000709:
022398,000710: # CALCULATE THE RATE ERRORS SCALED AT PI/4 RADIANS/SECOND(2):
022399,000711:
022400,000712: 17,2723 40775 CS OMEGAQD
022401,000713: 17,2724 61416 AD OMEGAQ # EDOTQ = OMEGAQ - OMEGAQD
022402,000714: 17,2725 55423 TS EDOTQ
022403,000715:
022404,000716: 17,2726 40776 CS OMEGARD
022405,000717: 17,2727 61420 AD OMEGAR # EDOTR = OMEGAR - OMEGARD
022406,000718: 17,2730 55424 TS EDOTR
022407,000719:
Page 536 |
022409,000721: # Q,R-AXES URGENCY FUNCTION LOOP:
022410,000722:
022411,000723: # SET UP LOOP TO DO R-AXIS, THEN Q-AXIS:
022412,000724:
022413,000725: 17,2731 37763 CAF ONE # 1: REFERS TO R-AXIS VARIABLES.
022414,000726: 17,2732 54061 TS AXISCNTR # 0: REFERS TO Q-AXIS VARIABLES.
022415,000727:
022416,000728: # PICK UP EDOT AND RESCALE FROM PI/4 TO PI/16 RADIANS/SECOND:
022417,000729:
022418,000730: 17,2733 50061 URGLOOP INDEX AXISCNTR # ERROR RATES ARE PRE-CALCULATED BY RATE
022419,000731: 17,2734 31423 CAE EDOTQ # DERIVATION SCALED AT PI/4 RADIANS/SECOND
022420,000732: 17,2735 00006 EXTEND # MULTIPLYING BY FOUR (BIT3) LEAVES EDOT
022421,000733: 17,2736 77761 MP FOUR # AS C(L) IF EDOT LESS THAN 11.25 DEG/SEC.
022422,000734: 17,2737 00006 EXTEND
022423,000735: 17,2740 12742 BZF +2 # IF C(A) NON-ZERO, THEN EDOT GREATER THAN
022424,000736: 17,2741 13010 TCF EDOTMAX # 11.25 DEG/SEC IN MAGNITUDE, SO LIMIT IT.
022425,000737:
022426,000738: 17,2742 10001 CCS L # INSURE NON-ZERO EDOT:
022427,000739: 17,2743 67762 AD TWO # C(L) PNZ REMAINS UNCHANGED.
022428,000740: 17,2744 12746 TCF +2 # C(L) NNZ REMAINS UNCHANGED.
022429,000741: 17,2745 40000 COM # C(L) +0 BECOMES 77776.
022430,000742: 17,2746 67771 AD NEG1 # C(L) -0 BECOMES 77776.
022431,000743: 17,2747 55407 EDOTSTOR TS EDOT # SAVE NON-ZERO EDOT SCALED AT PI/16.
022432,000744:
022433,000745: 17,2750 00006 EXTEND # CALCULATE (EDOT)(EDOT):
022434,000746: 17,2751 70000 SQUARE
022435,000747: 17,2752 55412 TS EDOT(2) # SCALED AT PI(2)/2(+8) RAD(2)/SEC(2).
022436,000748:
022437,000749: 17,2753 00006 EXTEND # 0.5 +8 2
022438,000750: 17,2754 50061 INDEX AXISCNTR # ------ SCALED AT 2 /PI SEC /RAD.
022439,000751: 17,2755 71717 MP 1/ACCQ # ACCQ,R
022440,000752: 17,2756 00006 EXTEND # DEADBAND = 5.0 OR 1.0 OR 0.3 DEGREES
022441,000753: 17,2757 60375 SU DB # SCALED AT PI RADIANS.
022442,000754: 17,2760 55441 TS FPQR # 0.5(1/ACC)EDOT(2)-DB SCALED AT PI RADS.
022443,000755:
022444,000756: 17,2761 31412 CAE EDOT(2) # SCALED AT PI(2)/2(8) RAD(2)/SEC(2).
022445,000757: 17,2762 00006 EXTEND
022446,000758: 17,2763 50061 INDEX AXISCNTR
022447,000759: 17,2764 71721 MP 1/AMINQ # .5(1/ACCMIN) AT 2(8)/PI SEC(2)/RAD.
022448,000760: 17,2765 60375 AD DB # DEADBAND SCALED AT PI RADIANS.
022449,000761: 17,2766 55460 TS FPQRMIN # .5(1/ACCMIN)EDOT(2)+DB SCALED AT PI RAD.
022450,000762:
022451,000763: 17,2767 11407 CCS EDOT # EDOT TEST ON SIGN (NON-ZERO):
022452,000764: 17,2770 31411 CAE E # ATTITUDE ERROR FOR THIS AXIS
022453,000765: 17,2771 12773 TCF +2 # SCALED AT PI RADIANS.
022454,000766: 17,2772 13015 TCF EDOTNEG
022455,000767: 17,2773 27441 ADS FPQR # E+0.5(1/ACC)EDOT(2)-DB SCALED AT PI RAD.
022456,000768:
022457,000769: 17,2774 11407 FTEST CCS EDOT # EDOT GUARANTEED NOT +0 OR -0.
022458,000770: 17,2775 11441 CCS FPQR # FPQR GUARANTEED NOT +0.
Page 537 |
022460,000772: 17,2776 13003 TCF QUICKURG # EDOT.G.+0, FPQR.G.+0.
022461,000773: 17,2777 11441 CCS FPQR # EDOT.L.-0.
022462,000774: 17,3000 13021 TCF FMINCALC # EDOT.L.-0,FPQR.G.+0/EDOT.G.+0,FPQR.L.-0.
022463,000775: 17,3001 13021 TCF FMINCALC # EDOT.G.+0,FPQR.E.-0 (FROM FIRST CCS).
022464,000776: 17,3002 13003 TCF QUICKURG # EDOT.L.-0,FPQR.L.-0.
022465,000777:
022466,000778: 17,3003 31407 QUICKURG CAE EDOT # EDOT.L.-0,FPQR.E.-0 (FROM 2ND CCS).
022467,000779: 17,3004 00006 EXTEND # SCALE FROM PI/16 TO PI RADIANS/SECOND
022468,000780: 17,3005 77751 MP BIT11 # TO HAVE SAME SCALING AS FPQR AFTER THE
022469,000781: 17,3006 61441 AD FPQR # IMPLICIT MULT. OF FPQR BY 1/SEC.
022470,000782: 17,3007 13043 TCF URGMULT # THIS URGENCY = (1/ACC)(FPQR+EDOT).
022471,000783:
022472,000784: 17,3010 10000 EDOTMAX CCS A # GUARANTEED NOT +0 OR -0.
022473,000785: 17,3011 37743 CAF POSMAX
022474,000786: 17,3012 12747 TCF EDOTSTOR # SET EDOT TO SIGNED MAXIMUM.
022475,000787: 17,3013 47743 CS POSMAX
022476,000788: 17,3014 12747 TCF EDOTSTOR # SCALED AT PI/16 RADIANS/SECOND.
022477,000789:
022478,000790: 17,3015 41441 EDOTNEG CS FPQR # SCALED AT PI RADIANS
022479,000791: 17,3016 61411 AD E # ATTITUDE ERROR FOR THIS AXIS
022480,000792: 17,3017 55441 TS FPQR # E-0.5(1/ACC)EDOT(2)+DB SCALED AT PI RAD.
022481,000793: 17,3020 12774 TCF FTEST
022482,000794:
022483,000795: 17,3021 11441 FMINCALC CCS FPQR # NECESSARY RETEST ON FPQR;
022484,000796: 17,3022 41460 CS FPQRMIN
022485,000797: 17,3023 13025 TCF +2 # E-0.5(1/ACCMIN)EDOT(2)-DB
022486,000798: 17,3024 31460 CAE FPQRMIN
022487,000799: 17,3025 61411 AD E # E+0.5(1/ACCMIN)EDOT(2)+DB
022488,000800: 17,3026 55460 TS FPQRMIN # SCALED AT PI RADIANS.
022489,000801:
022490,000802: 17,3027 11407 CCS EDOT # EDOT GUARANTEED NOT +0 OR -0.
022491,000803: 17,3030 11460 CCS FPQRMIN # FPQRMIN GUARANTEED NOT +0 (CALL IT F).
022492,000804: 17,3031 13036 TCF ZEROURG # EDOT.G.+0, F.G.+0.
022493,000805: 17,3032 11460 CCS FPQRMIN # EDOT.L.-0.
022494,000806: 17,3033 13042 TCF NORMURG # EDOT.L.-0, F.G.+0 / EDOT.G.+0, F.L.-0.
022495,000807: 17,3034 13042 TCF NORMURG # EDOT.G.+0, F.E.-0 (FROM FIRST CCS).
022496,000808: 17,3035 13036 TCF ZEROURG # EDOT.L.-0, F.L.-0.
022497,000809: 17,3036 00006 ZEROURG EXTEND # EDOT.L.-0, F.E.-0 (FROM 2ND CCS).
022498,000810: 17,3037 33117 DCA DPZEROY # THIS URGENCY IS ZERO.
022499,000811: 17,3040 53503 DXCH URGENCYQ
022500,000812: 17,3041 13047 TCF MOREURG # TEST FOR NEXT AXIS
022501,000813:
022502,000814: 17,3042 31460 NORMURG CAE FPQRMIN # THIS URGENCY IS FPQRMIN(1/ACC).
022503,000815: 17,3043 00006 URGMULT EXTEND
022504,000816: 17,3044 50061 INDEX AXISCNTR
022505,000817: 17,3045 71717 MP 1/ACCQ
022506,000818: 17,3046 53503 DXCH URGENCYQ # SAVE D.P. SCALED AT 2(+9).
022507,000819:
022508,000820: 17,3047 10061 MOREURG CCS AXISCNTR # TEST FOR END OF LOOP
022509,000821: 17,3050 13052 TCF +2 # CONTINUE.
022510,000822:
Page 538 |
022512,000824: 17,3051 13120 TCF URGSCALQ # FINISHED.
022513,000825:
022514,000826: 17,3052 54061 TS AXISCNTR # Q-AXIS
022515,000827:
022516,000828: 17,3053 00006 EXTEND
022517,000829: 17,3054 31503 DCA URGENCYQ # SET URGENCYR
022518,000830: 17,3055 53505 DXCH URGENCYR
022519,000831:
022520,000832: 17,3056 53412 DXCH E # SET ER,EDOT(2)R
022521,000833: 17,3057 53414 DXCH ER
022522,000834: 17,3060 55411 TS EQ # SET EQ
022523,000835: 17,3061 31407 CAE EDOT
022524,000836: 17,3062 55410 TS EDOT(R) # SET EDOT(R).
022525,000837:
022526,000838: 17,3063 12733 TCF URGLOOP # CONTINUE.
022527,000839:
022528,000840: # SUFFICIENT TEST FOR URGENCY RESCALING:
022529,000841:
022530,000842: 17,3064 11504 URGSCALR CCS URGENCYR # IF ABVAL(URGENCYR) LESS THAN SCALE BOUND
022531,000843: 17,3065 63115 AD SCALEBND
022532,000844: 17,3066 13070 TCF +2 # THEN BOTH URGENCIES CAN BE RESCALED FROM
022533,000845: 17,3067 63115 AD SCALEBND
022534,000846: 17,3070 00006 EXTEND # 2(+9) TO 2(+4) SECONDS.
022535,000847: 17,3071 63073 BZMF URGSCALE
022536,000848: 17,3072 13126 TCF URGLIMS
022537,000849:
022538,000850: # RESCALE BOTH URGENCIES FROM 2(+9) TO 2(+4) SECONDS:
022539,000851:
022540,000852: 17,3073 31502 URGSCALE CAE URGENCYQ # SHIFT D.P. URGENCYQ LEFT 5-PLACES TO
022541,000853: 17,3074 00006 EXTEND # FORM S.P. URGENCYQ NOW SCALED AT 16 SECS
022542,000854: 17,3075 77756 MP BIT6
022543,000855: 17,3076 23502 LXCH URGENCYQ
022544,000856: 17,3077 31503 CAE URGENCYQ +1
022545,000857: 17,3100 00006 EXTEND
022546,000858: 17,3101 77756 MP BIT6
022547,000859: 17,3102 27502 ADS URGENCYQ
022548,000860:
022549,000861: 17,3103 31504 CAE URGENCYR # SHIFT D.P. URGENCYR LEFT 5-PLACES TO
022550,000862: 17,3104 00006 EXTEND # FORM S.P. URGENCYR NOW SCALED AT 16 SECS
022551,000863: 17,3105 77756 MP BIT6
022552,000864: 17,3106 23504 LXCH URGENCYR
022553,000865: 17,3107 31505 CAE URGENCYR +1
022554,000866: 17,3110 00006 EXTEND
022555,000867: 17,3111 77756 MP BIT6
022556,000868: 17,3112 27504 ADS URGENCYR
022557,000869:
022558,000870: 17,3113 31477 CAE URGLM2 # SET URGENCY LIMIT FOR 2(+4) SCALING.
022559,000871: 17,3114 13127 TCF URGFUDGE
022560,000872:
022561,000873: 17,3115 77400 SCALEBND OCTAL 77400 # -8 SECONDS SCALED AT 2(+9).
Page 539 |
022563,000875: 17,3116 00000 00000 DPZEROY 2DEC 0 B-28
022564,000876:
022565,000877: # NECESSARY TEST FOR URGENCY RESCALING:
022566,000878:
022567,000879: 17,3120 11502 URGSCALQ CCS URGENCYQ # IF ABVAL(URGENCYQ) LESS THAN SCALE BOUND
022568,000880: 17,3121 63115 AD SCALEBND
022569,000881: 17,3122 13124 TCF +2 # THEN TEST URGENCYR FOR RESCALABLE
022570,000882: 17,3123 63115 AD SCALEBND
022571,000883: 17,3124 00006 EXTEND # MAGNITUDE.
022572,000884: 17,3125 63064 BZMF URGSCALR
022573,000885:
022574,000886: 17,3126 31476 URGLIMS CAE URGLM1 # SET URGENCY LIMIT FOR 2(+9) SCALING.
022575,000887: 17,3127 54066 URGFUDGE TS URGLIMIT
022576,000888:
022577,000889: # USE URGENCY FUNCTION CORRECTION FACTOR WHEN NECESSARY:
022578,000890:
022579,000891: 17,3130 11660 CCS AOSQ # IF C(AOSQ) ZERO OR IF C(URGENCYQ) ZERO,
022580,000892: 17,3131 41502 CS URGENCYQ # THEN IT IS CLEARLY UNNECESSARY TO FUDGE.
022581,000893: 17,3132 13134 TCF +2 # WHILE MAKING THIS TEST, WE CALCULATE
022582,000894: 17,3133 31502 CAE URGENCYQ # -SIGN(AOSQ)(URGENCYQ) WHICH IF POSITIVE
022583,000895: 17,3134 00006 EXTEND # INDICATES THAT WE ARE TRYING TO FIGHT
022584,000896: 17,3135 63142 BZMF URGFUDG1 # THE EFFECT OF AOSQ, SO WE DO NOT FUDGE.
022585,000897:
022586,000898: 17,3136 31725 CAE URGRATQ # HERE WE KNOW THAT AOSQ WILL ACTUALLY
022587,000899: 17,3137 00006 EXTEND # HELP THE RCS JETS MANEUVER FOR THIS AXIS
022588,000900: 17,3140 71502 MP URGENCYQ # FOR THIS CSP, MULTIPLYING BY URGRATQ
022589,000901: 17,3141 55502 TS URGENCYQ # REDUCES URGENCYQ APPROPRIATELY ENOUGH.
022590,000902:
022591,000903: 17,3142 11661 URGFUDG1 CCS AOSR # HERE WE DO THE SAME LOGIC FOR THE R-AXIS
022592,000904: 17,3143 41504 CS URGENCYR # COMPUTATIONS AS WE DID FOR THE Q-AXIS AT
022593,000905: 17,3144 13146 TCF +2 # URGFUDGE. RATHER THAN REPEAT THE ABOVE
022594,000906: 17,3145 31504 CAE URGENCYR # COMMENTS, WE PROVIDE A BIT OF FURTHER
022595,000907: 17,3146 00006 EXTEND # EXPLANATION; FIRST, ONLY A S.P. URGENCY
022596,000908: 17,3147 63154 BZMF URGPLANE # IS SAVED IF WE DO THE FUDGE, SINCE ONLY
022597,000909:
022598,000910: 17,3150 31726 CAE URGRATR # S.P. URGENCIES ARE REFERENCED BELOW AND
022599,000911: 17,3151 00006 EXTEND # NO D.P. ACCURACY IS NEEDED. SECOND, BY
022600,000912: 17,3152 71504 MP URGENCYR # BY MULTIPLYING BY THE FUDGE RATIO DURING
022601,000913: 17,3153 55504 TS URGENCYR # APS BURNS, WE PREVENT SOME RCS FIRINGS
022602,000914: # WHICH WOULD OVER-CORRECT DUE TO THE AOS.
022603,000915:
022604,000916: 17,3154 31502 URGPLANE CAE URGENCYQ # BEGIN URGENCY-PLANE COMPUTATIONS:
022605,000917: 17,3155 00006 EXTEND
022606,000918: 17,3156 13310 BZF BURGZERO # TEST FOR BOTH URGENCIES ZERO
022607,000919:
022608,000920: 17,3157 00006 EXTEND
022609,000921: 17,3160 73325 MP -TAN22.5
022610,000922: 17,3161 61504 AD URGENCYR
022611,000923: 17,3162 00006 EXTEND
022612,000924: 17,3163 73323 MP COS22.5
Page 540 |
022614,000926: 17,3164 55510 TS TERMA # UR.COS(22.5)-UQ.SIN(22.5)
022615,000927:
022616,000928: 17,3165 41504 CS URGENCYR
022617,000929: 17,3166 00006 EXTEND
022618,000930: 17,3167 73325 MP -TAN22.5
022619,000931: 17,3170 61502 AD URGENCYQ
022620,000932: 17,3171 00006 EXTEND
022621,000933: 17,3172 73323 MP COS22.5
022622,000934: 17,3173 55511 TS TERMB # UR.SIN(22.5)+UQ.COS(22.5)
022623,000935:
022624,000936: 17,3174 61510 A+B/A-B AD TERMA
022625,000937: 17,3175 55506 TS A+B
022626,000938: 17,3176 41511 A-B/ONLY CS TERMB
022627,000939: 17,3177 61510 AD TERMA
022628,000940: 17,3200 55507 TS A-B
022629,000941:
022630,000942: # AXIS AND MODE SELECTION
022631,000943:
022632,000944: 17,3201 31511 CAE TERMB # B URGENCY TEST
022633,000945: 17,3202 00006 EXTEND
022634,000946: 17,3203 63326 BZMF NEGBURG
022635,000947:
022636,000948: 17,3204 31510 POSBURG CAE TERMA # A URGENCY TEST
022637,000949: 17,3205 00006 EXTEND
022638,000950: 17,3206 63252 BZMF NEGAPOSB
022639,000951:
022640,000952: 17,3207 31507 POSAPOSB CAE A-B
022641,000953: 17,3210 00006 EXTEND
022642,000954: 17,3211 63233 BZMF MINUSU # NEGATIVE U-AXIS SELECTED
022643,000955:
022644,000956: 17,3212 31722 2/4JET-R CAE 1/AMINR
022645,000957: 17,3213 55633 TS .5ACCMNE
022646,000958: 17,3214 00006 EXTEND
022647,000959: 17,3215 31414 DCA ER
022648,000960: 17,3216 53412 DXCH E
022649,000961: 17,3217 31410 CAE EDOT(R)
022650,000962: 17,3220 55407 TS EDOT
022651,000963: 17,3221 30066 CAE URGLIMIT
022652,000964: 17,3222 61504 AD URGENCYR
022653,000965: 17,3223 00006 EXTEND
022654,000966: 17,3224 63227 BZMF 2JETS-R
022655,000967:
022656,000968: 17,3225 47763 4JETS-R CS ONE
022657,000969: 17,3226 13431 TCF POLTYPE # GO FIND BEST POLICY
022658,000970:
022659,000971: 17,3227 11671 2JETS-R CCS NJ-R
022660,000972: 17,3230 13225 TCF 4JETS-R
022661,000973: 17,3231 47762 CS TWO
022662,000974: 17,3232 13431 TCF POLTYPE # GO FIND BEST POLICY
022663,000975:
Page 541 |
022665,000977: 17,3233 31723 MINUSU CAE 1/AMINU
022666,000978: 17,3234 55633 TS .5ACCMNE
022667,000979: 17,3235 31502 CAE URGENCYQ
022668,000980: 17,3236 61504 AD URGENCYR
022669,000981: 17,3237 60066 AD URGLIMIT
022670,000982: 17,3240 00006 EXTEND
022671,000983: 17,3241 63245 BZMF 2JETS-U
022672,000984:
022673,000985: 17,3242 03445 2JETSM-U TC UXFORM
022674,000986: 17,3243 36311 2-U.RATE CAF THREE
022675,000987: 17,3244 13431 TCF POLTYPE # GO FIND BEST POLICY
022676,000988:
022677,000989: 17,3245 11673 2JETS-U CCS NJ-U
022678,000990: 17,3246 13242 TCF 2JETSM-U
022679,000991: 17,3247 03445 TC UXFORM
022680,000992: 17,3250 37762 CAF TWO
022681,000993: 17,3251 13431 TCF POLTYPE # GO FIND BEST POLICY
022682,000994:
022683,000995: 17,3252 31506 NEGAPOSB CAE A+B
022684,000996: 17,3253 00006 EXTEND
022685,000997: 17,3254 63271 BZMF PLUSV
022686,000998:
022687,000999: 17,3255 31721 2/4JET-Q CAE 1/AMINQ
022688,001000: 17,3256 55633 TS .5ACCMNE
022689,001001: 17,3257 30066 CAE URGLIMIT
022690,001002: 17,3260 61502 AD URGENCYQ
022691,001003: 17,3261 00006 EXTEND
022692,001004: 17,3262 63265 BZMF 2JETS-Q
022693,001005:
022694,001006: 17,3263 47766 4JETS-Q CS FIVE
022695,001007: 17,3264 13431 TCF POLTYPE # GO FIND BEST POLICY
022696,001008:
022697,001009: 17,3265 11667 2JETS-Q CCS NJ-Q
022698,001010: 17,3266 13263 TCF 4JETS-Q
022699,001011: 17,3267 46306 CS SIX
022700,001012: 17,3270 13431 TCF POLTYPE # GO FIND BEST POLICY
022701,001013:
022702,001014: 17,3271 31724 PLUSV CAE 1/AMINV
022703,001015: 17,3272 55633 TS .5ACCMNE
022704,001016: 17,3273 41504 CS URGENCYR
022705,001017: 17,3274 61502 AD URGENCYQ
022706,001018: 17,3275 60066 AD URGLIMIT
022707,001019: 17,3276 00006 EXTEND
022708,001020: 17,3277 63303 BZMF 2JETS+V
022709,001021:
022710,001022: 17,3300 03437 2JETSM+V TC VXFORM
022711,001023: 17,3301 37766 2+V.RATE CAF FIVE
022712,001024: 17,3302 13431 TCF POLTYPE # GO FIND BEST POLICY
022713,001025:
022714,001026: 17,3303 11674 2JETS+V CCS NJ+V
Page 542 |
022716,001028: 17,3304 13300 TCF 2JETSM+V
022717,001029: 17,3305 03437 TC VXFORM
022718,001030: 17,3306 37761 CAF FOUR
022719,001031: 17,3307 13431 TCF POLTYPE # GO FIND BEST POLICY
022720,001032:
022721,001033: 17,3310 31504 BURGZERO CAE URGENCYR # TEST FOR SECOND URGENCY ALSO ZERO
022722,001034: 17,3311 00006 EXTEND
022723,001035: 17,3312 12651 BZF GIMBLTRY # BOTH URGENCIES ZERO. TRY THE GTS.
022724,001036:
022725,001037: 17,3313 00006 EXTEND # TIME SAVING A+B CALCULATION
022726,001038: 17,3314 73324 MP SIN22.5
022727,001039: 17,3315 55511 TS TERMB # US.SIN(22.5)
022728,001040: 17,3316 31504 CAE URGENCYR
022729,001041: 17,3317 00006 EXTEND
022730,001042: 17,3320 73323 MP COS22.5
022731,001043: 17,3321 55510 TS TERMA # UR.COS(22.5)
022732,001044: 17,3322 13176 TCF A-B/ONLY
022733,001045:
022734,001046: 17,3323 35441 COS22.5 DEC 0.92388 # COSINE OF 22.5 DEGREES
022735,001047: 17,3324 14176 SIN22.5 DEC 0.38268 # SINE OF 22.5 DEGREES
022736,001048: 17,3325 62575 -TAN22.5 DEC -.41421 # NEGATIVE OF TANGENT OF 22.5 DEGREES
022737,001049:
022738,001050: 17,3326 31510 NEGBURG CAE TERMA # A URGENCY TEST
022739,001051: 17,3327 00006 EXTEND
022740,001052: 17,3330 63353 BZMF NEGANEGB
022741,001053:
022742,001054: 17,3331 31506 POSANEGB CAE A+B
022743,001055: 17,3332 00006 EXTEND
022744,001056: 17,3333 63416 BZMF 2/4JET+Q
022745,001057:
022746,001058: 17,3334 31724 MINUSV CAE 1/AMINV
022747,001059: 17,3335 55633 TS .5ACCMNE
022748,001060: 17,3336 41502 CS URGENCYQ
022749,001061: 17,3337 61504 AD URGENCYR
022750,001062: 17,3340 60066 AD URGLIMIT
022751,001063: 17,3341 00006 EXTEND
022752,001064: 17,3342 63346 BZMF 2JETS-V
022753,001065:
022754,001066: 17,3343 03437 2JETSM-V TC VXFORM
022755,001067: 17,3344 37765 2-V.RATE CAF SEVEN
022756,001068: 17,3345 13431 TCF POLTYPE # GO FIND BEST POLICY
022757,001069:
022758,001070: 17,3346 11675 2JETS-V CCS NJ-V
022759,001071: 17,3347 13343 TCF 2JETSM-V
022760,001072: 17,3350 03437 TC VXFORM
022761,001073: 17,3351 36306 CAF SIX
022762,001074: 17,3352 13431 TCF POLTYPE # GO FIND BEST POLICY
022763,001075:
022764,001076: 17,3353 31507 NEGANEGB CAE A-B
022765,001077: 17,3354 00006 EXTEND
Page 543 |
022767,001079: 17,3355 63375 BZMF 2/4JET+R
022768,001080:
022769,001081: 17,3356 31723 PLUSU CAE 1/AMINU
022770,001082: 17,3357 55633 TS .5ACCMNE
022771,001083: 17,3360 40066 CS URGLIMIT
022772,001084: 17,3361 61502 AD URGENCYQ
022773,001085: 17,3362 61504 AD URGENCYR
022774,001086: 17,3363 00006 EXTEND
022775,001087: 17,3364 63372 BZMF 2JETSM+U
022776,001088:
022777,001089: 17,3365 11672 2JETS+U CCS NJ+U
022778,001090: 17,3366 13372 TCF 2JETSM+U
022779,001091: 17,3367 03445 TC UXFORM
022780,001092: 17,3370 37767 CAF ZERO
022781,001093: 17,3371 13431 TCF POLTYPE # GO TO FIND BEST POLICY
022782,001094:
022783,001095: 17,3372 03445 2JETSM+U TC UXFORM
022784,001096: 17,3373 37763 2+U.RATE CAF ONE
022785,001097: 17,3374 13431 TCF POLTYPE # GO FIND BEST POLICY
022786,001098:
022787,001099: 17,3375 31722 2/4JET+R CAE 1/AMINR
022788,001100: 17,3376 55633 TS .5ACCMNE
022789,001101: 17,3377 00006 EXTEND
022790,001102: 17,3400 31414 DCA ER
022791,001103: 17,3401 53412 DXCH E
022792,001104: 17,3402 31410 CAE EDOT(R)
022793,001105: 17,3403 55407 TS EDOT
022794,001106: 17,3404 41504 CS URGENCYR
022795,001107: 17,3405 60066 AD URGLIMIT
022796,001108: 17,3406 00006 EXTEND
022797,001109: 17,3407 63412 BZMF 2JETS+R
022798,001110:
022799,001111: 17,3410 46311 4JETS+R CS THREE
022800,001112: 17,3411 13431 TCF POLTYPE # GO FIND BEST POLICY
022801,001113:
022802,001114: 17,3412 11670 2JETS+R CCS NJ+R
022803,001115: 17,3413 13410 TCF 4JETS+R
022804,001116: 17,3414 47761 CS FOUR
022805,001117: 17,3415 13431 TCF POLTYPE # GO FIND BEST POLICY
022806,001118:
022807,001119: 17,3416 31721 2/4JET+Q CAE 1/AMINQ
022808,001120: 17,3417 55633 TS .5ACCMNE
022809,001121: 17,3420 41502 CS URGENCYQ
022810,001122: 17,3421 60066 AD URGLIMIT
022811,001123: 17,3422 00006 EXTEND
022812,001124: 17,3423 63426 BZMF 2JETS+Q
022813,001125:
022814,001126: 17,3424 47765 4JETS+Q CS SEVEN
022815,001127: 17,3425 13431 TCF POLTYPE # GO FIND BEST POLICY
022816,001128:
Page 544 |
022818,001130: 17,3426 11666 2JETS+Q CCS NJ+Q
022819,001131: 17,3427 13424 TCF 4JETS+Q
022820,001132: 17,3430 47760 CS EIGHT
022821,001133:
022822,001134: # GENERALIZED CALLING SEQUENCE FOR ALL Q,R-AXES ROTATIONS (FROM BANK 17):
022823,001135:
022824,001136: 17,3431 54061 POLTYPE TS NETACNDX # SAVE INDEX INDICATING AXIS, DIRECTION,
022825,001137: 17,3432 00006 EXTEND # AND NUMBER OF JETS REQUESTED (THIS SPEC-
022826,001138: 17,3433 33436 DCA POLADR # IFIES THE "OPTIMAL" POLICY. TRANSFER
022827,001139: 17,3434 52006 DTCB # ACROSS BANKS TO POLICY SELECTION ROUTINE
022828,001140:
022829,001141: 17,3435 E6,1471 EBANK= JTSONNOW
022830,001142: 17,3435 02321 40066 POLADR 2CADR POLTYPEP # 2CADR OF JET POLICY SELECT ROUINTE.
022831,001143:
022832,001144:
Page 545 |
022834,001146: # SUBROUTINES UXFORM AND VXFORM CALCULATE NEEDED VALUES FOR T-JET LAW
022835,001147: # (THEY GO OFF TO REDUCE RATE, IF NECESSARY, AND THEN DO NOT RETURN)
022836,001148:
022837,001149: 17,3437 31713 VXFORM CAE 1/2JETSV # GET INVERSE OF V-JET ACCELERATION
022838,001150: 17,3440 54066 TS 1/NJETAC
022839,001151: 17,3441 41411 CS EQ # COMPLEMENT FOR TRANSFORMATION
022840,001152: 17,3442 55411 TS EQ
022841,001153: 17,3443 41423 CS EDOTQ
022842,001154: 17,3444 13450 TCF UVXFORM +1
022843,001155: 17,3445 31707 UXFORM CAE 1/2JETSU # SET INVERSE OF U-JET ACCELERATION
022844,001156: 17,3446 54066 TS 1/NJETAC
022845,001157:
022846,001158: 17,3447 31423 UVXFORM CAE EDOTQ # TRANSFORM ANGULAR RATE TO U/V-AXIS
022847,001159: 17,3450 61424 AD EDOTR
022848,001160: 17,3451 00006 EXTEND
022849,001161: 17,3452 73525 MP .707
022850,001162: 17,3453 55407 TS EDOT # SAVE FOR REDUCEUV
022851,001163: 17,3454 00006 EXTEND
022852,001164: 17,3455 77761 MP BIT3
022853,001165: 17,3456 00006 EXTEND
022854,001166: 17,3457 13465 BZF UVEDOT # BRANCH IF RESCALING SUCCESSFUL.
022855,001167:
022856,001168: 17,3460 10000 CCS A # LIMIT EDOT TO +/- 11.25 DEG/SEC.
022857,001169: 17,3461 37743 CAF POSMAX
022858,001170: 17,3462 13466 TCF UVEDOT1
022859,001171: 17,3463 47743 CS POSMAX
022860,001172: 17,3464 13466 TCF UVEDOT1
022861,001173:
022862,001174: 17,3465 30001 UVEDOT CAE L
022863,001175: 17,3466 55407 UVEDOT1 TS EDOT # RATE ERROR SCALED AT PI/16.
022864,001176: 17,3467 00006 EXTEND
022865,001177: 17,3470 70000 SQUARE
022866,001178: 17,3471 55412 TS EDOT(2) # SAVE RATE SQUARED SCALED AT PI(2)/2(8)
022867,001179:
022868,001180: 17,3472 31411 CAE EQ # TRANSFORM ATTITUDE ERROR TO U/V -AXIS
022869,001181: 17,3473 61413 AD ER
022870,001182: 17,3474 00006 EXTEND
022871,001183: 17,3475 73525 MP .707
022872,001184: 17,3476 55411 TS E
022873,001185:
022874,001186: 17,3477 00002 TC Q
022875,001187:
022876,001188: 17,3500 77545 -1.5CSPQ DEC -.00938
022877,001189: 17,3501 00014 +TJMINT6 DEC +.00073
022878,001190: 17,3502 77757 -TJMIN16 DEC -.00097
022879,001191: 17,3503 17,3502 -TJMINQR EQUALS -TJMIN16
022880,001192: 17,3503 00050 38.7MAT4 DEC 0.00242
022881,001193: 17,3504 77733 -MS35AT4 DEC -.00219 # -35MS SCALED AT 4
Page 546 |
022883,001195: 17,3505 34344 MAXRATE DEC 0.88889 # 10 DEGREES/SECOND SCALED AT PI/16
022884,001196: 17,3506 31221 MAXRATE2 DEC 0.79012 # 100 DEG(2)/SEC(2) SCALED AT PI(2)/2(8)
022885,001197: 17,3507 01552 .6DEG/SC DEC 0.05333 # 6/10 DEGREES/SECOND SCALED AT PI/16
022886,001198: 17,3510 31000 25/32QR DEC 0.78125
022887,001199:
022888,001200:
Page 547 |
022890,001202: # THESE TWO SUBROUTINES TRANSFORM EDOTQ,EDOTR INTO THE U/V-AXIS (RESPECTIVELY) FOR THE RATE COMMAND MODE (ONLY).
022891,001203: # VALUE IS STORED IN EDOTGEN SCALED AT PI/4 RADIANS/SECOND.
022892,001204:
022893,001205: 17,3511 BANK 17
022894,001206:
022895,001207: 17,3511 31707 EDOTUGEN CAE 1/2JETSU # FOR U-AXIS TRANSFORMATION
022896,001208: 17,3512 54066 TS 1/NJETAC
022897,001209: 17,3513 31423 CAE EDOTQ
022898,001210: 17,3514 13520 TCF +4
022899,001211: 17,3515 31713 EDOTVGEN CAE 1/2JETSV # FOR V-AXIS TRANSFORMATION
022900,001212: 17,3516 54066 TS 1/NJETAC
022901,001213: 17,3517 41423 CS EDOTQ
022902,001214: 17,3520 61424 AD EDOTR
022903,001215: 17,3521 00006 EXTEND
022904,001216: 17,3522 73525 MP .707
022905,001217: 17,3523 55437 TS RATEDIF
022906,001218: 17,3524 00002 TC Q
022907,001219:
022908,001220:
022909,001221: 17,3525 26501 .707 DEC 0.70711
022910,001222:
022911,001223: 17,3526 00006 SPSBAKUP EXTEND
022912,001224: 17,3527 33532 DCA SPSRCSAD
022913,001225: 17,3530 52006 DXCH Z
022914,001226: 17,3531 E6,1542 EBANK= DT
022915,001227: 17,3531 03417 42066 SPSRCSAD 2CADR SPSRCS
022916,001228:
022917,001229:
Page 548 |
022919,001231: # *********TJETLAW************************************************************************************************
022920,001232:
022921,001233: 17,3533 41407 TJETLAW CS EDOT # TEST ON EDOT SIGN:
022922,001234: 17,3534 00006 EXTEND
022923,001235: 17,3535 63541 BZMF +4
022924,001236: 17,3536 55407 TS EDOT # SIGNS OF E AND EDOT CHANGED IF EDOT NEG,
022925,001237: 17,3537 41411 CS E # TO CONSIDER FUNCTIONS IN THE UPPER HALF
022926,001238: 17,3540 55411 TS E # OF THE E-DOT PHASE PLANE.
022927,001239:
022928,001240: 17,3541 31412 CAE EDOT(2) # SCALED AT PI(2)/2(+8) RAD(2)/SEC(2)
022929,001241: 17,3542 00006 EXTEND # 1/NETACC HAS BEEN SET FOR N-JETS WITH
022930,001242: 17,3543 70066 MP 1/NETACC # IMPLICIT FACTOR OF (1/2).
022931,001243: 17,3544 61411 AD E # ATTITUDE ERROR SCALED AT PI RADIANS.
022932,001244: 17,3545 00006 EXTEND # DEADBAND VALUE SCALED AT PI RADIANS.
022933,001245: 17,3546 60375 SU DB # E+.5EDOT/NETACC-DB
022934,001246: 17,3547 55444 TS HDAP # SCALED AT PI RADIANS.
022935,001247:
022936,001248: 17,3550 00006 EXTEND
022937,001249: 17,3551 63617 BZMF NEGHDAP
022938,001250:
022939,001251: 17,3552 31407 CAE EDOT # RATE ERROR; LIMITED TO +/- 11.25 DEG/SEC
022940,001252: 17,3553 00006 EXTEND # SCALED AT PI/16 RADIANS/SECOND.
022941,001253: 17,3554 70066 MP 1/NETACC # SCALED AT 2(+8)/PI SEC(2)/RAD: (ACC) (-1)
022942,001254: 17,3555 20001 DDOUBL # SCALED AT 2(+4) SECONDS.
022943,001255: 17,3556 55510 TS TERMA
022944,001256:
022945,001257: 17,3557 63500 AD -1.5CSPQ # (EDOT/NETACC)-1.5CSP SCALED AT 16 SECS.
022946,001258: 17,3560 00006 EXTEND
022947,001259: 17,3561 63564 BZMF +3
022948,001260:
022949,001261: 17,3562 37746 MAXTJET CAF BIT14 # (1/2) IS LIKE POSMAX AT THIS SCALING.
022950,001262: 17,3563 12456 TCF NORMRETN # (OVERFLOW IS PREVENTED IN THIS WAY.)
022951,001263:
022952,001264: 17,3564 41444 CS HDAP # MINIMPDB-E-(EDOT(2)/NETACC)+DB
022953,001265: 17,3565 61631 AD MINIMPDB # SCALED AT PI RADIANS.
022954,001266: 17,3566 00006 EXTEND # (DURING APS BURNS, MINIMPDB = -DB.)
022955,001267: 17,3567 63646 BZMF MAINBRCH
022956,001268:
022957,001269: 17,3570 31510 CAE TERMA # EDOT/NETACC-35MS SCALED AT 16 SECONDS.
022958,001270: 17,3571 63504 AD -MS35AT4
022959,001271: 17,3572 00006 EXTEND # COMPARE TIME-TO-GET-ZERO-RATE WITH 35MS.
022960,001272: 17,3573 63576 BZMF INZONE4
022961,001273:
022962,001274: 17,3574 63503 AD 38.7MAT4 # TIME-TO-GET-ZERO-RATE + 1/2 MINIMP.
022963,001275: 17,3575 13742 TCF TJETSCAL
022964,001276:
022965,001277: 17,3576 11407 INZONE4 CCS EDOT # IF EDOT IS EITHER 00001, 00000, 77777,
022966,001278: 17,3577 00006 EXTEND # OR 77776 (IN OCTAL), THEN THIS CODING
022967,001279: 17,3600 12413 BZF XTRANS # CAUSES A BRANCH TO XTRANS, NO ROTATION
022968,001280: 17,3601 00006 EXTEND # JETS ARE FIRED. *** NOTE: IF THE EXTEND
Page 549 |
022970,001282: 17,3602 12413 BZF XTRANS # CODE IS SKIPPED, BZF EXECUTES LIKE TCF.
022971,001283:
022972,001284:
022973,001285: 17,3603 31607 CAE NO.QJETS # IF NO Q-AXIS JETS THEN MUST HAVE R-AXIS.
022974,001286: 17,3604 00006 EXTEND
022975,001287: 17,3605 13613 BZF ROTRAXIS
022976,001288:
022977,001289: 17,3606 30775 CAE OMEGAQD # WITH Q-AXIS JETS, ZERO THE RATE ERROR.
022978,001290: 17,3607 55416 TS OMEGAQ
022979,001291:
022980,001292: 17,3610 31610 CAE NO.RJETS # IF NO R-AXIS JETS, THEN Q-AXIS JETS WERE
022981,001293: 17,3611 00006 EXTEND # ALREADY FOUND.
022982,001294: 17,3612 13615 BZF DOTJMIN
022983,001295:
022984,001296: 17,3613 30776 ROTRAXIS CAE OMEGARD # WITH R-AXIS JETS, ZERO THE RATE ERROR.
022985,001297: 17,3614 55420 TS OMEGAR
022986,001298:
022987,001299: 17,3615 33501 DOTJMIN CAF +TJMINT6 # USE MINIMUM IMPULSE DT FOR TQR.
022988,001300: 17,3616 12456 TCF NORMRETN
022989,001301:
022990,001302: 17,3617 31412 NEGHDAP CAE EDOT(2) # RATE ERROR SQUARED SCALED AT PI(2)/2(8).
022991,001303: 17,3620 00006 EXTEND
022992,001304: 17,3621 71633 MP .5ACCMNE # .5(1/ACCMIN) AT 2(8)/PI SEC(2)/RAD.
022993,001305: 17,3622 61411 AD E # ATTITUDE ERROR SCALED AT PI RADIANS
022994,001306: 17,3623 60375 AD DB # DEADBANDS (2) SCALED AT PI RADIANS
022995,001307: 17,3624 61630 AD DBMINIMP # (DURING APS BURNS DBMINIMP = 0.)
022996,001308: 17,3625 00006 EXTEND
022997,001309: 17,3626 63630 BZMF +2
022998,001310: 17,3627 12413 TCF XTRANS # NO ROTATION JETS NEEDED.
022999,001311:
023000,001312: 17,3630 43505 +2 CS MAXRATE # 10 DEGREES/SECOND SCALED AT PI/16.
023001,001313: 17,3631 61407 AD EDOT # EDOT-MAXRATE SCALED AT PI/16 RAD/SEC.
023002,001314: 17,3632 00006 EXTEND
023003,001315: 17,3633 63635 BZMF +2
023004,001316: 17,3634 12413 TCF XTRANS
023005,001317:
023006,001318: 17,3635 41407 +2 CS EDOT # RATE ERROR SCALED AT PI/16 RAD/SEC.
023007,001319: 17,3636 00006 EXTEND # (LIMITED TO +/- 11.25 DEG/SEC.)
023008,001320: 17,3637 70066 MP 1/NETACC # SCALED AT 2(+8)/PI SEC(2)/RAD; (ACC):-1)
023009,001321: 17,3640 20001 DDOUBL # SCALED AT 2(+4) SECONDS.
023010,001322: 17,3641 55510 TS TERMA
023011,001323:
023012,001324: 17,3642 41444 CS HDAP # -E+(.5EDOT(2)/NETACC)+DB
023013,001325: 17,3643 61411 AD E
023014,001326: 17,3644 61411 AD E # TWICE ERROR NEGATES E OF HDAP(ABOVE)
023015,001327: 17,3645 61631 AD MINIMPDB
023016,001328: 17,3646 55444 MAINBRCH TS HDAP # -HDAP(ABOVE)+2E+DBMINIMP AT PI RADIANS.
023017,001329:
023018,001330: 17,3647 30066 CAE 1/NETACC # .5(1/NETACC+1/ACCMIN) SCALED AT 2(8)/PI.
Page 550 |
023020,001332: 17,3650 27633 ADS .5ACCMNE # .5ACCMNE NOW HOLDS DENOM.
023021,001333:
023022,001334: 17,3651 00006 EXTEND # DENOM(MAXRATE(2)).HDAP AT PI RADIANS.
023023,001335: 17,3652 73506 MP MAXRATE2
023024,001336: 17,3653 61444 AD HDAP
023025,001337: 17,3654 00006 EXTEND
023026,001338: 17,3655 63734 BZMF NOROOT
023027,001339:
023028,001340: 17,3656 30066 CAE 1/NETACC # SAVE (1/NETACC)(2)
023029,001341: 17,3657 60000 DOUBLE
023030,001342: 17,3660 00006 EXTEND
023031,001343: 17,3661 70000 SQUARE
023032,001344: 17,3662 53514 DXCH INVACCSQ
023033,001345:
023034,001346: 17,3663 31444 CAE HDAP # (HDAP)/(DENOM)
023035,001347: 17,3664 22007 ZL
023036,001348: 17,3665 00006 EXTEND
023037,001349: 17,3666 11633 DV .5ACCMNE
023038,001350: 17,3667 55727 TS QUOTTEMP
023039,001351:
023040,001352: 17,3670 00006 EXTEND # +(HDAP/DENOM)(1/NETACC)(2) AT 2(8) SECS.
023041,001353: 17,3671 71514 MP INVACCSQ +1
023042,001354: 17,3672 55514 TS INVACCSQ +1
023043,001355: 17,3673 37767 CAF ZERO
023044,001356: 17,3674 57513 XCH INVACCSQ
023045,001357: 17,3675 00006 EXTEND
023046,001358: 17,3676 71727 MP QUOTTEMP
023047,001359: 17,3677 21514 DAS INVACCSQ
023048,001360:
023049,001361: 17,3700 00006 EXTEND # SAVE COPY OF ABOVE D.P. VALUE
023050,001362: 17,3701 31514 DCA INVACCSQ
023051,001363: 17,3702 53512 DXCH TERMB
023052,001364:
023053,001365: 17,3703 33500 CAF -1.5CSPQ # (1.5CSP-EDOT/NETACC) AT 16 SECS.
023054,001366: 17,3704 61510 AD TERMA
023055,001367: 17,3705 00006 EXTEND
023056,001368: 17,3706 70000 SQUARE # (1.5CSP-EDOT/NETACC)(2) AT 256 SECS.
023057,001369: 17,3707 21514 DAS INVACCSQ # (1.5CSP-EDOT/NETACC)(2) - TERMB
023058,001370:
023059,001371: 17,3710 31513 CAE INVACCSQ # CHECK HIGH ORDER PART, IF NON-ZERO.
023060,001372: 17,3711 00006 EXTEND
023061,001373: 17,3712 13714 BZF ONLYTST1
023062,001374: 17,3713 13715 TCF ONLYTST1 +1
023063,001375:
023064,001376: 17,3714 31514 ONLYTST1 CAE INVACCSQ +1 # USE LOW ORDER PART, SINCE HIGH PART 0.
023065,001377: 17,3715 00006 EXTEND
023066,001378: 17,3716 63562 BZMF MAXTJET
023067,001379:
023068,001380: 17,3717 33502 CAF -TJMIN16 # -EDOT/NETACC-TJMIN SCALED AT 16.
023069,001381: 17,3720 61510 AD TERMA
Page 551 |
023071,001383: 17,3721 00006 EXTEND
023072,001384: 17,3722 63746 BZMF MAYNOJET
023073,001385:
023074,001386: 17,3723 33733 PREROOT CAF AFTRUTAD # THIS WILL CAUSE SQUARE ROOT TO BE TAKEN
023075,001387: 17,3724 55000 TS T5ADR # ON THE NEXT T5RUPT.
023076,001388: 17,3725 00006 EXTEND
023077,001389: 17,3726 00005 READ 5
023078,001390: 17,3727 55654 TS CH5TEMP
023079,001391: 17,3730 31471 JETSON CAE JTSONNOW # TURN ON JETS AND END RUPT
023080,001392: 17,3731 06046 TC WRITEQR
023081,001393: 17,3732 15733 TCF RESUME
023082,001394:
023083,001395: 17,3733 03214 AFTRUTAD GENADR DORUTDUM
023084,001396: 17,3734 33505 NOROOT CAF MAXRATE
023085,001397: 17,3735 63507 AD .6DEG/SC # MAXRATE+DEL SCALED AT PI/16 RAD/SEC.
023086,001398: 17,3736 00006 EXTEND
023087,001399: 17,3737 70066 MP 1/NETACC # (MAXRATE+DEL)/NETACC
023088,001400: 17,3740 20001 DDOUBL # SCALED AT 2(+4) SECONDS
023089,001401: 17,3741 61510 TJSUM AD TERMA
023090,001402: 17,3742 60000 TJETSCAL DOUBLE # NOW SCALED AT 2(+3) SECONDS.
023091,001403: 17,3743 00006 EXTEND
023092,001404: 17,3744 73510 MP 25/32QR # SCALED TO 16/25 2(+4) SECONDS AS TIME6.
023093,001405: 17,3745 12456 TCF NORMRETN
023094,001406:
023095,001407: 17,3746 00006 MAYNOJET EXTEND # RE-INITIALIZE C(INVACCSQ,D.P.)
023096,001408: 17,3747 31512 DCA TERMB # SINCE CLOBBERED ABOVE.
023097,001409: 17,3750 53514 DXCH INVACCSQ
023098,001410:
023099,001411: 17,3751 33502 CAF -TJMIN16
023100,001412: 17,3752 61510 AD TERMA # TERMA-TJMIN SCALED AT 2(+4) SECONDS.
023101,001413: 17,3753 00006 EXTEND
023102,001414: 17,3754 70000 SQUARE # SCALED AT 2(+8) SECONDS.
023103,001415: 17,3755 21514 DAS INVACCSQ # FORM D.P. SUM.
023104,001416:
023105,001417: 17,3756 31513 CAE INVACCSQ # CHECK HIGH ORDER PART IF NON-ZERO.
023106,001418: 17,3757 00006 EXTEND
023107,001419: 17,3760 13762 BZF ONLYTST2
023108,001420: 17,3761 13763 TCF ONLYTST2 +1
023109,001421:
023110,001422: 17,3762 31514 ONLYTST2 CAE INVACCSQ +1 # USE LOW ORDER PART, SINCE HIGH PART 0.
023111,001423: 17,3763 00006 EXTEND
023112,001424: 17,3764 63723 BZMF PREROOT
023113,001425: 17,3765 13615 TCF DOTJMIN # FIRE FOR MINIMUM IMPULSE.
023114,001426: 17,3766 37777 CHKSUM17 OCT 37777
023115,001427:
023116,001428:
Page 552 |
023118,001430: # SUBROUTINE NAME: DAPSQRT MOD. NO. 0 DATE: DECEMBER 28, 1966
023119,001431:
023120,001432: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
023121,001433:
023122,001434: # DAPSQRT IS A SUBROUTINE WHICH PERFORMS THE NECESSARY AND APPROPRIATE INTERFACE FUNCTIONS BETWEEN THE LM DAP AND
023123,001435: # THE PRESENT SPROOT SUBROUTINE IN MASTER. DAPSQRT EXPECTS A DOUBLE PRECISION ARGUMENT IN C(A,L) AND WILL SHIFT
023124,001436: # THAT QUANTITY SIX OR FOUR BITS TO THE LEFT TO FORM A MORE ACCURATE SINGLE PRECISION ARGUMENT FOR SPROOT (AND
023125,001437: # THEN SHIFT THE SINGLE PRECISION RESULT OF SPROOT THREE OR TWO BITS TO THE RIGHT IN ORDER TO MAINTAIN SCALING
023126,001438: # CONSISTENCY). DAPSQRT ALSO PERFORMS THE HERETOFORE NEGLECTED FUNCTION OF SAVING AND RESTORING THE CONTENTS OF
023127,001439: # THE SR (SHIFT-RIGHT) REGISTER WHICH MUST BE DONE BY ALL USERS OF SPROOT IN INTERRUPT.
023128,001440:
023129,001441: # NOTE: IF ORIGINAL C(A) = 0, THEN THE SQUARE ROOT SINGLE PRECISION ARGUMENT IS C(L), AND THE RESULT FROM SPROOT
023130,001442: # IS SHIFTED LEFT SEVEN BITS.
023131,001443:
023132,001444: # CALLING SEQUENCE:
023133,001445:
023134,001446: # L TC IBNKCALL CALL IS ALWAYS FROM ANOTHER BANK.
023135,001447: # L +1 CADR DAPSQRT ENTER ROUTINE WITH C(A,L) = D.P. ARG.
023136,001448: # L +2 (RETURN) C(A) = BEST VALUE OF SQUARE ROOT.
023137,001449:
023138,001450: # ALARM/ABORT MODE: NONE.
023139,001451:
023140,001452: # SUBROUTINES CALLED: SPROOT AND T6JOBCHK.
023141,001453:
023142,001454: # NORMAL EXIT MODE: RETURN TO L +2.
023143,001455:
023144,001456: # OUTPUT: C(A) AT RETURN TO CALLER IS THE BEST SINGLE PRECISION SQUARE ROOT OF THE GIVEN DOUBLE PRECISION ARGUMENT
023145,001457:
023146,001458: # ERASABLE INITIALIZATION REQUIRED: DOUBLE PRECISION ARGUMENT AS C(A,L).
023147,001459:
023148,001460: # DEBRIS: ITEMP4, ITEMP5, ITEMP6 AND A,L,Q.
023149,001461:
023150,001462:
023151,001463: 26,2525 BANK 26
023152,001464: 26,2525 E6,1521 EBANK= FUNCTION
023153,001465:
023154,001466: # SRTEMP ERASE SCRATCH CELLS FOR DAPSQRT
023155,001467: # SQRTTEMP ERASE SCRATCH CELLS FOR DAPSQRT
023156,001468: # SQRTTEMQ ERASE SCRATCH CELLS FOR DAPSQRT
023157,001469:
023158,001470: 26,2525 55730 DAPSQRT TS SQRTTEMP # SAVE C(A) PART OF DOUBLE PRECISION ARG.
023159,001471:
023160,001472: 26,2526 00006 EXTEND # SAVE C(Q) FOR RETURN TO LM DAP CALLER.
023161,001473: 26,2527 23731 QXCH SQRTTEMQ
023162,001474:
023163,001475: 26,2530 30021 CAE SR # SAVE C(SR) SINCE ALL INTERRUPT PROGRAMS
023164,001476: 26,2531 60000 DOUBLE # USING SPROOT MUST DO SO.
023165,001477: 26,2532 55727 TS SRTEMP
Page 553 |
023167,001479: 26,2533 06013 TC T6JOBCHK # CHECK TIME6-RUPT BEFORE SPROOT.
023168,001480:
023169,001481: 26,2534 31730 CAE SQRTTEMP # RESTORE D.P. ARG. TO C(A,L), AND THEN
023170,001482: 26,2535 00006 EXTEND # CHECK FOR C(A) = +0. IF SO, TAKE THE
023171,001483: 26,2536 12570 BZF DAPSQRT3 # SQUARE ROOT OF C(L) AND POST-SHIFT.
023172,001484:
023173,001485: 26,2537 72574 MASK DAPHIGH7 # IF THIS MASK PRODUCES A WORD OF ZEROS,
023174,001486: 26,2540 00006 EXTEND # C(D.P.ARG) WILL BE SHIFTED LEFT 6 BITS
023175,001487: 26,2541 12552 BZF SQRTSL6 # WITHOUT OVERFLOWING BEFORE USING SPROOT.
023176,001488:
023177,001489: 26,2542 72575 MASK DAPHIGH5 # IF THIS MASK PRODUCES A WORD OF ZEROS,
023178,001490: 26,2543 00006 EXTEND # C(D.P.ARG) WILL BE SHIFTED LEFT 4 BITS
023179,001491: 26,2544 12556 BZF SQRTSL4 # WITHOUT OVERFLOWING BEFORE USING SPROOT.
023180,001492:
023181,001493: 26,2545 31730 CAE SQRTTEMP # GET UNSHIFTED S.P. ARGUMENT FOR SPROOT.
023182,001494:
023183,001495: 26,2546 05417 TC SPROOT # CALL SUBROUTINE IN FIXED-FIXED.
023184,001496:
023185,001497: 26,2547 23727 DAPSQRT1 LXCH SRTEMP # RESTORE C(SR).
023186,001498: 26,2550 22021 LXCH SR
023187,001499:
023188,001500: 26,2551 01731 TC SQRTTEMQ # RETURN WITH SQUARE ROOT AS C(A).
023189,001501:
023190,001502: 26,2552 37753 SQRTSL6 CAF BIT9 # SET UP TO SHIFT D.P. ARG. LEFT 6 BITS
023191,001503: 26,2553 54002 TS Q
023192,001504: 26,2554 37750 CAF BIT12 # AND TO SHIFT SPROOT ANS. RIGHT 3 BITS.
023193,001505: 26,2555 12561 TCF DAPSQRT2
023194,001506:
023195,001507: 26,2556 37751 SQRTSL4 CAF BIT11 # SET UP TO SHIFT D.P. ARG. LEFT 4 BITS
023196,001508: 26,2557 54002 TS Q
023197,001509: 26,2560 37747 CAF BIT13 # AND TO SHIFT SPROOT ANS. RIGHT 2 BITS.
023198,001510: 26,2561 57730 DAPSQRT2 XCH SQRTTEMP # (RECONSTRUCT D.P. ARGUMENT.)
023199,001511:
023200,001512: 26,2562 00006 EXTEND # VARIABLE LEFT SHIFT (4 OR 6 BITS).
023201,001513: 26,2563 10002 DV Q # (MAC HAS DIFFEQ, LM DAP HAS DV Q - PUN?)
023202,001514: 26,2564 05417 DAPROOT TC SPROOT # CALL SUBROUTINE IN FIXED-FIXED
023203,001515: 26,2565 00006 EXTEND # VARIABLE RIGHT SHIFT (2 OR 3 BITS).
023204,001516: 26,2566 71730 MP SQRTTEMP
023205,001517:
023206,001518: 26,2567 12547 TCF DAPSQRT1 # RETURN SEQUENCE.
023207,001519:
023208,001520: 26,2570 37754 DAPSQRT3 CAF BIT8 # SET UP TO SHIFT SPROOT ANS. RIGHT 7 BITS
023209,001521: 26,2571 55730 TS SQRTTEMP
023210,001522: 26,2572 30001 CAE L # USE C(L) AS SPROOT ARGUMENT.
023211,001523: 26,2573 12564 TCF DAPROOT
023212,001524:
023213,001525: 26,2574 77400 DAPHIGH7 OCTAL 77400
023214,001526: 26,2575 76000 DAPHIGH5 OCTAL 76000
023215,001527:
End of include-file Q,R-AXES_REACTION_CONTROL_SYSTEM_AUTOPILOT.agc. Parent file is MAIN.agc