linux/Documentation/input/elantech.txt
<<
>>
Prefs
   1Elantech Touchpad Driver
   2========================
   3
   4        Copyright (C) 2007-2008 Arjan Opmeer <arjan@opmeer.net>
   5
   6        Extra information for hardware version 1 found and
   7        provided by Steve Havelka
   8
   9        Version 2 (EeePC) hardware support based on patches
  10        received from Woody at Xandros and forwarded to me
  11        by user StewieGriffin at the eeeuser.com forum
  12
  13
  14Contents
  15~~~~~~~~
  16
  17 1. Introduction
  18 2. Extra knobs
  19 3. Differentiating hardware versions
  20 4. Hardware version 1
  21    4.1 Registers
  22    4.2 Native relative mode 4 byte packet format
  23    4.3 Native absolute mode 4 byte packet format
  24 5. Hardware version 2
  25    5.1 Registers
  26    5.2 Native absolute mode 6 byte packet format
  27        5.2.1 Parity checking and packet re-synchronization
  28        5.2.2 One/Three finger touch
  29        5.2.3 Two finger touch
  30 6. Hardware version 3
  31    6.1 Registers
  32    6.2 Native absolute mode 6 byte packet format
  33        6.2.1 One/Three finger touch
  34        6.2.2 Two finger touch
  35 7. Hardware version 4
  36    7.1 Registers
  37    7.2 Native absolute mode 6 byte packet format
  38        7.2.1 Status packet
  39        7.2.2 Head packet
  40        7.2.3 Motion packet
  41
  42
  43
  441. Introduction
  45   ~~~~~~~~~~~~
  46
  47Currently the Linux Elantech touchpad driver is aware of two different
  48hardware versions unimaginatively called version 1 and version 2. Version 1
  49is found in "older" laptops and uses 4 bytes per packet. Version 2 seems to
  50be introduced with the EeePC and uses 6 bytes per packet, and provides
  51additional features such as position of two fingers, and width of the touch.
  52
  53The driver tries to support both hardware versions and should be compatible
  54with the Xorg Synaptics touchpad driver and its graphical configuration
  55utilities.
  56
  57Additionally the operation of the touchpad can be altered by adjusting the
  58contents of some of its internal registers. These registers are represented
  59by the driver as sysfs entries under /sys/bus/serio/drivers/psmouse/serio?
  60that can be read from and written to.
  61
  62Currently only the registers for hardware version 1 are somewhat understood.
  63Hardware version 2 seems to use some of the same registers but it is not
  64known whether the bits in the registers represent the same thing or might
  65have changed their meaning.
  66
  67On top of that, some register settings have effect only when the touchpad is
  68in relative mode and not in absolute mode. As the Linux Elantech touchpad
  69driver always puts the hardware into absolute mode not all information
  70mentioned below can be used immediately. But because there is no freely
  71available Elantech documentation the information is provided here anyway for
  72completeness sake.
  73
  74
  75/////////////////////////////////////////////////////////////////////////////
  76
  77
  782. Extra knobs
  79   ~~~~~~~~~~~
  80
  81Currently the Linux Elantech touchpad driver provides two extra knobs under
  82/sys/bus/serio/drivers/psmouse/serio? for the user.
  83
  84* debug
  85
  86   Turn different levels of debugging ON or OFF.
  87
  88   By echoing "0" to this file all debugging will be turned OFF.
  89
  90   Currently a value of "1" will turn on some basic debugging and a value of
  91   "2" will turn on packet debugging. For hardware version 1 the default is
  92   OFF. For version 2 the default is "1".
  93
  94   Turning packet debugging on will make the driver dump every packet
  95   received to the syslog before processing it. Be warned that this can
  96   generate quite a lot of data!
  97
  98* paritycheck
  99
 100   Turns parity checking ON or OFF.
 101
 102   By echoing "0" to this file parity checking will be turned OFF. Any
 103   non-zero value will turn it ON. For hardware version 1 the default is ON.
 104   For version 2 the default it is OFF.
 105
 106   Hardware version 1 provides basic data integrity verification by
 107   calculating a parity bit for the last 3 bytes of each packet. The driver
 108   can check these bits and reject any packet that appears corrupted. Using
 109   this knob you can bypass that check.
 110
 111   Hardware version 2 does not provide the same parity bits. Only some basic
 112   data consistency checking can be done. For now checking is disabled by
 113   default. Currently even turning it on will do nothing.
 114
 115/////////////////////////////////////////////////////////////////////////////
 116
 1173. Differentiating hardware versions
 118   =================================
 119
 120To detect the hardware version, read the version number as param[0].param[1].param[2]
 121
 122 4 bytes version: (after the arrow is the name given in the Dell-provided driver)
 123 02.00.22 => EF013
 124 02.06.00 => EF019
 125In the wild, there appear to be more versions, such as 00.01.64, 01.00.21,
 12602.00.00, 02.00.04, 02.00.06.
 127
 128 6 bytes:
 129 02.00.30 => EF113
 130 02.08.00 => EF023
 131 02.08.XX => EF123
 132 02.0B.00 => EF215
 133 04.01.XX => Scroll_EF051
 134 04.02.XX => EF051
 135In the wild, there appear to be more versions, such as 04.03.01, 04.04.11. There
 136appears to be almost no difference, except for EF113, which does not report
 137pressure/width and has different data consistency checks.
 138
 139Probably all the versions with param[0] <= 01 can be considered as
 1404 bytes/firmware 1. The versions < 02.08.00, with the exception of 02.00.30, as
 1414 bytes/firmware 2. Everything >= 02.08.00 can be considered as 6 bytes.
 142
 143/////////////////////////////////////////////////////////////////////////////
 144
 1454. Hardware version 1
 146   ==================
 147
 1484.1 Registers
 149    ~~~~~~~~~
 150
 151By echoing a hexadecimal value to a register it contents can be altered.
 152
 153For example:
 154
 155   echo -n 0x16 > reg_10
 156
 157* reg_10
 158
 159   bit   7   6   5   4   3   2   1   0
 160         B   C   T   D   L   A   S   E
 161
 162         E: 1 = enable smart edges unconditionally
 163         S: 1 = enable smart edges only when dragging
 164         A: 1 = absolute mode (needs 4 byte packets, see reg_11)
 165         L: 1 = enable drag lock (see reg_22)
 166         D: 1 = disable dynamic resolution
 167         T: 1 = disable tapping
 168         C: 1 = enable corner tap
 169         B: 1 = swap left and right button
 170
 171* reg_11
 172
 173   bit   7   6   5   4   3   2   1   0
 174         1   0   0   H   V   1   F   P
 175
 176         P: 1 = enable parity checking for relative mode
 177         F: 1 = enable native 4 byte packet mode
 178         V: 1 = enable vertical scroll area
 179         H: 1 = enable horizontal scroll area
 180
 181* reg_20
 182
 183         single finger width?
 184
 185* reg_21
 186
 187         scroll area width (small: 0x40 ... wide: 0xff)
 188
 189* reg_22
 190
 191         drag lock time out (short: 0x14 ... long: 0xfe;
 192                             0xff = tap again to release)
 193
 194* reg_23
 195
 196         tap make timeout?
 197
 198* reg_24
 199
 200         tap release timeout?
 201
 202* reg_25
 203
 204         smart edge cursor speed (0x02 = slow, 0x03 = medium, 0x04 = fast)
 205
 206* reg_26
 207
 208         smart edge activation area width?
 209
 210
 2114.2 Native relative mode 4 byte packet format
 212    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 213
 214byte 0:
 215   bit   7   6   5   4   3   2   1   0
 216         c   c  p2  p1   1   M   R   L
 217
 218         L, R, M = 1 when Left, Right, Middle mouse button pressed
 219            some models have M as byte 3 odd parity bit
 220         when parity checking is enabled (reg_11, P = 1):
 221            p1..p2 = byte 1 and 2 odd parity bit
 222         c = 1 when corner tap detected
 223
 224byte 1:
 225   bit   7   6   5   4   3   2   1   0
 226        dx7 dx6 dx5 dx4 dx3 dx2 dx1 dx0
 227
 228         dx7..dx0 = x movement;   positive = right, negative = left
 229         byte 1 = 0xf0 when corner tap detected
 230
 231byte 2:
 232   bit   7   6   5   4   3   2   1   0
 233        dy7 dy6 dy5 dy4 dy3 dy2 dy1 dy0
 234
 235         dy7..dy0 = y movement;   positive = up,    negative = down
 236
 237byte 3:
 238   parity checking enabled (reg_11, P = 1):
 239
 240      bit   7   6   5   4   3   2   1   0
 241            w   h  n1  n0  ds3 ds2 ds1 ds0
 242
 243            normally:
 244               ds3..ds0 = scroll wheel amount and direction
 245                          positive = down or left
 246                          35"> 235 247            when corner tap detected:
 248               ds0 = 1 when top right corner tapped
 249               ds1 = 1 when bottom right corner tapped
 250               ds2 = 1 when bottom left corner tapped
 251               ds3 = 1 when top left corner tapped
 252            n1..n0 = number of fingers on touchpad
 253               only models with firmware 2.x report this, models with
 254               firmware 1.x seem to map one, two and three finger taps
 255               directly to L, M and R mouse buttons
 256            h ds3 = 1 whorizontal scroll aocumentation/input/elantech.txt#L255" id="L255" cl.n/input/elantech.txt#L255" id="L255"="L18t273" class2r66" class="line"g02en to5" 7273ass=" 253        54"> 154
 171* reg_11
   parity checking enabled (reg_11, P =   0
 230   E
 240      bit   7   6   5   4   3   2   1
 241            w   h  n1  n0  ds3 ds2 ds1ally
 223ging
 244               ds3..ds0 = scroll wheel amount and direc_11)
     ds3..ds0 = scroll wheel amount and direc_umentatioef="Documentation/input/2lante26.txt#L227" id="L227" class="line" name="L227"> 227ping
 171* reg_11
< tap
  23    4.3 Native absolute mode 4 byte packet fotton
 212    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 201g_11
 201glly
  s muste="L1isca>   al value to a register it contents can be alt2   0
 172
 214bytmode
 214bytming
 171* reg_11
 240      bit   7   6   5   4   3   2   1area
 216         c   c  p2  p1   1   M   R
 201g_20
 219            some models have M as byte 3 odd paritydth?
r snlylcul R, M  Up, D5">     ds3..ds0 = scroll wheel amount and direc
  82g_21
 214byt
  82xff)
 240      bit   7   6   5   4   3   2   1area
 216         c   c  p2  p1   1   M   Rg_22
 192
 219            some models have M as byte 3 odd parityase)
 252            n1..n0 = number of fingers on touc
 234g_23
 224byt
 214bytout?
 192
 240      bit   7   6   5   4   3   2   1g_24
 193out?
 193o2t?
 193o3t?
 193o4t?
 233ast)
 214by3
 233g_26
 240      bit   7   6   5   4   3   2   3
      bit   7   6   5   4   3   2   3<9a>
 203
 231by3
 240      bit   7   6   5   4   3   2   3rmat
 226        dx7 dx6 dx5 dx4 dx3 dx2 dx3~~~~
 213
  83   0
 237by3   L
 240      bit   7   6   5   4   3   2   3r/a>
 233        dy7 dy6 dy5 dy4 dy3 dy2 dy3ssed
 113 bit
 123 bit
 243cted
 143////////////////////////////////////////////////////////////////////////3
 233e 1:
  83   0
 189* r3 dx0
 146   =============3
 171* reg_11
3left
 113cted
 1484.1 Regi3
 212    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3e 2:
 243   0
 151By echoing a hexadecimal value to a register it contents can be alt3 dy0
 233
 153For exa3down
 233
 155   echo -n 0x16 > r3e 3:
 133 1):
 155   echo -n 0x16 > r3
 193   0
 240      bit   7   6   5   4   3   2   3 ds0
 240      bit   7   6   5   4   3   2   3   0
 213lly:
  ro6     ds3..ds0 = scroll wheel amount and dire3tion
  83left
 171* r3 whether 3he bits in the registers3repre3h.txt#L147" id="L147" class="line" name="L147"> 143ted:
 240      bit   7   6   5   4   3   2   3 1):
      bit   7   6   5   4   3   2   3pped
 153pped
 153pds0
 153hpad
 185* r3with
 153taps
 ="L20or speed (0x02 = slow, 0x03 = medium, 0x04 = 3tons
 153cumentati3n/input/elantech.txt#L253" id=3h.txt#L157" id="L189" class="line" name="L189"> 189* r373ass=" 233        54"> 154 171* reg_11
3a href="i3="L228" class=.txt6tatio32"L1135.txt#L249" id=line"/a>  ro600" class="liline" name="L1970> 191L197    drag lock time out (short: 0x14 ... long: 3   0
 192                             0xff = tap again to rel3   E
 163
 153ally
  23    4.3 Native absolute mode 4 byte packet f3ging
 212    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3_11)
 L23">  re-synchroniza         ds3..ds0 = scroll wheel amount and dire3_ters
 137pressuring a heper23 223ping
app153" class="line" name="L153"> 153For exa3 tap
 [0]   drag lock time out (short: 0x14 ... long: 3tton
 [1]   drag lock time out (short: 0x14 ... long: 3t  E
 [2]   drag lock time out (short: 0x14 ... long: 3t/a>
 [3]   drag lock time out (short: 0x14 ... long: 3tlly
 [4]   drag lock time out (short: 0x14 ... long: 3ting
 [5]   drag lock time out (short: 0x14 ... long: 3t11)
 189* r3ming
 198* r3area
 202* r3
 229         byte 1 = 0xf0 when corner tap det3g_20
 183
 2s135" clasclajustea fewc7"> tant4id=d="L128" class="line" name="L128"> 128 6 b3dth?
 [0] &"190C) !="1904) ||"L128" class="line" name="L128"> 128 6 b3d11)
 [3] &"190f) !="1902)                       0xff = tap again to rel3aters
 229         byte 1 = 0xf0 when corner tap det3gode
  83xff)
 183area
 229  asclashif9 2 (/a> L23"> [0] ame"isca>   )al value to a register it contents can be alt3g_22
 193
 193xfe;
 212    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3ase)
 193
 214by3g_23
 193
 240      bit   7   6   5   4   3   2   3out?
 216         c   c  p2  p1   1   M   3
 183g_24
 252            n1..n0 = number of fingers on tou4out?
 204o2t?
 224by4o3t?
 204o4t?
 240      bit   7   6   5   4   3   2   4ast)
      bit   7   6   5   4   3   2   4a6t)
 234g_26
 231by4
 184<9a>
 159   bit   7   6   5   4   3   2   4
 226        dx7 dx6 dx5 dx4 dx3 dx2 dx4
 204rmat
 214
 153For exa4e 0:
  84   0
 240      bit   7   6   5   4   3   2   4   L
 189* r4r/a>
 184ssed
  namlag ?2( clas"> EF123, 0lass="     fiameov c"> 2r speed (0x02 = slow, 0x03 = medium, 0x04 = 4 /a>
  ,L24g5" cwi 2or speed (0x02 = slow, 0x03 = medium, 0x04 = 4 mat
appor speed (0x02 = slow, 0x03 = medium, 0x04 = 4 ~~~
app" cla, 0lg5" cwi 2o,=b2.R.Lsindicate="L1        L, R, M 153" class="line" name="L153"> 153For exa4
 2r speed (0x02 = slow, 0x03 = medium, 0x04 = 4  0:
                          positive = down or4   0
                          35"> 235 218<(L"line" nR6
      bit   7   6   5   4   3   2   3
 218<(L"line"36t/3lante36.txt#L250" id="Ld="L251" class=m~~~~~43a>         byte 1 = 07  2   3
 218<(L"line"36t/3lantee4h.txt#L242" id="L242" class="li4e" na4e="L242"> 243   0
 233
 225   bit   7   6   5   4   3   2   1   0

  83xff)
 154 4e="L239"> 239
 25For exa4
 204rmat
 232   bit   7   6   5   4   3   2   1   0
 243        dy7 dy6 dy5 dy4 dy3 dy2 dy3ssed
44="L234"> 233
 245 234g_26
 143ted:
L1903 Tline" name="L190"> 193o2t?
 153pped
 153pped
 [0ird (0x02 lower-l03 = medupper-hen bottordine" n be alt3g_22
 tant4iddiagonal0 (0x02 squiscbe alt3g_22
 ="L20or 4peed 45e="L85">  84   0
 214bytmode
 143ted:
 240      bit   7   6   5   4   3   2   3 1):
  ro600"4class4"liline" name=/a>     ay8 a5     p2  p1   1   M   3
 230   E
         bytL, R, M = 1 when Left, Right, Middle mouse button pr4
 241 223ging
 224byte 1:
4L23">46e="L85">  84   0
 240      bit   7   6   5   4   3   2   4   L
app1534 clas4/a>* reg_11
< tap
 [0]   4rag l4ck time out (s a5 ..aeed (lower-l03 =e" name0x02 = slow, 0x0eg_11
< tap
 [1]   4rag l47="L230"> 230   E
 [2]   4rag l47="L231"> 231byte 2:
 [3]   4rag l47="L242"> 243   0
 [4]   4rag l4ck time o0      bit   7   6   5   4   3   2   4   L
 [5]   4rag l4ck time out (saa> a   a  da7 da6 da5 da4 da3 dy2 dy3ssed
 172
 143ted:
 239
 2294/a>         byt89"> 189y8 b5     p2  p1  p1   2   4   L
 183
 2s1354 clas48="L1553
 [0] &4mp;"148="L234"> 233
 [3] &4mp;"148="L225"> 225   bit   7   6   5   4   3   2   1   0
 2294/a>         bybx7sbx6sbx5sbx4sbx3sbx2sbx1sbx   2   4   L
  83xff)
 224 239
 25For exa4
 204rmat
 212 232   bit   7   6   5   4   3   2   1   0
 252 9y8 b  dbyolut3sb5 db4 db3 dy2 dy3ssed
 234g_23
 245 234g_26
 143////////////////////////////////////////////////////////////////////////3
 183g_24
6e" name="L189"> 18938"> 183g_24
 25 146   =============3
 204o2t?
 1484.1 Regi3
-n 0x16 > r3
 172
 240      bit   7   6   5   4   3   2   4   L
 184<9a>
 184<9a>
 230   E
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3_11)
 13 = slow, 0x03       registe3"> [lue to a (0x02 ch3e..n0 => L23""line" namn be alt3g_22
  84   0
Fne" namewould semed12lute na (0data"> 152 = slow, 0x03 be alt3g_22
  83xff)
  a = slox has uL128ss="power suppr sprtant4idelectricpresissu="L1oror exa3down
  nam5ag ?25 clas" 1 wh  n1..n0 = numbe chaumb"L1F/Wewould semed"debounc>mode 4 "= tainyte or exa3down
mode 4  has x02 =ollowds3.sign8tur>For exa3down
app" cl5, 0lg5" cwi 2o,=4"> 214 0xc* r3area
 2r5speed5(0x02 = sl4"> 224 0xff/a>* r3area
 5     5          1"> 231 0xff/a>* r3area
Fp aga/a>* r3area
 215<(L"l5ne" nR6* r3area
 25F 0xff/a>* r3area
5     53="L230"> 230   E
 class="line" name="L190"> 193xfe;
 223ging
 214by3g_23
  84   0
 240      bit   7   6   5   4   3   2   4   L
         c   c0  4   3   1   M   3
 133 1):
 155 53k time out (sL, R, M = 1 when Left, Right, Middle mouse button pr4
 204rmat
 224by4o3t?
 213lly:
54240"> 240      bit   7   6   5   4   3   2   4ast)
 245<     bit   7   6   5    4   3   2   4a6t)
 234g_26
 231by4
 133 1):
 159   bit   7   6   5   4   3   2   4
        dx7 dx6 dx5 dx4 dx3 dx2 dx4
 204rmat
 226 213lly:
 153For exa4e 0:
 ="L20or 5peed 55e="L85">  84   0
 240      bit   7   6   5   4   3   2   4   L
  ro600"5class5"liline" name="t/a>appor speed (0x02 = slow, 0x03eg_11
3a href="i3="L228" class=.txt6tatio32"5te36.txt#5250" id="L250"""""""""""5"""""5e="L230"> 230   E
 24For exa4
 153ally
      bit   7   6   5   4   3   2   4   L

5L23">56e="L85">  84   0
  84   0
 223ping
app1535 clas56"193853
 [0]   5rag l56="L239"> 239
 [1]   5rag l57"1980) &0      bit   7   6   5   4   3   2   4   L
 [2]   5rag l5ck time out (sa>        dy7 dy6 dy5 dy4 dy3 dy2 dy3ssed
 [3]   5rag l57="L242"> 243   0
 [4]   5rag l5ck time out (syr spd (0x02 = slow, 0x03 = medium, 0x04 = 3 1):
 [5]   5rag l57="L234"> 234g_23
 193o2t?
 143ted:
 143ted:
 15t02 = rstme" nam,7"> 143ted:
 15t02 seegidme" nam. So > 15"line" name="L19 a7"> 143ted:
 2295/a>   total0 (012lute naisca>h3e be alt3g_22
 183
 2s1355 clas58="L143"> 143////////////////////////////////////////////////////////////////////////3
 [0] &5mp;"158="L234"> 233
 [3] &5mp;"158="L227e" name="L189"> 189* r3area
 2295/a>       146   =============3
  83xff)
 1484.1 Regi3
 225 204rmat
 212 232   bit   7   6   5   4   3   2   1   0
 252 234g_23
 245 184<9a>
 234g_26
v4 hname="L1iswaltr3 =multi="L19 fingers , capass=" (0xraing a up= ta5ne" namn be alt3g_22
Unytetune"     ddecimaPS/2's limi)al vand spee, itsmode 4 byte pa1iswrant4ibe alt3g_22
 212 183
 143ted:
128tunmode 4 b tainline" hepe many= medwhi19  number ir of fingers , =ollowal va7"> 143ted:
 143ted:
[lue to a(0x02 = slo,w, 0x03 s),  spee,  a re53 143ted:
 184<9a>
 153,= 1 wh128tunmode 4 b ells128" class=2= number of fingers L1x02" ce8"> 184<9a>
 143ted:
 143ted:
 214
 1One exceptto ainame="= slow, 0x03 = 1 whah128tunmode 4 b ells1us128" clinamela7"> 143ted:
4ers n be alt3g_22
 234g_26
 S28tunmode 4 6"> 234g_26
 239
  nam6ag ?262="L231"> 214by3g_23
 204rmat
 232   bit   7   6   5   4   3   2   1   0
app" cl6, 0lg6" cwi 2o,=b2.R...R...R...R...R.name   3   1   M   3
 2r6speed62="L234"> 234g_23
 6     6               L, R, M = 1 when Left, Right, Middle mouse button pr4
 234g_26
 216<(L"l62="L231"> 224by4o3t?
 184<9a>
 159   bit   7   6   5   4   3   2   4
6     6it   7   6   5 ..R...R...ft4.ft3.ft2= t1= t   2   4
 204rmat
 241 204rmat
 223ging
 22:a medubutton pr4
  84   0
 2>For exa4e 0:
  83xff)
 240      bit   7   6   5   4   3   2   3 1):
 156 63k time out (s...R...R...R.1 sp0 sp0 sp0 sp0  2   3 1):
 230   E
         byt="L128"> 128<0"> 230   E
 183
64="L234"> 233
 225   bit   7   6   5   4   3   2   1   0
 143ted:
 15pal or exa3down
 239
 25Fa medubutton pr4
 204rmat
 204rmat
 233
 ="L20or 6peed 65e="L81"> 214by3g_23
 234g_26
   bit   7   6   5   4   3   2   1   0

  ro600"6class65="L239"> 239

         byt/a>appor= slow, speed(spanshepe many=xraie 61" s0x04 = 3 1):
 153ally
by4o3t?
 233
6L23">66="L225"> 225   bit   7   6   5   4   3   2   1   0
 223ping
app1536 clas66"193853by4
 [0]   6rag l66="L239"> 239
 [1]   6rag l67"1980) &0      bit   7   6   5   4   3   2   4   L
 [2]   6rag l6ck time out (sa>        dx7 dx6 dx5 dx4 dx3 dx2 dx4
 [3]   6rag l67="L242"> 243   0
 [4]   6rag l6ck time out (sar speed (0x02 = slow, 0x03 = medium, 0x04 = 4~~~~
 [5]   6rag l67="L234"> 234g_23
 2>For exa4e 0:
 234g_26
   bit   7   6   5   4   3   2   1   0
 239
 239
 22968="L201"> 204rmat
 24For exa4
 2s1356 clas68="L223"> 223ging
 [0] &6mp;"168240"> 240      bit   7   6   5   4   3   2   4ast)
 [3] &6mp;"168="L245"> 245<   p    c   p0dy4 1y4 0 4   3   2   3<9a>
 22968="L236"> 234g_26
  84   0
 184<9a>
 226
 230   E
 240      bit   7   6   5   4   3   2   4ast)
 212 241        dy7 dy6 dy5 dy4 dy3 dy2 dy3ssed
 223ging
  84   0
  84   0
 183g_24
by3g_23
 230   E
 240      bit   7   6   5   4   3   2   4ast)
 212
 223ging

 239
  9"> 239
 239
 184<9a>
by4o3t?
 230   E
 240      bit   7   6   5   4   3   2   4ast)
 226        dx7 dx6 dx5 dx4 dx3 dx2 dx4
 214
 226speed (delta"x (two's co h4e)9"> 239
  84   0
 231by4
  83xff)
 240      bit   7   6   5   4   3   2   3 1):
 241        dy7 dy6 dy5 dy4 dy3 dy2 dy3ssed
  nam7ag ?272="L230"> 230   E
spd (0xdelta"y (two's co h4e)9"> 239
 243   0
app" cl7, 0lg72="L1553For exa4e 0:
 2r7speed72="L234"> 234g_23
 7     72="L225"> 225   bit   7   6   5   4   3   2   1   0
 217<(L"l72e="L87">  83xff)
 239
 239
7     73="L231"> 24For exa4
 204rmat
 232   bit   7   6   5   4   3   2   1   0
 226        dx7 dx6 dx5 dx4 dx3 dx2 dx4
 234g_23
 226speed (delta"x (two's co h4e)9"> 239
 234g_26
 25For exa4
 133 1):
 157 73="L159"> 159   bit   7   6   5   4   3   2   4
        dy7 dy6 dy5 dy4 dy3 dy2 dy3ssed
 204rmat
spd (0xdelta"y (two's co h4e)9"> 239
 213lly:
7444026"> 226 213lly:
 245<53 ~=5= prtanont4ibe alt3g_22



T02 original LXR soft nameb he e alt3g_2http://source prge.net/projects/lxr">LXR co 189b e alt3g_2mailto:lxr@71"ux.no">lxr@71"ux.no190C.
lxr.71"ux.now ly hos)al vy e alt3g_2http://www.redpill-71"pro.no">Redpill L1"pro AS190C,0provid..n0 =L1"uxt="L1ulting a roperf="Dos services sinc>m1995.