=== PC/XT scancode list -> author: Andrew Main (Zefram) -> date: 2006-07-11 -> This file gives details of the usage of PC/XT scancodes, arranged by scancode. This is a reference work; it is assumed that the reader already understands scancodes and the host/keyboard protocol. -> Note that the listing is concerned with scancodes, *not* keys per se. A scancode may correspond to a physical key in the normal way, or may instead correspond to a virtual key that has a more complex relationship with the physical keys. All such virtual keys are explained individually. -> Where possible, the information here has been verified by the author by direct experimentation. The data on 101-key keyboards can be taken as authoritative. Other data may be incomplete or contain errors (please mail corrections to the author). Especially questionable data is marked with "???". -> Notation: PC/XT scancodes are given in hexadecimal inside braces. Two-byte scancodes (with a prefix byte) have the two bytes separated by a colon. Key down/up events are represented as the braced scancode followed by a letter "d"/"u". Protocol byte values are given in hexadecimal, unbraced, with a "0x" prefix. -> Most scancodes have more than one meaning (though usually only one meaning per keyboard). All uses of a scancode are listed together, each specifying to which keyboards it applies. "83" refers to the PC/XT 83-key keyboard; "84" the AT 84-key keyboard; "101" the 101-key Enhanced keyboard. "83+" refers to the 83-key, 84-key, and 101-key keyboards and derivatives thereof; "84+" and "101+" work similarly. -> Additional comments on a scancode assignment follow the assignment and are prefixed with "->". Comments on a scancode itself, as opposed to any of its meanings, appear before any assignments. -> Corrections and additions to this list are welcome to be mailed to the author. -> Acknowledgements: the data on extended keyboards comes from the scancode document by Andries Brouwer at . Andreas Schallenberg provided information on the Logitech Access keyboard. === {00} -> equivalent AT scancode: none -> 0x80 is used as a prefix byte by the Tandberg Data TDV5020. === {01} -> equivalent AT scancode: 76 83+: Escape -> location variations: on the 83-key keyboard this is immediately to the left of {02} (character key "1"/"!"). On the 84-key keyboard it is at the top left of the keypad, immediately above {47} (keypad "7"/Home). On the 101-key keyboard and derivatives it is at the top left of the keyboard, on its own. === {02} -> equivalent AT scancode: 16 83+: character key "1"/"!" -> Character keys are defined more by position than by labelling. The labels vary between keyboard layouts without affecting the scancodes. US QWERTY layout labels are given in this file to distinguish the keys, but there's nothing special about that particular layout. === {03} -> equivalent AT scancode: 1e 83+: character key "2"/"@" -> See {02} for notes on character keys. === {04} -> equivalent AT scancode: 26 83+: character key "3"/"#" -> See {02} for notes on character keys. === {05} -> equivalent AT scancode: 25 83+: character key "4"/"$" -> See {02} for notes on character keys. === {06} -> equivalent AT scancode: 2e 83+: character key "5"/"%" -> See {02} for notes on character keys. === {07} -> equivalent AT scancode: 36 83+: character key "6"/"^" -> See {02} for notes on character keys. === {08} -> equivalent AT scancode: 3d 83+: character key "7"/"&" -> See {02} for notes on character keys. === {09} -> equivalent AT scancode: 3e 83+: character key "8"/"*" -> See {02} for notes on character keys. === {0a} -> equivalent AT scancode: 46 83+: character key "9"/"(" -> See {02} for notes on character keys. === {0b} -> equivalent AT scancode: 45 83+: character key "0"/")" -> See {02} for notes on character keys. === {0c} -> equivalent AT scancode: 4e 83+: character key "-"/"_" -> See {02} for notes on character keys. === {0d} -> equivalent AT scancode: 55 83+: character key "="/"+" -> See {02} for notes on character keys. === {0e} -> equivalent AT scancode: 66 83+: Backspace -> location variations: on the 83-key keyboard this key is 1.75 width, with {0d} (character key "="/"+") immediately to its left. On the 84-key keyboard it is single width, with {2b} (character key "\"/"|") immediately to its left. On the 101-key keyboard and derivatives it may be either double width or single width, depending on whether a key (either {2b} or {56}) has been squeezed in between it and {0d}. === {0f} -> equivalent AT scancode: 0d 83+: Tab === {10} -> equivalent AT scancode: 15 83+: character key "q"/"Q" -> See {02} for notes on character keys. === {11} -> equivalent AT scancode: 1d 83+: character key "w"/"W" -> See {02} for notes on character keys. === {12} -> equivalent AT scancode: 24 83+: character key "e"/"E" -> See {02} for notes on character keys. === {13} -> equivalent AT scancode: 2d 83+: character key "r"/"R" -> See {02} for notes on character keys. === {14} -> equivalent AT scancode: 2c 83+: character key "t"/"T" -> See {02} for notes on character keys. === {15} -> equivalent AT scancode: 35 83+: character key "y"/"Y" -> See {02} for notes on character keys. === {16} -> equivalent AT scancode: 3c 83+: character key "u"/"U" -> See {02} for notes on character keys. === {17} -> equivalent AT scancode: 43 83+: character key "i"/"I" -> See {02} for notes on character keys. === {18} -> equivalent AT scancode: 44 83+: character key "o"/"O" -> See {02} for notes on character keys. === {19} -> equivalent AT scancode: 4d 83+: character key "p"/"P" -> See {02} for notes on character keys. === {1a} -> equivalent AT scancode: 54 83+: character key "["/"{" -> See {02} for notes on character keys. === {1b} -> equivalent AT scancode: 5b 83+: character key "]"/"}" -> See {02} for notes on character keys. -> location variations: on the 83-key keyboard this is 1.25 width. On the 84-key and 101-key keyboards and derivatives it is single width. === {1c} -> equivalent AT scancode: 5a 83+: Return (a.k.a. Enter) -> location variations: although (part of) the location of this key is consistent, its size and shape vary depending on where {29} and {2b} are located. -> 84/101 compatibility: {e0:1c} (keypad Enter) had its scancode selected to imitate {1c} to pre-prefix software. === {1d} -> equivalent AT scancode: 14 83, 84: Ctrl 101+: left Ctrl -> 84/101 compatibility: the 101-key keyboard acquired a second Ctrl key, so {1d} became specifically the *left* Ctrl key. {e0:1d} (right Ctrl) and {e1:1d} (fake Ctrl for Break) had their scancodes selected to imitate {1d} to pre-prefix software. -> location variations: on the 83-key and 84-key keyboards this key is 1.75 width, immediately to the left of {1e}. On the 101-key keyboard it is 1.5 width, at the bottom left of the main section, immediately below {2a}. Some later keyboards reduce it to 1.25 width to fit more keys on the spacebar row. === {1e} -> equivalent AT scancode: 1c 83+: character key "a"/"A" -> See {02} for notes on character keys. === {1f} -> equivalent AT scancode: 1b 83+: character key "s"/"S" -> See {02} for notes on character keys. === {20} -> equivalent AT scancode: 23 83+: character key "d"/"D" -> See {02} for notes on character keys. === {21} -> equivalent AT scancode: 2b 83+: character key "f"/"F" -> See {02} for notes on character keys. === {22} -> equivalent AT scancode: 34 83+: character key "g"/"G" -> See {02} for notes on character keys. === {23} -> equivalent AT scancode: 33 83+: character key "h"/"H" -> See {02} for notes on character keys. === {24} -> equivalent AT scancode: 3b 83+: character key "j"/"J" -> See {02} for notes on character keys. === {25} -> equivalent AT scancode: 42 83+: character key "k"/"K" -> See {02} for notes on character keys. === {26} -> equivalent AT scancode: 4b 83+: character key "l"/"L" -> See {02} for notes on character keys. === {27} -> equivalent AT scancode: 4c 83+: character key ";"/":" -> See {02} for notes on character keys. === {28} -> equivalent AT scancode: 52 83+: character key "'"/""" -> See {02} for notes on character keys. === {29} -> equivalent AT scancode: 0e 83+: character key "`"/"~" -> See {02} for notes on character keys. -> location variations: on the 83-key keyboard this is located at the right of the third row down, between {28} and {1c}. On the 84-key and 101-key keyboards and derivatives it it is at the top left of the main section, immediately to the left of {02}. JP106: hankaku/zenkaku === {2a} -> equivalent AT scancode: 12 -> 0xaa indicates a successful POST. This is indistinguishable from {2a}u. 83+: left Shift -> location variations: the size of this key varies between keyboards. It is either 1.25 width or 2.25 width, depending on whether a key (either {2b} or {56}) has been squeezed in between it and {2c}. -> 84/101 compatibility: {e0:2a} (fake left Shift for keypad and navigation keys) had its scancode selected to imitate {2a} to pre-prefix software. === {2b} -> equivalent AT scancode: 5d 83+: character key "\"/"|" -> See {02} for notes on character keys. -> location variations: on the 83-key keyboard this key is between {2a} and {2c}. On the 84-key keyboard it is between {0d} and {0e}. On the 101-key keyboard and derivatives, it may be in either of those two places, or to the right of {1b} (where it grows in size to 1.5 width), or between {28} and {1c}. === {2c} -> equivalent AT scancode: 1a 83+: character key "z"/"Z" -> See {02} for notes on character keys. === {2d} -> equivalent AT scancode: 22 83+: character key "x"/"X" -> See {02} for notes on character keys. === {2e} -> equivalent AT scancode: 21 83+: character key "c"/"C" -> See {02} for notes on character keys. === {2f} -> equivalent AT scancode: 2a 83+: character key "v"/"V" -> See {02} for notes on character keys. === {30} -> equivalent AT scancode: 32 83+: character key "b"/"B" -> See {02} for notes on character keys. === {31} -> equivalent AT scancode: 31 83+: character key "n"/"N" -> See {02} for notes on character keys. === {32} -> equivalent AT scancode: 3a 83+: character key "m"/"M" -> See {02} for notes on character keys. === {33} -> equivalent AT scancode: 41 83+: character key ","/"<" -> See {02} for notes on character keys. === {34} -> equivalent AT scancode: 49 83+: character key "."/">" -> See {02} for notes on character keys. === {35} -> equivalent AT scancode: 4a 83+: character key "/"/"?" -> See {02} for notes on character keys. -> 84/101 compatibility: {e0:35} (keypad "/") had its scancode selected to imitate {35} to pre-prefix software. === {36} -> equivalent AT scancode: 59 83+: right Shift -> location variations: on the 83-key keyboard this key is 1.5 width. On the 84-key and 101-key keyboards and derivatives it is 2.75 width. -> 84/101 compatibility: {e0:36} (fake right Shift for keypad and navigation keys) had its scancode selected to imitate {36} to pre-prefix software. === {37} -> equivalent AT scancode: 7c 83, 84: keypad "*"/Print Screen 101+: keypad "*" -> 84/101 compatibility: on the 84-key keyboard, this key invokes the Print Screen feature when modified by Shift or Ctrl. On the 101-key keyboard the Print Screen feature was assigned to the new Print Screen/SysRq key, with the scancode {e0:37} (Print Screen) selected to imitate {37} to pre-prefix software. Curiously, unlike {e0:35} (keypad "/"), no fake Shift events are used to give pre-prefix software the impression that keypad "*" is always pressed unshifted. -> location variations: on the 83-key keyboard this key is immediately below {1c}. On the 84-key keyboard it is immediately to the right of {49}. On the 101-key keyboard and derivatives it is immediately above {49}. === {38} -> equivalent AT scancode: 11 83, 84: Alt 101+: left Alt -> 84/101 compatibility: the 101-key keyboard acquired a second Alt key, so {38} became specifically the *left* Alt key. {e0:38} (right Alt (a.k.a. AltGr)) had its scancode selected to imitate {38} to pre-prefix software. -> location variations: on the 83-key keyboard this is at the bottom left of the main section and is double width. On the 84-key keyboard it is in the same location but is 1.5 width. On the 101-key keyboard and derivatives that location is taken by {1d} and this key is further right, immediately to the left of {39}. === {39} -> equivalent AT scancode: 29 83+: Space -> location variations: this key has been gradually shrinking as new keyboard designs put increasingly many keys to its left and right. === {3a} -> equivalent AT scancode: 58 83+: Caps Lock -> location variations: on the 83-key and 84-key keyboards this is at the bottom right of the main section, immediately below {36}. It is double width on the 83-key keyboard and 1.5 width on the 84-key keyboard. On the 101-key keyboard and derivatives it is at the left side, 1.75 width, with {1e} immediately to its right. === {3b} -> equivalent AT scancode: 05 83+: F1 -> location variations: the ten function keys moved from the left side to the top of the keyboard between the 84-key and 101-key keyboards. === {3c} -> equivalent AT scancode: 06 83+: F2 -> See {3b} for notes on the function keys. === {3d} -> equivalent AT scancode: 04 83+: F3 -> See {3b} for notes on the function keys. === {3e} -> equivalent AT scancode: 0c 83+: F4 -> See {3b} for notes on the function keys. === {3f} -> equivalent AT scancode: 03 83+: F5 -> See {3b} for notes on the function keys. === {40} -> equivalent AT scancode: 0b 83+: F6 -> See {3b} for notes on the function keys. === {41} -> equivalent AT scancode: 83, or occasionally 02 83+: F7 -> See {3b} for notes on the function keys. === {42} -> equivalent AT scancode: 0a 83+: F8 -> See {3b} for notes on the function keys. === {43} -> equivalent AT scancode: 01 83+: F9 -> See {3b} for notes on the function keys. === {44} -> equivalent AT scancode: 09 83+: F10 -> See {3b} for notes on the function keys. === {45} -> equivalent AT scancode: 77 83, 84: Num Lock/Pause 101+: Num Lock, Pause (overloaded scancode) -> 84/101 compatibility: on the 83-key and 84-key keyboards this is a single physical key, which invokes the Pause feature when pressed with Ctrl. On the 101-key keyboard, Num Lock is a single physical key, and Pause is a virtual key, the primary function of the new Pause/Break key. Unfortunately Num Lock and Pause have the same scancode. It looks as though Pause was intended to be {e0:45} but the prefix got dropped. Fortunately, it is possible to disambiguate the two uses by paying attention to {e1:1d} (fake Ctrl). Num Lock generates the {45} scancode in the usual way; curiously, unlike {e0:35} (keypad "/"), no fake Ctrl events are used to give pre-prefix software the impression that Num Lock is always pressed unshifted. If Pause/Break is pressed while Ctrl is not in effect then it generates {45} (Pause) modified by {e1:1d} (fake Ctrl). (If Pause/Break is pressed while Ctrl is in effect then it generates {e0:46}. The Pause/Break key has no scancode of its own.) The Pause/Break key does not repeat or report physical key-up; it generates the sequence {e1:1d}d, {45}d, {e1:1d}u, {45}u when pressed. It generates this sequence regardless of whether {45} (Num Lock) is pressed simultaneously. -> location variations: on the 83-key keyboard the Num Lock/Pause key is double width, immediately above {47} and {48}. On the 84-key keyboard it is single width, immediately above {48}. On the 101-key keyboard and derivatives the Num Lock key is single width, immediately above {47}. Olivetti M24: Funct Lock === {46} -> equivalent AT scancode: 7e 83, 84: Scroll Lock/Break 101+: Scroll Lock -> 84/101 compatibility: On the 84-key keyboard, this key invoked the Break feature when pressed with Ctrl. On the 101-key keyboard, Break moved to the new Pause/Break key, with scancode {e0:46} (Break) selected to imitate {46} to pre-prefix software. Curiously, unlike {e0:35} (keypad "/"), no fake Ctrl events are used to give pre-prefix software the impression that Scroll Lock is always pressed unshifted. -> location variations: on the 83-key keyboard the Scroll Lock/Break key is double width, immediately above {49} and {4a}. On the 84-key keyboard it is single width, immediately above {49}. On the 101-key keyboard and derivatives the Scroll Lock key is single width, in a new group with the Print Screen/SysRq and Pause/Break keys. Olivetti M24: Scroll On === {47} -> equivalent AT scancode: 6c 83+: keypad "7"/Home -> 84/101 compatibility: the pure navigation keys had their scancodes selected to imitate the keypad navigation keys. See {e0:47} for details of their operation. === {48} -> equivalent AT scancode: 75 83+: keypad "8"/Up -> See {47} for notes on the keypad/navigation keys. === {49} -> equivalent AT scancode: 7d 83+: keypad "9"/Page Up -> See {47} for notes on the keypad/navigation keys. === {4a} -> equivalent AT scancode: 7b 83+: keypad "-" -> location variations: on the 83-key keyboard this is immediately to the right of {49}. On the 84-key keyboard it is immediately to the right of {4d}. On the 101-key keyboard and derivatives it is at the top right of the keypad, to the right of {37} and above {e0:1c}. === {4b} -> equivalent AT scancode: 6b 83+: keypad "4"/Left -> See {47} for notes on the keypad/navigation keys. === {4c} -> equivalent AT scancode: 73 83+: keypad "5" -> See {47} for notes on the keypad/navigation keys. === {4d} -> equivalent AT scancode: 74 83+: keypad "6"/Right -> See {47} for notes on the keypad/navigation keys. === {4e} -> equivalent AT scancode: 79 83+: keypad "+" -> location variations: on the 83-key keyboard this key is triple height, and on the 84-key and 101-key keyboards and derivatives it is double height. In each case it is immediately below {4a}, the location of which varies between keyboards. === {4f} -> equivalent AT scancode: 69 83+: keypad "1"/End -> See {47} for notes on the keypad/navigation keys. === {50} -> equivalent AT scancode: 72 83+: keypad "2"/Down -> See {47} for notes on the keypad/navigation keys. === {51} -> equivalent AT scancode: 7a 83+: keypad "3"/Page Down -> See {47} for notes on the keypad/navigation keys. === {52} -> equivalent AT scancode: 70 83+: keypad "0"/Insert -> See {47} for notes on the keypad/navigation keys. -> location variations: on the 83-key keyboard, the right edge of this double width key is aligned with the right edge of {4f}. On the 84-key and 101-key keyboards and derivatives its right edge is aligned with the right edge of {50}. === {53} -> equivalent AT scancode: 71 83+: keypad "."/Delete -> See {47} for notes on the keypad/navigation keys. -> location variations: on the 83-key keyboard this key is double width, immediately below {50} and {51}. On the 84-key and 101-key keyboards and derivatives it is single width, immediately below {51}. === {54} -> equivalent AT scancode: 84, or occasionally 7f 84+: Sys Req -> This is the 84th key, not present on the 83-key keyboard. -> 84/101 compatibility: on the 84-key keyboard this is a real physical key, but on the 101-key keyboard this rarely-used function was assigned to the new Print Screen/SysRq key as its secondary function. If Print Screen/SysRq is pressed while Alt is in effect then it generates {54}. (If Print Screen/SysRq is pressed with Alt not in effect then it instead generates {e0:37} (Print Screen), possibly with a fake left Shift. The Print Screen/SysRq key has no scancode of its own.) Olivetti M24: keypad "00" === {55} -> equivalent AT scancode: 60 Cherry G80-0777: F11 Telerate: F12 IBM ThinkPad: FN Olivetti M24: keypad Scr Prt Focus KeyPro FK-9000: PF1 === {56} -> equivalent AT scancode: 61 Cherry G80-0777: F12 101+: extra character key on international keyboards -> See {02} for notes on character keys. -> location variations: may be located between {28} and {1c}, or between {0d} and {0e}, or sometimes on the spacebar row as a blank key. Olivetti M24: keypad Help === {57} -> equivalent AT scancode: 78 Cherry G80-0777: F13 101+: F11 Olivetti M24: keypad Enter === {58} -> equivalent AT scancode: 07 Cherry G80-0777: F14 101+: F12 Olivetti M24: Left === {59} -> equivalent AT scancode: 0f Microsoft: keypad "=" Cherry G80-0777: F15 Olivetti M24: Down RC930: A1 === {5a} -> equivalent AT scancode: 17 Olivetti M24: Right RC930: A2 === {5b} -> equivalent AT scancode: 1f Olivetti M24: Up/Home RC930: A3 IBM Host Connected Keyboard: F13 === {5c} -> equivalent AT scancode: 27 Olivetti M24: Clear RC930: A4 IBM Host Connected Keyboard: F14 === {5d} -> equivalent AT scancode: 2f Olivetti M24: Break IBM Host Connected Keyboard: F15 === {5e} -> equivalent AT scancode: 37 === {5f} -> equivalent AT scancode: 3f Olivetti M24: keypad "/" === {60} -> equivalent AT scancode: 47 -> 0xe0 is a prefix byte, used for many keys. Olivetti M24: F11 === {61} -> equivalent AT scancode: 4f -> 0xe1 is a prefix byte, used only in {e1:1d} (fake Ctrl for Pause). Olivetti M24: F12 === {62} -> equivalent AT scancode: 56 -> 0xe2 is a prefix byte, used by Logitech for the codes sent by an integrated pointing device. Olivetti M24: F13 === {63} -> equivalent AT scancode: 5e Olivetti M24: F14 IBM Host Connected Keyboard: F16 === {64} -> equivalent AT scancode: 08 Olivetti M24: F15 IBM Host Connected Keyboard: F17 === {65} -> equivalent AT scancode: 10 Olivetti M24: F16 Compaq Armada laptop: *1 Olivetti PCS 286: disconnected key switch immediately below Delete IBM Host Connected Keyboard: F18 === {66} -> equivalent AT scancode: 18 Olivetti M24: F17 Olivetti PCS 286: disconnected key switch immediately below End Cherry G81-3000 SAx/04: F19 IBM Host Connected Keyboard: F19 === {67} -> equivalent AT scancode: 20 Olivetti M24: F18 Compaq Armada laptop: *2 Olivetti PCS 286: disconnected key switch immediately below Page Down Cherry G81-3000 SAx/04: F20 IBM Host Connected Keyboard: F20 === {68} -> equivalent AT scancode: 28 Cherry G81-3000 SAx/04: F21 IBM Host Connected Keyboard: F21 === {69} -> equivalent AT scancode: 30 Compaq Armada laptop: *3 IBM Host Connected Keyboard: F22 === {6a} -> equivalent AT scancode: 38 Logitech Cordless Desktop LX 700 combo: Zoom In IBM Host Connected Keyboard: F23 === {6b} -> equivalent AT scancode: 40 Compaq Armada laptop: *4 Logitech Cordless Desktop LX 700 combo: % IBM Host Connected Keyboard: F24 === {6c} -> equivalent AT scancode: 48 GRiD 2260 notebook: ??? label unknown === {6d} -> equivalent AT scancode: 50 Logitech Cordless Desktop LX 700 combo: Cancel Focus KeyPro FK-9000: PF11 === {6e} -> equivalent AT scancode: 57 === {6f} -> equivalent AT scancode: 6f Focus KeyPro FK-9000: PF12 === {70} -> equivalent AT scancode: 13 JP106: hiragana/katakana -> Located between {79} and {e0:38}. Amstrad/Schneider PC1512: Delete to right === {71} -> equivalent AT scancode: 19 Korean keyboards: Korean/Chinese -> Does not behave as a normal key. The Korean/Chinese key, located between {38} and {39}, generates {71}u when depressed, and does nothing else. {71}d is never generated. === {72} -> equivalent AT scancode: 39 Korean keyboards: Korean/English -> Does not behave as a normal key. The Korean/English key, located between {39} and {e0:38}, generates {72}u when depressed, and does nothing else. {72}d is never generated. === {73} -> equivalent AT scancode: 51 101+: extra character key on some international keyboards -> See {02} for notes on character keys. -> Located between {35} and {36}. Focus KeyPro FK-9000: PF2 Cherry G81-3000 SAx/04: Delta === {74} -> equivalent AT scancode: 53 Amstrad/Schneider PC1512: keypad Enter Focus KeyPro FK-9000: PF9 === {75} -> equivalent AT scancode: 5c === {76} -> equivalent AT scancode: 5f === {77} -> equivalent AT scancode: 62 Amstrad/Schneider PC1512: joystick button 1 Focus KeyPro FK-9000: PF3 === {78} -> equivalent AT scancode: 63 Amstrad/Schneider PC1512: joystick button 2 Focus KeyPro FK-9000: PF4 === {79} -> equivalent AT scancode: 64 JP106: henkan/zenkouho -> Located between {39} and {70}. Used in kanji input. Amstrad/Schneider PC1512: joystick right Focus KeyPro FK-9000: PF5 === {7a} -> equivalent AT scancode: 65 -> 0xfa is ACK. It is possible to confuse {7a}u with ACK if a command was recently sent to the keyboard, and some keyboard driver software always treats 0xfa as ACK regardless of commands sent. Amstrad/Schneider PC1512: joystick left Focus KeyPro FK-9000: PF6 === {7b} -> equivalent AT scancode: 67 JP106: muhenkan -> Located between {38} and {39}. Used in kanji input. Amstrad/Schneider PC1512: joystick up Focus KeyPro FK-9000: PF7 === {7c} -> equivalent AT scancode: 68 -> 0xfc indicates a hard keyboard error. This is indistinguishable from {7c}u. Amstrad/Schneider PC1512: joystick down Focus KeyPro FK-9000: PF8 === {7d} -> equivalent AT scancode: 6a -> 0xfd indicates a hard keyboard error. This is indistinguishable from {7d}u. JP106: extra character key -> See {02} for notes on character keys. -> Located between {0d} and {0e}. Amstrad/Schneider: right mouse button === {7e} -> equivalent AT scancode: 6d -> 0xfe is NAK. It is possible to confuse {7e}u with NAK if a command was recently sent to the keyboard, and some keyboard driver software always treats 0xfe as NAK regardless of commands sent. Amstrad/Schneider: left mouse button Focus KeyPro FK-9000: PF10 ABNT: keypad "." -> ??? There's already a keypad ".", {53}. What's the distinction? === {7f} -> equivalent AT scancode: 6e -> 0xff indicates a soft keyboard error. This is indistinguishable from {7f}u. === {80:11} -> equivalent AT scancode: 80:1d Tandberg Data TDV5020: Help === {80:12} -> equivalent AT scancode: 80:24 Tandberg Data TDV5020: Insert Soft Hyphen === {80:13} -> equivalent AT scancode: 80:2d Tandberg Data TDV5020: Down Five Lines === {80:14} -> equivalent AT scancode: 80:2c Tandberg Data TDV5020: Cut === {80:16} -> equivalent AT scancode: 80:3c Tandberg Data TDV5020: Copy === {80:17} -> equivalent AT scancode: 80:43 Tandberg Data TDV5020: Move === {80:18} -> equivalent AT scancode: 80:44 Tandberg Data TDV5020: Justify Left/Right === {80:19} -> equivalent AT scancode: 80:4d Tandberg Data TDV5020: Justify === {80:1e} -> equivalent AT scancode: 80:1c Tandberg Data TDV5020: Justify Full/Centre === {80:1f} -> equivalent AT scancode: 80:1b Tandberg Data TDV5020: Backtab === {80:20} -> equivalent AT scancode: 80:23 Tandberg Data TDV5020: Tab -> ??? There's already a Tab, {0f}. What's the distinction? === {80:21} -> equivalent AT scancode: 80:2b Tandberg Data TDV5020: Mark === {80:22} -> equivalent AT scancode: 80:34 Tandberg Data TDV5020: Undo === {80:23} -> equivalent AT scancode: 80:33 Tandberg Data TDV5020: Print === {80:25} -> equivalent AT scancode: 80:42 Tandberg Data TDV5020: Exit === {80:26} -> equivalent AT scancode: 80:4b Tandberg Data TDV5020: Field === {80:2f} -> equivalent AT scancode: 80:2a Tandberg Data TDV5020: Paragraph === {80:30} -> equivalent AT scancode: 80:32 Tandberg Data TDV5020: Sentence === {80:32} -> equivalent AT scancode: 80:3a Tandberg Data TDV5020: Word === {80:56} -> equivalent AT scancode: 80:61 Tandberg Data TDV5020: Start New Paragraph === {e0:00} -> equivalent AT scancode: none -> 0x80 is used as a prefix byte by the Tandberg Data TDV5020. This does not clash with {e0:00}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. === {e0:01} -> equivalent AT scancode: e0:76 Logitech Cordless Desktop Optical keyboard: Media Logitech Cordless Desktop LX 700 combo: Switch Frame === {e0:02} -> equivalent AT scancode: e0:16 Logitech Cordless Desktop Optical keyboard: Homepage Logitech Cordless Desktop LX 700 combo: Down Safeway SW23: M/Mode + keypad "0" -> See {e0:3c} for explanation. Samsung Ergonomics Keyboard: Action 1 === {e0:03} -> equivalent AT scancode: e0:1e Logitech Cordless Desktop LX 700 combo: Up Samsung Ergonomics Keyboard: Action 2 === {e0:04} -> equivalent AT scancode: e0:26 Logitech Cordless Desktop LX 700 combo: Zoom Out Safeway SW23: M/Mode + keypad "4" -> See {e0:3c} for explanation. Samsung Ergonomics Keyboard: Action 3 === {e0:05} -> equivalent AT scancode: e0:25 Microsoft: Messenger Microsoft: Files Safeway SW23: M/Mode + keypad "3" -> See {e0:3c} for explanation. Samsung Ergonomics Keyboard: Action 4 === {e0:06} -> equivalent AT scancode: e0:2e Samsung Ergonomics Keyboard: Action 5 === {e0:07} -> equivalent AT scancode: e0:36 Microsoft: Redo === {e0:08} -> equivalent AT scancode: e0:3d Microsoft: Undo Yahoo! keyboard: CD Forward === {e0:09} -> equivalent AT scancode: e0:3e Microsoft: Application Left Samsung Ergonomics Keyboard: Exit === {e0:0a} -> equivalent AT scancode: e0:46 Microsoft: Paste Samsung Ergonomics Keyboard: Address Book === {e0:0b} -> equivalent AT scancode: e0:45 Microsoft: Scroll Up/Down Normal -> The physical input device is a wheel, not a normal key. There is consequently no physical key-down or key-up event; rather, the input events are "wheel rotated upward" and "wheel rotated downward". The virtual key {e0:0b} being up or down is meaningless. Instead, wheel rotation events are represented by virtual key-down and key-up events. (Consequently the virtual key events may come in a sequence that is impossible for a physical key, such as two consecutive key-up events.) {e0:0b}d is sent for a Scroll Up Normal event, and {e0:0b}u is sent for a Scroll Down Normal event. {e0:11} (Scroll Up/Down Fast), {e0:12} (Scroll Up/Down Faster), and {e0:1f} (Scroll Up/Down Fastest) work the same way. A4tech: Wheel Up -> The physical input device is a wheel, not a normal key. Generates {e0:0b}d only. === {e0:0c} -> equivalent AT scancode: e0:4e Yahoo! keyboard: CD Play/Pause === {e0:0d} -> equivalent AT scancode: e0:55 === {e0:0e} -> equivalent AT scancode: e0:66 === {e0:0f} -> equivalent AT scancode: e0:0d Safeway SW23: M/Mode + keypad "7" -> See {e0:3c} for explanation. LK411: left Compose === {e0:10} -> equivalent AT scancode: e0:15 Microsoft: CD Back -> Part of the widely adopted playback control set (see also {e0:19}, {e0:22}, and {e0:24}). Logitech Internet keyboard: Browser Back Safeway SW23: M/Mode + keypad "1" -> See {e0:3c} for explanation. unnamed 121-key keyboard: CD Stop Yahoo! keyboard: CD Stop Honeywell Multimedia Keyboard: Game Emachines eKB-5190(A): Volume Down === {e0:11} -> equivalent AT scancode: e0:1d Microsoft: Scroll Up/Down Fast -> Works the same way as {e0:0b} (q.v.). Logitech Access keyboard: Messenger Logitech Cordless Desktop LX 700 combo: Messenger === {e0:12} -> equivalent AT scancode: e0:24 Microsoft: Scroll Up/Down Faster -> Works the same way as {e0:0b} (q.v.). IBM Rapid Access keyboard: Mute IBM Rapid Access II keyboard: CD Forward Logitech Internet keyboard: Browser Find Logitech Access keyboard: Webcam IBM EZ Button keyboard: Talk Chicony KBP-8993 keyboard: Volume Down HP Kayak/Vectra: Top Tools unnamed 121-key keyboard: Mute Yahoo! keyboard: Mute Honeywell Multimedia Keyboard: CD Back LiteOn MediaTouch SK-2500: Rewind Emachines eKB-5190(A): Surf === {e0:13} -> equivalent AT scancode: e0:2d Microsoft: Word Compaq Easy Accesss Internet Keyboard: Online Community unnamed Compaq keyboard: button 5 on row of eight extras Logitech Cordless Desktop LX 700 combo: Music Emachines eKB-5190(A): Auctions === {e0:14} -> equivalent AT scancode: e0:2c Microsoft: Excel Compaq Easy Accesss Internet Keyboard: Online Compaq unnamed Compaq keyboard: button 6 on row of eight extras Logitech Cordless Desktop LX 700 combo: Camera === {e0:15} -> equivalent AT scancode: e0:35 Microsoft: Calendar Compaq Easy Accesss Internet Keyboard: Online Services unnamed Compaq keyboard: button 7 on row of eight extras Logitech Cordless Desktop LX 700 combo: Photos === {e0:16} -> equivalent AT scancode: e0:3c Microsoft: Log Off === {e0:17} -> equivalent AT scancode: e0:43 Microsoft: Cut IBM Rapid Access keyboard: Prg 2 IBM Rapid Access II keyboard: Purple Logitech Internet keyboard: Browser Print Logitech Cordless Desktop Optical keyboard: CD Stop IBM EZ Button keyboard: Lotus Word Pro Chicony KBP-8993 keyboard: My Documents HP Kayak/Vectra: Reminder Honeywell Multimedia Keyboard: CD Eject LiteOn MediaTouch SK-2500: Close Emachines eKB-5190(A): Volume Up === {e0:18} -> equivalent AT scancode: e0:44 Microsoft: Copy Logitech Internet keyboard: Browser Open Favorites Honeywell Multimedia Keyboard: Shortcut 2 Samsung Ergonomics Keyboard: CD Eject LiteOn MediaTouch SK-2500: Eject Emachines eKB-5190(A): Health === {e0:19} -> equivalent AT scancode: e0:4d Microsoft: CD Forward -> Part of the widely adopted playback control set (see also {e0:10}, {e0:22}, and {e0:24}). IBM Rapid Access keyboard: CD Play Logitech Internet keyboard: Browser Refresh IBM EZ Button keyboard: Delete Message Chicony KBP-8993 keyboard: Volume Up unnamed 121-key keyboard: CD Play Yahoo! keyboard: CD Eject Honeywell Multimedia Keyboard: CD Play Emachines eKB-5190(A): Search === {e0:1a} -> equivalent AT scancode: e0:54 unnamed Compaq keyboard: button 3 on row of eight extras === {e0:1b} -> equivalent AT scancode: e0:5b unnamed Compaq keyboard: button 8 on row of eight extras === {e0:1c} -> equivalent AT scancode: e0:5a 101+: keypad Enter -> 84/101 compatibility: this had its scancode selected to imitate {1c} (Enter) to pre-prefix software. === {e0:1d} -> equivalent AT scancode: e0:14 101+: right Ctrl -> 84/101 compatibility: this had its scancode selected to imitate {1d} (Ctrl) to pre-prefix software. === {e0:1e} -> equivalent AT scancode: e0:1c Microsoft: Application Right Compaq Easy Accesss Internet Keyboard: Online Email unnamed Compaq keyboard: button 4 on row of eight extras IBM Rapid Access keyboard: Volume Down IBM Rapid Access II keyboard: Mute Logitech Internet keyboard: Browser Search Logitech Cordless Desktop Optical keyboard: Volume Up IBM EZ Button keyboard: Message Chicony KBP-8993 keyboard: zzZ HP Kayak/Vectra: Message, ShortCut 1 unnamed 121-key keyboard: Volume Up Yahoo! keyboard: Volume Up Honeywell Multimedia Keyboard: Shortcut 1 LiteOn MediaTouch SK-2500: Record Emachines eKB-5190(A): Banking === {e0:1f} -> equivalent AT scancode: e0:1b Microsoft: Scroll Up/Down Fastest -> Works the same way as {e0:0b} (q.v.). Compaq Easy Accesss Internet Keyboard: Favorite Application Launch unnamed Compaq keyboard: button 2 on row of eight extras Logitech Cordless Desktop Optical keyboard: CD Play/Pause Emachines eKB-5190(A): Games === {e0:20} -> equivalent AT scancode: e0:23 Microsoft: Mute -> Part of the widely adopted volume control set (see also {e0:2e} and {e0:30}). IBM Rapid Access keyboard: Volume Up IBM Rapid Access II keyboard: CD Stop Logitech Internet keyboard: Browser Hot Links Safeway SW23: Rotate IBM EZ Button keyboard: CD Chicony KBP-8993 keyboard: Mute unnamed 121-key keyboard: My Favourite Yahoo! keyboard: My Documents Emachines eKB-5190(A): Telephone === {e0:21} -> equivalent AT scancode: e0:2b Microsoft: Calculator Compaq Easy Accesss Internet Keyboard: Online Search IBM Rapid Access keyboard: CD Forward IBM Rapid Access II keyboard: Volume Down Logitech Internet keyboard: Browser Open URL Safeway SW23: M/Mode + keypad "8" -> See {e0:3c} for explanation. IBM EZ Button keyboard: CD Forward Chicony KBP-8993 keyboard: CD Forward HP Kayak/Vectra: ShortCut 5 unnamed 121-key keyboard: CD Eject LiteOn MediaTouch SK-2500: Calculator Emachines eKB-5190(A): Sports === {e0:22} -> equivalent AT scancode: e0:34 Microsoft: CD Play/Pause -> Part of the widely adopted playback control set (see also {e0:10}, {e0:19}, and {e0:24}). IBM Rapid Access keyboard: CD Pause IBM Rapid Access II keyboard: CD Play Logitech Internet keyboard: Browser Forward Logitech Cordless Desktop Optical keyboard: Seek Forward Safeway SW23: M/Mode + keypad "*" -> See {e0:3c} for explanation. IBM EZ Button keyboard: CD Pause Chicony KBP-8993 keyboard: CD Play HP Kayak/Vectra: ShortCut 3 unnamed 121-key keyboard: CD Back Yahoo! keyboard: CD Back Honeywell Multimedia Keyboard: CD Forward Emachines eKB-5190(A): Travel === {e0:23} -> equivalent AT scancode: e0:33 Microsoft: Spell Compaq Easy Accesss Internet Keyboard: Online Start unnamed Compaq keyboard: button 1 on row of eight extras IBM Rapid Access keyboard: CD Back IBM Rapid Access II keyboard: Volume Up Logitech Internet keyboard: Browser Home Safeway SW23: Sleep IBM EZ Button keyboard: CD Back Chicony KBP-8993 keyboard: CD Back HP Kayak/Vectra: Phone, ShortCut 2 Honeywell Multimedia Keyboard: CD Stop LiteOn MediaTouch SK-2500: Transfer Emachines eKB-5190(A): Tickets === {e0:24} -> equivalent AT scancode: e0:3b Microsoft: CD Stop -> Part of the widely adopted playback control set (see also {e0:10}, {e0:19}, and {e0:22}). IBM Rapid Access keyboard: CD Stop IBM Rapid Access II keyboard: CD Back Logitech Internet keyboard: Browser Stop Logitech Cordless Desktop Optical keyboard: Seek Back Safeway SW23: M/Mode + keypad "2" -> See {e0:3c} for explanation. IBM EZ Button keyboard: CD Stop Chicony KBP-8993 keyboard: CD Stop HP Kayak/Vectra: ShortCut 4 unnamed 121-key keyboard: CD Forward Honeywell Multimedia Keyboard: Mail Emachines eKB-5190(A): News === {e0:25} -> equivalent AT scancode: e0:42 IBM Rapid Access keyboard: Suspend IBM Rapid Access II keyboard: Green Logitech Internet keyboard: Logitech Logitech Cordless Desktop Optical keyboard: Volume Down Logitech Cordless Desktop LX 700 combo: Audio Preset 2 IBM EZ Button keyboard: Power Chicony KBP-8993 keyboard: Moon HP Kayak/Vectra: Lock unnamed 121-key keyboard: Volume Down Yahoo! keyboard: Volume Down Honeywell Multimedia Keyboard: Screensaver LiteOn MediaTouch SK-2500: Suspend Emachines eKB-5190(A): Brokerage === {e0:26} -> equivalent AT scancode: e0:4b IBM Rapid Access keyboard: Help IBM Rapid Access II keyboard: Blue Logitech Internet keyboard: Browser Add Favorite Logitech Cordless Desktop Optical keyboard: Mute Logitech Cordless Desktop LX 700 combo: Audio Preset 3 IBM EZ Button keyboard: Help Chicony KBP-8993 keyboard: Menu HP Kayak/Vectra: Information unnamed 121-key keyboard: Shortcut Yahoo! keyboard: Shortcut Honeywell Multimedia Keyboard: Calc Samsung Ergonomics Keyboard: Help LiteOn MediaTouch SK-2500: Menu Emachines eKB-5190(A): Pay Bills === {e0:27} -> equivalent AT scancode: e0:4c === {e0:28} -> equivalent AT scancode: e0:52 === {e0:29} -> equivalent AT scancode: e0:0e Safeway SW23: Recorder Rec/Stop === {e0:2a} -> equivalent AT scancode: e0:12 -> 0xaa indicates a successful POST. This does not clash with {e0:2a}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. 101+: fake left Shift for keypad and navigation keys -> 84/101 compatibility: this had its scancode selected to imitate {2a} (left Shift) to pre-prefix software. You should never need to pay attention to this scancode; it is meaningless in itself. Fake left Shift events are generated with {e0:35} (keypad "/"), {e0:37} (Print Screen), and the navigation keys (see {e0:47}). === {e0:2b} -> equivalent AT scancode: e0:5d === {e0:2c} -> equivalent AT scancode: e0:1a Compaq Easy Accesss Internet Keyboard: CD Eject Logitech Cordless Desktop LX 700 combo: Audio Preset 1 A4tech: Wheel Down -> The physical input device is a wheel, not a normal key. Generates {e0:2c}d only. === {e0:2d} -> equivalent AT scancode: e0:22 Logitech Cordless Desktop LX 700 combo: Remote Control === {e0:2e} -> equivalent AT scancode: e0:21 Microsoft: Volume Down -> Part of the widely adopted volume control set (see also {e0:20} and {e0:30}). IBM Rapid Access keyboard: Prg 4 IBM Rapid Access II keyboard: Cyan Logitech Internet keyboard: Scroll Down IBM EZ Button keyboard: Aptiva Installer Chicony KBP-8993 keyboard: Close unnamed 121-key keyboard: Help Yahoo! keyboard: Yahoo! Emachines eKB-5190(A): MySite === {e0:2f} -> equivalent AT scancode: e0:2a Logitech Cordless Desktop LX 700 combo: Eject === {e0:30} -> equivalent AT scancode: e0:32 Microsoft: Volume Up -> Part of the widely adopted volume control set (see also {e0:20} and {e0:2e}). IBM Rapid Access keyboard: Prg 3 IBM Rapid Access II keyboard: Red Logitech Internet keyboard: Scroll Up Safeway SW23: My Documents IBM EZ Button keyboard: Lotus Organizer Chicony KBP-8993 keyboard: DOS unnamed 121-key keyboard: Browser Yahoo! keyboard: WWW Emachines eKB-5190(A): Greetings === {e0:31} -> equivalent AT scancode: e0:31 Logitech Cordless Desktop LX 700 combo: Flame Emachines eKB-5190(A): Music === {e0:32} -> equivalent AT scancode: e0:3a Microsoft: Web Home Compaq Easy Accesss Internet Keyboard: Online Commerce IBM Rapid Access keyboard: Prg 1 IBM Rapid Access II keyboard: Yellow Logitech Internet keyboard: Browser History Logitech Access keyboard: My Home XE3 GF: WWW IBM EZ Button keyboard: Internet Chicony KBP-8993 keyboard: WWW HP Kayak/Vectra: Web Browser unnamed 121-key keyboard: WWW Search Yahoo! keyboard: Mail Honeywell Multimedia Keyboard: WWW Samsung Ergonomics Keyboard: Internet LiteOn MediaTouch SK-2500: WWW Acer Aspire 1310LC laptop: WWW Emachines eKB-5190(A): Shopping === {e0:33} -> equivalent AT scancode: e0:41 === {e0:34} -> equivalent AT scancode: e0:49 === {e0:35} -> equivalent AT scancode: e0:4a 101+: keypad "/" -> 84/101 compatibility: this had its scancode selected to imitate {35} (character key "/"/"?") to pre-prefix software. Because, unlike {35}, the keypad "/" is intended to generate the same character when shifted, {e0:2a} (fake left Shift) and {e0:36} (fake right Shift) events are generated if real Shift keys are already depressed when this key is pressed, to give pre-prefix software the impression of an unshifted {35} press. === {e0:36} -> equivalent AT scancode: e0:59 101+: fake right Shift for keypad and navigation keys -> 84/101 compatibility: this had its scancode selected to imitate {36} (right Shift) to pre-prefix software. You should never need to pay attention to this scancode; it is meaningless in itself. Fake right Shift events are generated with {e0:35} (keypad "/") and the navigation keys (see {e0:47}). === {e0:37} -> equivalent AT scancode: e0:7c 101+: Print Screen -> 84/101 compatibility: this had its scancode selected to imitate {37} (keypad "*"/Print Screen) to pre-prefix software. On the 84-key keyboard Print Screen was invoked by {37} modified by Shift or Ctrl, but on the 101-key keyboard it was assigned to the new Print Screen/SysRq key as its primary function. If Print Screen/SysRq is pressed while Alt is not in effect then it generates {e0:37} (Print Screen). If neither Shift or Ctrl key is pressed at the same time then it additionally generates {e0:2a} (fake left Shift) events to give pre-prefix software the impression of a shifted {37} press. (If Print Screen/SysRq is pressed with Alt in effect then it instead generates {54} (Sys Req). The Print Screen/SysRq key has no scancode of its own.) === {e0:38} -> equivalent AT scancode: e0:11 101+: right Alt (a.k.a. AltGr) -> 84/101 compatibility: this had its scancode selected to imitate {38} (Alt) to pre-prefix software. === {e0:39} -> equivalent AT scancode: e0:29 Safeway SW23: M/Mode + keypad "6" -> See {e0:3c} for explanation. === {e0:3a} -> equivalent AT scancode: e0:58 === {e0:3b} -> equivalent AT scancode: e0:05 Microsoft: F1 without F Lock -> Some Microsoft keyboards (and some others, including the Logitech Access keyboard) have a key "F Lock" which doesn't have a scancode of its own but toggles between two sets of scancodes for the function keys F1 to F12. It may be accompanied by an F Lock indicator light. The function keys bear extra labels for alternate functions. With F Lock on (the default state) the function keys generate the normal scancodes for F1 to F12. With F Lock off the function keys generate alternate scancodes. There is a set of alternate scancodes based on the key number, without regard for which extra function label each key has (the labels vary). On some keyboards some of the function keys without F Lock instead generate scancodes that correspond to their alternate function label, pretending to be an ordinary key with that function. -> Labels seen for F1 without F Lock: Help (Microsoft), New (Logitech Access keyboard. === {e0:3c} -> equivalent AT scancode: e0:06 Microsoft: F2 without F Lock -> See {e0:3b} for explanation. Labels seen for F2 without F Lock: My Music (Microsoft), Office Home (Microsoft), Mail Reply (Logitech Access keyboard). Safeway SW23: M/Mode + Num Lock -> The Safeway SW23 has a key labelled "Ez" which has no scancode of its own but toggles between two sets of scancodes for the keypad. The alternate scancodes mode is indicated by a light labelled "M/Mode". With M/Mode off the keypad generates the usual scancodes. With M/Mode on the keypad generates the alternate scancodes. === {e0:3d} -> equivalent AT scancode: e0:04 Microsoft: F3 without F Lock -> See {e0:3b} for explanation. Labels seen for F3 without F Lock: Task Pane (Microsoft), Mail Forward (Logitech Access keyboard). Safeway SW23: M/Mode + keypad "+" -> See {e0:3c} for explanation. LK411, LK450: F13 === {e0:3e} -> equivalent AT scancode: e0:0c Microsoft: F4 without F Lock -> See {e0:3b} for explanation. Labels seen for F4 without F Lock: New (Microsoft), Mail Send (Logitech Access keyboard). Safeway SW23: Transfer LK411, LK450: F14 === {e0:3f} -> equivalent AT scancode: e0:03 Microsoft: F5 without F Lock -> See {e0:3b} for explanation. Labels seen for F5 without F Lock: Open (Microsoft), CD Back (some versions of Logitech Access keyboard). Safeway SW23: M/Mode + keypad Enter -> See {e0:3c} for explanation. LK411, LK450: Help === {e0:40} -> equivalent AT scancode: e0:0b Microsoft: F6 without F Lock -> See {e0:3b} for explanation. Labels seen for F6 without F Lock: Close (Microsoft), CD Forward (some versions of Logitech Access keyboard). Safeway SW23: Recorder Rew/Play LK411, LK450: Do === {e0:41} -> equivalent AT scancode: e0:83, or occasionally e0:02 Microsoft: F7 without F Lock -> See {e0:3b} for explanation. Labels seen for F7 without F Lock: Mail Reply (Microsoft), CD Play/Pause (some versions of Logitech Access keyboard). Safeway SW23: M/Mode + keypad "." -> See {e0:3c} for explanation. LK411, LK450: F17 === {e0:42} -> equivalent AT scancode: e0:0a Microsoft: F8 without F Lock -> See {e0:3b} for explanation. Labels seen for F8 without F Lock: Mail Forward (Microsoft), CD Stop (some versions of Logitech Access keyboard). Safeway SW23: CD Play === {e0:43} -> equivalent AT scancode: e0:01 Microsoft: F9 without F Lock -> See {e0:3b} for explanation. Labels seen for F9 without F Lock: Mail Send (Microsoft), My Computer (Logitech Access keyboard). Safeway SW23: Close === {e0:44} -> equivalent AT scancode: e0:09 Logitech Access keyboard: F10 without F Lock -> See {e0:3b} for explanation. Labels seen for F10 without F Lock: My Documents (Logitech Access keyboard). Safeway SW23: DOS === {e0:45} -> equivalent AT scancode: e0:77 -> 84/101 compatibility: a lot of bother could have been avoided if Pause had been assigned this scancode instead of overloading {45}. === {e0:46} -> equivalent AT scancode: e0:7e 101+: Break -> 84/101 compatibility: this had its scancode selected to imitate {46} (Scroll Lock/Break) to pre-prefix software. On the 84-key keyboard Break was invoked by Ctrl-{46}, but on the 101-key keyboard it was assigned to the new Pause/Break key as its secondary function. If Pause/Break is pressed while Ctrl is in effect then it generates {e0:46}. (If Pause/Break is pressed with Ctrl not in effect then it instead generates {45} (Pause) with a fake Ctrl. The Pause/Break key has no scancode of its own.) The Pause/Break key does not repeat or report physical key-up; the key-up event is generated immediately after key-down. === {e0:47} -> equivalent AT scancode: e0:6c 101+: Home -> 84/101 compatibility: the pure navigation keys each have the scancode of the corresponding keypad key plus an 0xe0 prefix, to imitate the keypad keys to pre-prefix software. On the 84-key keyboard, the main keypad keys (digits and ".") had dual labels, character and navigation. With Num Lock off, the keys were intended to normally act as navigation keys, but to generate characters if shifted. Num Lock being on reversed this, so the keys would generate characters when unshifted and navigate when shifted. So that the pure navigation keys always do navigation even with Num Lock on, {e0:2a} (fake left Shift) and {e0:36} (fake right Shift) events are generated depending on the Num Lock state and whether the real Shift keys are depressed, to give pre-prefix software the impression of keypad keys being pressed with the right kind of shift state. === {e0:48} -> equivalent AT scancode: e0:75 101+: Up -> See {e0:47} for notes on the navigation keys. === {e0:49} -> equivalent AT scancode: e0:7d 101+: Page Up -> See {e0:47} for notes on the navigation keys. === {e0:4a} -> equivalent AT scancode: e0:7b === {e0:4b} -> equivalent AT scancode: e0:6b 101+: Left -> See {e0:47} for notes on the navigation keys. === {e0:4c} -> equivalent AT scancode: e0:73 Microsoft: keypad "(" OmniKey: Omni === {e0:4d} -> equivalent AT scancode: e0:74 101+: Right -> See {e0:47} for notes on the navigation keys. === {e0:4e} -> equivalent AT scancode: e0:79 LK411, LK450: keypad "," === {e0:4f} -> equivalent AT scancode: e0:69 101+: End -> See {e0:47} for notes on the navigation keys. === {e0:50} -> equivalent AT scancode: e0:72 101+: Down -> See {e0:47} for notes on the navigation keys. === {e0:51} -> equivalent AT scancode: e0:7a 101+: Page Down -> See {e0:47} for notes on the navigation keys. === {e0:52} -> equivalent AT scancode: e0:70 101+: Insert -> See {e0:47} for notes on the navigation keys. === {e0:53} -> equivalent AT scancode: e0:71 101+: Delete -> See {e0:47} for notes on the navigation keys. === {e0:54} -> equivalent AT scancode: e0:84, or occasionally e0:7f === {e0:55} -> equivalent AT scancode: e0:60 Logitech Cordless Desktop LX 700 combo: My Documents === {e0:56} -> equivalent AT scancode: e0:61 === {e0:57} -> equivalent AT scancode: e0:78 Microsoft: F11 without F Lock -> See {e0:3b} for explanation. Labels seen for F11 without F Lock: Save (Microsoft), My Pictures (Logitech Access keyboard). === {e0:58} -> equivalent AT scancode: e0:07 Microsoft: F12 without F Lock -> See {e0:3b} for explanation. Labels seen for F12 without F Lock: Print (Microsoft), My Music (Logitech Access keyboard). Safeway SW23: Mute === {e0:59} -> equivalent AT scancode: e0:0f Safeway SW23: CD Back Samsung Ergonomics Keyboard: Favourites === {e0:5a} -> equivalent AT scancode: e0:17 Safeway SW23: Volume Down === {e0:5b} -> equivalent AT scancode: e0:1f Microsoft: left Windows -> Widely adopted along with {e0:5c} and {e0:5d}, defining 104-key keyboards. === {e0:5c} -> equivalent AT scancode: e0:27 Microsoft: right Windows -> Widely adopted along with {e0:5b} and {e0:5d}, defining 104-key keyboards. === {e0:5d} -> equivalent AT scancode: e0:2f Microsoft: Menu -> Widely adopted along with {e0:5b} and {e0:5c}, defining 104-key keyboards. === {e0:5e} -> equivalent AT scancode: e0:37 Microsoft: Power -> Part of the set of three power management keys (see also {e0:5f} and {e0:63}) which appears on several keyboards. === {e0:5f} -> equivalent AT scancode: e0:3f Microsoft: Sleep -> Part of the set of three power management keys (see also {e0:5e} and {e0:63}) which appears on several keyboards. Also often appears alone. -> On some keyboards, repeated presses of the Sleep key won't send scancodes: only the first consecutive press sends anything. This is presumably to avoid needlessly waking the machine up just to put it to sleep again. After a different key has been pressed, the key will once again send this scancode (once). IBM Rapid Access II keyboard: White Logitech Access keyboard: User === {e0:60} -> equivalent AT scancode: e0:47 -> 0xe0 is a prefix byte, used for many keys. This does not clash with {e0:60}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. === {e0:61} -> equivalent AT scancode: e0:4f -> 0xe1 is a prefix byte, used only in {e1:1d} (fake Ctrl for Pause). This does not clash with {e0:61}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. Safeway SW23: M/Mode + keypad "-" -> See {e0:3c} for explanation. === {e0:62} -> equivalent AT scancode: e0:56 -> 0xe2 is a prefix byte, used by Logitech for the codes sent by an integrated pointing device. This does not clash with {e0:62}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. Safeway SW23: M/Mode + keypad "5" -> See {e0:3c} for explanation. A4tech: Office === {e0:63} -> equivalent AT scancode: e0:5e Microsoft: Wake -> Part of the set of three power management keys (see also {e0:5e} and {e0:5f}) which appears on several keyboards. === {e0:64} -> equivalent AT scancode: e0:08 Microsoft: keypad ")" Microsoft: My Pictures Safeway SW23: CD Stop A4tech: Wheel Push === {e0:65} -> equivalent AT scancode: e0:10 Microsoft: Web Search Logitech Access keyboard: Search Logitech Cordless Desktop Optical keyboard: Search === {e0:66} -> equivalent AT scancode: e0:18 Microsoft: Web Favorites Logitech Cordless Desktop Optical keyboard: Favorites === {e0:67} -> equivalent AT scancode: e0:20 Microsoft: Browser Refresh === {e0:68} -> equivalent AT scancode: e0:28 Microsoft: Browser Stop Compaq Easy Accesss Internet Keyboard: Quick Print Accord ergonomic keyboard: Fn Trust ergonomic keyboard: Application Key === {e0:69} -> equivalent AT scancode: e0:30 Microsoft: Browser Forward Logitech Cordless Desktop Optical keyboard: Go Safeway SW23: CD Forward A4tech: Down Right === {e0:6a} -> equivalent AT scancode: e0:38 Microsoft: Browser Back Logitech Cordless Desktop Optical keyboard: Back Safeway SW23: Menu A4tech: Up Left === {e0:6b} -> equivalent AT scancode: e0:40 Microsoft: My Computer Safeway SW23: M/Mode + keypad "9" -> See {e0:3c} for explanation. === {e0:6c} -> equivalent AT scancode: e0:48 Microsoft: Mail Logitech Access keyboard: Email Logitech Cordless Desktop Optical keyboard: Email XE3 GF: Mail Samsung Ergonomics Keyboard: Mail Acer Aspire 1310LC laptop: Mail === {e0:6d} -> equivalent AT scancode: e0:50 Microsoft: Media Logitech Access keyboard: Media === {e0:6e} -> equivalent AT scancode: e0:57 Safeway SW23: Calc === {e0:6f} -> equivalent AT scancode: e0:6f BTC keyboard: Macro === {e0:70} -> equivalent AT scancode: e0:13 Safeway SW23: Volume Up === {e0:71} -> equivalent AT scancode: e0:19 Safeway SW23: CD Eject XE3 GC: Help === {e0:72} -> equivalent AT scancode: e0:39 XE3 GC: Demo === {e0:73} -> equivalent AT scancode: e0:51 XE3 GC: WWW XE3 GF: Help Acer Aspire 1310LC laptop: P2 === {e0:74} -> equivalent AT scancode: e0:53 Logitech Cordless Desktop LX 700 combo: Webcam XE3 GC: Mail XE3 GF: Demo Acer Aspire 1310LC laptop: P1 === {e0:75} -> equivalent AT scancode: e0:5c Logitech Cordless Desktop LX 700 combo: Status === {e0:76} -> equivalent AT scancode: e0:5f === {e0:77} -> equivalent AT scancode: e0:62 Safeway SW23: WWW === {e0:78} -> equivalent AT scancode: e0:63 Logitech Cordless Desktop LX 700 combo: Rec === {e0:79} -> equivalent AT scancode: e0:64 Safeway SW23: Game === {e0:7a} -> equivalent AT scancode: e0:65 -> 0xfa is ACK. This does not clash with {e0:7a}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. Logitech Internet keyboard: Browser WWW LiteOn MediaTouch SK-2500: Coffee === {e0:7b} -> equivalent AT scancode: e0:67 Safeway SW23: M/Mode + keypad "/" -> See {e0:3c} for explanation. === {e0:7c} -> equivalent AT scancode: e0:68 -> 0xfc indicates a hard keyboard error. This does not clash with {e0:7c}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. === {e0:7d} -> equivalent AT scancode: e0:6a -> 0xfd indicates a hard keyboard error. This does not clash with {e0:7d}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. Safeway SW23: Cut === {e0:7e} -> equivalent AT scancode: e0:6d -> 0xfe is NAK. This does not clash with {e0:7e}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. Safeway SW23: Copy === {e0:7f} -> equivalent AT scancode: e0:6e -> 0xff indicates a soft keyboard error. This does not clash with {e0:7f}u, because the 0xe0 prefix means that the next byte can only be part of the scancode. Safeway SW23: Paste === {e1:1d} -> equivalent AT scancode: e1:14 101+: fake Ctrl for Pause -> 84/101 compatibility: this had its scancode selected to imitate {1d} (Ctrl) to pre-prefix software. -> This scancode is only ever used when the Pause/Break key is pressed without Ctrl in effect. That invokes the Pause feature. On the 84-key keyboard, Pause was Ctrl-{45} ({45} is otherwise Num Lock). On the 101-key keyboard, Pause is generated as {45} (Pause) modified by this fake Ctrl. Unfortunately, because {45} (Pause) is the same scancode as {45} (Num Lock), the accompanying fake Ctrl is the only way to distinguish between them. -> Because this is the only scancode using the prefix 0xe1, it has prompted some inaccurate speculation on what that prefix means. It is sometimes said that 0xe1 means that the key does not repeat or report key-up. ({45} (Pause) is that type of key, but {e0:46} also is and is not accompanied by any 0xe1-prefixed scancode.) It might alternatively be suspected that 0xe1 signals a three-byte scancode, because an {e1:1d} event is always immediately followed by a {46} (Pause) event. Neither of these is correct. The fake Ctrl has scancode {e1:1d} simply because {e0:1d} is already occupied by right Ctrl. ===