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