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