Source Code

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