Next Previous Contents

2. Special keyboards

2.1 Cherry G80-0777

According to FreeKEYB/kbdinfo.html this keyboard has five additional keys with scancodes 55 (F11), 56 (F12), 57 (F13), 58 (F14), 59 (F15).

2.2 Amstrad/Schneider PC1512

This keyboard has a Del key on the keypad, and both Del-> and Del<- keys above the Enter key. The Del-> key has scancode 70. There is an additional Enter key with scancode 74. It is possible to connect a mouse and/or joystick to the keyboard, and then these devices also yield scancodes: 77 (joystick button 1), 78 (joystick button 2), 79 (joystick right), 7a (joystick left), 7b (joystick up), 7c (joystick down), 7d (mouse right), 7e (mouse left). The Amstrad keyboard is entirely incompatible with XT and AT keyboards, and can be used only on an Amstrad; conversely, no other keyboard will work on an older Amstrad.

2.3 Focus KeyPro FK-9000 keyboard

Raul D. Miller <rockwell@nova.umd.edu> and Timothy C. Hagman <hagmanti@cps.msu.edu> report:

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.

This keyboard has twelve additional keys, with scancodes 55 (PF1), 6d (PF11), 6f (PF12), 73 (PF2), 74 (PF9), 77 (PF3), 78 (PF4), 79 (PF5), 7a* (PF6), 7b (PF7), 7c (PF8), 7e* (PF10).

The break codes equal the make codes ORed with 0x80, as always, but the Linux kernel eats fa and fe as protocol bytes.

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...

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.

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...

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.

When the keyboard is in calculator mode, the entire numeric keypad (and everything else on the right side) generates no scancodes.

When the keyboard is not in caluclator mode, the %, MC, MR, M-, M+, and Square Root keys all generate 0xff when pressed, 0xff to repeat, and 0xff on release.

The little unlabeled key between the right Ctrl and right Alt generates 56 when hit, repeats that, and then d6 when released, just like a normal key.

2.4 BTC keyboard

This keyboard has one additional key, with escaped scancode e0 6f (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.)

2.5 LK450 keyboard

This keyboard has six additional keys, with escaped scancodes e0 3d (F13), e0 3e (F14), e0 3f (Help), e0 40 (Do), e0 41 (F17), e0 4e (Keypad-minplus).

2.6 OmniKey keyboard

This keyboard has one additional key, with escaped scancode e0 4c (Omni).

2.7 GRiD 2260 keyboard

The GRiD 2260 notebook has a key producing the 6c scancode; I do not know the keycap.

2.8 A Japanese 86/106 keyboard

Barry Yip <g609296@cc.win.or.jp> reports:

This keyboard has two additional keys, with scancodes 73 (\-) and 7d (\|). This kind of keyboard is rather standard in Japan. They are called 106 keyboard. Mine is a notebook so it is 86 keyboard. No specific brand name.

2.9 Trust Ergonomic keyboard

Frank v Waveren <fvw@var.cx> reports: The Trust Ergo Track keyboard has one additional key (`application key'), with escaped scancode e0 68. The keycap is a triangle pointing left.

2.10 Brazilian keyboard

Arnaldo Moura <lumbago@vnet.ibm.com> reports:

This keyboard has two unusual keys, with scancodes 73 (/?) and 7e (Keypad-.).

Also others mention an ABNT keyboard with 73 and 7e keys, mostly because these keys do not function with Windows NT 4.0.

ABNT (Associação Brasileira de Normas Tecnicas) and ABNT2 are Brazilian keyboard layout standards. The plain Brazilian keyboard has 103 keys. I find an ABNT 107 key keyboard announced by gertec. with Suspend / Wake-up / Power power management keys. For enabling these functions, run BIOS setup.

2.11 RC930 keyboard

Torben Fjerdingstad <tfj@olivia.ping.dk> reports:

It's an rc930 keyboard, from Regnecentralen/RC International, Now ICL. This keyboard has four additional keys, with scancodes 59 (A1), 5a (A2), 5b (A3), 5c (A4).

The rc930/rc931 keyboards are not made anymore, because they had a problem with fast typists, writing over 400 chars/minute. Writing 'af<space>', very, very fast, did a PgUp.

2.12 Tandberg Data keyboard

Kjetil Torgrim Homme <kjetilho@ifi.uio.no> reports:

My Tandberg Data keyboard uses the prefix 80 for its numerous (20) extra keys. The 80 scancodes are:

11, 12, 13, 14, 16, 17, 18, 19, 1e, 1f, 20, 21, 22, 23, 25, 26, 2f, 30, 32, 56.

For completeness, the e0 scancodes:

1c, 2a, 35, 37, 47, 48, 49, 4b, 4d, 4f, 50, 51, 52, 53.

The e1 scancode: 1d. As you can see, there is no overlap on this keyboard.

Harald Arnesen <gurre@start.no> gives the keycaps for these for the Tandberg TDV5020 keyboard. All use prefix 80 on both press and release.

Thirteen keys have (Norwegian) text: 11 HJELP (help), 14 STRYK (cut), 16 KOPI (copy), 17 FLYTT (move), 19 JUST (justify), 21 MERK (mark), 22 ANGRE (undo), 23 SKRIV (print), 25 SLUTT (exit), 26 FELT (field), 2f AVSN (paragraph), 30 SETN (sentence), and 32 ORD (word).

Seven keys have symbols: 12 /\/\/\ (insert soft hyphen), 13 [Crossed down-arrow] (move down five lines), 18 >> << (justify left/right), 1e <> >< (justify full/center), 1f |<- (backtab), 20 ->| (tab), and 56 [Back/down arrow] (start new paragraph).

Other keycaps also occur. Those given above were meant for use with the Notis WP word processor.

2.13 A Chinese keyboard

Bruno Haible <haible@ilog.fr> reports: The keyboard has three keys e0 5e (Power), e0 5f (Sleep), e0 63 (WakeUp) in the following positions:


F10 F11 F12 Power Sleep WakeUp
.. Backspace PrtScr ScrLck Pause
.. Return Ins Home PgUp
.. Return Del End PgDn

2.14 Microsoft Natural keyboard

This keyboard has three additional keys, with escaped scancodes e0 5b (LeftWindow), e0 5c (RightWindow), e0 5d (Menu). The kscancodes (see below) are e0 1f, e0 27 and e0 2f, respectively. The USB key codes are usage page 0x07, usage index 227, 231, 101 (decimal), respectively. Microsoft describes 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.

2.15 Microsoft Internet keyboard

In addition to the three extra keys on the Microsoft Natural keyboard, this keyboard has ten keys, with escaped scancodes e0 21 (Calculator), e0 32 (Web/Home), e0 5f (Sleep), e0 65 (Search), e0 66 (Favorites), e0 68 (Stop), e0 69 (Forward), e0 6a (Back), e0 6b (My Computer), e0 6c (Mail). The kscancodes (see below) are e0 2b, e0 3a, e0 3f, e0 10, e0 18, e0 28, e0 30, e0 38, e0 40, e0 48, respectively.

2.16 Microsoft Natural keyboard pro

Marco Melgazzi <marco@techie.com> reports: The Microsoft Natural keyboard pro has 19 additional keys, with escaped scancodes e0 6a (Back), e0 69 (Forward), e0 68 (Stop), e0 67 (Refresh), e0 65 (Search), e0 66 (Favorites), e0 32 (Web/Home), e0 6c (Mail), e0 20 (Mute), e0 2e (Volume -), e0 30 (Volume +), e0 22 (Play/Pause), e0 24 (Stop), e0 10 (Prev Track), e0 19 (Next Track), e0 6d (Media), e0 6b (My Computer), e0 21 (Calculator), e0 5f (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.)

2.17 Logitech Internet keyboard

Jonathan DeBoer <deboer@ugrad.cs.ualberta.ca> reports: This keyboard has 18 unusual keys.

e0 7a (WWW), e0 32 (History), e0 21 (Open URL), e0 23 (Home), 38 2a 0f 8f (key press) 8f b8 aa (key release) (Send To Back) - this sequence simulates Alt+Shift+Tab, but contains two Tab releases, e0 17 (Print), e0 10 (Back), e0 22 (Forward), e0 24 (Stop), e0 19 (Refresh), e0 1e (Search), e0 12 (Find), e0 26 (Add Favourite), e0 18 (Open Favourites), e0 20 (Hot Links), e0 30 (Scroll Up), e0 2e (Scroll Down), e0 25 (Logitech).

Ryan Lortie <desertangel@globalserve.net> 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.

2.18 Compaq Armada laptop keyboard

Christian Gennerat <christian.gennerat@vz.cit.alcatel.fr> 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: 65, 67, 69, 6b.

2.19 Rapid Access keyboard

Dennis Bjorklund <dennisb@cs.chalmers.se> writes:

I have a Rapid Access keyboard with some (14) extra buttons and two more leds then a normal pc keyboard. To activate the extra buttons one has to send the sequence ea 71 to the keyboard. Once that is done the extra keys generate normal e0xx sequences. To turn off the extra keys you send ea 70.

There are 14 keys:

e0 25 (Suspend), e0 26 (Help), e0 32 (Prg 1), e0 17 (Prg 2), e0 30 (Prg 3), e0 2e (Prg 4), e0 19 (Play CD), e0 24 (CD Stop), e0 22 (CD Pause), e0 1e (Vol -), e0 29 (Vol +), e0 23 (Prev song), e0 21 (Next song), e0 12 (Mute).

The Suspend and Mute buttons have extra leds on them. These are controlled by the sequence eb 00 xx where the xx controls the leds. Bit 2 controls the Suspend led and bit 5 controls the Mute led.

2.20 Rapid Access II keyboard

John Elliott <jce@seasip.demon.co.uk> writes:

I have an IBM Rapid Access II keyboard (UK layout), which seems to generate codes that are similar - but not identical - to the Rapid Access keycodes listed above.

Keys:

e0 25 (Green, "Internet"), e0 26 (Blue, "Internet shopping"), e0 32 (Yellow, "IBM Web support"), e0 17 (Purple), e0 30 (Red), e0 2e (Cyan, "Help"), e0 5f (White, "Standby" - has a LED), e0 20 (CD stop), e0 22 (CD play), e0 24 (CD back), e0 12 (CD fwd), e0 21 (Volume D), e0 23 (Volume U), e0 1e (Mute - no LED).

There are also "back" and "forward" keys (one could think of them as "page left" and "page right" :-) ). They generate ALT+left and ALT+right respectively: 38 e0 4b and 38 e0 4d.

2.21 Chicony KBP-8993 keyboard

Matthijs Melchior <mmelchio@xs4all.nl> reports:

The Chicony KBP-8993 keyboard is similar. It has 14 additional keys, enabled by sending ea 71 and disabled by sending ea 70.

These keys generate the following scan codes:

e0 25 (Moon), e0 32 (WWW), e0 30 (DOS), e0 17 (MyDoc), e0 26 (Menu), e0 1e (zzZ), e0 2e (Close), e0 24 (Stop), e0 23 (Back), e0 22 (Play), e0 21 (Forward), e0 20 (Mute), e0 12 (VolDown), e0 19 (VolUp).

The two extra leds, above the Moon key, and next to the zzZ key are manipulated by sending: eb 00 0x, where bit 0 is the Moon led and bit 1 is the zzZ led.

2.22 Logitech Cordless Desktop Pro keyboard

Nick Rusnov <nick@grawk.net> reports:

The special buttons on a Logitech Cordless Desktop Pro keyboard produce the following scancodes:

e0 5f (Moon (sleep)), e0 32 (Homepage), e0 6c (Mail), e0 65 (Search), e0 66 (runningguuy), e0 20 (Mute), e0 2e (VolDown), e0 30 (VolUp), e0 22 (Play/Pause), e0 24 (Stop), e0 10 (Rewind), e0 19 (ff), e0 21 (Logitech).

2.23 Keyboards for HP Kayak and Vectra

Fons Rademakers <Fons.Rademakers@cern.ch> writes:

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.


MsgTTlWWW ? Lck MsgPhnWWWxxxSlp 133134135136137
PhnS3 S4 S5 i <<>||[] >> HP 138139140141142
Mut Mut 143
Vl+ Vl+ 144
VL- VL- 145
Grenoble keyboard ------- Old HPD keyboard -------- key numbers


Key# Scancode Gren. Name HPD name ASCII
133 e0 1e Message/SC1 Message a
134 e0 12 Top Tools Phone e
135 e0 32 Web Browser Internet m
136 e0 17 Reminder Shortcut i
137 e0 25 Lock Suspend k
138 e0 23 Phone/SC2 << h
139 e0 22 ShortCut 3 >|| g
140 e0 24 ShortCut 4 [] j
141 e0 21 ShortCut 5 >> f
142 e0 26 Information Information l
143 e0 20 Mute Mute d
144 e0 30 Volume + Volume + b
145 e0 2e Volume - Volume - c

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: e0 9e for the Message key.

2.24 A keyboard using e0 as ordinary scancode

Benjamin Carter <bcarter@ultra5.cs.umr.edu> reports:

I recently came into possession of a 97-key keyboard with Japanese markings on the keys. (The keys also have the standard qwerty-characters on them, with the exception of some of the meta-keys (there are 3 keys near the Alt keys on either side of the spacebar with only Japanese characters on them so I don't know what they are). In any case, the keyboard sends out scancodes that work for all the main keys (backspace, letters and numbers, enter, shift), but the numeric keypad, Alt keys, and function keys don't work. I have run the board through showkey -s, so I know what scancodes this keyboard sends out. However, the F9 and F10 keys send out 60 and 61, respectively, so their key release events send out e0 and e1, confusing the keyboard driver.

# These are across the top of the keyboard.

58 (F1), 59 (F2), 5a (F3), 5b (F4), 5c (F5), 5d (F6), 5e (F7), 5f (F8), 60 (F9), 61 (F10), 62 (F11), 63 (F12)

76 (Break), 77 (Setup).

# top row

64 (Esc), 02 (1), 03 (2), 04 (3), 05 (4), 06 (5), 07 (6), 08 (7), 09 (8), 0a (9), 0b (0), 0c (-), 0d (=), 29 (`), 0e (Backspace)

# 2nd row

0f (Tab), 10 (Q), 11 (W), 12 (E), 13 (R), 14 (T), 15 (Y), 16 (U), 17 (I), 18 (O), 19 (P), 1a ([), 1b (]), 79 (Del), 6e (Line Feed)

# 3rd row

38 (Ctrl), 1e (A), 1f (S), 20 (D), 21 (F), 22 (G), 23 (H), 24 (J), 25 (K), 26 (L), 27 (;), 28 ('), 75 (\), 1c (Return)

# 4th row

2a (Shift_L), 2c (Z), 2d (X), 2e (C), 2f (V), 30 (B), 31 (N), 32 (M), 33 (,), 34 (.), 35 (/), 3a ((unknown)), 36 (Shift_R)

# bottom row

1d (Caps Lock), 71 (Alt_L), 01 ((unknown)), 39 (Space), 45 ((unknown)), 72 (Alt_R), 46 ((unknown))

# numeric keypad. No "grey" section on the keyboard.

47 (7), 48 (8), 49 (9), 54 (Keypad -), 4b (4), 4c (5), 4d (6), 37 (Keypad +), 4f (1), 50 (2), 51 (3), 4e (Keypad Enter), 52 (0), 78 (Up), 53 (Keypad .), 56 (Left), 55 (Down), 7d (Right), 7e (Keypad ,).

There are more keyboards that do not use e0 as escape code. For example, Paul Schulz <pauls@caemrad.com.au> reports the same for Sun Type 5 Keyboard with PS/2 connector, NCD model N-123NA. A kernel patch is required for such keyboards.

2.25 IBM ThinkPad

George Staikos <staikos@0wned.org> writes:

I have an IBM ThinkPad i1460. It has the IBM EasyLaunch<tm> 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, showkeys 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 55.

2.26 A keyboard

Jon Masters <jonathan@easypenguin.co.uk> writes:

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).

e0 5e (Power Off), e0 5f (Sleep), e0 63 (Resume), e0 2e (Help), e0 20 (My Favourite), e0 30 (Browser), e0 32 (WWW Search), e0 26 (Shortcut), e0 25 (Volume Down), e0 1e (Volume Up), e0 12 (Mute), e0 22 (Previous), e0 10 (Stop), e0 24 (Next), e0 21 (Eject), e0 19 (Play).

2.27 Keyboards with many keys

The current mechanism is unable to handle keyboards with more than 127 keys. But such keyboards seem to exist. (So far, nobody has reported `I have one', but there are several reports saying `I have heard about someone who has one'.)

Mark Hatle <fray@kernel.crashing.org> wrote:

On some ADB keyboards there are actually 128 distinct keys. They use scancodes 0-127.

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.

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".

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.

ADB is used for both m68k and PPC Linux. The m68k Macintosh port, and the PPC - Power Macintosh and CHRP ports.

and later:

Basically the scancode sequences for ADB are 16 bit. so there can actually be 65536 scancodes, currently though only 128 are defined.

2.28 A keyboard treating PrtSc/SysRq like Pause/Break

Mike A. Harris <mharris@meteng.on.ca> 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 e0 2a e0 37 e0 b7 e0 aa for PrtSc press, and 54 d4 for SysRq (i.e., Alt+PrtSc).)


Next Previous Contents