Source Code
These source code files have been transcribed or otherwise adapted from
digitized images of a hardcopy from the private collection of
Don Eyles. The digitization was performed by archive.org, and
transcription was performed by a team of volunteers.
Note that the page images
presented online are of reduced quality, and that the original
high-quality images are available at archive.org.
Report any conversion errors or legibility problems in page images to info@sandroid.org.
Notations on the program listing read, in part:473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP NOV 10, 1966Note that the date is the date of the printout, not the date of the program revision. |
007251,000002: ## Copyright: Public domain.
007252,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc
007253,000004: ## Purpose: Part of the source code for Aurora (revision 12).
007254,000005: ## Assembler: yaYUL
007255,000006: ## Contact: Ron Burkey <info@sandroid.org>.
007256,000007: ## Website: https://www.ibiblio.org/apollo.
007257,000008: ## Pages: 189-208
007258,000009: ## Mod history: 2016-09-20 JL Created.
007259,000010: ## 2016-09-28 MAS Began.
007260,000011: ## 2016-09-30 MAS Finished transcription.
007261,000012: ## 2016-12-08 RSB Proofed comments with octopus/ProoferComments
007262,000013: ## and fixed the errors found.
007263,000014: ## 2017-03-13 RSB Comment-text fixes noted in proofing Luminary 116.
007264,000015:
007265,000016: ## This source code has been transcribed or otherwise adapted from
007266,000017: ## digitized images of a hardcopy from the private collection of
007267,000018: ## Don Eyles. The digitization was performed by archive.org.
007268,000019:
007269,000020: ## Notations on the hardcopy document read, in part:
007270,000021:
007271,000022: ## 473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP
007272,000023: ## NOV 10, 1966
007273,000024:
007274,000025: ## [Note that this is the date the hardcopy was made, not the
007275,000026: ## date of the program revision or the assembly.]
007276,000027:
007277,000028: ## The scan images (with suitable reduction in storage size and consequent
007278,000029: ## reduction in image quality) are available online at
007279,000030: ## https://www.ibiblio.org/apollo.
007280,000031: ## The original high-quality digital images are available at archive.org:
007281,000032: ## https://archive.org/details/aurora00dapg
007282,000033:
Page 189 |
007284,000035: 4755 SETLOC ENDT4FF
007285,000036: 4755 E3,1451 EBANK= COMMAND
007286,000037:
007287,000038: # FIXED-FIXED ROUTINES.
007288,000039: 4755 37665 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
007289,000040: 4756 54032 TS CDUX
007290,000041: 4757 54033 TS CDUY
007291,000042: 4760 54034 TS CDUZ
007292,000043: 4761 00002 TC Q
007293,000044:
007294,000045: 4762 00454 3SECS DEC 300 B-14
007295,000046:
007296,000047: 4763 ENDIMODF EQUALS
007297,000048:
Page 190 |
007299,000050: # IMU ZEROING ROUTINE.
007300,000051:
007301,000052: 13,2000 BANK 13
007302,000053:
007303,000054: 13,2000 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
007304,000055: 13,2001 47650 CS IMUSEFLG # SET INDICATION THAT A MISSION OR TEST
007305,000056: 13,2002 70061 MASK STATE # PROGRAM IS USING THE IMU.
007306,000057: 13,2003 67650 AD IMUSEFLG
007307,000058: 13,2004 54061 TS STATE
007308,000059:
007309,000060: 13,2005 02650 TC CAGETSTQ # IF IMU COMING UP, TURN-ON PROGRAM WILL
007310,000061: 13,2006 12033 TCF MODEEXIT # DO ALL THE WORK.
007311,000062:
007312,000063: 13,2007 42743 CS BITS3&4 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
007313,000064: 13,2010 70367 MASK IMODES30 # JUST CAME OUT OF COARSE ALIGN).
007314,000065: 13,2011 62743 AD BITS3&4
007315,000066: 13,2012 54367 TS IMODES30
007316,000067:
007317,000068: 13,2013 42744 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
007318,000069: 13,2014 00006 EXTEND # COUNTER DISABLED.
007319,000070: 13,2015 03012 WAND 12
007320,000071:
007321,000072: 13,2016 37653 CAF BIT5
007322,000073: 13,2017 00006 EXTEND
007323,000074: 13,2020 05012 WOR 12
007324,000075:
007325,000076: 13,2021 37652 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
007326,000077: 13,2022 04536 TC WAITLIST # RECEIVE ITS PULSE TRAIN.
007327,000078: 13,2023 02035 26003 2CADR IMUZERO2
007328,000079:
007329,000080: 13,2025 40367 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
007330,000081: 13,2026 77647 MASK BIT9
007331,000082: 13,2027 10000 CCS A
007332,000083: 13,2030 12033 TCF MODEEXIT
007333,000084:
007334,000085: 13,2031 05413 TC ALARM
007335,000086: 13,2032 00210 OCT 210
007336,000087:
007337,000088: 13,2033 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
007338,000089: 13,2034 14076 TCF SWRETURN
007339,000090:
Page 191 |
007341,000092: 13,2035 02650 IMUZERO2 TC CAGETSTQ # POSSIBLY SWITCH TO TURN-ON PROGRAM.
007342,000093: 13,2036 14602 TCF TASKOVER
007343,000094:
007344,000095: 13,2037 04755 TC ZEROICDU # ZERO COUNTERS.
007345,000096: 13,2040 47653 CS BIT5 # REMOVE ZERO DISCRETE.
007346,000097: 13,2041 00006 EXTEND
007347,000098: 13,2042 03012 WAND 12
007348,000099:
007349,000100: 13,2043 34762 CAF 3SECSM # WAIT FOR COUNTERS TO SYNCRONIZE.
007350,000101: 13,2044 04557 TC VARDELAY
007351,000102:
007352,000103: 13,2045 02650 IMUZERO3 TC CAGETSTQ
007353,000104: 13,2046 14602 TCF TASKOVER
007354,000105:
007355,000106: 13,2047 42743 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
007356,000107: 13,2050 70367 MASK IMODES30
007357,000108: 13,2051 54367 TS IMODES30
007358,000109:
007359,000110: 13,2052 04156 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
007360,000111: 13,2053 25344 CADR SETISSW # PRESENT.
007361,000112:
007362,000113: 13,2054 12633 TCF ENDIMU
007363,000114:
Page 192 |
007365,000116: # IMU COARSE ALIGN MODE.
007366,000117:
007367,000118: 13,2055 37654 IMUCOARS CAF BIT4 # SEND COARSE ALIGN ENABLE DISCRETE
007368,000119: 13,2056 00004 INHINT
007369,000120: 13,2057 00006 EXTEND
007370,000121: 13,2060 05012 WOR CHAN12
007371,000122:
007372,000123: 13,2061 47654 CS BIT4 # INHIBIT IMU FAIL.
007373,000124: 13,2062 70367 MASK IMODES30
007374,000125: 13,2063 67654 AD BIT4
007375,000126: 13,2064 54367 TS IMODES30
007376,000127:
007377,000128: 13,2065 36162 CAF SIX
007378,000129: 13,2066 04536 TC WAITLIST
007379,000130: 13,2067 02072 26003 2CADR COARS
007380,000131:
007381,000132: 13,2071 12033 TCF MODEEXIT
007382,000133:
007383,000134: 13,2072 02643 COARS TC CAGETEST
007384,000135: 13,2073 37652 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
007385,000136: 13,2074 00006 EXTEND
007386,000137: 13,2075 05012 WOR CHAN12
007387,000138:
007388,000139: 13,2076 37656 CAF TWO # SET CDU INDICATOR
007389,000140: 13,2077 55454 COARS1 TS CDUIND
007390,000141:
007391,000142: 13,2100 51454 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S
007392,000143: 13,2101 30400 CA THETAD # COMPLEMENT FORM
007393,000144: 13,2102 00006 EXTEND
007394,000145: 13,2103 51454 INDEX CDUIND
007395,000146: 13,2104 20032 MSU CDUX
007396,000147: 13,2105 00006 EXTEND
007397,000148: 13,2106 77643 MP BIT13 # SHIFT RIGHT 2
007398,000149: 13,2107 56001 XCH L # ROUND
007399,000150: 13,2110 60000 DOUBLE
007400,000151: 13,2111 54065 TS ITEMP1
007401,000152: 13,2112 12114 TCF +2
007402,000153: 13,2113 26001 ADS L
007403,000154:
007404,000155: 13,2114 51454 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
007405,000156: 13,2115 23451 LXCH COMMAND
007406,000157: 13,2116 11454 CCS CDUIND
007407,000158: 13,2117 02077 TC COARS1
007408,000159:
007409,000160: 13,2120 37656 CAF TWO # MINIMUM OF 4 MS WAIT
007410,000161: 13,2121 04557 TC VARDELAY
007411,000162:
Page 193 |
007413,000164: 13,2122 02643 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED.
007414,000165: 13,2123 54065 TS ITEMP1 # SETS TO +0.
007415,000166: 13,2124 37656 CAF TWO # SET CDU INDICATOR
007416,000167: 13,2125 55454 +3 TS CDUIND
007417,000168:
007418,000169: 13,2126 51454 INDEX CDUIND
007419,000170: 13,2127 11451 CCS COMMAND # NUMBER OF PULSES REQUIRED
007420,000171: 13,2130 02134 TC COMPOS # GREATER THAN MAX ALLOWED
007421,000172: 13,2131 02143 TC NEXTCDU +1
007422,000173: 13,2132 02206 TC COMNEG
007423,000174: 13,2133 02143 TC NEXTCDU +1
007424,000175:
007425,000176: 13,2134 62747 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
007426,000177: 13,2135 00006 EXTEND # MINUS ONE
007427,000178: 13,2136 62216 BZMF COMZERO
007428,000179: 13,2137 51454 INDEX CDUIND
007429,000180: 13,2140 55451 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
007430,000181: 13,2141 42750 CS -COMMAX- # ALLOWED
007431,000182:
007432,000183: 13,2142 24065 NEXTCDU INCR ITEMP1
007433,000184: 13,2143 51454 INDEX CDUIND
007434,000185: 13,2144 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
007435,000186:
007436,000187: 13,2145 11454 CCS CDUIND
007437,000188: 13,2146 02125 TC COARS2 +3
007438,000189:
007439,000190: 13,2147 10065 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
007440,000191: 13,2150 12222 TCF SENDPULS
007441,000192:
007442,000193: 13,2151 04554 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
007443,000194: 13,2152 00226 DEC 150 B-14
007444,000195:
Page 194 |
007446,000197: 13,2153 37656 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
007447,000198: 13,2154 54065 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
007448,000199: 13,2155 50000 INDEX A
007449,000200: 13,2156 30032 CA CDUX
007450,000201: 13,2157 00006 EXTEND
007451,000202: 13,2160 50065 INDEX ITEMP1
007452,000203: 13,2161 20400 MSU THETAD
007453,000204: 13,2162 10000 CCS A
007454,000205: 13,2163 12177 TCF COARSERR
007455,000206: 13,2164 12166 TCF CORSCHK2
007456,000207: 13,2165 12177 TCF COARSERR
007457,000208:
007458,000209: 13,2166 10065 CORSCHK2 CCS ITEMP1
007459,000210: 13,2167 12154 TCF CHKCORS
007460,000211: 13,2170 55451 TS GCOMP # ZERO GYRO COMPENSATION REGISTERS IN
007461,000212: 13,2171 55452 TS GCOMP +1 # PREPARATION FOR COMPENSATION.
007462,000213: 13,2172 55453 TS GCOMP +2
007463,000214: 13,2173 55454 TS GCOMP +3
007464,000215: 13,2174 55455 TS GCOMP +4
007465,000216: 13,2175 55456 TS GCOMP +5
007466,000217:
007467,000218: 13,2176 12633 TCF ENDIMU # END OF COARSE ALIGNMENT.
007468,000219:
007469,000220: 13,2177 62205 COARSERR AD COARSTOL # 2 DEGREES.
007470,000221: 13,2200 00006 EXTEND
007471,000222: 13,2201 62166 BZMF CORSCHK2
007472,000223:
007473,000224: 13,2202 05413 TC ALARM # COARSE ALIGN ERROR.
007474,000225: 13,2203 00211 OCT 211
007475,000226:
007476,000227: 13,2204 12641 TCF IMUBAD
007477,000228:
007478,000229: 13,2205 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS.
007479,000230:
Page 195 |
007481,000232: 13,2206 62747 COMNEG AD -COMMAX
007482,000233: 13,2207 00006 EXTEND
007483,000234: 13,2210 62216 BZMF COMZERO
007484,000235: 13,2211 40000 COM
007485,000236: 13,2212 51454 INDEX CDUIND
007486,000237: 13,2213 55451 TS COMMAND
007487,000238: 13,2214 32750 CA -COMMAX-
007488,000239: 13,2215 02142 TC NEXTCDU
007489,000240:
007490,000241: 13,2216 37665 COMZERO CAF ZERO
007491,000242: 13,2217 51454 INDEX CDUIND
007492,000243: 13,2220 57451 XCH COMMAND
007493,000244: 13,2221 02142 TC NEXTCDU
007494,000245:
007495,000246: 13,2222 32746 SENDPULS CAF 13,14,15
007496,000247: 13,2223 00006 EXTEND
007497,000248: 13,2224 05014 WOR CHAN14
007498,000249: 13,2225 32751 CAF 600MS
007499,000250: 13,2226 12121 TCF COARS2 -1 # AND THEN TO VARDELAY.
007500,000251:
Page 196 |
007502,000253: # IMU FINE ALIGN MODE SWITCH.
007503,000254:
007504,000255: 13,2227 00004 IMUFINE INHINT
007505,000256: 13,2230 02655 TC CAGETSTJ # SEE IF IMU BEING CAGED.
007506,000257:
007507,000258: 13,2231 42745 CS BITS4-6 # RESET ZERO, COARSE, AND ECTR ENABLE.
007508,000259: 13,2232 00006 EXTEND
007509,000260: 13,2233 03012 WAND 12
007510,000261:
007511,000262: 13,2234 37646 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
007512,000263: 13,2235 04536 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
007513,000264: 13,2236 02247 26003 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
007514,000265:
007515,000266: 13,2240 32752 CAF 90SEC # GYRO RE-CENTERING TIME.
007516,000267: 13,2241 04536 TC WAITLIST
007517,000268: 13,2242 02245 26003 2CADR IMUFINED
007518,000269:
007519,000270: 13,2244 12033 TCF MODEEXIT
007520,000271:
007521,000272: 13,2245 02643 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
007522,000273: 13,2246 12633 TCF ENDIMU
007523,000274:
007524,000275: 13,2247 02650 IFAILOK TC CAGETSTQ # ENABLE IMU FAIL UNLESS IMU BEING CAGED.
007525,000276: 13,2250 14602 TCF TASKOVER # IT IS.
007526,000277:
007527,000278: 13,2251 37654 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE
007528,000279: 13,2252 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
007529,000280: 13,2253 02012 RAND 12
007530,000281: 13,2254 10000 CCS A
007531,000282: 13,2255 14602 TCF TASKOVER
007532,000283:
007533,000284: 13,2256 47654 CS BIT4
007534,000285: 13,2257 70367 PFAILOK2 MASK IMODES30
007535,000286: 13,2260 54367 TS IMODES30
007536,000287: 13,2261 14602 TCF TASKOVER
007537,000288:
007538,000289: 13,2262 02650 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
007539,000290: 13,2263 14602 TCF TASKOVER
007540,000291:
007541,000292: 13,2264 47653 CS BIT5
007542,000293: 13,2265 12257 TCF PFAILOK2
007543,000294:
Page 197 |
007545,000296: # ROUTINES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
007546,000297:
007547,000298: 13,2266 02650 PIPUSE TC CAGETSTQ # DONT ENABLE PIPA FAIL IF IMU BEING CAGED
007548,000299: 13,2267 14076 TCF SWRETURN
007549,000300:
007550,000301: 13,2270 00004 INHINT
007551,000302: 13,2271 37665 CAF ZERO # ZERO COUNTERS.
007552,000303: 13,2272 54037 TS PIPAX
007553,000304: 13,2273 54040 TS PIPAY
007554,000305: 13,2274 54041 TS PIPAZ
007555,000306:
007556,000307: 13,2275 47657 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL
007557,000308: 13,2276 70367 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
007558,000309: 13,2277 54367 TS IMODES30
007559,000310:
007560,000311: 13,2300 04156 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
007561,000312: 13,2301 25344 CADR SETISSW # (OR GO OFF ON PIPFREE).
007562,000313:
007563,000314: 13,2302 12033 TCF MODEEXIT
007564,000315:
007565,000316: 13,2303 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT
007566,000317: 13,2304 47657 CS BIT1 # ISS WARNING.
007567,000318: 13,2305 70367 MASK IMODES30
007568,000319: 13,2306 67657 AD BIT1
007569,000320: 13,2307 54367 TS IMODES30
007570,000321:
007571,000322: 13,2310 77646 MASK BIT10 # IF PIP FAIL ON, DO PROG ALSRM AND RESET
007572,000323: 13,2311 10000 CCS A # ISS WARNING.
007573,000324: 13,2312 12033 TCF MODEEXIT
007574,000325:
007575,000326: 13,2313 05413 TC ALARM
007576,000327: 13,2314 00212 OCT 212
007577,000328:
007578,000329: 13,2315 00004 INHINT
007579,000330:
007580,000331: 13,2316 12300 TCF PIPFREE2
007581,000332:
Page 198 |
007583,000334: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
007584,000335: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
007585,000336: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.
007586,000337:
007587,000338: 13,2317 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY.
007588,000339:
007589,000340: 13,2317 54145 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
007590,000341: 13,2320 02655 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.
007591,000342:
007592,000343: 13,2321 10357 CCS LGYRO # SEE IF GYROS BUSY.
007593,000344: 13,2322 02364 TC GYROBUSY # SLEEP.
007594,000345:
007595,000346: 13,2323 54142 TS MPAC +2
007596,000347: 13,2324 37652 CAF BIT6 # ENABLE THE POWER SUPPLY.
007597,000348: 13,2325 00006 EXTEND
007598,000349: 13,2326 05014 WOR 14
007599,000350:
007600,000351: 13,2327 37655 CAF FOUR
007601,000352: 13,2330 00004 GWAKE2 INHINT # (IF A JOB WAS PUT TO SLEEP, THE POWER
007602,000353: 13,2331 04536 TC WAITLIST # SUPPLY IS LEFT ON BY THE WAKING JOB).
007603,000354: 13,2332 02402 26003 2CADR STRTGYRO
007604,000355:
007605,000356: 13,2334 30145 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
007606,000357: 13,2335 56003 XCH EBANK # RESTORATION ON RETURN.
007607,000358: 13,2336 56145 XCH MPAC +5
007608,000359: 13,2337 54357 TS LGYRO # RESERVES GYROS.
007609,000360: 13,2340 75235 MASK LOW8
007610,000361: 13,2341 54065 TS ITEMP1
007611,000362:
007612,000363: 13,2342 37656 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
007613,000364: 13,2343 54143 GYROAGRE TS MPAC +3
007614,000365: 13,2344 60000 DOUBLE
007615,000366: 13,2345 60065 AD ITEMP1
007616,000367: 13,2346 54144 TS MPAC +4
007617,000368: 13,2347 00006 EXTEND
007618,000369: 13,2350 50000 INDEX A
007619,000370: 13,2351 31401 DCA 1400
007620,000371: 13,2352 52141 DXCH MPAC
007621,000372: 13,2353 07235 TC TPAGREE
007622,000373: 13,2354 52141 DXCH MPAC
007623,000374: 13,2355 50144 INDEX MPAC +4
007624,000375: 13,2356 53401 DXCH 1400
007625,000376:
007626,000377: 13,2357 10143 CCS MPAC +3
007627,000378: 13,2360 12343 TCF GYROAGRE
007628,000379:
007629,000380: 13,2361 30145 CA MPAC +5 # RESTORE CALLER'S EBANK.
007630,000381: 13,2362 54003 TS EBANK
007631,000382: 13,2363 12033 TCF MODEEXIT
007632,000383:
Page 199 |
007634,000385: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.
007635,000386:
007636,000387: 13,2364 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
007637,000388: 13,2365 30120 DCA BUF2
007638,000389: 13,2366 52141 DXCH MPAC
007639,000390: 13,2367 32401 REGSLEEP CAF LGWAKE
007640,000391: 13,2370 14416 TCF JOBSLEEP
007641,000392:
007642,000393: 13,2371 10357 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
007643,000394: 13,2372 12367 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
007644,000395:
007645,000396: 13,2373 54142 TS MPAC +2
007646,000397: 13,2374 00006 EXTEND
007647,000398: 13,2375 30141 DCA MPAC
007648,000399: 13,2376 52120 DXCH BUF2 # RESTORE SWRETURN INFO.
007649,000400: 13,2377 37657 CAF ONE
007650,000401: 13,2400 12330 TCF GWAKE2
007651,000402:
007652,000403: 13,2401 26371 LGWAKE CADR GWAKE
007653,000404:
Page 200 |
007655,000406: # GYRO-TORQUING WAITLIST TASKS.
007656,000407:
007657,000408: 13,2402 42630 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
007658,000409: 13,2403 00006 EXTEND
007659,000410: 13,2404 03014 WAND 14
007660,000411:
007661,000412: 13,2405 02643 TC CAGETEST
007662,000413:
007663,000414: 13,2406 30357 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
007664,000415: 13,2407 00006 EXTEND
007665,000416: 13,2410 77654 MP BIT4
007666,000417: 13,2411 50000 INDEX A
007667,000418: 13,2412 12413 TCF +1
007668,000419: 13,2413 02442 TC GSELECT # =0. DO Y GYRO.
007669,000420: 13,2414 00202 OCT 00202
007670,000421:
007671,000422: 13,2415 02442 TC GSELECT # =1. DO Z GYRO.
007672,000423: 13,2416 00302 OCT 00302
007673,000424:
007674,000425: 13,2417 02440 TC GSELECT -2 # =2. DO X GYRO.
007675,000426: 13,2420 00100 OCT 00100
007676,000427:
007677,000428: 13,2421 37665 CAF ZERO # =3. DONE
007678,000429: 13,2422 54357 TS LGYRO
007679,000430: 13,2423 32401 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
007680,000431: 13,2424 04422 TC JOBWAKE
007681,000432:
007682,000433: 13,2425 37656 CAF BIT2 # DONT RESET POWER SUPPLY IF BIT SET
007683,000434: 13,2426 70370 MASK IMODES33 # (ONLY DURING GYRO TORQUE SCALE FACTOR
007684,000435: 13,2427 10000 CCS A # TEST).
007685,000436: 13,2430 12437 TCF NORESET
007686,000437:
007687,000438: 13,2431 10071 CCS LOCCTR # IF A JOB WAS AWAKENED, DONT RESET GYRO
007688,000439: 13,2432 12437 TCF NORESET # ENABLE.
007689,000440:
007690,000441: 13,2433 12437 TCF NORESET
007691,000442:
007692,000443: 13,2434 47652 CS BIT6 # IF NO JOB AWAKENED, RESET GYRO ENABLE.
007693,000444: 13,2435 00006 EXTEND
007694,000445: 13,2436 03014 WAND 14
007695,000446:
007696,000447: 13,2437 12245 NORESET TCF IMUFINED
007697,000448:
Page 201 |
007699,000450: 13,2440 47655 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
007700,000451: 13,2441 26357 ADS LGYRO
007701,000452:
007702,000453: 13,2442 50002 GSELECT INDEX Q # SELECT GYRO.
007703,000454: 13,2443 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
007704,000455: 13,2444 54071 TS ITEMP4 # AND INCREMENT TO LGYRO.
007705,000456: 13,2445 77663 MASK SEVEN
007706,000457: 13,2446 67643 AD BIT13
007707,000458: 13,2447 26357 ADS LGYRO
007708,000459: 13,2450 54003 TS EBANK
007709,000460: 13,2451 75235 MASK LOW8
007710,000461: 13,2452 54065 TS ITEMP1
007711,000462:
007712,000463: 13,2453 47663 CS SEVEN
007713,000464: 13,2454 70071 MASK ITEMP4
007714,000465: 13,2455 54071 TS ITEMP4
007715,000466:
007716,000467: 13,2456 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
007717,000468: 13,2457 50065 INDEX ITEMP1
007718,000469: 13,2460 31401 DCA 1400
007719,000470: 13,2461 52075 DXCH RUPTREG1
007720,000471:
007721,000472: 13,2462 10074 CCS RUPTREG1
007722,000473: 13,2463 12476 TCF MAJ+
007723,000474: 13,2464 12466 TCF +2
007724,000475: 13,2465 12611 TCF MAJ-
007725,000476:
007726,000477: 13,2466 10075 CCS RUPTREG2
007727,000478: 13,2467 12473 TCF MIN+
007728,000479: 13,2470 12406 TCF STRTGYR2
007729,000480: 13,2471 12606 TCF MIN-
007730,000481: 13,2472 12406 TCF STRTGYR2
007731,000482:
Page 202 |
007733,000484: 13,2473 62527 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
007734,000485: 13,2474 00006 EXTEND # 16 GYRO PULSES.
007735,000486: 13,2475 62406 BZMF STRTGYR2
007736,000487:
007737,000488: 13,2476 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
007738,000489: 13,2477 32632 DCA GYROFRAC
007739,000490: 13,2500 20075 DAS RUPTREG1
007740,000491:
007741,000492: 13,2501 30071 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
007742,000493: 13,2502 00006 EXTEND
007743,000494: 13,2503 05014 WOR 14
007744,000495:
007745,000496: 13,2504 36027 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
007746,000497: 13,2505 70075 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
007747,000498: 13,2506 56075 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
007748,000499: 13,2507 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
007749,000500: 13,2510 77650 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
007750,000501: 13,2511 54066 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
007751,000502: 13,2512 30074 CA RUPTREG1
007752,000503: 13,2513 00006 EXTEND
007753,000504: 13,2514 77647 MP BIT9
007754,000505: 13,2515 54074 TS RUPTREG1
007755,000506: 13,2516 30001 CA L
007756,000507: 13,2517 00006 EXTEND
007757,000508: 13,2520 77642 MP BIT14
007758,000509: 13,2521 26066 ADS ITEMP2 # INITIAL COMMAND.
007759,000510:
007760,000511: 13,2522 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
007761,000512: 13,2523 30075 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
007762,000513: 13,2524 67667 AD MINUS1
007763,000514: 13,2525 10000 CCS A
007764,000515: 13,2526 12552 TCF LONGGYRO
007765,000516: 13,2527 77600 -GYROMIN OCT -177 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD.
007766,000517:
007767,000518: 13,2530 12534 TCF +4
007768,000519:
007769,000520: 13,2531 37642 CAF BIT14
007770,000521: 13,2532 26066 ADS ITEMP2
007771,000522: 13,2533 37665 CAF ZERO
007772,000523:
007773,000524: 13,2534 50065 +4 INDEX ITEMP1
007774,000525: 13,2535 53401 DXCH 1400
Page 203 |
007776,000527: 13,2536 30066 CA ITEMP2 # ENTIRE COMMAND.
007777,000528: 13,2537 54047 LASTSEG TS GYROCMD
007778,000529: 13,2540 00006 EXTEND
007779,000530: 13,2541 77646 MP BIT10 # WAITLIST DT
007780,000531: 13,2542 66165 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
007781,000532: 13,2543 04536 TC WAITLIST
007782,000533: 13,2544 02402 26003 2CADR STRTGYRO
007783,000534:
007784,000535: 13,2546 37646 GYROEXIT CAF BIT10 # TURN ON GYRO ACTIVITY TO START TRAIN.
007785,000536: 13,2547 00006 EXTEND
007786,000537: 13,2550 05014 WOR 14
007787,000538: 13,2551 14602 TCF TASKOVER
007788,000539:
007789,000540: 13,2552 50065 LONGGYRO INDEX ITEMP1
007790,000541: 13,2553 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
007791,000542: 13,2554 37642 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
007792,000543: 13,2555 60066 AD ITEMP2
007793,000544: 13,2556 54047 TS GYROCMD
007794,000545:
007795,000546: 13,2557 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
007796,000547: 13,2560 77646 MP BIT10 # ALMOST OUT.
007797,000548: 13,2561 67671 AD NEG3
007798,000549: 13,2562 04536 TC WAITLIST
007799,000550: 13,2563 02566 26003 2CADR 8192AUG
007800,000551:
007801,000552: 13,2565 12546 TCF GYROEXIT
007802,000553:
007803,000554: 13,2566 02643 8192AUG TC CAGETEST
007804,000555:
007805,000556: 13,2567 30357 CA LGYRO # ADD 8192 PULSES TO GYROCMD
007806,000557: 13,2570 54003 TS EBANK
007807,000558: 13,2571 75235 MASK LOW8
007808,000559: 13,2572 54065 TS ITEMP1
007809,000560:
007810,000561: 13,2573 50065 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
007811,000562: 13,2574 11400 CCS 1400
007812,000563: 13,2575 12601 TCF AUG2 # MORE TO COME.
007813,000564:
007814,000565: 13,2576 37642 CAF BIT14
007815,000566: 13,2577 26047 ADS GYROCMD
007816,000567: 13,2600 12540 TCF LASTSEG +1
007817,000568:
007818,000569: 13,2601 50065 AUG2 INDEX ITEMP1
007819,000570: 13,2602 55400 TS 1400
007820,000571: 13,2603 37642 CAF BIT14
007821,000572: 13,2604 26047 ADS GYROCMD
007822,000573: 13,2605 12557 TCF AUG3 # COMPUTE DT.
007823,000574:
Page 204 |
007825,000576: 13,2606 62527 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
007826,000577: 13,2607 00006 EXTEND
007827,000578: 13,2610 62406 BZMF STRTGYR2
007828,000579:
007829,000580: 13,2611 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
007830,000581: 13,2612 42632 DCS GYROFRAC
007831,000582: 13,2613 20075 DAS RUPTREG1
007832,000583:
007833,000584: 13,2614 30071 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
007834,000585: 13,2615 67647 AD BIT9
007835,000586: 13,2616 00006 EXTEND
007836,000587: 13,2617 05014 WOR 14
007837,000588:
007838,000589: 13,2620 40074 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
007839,000590: 13,2621 54074 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
007840,000591: 13,2622 40075 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
007841,000592: 13,2623 76027 MASK LOW7 # THE SIGN OF THE COMMAND.
007842,000593: 13,2624 40000 COM
007843,000594: 13,2625 56075 XCH RUPTREG2
007844,000595: 13,2626 40000 COM
007845,000596: 13,2627 12507 TCF GMERGE
007846,000597:
007847,000598: 13,2630 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
007848,000599:
007849,000600: 13,2631 00000 00034 GYROFRAC 2DEC .215 B-21
007850,000601:
Page 205 |
007852,000603: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
007853,000604:
007854,000605: 13,2633 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF
007855,000606: 13,2634 00011 READ 11 # ISS WARNING IS ON.
007856,000607: 13,2635 77657 MASK BIT1
007857,000608: 13,2636 10000 CCS A
007858,000609: 13,2637 12641 TCF IMUBAD
007859,000610:
007860,000611: 13,2640 12667 IMUGOOD TCF GOODEND # WITH C(A) = 0.
007861,000612:
007862,000613: 13,2641 37665 IMUBAD CAF ZERO
007863,000614: 13,2642 12664 TCF BADEND
007864,000615:
007865,000616: 13,2643 37652 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE
007866,000617: 13,2644 70367 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
007867,000618: 13,2645 10000 CCS A
007868,000619: 13,2646 12641 TCF IMUBAD # DIRECTLY.
007869,000620: 13,2647 00002 TC Q # WITH C(A) = +0.
007870,000621:
007871,000622: 13,2650 40367 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
007872,000623: 13,2651 77652 MASK BIT6
007873,000624: 13,2652 10000 CCS A
007874,000625: 13,2653 24002 INCR Q
007875,000626: 13,2654 00002 TC Q
007876,000627:
007877,000628: 13,2655 40367 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION
007878,000629: 13,2656 77652 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED,
007879,000630: 13,2657 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
007880,000631: 13,2660 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
007881,000632:
007882,000633: 13,2661 47665 CS ZERO # TO SWRETURN.
007883,000634: 13,2662 54371 TS IMUCADR
007884,000635: 13,2663 12033 TCF MODEEXIT
007885,000636:
Page 206 |
007887,000638: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
007888,000639: # OR AT BADEND FOR A N UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR AOT, AND 2 FOR RADARS.
007889,000640:
007890,000641: 13,2664 54075 BADEND TS RUPTREG2 # DEVICE INDEX.
007891,000642: 13,2665 47665 CS ZERO # FOR FAILURE.
007892,000643: 13,2666 12671 TCF GOODEND +2
007893,000644:
007894,000645: 13,2667 54075 GOODEND TS RUPTREG2
007895,000646: 13,2670 47657 CS ONE # FOR SUCCESS.
007896,000647:
007897,000648: 13,2671 54076 TS RUPTREG3
007898,000649: 13,2672 50075 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
007899,000650: 13,2673 10371 CCS MODECADR
007900,000651: 13,2674 12676 TCF +2 # YES - WAKE IT UP.
007901,000652: 13,2675 12706 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
007902,000653:
007903,000654: 13,2676 37665 CAF ZERO # WAKE SLEEPING PROGRAM.
007904,000655: 13,2677 50075 INDEX RUPTREG2
007905,000656: 13,2700 56371 XCH MODECADR
007906,000657: 13,2701 04422 TC JOBWAKE
007907,000658:
007908,000659: 13,2702 40076 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
007909,000660: 13,2703 50071 INDEX LOCCTR
007910,000661: 13,2704 26150 ADS LOC
007911,000662:
007912,000663: 13,2705 14602 TCF TASKOVER
007913,000664:
007914,000665: 13,2706 30076 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
007915,000666: 13,2707 50075 INDEX RUPTREG2 # UNSUCCESSFUL - -1 INDICATES COMPLETE AND
007916,000667: 13,2710 54371 TS MODECADR # SUCCESSFUL.
007917,000668: 13,2711 14602 TCF TASKOVER
007918,000669:
Page 207 |
007920,000671: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
007921,000672:
007922,000673: 13,2712 37656 RADSTALL CAF TWO # RR AND LR STALL.
007923,000674: 13,2713 12717 TCF STALL
007924,000675:
007925,000676: 13,2714 37657 AOTSTALL CAF ONE # AOT.
007926,000677: 13,2715 02717 TC STALL
007927,000678:
007928,000679: 13,2716 13,2714 OPTSTALL EQUALS AOTSTALL
007929,000680:
007930,000681: 13,2716 13,2712 LOTSTALL EQUALS RADSTALL
007931,000682: 13,2716 37665 IMUSTALL CAF ZERO # IMU.
007932,000683:
007933,000684: 13,2717 00004 STALL INHINT
007934,000685: 13,2720 54075 TS RUPTREG2 # SAVE DEVICE INDEX.
007935,000686: 13,2721 50000 INDEX A # SEE IF OPERATION COMPLETE.
007936,000687: 13,2722 10371 CCS MODECADR
007937,000688: 13,2723 12741 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
007938,000689: 13,2724 12735 TCF MODESLP # OPERATION INCOMPLETE.
007939,000690: 13,2725 12731 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
007940,000691:
007941,000692: 13,2726 50075 MG2 INDEX RUPTREG2 # COMPLETE AND FAILED IF -0. RESET TO +0.
007942,000693: 13,2727 54371 TS MODECADR # RETURN TO CALLER.
007943,000694: 13,2730 12033 TCF MODEEXIT
007944,000695:
007945,000696: 13,2731 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
007946,000697: 13,2732 12741 TCF MODABORT
007947,000698:
007948,000699: 13,2733 24117 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
007949,000700: 13,2734 12726 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0.
007950,000701:
007951,000702: 13,2735 04112 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
007952,000703: 13,2736 50075 INDEX RUPTREG2
007953,000704: 13,2737 54371 TS MODECADR
007954,000705: 13,2740 14416 TCF JOBSLEEP
007955,000706:
007956,000707: 13,2741 05446 MODABORT TC ABORT # TWO PROGRAMS USING SAME DEVICE.
007957,000708: 13,2742 01210 OCT 1210
007958,000709:
Page 208 |
007960,000711: # CONSTANTS FOR MODE SWITCHING ROUTINES
007961,000712:
007962,000713: 13,2743 00014 BITS3&4 OCT 14
007963,000714: 13,2744 00050 BITS4&6 OCT 00050
007964,000715: 13,2745 00070 BITS4-6 OCT 00070
007965,000716: 13,2746 7650 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
007966,000717: 13,2746 70000 13,14,15 OCT 70000
007967,000718:
007968,000719: 13,2747 77500 -COMMAX DEC -191 B-14
007969,000720: 13,2750 77477 -COMMAX- DEC -192 B-14
007970,000721: 13,2751 00074 600MS DEC 60 B-14
007971,000722: 13,2752 4762 3SECSM EQUALS 3SECS
007972,000723: 13,2752 21450 90SEC DEC 9000 B-14
007973,000724:
007974,000725: 13,2753 ENDIMODS EQUALS
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc