Raul D. Miller <rockwell@nova.umd.edu> and <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.
This keyboard has one additional key, with escaped scancode e0 6f (Macro).
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).
This keyboard has one additional key, with escaped scancode e0 4c (Omni).
The GRiD 2260 notebook has a key producing the 6c scancode; I do not know the keycap.
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.
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.
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.
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.
Three unusual power keys: e0 5e, e0 5f, e0 63.
This keyboard has three additional keys, with escaped scancodes e0 5b (LeftWindow), e0 5c (RightWindow), e0 5d (Menu).
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).
Jonathan DeBoer <deboer@ugrad.cs.ualberta.ca> reports Key-down and key-up scancodes for a Logitech Internet keyboard.
0xe0 0x7a 0xe0 0xfa
0xe0 0x32 0xe0 0xb2
0xe0 0x21 0xe0 0xa1
0xe0 0x23 0xe0 0xa3
0x38 0x2a 0x0f 0x8f 0x8f 0xb8 0xaa
0xe0 0x17 0xe0 0x97
0xe0 0x10 0xe0 0x90
0xe0 0x22 0xe0 0xa2
0xe0 0x24 0xe0 0xa4
0xe0 0x19 0xe0 0x99
0xe0 0x1e 0xe0 0x9e
0xe0 0x12 0xe0 0x92
0xe0 0x26 0xe0 0xa6
0xe0 0x18 0xe0 0x98
0xe0 0x20 0xe0 0xa0
0xe0 0x30 0xe0 0xb0
0xe0 0x2e 0xe0 0xae
0xe0 0x25 0xe0 0xa5
(But I have no keycap information.)
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.
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.
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.