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