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