Source Code

058402,000001: # Copyright: Public domain. 058403,000002: # Filename: DAPIDLER_PROGRAM.agc 058404,000003: # Purpose: A section of Luminary 1C, revision 131. 058405,000004: # It is part of the source code for the Lunar Module's (LM) 058406,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 058407,000006: # This file is intended to be a faithful transcription, except 058408,000007: # that the code format has been changed to conform to the 058409,000008: # requirements of the yaYUL assembler rather than the 058410,000009: # original YUL assembler. 058411,000010: # Reference: pp. 1407-1417 of 1729.pdf. 058412,000011: # Contact: Ron Burkey <info@sandroid.org>. 058413,000012: # Website: www.ibiblio.org/apollo/index.html 058414,000013: # Mod history: 06/07/03 RSB. Began transcribing. 058415,000014: # 05/14/05 RSB Corrected website reference above. 058416,000015: 058417,000016: # Page 1407 058418,000017: # THE DAPIDLER PROGRAM IS STARTED BY FRESH START AND RESTART. THE DAPIDLER PROGRAM IS DONE 10 TIMES 058419,000018: # PER SECOND UNTIL THE ASTRONAUT DESIRES THE DAP TO WAKE UP, AND THE IMU AND CDUS ARE READY FOR USE BY THE DAP. 058420,000019: # THE NECESSARY INITIALIZATION OF THE DAP IS DONE BY THE DAPIDLER PROGRAM. 058421,000020: 058422,000021: 16,2000 BANK 16 058423,000022: 16,2000 SETLOC DAPS1 058424,000023: 16,2000 BANK 058425,000024: 058426,000025: 16,2000 E6,1536 EBANK= AOSQ 058427,000026: 058428,000027: 16,2000 COUNT* $$/DAPID 058429,000028: 058430,000029: 16,2000 00006 CHEKBITS EXTEND 058431,000030: 16,2001 00031 READ CHAN31 # IF BOTH BIT13 AND BIT14 ARE ONE, THEN 058432,000031: 16,2002 40000 COM # THE MODE SELECT SWITCH IS IN THE OFF 058433,000032: 16,2003 74355 MASK BIT13-14 # POSITION, AND SO THE DAP SHOULD BE OFF, 058434,000033: 16,2004 00006 EXTEND # WITH NO ATTITUDE ERROR DISPLAY. 058435,000034: 16,2005 12157 BZF MOREIDLE 058436,000035: 058437,000036: 16,2006 41300 CS IMODES33 058438,000037: 16,2007 74746 MASK BIT6 058439,000038: 16,2010 10000 CCS A 058440,000039: 16,2011 12206 TCF JUMPDSP 058441,000040: 16,2012 41262 CS RCSFLAGS # IMU NOT USABLE. SET UP INITIALIZATION 058442,000041: 16,2013 74751 MASK BIT3 # FLAG FOR ATT ERROR DISPLAY ROUTINE. 058443,000042: 16,2014 27262 ADS RCSFLAGS 058444,000043: 16,2015 12163 TCF SHUTDOWN 058445,000044: 058446,000045: 16,2016 34742 CHEKMORE CAF BIT10 # BIT 10 OF 30 IS PGNCS CONTROL OF S/C 058447,000046: 16,2017 00006 EXTEND 058448,000047: 16,2020 02030 RAND CHAN30 # BITS IN 30 ARE INVERTED 058449,000048: 16,2021 10000 CCS A 058450,000049: 16,2022 12157 TCF MOREIDLE 058451,000050: 058452,000051: 16,2023 00002 RETURN 058453,000052: 058454,000053: # Page 1408 058455,000054: # DAPIDLER ENTRY. 058456,000055: 058457,000056: 16,2024 22016 DAPIDLER LXCH BANKRUPT # INTERRUPT LEAD INS (CONTINUED) 058458,000057: 16,2025 00006 EXTEND 058459,000058: 16,2026 22012 QXCH QRUPT 058460,000059: 058461,000060: 16,2027 31262 CA RCSFLAGS 058462,000061: 16,2030 74737 MASK BIT13 058463,000062: 16,2031 10000 CCS A # CHECK IF 1/ACCJOB HAS BEEN SET UP SINCE 058464,000063: 16,2032 12041 TCF CHECKUP # THE LAST FRESH START OR RESTART. 058465,000064: 16,2033 34737 CA BIT13 058466,000065: 16,2034 27262 ADS RCSFLAGS # BIT 13 IS 1. 058467,000066: 16,2035 37720 CAF PRIO27 058468,000067: 16,2036 05072 TC NOVAC # SET UP JOB TO DO A LITTLE INITIALIZATION 058469,000068: 16,2037 E6,1536 EBANK= AOSQ # AND EXECUTE 1/ACCS. 058470,000069: 16,2037 03645 42106 2CADR 1/ACCSET # (WILL BRANCH TO MOREIDLE ON ACCSOKAY) 058471,000070: 058472,000071: 16,2041 02000 CHECKUP TC CHEKBITS # CHECK TO SEE IF LM DAP IS TO GO ON AND 058473,000072: # DO ERROR DISPLAY. 058474,000073: 058475,000074: 16,2042 30111 CAE DAPBOOLS # IF 1/ACCS HAS NOT BEEN COMPLETED, IDLE. 058476,000075: 16,2043 74751 MASK ACCSOKAY # NOTE: ONLY FRESH START AND RESTART 058477,000076: 16,2044 00006 EXTEND # KNOCK THIS BIT DOWN. 058478,000077: 16,2045 12157 BZF MOREIDLE 058479,000078: 058480,000079: 16,2046 04674 STARTDAP TC IBNKCALL # ZERO ATTITUDE ERROR AND DESIRED RATES. 058481,000080: 16,2047 40154 FCADR ZATTEROR 058482,000081: 16,2050 34755 CAF ZERO # ************ INITIALIZE: ************* 058483,000082: 16,2051 55524 TS TJP 058484,000083: 16,2052 55525 TS TJU 058485,000084: 16,2053 55526 TS TJV 058486,000085: 16,2054 55421 TS OMEGAP # RATES IN BODY (PILOT) COORDINATES. 058487,000086: 16,2055 55422 TS OMEGAQ 058488,000087: 16,2056 55423 TS OMEGAR 058489,000088: 16,2057 55430 TS TRAPEDP 058490,000089: 16,2060 55431 TS TRAPEDQ 058491,000090: 16,2061 55432 TS TRAPEDR 058492,000091: 16,2062 55536 TS AOSQ # OFFSET ACCELERATION ESTIMATES. 058493,000092: 16,2063 55537 TS AOSQ +1 058494,000093: 16,2064 55540 TS AOSR 058495,000094: 16,2065 55541 TS AOSR +1 058496,000095: 16,2066 55424 TS ALPHAQ # COPIES OF OFFSET ESTIMATES FOR DOWNLIST. 058497,000096: 16,2067 55425 TS ALPHAR 058498,000097: 16,2070 55501 TS NEGUQ 058499,000098: 16,2071 55503 TS NEGUR 058500,000099: 16,2072 55544 TS AOSQTERM # QRAXIS RATE DERIVATION TERMS AND KALMAN 058501,000100: 16,2073 55545 TS AOSRTERM # FILTER INITIALIZATION TERMS. 058502,000101: 16,2074 55510 TS QACCDOT # DESCENT ACCELERATION DERIVATIVE EST. 058503,000102: 16,2075 55512 TS RACCDOT 058504,000103: # Page 1409 058505,000104: 16,2076 55502 TS ALLOWGTS # AOSTASK FLAG FOR QRAXIS RCS CONTROL USE. 058506,000105: 16,2077 55630 TS COTROLER # DO TRYGTS ON FIRST PASS (WILL GO TO RCS) 058507,000106: 16,2100 55632 TS INGTS # RECOGNIZE FIRST GTS PASS AS SUCH. 058508,000107: 16,2101 55631 TS QGIMTIMR # STOP GIMBAL DRIVES. (PROBABLY WOULD BE 058509,000108: 16,2102 55633 TS RGIMTIMR # GOOD ENOUGH JUST TO INACTIVATE TIMERS) 058510,000109: 16,2103 55460 TS OLDPMIN # MINIMUM IMPULSE MODE ERASABLES 058511,000110: 16,2104 55461 TS OLDQRMIN 058512,000111: 16,2105 55766 TS PJETCTR # INITIALIZE DOCKED JET INHIBITION 058513,000112: 16,2106 55767 TS UJETCTR # COUNTERS 058514,000113: 16,2107 55770 TS VJETCTR 058515,000114: 16,2110 4747 CALLGMBL EQUALS BIT5 # RCSFLAGS INITIALIZATION. 058516,000115: 16,2110 42202 CS MANFLAG 058517,000116: 16,2111 71262 MASK RCSFLAGS # NEGUQ(R) HAVE BEEN GENERATED. 058518,000117: 16,2112 55262 TS RCSFLAGS 058519,000118: 058520,000119: # SET UP "OLD" MEASURED CDU ANGLES: 058521,000120: 058522,000121: 16,2113 00006 EXTEND 058523,000122: 16,2114 30033 DCA CDUX # OLDXFORP AND OLDYFORP 058524,000123: 16,2115 53441 DXCH OLDXFORP 058525,000124: 16,2116 30034 CA CDUZ 058526,000125: 16,2117 55442 TS OLDZFORQ 058527,000126: 16,2120 41262 CS RCSFLAGS 058528,000127: 16,2121 74740 MASK BIT12 058529,000128: 16,2122 27262 ADS RCSFLAGS # BIT 12 SET TO 1. 058530,000129: 16,2123 34751 CA FOUR 058531,000130: 16,2124 55534 TS SKIPU 058532,000131: 16,2125 55535 TS SKIPV 058533,000132: 16,2126 34733 CA POSMAX 058534,000133: 16,2127 54031 TS TIME6 058535,000134: 16,2130 55466 TS T6NEXT 058536,000135: 16,2131 55470 TS T6FURTHA 058537,000136: 16,2132 34755 CA ZERO 058538,000137: 16,2133 55467 TS T6NEXT +1 058539,000138: 16,2134 55471 TS T6FURTHA +1 058540,000139: 16,2135 55465 TS NXT6ADR 058541,000140: 16,2136 55472 TS NEXTP 058542,000141: 16,2137 55473 TS NEXTU 058543,000142: 16,2140 55474 TS NEXTV 058544,000143: 16,2141 44363 CS TEN 058545,000144: 16,2142 55756 TS DAPZRUPT # JASK NOT IN PROGRESS, INITIALIZE NEG. 058546,000145: 16,2143 34752 CA TWO 058547,000146: 16,2144 55433 TS NPTRAPS 058548,000147: 16,2145 55434 TS NQTRAPS 058549,000148: 16,2146 55435 TS NRTRAPS 058550,000149: 16,2147 00006 EXTEND 058551,000150: 16,2150 32205 DCA PAXADIDL 058552,000151: 16,2151 53264 DXCH T5ADR 058553,000152: 16,2152 37732 SETTIME5 CAF MS100 058554,000153: 16,2153 54030 TS TIME5 058555,000154: # Page 1410 058556,000155: 16,2154 15270 TCF RESUME 058557,000156: 16,2155 E6,1536 EBANK= AOSQ 058558,000157: 16,2155 02024 34106 IDLERADR 2CADR DAPIDLER 058559,000158: 058560,000159: 16,2157 04674 MOREIDLE TC IBNKCALL # CALCULATE Q,R-AXES ATTITUDE ERRORS. 058561,000160: 16,2160 36655 CADR QERRCALC 058562,000161: 058563,000162: 16,2161 04674 TC IBNKCALL 058564,000163: 16,2162 35452 CADR CALCPERR # CALCULATE P AXIS ATTITUDE ERRORS. 058565,000164: 058566,000165: 16,2163 00006 SHUTDOWN EXTEND 058567,000166: 16,2164 32156 DCA IDLERADR 058568,000167: 16,2165 53264 DXCH T5ADR 058569,000168: 058570,000169: 16,2166 34755 CAF ZERO # KILL ANY POSSIBLE JET REQUESTS 058571,000170: 16,2167 55472 TS NEXTP 058572,000171: 16,2170 55473 TS NEXTU 058573,000172: 16,2171 55474 TS NEXTV 058574,000173: 16,2172 00006 EXTEND # COMMAND JETS OFF. 058575,000174: 16,2173 01005 WRITE CHAN5 058576,000175: 16,2174 00006 EXTEND 058577,000176: 16,2175 01006 WRITE CHAN6 058578,000177: 16,2176 42203 CS BGIM23 # TURN TRIM GIMBAL OFF 058579,000178: 16,2177 00006 EXTEND 058580,000179: 16,2200 03012 WAND CHAN12 058581,000180: 16,2201 12152 TCF SETTIME5 # RETURN IN 100 MSEC. 058582,000181: 058583,000182: 16,2202 03021 MANFLAG OCT 03021 058584,000183: 16,2203 07400 BGIM23 OCTAL 07400 058585,000184: 16,2204 E6,1421 EBANK= OMEGAP 058586,000185: 16,2204 02213 34106 PAXADIDL 2CADR PAXIS 058587,000186: 058588,000187: 16,2206 7732 MS100 = OCT37766 058589,000188: 16,2206 0061 COSMG = ITEMP1 058590,000189: 16,2206 00006 JUMPDSP EXTEND # TRANSFER TO BANK 20 058591,000190: 16,2207 32212 DCA DSPCADR # FOR ATTITUDE ERROR DISPLAYS 058592,000191: 16,2210 52006 DTCB 058593,000192: 058594,000193: 16,2211 E6,1760 EBANK= AK 058595,000194: 16,2211 02227 40106 DSPCADR 2CADR ALTDSPLY 058596,000195: 058597,000196: # Page 1411 058598,000197: 20,2227 BANK 20 058599,000198: 20,2000 SETLOC DAPS3 058600,000199: 20,2000 BANK 058601,000200: 20,2227 COUNT* $$/NEEDL 058602,000201: 058603,000202: # PROGRAM: ALTDSPLY 058604,000203: # MOD 0. 6 DEC 1967 058605,000204: # AUTHOR: CRAIG WORK, DON KEENE, MIT IL 058606,000205: # MOD 3 BY DON KEENE AUG 1, 1968 -- MOVED PROGRAM TO BANK 20 058607,000206: 058608,000207: # PROGRAM DESCRIPTION: 058609,000208: # ALTDSPLY REVERSES THE DSPLYALT BIT OF RCSFLAGS EACH TIME IT IS CALLED, WHICH IS PRESUMABLY EVERY 100 MS. 058610,000209: # IF THE REVERSED BIT IS ONE, NEEDLER IS CALLED TO DISPLAY ATTITUDE ERRORS. IF THE BIT IS ZERO, THE ATTITUDE ERRORS 058611,000210: # ARE CALCULATED AS 1) ESTIMATED RATES (FOLLOWING) IF NEED2FLG = 1, OTHERWISE AS 2) DAP FOLLOWING ERRORS FOR 058612,000211: # NEEDLFLG = 0 AND 3) TOTAL ATTITUDE ERRORS FOR NEEDLFLG = 1. 058613,000212: 058614,000213: # WARNING: ALTDSPLY MAY ONLY BE CALLED WITH INTERRUPT INHIBITED 058615,000214: 058616,000215: # WARNING: EBANK MUST BE SET TO 6 WHEN USING THIS ROUTINE. 058617,000216: 058618,000217: # INPUT: RCSFLAGS AND 1) IF NEEDLFLG = 0, INPUT PERROR, QERROR, RERROR. 058619,000218: # 2) IF NEEDLFLG = 1, INPUT CPHI,CTHETA,CPSI,CDUX,CDUY,CDUZ,M11,M21,M32,M22,M32. (GPMATRIX) 058620,000219: # 3) IF NEED2FLG = 1, INPUT OMEGAP, OMEGAQ, AND OMEGAR 058621,000220: 058622,000221: # OUTPUTS: RCSFLAGS WITH DSPLYALT REVERSED, AK, AK1, AK2, + NEEDLER OUTPUTS. 058623,000222: 058624,000223: # ENTRY: TCF ALTDSPLY 058625,000224: 058626,000225: # EXIT: TCF CHEKMORE 058627,000226: 058628,000227: # SUBPROGRAMS CALLED: NEEDLER, CVERSUB2 058629,000228: 058630,000229: # DEBRIS: A, L, AND NEEDLER DEBRIS. 058631,000230: 058632,000231: 20,2227 31262 ALTDSPLY CA RCSFLAGS # INVERT THE DISPLAY ALTERNATION BIT. 058633,000232: 20,2230 54001 TS L 058634,000233: 20,2231 34750 CA DSPLYALT 058635,000234: 20,2232 00006 EXTEND 058636,000235: 20,2233 06001 RXOR LCHAN 058637,000236: 20,2234 55262 TS RCSFLAGS 058638,000237: 058639,000238: 20,2235 74750 MASK DSPLYALT 058640,000239: 20,2236 10000 CCS A # IS ALTERNATION FLAG ZERO? 058641,000240: # Page 1412 058642,000241: 20,2237 12336 TCF NEEDLER 058643,000242: 058644,000243: 20,2240 40074 CS FLAGWRD0 # CHECK FOR RATE DISPLAY TO ERROR NEEDLES 058645,000244: 20,2241 74735 MASK NEED2BIT # VIA EXTENDED VERB 60 058646,000245: 20,2242 00006 EXTEND 058647,000246: 20,2243 12257 BZF DISPRATE 058648,000247: 058649,000248: 20,2244 30074 CAE FLAGWRD0 # NEEDFLG WILL INDICATE TOTAL OR DAP 058650,000249: 20,2245 74750 MASK NEEDLBIT # ATTITUDE ERROR DISPLAY REQUEST. 058651,000250: 20,2246 10000 CCS A 058652,000251: 20,2247 12266 TCF DSPLYTOT # TOTAL ERROR IS NEEDED IN AK, AK +1, AK +2 058653,000252: 058654,000253: 20,2250 41450 CS QERROR # YES. DISPLAY ATT ERRORS ON THE -BALL. 058655,000254: 20,2251 55761 TS AK +1 # ERROR COMPLEMENTS ARE INPUT TO NEEDLER. 058656,000255: 20,2252 41452 CS RERROR 058657,000256: 20,2253 55762 TS AK +2 058658,000257: 20,2254 41464 CS PERROR 058659,000258: 20,2255 57760 XCH AK 058660,000259: 058661,000260: 20,2256 12456 TCF RETNMORE # DISPLAY THESE THE NEXT TIME THROUGH 058662,000261: 058663,000262: 20,2257 41422 DISPRATE CS OMEGAQ # LOAD ESTIMATED RATES (FOLLOWING) 058664,000263: 20,2260 55761 TS AK +1 058665,000264: 20,2261 41423 CS OMEGAR 058666,000265: 20,2262 55762 TS AK +2 058667,000266: 20,2263 41421 CS OMEGAP 058668,000267: 20,2264 57760 XCH AK 058669,000268: 20,2265 12456 TCF RETNMORE 058670,000269: 058671,000270: # CALCULATE GIMBAL ANGLE TOTAL ERRORS, RESOLVE INTO PILOT AXES, STORE TOTAL ERRORS FOR NEEDLER. Q-AXIS FIRST. 058672,000271: 058673,000272: 20,2266 00006 DSPLYTOT EXTEND 058674,000273: 20,2267 22061 QXCH ITEMP1 # SAVE Q FOR CHEKBITS RETURN. 058675,000274: 058676,000275: 20,2270 30322 CA CTHETA # DESIRED ATTITUDE, Y-AXIS, 2'S COMP. 058677,000276: 20,2271 00006 EXTEND # SUBTRACT CURRENT ATTITUDE. 058678,000277: 20,2272 20033 MSU CDUY # DIFFERENCE SCALED AT PI, 1'S COMP. 058679,000278: 20,2273 55760 TS AK # SAVE FOR R-ERROR CALCULATION. 058680,000279: 20,2274 00006 EXTEND 058681,000280: 20,2275 71415 MP M21 # (CTHETA-CDUY)*M21 SCALED AT PI RADIANS. 058682,000281: 20,2276 57761 XCH AK +1 # STORE FIRST TERM OF Q ERROR. 058683,000282: 20,2277 30323 CA CPSI # DESIRED ATTITUDE, Z-AXIS, 2'S COMP. 058684,000283: 20,2300 00006 EXTEND # SUBTRACT CURRENT ATTITUDE. 058685,000284: 20,2301 20034 MSU CDUZ # DIFFERENCE SCALED AT PI, 1'S COMP. 058686,000285: 20,2302 55762 TS AK +2 # SAVE Z-AXIS TERM FOR R ERROR CALCULATION 058687,000286: 20,2303 00006 EXTEND 058688,000287: 20,2304 71417 MP M22 # (CPSI-CDUZ)*M22, SCALED AT PI RADIANS. 058689,000288: 20,2305 61761 AD AK +1 # Q ERROR COMPLETE , AT PI RAD. 058690,000289: 20,2306 02451 TC OVERSUB2 # PIN NEEDLES IN CASE OF OVERFLOW 058691,000290: 20,2307 55761 TS AK +1 058692,000291: 058693,000292: # Page 1413 058694,000293: # R ERROR CALCULATION NEXT. 058695,000294: 058696,000295: 20,2310 31760 CA AK # Y-AXIS DIFFERENCE STORED BY Q-AXIS CALC. 058697,000296: 20,2311 00006 EXTEND 058698,000297: 20,2312 71416 MP M31 # (CTHETA-CDUY)*M31, SCALED AT PI RADIANS. 058699,000298: 20,2313 57762 XCH AK +2 # FIRST TERM OF R ERROR. 058700,000299: # Z-AXIS DIFFERENCE, STORED BY A CALC. IS 058701,000300: 20,2314 00006 EXTEND # RECOVERED BY THE EXCHANGE. 058702,000301: 20,2315 71420 MP M32 # (CPSI-CDUZ)*M32, SCALED AT PI RADIANS. 058703,000302: 20,2316 61762 AD AK +2 # R ERROR COMPLETE , AT PI RAD. 058704,000303: 20,2317 02451 TC OVERSUB2 # PIN NEEDLES IN CASE OF OVERFLOW. 058705,000304: 20,2320 55762 TS AK +2 058706,000305: 058707,000306: # NOW CALCULATE P ERROR. (NOTE THAT M13 = 1, SCALED AT 1, SO THE MULTIPLICATION IS BY-PASSED.) 058708,000307: 058709,000308: 20,2321 31760 CA AK # Y-AXIS DIFFERENCE STORED BY Q AXIS CALC. 058710,000309: 20,2322 00006 EXTEND 058711,000310: 20,2323 71414 MP M11 # (CTHETA-CDUY)*M11 SCALED AT PI RADIANS. 058712,000311: 20,2324 57760 XCH AK # FIRST TERM OF P ERROR IN AK, AT PI RAD. 058713,000312: 20,2325 30321 CAE CPHI # DESIRED ATTITUDE, X-AXIS, 2'S COMP. 058714,000313: 20,2326 00006 EXTEND # SUBTRACT CURRENT X ATTITUDE 058715,000314: 20,2327 20032 MSU CDUX # X-AXIS DIFFERENCE, 1'S COMP, AT PI RAD. 058716,000315: 058717,000316: # M13 = 1, SO BYPASS THE MULTIPLICATION. 058718,000317: # EXTEND 058719,000318: # MP M13 # (CPHI-CDUX)*M13 SCALED AT PI RADIANS. 058720,000319: 058721,000320: 20,2330 61760 AD AK # P ERROR COMPLETE , SCALED AT PI RAD 058722,000321: 20,2331 02451 TC OVERSUB2 # PIN NEEDLES IN CASE OF OVERFLOW. 058723,000322: 20,2332 55760 TS AK 058724,000323: 058725,000324: 20,2333 00006 EXTEND 058726,000325: 20,2334 22061 QXCH ITEMP1 # RESTORE Q FOR CHEKBITS RETURN. 058727,000326: 058728,000327: 20,2335 12456 TCF RETNMORE # DISPLAY THESE THE NEXT TIME THROUGH 058729,000328: 058730,000329: # Page 1414 058731,000330: # FDAI ATTITUDE ERROR DISPLAY SUBROUTINE 058732,000331: 058733,000332: # PROGRAM DESCRIPTION: D. KEENE 5/24/67 058734,000333: # MOD 1 BY CRAIG WORK, 12 DEC 67 058735,000334: # MOD 2 BY CRAIG WORK, 6 APRIL 68, CONVERTS ATTITUDE ERROR DISPLAY SCALING FROM 16 7/8 DEG. TO 42 3/16 DEGREES. 058736,000335: 058737,000336: # THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS) 058738,000337: # IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT 058739,000338: # OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES 058740,000339: # THE DACS. 058741,000340: 058742,000341: # CALLING SEQUENCE: 058743,000342: # DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE 058744,000343: # TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM: 058745,000344: # CS RCSFLAGS # IN EBANK6 058746,000345: # MASK BIT3 058747,000346: # ADS RCSFLAGS 058748,000347: # THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERRED TO THE FOLLOWING LOCATIONS IN EBANK6: 058749,000348: # AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT 058750,000349: # AK1 SCALED 180 DEGREES TO CHANGE 058751,000350: # AK2 SCALED 180 DEGREES 058752,000351: # FULL SCALED DEFLECTION OF THE NEEDLES CORRESPONDS TO 5 1/16 DEGREES, WHILE 384 BITS IN THE IMU ERROR COUNTER 058753,000352: # CORRESPONDS TO 42 3/16 DEGREES. (DAC MAXIMUM CAPACITY IS 384 BITS.) 46 BITS EFFECTIVELY PIN THE NEEDLES. 058754,000353: # FOR A RATE DISPLAY, FULL SCALE NEEDLE DEFLECTION IS 1 17/64 DEG/SEC, AND A FULL COUNTER IS ABOUT 10.5 DEG/SEC. 058755,000354: # A CALL TO NEEDLER WILL THE UPDATE THE DISPLAY: 058756,000355: # INHINT 058757,000356: # TC IBNKCALL # NOTE: EBANK SHOULD BE SET TO E6 058758,000357: # CADR NEEDLER 058759,000358: # RELINT 058760,000359: # THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PROGRAM ARE 058761,000360: # REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS. 058762,000361: # NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50 MS. TO ASSURE PROPER RELAY SEQUENCING. 058763,000362: 058764,000363: # ERASABLES USED: 058765,000364: # AK CDUXCMD 058766,000365: # AK1 CDUYCMD 058767,000366: # AK2 CDUZCMD 058768,000367: # EDRIVEX A,L,Q 058769,000368: # EDRIVEY T5TEMP 058770,000369: # Page 1415 058771,000370: # EDRIVEZ DINDX 058772,000371: 058773,000372: # SWITCHES: RCSFLAGS BITS 3,2 058774,000373: 058775,000374: # I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN -- READ ONLY) 058776,000375: # CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE) 058777,000376: # CHAN14 BIT 13,14,15 (DAC ACTIVITY) 058778,000377: 058779,000378: # SIGN CONVENTION: AK = THETAC - THETA 058780,000379: # WHERE THETAC = COMMAND ANGLE 058781,000380: # THETA = PRESENT ANGLE 058782,000381: 058783,000382: 20,2336 31262 NEEDLER CA RCSFLAGS 058784,000383: 20,2337 76245 MASK SIX 058785,000384: 20,2340 00006 EXTEND 058786,000385: 20,2341 12376 BZF NEEDLES3 058787,000386: 20,2342 74751 MASK BIT3 058788,000387: 20,2343 00006 EXTEND 058789,000388: 20,2344 12367 BZF NEEDLER2 # BIT3 = 0, BIT2 = 1 058790,000389: 058791,000390: 20,2345 44746 CS BIT6 # FIRST PASS BIT3 = 1 058792,000391: 20,2346 00006 EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS 058793,000392: 20,2347 03012 WAND CHAN12 # MUST WAIT AT LEAST 60 MS BEFORE 058794,000393: 20,2350 44755 NEEDLE11 CS ZERO # ENABLING COUNTERS. 058795,000394: 20,2351 55760 TS AK # ZERO THE INPUTS ON FIRST PASS 058796,000395: 20,2352 55761 TS AK1 058797,000396: 20,2353 55762 TS AK2 058798,000397: 20,2354 55763 TS EDRIVEX # ZERO THE DISPLAY REGISTERS 058799,000398: 20,2355 55764 TS EDRIVEY 058800,000399: 20,2356 55765 TS EDRIVEZ 058801,000400: 20,2357 54050 TS CDUXCMD # ZERO THE OUT COUNTERS 058802,000401: 20,2360 54051 TS CDUYCMD 058803,000402: 20,2361 54052 TS CDUZCMD 058804,000403: 20,2362 46245 CS SIX # RESET RCSFLAGS FOR PASS2 058805,000404: 20,2363 71262 MASK RCSFLAGS 058806,000405: 20,2364 64752 AD BIT2 058807,000406: 20,2365 55262 TS RCSFLAGS 058808,000407: 20,2366 12456 TCF RETNMORE 058809,000408: 058810,000409: 20,2367 34746 NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS 058811,000410: 20,2370 00006 EXTEND 058812,000411: 20,2371 05012 WOR CHAN12 058813,000412: 20,2372 46245 CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE 058814,000413: 20,2373 71262 MASK RCSFLAGS # ERRORS. WAIT AT LEAST 4 MS FOR 058815,000414: 20,2374 55262 TS RCSFLAGS # RELAY CLOSURE. 058816,000415: 20,2375 12456 TCF RETNMORE 058817,000416: 058818,000417: 20,2376 34746 NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER 058819,000418: # Page 1416 058820,000419: 20,2377 00006 EXTEND # IS ENABLED 058821,000420: 20,2400 02012 RAND CHAN12 058822,000421: 20,2401 10000 CCS A # IF NOT, RE-INITIALIZE NEEDLER. 058823,000422: 20,2402 12407 TCF NEEDLES 058824,000423: 058825,000424: 20,2403 41262 CS RCSFLAGS # SET UP INITIALIZATION FLAG IN RCSFLAGS. 058826,000425: 20,2404 74751 MASK BIT3 058827,000426: 20,2405 27262 ADS RCSFLAGS 058828,000427: 20,2406 12456 TCF RETNMORE 058829,000428: 058830,000429: 20,2407 34752 NEEDLES CAF TWO 058831,000430: 20,2410 54063 DACLOOP TS DINDX 058832,000431: 20,2411 42450 CS ONETENTH # SET UP INITIALIZATION FLAG IN RCSFLAGS. 058833,000432: 20,2412 00006 EXTEND 058834,000433: 20,2413 50063 INDEX DINDX 058835,000434: 20,2414 71760 MP AK 058836,000435: 20,2415 54001 TS L 058837,000436: 20,2416 10000 CCS A 058838,000437: 20,2417 32446 CA DACLIMIT 058839,000438: 20,2420 12422 TCF +2 058840,000439: 20,2421 42446 CS DACLIMIT 058841,000440: 20,2422 60001 AD L 058842,000441: 20,2423 54061 TS T5TEMP # OVFLO CHK 058843,000442: 20,2424 12430 TCF +4 058844,000443: 20,2425 50000 INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384 058845,000444: 20,2426 32446 CAF DACLIMIT 058846,000445: 20,2427 54001 TS L 058847,000446: 20,2430 50063 INDEX DINDX 058848,000447: 20,2431 41763 CS EDRIVEX # CURRENT VALUE OF DAC 058849,000448: 20,2432 60001 AD L 058850,000449: 20,2433 50063 INDEX DINDX 058851,000450: 20,2434 26050 ADS CDUXCMD 058852,000451: 20,2435 50063 INDEX DINDX 058853,000452: 20,2436 23763 LXCH EDRIVEX 058854,000453: 20,2437 10063 CCS DINDX 058855,000454: 20,2440 12410 TCF DACLOOP 058856,000455: 20,2441 37743 CAF 13,14,15 058857,000456: 20,2442 00006 EXTEND 058858,000457: 20,2443 05014 WOR CHAN14 # SET DAC ACTIVITY BITS 058859,000458: 20,2444 12456 TCF RETNMORE 058860,000459: 058861,000460: 20,2445 77177 DEC -384 B-14 058862,000461: 20,2446 37200 DACLIMIT DEC 16000 B-14 058863,000462: 20,2447 00600 DEC 384 B-14 058864,000463: 058865,000464: 20,2450 03146 ONETENTH OCT 03146 # DECIMAL +0.1, SCALED AT 1. 058866,000465: 20,2451 4750 DSPLYALT EQUALS BIT4 # 100 MS ALTERNATION BIT IN RCSFLAGS 058867,000466: 058868,000467: 20,2451 54007 OVERSUB2 TS 7 # RETURNS A UNCHANGED OR LIMITED TO 058869,000468: # Page 1417 058870,000469: 20,2452 00002 TC Q # POSMAX OR NEGMAX IF A HAS OVERFLOW 058871,000470: 20,2453 50000 INDEX A 058872,000471: 20,2454 44734 CS LIMITS # DUPLICATE CODING IN BANK A 058873,000472: 20,2455 00002 TC Q 058874,000473: 058875,000474: 20,2456 00006 RETNMORE EXTEND # RETURN TO CHEKMORE 058876,000475: 20,2457 32462 DCA MORECADR 058877,000476: 20,2460 52006 DTCB 058878,000477: 058879,000478: 20,2461 E6,1536 EBANK= AOSQ 058880,000479: 20,2461 02016 34106 MORECADR 2CADR CHEKMORE 058881,000480: 058882,000481: 058883,000482: 058884,000483: End of include-file DAPIDLER_PROGRAM.agc. Parent file is MAIN.agc