Specifications.
[pintos-anon] / specs / kbd / scancodes-5.html
diff --git a/specs/kbd/scancodes-5.html b/specs/kbd/scancodes-5.html
new file mode 100644 (file)
index 0000000..ed71bbc
--- /dev/null
@@ -0,0 +1,1411 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
+ <TITLE>Keyboard scancodes: Special keyboards - MF II keyboards</TITLE>
+ <LINK HREF="scancodes-6.html" REL=next>
+ <LINK HREF="scancodes-4.html" REL=previous>
+ <LINK HREF="scancodes.html#toc5" REL=contents>
+</HEAD>
+<BODY>
+<A HREF="scancodes-6.html">Next</A>
+<A HREF="scancodes-4.html">Previous</A>
+<A HREF="scancodes.html#toc5">Contents</A>
+<HR>
+<H2><A NAME="s5">5. Special keyboards - MF II keyboards</A></H2>
+
+<P><I>Next the modern keyboards. (MF stands for MultiFunctional.)
+The layout has changed: the function keys now form a top row.
+Function keys F11 and F12 were added. The ten keypad digit keys
+that served dual purposes (depending on NumLock and Shift)
+were duplicated so that digits and cursor movements could be
+produced without help from the Shift or Numlock keys.
+Also the Alt and Ctrl keys were duplicated.
+Prefixes</I> <B>e0</B> <I>and</I> <B>e1</B> <I>were introduced
+to distinguish old and new versions of the same old key.
+All modern keyboards follow this scheme, but many add a messy
+collection of "internet buttons" and "CD keys".</I>
+<P>Let us group keyboards according to manufacturer.
+<P>
+<H2><A NAME="ss5.1">5.1 Compaq keyboards</A>
+</H2>
+
+<P>
+<P>
+<H3><A NAME="armada"></A> Compaq Armada laptop keyboard</H3>
+
+<P>Christian Gennerat &lt;<CODE>christian.gennerat@vz.cit.alcatel.fr</CODE>&gt; writes:
+There are 4 extra keys on the Compaq Armada laptops.
+The four keys are located over the Esc-F1..F12, and are labelled *1-*4.
+Scancodes: <B>65</B>, <B>67</B>, <B>69</B>, <B>6b</B>.
+<P>
+<H3>Compaq Easy Accesss Internet Keyboard</H3>
+
+<P>Petr Slansky &lt;<CODE>slansky@usa.net</CODE>&gt; writes:
+<P>Internet buttons:
+<B>e0</B> <B>13</B> online community button (people icon),
+<B>e0</B> <B>14</B> online Compaq button (Q icon),
+<B>e0</B> <B>15</B> online services button (bulb icon),
+<B>e0</B> <B>1e</B> online e-mail button (envelope icon),
+<B>e0</B> <B>21</B> online Search button (magnifier icon),
+<B>e0</B> <B>23</B> online start button (i icon),
+<B>e0</B> <B>32</B> online commerce button (shopping basket icon),
+<P><B>e0</B> <B>68</B> Quick Print button (printer icon),
+<B>e0</B> <B>1f</B> Favorite Application Launch button (racket icon),
+<P><B>e0</B> <B>5f</B> Sleep button,
+<P>CD/DVD player buttons:
+<B>e0</B> <B>22</B> Play/Pause,
+<B>e0</B> <B>24</B> Stop,
+<B>e0</B> <B>19</B> Next Track,
+<B>e0</B> <B>10</B> Previous Track,
+<B>e0</B> <B>2c</B> Eject,
+<P>Volume Control buttons:
+<B>e0</B> <B>30</B> Volume increase (+),
+<B>e0</B> <B>2e</B> Volume decrease (-),
+<B>e0</B> <B>20</B> Mute.
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="compaq_easy_access.jpg">
+</FIGURE>
+<P>
+<H3>Compaq Eight-Button Easy Access Keyboard</H3>
+
+<P>A 
+<A HREF="compaq_unkn.jpg">Compaq keyboard</A> that I have here,
+has the usual setup (with Windows keys) plus a top row of eight buttons,
+that produce scancodes
+<B>e0</B> <B>23</B>,
+<B>e0</B> <B>1f</B>,
+<B>e0</B> <B>1a</B>,
+<B>e0</B> <B>1e</B>,
+<B>e0</B> <B>13</B>,
+<B>e0</B> <B>14</B>,
+<B>e0</B> <B>15</B>,
+<B>e0</B> <B>1b</B>.
+These keys do not produce any codes in scan code Set 3.
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="compaq_unkn-s.jpg">
+</FIGURE>
+<P>
+<H2><A NAME="ss5.2">5.2 IBM keyboards</A>
+</H2>
+
+<P>
+<H3>IBM Rapid Access keyboard</H3>
+
+<P>
+<A NAME="ibmrapidaccess"></A> 
+(Information from Dennis Bjorklund &lt;<CODE>dennisb@cs.chalmers.se</CODE>&gt;
+and others.)
+<P>The IBM Rapid Access keyboard has 14 extra buttons and two more leds
+than a normal PC keyboard. By default, these buttons do not generate
+any scancodes. To activate them one has to send the sequence
+<B>ea</B> <B>71</B> to the keyboard.
+Once that is done the extra keys generate normal e0xx sequences.
+To turn off the extra keys you send <B>ea</B> <B>70</B>.
+<P>These 14 keys send the following scancodes (when activated):
+<P><B>e0</B> <B>25</B> (Suspend),
+<B>e0</B> <B>26</B> (Help),
+<B>e0</B> <B>32</B> (Prg 1),
+<B>e0</B> <B>17</B> (Prg 2),
+<B>e0</B> <B>30</B> (Prg 3),
+<B>e0</B> <B>2e</B> (Prg 4),
+<B>e0</B> <B>19</B> (Play CD),
+<B>e0</B> <B>24</B> (CD Stop),
+<B>e0</B> <B>22</B> (CD Pause),
+<B>e0</B> <B>1e</B> (Vol -),
+<B>e0</B> <B>20</B> (Vol +),
+<B>e0</B> <B>23</B> (Prev song),
+<B>e0</B> <B>21</B> (Next song),
+<B>e0</B> <B>12</B> (Mute).
+<P>
+<P>The Suspend and Mute buttons have extra LEDs on them.
+Sending the sequence
+<B>
+<A HREF="scancodes-1.html#LEDmanip">eb</A></B> <B>00</B> <B>ff</B>
+to the keyboard makes all five LEDs lit up for a moment.
+The sequence <B>eb</B> <B>00</B> <B>04</B> lights the Suspend LED
+(behind a waning moon).
+The sequence <B>eb</B> <B>00</B> <B>20</B> makes the Mute LED blink.
+The sequence <B>eb</B> <B>00</B> <B>80</B> locks the keyboard;
+if the Mute LED was blinking it now is lit permanently.
+Sending <B>eb</B> <B>00</B> <B>ff</B> unlocks the keyboard again.
+<P>The command <B>ec</B> returns <B>0c</B> <B>01</B> (untranslated)
+which becomes <B>3e</B> <B>43</B> in translated scancode Set 2.
+(Possibly an ID?)
+<P>
+<P>
+<A NAME="rapidinit"></A> 
+Dennis Bjorklund writes:
+<I>Here is the hack I use to send commands to the keyboard. After you have
+compiled it you can do things like</I> <CODE>send_to_keyboard ea 71</CODE>,
+<I>but don't run two of these at the exact same moment, and don't send
+strange codes because the keyboard might lock up.</I>
+<P><I>My computer runs this at every startup. After that the extra buttons on
+the rapid access work just fine in XFree86.</I>
+<BLOCKQUOTE><CODE>
+<PRE>
+/* gcc -O2 -s -Wall -osend_to_keyboard main.c */
+#include &lt;stdlib.h>
+#include &lt;unistd.h>
+#include &lt;sys/io.h>
+
+int main(int argc, char *argv[]) {
+  int i;
+
+  ioperm(0x60, 3, 1);
+
+  for (i = 1; i &lt; argc; i++) {
+    int x = strtol(argv[i], 0, 16);
+
+    usleep(300);
+    outb(x, 0x60);
+  }
+
+  return 0;
+}
+</PRE>
+</CODE></BLOCKQUOTE>
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="ibm_rapid_access.jpg">
+</FIGURE>
+<P>
+<H3><A NAME="ibmrapidaccessii"></A> IBM Rapid Access II keyboard</H3>
+
+<P>
+<P>This keyboard has a top row of seven color-coded buttons.
+On the upper right a "wheel" composite button with six parts.
+Below it a blue button ("mute").
+Finally, the usual block with four arrow keys has been enlarged
+by two more keys ("page left" and "page right").
+<P>Keys:
+<P><B>e0</B> <B>25</B> (Green, "Internet"),
+<B>e0</B> <B>26</B> (Blue, "Internet shopping"),
+<B>e0</B> <B>32</B> (Yellow, "IBM Web support"),
+<B>e0</B> <B>17</B> (Purple),
+<B>e0</B> <B>30</B> (Red),
+<B>e0</B> <B>2e</B> (Cyan, "Help"),
+<B>e0</B> <B>5f</B> (White, "Standby" - has a LED),
+<B>e0</B> <B>20</B> (CD stop),
+<B>e0</B> <B>22</B> (CD play),
+<B>e0</B> <B>21</B> (Volume D),
+<B>e0</B> <B>23</B> (Volume U),
+<B>e0</B> <B>24</B> (CD back),
+<B>e0</B> <B>12</B> (CD fwd),
+<B>e0</B> <B>1e</B> (Mute - no LED).
+<P>(In translated scancode Set 3, these become
+<B>41</B>, <B>3f</B>, <B>3d</B>, <B>3b</B>, <B>3c</B>,
+<B>66</B>, <B>--</B>, <B>69</B>, <B>6a</B>, <B>6b</B>,
+<B>6c</B>, <B>6d</B>, <B>44</B>, <B>68</B>, respectively.)
+<P>The "back" ("page left") and "forward" ("page right") keys
+generate ALT+left and ALT+right respectively:
+<B>38</B> <B>e0</B> <B>4b</B> (release sequence
+<B>b8</B> <B>e0</B> <B>cb</B>) and
+<B>38</B> <B>e0</B> <B>4d</B>.
+<P>The commands <B>ea</B> <B>70</B> and <B>ea</B> <B>71</B>
+serve to switch off (resp. on) the special keys.
+(These are on by default, but can be switched off.)
+However, the white Standby key is always on.
+<P>The white Standby button has a LED (that is flashed during a reset).
+It is set by the command
+<B>
+<A HREF="scancodes-1.html#LEDmanip">eb</A></B> <B>71</B>
+and cleared by the command <B>eb</B> <B>70</B>.
+<P>
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="ibm_rapid_access_II.jpg">
+</FIGURE>
+<P>
+<H3>IBM ThinkPad</H3>
+
+<P>George Staikos &lt;<CODE>staikos@0wned.org</CODE>&gt; writes:
+<P><I>I have an IBM ThinkPad i1460. It has the IBM EasyLaunch&lt;tm&gt; keys.
+These are four multicoloured keys up at the top of the keyboard
+for "Home Page", "Search", "Shop", "Mail".  They dont' seem to create
+any keyboard events at all.  The keyboard interrupt doesn't trigger,
+<CODE>showkeys</CODE> doesn't see them do anything, and in DOS, a simple
+sequence of BIOS calls doesn't see them either.
+Also, being a laptop, it has an FN key.  This key generates <B>55</B>.</I>
+<P>
+<H2><A NAME="ss5.3">5.3 Logitech keyboards</A>
+</H2>
+
+<P>
+<H3><A NAME="logitechinternet"></A> Logitech Internet keyboard</H3>
+
+<P>Jonathan DeBoer &lt;<CODE>deboer@ugrad.cs.ualberta.ca</CODE>&gt; reports:
+This keyboard has 18 unusual keys.
+<P><B>e0</B> <B>7a</B> (WWW),
+<B>e0</B> <B>32</B> (History),
+<B>e0</B> <B>21</B> (Open URL),
+<B>e0</B> <B>23</B> (Home),
+<B>38</B> <B>2a</B> <B>0f</B> <B>8f</B> (key press)
+<B>8f</B> <B>b8</B> <B>aa</B> (key release) (Send To Back) -
+this sequence simulates Alt+Shift+Tab, but contains two Tab releases,
+<B>e0</B> <B>17</B> (Print),
+<B>e0</B> <B>10</B> (Back),
+<B>e0</B> <B>22</B> (Forward),
+<B>e0</B> <B>24</B> (Stop),
+<B>e0</B> <B>19</B> (Refresh),
+<B>e0</B> <B>1e</B> (Search),
+<B>e0</B> <B>12</B> (Find),
+<B>e0</B> <B>26</B> (Add Favourite),
+<B>e0</B> <B>18</B> (Open Favourites),
+<B>e0</B> <B>20</B> (Hot Links),
+<B>e0</B> <B>30</B> (Scroll Up),
+<B>e0</B> <B>2e</B> (Scroll Down),
+<B>e0</B> <B>25</B> (Logitech).
+<P>
+<P>Ryan Lortie &lt;<CODE>desertangel@globalserve.net</CODE>&gt; writes:
+The "Logitech" key is used as a modifier.
+In windows, Logitech-Keypad+ increases volume, Logitech-Keypad- decreases.
+There is a conjoined dual-button key for "scroll".
+You press the top part to scroll up, the bottom to scroll down.
+<P>
+<P>Graham Hay adds: The extra LED is an amber colour, placed above
+the www key with a recessed line linking them. Sending <B>eb</B> alone
+turns it on. It will flash on/off about once per second after that.
+A single <B>ec</B> will turn it off.
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="logitech-internet-s.jpg">
+</FIGURE>
+
+<A HREF="logitech-internet.jpg">(enlarge)</A><P>
+<P>
+<H3>Logitech Cordless Desktop Pro keyboard</H3>
+
+<P>Nick Rusnov &lt;<CODE>nick@grawk.net</CODE>&gt; reports:
+<P>The special buttons on a Logitech Cordless Desktop Pro keyboard
+produce the following scancodes:
+<P><B>e0</B> <B>5f</B> (Moon (sleep)),
+<B>e0</B> <B>32</B> (Homepage),
+<B>e0</B> <B>6c</B> (Mail),
+<B>e0</B> <B>65</B> (Search),
+<B>e0</B> <B>66</B> (runningguuy),
+<B>e0</B> <B>20</B> (Mute),
+<B>e0</B> <B>2e</B> (VolDown),
+<B>e0</B> <B>30</B> (VolUp),
+<B>e0</B> <B>22</B> (Play/Pause),
+<B>e0</B> <B>24</B> (Stop),
+<B>e0</B> <B>10</B> (Rewind),
+<B>e0</B> <B>19</B> (ff),
+<B>e0</B> <B>21</B> (Logitech).
+<P>
+<H3>Logitech Access keyboard</H3>
+
+<P>Denis Kosygin &lt;<CODE>kosygin@math.princeton.edu</CODE>&gt; reports:
+<P>In addition to usual 104 keys in the usual PC layout this keyboard
+has 11 extra keys.  Ten of them produce the following escape scancodes:
+<B>e0</B> <B>5f</B> (User (moon)),
+<B>e0</B> <B>6c</B> (E-mail),
+<B>e0</B> <B>11</B> (Messenger/SMS),
+<B>e0</B> <B>12</B> (Webcam),
+<B>e0</B> <B>20</B> (Mute (crossed speaker)),
+<B>e0</B> <B>30</B> (VolUp (triangle up with + sign in it)),
+<B>e0</B> <B>2e</B> (VolDown (triangle down with - sign in it)),
+<B>e0</B> <B>6d</B> (Media),
+<B>e0</B> <B>32</B> (My Home),
+<B>e0</B> <B>65</B> (Search).
+<P>The eleventh key (with keycap "F lock") is a switch between two sets
+of scancodes for function keys F1-F12.  When "F lock" is pressed, then
+F1-F12 act as function keys and produce usual keyscans for these keys.  
+When "F lock" is depressed, F1-F12 generate the following keyscans:
+<P><B>e0</B> <B>3b</B> (new [F1]),
+<B>e0</B> <B>3c</B> (reply [F2]),
+<B>e0</B> <B>3d</B> (forward [F3]),
+<B>e0</B> <B>3e</B> (send [F4]),
+<B>e0</B> <B>10</B> (rewind [F5]),
+<B>e0</B> <B>19</B> (fast forward [F6]),
+<B>e0</B> <B>22</B> (play/pause [F7]),
+<B>e0</B> <B>24</B> (stop [F8]),
+<B>e0</B> <B>43</B> (my com [F9]),
+<B>e0</B> <B>44</B> (my doc [F10]),
+<B>e0</B> <B>57</B> (my pic [F11]),
+<B>e0</B> <B>58</B> (my music [F12]).
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="logitech-access.jpg">
+</FIGURE>
+<P>
+<P>
+<H3>Logitech Cordless Desktop Optical keyboard</H3>
+
+<P>Stefan reports:
+<P>The special buttons on a Logitech Cordless Desktop Optical keyboard
+produce the following scancodes:
+<P><B>e0</B> <B>69</B> (Go),
+<B>e0</B> <B>6a</B> (Back),
+<B>e0</B> <B>5f</B> (Sleep),
+<B>e0</B> <B>66</B> (Favorites),
+<B>e0</B> <B>24</B> (SeekBack),
+<B>e0</B> <B>22</B> (SeekForward),
+<B>e0</B> <B>01</B> (Media),
+<B>e0</B> <B>1e</B> (VolUp),
+<B>e0</B> <B>25</B> (VolDown),
+<B>e0</B> <B>26</B> (Mute),
+<B>e0</B> <B>1f</B> (PlayPause),
+<B>e0</B> <B>17</B> (Stop),
+<B>e0</B> <B>6c</B> (Email),
+<B>e0</B> <B>65</B> (Search),
+<B>e0</B> <B>02</B> (Homepage).
+<P>Some other keys behave differently.
+<P>
+<P>
+<H2><A NAME="ss5.4">5.4 Microsoft keyboards</A>
+</H2>
+
+<P>
+<P>Some common scancodes found on some Microsoft keyboards.
+<P>
+<P>
+<CENTER><TABLE BORDER><TR><TD>
+<B>e0&nbsp;05</B> </TD><TD> Messenger or Files </TD><TD></TD><TD><B>e0&nbsp;07</B> </TD><TD> Redo (on F3 or not) </TD><TD></TD><TD><B>e0&nbsp;08</B> </TD><TD> Undo (on F2 or not) </TD><TD></TD><TD><B>e0&nbsp;09</B> </TD><TD> Application Left </TD></TR><TR><TD>
+<B>e0&nbsp;0a</B> </TD><TD> Paste </TD><TD></TD><TD><B>e0&nbsp;0b</B>/<B>8b</B> </TD><TD> Scroll Up/Down Normal </TD><TD></TD><TD><B>e0&nbsp;10</B> </TD><TD> Prev Track, |&lt;&lt; </TD><TD></TD><TD><B>e0&nbsp;11</B>/<B>91</B> </TD><TD> Scroll Up/Down Fast </TD></TR><TR><TD>
+<B>e0&nbsp;12</B>/<B>92</B> </TD><TD> Scroll Up/Down Faster </TD><TD></TD><TD><B>e0&nbsp;13</B> </TD><TD> Word </TD><TD></TD><TD><B>e0&nbsp;14</B> </TD><TD> Excel </TD><TD></TD><TD><B>e0&nbsp;15</B> </TD><TD> Calendar </TD></TR><TR><TD>
+<B>e0&nbsp;16</B> </TD><TD> Log Off </TD><TD></TD><TD><B>e0&nbsp;17</B> </TD><TD> Cut </TD><TD></TD><TD><B>e0&nbsp;18</B> </TD><TD> Copy </TD><TD></TD><TD><B>e0&nbsp;19</B> </TD><TD> Next Track, >>| </TD></TR><TR><TD>
+<B>e0&nbsp;1e</B> </TD><TD> Application Right </TD><TD></TD><TD><B>e0&nbsp;1f</B>/<B>9f</B> </TD><TD> Scroll Up/Down Fastest </TD><TD></TD><TD><B>e0&nbsp;20</B> </TD><TD> Mute </TD><TD></TD><TD><B>e0&nbsp;21</B> </TD><TD> Calculator </TD></TR><TR><TD>
+<B>e0&nbsp;22</B> </TD><TD> Play/Pause </TD><TD></TD><TD><B>e0&nbsp;23</B> </TD><TD> Spell (on F10) </TD><TD></TD><TD><B>e0&nbsp;24</B> </TD><TD> Stop (cf <B>e0&nbsp;68</B>) </TD><TD></TD><TD><B>e0&nbsp;2e</B> </TD><TD> Volume - </TD></TR><TR><TD>
+<B>e0&nbsp;30</B> </TD><TD> Volume + </TD><TD></TD><TD><B>e0&nbsp;32</B> </TD><TD> Web/Home </TD><TD></TD><TD><B>e0&nbsp;3b</B> </TD><TD> Help (on F1) </TD><TD></TD><TD><B>e0&nbsp;3c</B> </TD><TD> My Music or Office Home (on F2) </TD></TR><TR><TD>
+<B>e0&nbsp;3d</B> </TD><TD> Task Pane (on F3) </TD><TD></TD><TD><B>e0&nbsp;3e</B> </TD><TD> New (on F4) </TD><TD></TD><TD><B>e0&nbsp;3f</B> </TD><TD> Open (on F5) </TD><TD></TD><TD><B>e0&nbsp;40</B> </TD><TD> Close (on F6) </TD></TR><TR><TD>
+<B>e0&nbsp;41</B> </TD><TD> Reply (on F7) </TD><TD></TD><TD><B>e0&nbsp;42</B> </TD><TD> Fwd (on F8) </TD><TD></TD><TD><B>e0&nbsp;43</B> </TD><TD> Send (on F9) </TD><TD></TD><TD><B>e0&nbsp;57</B> </TD><TD> Save (on F11) </TD></TR><TR><TD>
+<B>e0&nbsp;58</B> </TD><TD> Print (on F12) </TD><TD></TD><TD><B>e0&nbsp;5b</B> </TD><TD> LeftWindows </TD><TD></TD><TD><B>e0&nbsp;5c</B> </TD><TD> RightWindows </TD><TD></TD><TD><B>e0&nbsp;5d</B> </TD><TD> Application (Menu) </TD></TR><TR><TD>
+<B>e0&nbsp;5e</B> </TD><TD> Power </TD><TD></TD><TD><B>e0&nbsp;5f</B> </TD><TD> Sleep </TD><TD></TD><TD><B>e0&nbsp;63</B> </TD><TD> Wake </TD><TD></TD><TD><B>e0&nbsp;64</B> </TD><TD> My Pictures </TD></TR><TR><TD>
+<B>e0&nbsp;65</B> </TD><TD> Search </TD><TD></TD><TD><B>e0&nbsp;66</B> </TD><TD> Favorites </TD><TD></TD><TD><B>e0&nbsp;67</B> </TD><TD> Refresh </TD><TD></TD><TD><B>e0&nbsp;68</B> </TD><TD> Stop (cf <B>e0&nbsp;24</B>) </TD></TR><TR><TD>
+<B>e0&nbsp;69</B> </TD><TD> Forward </TD><TD></TD><TD><B>e0&nbsp;6a</B> </TD><TD> Back </TD><TD></TD><TD><B>e0&nbsp;6b</B> </TD><TD> My Computer </TD><TD></TD><TD><B>e0&nbsp;6c</B> </TD><TD> Mail </TD></TR><TR><TD>
+<B>e0&nbsp;6d</B> </TD><TD> Media </TD></TR><TR><TD>
+
+</TD></TR></TABLE></CENTER>
+<P>
+<P>
+<H3><A NAME="microsoft"></A> Microsoft Natural keyboard</H3>
+
+<P>This keyboard has three additional keys, with escaped scancodes
+<B>e0</B> <B>5b</B> (LeftWindow),
+<B>e0</B> <B>5c</B> (RightWindow),
+<B>e0</B> <B>5d</B> (Menu).
+The untranslated Set 2 scancodes (see 
+<A HREF="scancodes-9.html#scancodesets">below</A>)
+are <B>e0</B> <B>1f</B>, <B>e0</B> <B>27</B> and
+<B>e0</B> <B>2f</B>, respectively.
+The USB key codes are usage page 0x07, usage index 227, 231, 101
+(decimal), respectively.
+Microsoft 
+<A HREF="http://www.microsoft.com/hwdev/download/desinit/scancode.zip">describes</A>
+the intended use in detail. Both Windows keys are intended to be
+used as modifier keys, like both shift and control and alt keys.
+The Menu key may be modified by shift etc.
+<P>
+<H3><A NAME="msinternet"></A> Microsoft Internet keyboard</H3>
+
+<P>In addition to the three extra keys on the Microsoft Natural keyboard,
+this keyboard has ten keys, with escaped scancodes
+<B>e0</B> <B>6a</B> (Back),
+<B>e0</B> <B>69</B> (Forward),
+<B>e0</B> <B>68</B> (Stop),
+<B>e0</B> <B>6c</B> (Mail),
+<B>e0</B> <B>65</B> (Search),
+<B>e0</B> <B>66</B> (Favorites),
+<B>e0</B> <B>32</B> (Web/Home),
+<B>e0</B> <B>6b</B> (My Computer),
+<B>e0</B> <B>21</B> (Calculator),
+<B>e0</B> <B>5f</B> (Sleep).
+The untranslated Set 1 codes are as expected (make codes identical to
+the above translated Set 2 ones). The translated Set 3 codes are
+<B>6a</B>, <B>69</B>, <B>68</B>, <B>6c</B>, <B>65</B>,
+<B>66</B>, <B>97</B>, <B>6b</B>, <B>99</B>, <B>54</B>,
+respectively.
+<P>
+<H3>Microsoft Natural keyboard pro</H3>
+
+<P>Marco Melgazzi &lt;<CODE>marco@techie.com</CODE>&gt; reports:
+The Microsoft Natural keyboard pro has 19 additional keys,
+with escaped scancodes
+<B>e0</B> <B>6a</B> (Back),
+<B>e0</B> <B>69</B> (Forward),
+<B>e0</B> <B>68</B> (Stop),
+<B>e0</B> <B>67</B> (Refresh),
+<B>e0</B> <B>65</B> (Search),
+<B>e0</B> <B>66</B> (Favorites),
+<B>e0</B> <B>32</B> (Web/Home),
+<B>e0</B> <B>6c</B> (Mail),
+<B>e0</B> <B>20</B> (Mute),
+<B>e0</B> <B>2e</B> (Volume -),
+<B>e0</B> <B>30</B> (Volume +),
+<B>e0</B> <B>22</B> (Play/Pause),
+<B>e0</B> <B>24</B> (Stop),
+<B>e0</B> <B>10</B> (Prev Track),
+<B>e0</B> <B>19</B> (Next Track),
+<B>e0</B> <B>6d</B> (Media),
+<B>e0</B> <B>6b</B> (My Computer),
+<B>e0</B> <B>21</B> (Calculator),
+<B>e0</B> <B>5f</B> (Sleep).
+(That is, we have the ten extra keys of the Microsoft Internet keyboard,
+with the same scancodes, and also Refresh, Mute, Volume -, Volume +,
+Play/Pause, Stop, Prev Track, Next Track, Media.)
+<P>
+<H3>Microsoft Natural Multimedia Keyboard</H3>
+
+<P>Jeremy Brand &lt;<CODE>jeremy@nirvani.net</CODE>&gt; reports:
+The Microsoft Natural Multimedia Keyboard has 17 additional keys.
+Scancodes are
+<P>? (My Documents),
+<B>e0</B> <B>64</B> (My Pictures),
+<B>e0</B> <B>3c</B> (My Music),
+<B>e0</B> <B>20</B> (Mute),
+<B>e0</B> <B>22</B> (Play/Pause),
+<B>e0</B> <B>24</B> (Stop),
+<B>e0</B> <B>30</B> (Volume +),
+<B>e0</B> <B>2e</B> (Volume -),
+<B>e0</B> <B>10</B> (|&lt;&lt;),
+<B>e0</B> <B>19</B> (>>|),
+<B>e0</B> <B>6d</B> (Media),
+<B>e0</B> <B>6c</B> (Mail),
+<B>e0</B> <B>32</B> (Web/Home),
+<B>e0</B> <B>05</B> (Messenger),
+<B>e0</B> <B>21</B> (Calculator),
+<B>e0</B> <B>16</B> (Log Off),
+<B>e0</B> <B>5f</B> (Sleep).
+<P>Moreover, the function keys are dual purpose.
+There is a "function lock" key.
+By default the function keys are not function keys, they are
+"Help", "Undo", etc.  You have to press the function lock key
+and then the function keys act like the usual function keys.
+In the default state the scancodes are
+<P><B>e0</B> <B>3b</B> (Help) on F1 key,
+<B>e0</B> <B>08</B> (Undo) on F2 key,
+<B>e0</B> <B>07</B> (Redo) on F3 key,
+? (New) on F4 key,
+? (Open) on F5 key,
+? (Close) on F6 key,
+? (Replay) on F7 key,
+<B>e0</B> <B>42</B> (Fwd) on F8 key,
+<B>e0</B> <B>43</B> (Send) on F9 key,
+<B>e0</B> <B>23</B> (Spell) on F10 key,
+<B>e0</B> <B>57</B> (Save) on F11 key,
+<B>e0</B> <B>58</B> (Print) on F12 key.
+<P>
+<P>
+<H3><A NAME="msoffice"></A> Microsoft Office keyboard</H3>
+
+<P>Christian Hammond 
+<A HREF="http://www.chipx86.com/linuxstuff/officekb/wheel.php">reports</A>
+about the keyboard Scroll Wheel:
+<I>The following is my interpretation of the results of</I>
+<CODE>showkey -s</CODE>. <I>I had read that the wheel has 3 speeds,
+normal, fast, and faster. However, my results show 4.</I>
+<P>Scroll Up: Normal <B>e0</B> <B>0b</B>,
+Fast <B>e0</B> <B>11</B>,
+Faster <B>e0</B> <B>12</B>,
+Fastest <B>e0</B> <B>1f</B>.
+<P>Scroll Down: Normal <B>e0</B> <B>8b</B>,
+Fast <B>e0</B> <B>91</B>,
+Faster <B>e0</B> <B>92</B>,
+Fastest <B>e0</B> <B>9f</B>.
+<P>Wouter van Wijk &lt;<CODE>woutervanwijk@netscape.net</CODE>&gt; reported the scancodes
+given below.
+<P>On the left touchpad above the scroll wheel:
+<B>e0</B> <B>6a</B> (Back),
+<B>e0</B> <B>69</B> (Forward).
+On the left touchpad below the scroll wheel:
+<B>e0</B> <B>17</B> (Cut),
+<B>e0</B> <B>18</B> (Copy),
+<B>e0</B> <B>0a</B> (Paste),
+<B>e0</B> <B>09</B> (Application Left),
+<B>e0</B> <B>1e</B> (Application Right),
+<P>Buttons on the top row:
+No scancode (F Lock),
+<B>e0</B> <B>13</B> (Word),
+<B>e0</B> <B>14</B> (Excel),
+<B>e0</B> <B>32</B> (Web/Home),
+<B>e0</B> <B>6c</B> (Mail),
+<B>e0</B> <B>15</B> (Calendar),
+<B>e0</B> <B>05</B> (Files),
+<B>e0</B> <B>21</B> (Calculator),
+<B>e0</B> <B>20</B> (Mute),
+<B>e0</B> <B>2e</B> (Volume -),
+<B>e0</B> <B>30</B> (Volume +),
+<B>e0</B> <B>16</B> (Log Off),
+<B>e0</B> <B>5f</B> (Sleep).
+This is the expected code for Sleep. However, there do not seem to be
+Power and WakeUp keys.
+<P>The twelve function keys can be in two states. In the default state
+they produce the (new) codes below. The FLock toggle switches them
+back to good old function key state.
+<B>e0</B> <B>3b</B> (Help [F1]),
+<B>e0</B> <B>3c</B> (Office Home [F2]),
+<B>e0</B> <B>3d</B> (Task Pane [F3]),
+<B>e0</B> <B>3e</B> (New [F4]),
+<B>e0</B> <B>3f</B> (Open [F5]),
+<B>e0</B> <B>40</B> (Close [F6]),
+<B>e0</B> <B>41</B> (Reply [F7]),
+<B>e0</B> <B>42</B> (Fwd [F8]),
+<B>e0</B> <B>43</B> (Send [F9]),
+<B>e0</B> <B>23</B> (Spell [F10]),
+<B>e0</B> <B>57</B> (Save [F11]),
+<B>e0</B> <B>58</B> (Print [F12]).
+Note that each of these codes is just the <B>e0</B> variation
+of the ordinary function key code, except for that for Spell [F10].
+When the FLock light is off (default) the <B>e0</B>-version
+is activated.
+<P>Above the 5-key block with Insert, Home, Delete, PgUp, PgDown:
+<B>e0</B> <B>08</B> (Undo),
+<B>e0</B> <B>07</B> (Redo).
+<P>Above the number pad:
+<B>59</B> (=),
+<B>e0</B> <B>4c</B> (( [PrintScreen]),
+<B>e0</B> <B>64</B> () [ScrollLock]),
+<B>0e</B> (Backspace),
+<B>0f</B> (Tab).
+These are the usual codes for Backspace and Tab but new codes
+for (, ), =. PrintScreen and ScrollLock have the usual codes.
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="ms_office.jpg">
+</FIGURE>
+
+See the 
+<A HREF="http://www.microsoft.com/hardware/keyboard/ok_info.asp">Microsoft ad</A>.
+<P>
+<H2><A NAME="ss5.5">5.5 Safeway keyboards</A>
+</H2>
+
+<P>
+<P>
+<H3>Safeway SW10 keyboard</H3>
+
+<P>The Safeway SW10 keyboard has the usual keys, including the three
+Windows keys, and including Power, Sleep, Wake keys
+(below Delete, End, PageDown) that do not produce scancodes
+unless the Fn key (above Keypad-Minus) is pressed simultaneously.
+This Fn key is used together with 11 keys: F1-F7, F11, Power, Sleep, Wake.
+Fn-F11 disables the keyboard and another Fn-F11 enables it again.
+Fn-F1/F2/F3/F4/F5/F6/F7 sets the repeat rate
+(on my keyboard I measured 2.0/4.0/6.7/12/26/32/32 chars/sec respectively).
+<P>
+<H3><A NAME="safeway23"></A> Safeway SW23 keyboard</H3>
+
+<P>The Safeway SW23 keyboard has 132 keys: the usual 104 keys
+(101 plus three Windows keys), five more keys called Turbo
+(below Enter, right of RShift), and Power, Sleep, Wake
+(below Delete, End, PageDown), and Ez (above Keypad-Minus),
+and 23 buttons in two rows above the row of function keys.
+By default, the five extra keys do not produce scancodes.
+(The Ez is a mode toggle. The Turbo key is used to enable
+the Power, Sleep, Wake keys.)
+<P>First row of buttons: three Volume buttons:
+<B>e0</B> <B>58</B> (Mute),
+<B>e0</B> <B>5a</B> (Vol -),
+<B>e0</B> <B>70</B> (Vol +),
+five CD Player buttons:
+<B>e0</B> <B>59</B> (Prev),
+<B>e0</B> <B>42</B> (Play),
+<B>e0</B> <B>69</B> (Next),
+<B>e0</B> <B>64</B> (Stop),
+<B>e0</B> <B>71</B> (Eject),
+two Recorder buttons:
+<B>e0</B> <B>40</B> (Rew/Play),
+<B>e0</B> <B>29</B> (Rec/Stop).
+<P>Second row of buttons:
+<B>e0</B> <B>23</B> (Sleep),
+<B>e0</B> <B>7d</B> (Cut),
+<B>e0</B> <B>7e</B> (Copy),
+<B>e0</B> <B>7f</B> (Paste),
+<B>e0</B> <B>20</B> (Rotate),
+<B>e0</B> <B>43</B> (Close),
+<B>e0</B> <B>30</B> (My Doc),
+<B>e0</B> <B>44</B> (DOS),
+<B>e0</B> <B>79</B> (Game),
+<B>e0</B> <B>77</B> (WWW),
+<B>e0</B> <B>6e</B> (Calc),
+<B>e0</B> <B>3e</B> (X'fer),
+<B>e0</B> <B>6a</B> (Menu/?).
+<P>The Ez key does not produce scancodes, but toggles a
+M/Mode LED, the fourth next to the Num, Caps, Scroll LEDs.
+When that LED is set, the 17 keypad keys give different
+scancodes:
+<B>e0</B> <B>3c</B> (N/Lock),
+<B>e0</B> <B>7b</B> (/),
+<B>e0</B> <B>22</B> (*),
+<B>e0</B> <B>61</B> (-),
+<B>e0</B> <B>0f</B> (7),
+<B>e0</B> <B>21</B> (8),
+<B>e0</B> <B>6b</B> (9),
+<B>e0</B> <B>3d</B> (+),
+<B>e0</B> <B>04</B> (4),
+<B>e0</B> <B>62</B> (5),
+<B>e0</B> <B>39</B> (6),
+<B>e0</B> <B>10</B> (1),
+<B>e0</B> <B>24</B> (2),
+<B>e0</B> <B>05</B> (3),
+<B>e0</B> <B>02</B> (0),
+<B>e0</B> <B>41</B> (.),
+<B>e0</B> <B>3f</B> (Enter).
+<P>The Turbo key does not produce scancodes, and neither do
+Power, Sleep, Wake. However, when Turbo is pressed simultaneously,
+the Power, Sleep, Wake keys yield <B>e0</B> <B>5e</B>,
+<B>e0</B> <B>5f</B>, <B>e0</B> <B>63</B> as
+<A HREF="scancodes-1.html#power">they should</A>.
+<P>In untranslated scancode mode 3, the multimedia and power keys
+do not yield any code. In untranslated scancode mode 1 they
+yield the same code as in untranslated scancode mode 2.
+(This is a design bug: untranslated scancode mode 1 should be the same
+as translated scancode mode 2 (see 
+<A HREF="scancodes-9.html#scancodesets">below</A>),
+and this is true for the ordinary keys, but fails here for the
+"multimedia" keys. For example, the keys End and Keypad-Minus
+(in M/Mode) yield the same <B>e0</B> <B>4f</B> in
+untranslated scancode mode 1.)
+<P>Note that some "protocol keycodes" occur here with <B>e0</B> prefix.
+Indeed, we see <B>e1</B>, <B>ee</B>, <B>f1</B>, <B>fe</B>, <B>ff</B>
+in the key up sequence for the multimedia keys Keypad-Minus
+(<B>e0</B> <B>e1</B>), Calc (<B>e0</B> <B>ee</B>),
+Eject (<B>e0</B> <B>f1</B>), Copy (<B>e0</B> <B>fe</B>),
+Paste (<B>e0</B> <B>ff</B>).
+<P>
+<H2><A NAME="ss5.6">5.6 Internet Wireless Keyboard</A>
+</H2>
+
+<P>This keyboard (nameless, made in China) has 9+1+9 buttons,
+nine on each side of the Sleep button.
+Buttons:
+<B>e0</B> <B>6a</B> (Web Backward),
+<B>e0</B> <B>69</B> (Web Forward),
+<B>e0</B> <B>68</B> (Web Stop),
+<B>e0</B> <B>67</B> (Web Refresh),
+<B>e0</B> <B>65</B> (Web Search),
+<B>e0</B> <B>66</B> (Web Favorites),
+<B>e0</B> <B>32</B> (Web Home),
+<B>e0</B> <B>6c</B> (E-mail),
+<B>e0</B> <B>20</B> (Mute),
+<B>e0</B> <B>5f</B> (Sleep),
+<B>e0</B> <B>2e</B> (Volume Down),
+<B>e0</B> <B>30</B> (Volume Up),
+<B>e0</B> <B>22</B> (Play/Pause),
+<B>e0</B> <B>24</B> (Stop),
+<B>e0</B> <B>10</B> (Fast Backward),
+<B>e0</B> <B>19</B> (Fast Forward),
+<B>e0</B> <B>6d</B> (Media Player),
+<B>e0</B> <B>6b</B> (My Computer),
+<B>e0</B> <B>21</B> (Calculator).
+<P>This keyboard reports 
+<A HREF="scancodes-9.html#keyboardid">keyboard ID</A>
+<B>ab</B> <B>83</B> (translated <B>ab</B> <B>c1</B>).
+Scancode sets 1 and 2 are reported as <B>01</B> and <B>02</B>
+(translated <B>c3</B> and <B>c1</B>).
+These translations are bugs, but otherwise all seems to function
+as expected, except that this keyboard does not recognize
+scancode set 3 and returns <B>fe</B> for an attempt to set Set 3.
+Every command <B>ed</B> <B>xx</B> is accepted, but there are no LEDs,
+there is only a battery indicator.
+<P>The mouse that accompanies the keyboard shows no reactions.
+It may need a special driver.
+<P>
+<H2><A NAME="nokia"></A> <A NAME="ss5.7">5.7 Nokia keyboard</A>
+</H2>
+
+<P>This 121-key 
+<A HREF="nokia.jpg">Nokia keyboard</A>
+has ten function keys on the left and twenty-four on
+the two top rows. On the right a block with cursor keys
+and a block with numeric keys. There are three LEDs.
+The keys have brown markings, and sometimes also blue ones.
+Where both occur, the blue markings describe the usual PC keytops.
+<P>Roughly speaking, the scancodes are as expected.
+The 
+<A HREF="nokia-top.jpg">function keys</A> F1-F10,F11,F12
+have scan codes <B>3b</B>-<B>44</B>, <B>57</B>, <B>58</B> as usual.
+The keys on the upper row, labeled F13-F24, yield the same codes as
+shifted F1-F12. E.g., F13 gives <B>2a</B> <B>3b</B> on press,
+and <B>bb</B> <B>aa</B> on release.
+The function keys F4,F11,F13-F19,F21,F24 have front labels
+CrSel, AltCr, Red, Pink, Green, Yellow, Blue, Turq, White,
+Col, USM.
+<P>The 
+<A HREF="nokia-left.jpg">ten keys on the left</A>
+have the following scancodes.
+First column of five:
+<B>01</B> (Attn/Esc/NxtTsk), as expected for Esc;
+<B>1d 3b</B> (Quit/Reset), as expected for Ctrl F1;
+<B>1d 3c</B> (ExSel), as expected for Ctrl F2;
+<B>1d 3d</B> (Ident/Print), as expected for Ctrl F3;
+<B>1d 3e</B> (Help/EnlW), as expected for Ctrl F4.
+For these last four keys (and the ChgSc/WSCtrl below) the code
+becomes <B>3b</B>-<B>3e</B> (and <B>3f</B>) when left or right
+Ctrl is pressed already.
+Second column of five:
+<B>e1 1d 45</B> ((Break)/Clear/Pause/Test), and <B>e0 46</B>
+with Ctrl, as expected for Pause/Break;
+<B>46</B> (ScrLock), as expected for ScrLock;
+<B>e0 2a e0 37</B> (PrtSc/SysRq), and <B>e0 37</B> with
+left or right Ctrl or left or right Shift, and <B>54</B>
+with left or right Alt, as expected for PrtSc;
+<B>1d 3f</B> (ChgSc/WSCtrl), as expected for Ctrl F5;
+<B>38 e0 49</B> (Jump), as expected for Alt PgUp.
+<P>On 
+<A HREF="nokia-right.jpg">the right</A> a cursor key
+section and a number pad.
+The cursor key section has the expected block of six:
+<B>e0 52</B> (Dup/Insert/PA1);
+<B>e0 47</B> (Field Mark/Home/PA2);
+<B>e0 49</B> (PA3/PgUp);
+<B>e0 53</B> (Delete/DelWd);
+<B>e0 4f</B> (ErEOF/End/ErInp);
+<B>e0 51</B> (PgDn).
+Next four arrow keys:
+<B>e0 48</B> (Up);
+<B>e0 4b</B> (Left);
+<B>e0 4d</B> (Right);
+<B>e0 50</B> (Down).
+And in the middle <B>1d 40</B> (Home), with code as expected for Ctrl F6.
+<P>Finally the numeric keypad, with the usual keys that generate the
+usual codes, and a single additional key, a Tab, with <B>0f</B>
+like the ordinary tab.
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="nokia-s.jpg">
+</FIGURE>
+<P>
+<H2><A NAME="focus"></A> <A NAME="ss5.8">5.8 Focus KeyPro FK-9000 keyboard</A>
+</H2>
+
+<P>Raul D. Miller &lt;<CODE>rockwell@nova.umd.edu</CODE>&gt;
+and Timothy C. Hagman &lt;<CODE>hagmanti@cps.msu.edu</CODE>&gt;
+report:
+<P><I>The keyboard is a KeyPro FK-9000.  The FCC label says it's made in
+Taiwan by Focus Electronic Co, Ltd.  It has a built-in calculator.</I>
+<P><I>This keyboard has twelve additional keys, with scancodes</I>
+<B>55</B> (PF1),
+<B>6d</B> (PF11),
+<B>6f</B> (PF12),
+<B>73</B> (PF2),
+<B>74</B> (PF9),
+<B>77</B> (PF3),
+<B>78</B> (PF4),
+<B>79</B> (PF5),
+<B>7a</B>* (PF6),
+<B>7b</B> (PF7),
+<B>7c</B> (PF8),
+<B>7e</B>* (PF10).
+<P><I>The break codes equal the make codes ORed with 0x80, as always,
+but the Linux kernel eats <B>fa</B> and <B>fe</B> as
+protocol bytes.</I>
+<P><I>The behavior of these keys is different from that of normal keys--
+they generate nothing when pressed; then generate the above scancodes
+at the normal repeat time and rate, and then generate (except for the
+starred ones) their scancode ORed with 0x80 when released...</I>
+<P><I>These PF keys are reprogrammable -- and programming occurs as a sequence
+of keyboard actions.  Therefore, the PF keys duplicate whatever
+keyboard actions occurred during their programming.
+You hit the "Prog" key, then the PF key you want to program; type the
+string you want to store in the key (it's limited to 14 keypresses),
+and then hit the PF key again. After that, when you hit the PF key,
+it sends the string, and generates its own abnormal scancode upon
+release. When the key is held down, it generates the scancode repeatedly,
+but does not generate the string stored in it repeatedly.</I>
+<P><I>When you go to program a key, the scancodes for "PF##-" are sent
+to the computer, then the scancodes for each key you hit as you
+hit it (the shift, etc. keys are an exception-- they send "s-"
+and such :), and then, when you hit the PF## key again to end the
+programming, it sends a sequence of (at least) 18 "0e 8e"s --
+Backspaces...</I>
+<P><I>The program key itself doesn't generate a scancode at any time.
+The same applies to the CE and AC/ON keys (part of the calculator).
+There is a switch to change between calculator and keyboard mode
+which generates no scancodes.</I>
+<P><I>When the keyboard is in calculator mode, the entire numeric
+keypad (and everything else on the right side) generates no
+scancodes.</I>
+<P><I>When the keyboard is not in caluclator mode, the %, MC, MR, M-,
+M+, and Square Root keys all generate <B>ff</B> when pressed,
+<B>ff</B> to repeat, and <B>ff</B> on release.</I>
+<P><I>The little unlabeled key between the right Ctrl and right Alt
+generates <B>56</B> when hit, repeats that, and then <B>d6</B>
+when released, just like a normal key.</I>
+<P>
+<P>
+<H2><A NAME="BTC"></A> <A NAME="ss5.9">5.9 BTC keyboard</A>
+</H2>
+
+<P>This keyboard has one additional key, with escaped scancode
+<B>e0</B> <B>6f</B> (Macro). (Funny enough it does this
+in all modes, each of the three scancode sets, translated or not.
+In particular, this Macro key is the only key that generates
+two bytes in scancode mode 3.)
+<P>
+<H2><A NAME="ss5.10">5.10 LK411 and LK450 keyboards</A>
+</H2>
+
+<P>These keyboards have seven additional keys, with escaped scancodes
+<B>e0</B> <B>0f</B> (LeftCompose),
+<B>e0</B> <B>3d</B> (F13),
+<B>e0</B> <B>3e</B> (F14),
+<B>e0</B> <B>3f</B> (Help),
+<B>e0</B> <B>40</B> (Do),
+<B>e0</B> <B>41</B> (F17),
+<B>e0</B> <B>4e</B> (Keypad-minplus).
+(LK411 has all seven. LK450 has the last six - the report did not
+mention a Compose key.)
+There are only two LEDs. The keycaps are unusual.
+<P>In (translated) scancode Set 3 these keys give codes
+<B>68</B>, <B>44</B>, <B>42</B>, <B>40</B>,
+<B>3e</B>, <B>65</B>, <B>70</B>.
+In untranslated Set 2, the F17 key gives <B>e0</B> <B>83</B>.
+<P>An 
+<A HREF="lk411.jpg">LK411 keyboard</A>,
+with 
+<A HREF="lk411-left.jpg">left</A>
+and 
+<A HREF="lk411-right.jpg">right</A> hand side enlarged.
+<P>The keys labeled F18, F19, F20 produce the codes expected for
+PrtSc, ScrollLock, Pause.
+The keys labelled PF1, PF2, PF3, PF4 produce the codes expected for
+NumLock, Keypad-/, Keypad-*, Keypad--.
+The Keypad-, key produces the code <B>4e</B> expected for Keypad-+.
+The Right ComposeCharacter key produces the code expected for RCtrl.
+The key labelled &lt;/&gt; produces the code <B>29</B>
+expected for `/~. The key labelled with `/~/(Esc) produces
+the code expected for Esc.
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="lk411-s.jpg">
+</FIGURE>
+<P>
+<H2><A NAME="omnikey"></A> <A NAME="ss5.11">5.11 An OmniKey keyboard</A>
+</H2>
+
+<P>This keyboard has one additional key, with escaped scancode
+<B>e0</B> <B>4c</B> (Omni).
+<P>For the Northgate OmniKey 101 keyboard it is said that the command
+<B>e8</B> reads a 2-byte ID.
+<P>
+<H2><A NAME="ss5.12">5.12 GRiD 2260 keyboard</A>
+</H2>
+
+<P>The GRiD 2260 notebook has a key producing the
+<B>6c</B> scancode; I do not know the keycap.
+<P>
+<H2><A NAME="ss5.13">5.13 An old Olivetti keyboard</A>
+</H2>
+
+<P>Kasper Dupont &lt;kasperd@daimi.au.dk&gt; writes:
+My 10 year old 102-key keyboard that came with an "Olivetti PCS 286"
+actually has connectors for three additional keys just bellow Delete, End,
+and PgDn. There is no keys on the connectors, I only found them because I
+opened the keyboard for cleaning. The scancodes are from left to right
+<B>65</B>, <B>66</B>, <B>67</B>.
+<P>
+<H2><A NAME="cherry81"></A> <A NAME="ss5.14">5.14 Cherry G81-3000</A>
+</H2>
+
+<P>According to 
+<A HREF="http://www.delorie.com/djgpp/doc/rbinter/it/06/0.html">Delorie</A>
+the "Cherry G81-3000 SAx/04" keyboard has four additional keys,
+which can be made available by a user modification;
+the three new keys located directly below the cursor pad's
+Delete, End, and PgDn keys send make codes <B>66</B>-<B>68</B> (F19-F21);
+the fourth new key, labeled (delta), sends make code <B>73</B>.
+<P>
+<H2><A NAME="ss5.15">5.15 Accord keyboard</A>
+</H2>
+
+<P>According to 
+<A HREF="http://www.delorie.com/djgpp/doc/rbinter/it/06/0.html">Delorie</A>
+the "Accord" 
+<A HREF="http://www.ergonomics.co.uk/products/input/keyb7300.jpg">ergonomic keyboard</A>
+with optional touchpad has an additional key above the Grey-Minus key
+marked with a left-pointing triangle and labeled "Fn" in the owner's
+booklet which sends make code <B>e0 68</B>.        
+<P>
+<H2><A NAME="ss5.16">5.16 Trust Ergonomic keyboard</A>
+</H2>
+
+<P>Frank v Waveren &lt;<CODE>fvw@var.cx</CODE>&gt; reports:
+The Trust Ergo Track keyboard has one additional key (`application key'), with
+escaped scancode <B>e0</B> <B>68</B>. The keycap is a triangle pointing left.
+<P>
+<H2><A NAME="ss5.17">5.17 Brazilian keyboards</A>
+</H2>
+
+<P>ABNT (Associação Brasileira de Normas Tecnicas) and ABNT2
+are Brazilian keyboard layout standards. The plain Brazilian
+keyboard has 103 keys.
+<P>The Brazilian ABNT keyboard has two unusual keys,
+with scancodes <B>73</B> (/?) and <B>7e</B> (Keypad-.).
+The former is located to the left of the RShift (which
+key therefore is less wide than usually), the latter below
+the Keypad-Plus (reducing the Keypad-Plus to single height).
+<P>Under Linux, the corresponding key codes are 89 and 121, respectively.
+These keys do not function with Windows NT 4.0.
+<P>Antonio Dias &lt;<CODE>accdias@sst.com.br</CODE>&gt; provided the
+<A HREF="abnt-keypad.html">keypad layout</A>
+and writes: <I>Brazilian ABNT2 keyboards come with two layouts.
+In MSDOS they call them ID 274 and ID 275.</I>
+<P>
+<H2><A NAME="RC930"></A> <A NAME="ss5.18">5.18 RC930 keyboard</A>
+</H2>
+
+<P>Torben Fjerdingstad &lt;<CODE>tfj@olivia.ping.dk</CODE>&gt; reports:
+<P><I>It's an rc930 keyboard, from Regnecentralen/RC International, Now ICL.
+This keyboard has four additional keys, with scancodes</I>
+<B>59</B> (A1),
+<B>5a</B> (A2),
+<B>5b</B> (A3),
+<B>5c</B> (A4).
+<P><I>The rc930/rc931 keyboards are not made anymore, because they had a
+problem with fast typists, writing over 400 chars/minute.
+Writing 'af&lt;space&gt;', very, very fast, did a PgUp.</I>
+<P>
+<H2><A NAME="prefix_80"></A> <A NAME="ss5.19">5.19 Tandberg Data keyboard</A>
+</H2>
+
+<P>Kjetil Torgrim Homme &lt;<CODE>kjetilho@ifi.uio.no</CODE>&gt; reports:
+<P><I>My Tandberg Data keyboard uses the prefix <B>80</B> for
+its numerous (20) extra keys. The <B>80</B> scancodes are:</I>
+<P><B>11</B>, <B>12</B>, <B>13</B>, <B>14</B>, <B>16</B>,
+<B>17</B>, <B>18</B>, <B>19</B>, <B>1e</B>, <B>1f</B>,
+<B>20</B>, <B>21</B>, <B>22</B>, <B>23</B>, <B>25</B>,
+<B>26</B>, <B>2f</B>, <B>30</B>, <B>32</B>, <B>56</B>.
+<P><I>For completeness, the <B>e0</B> scancodes:</I>
+<P><B>1c</B>, <B>2a</B>, <B>35</B>, <B>37</B>, <B>47</B>,
+<B>48</B>, <B>49</B>, <B>4b</B>, <B>4d</B>, <B>4f</B>,
+<B>50</B>, <B>51</B>, <B>52</B>, <B>53</B>.
+<P><I>The <B>e1</B> scancode: <B>1d</B>.
+As you can see, there is no overlap on this keyboard.</I>
+<P>Harald Arnesen &lt;<CODE>gurre@start.no</CODE>&gt; gives the keycaps
+for these for the Tandberg TDV5020 keyboard.
+All use prefix <B>80</B> on both press and release.
+<P>Thirteen keys have (Norwegian) text:
+<B>11</B> HJELP (help), <B>14</B> STRYK (cut),
+<B>16</B> KOPI (copy), <B>17</B> FLYTT (move),
+<B>19</B> JUST (justify), <B>21</B> MERK (mark),
+<B>22</B> ANGRE (undo), <B>23</B> SKRIV (print),
+<B>25</B> SLUTT (exit), <B>26</B> FELT (field),
+<B>2f</B> AVSN (paragraph), <B>30</B> SETN (sentence),
+and <B>32</B> ORD (word).
+<P>Seven keys have symbols: <B>12</B> /\/\/\ (insert soft hyphen),
+<B>13</B> [Crossed down-arrow] (move down five lines),
+<B>18</B> &gt;&gt; &lt;&lt; (justify left/right),
+<B>1e</B> &lt;&gt; &gt;&lt; (justify full/center),
+<B>1f</B> |&lt;- (backtab),
+<B>20</B> -&gt;| (tab), and
+<B>56</B> [Back/down arrow] (start new paragraph).
+<P>Other keycaps also occur. Those given above were meant
+for use with the Notis WP word processor.
+<P>
+<H2><A NAME="ss5.20">5.20 Host Connected keyboard</A>
+</H2>
+
+<P>IBM makes the "Host Connected Keyboard" for PS/2 machines used as
+3270 emulators.
+<A HREF="http://www.delorie.com/djgpp/doc/rbinter/it/06/0.html">Delorie</A>
+reports on the 122-key "Host Connected" keyboard.
+It may have <B>5b</B> (F13), <B>5c</B> (F14), <B>5d</B> (F15),
+<B>63</B> (F16), <B>64</B> (F17), <B>65</B> (F18),
+<B>66</B> (F19), <B>67</B> (F20), <B>68</B> (F21),
+<B>69</B> (F22), <B>6a</B> (F23), <B>6b</B> (F24).
+<P>
+<H2><A NAME="ss5.21">5.21 A nameless USB keyboard</A>
+</H2>
+
+<P>This keyboard has four additional keys: Power (rose), Sleep (blue),
+WakeUp (green) and FN (yellow).
+In legacy mode these keys give the expected keycodes
+(<B>e0</B> <B>5e</B>, <B>e0</B> <B>5f</B>, <B>e0</B> <B>63</B>,
+and none, respectively), but the interaction is funny.
+The four keys act as radiobuttons. Pressing one yields its key down code,
+but releasing it does not produce any scancodes. Now pressing another
+yields the down code for the other followed by the up code for the
+previous one. The FN key follows this pattern, only its scancode sequence
+is empty. Thus, pressing it causes the release code for a previous key
+to be emitted. Pressing a key a second time gives no reaction: the radiobutton
+was down already.
+<P>
+<H2><A NAME="ss5.22">5.22 Omnibook keyboard</A>
+</H2>
+
+<P>
+<A NAME="omnibookinit"></A> 
+The HP Omnibook XE3 laptop has special multimedia keys (aka OneTouch buttons)
+disabled by default. It is enabled by writing 0x59 to port 0x64
+and then 0x90 to port 0x60 (as was found by Pavel Mihaylov).
+Various kernel patches can be found on the net. See, for example,
+<A HREF="http://zurich.ai.mit.edu/pipermail/omnibook/2002-April/001230.html">this one</A>.
+<P>Keys (on a GF model):
+<P><B>e0</B> <B>32</B> (WWW),
+<B>e0</B> <B>6c</B> (Mail),
+<B>e0</B> <B>74</B> (Demo),
+<B>e0</B> <B>73</B> (Help),
+<B>e0</B> <B>10</B> (Previous Track),
+<B>e0</B> <B>22</B> (Play / Pause),
+<B>e0</B> <B>24</B> (Stop / Eject),
+<B>e0</B> <B>19</B> (Next Track),
+<B>e0</B> <B>2e</B> (Volume Down),
+<B>e0</B> <B>30</B> (Volume Up),
+<B>e0</B> <B>20</B> (Mute / Unmute).
+<P>
+<P>
+<P>
+<H2><A NAME="EZButton"></A> <A NAME="ss5.23">5.23 EZ Button keyboard</A>
+</H2>
+
+<P>Eric Schott &lt;<CODE>eric@morningjoy.com</CODE>&gt; writes:
+<P>I have an IBM EZ Button keyboard (US layout), which seems to
+generate codes that are similar - but not identical - to the
+Rapid Access keycodes listed above.
+<P>There are 14 additional keys:
+<P><B>e0</B> <B>25</B> ("Power" moon - has an LED),
+<B>e0</B> <B>26</B> ("Help"),
+<B>e0</B> <B>32</B> ("Internet"),
+<B>e0</B> <B>17</B> ("Lotus Word Pro"),
+<B>e0</B> <B>30</B> ("Lotus Organizer"),
+<B>e0</B> <B>2e</B> ("Aptiva Installer"),
+<B>e0</B> <B>19</B> ("Delete Message"),
+<B>e0</B> <B>24</B> (Stop),
+<B>e0</B> <B>22</B> (Pause),
+<B>e0</B> <B>1e</B> ("Msg" - has an LED),
+<B>e0</B> <B>20</B> ("CD" - has an LED),
+<B>e0</B> <B>23</B> (Rewind),
+<B>e0</B> <B>21</B> (Fast Forward), and
+<B>e0</B> <B>12</B> ("Talk" - has an LED).
+<P>
+<P>The LEDs in the buttons are controlled by the sequence
+<B>
+<A HREF="scancodes-1.html#LEDmanip">eb</A></B> <B>00</B> <B>xx</B>
+where the <B>xx</B> controls the LEDs. Bit 0 controls the "Msg" LED,
+1 the CD LED, 2 the Power LED, 4 the Talk LED, and 5 the Message
+Waiting LED.
+<P>
+<P>
+<H2><A NAME="chicony"></A> <A NAME="ss5.24">5.24 Chicony KBP-8993 keyboard</A>
+</H2>
+
+<P>Matthijs Melchior &lt;<CODE>mmelchio@xs4all.nl</CODE>&gt; reports:
+<P>The Chicony KBP-8993 keyboard is similar. It has 14 additional
+keys, enabled by sending <B>ea</B> <B>71</B> and disabled
+by sending <B>ea</B> <B>70</B>.
+<P>These keys generate the following scan codes:
+<P><B>e0</B> <B>25</B> (Moon),
+<B>e0</B> <B>32</B> (WWW),
+<B>e0</B> <B>30</B> (DOS),
+<B>e0</B> <B>17</B> (MyDoc),
+<B>e0</B> <B>26</B> (Menu),
+<B>e0</B> <B>1e</B> (zzZ),
+<B>e0</B> <B>2e</B> (Close),
+<B>e0</B> <B>24</B> (Stop),
+<B>e0</B> <B>23</B> (Back),
+<B>e0</B> <B>22</B> (Play),
+<B>e0</B> <B>21</B> (Forward),
+<B>e0</B> <B>20</B> (Mute),
+<B>e0</B> <B>12</B> (VolDown),
+<B>e0</B> <B>19</B> (VolUp).
+<P>The two extra LEDs, above the Moon key, and next to the zzZ key
+are manipulated by sending:
+<B>
+<A HREF="scancodes-1.html#LEDmanip">eb</A></B> <B>00</B> <B>0x</B>,
+where bit 0 is the Moon LED and bit 1 is the zzZ LED.
+<P>
+<H2><A NAME="ss5.25">5.25 Keyboards for HP Kayak and Vectra</A>
+</H2>
+
+<P>Fons Rademakers &lt;<CODE>Fons.Rademakers@cern.ch</CODE>&gt; writes:
+<P><I>The electronics for this keyboard was first developed by HP's
+Home Products Division (HPD).
+They now make improved versions, which I don't know much about.
+We (HP Corporate PC Divisions, in Grenoble) reused the electronics,
+and changed the serigraphy printed on the keys.</I>
+<P>
+<CENTER><TABLE BORDER><TR><TD>
+</TD><TD>Msg</TD><TD>TTl</TD><TD>WWW</TD><TD> ? </TD><TD>Lck</TD><TD> </TD><TD></TD><TD>Msg</TD><TD>Phn</TD><TD>WWW</TD><TD>xxx</TD><TD>Slp</TD><TD> </TD><TD></TD><TD>133</TD><TD>134</TD><TD>135</TD><TD>136</TD><TD>137</TD><TD> </TD></TR><TR><TD>
+</TD><TD>Phn</TD><TD>S3 </TD><TD>S4 </TD><TD>S5 </TD><TD> i </TD><TD> </TD><TD></TD><TD>&lt;&lt;</TD><TD>&gt;||</TD><TD>[] </TD><TD>&gt;&gt; </TD><TD>HP </TD><TD> </TD><TD></TD><TD>138</TD><TD>139</TD><TD>140</TD><TD>141</TD><TD>142</TD><TD> </TD></TR><TR><TD>
+</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD>Mut</TD><TD> </TD><TD></TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD>Mut</TD><TD> </TD><TD></TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD>143</TD><TD> </TD></TR><TR><TD>
+</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD>Vl+</TD><TD> </TD><TD></TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD>Vl+</TD><TD> </TD><TD></TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD>144</TD><TD> </TD></TR><TR><TD>
+</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD>VL-</TD><TD> </TD><TD></TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD>VL-</TD><TD> </TD><TD></TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD>145</TD><TD> </TD></TR><TR><TD>
+
+<CAPTION>Grenoble keyboard ------- Old HPD keyboard -------- key numbers</CAPTION>
+</TD></TR></TABLE></CENTER>
+<P>
+<P>
+<CENTER><TABLE BORDER><TR><TD>
+</TD><TD> Key# </TD><TD> Scancode </TD><TD> Gren. Name </TD><TD> HPD name </TD><TD> ASCII </TD></TR><TR><TD>
+</TD></TR><TR><TD>
+</TD><TD> 133 </TD><TD> <B>e0 1e</B> </TD><TD> Message/SC1 </TD><TD> Message </TD><TD> a </TD></TR><TR><TD>
+</TD><TD> 134 </TD><TD> <B>e0 12</B> </TD><TD> Top Tools </TD><TD> Phone </TD><TD> e </TD></TR><TR><TD>
+</TD><TD> 135 </TD><TD> <B>e0 32</B> </TD><TD> Web Browser </TD><TD> Internet </TD><TD> m </TD></TR><TR><TD>
+</TD><TD> 136 </TD><TD> <B>e0 17</B> </TD><TD> Reminder </TD><TD> Shortcut </TD><TD> i </TD></TR><TR><TD>
+</TD><TD> 137 </TD><TD> <B>e0 25</B> </TD><TD> Lock </TD><TD> Suspend </TD><TD> k </TD></TR><TR><TD>
+</TD><TD> 138 </TD><TD> <B>e0 23</B> </TD><TD> Phone/SC2 </TD><TD> &lt;&lt; </TD><TD> h </TD></TR><TR><TD>
+</TD><TD> 139 </TD><TD> <B>e0 22</B> </TD><TD> ShortCut 3 </TD><TD> &gt;|| </TD><TD> g </TD></TR><TR><TD>
+</TD><TD> 140 </TD><TD> <B>e0 24</B> </TD><TD> ShortCut 4 </TD><TD> [] </TD><TD> j </TD></TR><TR><TD>
+</TD><TD> 141 </TD><TD> <B>e0 21</B> </TD><TD> ShortCut 5 </TD><TD> &gt;&gt; </TD><TD> f </TD></TR><TR><TD>
+</TD><TD> 142 </TD><TD> <B>e0 26</B> </TD><TD> Information </TD><TD> Information </TD><TD> l </TD></TR><TR><TD>
+</TD><TD> 143 </TD><TD> <B>e0 20</B> </TD><TD> Mute </TD><TD> Mute </TD><TD> d </TD></TR><TR><TD>
+</TD><TD> 144 </TD><TD> <B>e0 30</B> </TD><TD> Volume + </TD><TD> Volume + </TD><TD> b </TD></TR><TR><TD>
+</TD><TD> 145 </TD><TD> <B>e0 2e</B> </TD><TD> Volume - </TD><TD> Volume - </TD><TD> c </TD></TR><TR><TD>
+
+</TD></TR></TABLE></CENTER>
+<P><I>Note the scancodes above are those read by x86 software in port 0x60.
+This is also called Scancode Set 1.
+Break codes are the same, with bit 7 of the second scancode set.
+Example:</I> <B>e0 9e</B> <I>for the Message key.</I>
+<P>
+<P>&lt;<CODE>spikboll@gmx.net</CODE>&gt; adds:
+<I>These keyboards have a "mail LED" (it's positioned above the Message
+button) that kan be controlled by the Rapid Access hack:</I>
+'send_to_keyboard <B>eb</B>' <I>makes the led blink and</I>
+'send_to_keyboard <B>ec</B>' <I>turns the led off.</I>
+'send_to_keyboard <B>ed</B>' <I>makes the led light steadily
+and locks up the keys.</I>
+<P>
+<H2><A NAME="ss5.26">5.26 A keyboard</A>
+</H2>
+
+<P>Jon Masters &lt;<CODE>jonathan@easypenguin.co.uk</CODE>&gt; writes:
+<P><I>My new 121 key keyboard has 105 keys + 16 multimedia keys
+(including cool stuff like a volume jog dial that sends one scancode
+when turned one way and anther when turned the opposite way).</I>
+<P><B>e0</B> <B>5e</B> (Power Off),
+<B>e0</B> <B>5f</B> (Sleep),
+<B>e0</B> <B>63</B> (Resume),
+<B>e0</B> <B>2e</B> (Help),
+<B>e0</B> <B>20</B> (My Favourite),
+<B>e0</B> <B>30</B> (Browser),
+<B>e0</B> <B>32</B> (WWW Search),
+<B>e0</B> <B>26</B> (Shortcut),
+<B>e0</B> <B>25</B> (Volume Down),
+<B>e0</B> <B>1e</B> (Volume Up),
+<B>e0</B> <B>12</B> (Mute),
+<B>e0</B> <B>22</B> (Previous),
+<B>e0</B> <B>10</B> (Stop),
+<B>e0</B> <B>24</B> (Next),
+<B>e0</B> <B>21</B> (Eject),
+<B>e0</B> <B>19</B> (Play).
+<P>
+<H2><A NAME="ss5.27">5.27 Yahoo! keyboard</A>
+</H2>
+
+<P>Bernhard Polzin &lt;<CODE>B.Polzin@web.de</CODE>&gt; writes:
+<P><I>I have a transparent violet colored "Yahoo!" Keyboard with extra keys
+for Internet and Audio. Unusual scancodes (untranslated/translated):</I>
+<P><B>e0</B> <B>37</B> / <B>e0</B> <B>5e</B> (Power),
+<B>e0</B> <B>3f</B> / <B>e0</B> <B>5f</B> (Sleep),
+<B>e0</B> <B>5e</B> / <B>e0</B> <B>63</B> (Wake),
+<B>e0</B> <B>21</B> / <B>e0</B> <B>2e</B> (Y!),
+<B>e0</B> <B>4b</B> / <B>e0</B> <B>26</B> (Short Cut),
+<B>e0</B> <B>3a</B> / <B>e0</B> <B>32</B> (E-Mail),
+<B>e0</B> <B>23</B> / <B>e0</B> <B>20</B> (My Doc),
+<B>e0</B> <B>32</B> / <B>e0</B> <B>30</B> (WWW),
+<B>e0</B> <B>1c</B> / <B>e0</B> <B>1e</B> (Volume +),
+<B>e0</B> <B>42</B> / <B>e0</B> <B>25</B> (Volume -),
+<B>e0</B> <B>24</B> / <B>e0</B> <B>12</B> (Mute),
+<B>e0</B> <B>15</B> / <B>e0</B> <B>10</B> (Stop),
+<B>e0</B> <B>4e</B> / <B>e0</B> <B>0c</B> (Play/Pause), 
+<B>e0</B> <B>34</B> / <B>e0</B> <B>22</B> (Prev Track),
+<B>e0</B> <B>3d</B> / <B>e0</B> <B>08</B> (Next Track),
+<B>e0</B> <B>4d</B> / <B>e0</B> <B>19</B> (Eject).
+<I>(Volume +), (Volume -), (Prev Track) and (Next Track) are typematic.</I>
+<P>Note that this is very similar to the previous one.
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="yahoo912.jpg">
+</FIGURE>
+<P>
+<H2><A NAME="honeywell"></A> <A NAME="ss5.28">5.28 Honeywell Multimedia Keyboard</A>
+</H2>
+
+<P>Eric Yeo reports that his Honeywell Multimedia Keyboard has the following
+additional keys:
+<B>e0</B> <B>25</B> (Screen saver),
+<B>e0</B> <B>24</B> (Mail),
+<B>e0</B> <B>32</B> (WWW),
+<B>e0</B> <B>10</B> (Game),
+<B>e0</B> <B>26</B> (Calc),
+<B>e0</B> <B>1e</B> (Shortcut 1),
+<B>e0</B> <B>18</B> (Shortcut 2),
+<B>e0</B> <B>12</B> (Prev),
+<B>e0</B> <B>22</B> (Next),
+<B>e0</B> <B>19</B> (Play),
+<B>e0</B> <B>23</B> (Stop),
+<B>e0</B> <B>30</B> (Vol up),
+<B>e0</B> <B>2e</B> (Vol down),
+<B>e0</B> <B>17</B> (Eject),
+<B>e0</B> <B>20</B> (Mute).
+<P>
+<H2><A NAME="ss5.29">5.29 Samsung Ergonomics Keyboard</A>
+</H2>
+
+<P>Miguel Costa reports that his 
+<A HREF="samsung.jpg">Samsung Ergonomics Keyboard</A> has the following additional keys:
+<B>e0</B> <B>2e</B> (Vol down),
+<B>e0</B> <B>30</B> (Vol up),
+<B>e0</B> <B>20</B> (Mute),
+<B>e0</B> <B>18</B> (Eject),
+<B>e0</B> <B>22</B> (PlayPause),
+<B>e0</B> <B>24</B> (Stop),
+<B>e0</B> <B>10</B> (Rewind),
+<B>e0</B> <B>19</B> (Forward),
+<B>e0</B> <B>26</B> (Help),
+<B>e0</B> <B>59</B> (Favorites),
+<B>e0</B> <B>09</B> (Exit),
+<B>e0</B> <B>0a</B> (Address book),
+<B>e0</B> <B>02</B> (Action 1),
+<B>e0</B> <B>03</B> (Action 2),
+<B>e0</B> <B>04</B> (Action 3),
+<B>e0</B> <B>05</B> (Action 4),
+<B>e0</B> <B>06</B> (Action 5),
+<B>e0</B> <B>32</B> (Internet),
+<B>e0</B> <B>6c</B> (Email),
+<B>e0</B> <B>5f</B> (Standby),
+<B>e0</B> <B>5b</B> (Windows left),
+<B>e0</B> <B>5c</B> (Windows right),
+<B>e0</B> <B>5d</B> (Windows task).
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="samsung-s.jpg">
+</FIGURE>
+<P>
+<H2><A NAME="ss5.30">5.30 The "LiteOn MediaTouch Keyboard" type SK-2500</A>
+</H2>
+
+<P>Serge van den Boom reports that his LiteOn MediaTouch Keyboard
+(a Trust "Direct Access Keyboard"), has 18 additional keys:
+<B>e0</B> <B>25</B> (Suspend),
+<B>e0</B> <B>7a</B> (Coffee),
+<B>e0</B> <B>32</B> (WWW),
+<B>e0</B> <B>21</B> (Calculator),
+<B>e0</B> <B>23</B> (Xfer),
+<B>38</B> <B>2a</B> <B>0f</B> <B>8f</B> / <B>8f</B> <B>b8</B>
+<B>aa</B> (Switch window),
+<B>e0</B> <B>17</B> (Close),
+<B>e0</B> <B>10</B> (|&lt;&lt;),
+<B>e0</B> <B>22</B> (>| / []),
+<B>e0</B> <B>24</B> ([]),
+<B>e0</B> <B>19</B> (>>|),
+<B>e0</B> <B>1e</B> (Record),
+<B>e0</B> <B>12</B> (Rewind),
+<B>e0</B> <B>26</B> (Menu/?),
+<B>e0</B> <B>18</B> (Eject),
+<B>e0</B> <B>20</B> (Mute),
+<B>e0</B> <B>30</B> (Volume +),
+<B>e0</B> <B>2e</B> (Volume -).
+Of these, the keys (|&lt;&lt;), (>>|), (Volume +), (Volume -) repeat.
+The others do not, except for the rather special (Switch window)
+key. Upon press it produces the LAlt-down, LShift-down, Tab-down,
+Tab-up sequence; it repeats <B>0f</B>, that is, Tab-down;
+and upon release it produces the Tab-up, LAlt-up, LShift-up sequence.
+<P>
+<FIGURE>
+<EPS FILE="absent">
+<IMG SRC="sk2500.jpg">
+</FIGURE>
+<P>
+<P>
+<H2><A NAME="ss5.31">5.31 The Acer Aspire 1310LC laptop</A>
+</H2>
+
+<P>Pau Aliagas reports that his Acer Aspire 1310LC laptop has 4
+additional keys:
+<B>e0</B> <B>6c</B> (Mail),
+<B>e0</B> <B>32</B> (WWW),
+<B>e0</B> <B>74</B> (P1),
+<B>e0</B> <B>73</B> (P2).
+<P>
+<P>
+<H2><A NAME="ss5.32">5.32 The Emachines eKB-5190(A) keyboard</A>
+</H2>
+
+<P>This keyboard has 18 additional keys, with translated Set 2 scancodes:
+<B>e0</B> <B>1e</B> (Banking),
+<B>e0</B> <B>25</B> (Brokerage),
+<B>e0</B> <B>26</B> (Pay Bills),
+<B>e0</B> <B>24</B> (News),
+<B>e0</B> <B>21</B> (Sports),
+<B>e0</B> <B>22</B> (Travel),
+<B>e0</B> <B>32</B> (Shopping),
+<B>e0</B> <B>23</B> (Tickets),
+<B>e0</B> <B>31</B> (Music),
+<B>e0</B> <B>18</B> (Health),
+<B>e0</B> <B>30</B> (Greetings),
+<B>e0</B> <B>1f</B> (Games),
+<B>e0</B> <B>13</B> (Auctions),
+<B>e0</B> <B>2e</B> (MySite),
+<B>e0</B> <B>20</B> (Telephone),
+<B>e0</B> <B>12</B> (Surf),
+<B>e0</B> <B>19</B> (Search),
+<B>e0</B> <B>10</B> (Vol -),
+<B>e0</B> <B>17</B> (Vol +).
+The respective untranslated Set 3 codes are
+<B>95</B>, <B>9d</B>, <B>9c</B>, <B>94</B>, <B>99</B>,
+<B>93</B>, <B>97</B>, <B>9a</B>, <B>9e</B>, <B>9f</B>,
+<B>91</B>, <B>a3</B>, <B>a2</B>, <B>92</B>, <B>9b</B>,
+<B>96</B>, <B>a0</B>, <B>a1</B>, <B>98</B> (equal to the
+translated Set 3 codes).
+<P>Unusual commands are <B>e4</B> <B>0b</B>, which returns
+<B>bc</B> <B>1c</B> (untranslated <B>06</B> <B>f0</B> <B>5a</B>),
+and <B>e4</B> <B>0c</B>, which returns
+<B>ff</B> (untranslated <B>00</B>),
+and <B>ec</B> <B>0c</B>, which returns <B>06</B> regardless of
+translation. I do not know the meaning or function of these.
+<P>
+<H2><A NAME="ss5.33">5.33 Keyboards with many keys</A>
+</H2>
+
+<P>The current mechanism is unable to handle keyboards with more than
+127 keys. But such keyboards seem to exist. Indeed, I now have a
+<A HREF="#safeway23">Safeway SW23</A> that has 132 keys.
+<P>Mark Hatle &lt;<CODE>fray@kernel.crashing.org</CODE>&gt; wrote:
+<P><I>On some ADB keyboards there are actually 128 distinct keys.
+They use scancodes 0-127.</I>
+<P><I>ADB is Apple Desktop Bus.  The way that ADB works is similar to SCSI but
+on a much slower level.  Specifically there is a communications chip in
+the computer, ADB controller, and the same chip in the keyboard.  The
+keyboard sends the scancode to its internal ADB controller, the internal
+ADB controller then does any key mapping needed (not used under linux
+from my understanding) and passes the data to the computer.</I>
+<P><I>The ADB controller is capable of sending 256 distinct keys, but to my
+knowledge only 128 are sent.  The key 0 is the 'a' and key 127 is the
+"power button".</I>
+<P><I>Also some of the Apple ADB keyboards have special "sound" and "function"
+keys.  These keys (used in MacOS for volume up and down, screen contrast
+changing, etc) also show up on the ADB scancodes.</I>
+<P><I>ADB is used for both m68k and PPC Linux.  The m68k Macintosh port, and
+the PPC - Power Macintosh and CHRP ports.</I>
+<P>and later:
+<P><I>Basically the scancode sequences for ADB are 16 bit. so there can actually
+be 65536 scancodes, currently though only 128 are defined.</I>
+<P>
+<H2><A NAME="ss5.34">5.34 A keyboard treating PrtSc/SysRq like Pause/Break</A>
+</H2>
+
+<P>
+<A NAME="mtek"></A> 
+Mike A. Harris &lt;<CODE>mharris@meteng.on.ca</CODE>&gt;
+reports a keyboard (an "Mtek" keyboard, model "K208")
+where PrtSc/SysRq behaves like Pause/Break and also sends both make
+and break sequences when pressed and nothing when released.
+It does not repeat.
+(Thus, he gets <B>e0</B> <B>2a</B> <B>e0</B> <B>37</B>
+<B>e0</B> <B>b7</B> <B>e0</B> <B>aa</B> for PrtSc press,
+and <B>54</B> <B>d4</B> for SysRq (i.e., Alt+PrtSc).)
+Others have reported the same (for an unspecified type of keyboard).
+<P>
+<HR>
+<A HREF="scancodes-6.html">Next</A>
+<A HREF="scancodes-4.html">Previous</A>
+<A HREF="scancodes.html#toc5">Contents</A>
+</BODY>
+</HTML>