timer: Fix timer calibration logic.
[pintos-anon] / specs / kbd / scancodes-5.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2 <HTML>
3 <HEAD>
4  <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
5  <TITLE>Keyboard scancodes: Special keyboards - MF II keyboards</TITLE>
6  <LINK HREF="scancodes-6.html" REL=next>
7  <LINK HREF="scancodes-4.html" REL=previous>
8  <LINK HREF="scancodes.html#toc5" REL=contents>
9 </HEAD>
10 <BODY>
11 <A HREF="scancodes-6.html">Next</A>
12 <A HREF="scancodes-4.html">Previous</A>
13 <A HREF="scancodes.html#toc5">Contents</A>
14 <HR>
15 <H2><A NAME="s5">5. Special keyboards - MF II keyboards</A></H2>
16
17 <P><I>Next the modern keyboards. (MF stands for MultiFunctional.)
18 The layout has changed: the function keys now form a top row.
19 Function keys F11 and F12 were added. The ten keypad digit keys
20 that served dual purposes (depending on NumLock and Shift)
21 were duplicated so that digits and cursor movements could be
22 produced without help from the Shift or Numlock keys.
23 Also the Alt and Ctrl keys were duplicated.
24 Prefixes</I> <B>e0</B> <I>and</I> <B>e1</B> <I>were introduced
25 to distinguish old and new versions of the same old key.
26 All modern keyboards follow this scheme, but many add a messy
27 collection of "internet buttons" and "CD keys".</I>
28 <P>Let us group keyboards according to manufacturer.
29 <P>
30 <H2><A NAME="ss5.1">5.1 Compaq keyboards</A>
31 </H2>
32
33 <P>
34 <P>
35 <H3><A NAME="armada"></A> Compaq Armada laptop keyboard</H3>
36
37 <P>Christian Gennerat &lt;<CODE>christian.gennerat@vz.cit.alcatel.fr</CODE>&gt; writes:
38 There are 4 extra keys on the Compaq Armada laptops.
39 The four keys are located over the Esc-F1..F12, and are labelled *1-*4.
40 Scancodes: <B>65</B>, <B>67</B>, <B>69</B>, <B>6b</B>.
41 <P>
42 <H3>Compaq Easy Accesss Internet Keyboard</H3>
43
44 <P>Petr Slansky &lt;<CODE>slansky@usa.net</CODE>&gt; writes:
45 <P>Internet buttons:
46 <B>e0</B> <B>13</B> online community button (people icon),
47 <B>e0</B> <B>14</B> online Compaq button (Q icon),
48 <B>e0</B> <B>15</B> online services button (bulb icon),
49 <B>e0</B> <B>1e</B> online e-mail button (envelope icon),
50 <B>e0</B> <B>21</B> online Search button (magnifier icon),
51 <B>e0</B> <B>23</B> online start button (i icon),
52 <B>e0</B> <B>32</B> online commerce button (shopping basket icon),
53 <P><B>e0</B> <B>68</B> Quick Print button (printer icon),
54 <B>e0</B> <B>1f</B> Favorite Application Launch button (racket icon),
55 <P><B>e0</B> <B>5f</B> Sleep button,
56 <P>CD/DVD player buttons:
57 <B>e0</B> <B>22</B> Play/Pause,
58 <B>e0</B> <B>24</B> Stop,
59 <B>e0</B> <B>19</B> Next Track,
60 <B>e0</B> <B>10</B> Previous Track,
61 <B>e0</B> <B>2c</B> Eject,
62 <P>Volume Control buttons:
63 <B>e0</B> <B>30</B> Volume increase (+),
64 <B>e0</B> <B>2e</B> Volume decrease (-),
65 <B>e0</B> <B>20</B> Mute.
66 <P>
67 <FIGURE>
68 <EPS FILE="absent">
69 <IMG SRC="compaq_easy_access.jpg">
70 </FIGURE>
71 <P>
72 <H3>Compaq Eight-Button Easy Access Keyboard</H3>
73
74 <P>A 
75 <A HREF="compaq_unkn.jpg">Compaq keyboard</A> that I have here,
76 has the usual setup (with Windows keys) plus a top row of eight buttons,
77 that produce scancodes
78 <B>e0</B> <B>23</B>,
79 <B>e0</B> <B>1f</B>,
80 <B>e0</B> <B>1a</B>,
81 <B>e0</B> <B>1e</B>,
82 <B>e0</B> <B>13</B>,
83 <B>e0</B> <B>14</B>,
84 <B>e0</B> <B>15</B>,
85 <B>e0</B> <B>1b</B>.
86 These keys do not produce any codes in scan code Set 3.
87 <P>
88 <FIGURE>
89 <EPS FILE="absent">
90 <IMG SRC="compaq_unkn-s.jpg">
91 </FIGURE>
92 <P>
93 <H2><A NAME="ss5.2">5.2 IBM keyboards</A>
94 </H2>
95
96 <P>
97 <H3>IBM Rapid Access keyboard</H3>
98
99 <P>
100 <A NAME="ibmrapidaccess"></A> 
101 (Information from Dennis Bjorklund &lt;<CODE>dennisb@cs.chalmers.se</CODE>&gt;
102 and others.)
103 <P>The IBM Rapid Access keyboard has 14 extra buttons and two more leds
104 than a normal PC keyboard. By default, these buttons do not generate
105 any scancodes. To activate them one has to send the sequence
106 <B>ea</B> <B>71</B> to the keyboard.
107 Once that is done the extra keys generate normal e0xx sequences.
108 To turn off the extra keys you send <B>ea</B> <B>70</B>.
109 <P>These 14 keys send the following scancodes (when activated):
110 <P><B>e0</B> <B>25</B> (Suspend),
111 <B>e0</B> <B>26</B> (Help),
112 <B>e0</B> <B>32</B> (Prg 1),
113 <B>e0</B> <B>17</B> (Prg 2),
114 <B>e0</B> <B>30</B> (Prg 3),
115 <B>e0</B> <B>2e</B> (Prg 4),
116 <B>e0</B> <B>19</B> (Play CD),
117 <B>e0</B> <B>24</B> (CD Stop),
118 <B>e0</B> <B>22</B> (CD Pause),
119 <B>e0</B> <B>1e</B> (Vol -),
120 <B>e0</B> <B>20</B> (Vol +),
121 <B>e0</B> <B>23</B> (Prev song),
122 <B>e0</B> <B>21</B> (Next song),
123 <B>e0</B> <B>12</B> (Mute).
124 <P>
125 <P>The Suspend and Mute buttons have extra LEDs on them.
126 Sending the sequence
127 <B>
128 <A HREF="scancodes-1.html#LEDmanip">eb</A></B> <B>00</B> <B>ff</B>
129 to the keyboard makes all five LEDs lit up for a moment.
130 The sequence <B>eb</B> <B>00</B> <B>04</B> lights the Suspend LED
131 (behind a waning moon).
132 The sequence <B>eb</B> <B>00</B> <B>20</B> makes the Mute LED blink.
133 The sequence <B>eb</B> <B>00</B> <B>80</B> locks the keyboard;
134 if the Mute LED was blinking it now is lit permanently.
135 Sending <B>eb</B> <B>00</B> <B>ff</B> unlocks the keyboard again.
136 <P>The command <B>ec</B> returns <B>0c</B> <B>01</B> (untranslated)
137 which becomes <B>3e</B> <B>43</B> in translated scancode Set 2.
138 (Possibly an ID?)
139 <P>
140 <P>
141 <A NAME="rapidinit"></A> 
142 Dennis Bjorklund writes:
143 <I>Here is the hack I use to send commands to the keyboard. After you have
144 compiled it you can do things like</I> <CODE>send_to_keyboard ea 71</CODE>,
145 <I>but don't run two of these at the exact same moment, and don't send
146 strange codes because the keyboard might lock up.</I>
147 <P><I>My computer runs this at every startup. After that the extra buttons on
148 the rapid access work just fine in XFree86.</I>
149 <BLOCKQUOTE><CODE>
150 <PRE>
151 /* gcc -O2 -s -Wall -osend_to_keyboard main.c */
152 #include &lt;stdlib.h>
153 #include &lt;unistd.h>
154 #include &lt;sys/io.h>
155
156 int main(int argc, char *argv[]) {
157   int i;
158
159   ioperm(0x60, 3, 1);
160
161   for (i = 1; i &lt; argc; i++) {
162     int x = strtol(argv[i], 0, 16);
163
164     usleep(300);
165     outb(x, 0x60);
166   }
167
168   return 0;
169 }
170 </PRE>
171 </CODE></BLOCKQUOTE>
172 <P>
173 <FIGURE>
174 <EPS FILE="absent">
175 <IMG SRC="ibm_rapid_access.jpg">
176 </FIGURE>
177 <P>
178 <H3><A NAME="ibmrapidaccessii"></A> IBM Rapid Access II keyboard</H3>
179
180 <P>
181 <P>This keyboard has a top row of seven color-coded buttons.
182 On the upper right a "wheel" composite button with six parts.
183 Below it a blue button ("mute").
184 Finally, the usual block with four arrow keys has been enlarged
185 by two more keys ("page left" and "page right").
186 <P>Keys:
187 <P><B>e0</B> <B>25</B> (Green, "Internet"),
188 <B>e0</B> <B>26</B> (Blue, "Internet shopping"),
189 <B>e0</B> <B>32</B> (Yellow, "IBM Web support"),
190 <B>e0</B> <B>17</B> (Purple),
191 <B>e0</B> <B>30</B> (Red),
192 <B>e0</B> <B>2e</B> (Cyan, "Help"),
193 <B>e0</B> <B>5f</B> (White, "Standby" - has a LED),
194 <B>e0</B> <B>20</B> (CD stop),
195 <B>e0</B> <B>22</B> (CD play),
196 <B>e0</B> <B>21</B> (Volume D),
197 <B>e0</B> <B>23</B> (Volume U),
198 <B>e0</B> <B>24</B> (CD back),
199 <B>e0</B> <B>12</B> (CD fwd),
200 <B>e0</B> <B>1e</B> (Mute - no LED).
201 <P>(In translated scancode Set 3, these become
202 <B>41</B>, <B>3f</B>, <B>3d</B>, <B>3b</B>, <B>3c</B>,
203 <B>66</B>, <B>--</B>, <B>69</B>, <B>6a</B>, <B>6b</B>,
204 <B>6c</B>, <B>6d</B>, <B>44</B>, <B>68</B>, respectively.)
205 <P>The "back" ("page left") and "forward" ("page right") keys
206 generate ALT+left and ALT+right respectively:
207 <B>38</B> <B>e0</B> <B>4b</B> (release sequence
208 <B>b8</B> <B>e0</B> <B>cb</B>) and
209 <B>38</B> <B>e0</B> <B>4d</B>.
210 <P>The commands <B>ea</B> <B>70</B> and <B>ea</B> <B>71</B>
211 serve to switch off (resp. on) the special keys.
212 (These are on by default, but can be switched off.)
213 However, the white Standby key is always on.
214 <P>The white Standby button has a LED (that is flashed during a reset).
215 It is set by the command
216 <B>
217 <A HREF="scancodes-1.html#LEDmanip">eb</A></B> <B>71</B>
218 and cleared by the command <B>eb</B> <B>70</B>.
219 <P>
220 <P>
221 <FIGURE>
222 <EPS FILE="absent">
223 <IMG SRC="ibm_rapid_access_II.jpg">
224 </FIGURE>
225 <P>
226 <H3>IBM ThinkPad</H3>
227
228 <P>George Staikos &lt;<CODE>staikos@0wned.org</CODE>&gt; writes:
229 <P><I>I have an IBM ThinkPad i1460. It has the IBM EasyLaunch&lt;tm&gt; keys.
230 These are four multicoloured keys up at the top of the keyboard
231 for "Home Page", "Search", "Shop", "Mail".  They dont' seem to create
232 any keyboard events at all.  The keyboard interrupt doesn't trigger,
233 <CODE>showkeys</CODE> doesn't see them do anything, and in DOS, a simple
234 sequence of BIOS calls doesn't see them either.
235 Also, being a laptop, it has an FN key.  This key generates <B>55</B>.</I>
236 <P>
237 <H2><A NAME="ss5.3">5.3 Logitech keyboards</A>
238 </H2>
239
240 <P>
241 <H3><A NAME="logitechinternet"></A> Logitech Internet keyboard</H3>
242
243 <P>Jonathan DeBoer &lt;<CODE>deboer@ugrad.cs.ualberta.ca</CODE>&gt; reports:
244 This keyboard has 18 unusual keys.
245 <P><B>e0</B> <B>7a</B> (WWW),
246 <B>e0</B> <B>32</B> (History),
247 <B>e0</B> <B>21</B> (Open URL),
248 <B>e0</B> <B>23</B> (Home),
249 <B>38</B> <B>2a</B> <B>0f</B> <B>8f</B> (key press)
250 <B>8f</B> <B>b8</B> <B>aa</B> (key release) (Send To Back) -
251 this sequence simulates Alt+Shift+Tab, but contains two Tab releases,
252 <B>e0</B> <B>17</B> (Print),
253 <B>e0</B> <B>10</B> (Back),
254 <B>e0</B> <B>22</B> (Forward),
255 <B>e0</B> <B>24</B> (Stop),
256 <B>e0</B> <B>19</B> (Refresh),
257 <B>e0</B> <B>1e</B> (Search),
258 <B>e0</B> <B>12</B> (Find),
259 <B>e0</B> <B>26</B> (Add Favourite),
260 <B>e0</B> <B>18</B> (Open Favourites),
261 <B>e0</B> <B>20</B> (Hot Links),
262 <B>e0</B> <B>30</B> (Scroll Up),
263 <B>e0</B> <B>2e</B> (Scroll Down),
264 <B>e0</B> <B>25</B> (Logitech).
265 <P>
266 <P>Ryan Lortie &lt;<CODE>desertangel@globalserve.net</CODE>&gt; writes:
267 The "Logitech" key is used as a modifier.
268 In windows, Logitech-Keypad+ increases volume, Logitech-Keypad- decreases.
269 There is a conjoined dual-button key for "scroll".
270 You press the top part to scroll up, the bottom to scroll down.
271 <P>
272 <P>Graham Hay adds: The extra LED is an amber colour, placed above
273 the www key with a recessed line linking them. Sending <B>eb</B> alone
274 turns it on. It will flash on/off about once per second after that.
275 A single <B>ec</B> will turn it off.
276 <P>
277 <FIGURE>
278 <EPS FILE="absent">
279 <IMG SRC="logitech-internet-s.jpg">
280 </FIGURE>
281
282 <A HREF="logitech-internet.jpg">(enlarge)</A><P>
283 <P>
284 <H3>Logitech Cordless Desktop Pro keyboard</H3>
285
286 <P>Nick Rusnov &lt;<CODE>nick@grawk.net</CODE>&gt; reports:
287 <P>The special buttons on a Logitech Cordless Desktop Pro keyboard
288 produce the following scancodes:
289 <P><B>e0</B> <B>5f</B> (Moon (sleep)),
290 <B>e0</B> <B>32</B> (Homepage),
291 <B>e0</B> <B>6c</B> (Mail),
292 <B>e0</B> <B>65</B> (Search),
293 <B>e0</B> <B>66</B> (runningguuy),
294 <B>e0</B> <B>20</B> (Mute),
295 <B>e0</B> <B>2e</B> (VolDown),
296 <B>e0</B> <B>30</B> (VolUp),
297 <B>e0</B> <B>22</B> (Play/Pause),
298 <B>e0</B> <B>24</B> (Stop),
299 <B>e0</B> <B>10</B> (Rewind),
300 <B>e0</B> <B>19</B> (ff),
301 <B>e0</B> <B>21</B> (Logitech).
302 <P>
303 <H3>Logitech Access keyboard</H3>
304
305 <P>Denis Kosygin &lt;<CODE>kosygin@math.princeton.edu</CODE>&gt; reports:
306 <P>In addition to usual 104 keys in the usual PC layout this keyboard
307 has 11 extra keys.  Ten of them produce the following escape scancodes:
308 <B>e0</B> <B>5f</B> (User (moon)),
309 <B>e0</B> <B>6c</B> (E-mail),
310 <B>e0</B> <B>11</B> (Messenger/SMS),
311 <B>e0</B> <B>12</B> (Webcam),
312 <B>e0</B> <B>20</B> (Mute (crossed speaker)),
313 <B>e0</B> <B>30</B> (VolUp (triangle up with + sign in it)),
314 <B>e0</B> <B>2e</B> (VolDown (triangle down with - sign in it)),
315 <B>e0</B> <B>6d</B> (Media),
316 <B>e0</B> <B>32</B> (My Home),
317 <B>e0</B> <B>65</B> (Search).
318 <P>The eleventh key (with keycap "F lock") is a switch between two sets
319 of scancodes for function keys F1-F12.  When "F lock" is pressed, then
320 F1-F12 act as function keys and produce usual keyscans for these keys.  
321 When "F lock" is depressed, F1-F12 generate the following keyscans:
322 <P><B>e0</B> <B>3b</B> (new [F1]),
323 <B>e0</B> <B>3c</B> (reply [F2]),
324 <B>e0</B> <B>3d</B> (forward [F3]),
325 <B>e0</B> <B>3e</B> (send [F4]),
326 <B>e0</B> <B>10</B> (rewind [F5]),
327 <B>e0</B> <B>19</B> (fast forward [F6]),
328 <B>e0</B> <B>22</B> (play/pause [F7]),
329 <B>e0</B> <B>24</B> (stop [F8]),
330 <B>e0</B> <B>43</B> (my com [F9]),
331 <B>e0</B> <B>44</B> (my doc [F10]),
332 <B>e0</B> <B>57</B> (my pic [F11]),
333 <B>e0</B> <B>58</B> (my music [F12]).
334 <P>
335 <FIGURE>
336 <EPS FILE="absent">
337 <IMG SRC="logitech-access.jpg">
338 </FIGURE>
339 <P>
340 <P>
341 <H3>Logitech Cordless Desktop Optical keyboard</H3>
342
343 <P>Stefan reports:
344 <P>The special buttons on a Logitech Cordless Desktop Optical keyboard
345 produce the following scancodes:
346 <P><B>e0</B> <B>69</B> (Go),
347 <B>e0</B> <B>6a</B> (Back),
348 <B>e0</B> <B>5f</B> (Sleep),
349 <B>e0</B> <B>66</B> (Favorites),
350 <B>e0</B> <B>24</B> (SeekBack),
351 <B>e0</B> <B>22</B> (SeekForward),
352 <B>e0</B> <B>01</B> (Media),
353 <B>e0</B> <B>1e</B> (VolUp),
354 <B>e0</B> <B>25</B> (VolDown),
355 <B>e0</B> <B>26</B> (Mute),
356 <B>e0</B> <B>1f</B> (PlayPause),
357 <B>e0</B> <B>17</B> (Stop),
358 <B>e0</B> <B>6c</B> (Email),
359 <B>e0</B> <B>65</B> (Search),
360 <B>e0</B> <B>02</B> (Homepage).
361 <P>Some other keys behave differently.
362 <P>
363 <P>
364 <H2><A NAME="ss5.4">5.4 Microsoft keyboards</A>
365 </H2>
366
367 <P>
368 <P>Some common scancodes found on some Microsoft keyboards.
369 <P>
370 <P>
371 <CENTER><TABLE BORDER><TR><TD>
372 <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>
373 <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>
374 <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>
375 <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>
376 <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>
377 <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>
378 <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>
379 <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>
380 <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>
381 <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>
382 <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>
383 <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>
384 <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>
385 <B>e0&nbsp;6d</B> </TD><TD> Media </TD></TR><TR><TD>
386
387 </TD></TR></TABLE></CENTER>
388 <P>
389 <P>
390 <H3><A NAME="microsoft"></A> Microsoft Natural keyboard</H3>
391
392 <P>This keyboard has three additional keys, with escaped scancodes
393 <B>e0</B> <B>5b</B> (LeftWindow),
394 <B>e0</B> <B>5c</B> (RightWindow),
395 <B>e0</B> <B>5d</B> (Menu).
396 The untranslated Set 2 scancodes (see 
397 <A HREF="scancodes-9.html#scancodesets">below</A>)
398 are <B>e0</B> <B>1f</B>, <B>e0</B> <B>27</B> and
399 <B>e0</B> <B>2f</B>, respectively.
400 The USB key codes are usage page 0x07, usage index 227, 231, 101
401 (decimal), respectively.
402 Microsoft 
403 <A HREF="http://www.microsoft.com/hwdev/download/desinit/scancode.zip">describes</A>
404 the intended use in detail. Both Windows keys are intended to be
405 used as modifier keys, like both shift and control and alt keys.
406 The Menu key may be modified by shift etc.
407 <P>
408 <H3><A NAME="msinternet"></A> Microsoft Internet keyboard</H3>
409
410 <P>In addition to the three extra keys on the Microsoft Natural keyboard,
411 this keyboard has ten keys, with escaped scancodes
412 <B>e0</B> <B>6a</B> (Back),
413 <B>e0</B> <B>69</B> (Forward),
414 <B>e0</B> <B>68</B> (Stop),
415 <B>e0</B> <B>6c</B> (Mail),
416 <B>e0</B> <B>65</B> (Search),
417 <B>e0</B> <B>66</B> (Favorites),
418 <B>e0</B> <B>32</B> (Web/Home),
419 <B>e0</B> <B>6b</B> (My Computer),
420 <B>e0</B> <B>21</B> (Calculator),
421 <B>e0</B> <B>5f</B> (Sleep).
422 The untranslated Set 1 codes are as expected (make codes identical to
423 the above translated Set 2 ones). The translated Set 3 codes are
424 <B>6a</B>, <B>69</B>, <B>68</B>, <B>6c</B>, <B>65</B>,
425 <B>66</B>, <B>97</B>, <B>6b</B>, <B>99</B>, <B>54</B>,
426 respectively.
427 <P>
428 <H3>Microsoft Natural keyboard pro</H3>
429
430 <P>Marco Melgazzi &lt;<CODE>marco@techie.com</CODE>&gt; reports:
431 The Microsoft Natural keyboard pro has 19 additional keys,
432 with escaped scancodes
433 <B>e0</B> <B>6a</B> (Back),
434 <B>e0</B> <B>69</B> (Forward),
435 <B>e0</B> <B>68</B> (Stop),
436 <B>e0</B> <B>67</B> (Refresh),
437 <B>e0</B> <B>65</B> (Search),
438 <B>e0</B> <B>66</B> (Favorites),
439 <B>e0</B> <B>32</B> (Web/Home),
440 <B>e0</B> <B>6c</B> (Mail),
441 <B>e0</B> <B>20</B> (Mute),
442 <B>e0</B> <B>2e</B> (Volume -),
443 <B>e0</B> <B>30</B> (Volume +),
444 <B>e0</B> <B>22</B> (Play/Pause),
445 <B>e0</B> <B>24</B> (Stop),
446 <B>e0</B> <B>10</B> (Prev Track),
447 <B>e0</B> <B>19</B> (Next Track),
448 <B>e0</B> <B>6d</B> (Media),
449 <B>e0</B> <B>6b</B> (My Computer),
450 <B>e0</B> <B>21</B> (Calculator),
451 <B>e0</B> <B>5f</B> (Sleep).
452 (That is, we have the ten extra keys of the Microsoft Internet keyboard,
453 with the same scancodes, and also Refresh, Mute, Volume -, Volume +,
454 Play/Pause, Stop, Prev Track, Next Track, Media.)
455 <P>
456 <H3>Microsoft Natural Multimedia Keyboard</H3>
457
458 <P>Jeremy Brand &lt;<CODE>jeremy@nirvani.net</CODE>&gt; reports:
459 The Microsoft Natural Multimedia Keyboard has 17 additional keys.
460 Scancodes are
461 <P>? (My Documents),
462 <B>e0</B> <B>64</B> (My Pictures),
463 <B>e0</B> <B>3c</B> (My Music),
464 <B>e0</B> <B>20</B> (Mute),
465 <B>e0</B> <B>22</B> (Play/Pause),
466 <B>e0</B> <B>24</B> (Stop),
467 <B>e0</B> <B>30</B> (Volume +),
468 <B>e0</B> <B>2e</B> (Volume -),
469 <B>e0</B> <B>10</B> (|&lt;&lt;),
470 <B>e0</B> <B>19</B> (>>|),
471 <B>e0</B> <B>6d</B> (Media),
472 <B>e0</B> <B>6c</B> (Mail),
473 <B>e0</B> <B>32</B> (Web/Home),
474 <B>e0</B> <B>05</B> (Messenger),
475 <B>e0</B> <B>21</B> (Calculator),
476 <B>e0</B> <B>16</B> (Log Off),
477 <B>e0</B> <B>5f</B> (Sleep).
478 <P>Moreover, the function keys are dual purpose.
479 There is a "function lock" key.
480 By default the function keys are not function keys, they are
481 "Help", "Undo", etc.  You have to press the function lock key
482 and then the function keys act like the usual function keys.
483 In the default state the scancodes are
484 <P><B>e0</B> <B>3b</B> (Help) on F1 key,
485 <B>e0</B> <B>08</B> (Undo) on F2 key,
486 <B>e0</B> <B>07</B> (Redo) on F3 key,
487 ? (New) on F4 key,
488 ? (Open) on F5 key,
489 ? (Close) on F6 key,
490 ? (Replay) on F7 key,
491 <B>e0</B> <B>42</B> (Fwd) on F8 key,
492 <B>e0</B> <B>43</B> (Send) on F9 key,
493 <B>e0</B> <B>23</B> (Spell) on F10 key,
494 <B>e0</B> <B>57</B> (Save) on F11 key,
495 <B>e0</B> <B>58</B> (Print) on F12 key.
496 <P>
497 <P>
498 <H3><A NAME="msoffice"></A> Microsoft Office keyboard</H3>
499
500 <P>Christian Hammond 
501 <A HREF="http://www.chipx86.com/linuxstuff/officekb/wheel.php">reports</A>
502 about the keyboard Scroll Wheel:
503 <I>The following is my interpretation of the results of</I>
504 <CODE>showkey -s</CODE>. <I>I had read that the wheel has 3 speeds,
505 normal, fast, and faster. However, my results show 4.</I>
506 <P>Scroll Up: Normal <B>e0</B> <B>0b</B>,
507 Fast <B>e0</B> <B>11</B>,
508 Faster <B>e0</B> <B>12</B>,
509 Fastest <B>e0</B> <B>1f</B>.
510 <P>Scroll Down: Normal <B>e0</B> <B>8b</B>,
511 Fast <B>e0</B> <B>91</B>,
512 Faster <B>e0</B> <B>92</B>,
513 Fastest <B>e0</B> <B>9f</B>.
514 <P>Wouter van Wijk &lt;<CODE>woutervanwijk@netscape.net</CODE>&gt; reported the scancodes
515 given below.
516 <P>On the left touchpad above the scroll wheel:
517 <B>e0</B> <B>6a</B> (Back),
518 <B>e0</B> <B>69</B> (Forward).
519 On the left touchpad below the scroll wheel:
520 <B>e0</B> <B>17</B> (Cut),
521 <B>e0</B> <B>18</B> (Copy),
522 <B>e0</B> <B>0a</B> (Paste),
523 <B>e0</B> <B>09</B> (Application Left),
524 <B>e0</B> <B>1e</B> (Application Right),
525 <P>Buttons on the top row:
526 No scancode (F Lock),
527 <B>e0</B> <B>13</B> (Word),
528 <B>e0</B> <B>14</B> (Excel),
529 <B>e0</B> <B>32</B> (Web/Home),
530 <B>e0</B> <B>6c</B> (Mail),
531 <B>e0</B> <B>15</B> (Calendar),
532 <B>e0</B> <B>05</B> (Files),
533 <B>e0</B> <B>21</B> (Calculator),
534 <B>e0</B> <B>20</B> (Mute),
535 <B>e0</B> <B>2e</B> (Volume -),
536 <B>e0</B> <B>30</B> (Volume +),
537 <B>e0</B> <B>16</B> (Log Off),
538 <B>e0</B> <B>5f</B> (Sleep).
539 This is the expected code for Sleep. However, there do not seem to be
540 Power and WakeUp keys.
541 <P>The twelve function keys can be in two states. In the default state
542 they produce the (new) codes below. The FLock toggle switches them
543 back to good old function key state.
544 <B>e0</B> <B>3b</B> (Help [F1]),
545 <B>e0</B> <B>3c</B> (Office Home [F2]),
546 <B>e0</B> <B>3d</B> (Task Pane [F3]),
547 <B>e0</B> <B>3e</B> (New [F4]),
548 <B>e0</B> <B>3f</B> (Open [F5]),
549 <B>e0</B> <B>40</B> (Close [F6]),
550 <B>e0</B> <B>41</B> (Reply [F7]),
551 <B>e0</B> <B>42</B> (Fwd [F8]),
552 <B>e0</B> <B>43</B> (Send [F9]),
553 <B>e0</B> <B>23</B> (Spell [F10]),
554 <B>e0</B> <B>57</B> (Save [F11]),
555 <B>e0</B> <B>58</B> (Print [F12]).
556 Note that each of these codes is just the <B>e0</B> variation
557 of the ordinary function key code, except for that for Spell [F10].
558 When the FLock light is off (default) the <B>e0</B>-version
559 is activated.
560 <P>Above the 5-key block with Insert, Home, Delete, PgUp, PgDown:
561 <B>e0</B> <B>08</B> (Undo),
562 <B>e0</B> <B>07</B> (Redo).
563 <P>Above the number pad:
564 <B>59</B> (=),
565 <B>e0</B> <B>4c</B> (( [PrintScreen]),
566 <B>e0</B> <B>64</B> () [ScrollLock]),
567 <B>0e</B> (Backspace),
568 <B>0f</B> (Tab).
569 These are the usual codes for Backspace and Tab but new codes
570 for (, ), =. PrintScreen and ScrollLock have the usual codes.
571 <P>
572 <FIGURE>
573 <EPS FILE="absent">
574 <IMG SRC="ms_office.jpg">
575 </FIGURE>
576
577 See the 
578 <A HREF="http://www.microsoft.com/hardware/keyboard/ok_info.asp">Microsoft ad</A>.
579 <P>
580 <H2><A NAME="ss5.5">5.5 Safeway keyboards</A>
581 </H2>
582
583 <P>
584 <P>
585 <H3>Safeway SW10 keyboard</H3>
586
587 <P>The Safeway SW10 keyboard has the usual keys, including the three
588 Windows keys, and including Power, Sleep, Wake keys
589 (below Delete, End, PageDown) that do not produce scancodes
590 unless the Fn key (above Keypad-Minus) is pressed simultaneously.
591 This Fn key is used together with 11 keys: F1-F7, F11, Power, Sleep, Wake.
592 Fn-F11 disables the keyboard and another Fn-F11 enables it again.
593 Fn-F1/F2/F3/F4/F5/F6/F7 sets the repeat rate
594 (on my keyboard I measured 2.0/4.0/6.7/12/26/32/32 chars/sec respectively).
595 <P>
596 <H3><A NAME="safeway23"></A> Safeway SW23 keyboard</H3>
597
598 <P>The Safeway SW23 keyboard has 132 keys: the usual 104 keys
599 (101 plus three Windows keys), five more keys called Turbo
600 (below Enter, right of RShift), and Power, Sleep, Wake
601 (below Delete, End, PageDown), and Ez (above Keypad-Minus),
602 and 23 buttons in two rows above the row of function keys.
603 By default, the five extra keys do not produce scancodes.
604 (The Ez is a mode toggle. The Turbo key is used to enable
605 the Power, Sleep, Wake keys.)
606 <P>First row of buttons: three Volume buttons:
607 <B>e0</B> <B>58</B> (Mute),
608 <B>e0</B> <B>5a</B> (Vol -),
609 <B>e0</B> <B>70</B> (Vol +),
610 five CD Player buttons:
611 <B>e0</B> <B>59</B> (Prev),
612 <B>e0</B> <B>42</B> (Play),
613 <B>e0</B> <B>69</B> (Next),
614 <B>e0</B> <B>64</B> (Stop),
615 <B>e0</B> <B>71</B> (Eject),
616 two Recorder buttons:
617 <B>e0</B> <B>40</B> (Rew/Play),
618 <B>e0</B> <B>29</B> (Rec/Stop).
619 <P>Second row of buttons:
620 <B>e0</B> <B>23</B> (Sleep),
621 <B>e0</B> <B>7d</B> (Cut),
622 <B>e0</B> <B>7e</B> (Copy),
623 <B>e0</B> <B>7f</B> (Paste),
624 <B>e0</B> <B>20</B> (Rotate),
625 <B>e0</B> <B>43</B> (Close),
626 <B>e0</B> <B>30</B> (My Doc),
627 <B>e0</B> <B>44</B> (DOS),
628 <B>e0</B> <B>79</B> (Game),
629 <B>e0</B> <B>77</B> (WWW),
630 <B>e0</B> <B>6e</B> (Calc),
631 <B>e0</B> <B>3e</B> (X'fer),
632 <B>e0</B> <B>6a</B> (Menu/?).
633 <P>The Ez key does not produce scancodes, but toggles a
634 M/Mode LED, the fourth next to the Num, Caps, Scroll LEDs.
635 When that LED is set, the 17 keypad keys give different
636 scancodes:
637 <B>e0</B> <B>3c</B> (N/Lock),
638 <B>e0</B> <B>7b</B> (/),
639 <B>e0</B> <B>22</B> (*),
640 <B>e0</B> <B>61</B> (-),
641 <B>e0</B> <B>0f</B> (7),
642 <B>e0</B> <B>21</B> (8),
643 <B>e0</B> <B>6b</B> (9),
644 <B>e0</B> <B>3d</B> (+),
645 <B>e0</B> <B>04</B> (4),
646 <B>e0</B> <B>62</B> (5),
647 <B>e0</B> <B>39</B> (6),
648 <B>e0</B> <B>10</B> (1),
649 <B>e0</B> <B>24</B> (2),
650 <B>e0</B> <B>05</B> (3),
651 <B>e0</B> <B>02</B> (0),
652 <B>e0</B> <B>41</B> (.),
653 <B>e0</B> <B>3f</B> (Enter).
654 <P>The Turbo key does not produce scancodes, and neither do
655 Power, Sleep, Wake. However, when Turbo is pressed simultaneously,
656 the Power, Sleep, Wake keys yield <B>e0</B> <B>5e</B>,
657 <B>e0</B> <B>5f</B>, <B>e0</B> <B>63</B> as
658 <A HREF="scancodes-1.html#power">they should</A>.
659 <P>In untranslated scancode mode 3, the multimedia and power keys
660 do not yield any code. In untranslated scancode mode 1 they
661 yield the same code as in untranslated scancode mode 2.
662 (This is a design bug: untranslated scancode mode 1 should be the same
663 as translated scancode mode 2 (see 
664 <A HREF="scancodes-9.html#scancodesets">below</A>),
665 and this is true for the ordinary keys, but fails here for the
666 "multimedia" keys. For example, the keys End and Keypad-Minus
667 (in M/Mode) yield the same <B>e0</B> <B>4f</B> in
668 untranslated scancode mode 1.)
669 <P>Note that some "protocol keycodes" occur here with <B>e0</B> prefix.
670 Indeed, we see <B>e1</B>, <B>ee</B>, <B>f1</B>, <B>fe</B>, <B>ff</B>
671 in the key up sequence for the multimedia keys Keypad-Minus
672 (<B>e0</B> <B>e1</B>), Calc (<B>e0</B> <B>ee</B>),
673 Eject (<B>e0</B> <B>f1</B>), Copy (<B>e0</B> <B>fe</B>),
674 Paste (<B>e0</B> <B>ff</B>).
675 <P>
676 <H2><A NAME="ss5.6">5.6 Internet Wireless Keyboard</A>
677 </H2>
678
679 <P>This keyboard (nameless, made in China) has 9+1+9 buttons,
680 nine on each side of the Sleep button.
681 Buttons:
682 <B>e0</B> <B>6a</B> (Web Backward),
683 <B>e0</B> <B>69</B> (Web Forward),
684 <B>e0</B> <B>68</B> (Web Stop),
685 <B>e0</B> <B>67</B> (Web Refresh),
686 <B>e0</B> <B>65</B> (Web Search),
687 <B>e0</B> <B>66</B> (Web Favorites),
688 <B>e0</B> <B>32</B> (Web Home),
689 <B>e0</B> <B>6c</B> (E-mail),
690 <B>e0</B> <B>20</B> (Mute),
691 <B>e0</B> <B>5f</B> (Sleep),
692 <B>e0</B> <B>2e</B> (Volume Down),
693 <B>e0</B> <B>30</B> (Volume Up),
694 <B>e0</B> <B>22</B> (Play/Pause),
695 <B>e0</B> <B>24</B> (Stop),
696 <B>e0</B> <B>10</B> (Fast Backward),
697 <B>e0</B> <B>19</B> (Fast Forward),
698 <B>e0</B> <B>6d</B> (Media Player),
699 <B>e0</B> <B>6b</B> (My Computer),
700 <B>e0</B> <B>21</B> (Calculator).
701 <P>This keyboard reports 
702 <A HREF="scancodes-9.html#keyboardid">keyboard ID</A>
703 <B>ab</B> <B>83</B> (translated <B>ab</B> <B>c1</B>).
704 Scancode sets 1 and 2 are reported as <B>01</B> and <B>02</B>
705 (translated <B>c3</B> and <B>c1</B>).
706 These translations are bugs, but otherwise all seems to function
707 as expected, except that this keyboard does not recognize
708 scancode set 3 and returns <B>fe</B> for an attempt to set Set 3.
709 Every command <B>ed</B> <B>xx</B> is accepted, but there are no LEDs,
710 there is only a battery indicator.
711 <P>The mouse that accompanies the keyboard shows no reactions.
712 It may need a special driver.
713 <P>
714 <H2><A NAME="nokia"></A> <A NAME="ss5.7">5.7 Nokia keyboard</A>
715 </H2>
716
717 <P>This 121-key 
718 <A HREF="nokia.jpg">Nokia keyboard</A>
719 has ten function keys on the left and twenty-four on
720 the two top rows. On the right a block with cursor keys
721 and a block with numeric keys. There are three LEDs.
722 The keys have brown markings, and sometimes also blue ones.
723 Where both occur, the blue markings describe the usual PC keytops.
724 <P>Roughly speaking, the scancodes are as expected.
725 The 
726 <A HREF="nokia-top.jpg">function keys</A> F1-F10,F11,F12
727 have scan codes <B>3b</B>-<B>44</B>, <B>57</B>, <B>58</B> as usual.
728 The keys on the upper row, labeled F13-F24, yield the same codes as
729 shifted F1-F12. E.g., F13 gives <B>2a</B> <B>3b</B> on press,
730 and <B>bb</B> <B>aa</B> on release.
731 The function keys F4,F11,F13-F19,F21,F24 have front labels
732 CrSel, AltCr, Red, Pink, Green, Yellow, Blue, Turq, White,
733 Col, USM.
734 <P>The 
735 <A HREF="nokia-left.jpg">ten keys on the left</A>
736 have the following scancodes.
737 First column of five:
738 <B>01</B> (Attn/Esc/NxtTsk), as expected for Esc;
739 <B>1d 3b</B> (Quit/Reset), as expected for Ctrl F1;
740 <B>1d 3c</B> (ExSel), as expected for Ctrl F2;
741 <B>1d 3d</B> (Ident/Print), as expected for Ctrl F3;
742 <B>1d 3e</B> (Help/EnlW), as expected for Ctrl F4.
743 For these last four keys (and the ChgSc/WSCtrl below) the code
744 becomes <B>3b</B>-<B>3e</B> (and <B>3f</B>) when left or right
745 Ctrl is pressed already.
746 Second column of five:
747 <B>e1 1d 45</B> ((Break)/Clear/Pause/Test), and <B>e0 46</B>
748 with Ctrl, as expected for Pause/Break;
749 <B>46</B> (ScrLock), as expected for ScrLock;
750 <B>e0 2a e0 37</B> (PrtSc/SysRq), and <B>e0 37</B> with
751 left or right Ctrl or left or right Shift, and <B>54</B>
752 with left or right Alt, as expected for PrtSc;
753 <B>1d 3f</B> (ChgSc/WSCtrl), as expected for Ctrl F5;
754 <B>38 e0 49</B> (Jump), as expected for Alt PgUp.
755 <P>On 
756 <A HREF="nokia-right.jpg">the right</A> a cursor key
757 section and a number pad.
758 The cursor key section has the expected block of six:
759 <B>e0 52</B> (Dup/Insert/PA1);
760 <B>e0 47</B> (Field Mark/Home/PA2);
761 <B>e0 49</B> (PA3/PgUp);
762 <B>e0 53</B> (Delete/DelWd);
763 <B>e0 4f</B> (ErEOF/End/ErInp);
764 <B>e0 51</B> (PgDn).
765 Next four arrow keys:
766 <B>e0 48</B> (Up);
767 <B>e0 4b</B> (Left);
768 <B>e0 4d</B> (Right);
769 <B>e0 50</B> (Down).
770 And in the middle <B>1d 40</B> (Home), with code as expected for Ctrl F6.
771 <P>Finally the numeric keypad, with the usual keys that generate the
772 usual codes, and a single additional key, a Tab, with <B>0f</B>
773 like the ordinary tab.
774 <P>
775 <FIGURE>
776 <EPS FILE="absent">
777 <IMG SRC="nokia-s.jpg">
778 </FIGURE>
779 <P>
780 <H2><A NAME="focus"></A> <A NAME="ss5.8">5.8 Focus KeyPro FK-9000 keyboard</A>
781 </H2>
782
783 <P>Raul D. Miller &lt;<CODE>rockwell@nova.umd.edu</CODE>&gt;
784 and Timothy C. Hagman &lt;<CODE>hagmanti@cps.msu.edu</CODE>&gt;
785 report:
786 <P><I>The keyboard is a KeyPro FK-9000.  The FCC label says it's made in
787 Taiwan by Focus Electronic Co, Ltd.  It has a built-in calculator.</I>
788 <P><I>This keyboard has twelve additional keys, with scancodes</I>
789 <B>55</B> (PF1),
790 <B>6d</B> (PF11),
791 <B>6f</B> (PF12),
792 <B>73</B> (PF2),
793 <B>74</B> (PF9),
794 <B>77</B> (PF3),
795 <B>78</B> (PF4),
796 <B>79</B> (PF5),
797 <B>7a</B>* (PF6),
798 <B>7b</B> (PF7),
799 <B>7c</B> (PF8),
800 <B>7e</B>* (PF10).
801 <P><I>The break codes equal the make codes ORed with 0x80, as always,
802 but the Linux kernel eats <B>fa</B> and <B>fe</B> as
803 protocol bytes.</I>
804 <P><I>The behavior of these keys is different from that of normal keys--
805 they generate nothing when pressed; then generate the above scancodes
806 at the normal repeat time and rate, and then generate (except for the
807 starred ones) their scancode ORed with 0x80 when released...</I>
808 <P><I>These PF keys are reprogrammable -- and programming occurs as a sequence
809 of keyboard actions.  Therefore, the PF keys duplicate whatever
810 keyboard actions occurred during their programming.
811 You hit the "Prog" key, then the PF key you want to program; type the
812 string you want to store in the key (it's limited to 14 keypresses),
813 and then hit the PF key again. After that, when you hit the PF key,
814 it sends the string, and generates its own abnormal scancode upon
815 release. When the key is held down, it generates the scancode repeatedly,
816 but does not generate the string stored in it repeatedly.</I>
817 <P><I>When you go to program a key, the scancodes for "PF##-" are sent
818 to the computer, then the scancodes for each key you hit as you
819 hit it (the shift, etc. keys are an exception-- they send "s-"
820 and such :), and then, when you hit the PF## key again to end the
821 programming, it sends a sequence of (at least) 18 "0e 8e"s --
822 Backspaces...</I>
823 <P><I>The program key itself doesn't generate a scancode at any time.
824 The same applies to the CE and AC/ON keys (part of the calculator).
825 There is a switch to change between calculator and keyboard mode
826 which generates no scancodes.</I>
827 <P><I>When the keyboard is in calculator mode, the entire numeric
828 keypad (and everything else on the right side) generates no
829 scancodes.</I>
830 <P><I>When the keyboard is not in caluclator mode, the %, MC, MR, M-,
831 M+, and Square Root keys all generate <B>ff</B> when pressed,
832 <B>ff</B> to repeat, and <B>ff</B> on release.</I>
833 <P><I>The little unlabeled key between the right Ctrl and right Alt
834 generates <B>56</B> when hit, repeats that, and then <B>d6</B>
835 when released, just like a normal key.</I>
836 <P>
837 <P>
838 <H2><A NAME="BTC"></A> <A NAME="ss5.9">5.9 BTC keyboard</A>
839 </H2>
840
841 <P>This keyboard has one additional key, with escaped scancode
842 <B>e0</B> <B>6f</B> (Macro). (Funny enough it does this
843 in all modes, each of the three scancode sets, translated or not.
844 In particular, this Macro key is the only key that generates
845 two bytes in scancode mode 3.)
846 <P>
847 <H2><A NAME="ss5.10">5.10 LK411 and LK450 keyboards</A>
848 </H2>
849
850 <P>These keyboards have seven additional keys, with escaped scancodes
851 <B>e0</B> <B>0f</B> (LeftCompose),
852 <B>e0</B> <B>3d</B> (F13),
853 <B>e0</B> <B>3e</B> (F14),
854 <B>e0</B> <B>3f</B> (Help),
855 <B>e0</B> <B>40</B> (Do),
856 <B>e0</B> <B>41</B> (F17),
857 <B>e0</B> <B>4e</B> (Keypad-minplus).
858 (LK411 has all seven. LK450 has the last six - the report did not
859 mention a Compose key.)
860 There are only two LEDs. The keycaps are unusual.
861 <P>In (translated) scancode Set 3 these keys give codes
862 <B>68</B>, <B>44</B>, <B>42</B>, <B>40</B>,
863 <B>3e</B>, <B>65</B>, <B>70</B>.
864 In untranslated Set 2, the F17 key gives <B>e0</B> <B>83</B>.
865 <P>An 
866 <A HREF="lk411.jpg">LK411 keyboard</A>,
867 with 
868 <A HREF="lk411-left.jpg">left</A>
869 and 
870 <A HREF="lk411-right.jpg">right</A> hand side enlarged.
871 <P>The keys labeled F18, F19, F20 produce the codes expected for
872 PrtSc, ScrollLock, Pause.
873 The keys labelled PF1, PF2, PF3, PF4 produce the codes expected for
874 NumLock, Keypad-/, Keypad-*, Keypad--.
875 The Keypad-, key produces the code <B>4e</B> expected for Keypad-+.
876 The Right ComposeCharacter key produces the code expected for RCtrl.
877 The key labelled &lt;/&gt; produces the code <B>29</B>
878 expected for `/~. The key labelled with `/~/(Esc) produces
879 the code expected for Esc.
880 <P>
881 <FIGURE>
882 <EPS FILE="absent">
883 <IMG SRC="lk411-s.jpg">
884 </FIGURE>
885 <P>
886 <H2><A NAME="omnikey"></A> <A NAME="ss5.11">5.11 An OmniKey keyboard</A>
887 </H2>
888
889 <P>This keyboard has one additional key, with escaped scancode
890 <B>e0</B> <B>4c</B> (Omni).
891 <P>For the Northgate OmniKey 101 keyboard it is said that the command
892 <B>e8</B> reads a 2-byte ID.
893 <P>
894 <H2><A NAME="ss5.12">5.12 GRiD 2260 keyboard</A>
895 </H2>
896
897 <P>The GRiD 2260 notebook has a key producing the
898 <B>6c</B> scancode; I do not know the keycap.
899 <P>
900 <H2><A NAME="ss5.13">5.13 An old Olivetti keyboard</A>
901 </H2>
902
903 <P>Kasper Dupont &lt;kasperd@daimi.au.dk&gt; writes:
904 My 10 year old 102-key keyboard that came with an "Olivetti PCS 286"
905 actually has connectors for three additional keys just bellow Delete, End,
906 and PgDn. There is no keys on the connectors, I only found them because I
907 opened the keyboard for cleaning. The scancodes are from left to right
908 <B>65</B>, <B>66</B>, <B>67</B>.
909 <P>
910 <H2><A NAME="cherry81"></A> <A NAME="ss5.14">5.14 Cherry G81-3000</A>
911 </H2>
912
913 <P>According to 
914 <A HREF="http://www.delorie.com/djgpp/doc/rbinter/it/06/0.html">Delorie</A>
915 the "Cherry G81-3000 SAx/04" keyboard has four additional keys,
916 which can be made available by a user modification;
917 the three new keys located directly below the cursor pad's
918 Delete, End, and PgDn keys send make codes <B>66</B>-<B>68</B> (F19-F21);
919 the fourth new key, labeled (delta), sends make code <B>73</B>.
920 <P>
921 <H2><A NAME="ss5.15">5.15 Accord keyboard</A>
922 </H2>
923
924 <P>According to 
925 <A HREF="http://www.delorie.com/djgpp/doc/rbinter/it/06/0.html">Delorie</A>
926 the "Accord" 
927 <A HREF="http://www.ergonomics.co.uk/products/input/keyb7300.jpg">ergonomic keyboard</A>
928 with optional touchpad has an additional key above the Grey-Minus key
929 marked with a left-pointing triangle and labeled "Fn" in the owner's
930 booklet which sends make code <B>e0 68</B>.        
931 <P>
932 <H2><A NAME="ss5.16">5.16 Trust Ergonomic keyboard</A>
933 </H2>
934
935 <P>Frank v Waveren &lt;<CODE>fvw@var.cx</CODE>&gt; reports:
936 The Trust Ergo Track keyboard has one additional key (`application key'), with
937 escaped scancode <B>e0</B> <B>68</B>. The keycap is a triangle pointing left.
938 <P>
939 <H2><A NAME="ss5.17">5.17 Brazilian keyboards</A>
940 </H2>
941
942 <P>ABNT (Associação Brasileira de Normas Tecnicas) and ABNT2
943 are Brazilian keyboard layout standards. The plain Brazilian
944 keyboard has 103 keys.
945 <P>The Brazilian ABNT keyboard has two unusual keys,
946 with scancodes <B>73</B> (/?) and <B>7e</B> (Keypad-.).
947 The former is located to the left of the RShift (which
948 key therefore is less wide than usually), the latter below
949 the Keypad-Plus (reducing the Keypad-Plus to single height).
950 <P>Under Linux, the corresponding key codes are 89 and 121, respectively.
951 These keys do not function with Windows NT 4.0.
952 <P>Antonio Dias &lt;<CODE>accdias@sst.com.br</CODE>&gt; provided the
953 <A HREF="abnt-keypad.html">keypad layout</A>
954 and writes: <I>Brazilian ABNT2 keyboards come with two layouts.
955 In MSDOS they call them ID 274 and ID 275.</I>
956 <P>
957 <H2><A NAME="RC930"></A> <A NAME="ss5.18">5.18 RC930 keyboard</A>
958 </H2>
959
960 <P>Torben Fjerdingstad &lt;<CODE>tfj@olivia.ping.dk</CODE>&gt; reports:
961 <P><I>It's an rc930 keyboard, from Regnecentralen/RC International, Now ICL.
962 This keyboard has four additional keys, with scancodes</I>
963 <B>59</B> (A1),
964 <B>5a</B> (A2),
965 <B>5b</B> (A3),
966 <B>5c</B> (A4).
967 <P><I>The rc930/rc931 keyboards are not made anymore, because they had a
968 problem with fast typists, writing over 400 chars/minute.
969 Writing 'af&lt;space&gt;', very, very fast, did a PgUp.</I>
970 <P>
971 <H2><A NAME="prefix_80"></A> <A NAME="ss5.19">5.19 Tandberg Data keyboard</A>
972 </H2>
973
974 <P>Kjetil Torgrim Homme &lt;<CODE>kjetilho@ifi.uio.no</CODE>&gt; reports:
975 <P><I>My Tandberg Data keyboard uses the prefix <B>80</B> for
976 its numerous (20) extra keys. The <B>80</B> scancodes are:</I>
977 <P><B>11</B>, <B>12</B>, <B>13</B>, <B>14</B>, <B>16</B>,
978 <B>17</B>, <B>18</B>, <B>19</B>, <B>1e</B>, <B>1f</B>,
979 <B>20</B>, <B>21</B>, <B>22</B>, <B>23</B>, <B>25</B>,
980 <B>26</B>, <B>2f</B>, <B>30</B>, <B>32</B>, <B>56</B>.
981 <P><I>For completeness, the <B>e0</B> scancodes:</I>
982 <P><B>1c</B>, <B>2a</B>, <B>35</B>, <B>37</B>, <B>47</B>,
983 <B>48</B>, <B>49</B>, <B>4b</B>, <B>4d</B>, <B>4f</B>,
984 <B>50</B>, <B>51</B>, <B>52</B>, <B>53</B>.
985 <P><I>The <B>e1</B> scancode: <B>1d</B>.
986 As you can see, there is no overlap on this keyboard.</I>
987 <P>Harald Arnesen &lt;<CODE>gurre@start.no</CODE>&gt; gives the keycaps
988 for these for the Tandberg TDV5020 keyboard.
989 All use prefix <B>80</B> on both press and release.
990 <P>Thirteen keys have (Norwegian) text:
991 <B>11</B> HJELP (help), <B>14</B> STRYK (cut),
992 <B>16</B> KOPI (copy), <B>17</B> FLYTT (move),
993 <B>19</B> JUST (justify), <B>21</B> MERK (mark),
994 <B>22</B> ANGRE (undo), <B>23</B> SKRIV (print),
995 <B>25</B> SLUTT (exit), <B>26</B> FELT (field),
996 <B>2f</B> AVSN (paragraph), <B>30</B> SETN (sentence),
997 and <B>32</B> ORD (word).
998 <P>Seven keys have symbols: <B>12</B> /\/\/\ (insert soft hyphen),
999 <B>13</B> [Crossed down-arrow] (move down five lines),
1000 <B>18</B> &gt;&gt; &lt;&lt; (justify left/right),
1001 <B>1e</B> &lt;&gt; &gt;&lt; (justify full/center),
1002 <B>1f</B> |&lt;- (backtab),
1003 <B>20</B> -&gt;| (tab), and
1004 <B>56</B> [Back/down arrow] (start new paragraph).
1005 <P>Other keycaps also occur. Those given above were meant
1006 for use with the Notis WP word processor.
1007 <P>
1008 <H2><A NAME="ss5.20">5.20 Host Connected keyboard</A>
1009 </H2>
1010
1011 <P>IBM makes the "Host Connected Keyboard" for PS/2 machines used as
1012 3270 emulators.
1013 <A HREF="http://www.delorie.com/djgpp/doc/rbinter/it/06/0.html">Delorie</A>
1014 reports on the 122-key "Host Connected" keyboard.
1015 It may have <B>5b</B> (F13), <B>5c</B> (F14), <B>5d</B> (F15),
1016 <B>63</B> (F16), <B>64</B> (F17), <B>65</B> (F18),
1017 <B>66</B> (F19), <B>67</B> (F20), <B>68</B> (F21),
1018 <B>69</B> (F22), <B>6a</B> (F23), <B>6b</B> (F24).
1019 <P>
1020 <H2><A NAME="ss5.21">5.21 A nameless USB keyboard</A>
1021 </H2>
1022
1023 <P>This keyboard has four additional keys: Power (rose), Sleep (blue),
1024 WakeUp (green) and FN (yellow).
1025 In legacy mode these keys give the expected keycodes
1026 (<B>e0</B> <B>5e</B>, <B>e0</B> <B>5f</B>, <B>e0</B> <B>63</B>,
1027 and none, respectively), but the interaction is funny.
1028 The four keys act as radiobuttons. Pressing one yields its key down code,
1029 but releasing it does not produce any scancodes. Now pressing another
1030 yields the down code for the other followed by the up code for the
1031 previous one. The FN key follows this pattern, only its scancode sequence
1032 is empty. Thus, pressing it causes the release code for a previous key
1033 to be emitted. Pressing a key a second time gives no reaction: the radiobutton
1034 was down already.
1035 <P>
1036 <H2><A NAME="ss5.22">5.22 Omnibook keyboard</A>
1037 </H2>
1038
1039 <P>
1040 <A NAME="omnibookinit"></A> 
1041 The HP Omnibook XE3 laptop has special multimedia keys (aka OneTouch buttons)
1042 disabled by default. It is enabled by writing 0x59 to port 0x64
1043 and then 0x90 to port 0x60 (as was found by Pavel Mihaylov).
1044 Various kernel patches can be found on the net. See, for example,
1045 <A HREF="http://zurich.ai.mit.edu/pipermail/omnibook/2002-April/001230.html">this one</A>.
1046 <P>Keys (on a GF model):
1047 <P><B>e0</B> <B>32</B> (WWW),
1048 <B>e0</B> <B>6c</B> (Mail),
1049 <B>e0</B> <B>74</B> (Demo),
1050 <B>e0</B> <B>73</B> (Help),
1051 <B>e0</B> <B>10</B> (Previous Track),
1052 <B>e0</B> <B>22</B> (Play / Pause),
1053 <B>e0</B> <B>24</B> (Stop / Eject),
1054 <B>e0</B> <B>19</B> (Next Track),
1055 <B>e0</B> <B>2e</B> (Volume Down),
1056 <B>e0</B> <B>30</B> (Volume Up),
1057 <B>e0</B> <B>20</B> (Mute / Unmute).
1058 <P>
1059 <P>
1060 <P>
1061 <H2><A NAME="EZButton"></A> <A NAME="ss5.23">5.23 EZ Button keyboard</A>
1062 </H2>
1063
1064 <P>Eric Schott &lt;<CODE>eric@morningjoy.com</CODE>&gt; writes:
1065 <P>I have an IBM EZ Button keyboard (US layout), which seems to
1066 generate codes that are similar - but not identical - to the
1067 Rapid Access keycodes listed above.
1068 <P>There are 14 additional keys:
1069 <P><B>e0</B> <B>25</B> ("Power" moon - has an LED),
1070 <B>e0</B> <B>26</B> ("Help"),
1071 <B>e0</B> <B>32</B> ("Internet"),
1072 <B>e0</B> <B>17</B> ("Lotus Word Pro"),
1073 <B>e0</B> <B>30</B> ("Lotus Organizer"),
1074 <B>e0</B> <B>2e</B> ("Aptiva Installer"),
1075 <B>e0</B> <B>19</B> ("Delete Message"),
1076 <B>e0</B> <B>24</B> (Stop),
1077 <B>e0</B> <B>22</B> (Pause),
1078 <B>e0</B> <B>1e</B> ("Msg" - has an LED),
1079 <B>e0</B> <B>20</B> ("CD" - has an LED),
1080 <B>e0</B> <B>23</B> (Rewind),
1081 <B>e0</B> <B>21</B> (Fast Forward), and
1082 <B>e0</B> <B>12</B> ("Talk" - has an LED).
1083 <P>
1084 <P>The LEDs in the buttons are controlled by the sequence
1085 <B>
1086 <A HREF="scancodes-1.html#LEDmanip">eb</A></B> <B>00</B> <B>xx</B>
1087 where the <B>xx</B> controls the LEDs. Bit 0 controls the "Msg" LED,
1088 1 the CD LED, 2 the Power LED, 4 the Talk LED, and 5 the Message
1089 Waiting LED.
1090 <P>
1091 <P>
1092 <H2><A NAME="chicony"></A> <A NAME="ss5.24">5.24 Chicony KBP-8993 keyboard</A>
1093 </H2>
1094
1095 <P>Matthijs Melchior &lt;<CODE>mmelchio@xs4all.nl</CODE>&gt; reports:
1096 <P>The Chicony KBP-8993 keyboard is similar. It has 14 additional
1097 keys, enabled by sending <B>ea</B> <B>71</B> and disabled
1098 by sending <B>ea</B> <B>70</B>.
1099 <P>These keys generate the following scan codes:
1100 <P><B>e0</B> <B>25</B> (Moon),
1101 <B>e0</B> <B>32</B> (WWW),
1102 <B>e0</B> <B>30</B> (DOS),
1103 <B>e0</B> <B>17</B> (MyDoc),
1104 <B>e0</B> <B>26</B> (Menu),
1105 <B>e0</B> <B>1e</B> (zzZ),
1106 <B>e0</B> <B>2e</B> (Close),
1107 <B>e0</B> <B>24</B> (Stop),
1108 <B>e0</B> <B>23</B> (Back),
1109 <B>e0</B> <B>22</B> (Play),
1110 <B>e0</B> <B>21</B> (Forward),
1111 <B>e0</B> <B>20</B> (Mute),
1112 <B>e0</B> <B>12</B> (VolDown),
1113 <B>e0</B> <B>19</B> (VolUp).
1114 <P>The two extra LEDs, above the Moon key, and next to the zzZ key
1115 are manipulated by sending:
1116 <B>
1117 <A HREF="scancodes-1.html#LEDmanip">eb</A></B> <B>00</B> <B>0x</B>,
1118 where bit 0 is the Moon LED and bit 1 is the zzZ LED.
1119 <P>
1120 <H2><A NAME="ss5.25">5.25 Keyboards for HP Kayak and Vectra</A>
1121 </H2>
1122
1123 <P>Fons Rademakers &lt;<CODE>Fons.Rademakers@cern.ch</CODE>&gt; writes:
1124 <P><I>The electronics for this keyboard was first developed by HP's
1125 Home Products Division (HPD).
1126 They now make improved versions, which I don't know much about.
1127 We (HP Corporate PC Divisions, in Grenoble) reused the electronics,
1128 and changed the serigraphy printed on the keys.</I>
1129 <P>
1130 <CENTER><TABLE BORDER><TR><TD>
1131 </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>
1132 </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>
1133 </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>
1134 </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>
1135 </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>
1136
1137 <CAPTION>Grenoble keyboard ------- Old HPD keyboard -------- key numbers</CAPTION>
1138 </TD></TR></TABLE></CENTER>
1139 <P>
1140 <P>
1141 <CENTER><TABLE BORDER><TR><TD>
1142 </TD><TD> Key# </TD><TD> Scancode </TD><TD> Gren. Name </TD><TD> HPD name </TD><TD> ASCII </TD></TR><TR><TD>
1143 </TD></TR><TR><TD>
1144 </TD><TD> 133 </TD><TD> <B>e0 1e</B> </TD><TD> Message/SC1 </TD><TD> Message </TD><TD> a </TD></TR><TR><TD>
1145 </TD><TD> 134 </TD><TD> <B>e0 12</B> </TD><TD> Top Tools </TD><TD> Phone </TD><TD> e </TD></TR><TR><TD>
1146 </TD><TD> 135 </TD><TD> <B>e0 32</B> </TD><TD> Web Browser </TD><TD> Internet </TD><TD> m </TD></TR><TR><TD>
1147 </TD><TD> 136 </TD><TD> <B>e0 17</B> </TD><TD> Reminder </TD><TD> Shortcut </TD><TD> i </TD></TR><TR><TD>
1148 </TD><TD> 137 </TD><TD> <B>e0 25</B> </TD><TD> Lock </TD><TD> Suspend </TD><TD> k </TD></TR><TR><TD>
1149 </TD><TD> 138 </TD><TD> <B>e0 23</B> </TD><TD> Phone/SC2 </TD><TD> &lt;&lt; </TD><TD> h </TD></TR><TR><TD>
1150 </TD><TD> 139 </TD><TD> <B>e0 22</B> </TD><TD> ShortCut 3 </TD><TD> &gt;|| </TD><TD> g </TD></TR><TR><TD>
1151 </TD><TD> 140 </TD><TD> <B>e0 24</B> </TD><TD> ShortCut 4 </TD><TD> [] </TD><TD> j </TD></TR><TR><TD>
1152 </TD><TD> 141 </TD><TD> <B>e0 21</B> </TD><TD> ShortCut 5 </TD><TD> &gt;&gt; </TD><TD> f </TD></TR><TR><TD>
1153 </TD><TD> 142 </TD><TD> <B>e0 26</B> </TD><TD> Information </TD><TD> Information </TD><TD> l </TD></TR><TR><TD>
1154 </TD><TD> 143 </TD><TD> <B>e0 20</B> </TD><TD> Mute </TD><TD> Mute </TD><TD> d </TD></TR><TR><TD>
1155 </TD><TD> 144 </TD><TD> <B>e0 30</B> </TD><TD> Volume + </TD><TD> Volume + </TD><TD> b </TD></TR><TR><TD>
1156 </TD><TD> 145 </TD><TD> <B>e0 2e</B> </TD><TD> Volume - </TD><TD> Volume - </TD><TD> c </TD></TR><TR><TD>
1157
1158 </TD></TR></TABLE></CENTER>
1159 <P><I>Note the scancodes above are those read by x86 software in port 0x60.
1160 This is also called Scancode Set 1.
1161 Break codes are the same, with bit 7 of the second scancode set.
1162 Example:</I> <B>e0 9e</B> <I>for the Message key.</I>
1163 <P>
1164 <P>&lt;<CODE>spikboll@gmx.net</CODE>&gt; adds:
1165 <I>These keyboards have a "mail LED" (it's positioned above the Message
1166 button) that kan be controlled by the Rapid Access hack:</I>
1167 'send_to_keyboard <B>eb</B>' <I>makes the led blink and</I>
1168 'send_to_keyboard <B>ec</B>' <I>turns the led off.</I>
1169 'send_to_keyboard <B>ed</B>' <I>makes the led light steadily
1170 and locks up the keys.</I>
1171 <P>
1172 <H2><A NAME="ss5.26">5.26 A keyboard</A>
1173 </H2>
1174
1175 <P>Jon Masters &lt;<CODE>jonathan@easypenguin.co.uk</CODE>&gt; writes:
1176 <P><I>My new 121 key keyboard has 105 keys + 16 multimedia keys
1177 (including cool stuff like a volume jog dial that sends one scancode
1178 when turned one way and anther when turned the opposite way).</I>
1179 <P><B>e0</B> <B>5e</B> (Power Off),
1180 <B>e0</B> <B>5f</B> (Sleep),
1181 <B>e0</B> <B>63</B> (Resume),
1182 <B>e0</B> <B>2e</B> (Help),
1183 <B>e0</B> <B>20</B> (My Favourite),
1184 <B>e0</B> <B>30</B> (Browser),
1185 <B>e0</B> <B>32</B> (WWW Search),
1186 <B>e0</B> <B>26</B> (Shortcut),
1187 <B>e0</B> <B>25</B> (Volume Down),
1188 <B>e0</B> <B>1e</B> (Volume Up),
1189 <B>e0</B> <B>12</B> (Mute),
1190 <B>e0</B> <B>22</B> (Previous),
1191 <B>e0</B> <B>10</B> (Stop),
1192 <B>e0</B> <B>24</B> (Next),
1193 <B>e0</B> <B>21</B> (Eject),
1194 <B>e0</B> <B>19</B> (Play).
1195 <P>
1196 <H2><A NAME="ss5.27">5.27 Yahoo! keyboard</A>
1197 </H2>
1198
1199 <P>Bernhard Polzin &lt;<CODE>B.Polzin@web.de</CODE>&gt; writes:
1200 <P><I>I have a transparent violet colored "Yahoo!" Keyboard with extra keys
1201 for Internet and Audio. Unusual scancodes (untranslated/translated):</I>
1202 <P><B>e0</B> <B>37</B> / <B>e0</B> <B>5e</B> (Power),
1203 <B>e0</B> <B>3f</B> / <B>e0</B> <B>5f</B> (Sleep),
1204 <B>e0</B> <B>5e</B> / <B>e0</B> <B>63</B> (Wake),
1205 <B>e0</B> <B>21</B> / <B>e0</B> <B>2e</B> (Y!),
1206 <B>e0</B> <B>4b</B> / <B>e0</B> <B>26</B> (Short Cut),
1207 <B>e0</B> <B>3a</B> / <B>e0</B> <B>32</B> (E-Mail),
1208 <B>e0</B> <B>23</B> / <B>e0</B> <B>20</B> (My Doc),
1209 <B>e0</B> <B>32</B> / <B>e0</B> <B>30</B> (WWW),
1210 <B>e0</B> <B>1c</B> / <B>e0</B> <B>1e</B> (Volume +),
1211 <B>e0</B> <B>42</B> / <B>e0</B> <B>25</B> (Volume -),
1212 <B>e0</B> <B>24</B> / <B>e0</B> <B>12</B> (Mute),
1213 <B>e0</B> <B>15</B> / <B>e0</B> <B>10</B> (Stop),
1214 <B>e0</B> <B>4e</B> / <B>e0</B> <B>0c</B> (Play/Pause), 
1215 <B>e0</B> <B>34</B> / <B>e0</B> <B>22</B> (Prev Track),
1216 <B>e0</B> <B>3d</B> / <B>e0</B> <B>08</B> (Next Track),
1217 <B>e0</B> <B>4d</B> / <B>e0</B> <B>19</B> (Eject).
1218 <I>(Volume +), (Volume -), (Prev Track) and (Next Track) are typematic.</I>
1219 <P>Note that this is very similar to the previous one.
1220 <P>
1221 <FIGURE>
1222 <EPS FILE="absent">
1223 <IMG SRC="yahoo912.jpg">
1224 </FIGURE>
1225 <P>
1226 <H2><A NAME="honeywell"></A> <A NAME="ss5.28">5.28 Honeywell Multimedia Keyboard</A>
1227 </H2>
1228
1229 <P>Eric Yeo reports that his Honeywell Multimedia Keyboard has the following
1230 additional keys:
1231 <B>e0</B> <B>25</B> (Screen saver),
1232 <B>e0</B> <B>24</B> (Mail),
1233 <B>e0</B> <B>32</B> (WWW),
1234 <B>e0</B> <B>10</B> (Game),
1235 <B>e0</B> <B>26</B> (Calc),
1236 <B>e0</B> <B>1e</B> (Shortcut 1),
1237 <B>e0</B> <B>18</B> (Shortcut 2),
1238 <B>e0</B> <B>12</B> (Prev),
1239 <B>e0</B> <B>22</B> (Next),
1240 <B>e0</B> <B>19</B> (Play),
1241 <B>e0</B> <B>23</B> (Stop),
1242 <B>e0</B> <B>30</B> (Vol up),
1243 <B>e0</B> <B>2e</B> (Vol down),
1244 <B>e0</B> <B>17</B> (Eject),
1245 <B>e0</B> <B>20</B> (Mute).
1246 <P>
1247 <H2><A NAME="ss5.29">5.29 Samsung Ergonomics Keyboard</A>
1248 </H2>
1249
1250 <P>Miguel Costa reports that his 
1251 <A HREF="samsung.jpg">Samsung Ergonomics Keyboard</A> has the following additional keys:
1252 <B>e0</B> <B>2e</B> (Vol down),
1253 <B>e0</B> <B>30</B> (Vol up),
1254 <B>e0</B> <B>20</B> (Mute),
1255 <B>e0</B> <B>18</B> (Eject),
1256 <B>e0</B> <B>22</B> (PlayPause),
1257 <B>e0</B> <B>24</B> (Stop),
1258 <B>e0</B> <B>10</B> (Rewind),
1259 <B>e0</B> <B>19</B> (Forward),
1260 <B>e0</B> <B>26</B> (Help),
1261 <B>e0</B> <B>59</B> (Favorites),
1262 <B>e0</B> <B>09</B> (Exit),
1263 <B>e0</B> <B>0a</B> (Address book),
1264 <B>e0</B> <B>02</B> (Action 1),
1265 <B>e0</B> <B>03</B> (Action 2),
1266 <B>e0</B> <B>04</B> (Action 3),
1267 <B>e0</B> <B>05</B> (Action 4),
1268 <B>e0</B> <B>06</B> (Action 5),
1269 <B>e0</B> <B>32</B> (Internet),
1270 <B>e0</B> <B>6c</B> (Email),
1271 <B>e0</B> <B>5f</B> (Standby),
1272 <B>e0</B> <B>5b</B> (Windows left),
1273 <B>e0</B> <B>5c</B> (Windows right),
1274 <B>e0</B> <B>5d</B> (Windows task).
1275 <P>
1276 <FIGURE>
1277 <EPS FILE="absent">
1278 <IMG SRC="samsung-s.jpg">
1279 </FIGURE>
1280 <P>
1281 <H2><A NAME="ss5.30">5.30 The "LiteOn MediaTouch Keyboard" type SK-2500</A>
1282 </H2>
1283
1284 <P>Serge van den Boom reports that his LiteOn MediaTouch Keyboard
1285 (a Trust "Direct Access Keyboard"), has 18 additional keys:
1286 <B>e0</B> <B>25</B> (Suspend),
1287 <B>e0</B> <B>7a</B> (Coffee),
1288 <B>e0</B> <B>32</B> (WWW),
1289 <B>e0</B> <B>21</B> (Calculator),
1290 <B>e0</B> <B>23</B> (Xfer),
1291 <B>38</B> <B>2a</B> <B>0f</B> <B>8f</B> / <B>8f</B> <B>b8</B>
1292 <B>aa</B> (Switch window),
1293 <B>e0</B> <B>17</B> (Close),
1294 <B>e0</B> <B>10</B> (|&lt;&lt;),
1295 <B>e0</B> <B>22</B> (>| / []),
1296 <B>e0</B> <B>24</B> ([]),
1297 <B>e0</B> <B>19</B> (>>|),
1298 <B>e0</B> <B>1e</B> (Record),
1299 <B>e0</B> <B>12</B> (Rewind),
1300 <B>e0</B> <B>26</B> (Menu/?),
1301 <B>e0</B> <B>18</B> (Eject),
1302 <B>e0</B> <B>20</B> (Mute),
1303 <B>e0</B> <B>30</B> (Volume +),
1304 <B>e0</B> <B>2e</B> (Volume -).
1305 Of these, the keys (|&lt;&lt;), (>>|), (Volume +), (Volume -) repeat.
1306 The others do not, except for the rather special (Switch window)
1307 key. Upon press it produces the LAlt-down, LShift-down, Tab-down,
1308 Tab-up sequence; it repeats <B>0f</B>, that is, Tab-down;
1309 and upon release it produces the Tab-up, LAlt-up, LShift-up sequence.
1310 <P>
1311 <FIGURE>
1312 <EPS FILE="absent">
1313 <IMG SRC="sk2500.jpg">
1314 </FIGURE>
1315 <P>
1316 <P>
1317 <H2><A NAME="ss5.31">5.31 The Acer Aspire 1310LC laptop</A>
1318 </H2>
1319
1320 <P>Pau Aliagas reports that his Acer Aspire 1310LC laptop has 4
1321 additional keys:
1322 <B>e0</B> <B>6c</B> (Mail),
1323 <B>e0</B> <B>32</B> (WWW),
1324 <B>e0</B> <B>74</B> (P1),
1325 <B>e0</B> <B>73</B> (P2).
1326 <P>
1327 <P>
1328 <H2><A NAME="ss5.32">5.32 The Emachines eKB-5190(A) keyboard</A>
1329 </H2>
1330
1331 <P>This keyboard has 18 additional keys, with translated Set 2 scancodes:
1332 <B>e0</B> <B>1e</B> (Banking),
1333 <B>e0</B> <B>25</B> (Brokerage),
1334 <B>e0</B> <B>26</B> (Pay Bills),
1335 <B>e0</B> <B>24</B> (News),
1336 <B>e0</B> <B>21</B> (Sports),
1337 <B>e0</B> <B>22</B> (Travel),
1338 <B>e0</B> <B>32</B> (Shopping),
1339 <B>e0</B> <B>23</B> (Tickets),
1340 <B>e0</B> <B>31</B> (Music),
1341 <B>e0</B> <B>18</B> (Health),
1342 <B>e0</B> <B>30</B> (Greetings),
1343 <B>e0</B> <B>1f</B> (Games),
1344 <B>e0</B> <B>13</B> (Auctions),
1345 <B>e0</B> <B>2e</B> (MySite),
1346 <B>e0</B> <B>20</B> (Telephone),
1347 <B>e0</B> <B>12</B> (Surf),
1348 <B>e0</B> <B>19</B> (Search),
1349 <B>e0</B> <B>10</B> (Vol -),
1350 <B>e0</B> <B>17</B> (Vol +).
1351 The respective untranslated Set 3 codes are
1352 <B>95</B>, <B>9d</B>, <B>9c</B>, <B>94</B>, <B>99</B>,
1353 <B>93</B>, <B>97</B>, <B>9a</B>, <B>9e</B>, <B>9f</B>,
1354 <B>91</B>, <B>a3</B>, <B>a2</B>, <B>92</B>, <B>9b</B>,
1355 <B>96</B>, <B>a0</B>, <B>a1</B>, <B>98</B> (equal to the
1356 translated Set 3 codes).
1357 <P>Unusual commands are <B>e4</B> <B>0b</B>, which returns
1358 <B>bc</B> <B>1c</B> (untranslated <B>06</B> <B>f0</B> <B>5a</B>),
1359 and <B>e4</B> <B>0c</B>, which returns
1360 <B>ff</B> (untranslated <B>00</B>),
1361 and <B>ec</B> <B>0c</B>, which returns <B>06</B> regardless of
1362 translation. I do not know the meaning or function of these.
1363 <P>
1364 <H2><A NAME="ss5.33">5.33 Keyboards with many keys</A>
1365 </H2>
1366
1367 <P>The current mechanism is unable to handle keyboards with more than
1368 127 keys. But such keyboards seem to exist. Indeed, I now have a
1369 <A HREF="#safeway23">Safeway SW23</A> that has 132 keys.
1370 <P>Mark Hatle &lt;<CODE>fray@kernel.crashing.org</CODE>&gt; wrote:
1371 <P><I>On some ADB keyboards there are actually 128 distinct keys.
1372 They use scancodes 0-127.</I>
1373 <P><I>ADB is Apple Desktop Bus.  The way that ADB works is similar to SCSI but
1374 on a much slower level.  Specifically there is a communications chip in
1375 the computer, ADB controller, and the same chip in the keyboard.  The
1376 keyboard sends the scancode to its internal ADB controller, the internal
1377 ADB controller then does any key mapping needed (not used under linux
1378 from my understanding) and passes the data to the computer.</I>
1379 <P><I>The ADB controller is capable of sending 256 distinct keys, but to my
1380 knowledge only 128 are sent.  The key 0 is the 'a' and key 127 is the
1381 "power button".</I>
1382 <P><I>Also some of the Apple ADB keyboards have special "sound" and "function"
1383 keys.  These keys (used in MacOS for volume up and down, screen contrast
1384 changing, etc) also show up on the ADB scancodes.</I>
1385 <P><I>ADB is used for both m68k and PPC Linux.  The m68k Macintosh port, and
1386 the PPC - Power Macintosh and CHRP ports.</I>
1387 <P>and later:
1388 <P><I>Basically the scancode sequences for ADB are 16 bit. so there can actually
1389 be 65536 scancodes, currently though only 128 are defined.</I>
1390 <P>
1391 <H2><A NAME="ss5.34">5.34 A keyboard treating PrtSc/SysRq like Pause/Break</A>
1392 </H2>
1393
1394 <P>
1395 <A NAME="mtek"></A> 
1396 Mike A. Harris &lt;<CODE>mharris@meteng.on.ca</CODE>&gt;
1397 reports a keyboard (an "Mtek" keyboard, model "K208")
1398 where PrtSc/SysRq behaves like Pause/Break and also sends both make
1399 and break sequences when pressed and nothing when released.
1400 It does not repeat.
1401 (Thus, he gets <B>e0</B> <B>2a</B> <B>e0</B> <B>37</B>
1402 <B>e0</B> <B>b7</B> <B>e0</B> <B>aa</B> for PrtSc press,
1403 and <B>54</B> <B>d4</B> for SysRq (i.e., Alt+PrtSc).)
1404 Others have reported the same (for an unspecified type of keyboard).
1405 <P>
1406 <HR>
1407 <A HREF="scancodes-6.html">Next</A>
1408 <A HREF="scancodes-4.html">Previous</A>
1409 <A HREF="scancodes.html#toc5">Contents</A>
1410 </BODY>
1411 </HTML>