Source Code

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