Source Code

060108,000001: # Copyright: Public domain. 060109,000002: # Filename: DAPIDLER_PROGRAM.agc 060110,000003: # Purpose: Part of the source code for Luminary 1A build 099. 060111,000004: # It is part of the source code for the Lunar Module's (LM) 060112,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 060113,000006: # Assembler: yaYUL 060114,000007: # Contact: Ron Burkey <info@sandroid.org>. 060115,000008: # Website: www.ibiblio.org/apollo. 060116,000009: # Pages: 1410-1420 060117,000010: # Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting 060118,000011: # from the Luminary131/ file of the same 060119,000012: # name, using Luminary099 page images. 060120,000013: 060121,000014: # This source code has been transcribed or otherwise adapted from 060122,000015: # digitized images of a hardcopy from the MIT Museum. The digitization 060123,000016: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 060124,000017: # the Museum. Many thanks to both. The images (with suitable reduction 060125,000018: # in storage size and consequent reduction in image quality as well) are 060126,000019: # available online at www.ibiblio.org/apollo. If for some reason you 060127,000020: # find that the images are illegible, contact me at info@sandroid.org 060128,000021: # about getting access to the (much) higher-quality images which Paul 060129,000022: # actually created. 060130,000023: 060131,000024: # Notations on the hardcopy document read, in part: 060132,000025: 060133,000026: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 060134,000027: # 16:27 JULY 14, 1969 060135,000028: 060136,000029: # Page 1410 060137,000030: # THE DAPIDLER PROGRAM IS STARTED BY FRESH START AND RESTART. THE DAPIDLER PROGRAM IS DONE 10 TIMES 060138,000031: # PER SECOND UNTIL THE ASTRONAUT DESIRES THE DAP TO WAKE UP, AND THE IMU AND CDUS ARE READY FOR USE BY THE DAP. 060139,000032: # THE NECESSARY INITIALIZATION OF THE DAP IS DONE BY THE DAPIDLER PROGRAM. 060140,000033: 060141,000034: 16,2000 BANK 16 060142,000035: 16,2000 SETLOC DAPS1 060143,000036: 16,2000 BANK 060144,000037: 060145,000038: 16,2000 E6,1537 EBANK= AOSQ 060146,000039: 060147,000040: 16,2000 COUNT* $$/DAPID 060148,000041: 060149,000042: 16,2000 00006 CHEKBITS EXTEND 060150,000043: 16,2001 00031 READ CHAN31 # IF BOTH BIT13 AND BIT14 ARE ONE, THEN 060151,000044: 16,2002 40000 COM # THE MODE SELECT SWITCH IS IN THE OFF 060152,000045: 16,2003 74355 MASK BIT13-14 # POSITION, AND SO THE DAP SHOULD BE OFF, 060153,000046: 16,2004 00006 EXTEND # WITH NO ATTITUDE ERROR DISPLAY. 060154,000047: 16,2005 12157 BZF MOREIDLE 060155,000048: 060156,000049: 16,2006 41303 CS IMODES33 060157,000050: 16,2007 74746 MASK BIT6 060158,000051: 16,2010 10000 CCS A 060159,000052: 16,2011 12206 TCF JUMPDSP 060160,000053: 16,2012 41273 CS RCSFLAGS # IMU NOT USABLE. SET UP INITIALIZATION 060161,000054: 16,2013 74751 MASK BIT3 # FLAG FOR ATT ERROR DISPLAY ROUTINE. 060162,000055: 16,2014 27273 ADS RCSFLAGS 060163,000056: 16,2015 12163 TCF SHUTDOWN 060164,000057: 060165,000058: 16,2016 34742 CHEKMORE CAF BIT10 # BIT 10 OF 30 IS PGNCS CONTROL OF S/C 060166,000059: 16,2017 00006 EXTEND 060167,000060: 16,2020 02030 RAND CHAN30 # BITS IN 30 ARE INVERTED 060168,000061: 16,2021 10000 CCS A 060169,000062: 16,2022 12157 TCF MOREIDLE 060170,000063: 060171,000064: 16,2023 00002 RETURN 060172,000065: 060173,000066: # Page 1411 060174,000067: # DAPIDLER ENTRY. 060175,000068: 060176,000069: 16,2024 22016 DAPIDLER LXCH BANKRUPT # INTERRUPT LEAD INS (CONTINUED) 060177,000070: 16,2025 00006 EXTEND 060178,000071: 16,2026 22012 QXCH QRUPT 060179,000072: 060180,000073: 16,2027 31273 CA RCSFLAGS 060181,000074: 16,2030 74737 MASK BIT13 060182,000075: 16,2031 10000 CCS A # CHECK IF 1/ACCJOB HAS BEEN SET UP SINCE 060183,000076: 16,2032 12041 TCF CHECKUP # THE LAST FRESH START OR RESTART. 060184,000077: 16,2033 34737 CA BIT13 060185,000078: 16,2034 27273 ADS RCSFLAGS # BIT 13 IS 1. 060186,000079: 16,2035 37715 CAF PRIO27 060187,000080: 16,2036 05072 TC NOVAC # SET UP JOB TO DO A LITTLE INITIALIZATION 060188,000081: 16,2037 E6,1537 EBANK= AOSQ # AND EXECUTE 1/ACCS. 060189,000082: 16,2037 02447 40106 2CADR 1/ACCSET # (WILL BRANCH TO MOREIDLE ON ACCSOKAY) 060190,000083: 060191,000084: 16,2041 02000 CHECKUP TC CHEKBITS # CHECK TO SEE IF LM DAP IS TO GO ON AND 060192,000085: # DO ERROR DISPLAY. 060193,000086: 060194,000087: 16,2042 30111 CAE DAPBOOLS # IF 1/ACCS HAS NOT BEEN COMPLETED, IDLE. 060195,000088: 16,2043 74751 MASK ACCSOKAY # NOTE: ONLY FRESH START AND RESTART 060196,000089: 16,2044 00006 EXTEND # KNOCK THIS BIT DOWN. 060197,000090: 16,2045 12157 BZF MOREIDLE 060198,000091: 060199,000092: 16,2046 04674 STARTDAP TC IBNKCALL # ZERO ATTITUDE ERROR AND DESIRED RATES. 060200,000093: 16,2047 40153 FCADR ZATTEROR 060201,000094: 16,2050 34755 CAF ZERO # ************ INITIALIZE: ************* 060202,000095: 16,2051 55524 TS TJP 060203,000096: 16,2052 55525 TS TJU 060204,000097: 16,2053 55526 TS TJV 060205,000098: 16,2054 55421 TS OMEGAP # RATES IN BODY (PILOT) COORDINATES. 060206,000099: 16,2055 55422 TS OMEGAQ 060207,000100: 16,2056 55423 TS OMEGAR 060208,000101: 16,2057 55430 TS TRAPEDP 060209,000102: 16,2060 55431 TS TRAPEDQ 060210,000103: 16,2061 55432 TS TRAPEDR 060211,000104: 16,2062 55537 TS AOSQ # OFFSET ACCELERATION ESTIMATES. 060212,000105: 16,2063 55540 TS AOSQ +1 060213,000106: 16,2064 55541 TS AOSR 060214,000107: 16,2065 55542 TS AOSR +1 060215,000108: 16,2066 55424 TS ALPHAQ # COPIES OF OFFSET ESTIMATES FOR DOWNLIST. 060216,000109: 16,2067 55425 TS ALPHAR 060217,000110: 16,2070 55501 TS NEGUQ 060218,000111: 16,2071 55503 TS NEGUR 060219,000112: 16,2072 55545 TS AOSQTERM # QRAXIS RATE DERIVATION TERMS AND KALMAN 060220,000113: 16,2073 55546 TS AOSRTERM # FILTER INITIALIZATION TERMS. 060221,000114: 16,2074 55510 TS QACCDOT # DESCENT ACCELERATION DERIVATIVE EST. 060222,000115: 16,2075 55512 TS RACCDOT 060223,000116: # Page 1412 060224,000117: 16,2076 55502 TS ALLOWGTS # AOSTASK FLAG FOR QRAXIS RCS CONTROL USE. 060225,000118: 16,2077 55631 TS COTROLER # DO TRYGTS ON FIRST PASS (WILL GO TO RCS) 060226,000119: 16,2100 55633 TS INGTS # RECOGNIZE FIRST GTS PASS AS SUCH. 060227,000120: 16,2101 55632 TS QGIMTIMR # STOP GIMBAL DRIVES. (PROBABLY WOULD BE 060228,000121: 16,2102 55634 TS RGIMTIMR # GOOD ENOUGH JUST TO INACTIVATE TIMERS) 060229,000122: 16,2103 55460 TS OLDPMIN # MINIMUM IMPULSE MODE ERASABLES 060230,000123: 16,2104 55461 TS OLDQRMIN 060231,000124: 16,2105 55767 TS PJETCTR # INITIALIZE DOCKED JET INHIBITION 060232,000125: 16,2106 55770 TS UJETCTR # COUNTERS 060233,000126: 16,2107 55771 TS VJETCTR 060234,000127: 16,2110 4747 CALLGMBL EQUALS BIT5 # RCSFLAGS INITIALIZATION. 060235,000128: 16,2110 42202 CS MANFLAG 060236,000129: 16,2111 71273 MASK RCSFLAGS # NEGUQ(R) HAVE BEEN GENERATED. 060237,000130: 16,2112 55273 TS RCSFLAGS 060238,000131: 060239,000132: # SET UP "OLD" MEASURED CDU ANGLES: 060240,000133: 060241,000134: 16,2113 00006 EXTEND 060242,000135: 16,2114 30033 DCA CDUX # OLDXFORP AND OLDYFORP 060243,000136: 16,2115 53441 DXCH OLDXFORP 060244,000137: 16,2116 30034 CA CDUZ 060245,000138: 16,2117 55442 TS OLDZFORQ 060246,000139: 16,2120 41273 CS RCSFLAGS 060247,000140: 16,2121 74740 MASK BIT12 060248,000141: 16,2122 27273 ADS RCSFLAGS # BIT 12 SET TO 1. 060249,000142: 16,2123 34751 CA FOUR 060250,000143: 16,2124 55535 TS SKIPU 060251,000144: 16,2125 55536 TS SKIPV 060252,000145: 16,2126 34733 CA POSMAX 060253,000146: 16,2127 54031 TS TIME6 060254,000147: 16,2130 55466 TS T6NEXT 060255,000148: 16,2131 55470 TS T6FURTHA 060256,000149: 16,2132 34755 CA ZERO 060257,000150: 16,2133 55467 TS T6NEXT +1 060258,000151: 16,2134 55471 TS T6FURTHA +1 060259,000152: 16,2135 55465 TS NXT6ADR 060260,000153: 16,2136 55472 TS NEXTP 060261,000154: 16,2137 55473 TS NEXTU 060262,000155: 16,2140 55474 TS NEXTV 060263,000156: 16,2141 44363 CS TEN 060264,000157: 16,2142 55757 TS DAPZRUPT # JASK NOT IN PROGRESS, INITIALIZE NEG. 060265,000158: 16,2143 34752 CA TWO 060266,000159: 16,2144 55433 TS NPTRAPS 060267,000160: 16,2145 55434 TS NQTRAPS 060268,000161: 16,2146 55435 TS NRTRAPS 060269,000162: 16,2147 00006 EXTEND 060270,000163: 16,2150 32205 DCA PAXADIDL 060271,000164: 16,2151 53275 DXCH T5ADR 060272,000165: 16,2152 37727 SETTIME5 CAF MS100 060273,000166: 16,2153 54030 TS TIME5 060274,000167: # Page 1413 060275,000168: 16,2154 15270 TCF RESUME 060276,000169: 16,2155 E6,1537 EBANK= AOSQ 060277,000170: 16,2155 02024 34106 IDLERADR 2CADR DAPIDLER 060278,000171: 060279,000172: 16,2157 04674 MOREIDLE TC IBNKCALL # CALCULATE Q,R-AXES ATTITUDE ERRORS. 060280,000173: 16,2160 36626 CADR QERRCALC 060281,000174: 060282,000175: 16,2161 04674 TC IBNKCALL 060283,000176: 16,2162 35446 CADR CALCPERR # CALCULATE P AXIS ATTITUDE ERRORS. 060284,000177: 060285,000178: 16,2163 00006 SHUTDOWN EXTEND 060286,000179: 16,2164 32156 DCA IDLERADR 060287,000180: 16,2165 53275 DXCH T5ADR 060288,000181: 060289,000182: 16,2166 34755 CAF ZERO # KILL ANY POSSIBLE JET REQUESTS 060290,000183: 16,2167 55472 TS NEXTP 060291,000184: 16,2170 55473 TS NEXTU 060292,000185: 16,2171 55474 TS NEXTV 060293,000186: 16,2172 00006 EXTEND # COMMAND JETS OFF. 060294,000187: 16,2173 01005 WRITE CHAN5 060295,000188: 16,2174 00006 EXTEND 060296,000189: 16,2175 01006 WRITE CHAN6 060297,000190: 16,2176 42203 CS BGIM23 # TURN TRIM GIMBAL OFF 060298,000191: 16,2177 00006 EXTEND 060299,000192: 16,2200 03012 WAND CHAN12 060300,000193: 16,2201 12152 TCF SETTIME5 # RETURN IN 100 MSEC. 060301,000194: 060302,000195: 16,2202 03021 MANFLAG OCT 03021 060303,000196: 16,2203 07400 BGIM23 OCTAL 07400 060304,000197: 16,2204 E6,1421 EBANK= OMEGAP 060305,000198: 16,2204 02213 34106 PAXADIDL 2CADR PAXIS 060306,000199: 060307,000200: 16,2206 7727 MS100 = OCT37766 060308,000201: 16,2206 0061 COSMG = ITEMP1 060309,000202: 16,2206 00006 JUMPDSP EXTEND # TRANSFER TO BANK 20 060310,000203: 16,2207 32212 DCA DSPCADR # FOR ATTITUDE ERROR DISPLAYS 060311,000204: 16,2210 52006 DTCB 060312,000205: 060313,000206: 16,2211 E6,1761 EBANK= AK 060314,000207: 16,2211 02226 40106 DSPCADR 2CADR ALTDSPLY 060315,000208: 060316,000209: # Page 1414 060317,000210: 20,2226 BANK 20 060318,000211: 20,2000 SETLOC DAPS3 060319,000212: 20,2000 BANK 060320,000213: 20,2226 COUNT* $$/NEEDL 060321,000214: 060322,000215: # PROGRAM: ALTDSPLY 060323,000216: # MOD 0. 6 DEC 1967 060324,000217: # AUTHOR: CRAIG WORK, DON KEENE, MIT IL 060325,000218: # MOD 3 BY DON KEENE AUG 1, 1968 -- MOVED PROGRAM TO BANK 20 060326,000219: 060327,000220: # PROGRAM DESCRIPTION: 060328,000221: # ALTDSPLY REVERSES THE DSPLYALT BIT OF RCSFLAGS EACH TIME IT IS CALLED, WHICH IS PRESUMABLY EVERY 100 MS. 060329,000222: # IF THE REVERSED BIT IS ONE, NEEDLER IS CALLED TO DISPLAY ATTITUDE ERRORS. IF THE BIT IS ZERO, THE ATTITUDE ERR- 060330,000223: # ORS ARE CALCULATED AS 1) DAP FOLLOWING ERRORS, IF NEEDLFLG = 0, AND 2) TOTAL ATTITUDE ERRORS FOR NEEDLFLG = 1. 060331,000224: 060332,000225: 060333,000226: # WARNING: ALTDSPLY MAY ONLY BE CALLED WITH INTERRUPT INHIBITED 060334,000227: 060335,000228: # WARNING: EBANK MUST BE SET TO 6 WHEN USING THIS ROUTINE. 060336,000229: 060337,000230: # INPUT: RCSFLAGS AND 1) IF NEEDLFLG = 0, INPUT PERROR, QERROR, RERROR. 060338,000231: # 2) IF NEEDLFLG = 1, INPUT CPHI,CTHETA,CPSI,CDUX,CDUY,CDUZ,M11,M21,M32,M22,M32. (GPMATRIX) 060339,000232: 060340,000233: 060341,000234: # OUTPUTS: RCSFLAGS WITH DSPLYALT REVERSED, AK, AK1, AK2, + NEEDLER OUTPUTS. 060342,000235: 060343,000236: # ENTRY: TCF ALTDSPLY 060344,000237: 060345,000238: # EXIT: TCF CHEKMORE 060346,000239: 060347,000240: # ALARM OR ABORT EXITS: NONE 060348,000241: 060349,000242: # SUBPROGRAMS CALLED: NEEDLER, OVERSUB2 060350,000243: 060351,000244: # DEBRIS: A, L, AND NEEDLER DEBRIS. 060352,000245: 060353,000246: 20,2226 31273 ALTDSPLY CA RCSFLAGS # INVERT THE DISPLAY ALTERNATION BIT. 060354,000247: 20,2227 54001 TS L 060355,000248: 20,2230 34750 CA DSPLYALT 060356,000249: 20,2231 00006 EXTEND 060357,000250: 20,2232 06001 RXOR LCHAN 060358,000251: 20,2233 55273 TS RCSFLAGS 060359,000252: 060360,000253: 20,2234 74750 MASK DSPLYALT 060361,000254: 20,2235 10000 CCS A # IS ALTERNATION FLAG ZERO? 060362,000255: 20,2236 12322 TCF NEEDLER 060363,000256: 060364,000257: 20,2237 30074 CAE FLAGWRD0 # NEEDLFLG WILL INDICATE TOTAL OR DAP AT- 060365,000258: # Page 1415 060366,000259: 20,2240 74750 MASK NEEDLBIT # TITUDE ERROR DISPLAY REQUEST. 060367,000260: 20,2241 10000 CCS A 060368,000261: 20,2242 12252 TCF DSPLYTOT # TOTAL ERROR IS NEEDED IN AK, AK +1, AK +2 060369,000262: 060370,000263: 20,2243 41450 CS QERROR # YES. DISPLAY ATT ERRORS ON THE -BALL. 060371,000264: 20,2244 55762 TS AK +1 # ERROR COMPLEMENTS ARE INPUT TO NEEDLER. 060372,000265: 20,2245 41452 CS RERROR 060373,000266: 20,2246 55763 TS AK +2 060374,000267: 20,2247 41464 CS PERROR 060375,000268: 20,2250 57761 XCH AK 060376,000269: 060377,000270: 20,2251 12442 TCF RETNMORE # DISPLAY THESE THE NEXT TIME THROUGH 060378,000271: 060379,000272: # CALCULATE GIMBAL ANGLE TOTAL ERRORS, RESOLVE INTO PILOT AXES, STORE TOTAL ERRORS FOR NEEDLER. Q-AXIS FIRST. 060380,000273: 060381,000274: 20,2252 00006 DSPLYTOT EXTEND 060382,000275: 20,2253 22061 QXCH ITEMP1 # SAVE Q FOR CHEKBITS RETURN. 060383,000276: 060384,000277: 20,2254 30322 CA CTHETA # DESIRED ATTITUDE, Y-AXIS, 2'S COMP. 060385,000278: 20,2255 00006 EXTEND # SUBTRACT CURRENT ATTITUDE. 060386,000279: 20,2256 20033 MSU CDUY # DIFFERENCE SCALED AT PI, 1'S COMP. 060387,000280: 20,2257 55761 TS AK # SAVE FOR R-ERROR CALCULATION. 060388,000281: 20,2260 00006 EXTEND 060389,000282: 20,2261 71415 MP M21 # (CTHETA-CDUY)*M21 SCALED AT PI RADIANS. 060390,000283: 20,2262 57762 XCH AK +1 # STORE FIRST TERM OF Q ERROR. 060391,000284: 20,2263 30323 CA CPSI # DESIRED ATTITUDE, Z-AXIS, 2'S COMP. 060392,000285: 20,2264 00006 EXTEND # SUBTRACT CURRENT ATTITUDE. 060393,000286: 20,2265 20034 MSU CDUZ # DIFFERENCE SCALED AT PI, 1'S COMP. 060394,000287: 20,2266 55763 TS AK +2 # SAVE Z-AXIS TERM FOR R ERROR CALCULATION 060395,000288: 20,2267 00006 EXTEND 060396,000289: 20,2270 71417 MP M22 # (CPSI-CDUZ)*M22, SCALED AT PI RADIANS. 060397,000290: 20,2271 61762 AD AK +1 # Q ERROR COMPLETE , AT PI RAD. 060398,000291: 20,2272 02435 TC OVERSUB2 # PIN NEEDLES IN CASE OF OVERFLOW 060399,000292: 20,2273 55762 TS AK +1 060400,000293: 060401,000294: # R ERROR CALCULATION NEXT. 060402,000295: 060403,000296: 20,2274 31761 CA AK # Y-AXIS DIFFERENCE STORED BY Q-AXIS CALC. 060404,000297: 20,2275 00006 EXTEND 060405,000298: 20,2276 71416 MP M31 # (CTHETA-CDUY)*M31, SCALED AT PI RADIANS. 060406,000299: 20,2277 57763 XCH AK +2 # FIRST TERM OF R ERROR. 060407,000300: # Z-AXIS DIFFERENCE, STORED BY A CALC. IS 060408,000301: 20,2300 00006 EXTEND # RECOVERED BY THE EXCHANGE. 060409,000302: 20,2301 71420 MP M32 # (CPSI-CDUZ)*M32, SCALED AT PI RADIANS. 060410,000303: 20,2302 61763 AD AK +2 # R ERROR COMPLETE , AT PI RAD. 060411,000304: 20,2303 02435 TC OVERSUB2 # PIN NEEDLES IN CASE OF OVERFLOW. 060412,000305: 20,2304 55763 TS AK +2 060413,000306: 060414,000307: # NOW CALCULATE P ERROR. (NOTE THAT M13 = 1, SCALED AT 1, SO THE MULTIPLICATION IS BY-PASSED.) 060415,000308: # Page 1416 060416,000309: 20,2305 31761 CA AK # Y-AXIS DIFFERENCE STORED BY Q AXIS CALC. 060417,000310: 20,2306 00006 EXTEND 060418,000311: 20,2307 71414 MP M11 # (CTHETA-CDUY)*M11 SCALED AT PI RADIANS. 060419,000312: 20,2310 57761 XCH AK # FIRST TERM OF P ERROR IN AK, AT PI RAD. 060420,000313: 20,2311 30321 CAE CPHI # DESIRED ATTITUDE, X-AXIS, 2'S COMP. 060421,000314: 20,2312 00006 EXTEND # SUBTRACT CURRENT X ATTITUDE. 060422,000315: 20,2313 20032 MSU CDUX # X-AXIS DIFFERENCE, 1'S COMP, AT PI RAD. 060423,000316: 060424,000317: # M13 = 1, SO BYPASS THE MULTIPLICATION. 060425,000318: # EXTEND 060426,000319: # MP M13 # (CPHI-CDUX)*M13 SCALED AT PI RADIANS. 060427,000320: 060428,000321: 20,2314 61761 AD AK # P ERROR COMPLETE , SCALED AT PI RAD 060429,000322: 20,2315 02435 TC OVERSUB2 # PIN NEEDLES IN CASE OF OVERFLOW. 060430,000323: 20,2316 55761 TS AK 060431,000324: 060432,000325: 20,2317 00006 EXTEND 060433,000326: 20,2320 22061 QXCH ITEMP1 # RESTORE Q FOR CHEKBITS RETURN. 060434,000327: 060435,000328: 20,2321 12442 TCF RETNMORE # DISPLAY THESE THE NEXT TIME THROUGH 060436,000329: 060437,000330: # Page 1417 060438,000331: # FDAI ATTITUDE ERROR DISPLAY SUBROUTINE 060439,000332: 060440,000333: # PROGRAM DESCRIPTION: D. KEENE 5/24/67 060441,000334: # MOD 1 BY CRAIG WORK, 12 DEC 67 060442,000335: # MOD 2 BY CRAIG WORK, 6 APRIL 68, CONVERTS ATTITUDE ERROR DISPLAY SCALING FROM 16 7/8 DEG. TO 42 3/16 DEGREES. 060443,000336: 060444,000337: # THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS) 060445,000338: # IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT 060446,000339: # OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES 060447,000340: # THE DACS. 060448,000341: 060449,000342: # CALLING SEQUENCE: 060450,000343: # DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE 060451,000344: # TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM: 060452,000345: # CS RCSFLAGS # IN EBANK6 060453,000346: # MASK BIT3 060454,000347: # ADS RCSFLAGS 060455,000348: # THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERRED TO THE FOLLOWING LOCATIONS IN EBANK6: 060456,000349: # AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT 060457,000350: # AK1 SCALED 180 DEGREES TO CHANGE 060458,000351: # AK2 SCALED 180 DEGREES 060459,000352: # FULL SCALED DEFLECTION OF THE NEEDLES CORRESPONDS TO 5 1/16 DEGREES, WHILE 384 BITS IN THE IMU ERROR COUNTER 060460,000353: # CORRESPONDS TO 42 3/16 DEGREES. (DAC MAXIMUM CAPACITY IS 384 BITS.) 46 BITS EFFECTIVELY PIN THE NEEDLES. 060461,000354: 060462,000355: # A CALL TO NEEDLER WILL THE UPDATE THE DISPLAY: 060463,000356: # INHINT 060464,000357: # TC IBNKCALL # NOTE: EBANK SHOULD BE SET TO E6 060465,000358: # CADR NEEDLER 060466,000359: # RELINT 060467,000360: # THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PROGRAM ARE 060468,000361: # REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS. 060469,000362: # NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50 MS. TO ASSURE PROPER RELAY SEQUENCING. 060470,000363: 060471,000364: # ERASABLES USED: 060472,000365: # AK CDUXCMD 060473,000366: # AK1 CDUYCMD 060474,000367: # AK2 CDUZCMD 060475,000368: # EDRIVEX A,L,Q 060476,000369: # EDRIVEY T5TEMP 060477,000370: # EDRIVEZ DINDX 060478,000371: # Page 1418 060479,000372: 060480,000373: # SWITCHES: RCSFLAGS BITS 3,2 060481,000374: 060482,000375: # I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN -- READ ONLY) 060483,000376: # CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE) 060484,000377: # CHAN14 BIT 13,14,15 (DAC ACTIVITY) 060485,000378: 060486,000379: # SIGN CONVENTION: AK = THETAC - THETA 060487,000380: # WHERE THETAC = COMMAND ANGLE 060488,000381: # THETA = PRESENT ANGLE 060489,000382: 060490,000383: 20,2322 31273 NEEDLER CA RCSFLAGS 060491,000384: 20,2323 76242 MASK SIX 060492,000385: 20,2324 00006 EXTEND 060493,000386: 20,2325 12362 BZF NEEDLES3 060494,000387: 20,2326 74751 MASK BIT3 060495,000388: 20,2327 00006 EXTEND 060496,000389: 20,2330 12353 BZF NEEDLER2 # BIT3 = 0, BIT2 = 1 060497,000390: 060498,000391: 20,2331 44746 CS BIT6 # FIRST PASS BIT3 = 1 060499,000392: 20,2332 00006 EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS 060500,000393: 20,2333 03012 WAND CHAN12 # MUST WAIT AT LEAST 60 MS BEFORE 060501,000394: 20,2334 44755 NEEDLE11 CS ZERO # ENABLING COUNTERS. 060502,000395: 20,2335 55761 TS AK # ZERO THE INPUTS ON FIRST PASS 060503,000396: 20,2336 55762 TS AK1 060504,000397: 20,2337 55763 TS AK2 060505,000398: 20,2340 55764 TS EDRIVEX # ZERO THE DISPLAY REGISTERS 060506,000399: 20,2341 55765 TS EDRIVEY 060507,000400: 20,2342 55766 TS EDRIVEZ 060508,000401: 20,2343 54050 TS CDUXCMD # ZERO THE OUT COUNTERS 060509,000402: 20,2344 54051 TS CDUYCMD 060510,000403: 20,2345 54052 TS CDUZCMD 060511,000404: 20,2346 46242 CS SIX # RESET RCSFLAGS FOR PASS2 060512,000405: 20,2347 71273 MASK RCSFLAGS 060513,000406: 20,2350 64752 AD BIT2 060514,000407: 20,2351 55273 TS RCSFLAGS 060515,000408: 20,2352 12442 TCF RETNMORE 060516,000409: 060517,000410: 20,2353 34746 NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS 060518,000411: 20,2354 00006 EXTEND 060519,000412: 20,2355 05012 WOR CHAN12 060520,000413: 20,2356 46242 CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE 060521,000414: 20,2357 71273 MASK RCSFLAGS # ERRORS. WAIT AT LEAST 4 MS FOR 060522,000415: 20,2360 55273 TS RCSFLAGS # RELAY CLOSURE. 060523,000416: 20,2361 12442 TCF RETNMORE 060524,000417: 060525,000418: 20,2362 34746 NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER 060526,000419: 20,2363 00006 EXTEND # IS ENABLED 060527,000420: 20,2364 02012 RAND CHAN12 060528,000421: # Page 1419 060529,000422: 20,2365 10000 CCS A # IF NOT, RE-INITIALIZE NEEDLER. 060530,000423: 20,2366 12373 TCF NEEDLES 060531,000424: 060532,000425: 20,2367 41273 CS RCSFLAGS # SET UP INITIALIZATION FLAG IN RCSFLAGS. 060533,000426: 20,2370 74751 MASK BIT3 060534,000427: 20,2371 27273 ADS RCSFLAGS 060535,000428: 20,2372 12442 TCF RETNMORE 060536,000429: 060537,000430: 20,2373 34752 NEEDLES CAF TWO 060538,000431: 20,2374 54063 DACLOOP TS DINDX 060539,000432: 20,2375 42434 CS ONETENTH # RESCALE INPUTS TO + OR - 1800 DEGREES. 060540,000433: 20,2376 00006 EXTEND 060541,000434: 20,2377 50063 INDEX DINDX 060542,000435: 20,2400 71761 MP AK 060543,000436: 20,2401 54001 TS L 060544,000437: 20,2402 10000 CCS A 060545,000438: 20,2403 32432 CA DACLIMIT 060546,000439: 20,2404 12406 TCF +2 060547,000440: 20,2405 42432 CS DACLIMIT 060548,000441: 20,2406 60001 AD L 060549,000442: 20,2407 54061 TS T5TEMP # OVFLO CHK 060550,000443: 20,2410 12414 TCF +4 060551,000444: 20,2411 50000 INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384 060552,000445: 20,2412 32432 CAF DACLIMIT 060553,000446: 20,2413 54001 TS L 060554,000447: 20,2414 50063 INDEX DINDX 060555,000448: 20,2415 41764 CS EDRIVEX # CURRENT VALUE OF DAC 060556,000449: 20,2416 60001 AD L 060557,000450: 20,2417 50063 INDEX DINDX 060558,000451: 20,2420 26050 ADS CDUXCMD 060559,000452: 20,2421 50063 INDEX DINDX 060560,000453: 20,2422 23764 LXCH EDRIVEX 060561,000454: 20,2423 10063 CCS DINDX 060562,000455: 20,2424 12374 TCF DACLOOP 060563,000456: 20,2425 37740 CAF 13,14,15 060564,000457: 20,2426 00006 EXTEND 060565,000458: 20,2427 05014 WOR CHAN14 # SET DAC ACTIVITY BITS 060566,000459: 20,2430 12442 TCF RETNMORE 060567,000460: 060568,000461: 20,2431 77177 DEC -384 B-14 060569,000462: 20,2432 37200 DACLIMIT DEC 16000 B-14 060570,000463: 20,2433 00600 DEC 384 B-14 060571,000464: 060572,000465: 20,2434 03146 ONETENTH OCT 03146 # DECIMAL +0.1, SCALED AT 1. 060573,000466: 20,2435 4750 DSPLYALT EQUALS BIT4 # 100 MS ALTERNATION BIT IN RCSFLAGS 060574,000467: 060575,000468: 20,2435 54007 OVERSUB2 TS 7 # RETURNS A UNCHANGED OR LIMITED TO 060576,000469: 20,2436 00002 TC Q # POSMAX OR NEGMAX IF A HAS OVERFLOW 060577,000470: 20,2437 50000 INDEX A 060578,000471: # Page 1420 060579,000472: 20,2440 44734 CS LIMITS # DUPLICATE CODING IN BANK 16 060580,000473: 20,2441 00002 TC Q 060581,000474: 060582,000475: 20,2442 00006 RETNMORE EXTEND # RETURN TO CHEKMORE 060583,000476: 20,2443 32446 DCA MORECADR 060584,000477: 20,2444 52006 DTCB 060585,000478: 060586,000479: 20,2445 E6,1537 EBANK= AOSQ 060587,000480: 20,2445 02016 34106 MORECADR 2CADR CHEKMORE 060588,000481: End of include-file DAPIDLER_PROGRAM.agc. Parent file is MAIN.agc