User interface - keyboard messages


 
Contents:
00000000 to 0000FFFF - Keyboard (from application)
00001000 to 0010FFFF - Keyboard (from driver)
00104000 - Send keypress packet
0010E000 - Connect keyboard device
0010E800 - Disconnect keyboard device


00000000 to 0000FFFF - Keyboard (from application)


 
 
 
 



00100000 to 0010FFFF - Keyboard (from driver)


00104000 - Send keypress packet
Data1    Keypress packet
Data2    -
Whenever a key is pressed or released the keyboard device sends a message to the user interface. The user interface passes the keypress on to the active screen.



0010E000 - Connect keyboard device
Data1    -
Data2    -
Normally used when the device driver starts.



0010E800 - Disconnect keyboard device
Data1    -
Data2    -
Normally used when the device driver shuts down.



Keypress packet format:

The keypress packet is a dword representing the state of the keyboard when a key is pressed or released.

 Bits:
  0-7     ASCII character
  8-14    Keycode
  15      0 = Key pressed, 1 = Key released
  16      Scroll lock state
  17      Num lock state
  18      Caps lock state
  19-27   reserved
  28      Left shift state
  29      Right shift state
  28      Left alt state
  29      Right alt state
  30      Left control state
  31      Right control state

Keycodes

The keyboard driver converts scan codes from the keyboard into single byte key codes. Here's a list of keycodes and associated scancodes:
 
 Key  Scan
 Code Code/s             Key

  01      01             ESC
  02      02             1
  03      03             2
  04      04             3
  05      05             4
  06      06             5
  07      07             6
  08      08             7
  09      09             8
  0A      0A             9
  0B      0B             0
  0C      0C             - _
  0D      0D             = +
  0E      0E             BACKSPACE
  0F      0F             TAB
  10      10             Q
  11      11             W
  12      12             E
  13      13             R
  14      14             T
  15      15             Y
  16      16             U
  17      17             I
  18      18             O
  19      19             P
  1A      1A             [ {
  1B      1B             ] }
  1C      1C             ENTER (RETURN)
  1D      1D             LEFT CONTROL
  1E      1E             A
  1F      1F             S
  20      20             D
  21      21             F
  22      22             G
  23      23             H
  24      24             J
  25      25             K
  26      26             L
  27      27             ; :
  28      28             ' "
  29      29             ` ~
  2A      2A             LEFT SHIFT
  2B      2B             \ |
  2C      2C             Z
  2D      2D             X
  2E      2E             C
  2F      2F             V
  30      30             B
  31      31             N
  32      32             M
  33      33             , <
  34      34             . >
  35      35             / ?
  36      36             RIGHT SHIFT
  37      37             *            (KEYPAD)
  38      38             LEFT ALT
  39      39             SPACEBAR
  3A      3A             CAPSLOCK
  3B      3B             F1
  3C      3C             F2
  3D      3D             F3
  3E      3E             F4
  3F      3F             F5
  40      40             F6
  41      41             F7
  42      42             F8
  43      43             F9
  44      44             F10
  45      45             NUMLOCK       (KEYPAD)
  46      46             SCROLL LOCK
  47      47             7 HOME        (KEYPAD)
  48      48             8 UP          (KEYPAD)
  49      49             9 PGUP        (KEYPAD)
  4A      4A             -             (KEYPAD)
  4B      4B             4 LEFT        (KEYPAD)
  4C      4C             5             (KEYPAD)
  4D      4D             6 RIGHT       (KEYPAD)
  4E      4E             +             (KEYPAD)
  4F      4F             1 END         (KEYPAD)
  50      50             2 DOWN        (KEYPAD)
  51      51             3 PGDN        (KEYPAD)
  52      52             0 INSERT      (KEYPAD)
  53      53             . DEL         (KEYPAD)
  54      54             SYS REQ
  55      55             none
  56      56             none
  57      57             F11
  58      58             F12
  5C   E0 1C             ENTER         (KEYPAD)
  5D   E0 1D             RIGHT CONTROL
  65   E0 35             /             (KEYPAD)
  67   E0 37             PRINT SCREEN
  68   E0 38             RIGHT ALT
  6B   E1 1D 45 E1 9D C5 PAUSE
  6C   E0 46             CTRL BREAK
  6D   E0 47             HOME          (NOT KEYPAD)
  6E   E0 48             UP            (NOT KEYPAD)
  6F   E0 49             PAGE UP       (NOT KEYPAD)
  71   E0 4B             LEFT          (NOT KEYPAD)
  73   E0 4D             RIGHT         (NOT KEYPAD)
  75   E0 4F             END           (NOT KEYPAD)
  76   E0 50             DOWN          (NOT KEYPAD)
  77   E0 51             PAGE DOWN     (NOT KEYPAD)
  78   E0 52             INSERT        (NOT KEYPAD)
  79   E0 53             DELETE        (NOT KEYPAD)
  7F   E0 6F             MACRO         (anyone seen this key?)
 


Home  Index
Copyright 1998, Brendan Trotter