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