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