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