Source Code
These source-code files are part of a reconstructed copy of Aurora 88, the
final release of the Lunar Module (LM) Apollo Guidance Computer (AGC) system
test software.
They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-011, 2003972-091, and 2003972-111, belonging to Steve Jurvetson. Since only binary dumps (rather than listings) of Aurora 88 are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
006537,000002: ## Copyright: Public domain.
006538,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc
006539,000004: ## Purpose: A section of Aurora 88.
006540,000005: ## It is part of the reconstructed source code for the final
006541,000006: ## release of the Lunar Module system test software. No original
006542,000007: ## listings of this program are available; instead, this file
006543,000008: ## was created via disassembly of dumps of Aurora 88 core rope
006544,000009: ## modules and comparison with other AGC programs.
006545,000010: ## Assembler: yaYUL
006546,000011: ## Contact: Ron Burkey <info@sandroid.org>.
006547,000012: ## Website: www.ibiblio.org/apollo/index.html
006548,000013: ## Mod history: 2023-06-30 MAS Created from Aurora 12.
006549,000014: ## 2023-07-12 MAS Updated for Aurora 88.
006550,000015:
006551,000016:
006552,000017: 4660 SETLOC ENDT4FF
006553,000018: 4660 E3,1451 EBANK= COMMAND
006554,000019:
006555,000020: # FIXED-FIXED ROUTINES.
006556,000021: 4660 37657 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
006557,000022: 4661 54032 TS CDUX
006558,000023: 4662 54033 TS CDUY
006559,000024: 4663 54034 TS CDUZ
006560,000025: 4664 00002 TC Q
006561,000026:
006562,000027: 4665 00454 3SECS DEC 300 B-14
006563,000028:
006564,000029: 4666 ENDIMODF EQUALS
006565,000030:
006566,000031: # IMU ZEROING ROUTINE.
006567,000032:
006568,000033: 13,2000 BANK 13
006569,000034:
006570,000035: 13,2000 03435 IMUZERO TC IMUZERO1 # ROUTINE TO ZERO ICDUS.
006571,000036: 13,2001 47643 IMUZEROA CS IMUSEFLG # SET INDICATION THAT A MISSION OR TEST
006572,000037: 13,2002 70061 MASK STATE # PROGRAM IS USING THE IMU.
006573,000038: 13,2003 67643 AD IMUSEFLG
006574,000039: 13,2004 54061 TS STATE
006575,000040:
006576,000041: 13,2005 02650 TC CAGETSTQ # IF IMU COMING UP, TURN-ON PROGRAM WILL
006577,000042: 13,2006 12033 TCF MODEEXIT # DO ALL THE WORK.
006578,000043:
006579,000044: 13,2007 42743 CS BITS3&4 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
006580,000045: 13,2010 70367 MASK IMODES30 # JUST CAME OUT OF COARSE ALIGN).
006581,000046: 13,2011 62743 AD BITS3&4
006582,000047: 13,2012 54367 TS IMODES30
006583,000048:
006584,000049: 13,2013 42744 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
006585,000050: 13,2014 00006 EXTEND # COUNTER DISABLED.
006586,000051: 13,2015 03012 WAND 12
006587,000052:
006588,000053: 13,2016 03446 TC IMUZEROB
006589,000054: 13,2017 00006 IMUZEROC EXTEND
006590,000055: 13,2020 05012 WOR 12
006591,000056:
006592,000057: 13,2021 37645 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
006593,000058: 13,2022 04451 TC WAITLIST # RECEIVE ITS PULSE TRAIN.
006594,000059: 13,2023 02035 26003 2CADR IMUZERO2
006595,000060:
006596,000061: 13,2025 40367 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
006597,000062: 13,2026 77642 MASK BIT9
006598,000063: 13,2027 10000 CCS A
006599,000064: 13,2030 12033 TCF MODEEXIT
006600,000065:
006601,000066: 13,2031 05315 TC ALARM
006602,000067: 13,2032 00210 OCT 210
006603,000068:
006604,000069: 13,2033 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
006605,000070: 13,2034 14076 TCF SWRETURN
006606,000071:
006607,000072: 13,2035 02650 IMUZERO2 TC CAGETSTQ # POSSIBLY SWITCH TO TURN-ON PROGRAM.
006608,000073: 13,2036 14505 TCF TASKOVER
006609,000074:
006610,000075: 13,2037 04660 TC ZEROICDU # ZERO COUNTERS.
006611,000076: 13,2040 47646 CS BIT5 # REMOVE ZERO DISCRETE.
006612,000077: 13,2041 00006 EXTEND
006613,000078: 13,2042 03012 WAND 12
006614,000079:
006615,000080: 13,2043 33434 CAF 4SECSM # WAIT FOR COUNTERS TO SYNCRONIZE.
006616,000081: 13,2044 04472 TC VARDELAY
006617,000082:
006618,000083: 13,2045 02650 IMUZERO3 TC CAGETSTQ
006619,000084: 13,2046 14505 TCF TASKOVER
006620,000085:
006621,000086: 13,2047 42743 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
006622,000087: 13,2050 70367 MASK IMODES30
006623,000088: 13,2051 54367 TS IMODES30
006624,000089:
006625,000090: 13,2052 04131 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
006626,000091: 13,2053 25367 CADR SETISSW # PRESENT.
006627,000092:
006628,000093: 13,2054 12633 TCF ENDIMU
006629,000094:
006630,000095: # IMU COARSE ALIGN MODE.
006631,000096:
006632,000097: 13,2055 00004 IMUCOARS INHINT
006633,000098: 13,2056 03451 TC SETCOARS
006634,000099: 13,2057 12065 TCF IMUCOAR1
006635,000100: 13,2060 12061 NOOP
006636,000101:
006637,000102: 13,2061 47647 CS BIT4 # INHIBIT IMU FAIL.
006638,000103: 13,2062 70367 MASK IMODES30
006639,000104: 13,2063 67647 AD BIT4
006640,000105: 13,2064 54367 TS IMODES30
006641,000106:
006642,000107: 13,2065 36162 IMUCOAR1 CAF SIX
006643,000108: 13,2066 04451 TC WAITLIST
006644,000109: 13,2067 02072 26003 2CADR COARS
006645,000110:
006646,000111: 13,2071 12033 TCF MODEEXIT
006647,000112:
006648,000113: 13,2072 02643 COARS TC CAGETEST
006649,000114: 13,2073 37645 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
006650,000115: 13,2074 00006 EXTEND
006651,000116: 13,2075 05012 WOR CHAN12
006652,000117:
006653,000118: 13,2076 37651 CAF TWO # SET CDU INDICATOR
006654,000119: 13,2077 55454 COARS1 TS CDUIND
006655,000120:
006656,000121: 13,2100 51454 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S
006657,000122: 13,2101 30400 CA THETAD # COMPLEMENT FORM
006658,000123: 13,2102 00006 EXTEND
006659,000124: 13,2103 51454 INDEX CDUIND
006660,000125: 13,2104 20032 MSU CDUX
006661,000126: 13,2105 00006 EXTEND
006662,000127: 13,2106 77636 MP BIT13 # SHIFT RIGHT 2
006663,000128: 13,2107 56001 XCH L # ROUND
006664,000129: 13,2110 60000 DOUBLE
006665,000130: 13,2111 54065 TS ITEMP1
006666,000131: 13,2112 12114 TCF +2
006667,000132: 13,2113 26001 ADS L
006668,000133:
006669,000134: 13,2114 51454 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
006670,000135: 13,2115 23451 LXCH COMMAND
006671,000136: 13,2116 11454 CCS CDUIND
006672,000137: 13,2117 02077 TC COARS1
006673,000138:
006674,000139: 13,2120 37651 CAF TWO # MINIMUM OF 4 MS WAIT
006675,000140: 13,2121 04472 TC VARDELAY
006676,000141:
006677,000142: 13,2122 02643 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED.
006678,000143: 13,2123 54065 TS ITEMP1 # SETS TO +0.
006679,000144: 13,2124 37651 CAF TWO # SET CDU INDICATOR
006680,000145: 13,2125 55454 +3 TS CDUIND
006681,000146:
006682,000147: 13,2126 51454 INDEX CDUIND
006683,000148: 13,2127 11451 CCS COMMAND # NUMBER OF PULSES REQUIRED
006684,000149: 13,2130 02134 TC COMPOS # GREATER THAN MAX ALLOWED
006685,000150: 13,2131 02143 TC NEXTCDU +1
006686,000151: 13,2132 02206 TC COMNEG
006687,000152: 13,2133 02143 TC NEXTCDU +1
006688,000153:
006689,000154: 13,2134 62747 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
006690,000155: 13,2135 00006 EXTEND # MINUS ONE
006691,000156: 13,2136 62216 BZMF COMZERO
006692,000157: 13,2137 51454 INDEX CDUIND
006693,000158: 13,2140 55451 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
006694,000159: 13,2141 42750 CS -COMMAX- # ALLOWED
006695,000160:
006696,000161: 13,2142 24065 NEXTCDU INCR ITEMP1
006697,000162: 13,2143 51454 INDEX CDUIND
006698,000163: 13,2144 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
006699,000164:
006700,000165: 13,2145 11454 CCS CDUIND
006701,000166: 13,2146 02125 TC COARS2 +3
006702,000167:
006703,000168: 13,2147 10065 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
006704,000169: 13,2150 12222 TCF SENDPULS
006705,000170:
006706,000171: 13,2151 04467 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
006707,000172: 13,2152 00226 DEC 150 B-14
006708,000173:
006709,000174: 13,2153 37651 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
006710,000175: 13,2154 54065 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
006711,000176: 13,2155 50000 INDEX A
006712,000177: 13,2156 30032 CA CDUX
006713,000178: 13,2157 00006 EXTEND
006714,000179: 13,2160 50065 INDEX ITEMP1
006715,000180: 13,2161 20400 MSU THETAD
006716,000181: 13,2162 10000 CCS A
006717,000182: 13,2163 12177 TCF COARSERR
006718,000183: 13,2164 12166 TCF CORSCHK2
006719,000184: 13,2165 12177 TCF COARSERR
006720,000185:
006721,000186: 13,2166 10065 CORSCHK2 CCS ITEMP1
006722,000187: 13,2167 12154 TCF CHKCORS
006723,000188: 13,2170 55451 TS GCOMP # ZERO GYRO COMPENSATION REGISTERS IN
006724,000189: 13,2171 55452 TS GCOMP +1 # PREPARATION FOR COMPENSATION.
006725,000190: 13,2172 55453 TS GCOMP +2
006726,000191: 13,2173 55454 TS GCOMP +3
006727,000192: 13,2174 55455 TS GCOMP +4
006728,000193: 13,2175 55456 TS GCOMP +5
006729,000194:
006730,000195: 13,2176 12633 TCF ENDIMU # END OF COARSE ALIGNMENT.
006731,000196:
006732,000197: 13,2177 62205 COARSERR AD COARSTOL # 2 DEGREES.
006733,000198: 13,2200 00006 EXTEND
006734,000199: 13,2201 62166 BZMF CORSCHK2
006735,000200:
006736,000201: 13,2202 05315 TC ALARM # COARSE ALIGN ERROR.
006737,000202: 13,2203 00211 OCT 211
006738,000203:
006739,000204: 13,2204 12641 TCF IMUBAD
006740,000205:
006741,000206: 13,2205 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS.
006742,000207:
006743,000208: 13,2206 62747 COMNEG AD -COMMAX
006744,000209: 13,2207 00006 EXTEND
006745,000210: 13,2210 62216 BZMF COMZERO
006746,000211: 13,2211 40000 COM
006747,000212: 13,2212 51454 INDEX CDUIND
006748,000213: 13,2213 55451 TS COMMAND
006749,000214: 13,2214 32750 CA -COMMAX-
006750,000215: 13,2215 02142 TC NEXTCDU
006751,000216:
006752,000217: 13,2216 37657 COMZERO CAF ZERO
006753,000218: 13,2217 51454 INDEX CDUIND
006754,000219: 13,2220 57451 XCH COMMAND
006755,000220: 13,2221 02142 TC NEXTCDU
006756,000221:
006757,000222: 13,2222 32746 SENDPULS CAF 13,14,15
006758,000223: 13,2223 00006 EXTEND
006759,000224: 13,2224 05014 WOR CHAN14
006760,000225: 13,2225 32751 CAF 600MS
006761,000226: 13,2226 12121 TCF COARS2 -1 # AND THEN TO VARDELAY.
006762,000227:
006763,000228: # IMU FINE ALIGN MODE SWITCH.
006764,000229:
006765,000230: 13,2227 00004 IMUFINE INHINT
006766,000231: 13,2230 02655 TC CAGETSTJ # SEE IF IMU BEING CAGED.
006767,000232:
006768,000233: 13,2231 42745 CS BITS4-6 # RESET ZERO, COARSE, AND ECTR ENABLE.
006769,000234: 13,2232 00006 EXTEND
006770,000235: 13,2233 03012 WAND 12
006771,000236:
006772,000237: 13,2234 03466 TC IMUFINE1 # IMU FAIL WAS INHIBITED DURING THE
006773,000238: 13,2235 04451 IMUFINE2 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
006774,000239: 13,2236 02247 26003 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
006775,000240:
006776,000241: 13,2240 32752 CAF 90SEC # GYRO RE-CENTERING TIME.
006777,000242: 13,2241 04451 TC WAITLIST
006778,000243: 13,2242 02245 26003 2CADR IMUFINED
006779,000244:
006780,000245: 13,2244 12033 TCF MODEEXIT
006781,000246:
006782,000247: 13,2245 02643 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
006783,000248: 13,2246 12633 TCF ENDIMU
006784,000249:
006785,000250: 13,2247 02650 IFAILOK TC CAGETSTQ # ENABLE IMU FAIL UNLESS IMU BEING CAGED.
006786,000251: 13,2250 14505 TCF TASKOVER # IT IS.
006787,000252:
006788,000253: 13,2251 37647 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE
006789,000254: 13,2252 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
006790,000255: 13,2253 02012 RAND 12
006791,000256: 13,2254 10000 CCS A
006792,000257: 13,2255 14505 TCF TASKOVER
006793,000258:
006794,000259: 13,2256 47647 CS BIT4
006795,000260: 13,2257 70367 PFAILOK2 MASK IMODES30
006796,000261: 13,2260 54367 TS IMODES30
006797,000262: 13,2261 14505 TCF TASKOVER
006798,000263:
006799,000264: 13,2262 02650 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
006800,000265: 13,2263 14505 TCF TASKOVER
006801,000266:
006802,000267: 13,2264 03471 TC PFAILOK1
006803,000268: 13,2265 00002 TC Q
006804,000269:
006805,000270: # ROUTINES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
006806,000271:
006807,000272: 13,2266 02650 PIPUSE TC CAGETSTQ # DONT ENABLE PIPA FAIL IF IMU BEING CAGED
006808,000273: 13,2267 14076 TCF SWRETURN
006809,000274:
006810,000275: 13,2270 00004 INHINT
006811,000276: 13,2271 37657 CAF ZERO # ZERO COUNTERS.
006812,000277: 13,2272 54037 TS PIPAX
006813,000278: 13,2273 54040 TS PIPAY
006814,000279: 13,2274 54041 TS PIPAZ
006815,000280:
006816,000281: 13,2275 47652 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL
006817,000282: 13,2276 70367 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
006818,000283: 13,2277 54367 TS IMODES30
006819,000284:
006820,000285: 13,2300 04131 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
006821,000286: 13,2301 25367 CADR SETISSW # (OR GO OFF ON PIPFREE).
006822,000287:
006823,000288: 13,2302 12033 TCF MODEEXIT
006824,000289:
006825,000290: 13,2303 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT
006826,000291: 13,2304 47652 CS BIT1 # ISS WARNING.
006827,000292: 13,2305 70367 MASK IMODES30
006828,000293: 13,2306 67652 AD BIT1
006829,000294: 13,2307 54367 TS IMODES30
006830,000295:
006831,000296: 13,2310 77641 MASK BIT10 # IF PIP FAIL ON, DO PROG ALSRM AND RESET
006832,000297: 13,2311 10000 CCS A # ISS WARNING.
006833,000298: 13,2312 12033 TCF MODEEXIT
006834,000299:
006835,000300: 13,2313 05315 TC ALARM
006836,000301: 13,2314 00212 OCT 212
006837,000302:
006838,000303: 13,2315 00004 INHINT
006839,000304:
006840,000305: 13,2316 12300 TCF PIPFREE2
006841,000306:
006842,000307: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
006843,000308: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
006844,000309: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.
006845,000310:
006846,000311: 13,2317 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY.
006847,000312:
006848,000313: 13,2317 54145 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
006849,000314: 13,2320 02655 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.
006850,000315:
006851,000316: 13,2321 10357 CCS LGYRO # SEE IF GYROS BUSY.
006852,000317: 13,2322 02364 TC GYROBUSY # SLEEP.
006853,000318:
006854,000319: 13,2323 54142 TS MPAC +2
006855,000320: 13,2324 37645 CAF BIT6 # ENABLE THE POWER SUPPLY.
006856,000321: 13,2325 00006 EXTEND
006857,000322: 13,2326 05014 WOR 14
006858,000323:
006859,000324: 13,2327 37650 CAF FOUR
006860,000325: 13,2330 00004 GWAKE2 INHINT # (IF A JOB WAS PUT TO SLEEP, THE POWER
006861,000326: 13,2331 04451 TC WAITLIST # SUPPLY IS LEFT ON BY THE WAKING JOB).
006862,000327: 13,2332 02402 26003 2CADR STRTGYRO
006863,000328:
006864,000329: 13,2334 30145 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
006865,000330: 13,2335 56003 XCH EBANK # RESTORATION ON RETURN.
006866,000331: 13,2336 56145 XCH MPAC +5
006867,000332: 13,2337 54357 TS LGYRO # RESERVES GYROS.
006868,000333: 13,2340 75137 MASK LOW8
006869,000334: 13,2341 54065 TS ITEMP1
006870,000335:
006871,000336: 13,2342 37651 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
006872,000337: 13,2343 54143 GYROAGRE TS MPAC +3
006873,000338: 13,2344 60000 DOUBLE
006874,000339: 13,2345 60065 AD ITEMP1
006875,000340: 13,2346 54144 TS MPAC +4
006876,000341: 13,2347 00006 EXTEND
006877,000342: 13,2350 50000 INDEX A
006878,000343: 13,2351 31401 DCA 1400
006879,000344: 13,2352 52141 DXCH MPAC
006880,000345: 13,2353 07230 TC TPAGREE
006881,000346: 13,2354 52141 DXCH MPAC
006882,000347: 13,2355 50144 INDEX MPAC +4
006883,000348: 13,2356 53401 DXCH 1400
006884,000349:
006885,000350: 13,2357 10143 CCS MPAC +3
006886,000351: 13,2360 12343 TCF GYROAGRE
006887,000352:
006888,000353: 13,2361 30145 CA MPAC +5 # RESTORE CALLER'S EBANK.
006889,000354: 13,2362 54003 TS EBANK
006890,000355: 13,2363 12033 TCF MODEEXIT
006891,000356:
006892,000357: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.
006893,000358:
006894,000359: 13,2364 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
006895,000360: 13,2365 30120 DCA BUF2
006896,000361: 13,2366 52141 DXCH MPAC
006897,000362: 13,2367 32401 REGSLEEP CAF LGWAKE
006898,000363: 13,2370 14331 TCF JOBSLEEP
006899,000364:
006900,000365: 13,2371 10357 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
006901,000366: 13,2372 12367 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
006902,000367:
006903,000368: 13,2373 54142 TS MPAC +2
006904,000369: 13,2374 00006 EXTEND
006905,000370: 13,2375 30141 DCA MPAC
006906,000371: 13,2376 52120 DXCH BUF2 # RESTORE SWRETURN INFO.
006907,000372: 13,2377 37652 CAF ONE
006908,000373: 13,2400 12330 TCF GWAKE2
006909,000374:
006910,000375: 13,2401 26371 LGWAKE CADR GWAKE
006911,000376:
006912,000377: # GYRO-TORQUING WAITLIST TASKS.
006913,000378:
006914,000379: 13,2402 42630 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
006915,000380: 13,2403 00006 EXTEND
006916,000381: 13,2404 03014 WAND 14
006917,000382:
006918,000383: 13,2405 02643 TC CAGETEST
006919,000384:
006920,000385: 13,2406 30357 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
006921,000386: 13,2407 00006 EXTEND
006922,000387: 13,2410 77647 MP BIT4
006923,000388: 13,2411 50000 INDEX A
006924,000389: 13,2412 12413 TCF +1
006925,000390: 13,2413 02442 TC GSELECT # =0. DO Y GYRO.
006926,000391: 13,2414 00202 OCT 00202
006927,000392:
006928,000393: 13,2415 02442 TC GSELECT # =1. DO Z GYRO.
006929,000394: 13,2416 00302 OCT 00302
006930,000395:
006931,000396: 13,2417 02440 TC GSELECT -2 # =2. DO X GYRO.
006932,000397: 13,2420 00100 OCT 00100
006933,000398:
006934,000399: 13,2421 37657 CAF ZERO # =3. DONE
006935,000400: 13,2422 54357 TS LGYRO
006936,000401: 13,2423 32401 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
006937,000402: 13,2424 04335 TC JOBWAKE
006938,000403:
006939,000404: 13,2425 37651 CAF BIT2 # DONT RESET POWER SUPPLY IF BIT SET
006940,000405: 13,2426 70370 MASK IMODES33 # (ONLY DURING GYRO TORQUE SCALE FACTOR
006941,000406: 13,2427 10000 CCS A # TEST).
006942,000407: 13,2430 12437 TCF NORESET
006943,000408:
006944,000409: 13,2431 10071 CCS LOCCTR # IF A JOB WAS AWAKENED, DONT RESET GYRO
006945,000410: 13,2432 12437 TCF NORESET # ENABLE.
006946,000411:
006947,000412: 13,2433 12437 TCF NORESET
006948,000413:
006949,000414: 13,2434 47645 CS BIT6 # IF NO JOB AWAKENED, RESET GYRO ENABLE.
006950,000415: 13,2435 00006 EXTEND
006951,000416: 13,2436 03014 WAND 14
006952,000417:
006953,000418: 13,2437 12245 NORESET TCF IMUFINED
006954,000419:
006955,000420: 13,2440 47650 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
006956,000421: 13,2441 26357 ADS LGYRO
006957,000422:
006958,000423: 13,2442 50002 GSELECT INDEX Q # SELECT GYRO.
006959,000424: 13,2443 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
006960,000425: 13,2444 54071 TS ITEMP4 # AND INCREMENT TO LGYRO.
006961,000426: 13,2445 77656 MASK SEVEN
006962,000427: 13,2446 67636 AD BIT13
006963,000428: 13,2447 26357 ADS LGYRO
006964,000429: 13,2450 54003 TS EBANK
006965,000430: 13,2451 75137 MASK LOW8
006966,000431: 13,2452 54065 TS ITEMP1
006967,000432:
006968,000433: 13,2453 47656 CS SEVEN
006969,000434: 13,2454 70071 MASK ITEMP4
006970,000435: 13,2455 54071 TS ITEMP4
006971,000436:
006972,000437: 13,2456 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
006973,000438: 13,2457 50065 INDEX ITEMP1
006974,000439: 13,2460 31401 DCA 1400
006975,000440: 13,2461 52075 DXCH RUPTREG1
006976,000441:
006977,000442: 13,2462 10074 CCS RUPTREG1
006978,000443: 13,2463 12476 TCF MAJ+
006979,000444: 13,2464 12466 TCF +2
006980,000445: 13,2465 12611 TCF MAJ-
006981,000446:
006982,000447: 13,2466 10075 CCS RUPTREG2
006983,000448: 13,2467 12473 TCF MIN+
006984,000449: 13,2470 12406 TCF STRTGYR2
006985,000450: 13,2471 12606 TCF MIN-
006986,000451: 13,2472 12406 TCF STRTGYR2
006987,000452:
006988,000453: 13,2473 62527 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
006989,000454: 13,2474 00006 EXTEND # 16 GYRO PULSES.
006990,000455: 13,2475 62406 BZMF STRTGYR2
006991,000456:
006992,000457: 13,2476 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
006993,000458: 13,2477 32632 DCA GYROFRAC
006994,000459: 13,2500 20075 DAS RUPTREG1
006995,000460:
006996,000461: 13,2501 30071 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
006997,000462: 13,2502 00006 EXTEND
006998,000463: 13,2503 05014 WOR 14
006999,000464:
007000,000465: 13,2504 36027 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
007001,000466: 13,2505 70075 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
007002,000467: 13,2506 56075 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
007003,000468: 13,2507 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
007004,000469: 13,2510 77643 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
007005,000470: 13,2511 54066 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
007006,000471: 13,2512 30074 CA RUPTREG1
007007,000472: 13,2513 00006 EXTEND
007008,000473: 13,2514 77642 MP BIT9
007009,000474: 13,2515 54074 TS RUPTREG1
007010,000475: 13,2516 30001 CA L
007011,000476: 13,2517 00006 EXTEND
007012,000477: 13,2520 77635 MP BIT14
007013,000478: 13,2521 26066 ADS ITEMP2 # INITIAL COMMAND.
007014,000479:
007015,000480: 13,2522 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
007016,000481: 13,2523 30075 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
007017,000482: 13,2524 67661 AD MINUS1
007018,000483: 13,2525 10000 CCS A
007019,000484: 13,2526 12552 TCF LONGGYRO
007020,000485: 13,2527 77600 -GYROMIN OCT -177 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD.
007021,000486:
007022,000487: 13,2530 12534 TCF +4
007023,000488:
007024,000489: 13,2531 37635 CAF BIT14
007025,000490: 13,2532 26066 ADS ITEMP2
007026,000491: 13,2533 37657 CAF ZERO
007027,000492:
007028,000493: 13,2534 50065 +4 INDEX ITEMP1
007029,000494: 13,2535 53401 DXCH 1400
007030,000495: 13,2536 30066 CA ITEMP2 # ENTIRE COMMAND.
007031,000496: 13,2537 54047 LASTSEG TS GYROCMD
007032,000497: 13,2540 00006 EXTEND
007033,000498: 13,2541 77641 MP BIT10 # WAITLIST DT
007034,000499: 13,2542 66165 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
007035,000500: 13,2543 04451 TC WAITLIST
007036,000501: 13,2544 02402 26003 2CADR STRTGYRO
007037,000502:
007038,000503: 13,2546 37641 GYROEXIT CAF BIT10 # TURN ON GYRO ACTIVITY TO START TRAIN.
007039,000504: 13,2547 00006 EXTEND
007040,000505: 13,2550 05014 WOR 14
007041,000506: 13,2551 14505 TCF TASKOVER
007042,000507:
007043,000508: 13,2552 50065 LONGGYRO INDEX ITEMP1
007044,000509: 13,2553 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
007045,000510: 13,2554 37635 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
007046,000511: 13,2555 60066 AD ITEMP2
007047,000512: 13,2556 54047 TS GYROCMD
007048,000513:
007049,000514: 13,2557 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
007050,000515: 13,2560 77641 MP BIT10 # ALMOST OUT.
007051,000516: 13,2561 67663 AD NEG3
007052,000517: 13,2562 04451 TC WAITLIST
007053,000518: 13,2563 02566 26003 2CADR 8192AUG
007054,000519:
007055,000520: 13,2565 12546 TCF GYROEXIT
007056,000521:
007057,000522: 13,2566 02643 8192AUG TC CAGETEST
007058,000523:
007059,000524: 13,2567 30357 CA LGYRO # ADD 8192 PULSES TO GYROCMD
007060,000525: 13,2570 54003 TS EBANK
007061,000526: 13,2571 75137 MASK LOW8
007062,000527: 13,2572 54065 TS ITEMP1
007063,000528:
007064,000529: 13,2573 50065 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
007065,000530: 13,2574 11400 CCS 1400
007066,000531: 13,2575 12601 TCF AUG2 # MORE TO COME.
007067,000532:
007068,000533: 13,2576 37635 CAF BIT14
007069,000534: 13,2577 26047 ADS GYROCMD
007070,000535: 13,2600 12540 TCF LASTSEG +1
007071,000536:
007072,000537: 13,2601 50065 AUG2 INDEX ITEMP1
007073,000538: 13,2602 55400 TS 1400
007074,000539: 13,2603 37635 CAF BIT14
007075,000540: 13,2604 26047 ADS GYROCMD
007076,000541: 13,2605 12557 TCF AUG3 # COMPUTE DT.
007077,000542:
007078,000543: 13,2606 62527 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
007079,000544: 13,2607 00006 EXTEND
007080,000545: 13,2610 62406 BZMF STRTGYR2
007081,000546:
007082,000547: 13,2611 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
007083,000548: 13,2612 42632 DCS GYROFRAC
007084,000549: 13,2613 20075 DAS RUPTREG1
007085,000550:
007086,000551: 13,2614 30071 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
007087,000552: 13,2615 67642 AD BIT9
007088,000553: 13,2616 00006 EXTEND
007089,000554: 13,2617 05014 WOR 14
007090,000555:
007091,000556: 13,2620 40074 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
007092,000557: 13,2621 54074 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
007093,000558: 13,2622 40075 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
007094,000559: 13,2623 76027 MASK LOW7 # THE SIGN OF THE COMMAND.
007095,000560: 13,2624 40000 COM
007096,000561: 13,2625 56075 XCH RUPTREG2
007097,000562: 13,2626 40000 COM
007098,000563: 13,2627 12507 TCF GMERGE
007099,000564:
007100,000565: 13,2630 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
007101,000566:
007102,000567: 13,2631 00000 00034 GYROFRAC 2DEC .215 B-21
007103,000568:
007104,000569: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
007105,000570:
007106,000571: 13,2633 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF
007107,000572: 13,2634 00011 READ 11 # ISS WARNING IS ON.
007108,000573: 13,2635 77652 MASK BIT1
007109,000574: 13,2636 10000 CCS A
007110,000575: 13,2637 12641 TCF IMUBAD
007111,000576:
007112,000577: 13,2640 12667 IMUGOOD TCF GOODEND # WITH C(A) = 0.
007113,000578:
007114,000579: 13,2641 37657 IMUBAD CAF ZERO
007115,000580: 13,2642 12664 TCF BADEND
007116,000581:
007117,000582: 13,2643 37645 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE
007118,000583: 13,2644 70367 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
007119,000584: 13,2645 10000 CCS A
007120,000585: 13,2646 12641 TCF IMUBAD # DIRECTLY.
007121,000586: 13,2647 00002 TC Q # WITH C(A) = +0.
007122,000587:
007123,000588: 13,2650 40367 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
007124,000589: 13,2651 77645 MASK BIT6
007125,000590: 13,2652 10000 CCS A
007126,000591: 13,2653 24002 INCR Q
007127,000592: 13,2654 00002 TC Q
007128,000593:
007129,000594: 13,2655 40367 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION
007130,000595: 13,2656 77645 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED,
007131,000596: 13,2657 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
007132,000597: 13,2660 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
007133,000598:
007134,000599: 13,2661 47657 CS ZERO # TO SWRETURN.
007135,000600: 13,2662 54371 TS IMUCADR
007136,000601: 13,2663 12033 TCF MODEEXIT
007137,000602:
007138,000603: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
007139,000604: # OR AT BADEND FOR A N UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR AOT, AND 2 FOR RADARS.
007140,000605:
007141,000606: 13,2664 54075 BADEND TS RUPTREG2 # DEVICE INDEX.
007142,000607: 13,2665 47657 CS ZERO # FOR FAILURE.
007143,000608: 13,2666 12671 TCF GOODEND +2
007144,000609:
007145,000610: 13,2667 54075 GOODEND TS RUPTREG2
007146,000611: 13,2670 47652 CS ONE # FOR SUCCESS.
007147,000612:
007148,000613: 13,2671 54076 TS RUPTREG3
007149,000614: 13,2672 50075 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
007150,000615: 13,2673 10371 CCS MODECADR
007151,000616: 13,2674 12676 TCF +2 # YES - WAKE IT UP.
007152,000617: 13,2675 12706 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
007153,000618:
007154,000619: 13,2676 37657 CAF ZERO # WAKE SLEEPING PROGRAM.
007155,000620: 13,2677 50075 INDEX RUPTREG2
007156,000621: 13,2700 56371 XCH MODECADR
007157,000622: 13,2701 04335 TC JOBWAKE
007158,000623:
007159,000624: 13,2702 40076 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
007160,000625: 13,2703 50071 INDEX LOCCTR
007161,000626: 13,2704 26150 ADS LOC
007162,000627:
007163,000628: 13,2705 14505 TCF TASKOVER
007164,000629:
007165,000630: 13,2706 30076 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
007166,000631: 13,2707 50075 INDEX RUPTREG2 # UNSUCCESSFUL - -1 INDICATES COMPLETE AND
007167,000632: 13,2710 54371 TS MODECADR # SUCCESSFUL.
007168,000633: 13,2711 14505 TCF TASKOVER
007169,000634:
007170,000635: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
007171,000636:
007172,000637: 13,2712 37651 RADSTALL CAF TWO # RR AND LR STALL.
007173,000638: 13,2713 12717 TCF STALL
007174,000639:
007175,000640: 13,2714 37652 AOTSTALL CAF ONE # AOT.
007176,000641: 13,2715 02717 TC STALL
007177,000642:
007178,000643: 13,2716 13,2714 OPTSTALL EQUALS AOTSTALL
007179,000644:
007180,000645: 13,2716 13,2712 LOTSTALL EQUALS RADSTALL
007181,000646: 13,2716 37657 IMUSTALL CAF ZERO # IMU.
007182,000647:
007183,000648: 13,2717 00004 STALL INHINT
007184,000649: 13,2720 54075 TS RUPTREG2 # SAVE DEVICE INDEX.
007185,000650: 13,2721 50000 INDEX A # SEE IF OPERATION COMPLETE.
007186,000651: 13,2722 10371 CCS MODECADR
007187,000652: 13,2723 12741 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
007188,000653: 13,2724 12735 TCF MODESLP # OPERATION INCOMPLETE.
007189,000654: 13,2725 12731 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
007190,000655:
007191,000656: 13,2726 50075 MG2 INDEX RUPTREG2 # COMPLETE AND FAILED IF -0. RESET TO +0.
007192,000657: 13,2727 54371 TS MODECADR # RETURN TO CALLER.
007193,000658: 13,2730 12033 TCF MODEEXIT
007194,000659:
007195,000660: 13,2731 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
007196,000661: 13,2732 12741 TCF MODABORT
007197,000662:
007198,000663: 13,2733 24117 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
007199,000664: 13,2734 12726 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0.
007200,000665:
007201,000666: 13,2735 04112 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
007202,000667: 13,2736 50075 INDEX RUPTREG2
007203,000668: 13,2737 54371 TS MODECADR
007204,000669: 13,2740 14331 TCF JOBSLEEP
007205,000670:
007206,000671: 13,2741 05350 MODABORT TC ABORT # TWO PROGRAMS USING SAME DEVICE.
007207,000672: 13,2742 01210 OCT 1210
007208,000673:
007209,000674: # CONSTANTS FOR MODE SWITCHING ROUTINES
007210,000675:
007211,000676: 13,2743 00014 BITS3&4 OCT 14
007212,000677: 13,2744 00050 BITS4&6 OCT 00050
007213,000678: 13,2745 00070 BITS4-6 OCT 00070
007214,000679: 13,2746 7643 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
007215,000680: 13,2746 70000 13,14,15 OCT 70000
007216,000681:
007217,000682: 13,2747 77500 -COMMAX DEC -191 B-14
007218,000683: 13,2750 77477 -COMMAX- DEC -192 B-14
007219,000684: 13,2751 00074 600MS DEC 60 B-14
007220,000685: 13,2752 4665 3SECSM EQUALS 3SECS
007221,000686: 13,2752 21450 90SEC DEC 9000 B-14
007222,000687:
007223,000688: 13,2753 ENDIMODS EQUALS
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc