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