Fail* directories reorganized, Code-cleanup (-> coding-style), Typos+comments fixed.

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1321 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
adrian
2012-06-08 20:09:43 +00:00
parent d474a5b952
commit 2575604b41
866 changed files with 1848 additions and 1879 deletions

View File

@ -0,0 +1,14 @@
#!/usr/bin/perl
# little utility script that I used to convert key map files from
# the pre-March 11 format to the post-March 11 format. It doesn't
# do anything smart with the ascii equivalents and modifiers, so ATM those must
# be added by hand.
while (<STDIN>)
{
chop;
s/^ *//;
if (/^#/ || /^ *$/) { print "$_\n"; next;}
($key, $equals, $xksym) = split (/ +/);
printf ("%-45s %-10s %s\n", $key, 'none', "XK_$xksym");
}

View File

@ -0,0 +1,222 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, DE keymap, SDL gui on X11
# Author: Volker Ruppert
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Host_key_name
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Host_key_name
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Host_key_name is the name of the key combination according to the gui library
# (X windows, SDL, etc). Each GUI module must provide a function that converts
# these host key names into numbers. A pointer to the conversion function is
# passed to loadKeymap(), and it is used when parsing the keymap file. As the
# keymap file is parsed, the conversion function is called for each host key
# name, to convert it into a number. Only the number is stored. If the host
# key name is not found, the conversion function returns BX_KEYMAP_UNKNOWN, and
# the keymap code will panic, like this:
#
# [KMAP ] line 51: unknown host key name 'SDLK_PAREN_RIGHT'
#
# If this happens, you must edit the keymap file, and either correct the host
# key name or comment out that line.
#
BX_KEY_0 '0' SDLK_0
BX_KEY_0+BX_KEY_SHIFT_L '=' SDLK_EQUALS
BX_KEY_1 '1' SDLK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' SDLK_EXCLAIM
BX_KEY_2 '2' SDLK_2
BX_KEY_2+BX_KEY_ALT_R '<27>' SDLK_2
BX_KEY_2+BX_KEY_SHIFT_L '"' SDLK_QUOTEDBL
BX_KEY_3 '3' SDLK_3
BX_KEY_3+BX_KEY_SHIFT_L '<27>' SDLK_3
BX_KEY_4 '4' SDLK_4
BX_KEY_4+BX_KEY_SHIFT_L '$' SDLK_DOLLAR
BX_KEY_4+BX_KEY_ALT_R '<27>' SDLK_4
BX_KEY_5 '5' SDLK_5
BX_KEY_5+BX_KEY_ALT_R '<27>' SDLK_5
BX_KEY_5+BX_KEY_SHIFT_L '%' SDLK_5
BX_KEY_6 '6' SDLK_6
BX_KEY_6+BX_KEY_SHIFT_L '&' SDLK_AMPERSAND
BX_KEY_7 '7' SDLK_7
BX_KEY_7+BX_KEY_ALT_R '{' SDLK_7
BX_KEY_7+BX_KEY_SHIFT_L '/' SDLK_SLASH
BX_KEY_8 '8' SDLK_8
BX_KEY_8+BX_KEY_ALT_R '[' SDLK_LEFTBRACKET
BX_KEY_8+BX_KEY_SHIFT_L '(' SDLK_LEFTPAREN
BX_KEY_9 '9' SDLK_9
BX_KEY_9+BX_KEY_ALT_R ']' SDLK_RIGHTBRACKET
BX_KEY_9+BX_KEY_SHIFT_L ')' SDLK_RIGHTPAREN
BX_KEY_A+BX_KEY_SHIFT_L 'A' SDLK_a
BX_KEY_A 'a' SDLK_a
BX_KEY_A+BX_KEY_ALT_R '<27>' SDLK_a
BX_KEY_B+BX_KEY_SHIFT_L 'B' SDLK_b
BX_KEY_B 'b' SDLK_b
BX_KEY_C+BX_KEY_SHIFT_L 'C' SDLK_c
BX_KEY_C 'c' SDLK_c
BX_KEY_C+BX_KEY_ALT_R '<27>' SDLK_c
BX_KEY_D+BX_KEY_SHIFT_L 'D' SDLK_d
BX_KEY_D 'd' SDLK_d
BX_KEY_E+BX_KEY_SHIFT_L 'E' SDLK_e
BX_KEY_E+BX_KEY_ALT_R none SDLK_EURO
BX_KEY_E 'e' SDLK_e
BX_KEY_F+BX_KEY_SHIFT_L 'F' SDLK_f
BX_KEY_F 'f' SDLK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' SDLK_g
BX_KEY_G 'g' SDLK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' SDLK_h
BX_KEY_H 'h' SDLK_h
BX_KEY_I+BX_KEY_SHIFT_L 'I' SDLK_i
BX_KEY_I 'i' SDLK_i
BX_KEY_J+BX_KEY_SHIFT_L 'J' SDLK_j
BX_KEY_J 'j' SDLK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' SDLK_k
BX_KEY_K 'k' SDLK_k
BX_KEY_L+BX_KEY_SHIFT_L 'L' SDLK_l
BX_KEY_L 'l' SDLK_l
BX_KEY_M+BX_KEY_SHIFT_L 'M' SDLK_m
BX_KEY_M 'm' SDLK_m
BX_KEY_M+BX_KEY_ALT_R '<27>' SDLK_m
BX_KEY_N+BX_KEY_SHIFT_L 'N' SDLK_n
BX_KEY_N 'n' SDLK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' SDLK_o
BX_KEY_O 'o' SDLK_o
BX_KEY_O+BX_KEY_ALT_R '<27>' SDLK_o
BX_KEY_P+BX_KEY_SHIFT_L 'P' SDLK_p
BX_KEY_P 'p' SDLK_p
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' SDLK_q
BX_KEY_Q+BX_KEY_ALT_R '@' SDLK_AT
BX_KEY_Q 'q' SDLK_q
BX_KEY_R+BX_KEY_SHIFT_L 'R' SDLK_r
BX_KEY_R+BX_KEY_ALT_R '<27>' SDLK_r
BX_KEY_R 'r' SDLK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' SDLK_s
BX_KEY_S 's' SDLK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' SDLK_t
BX_KEY_T 't' SDLK_t
BX_KEY_U+BX_KEY_SHIFT_L 'U' SDLK_u
BX_KEY_U 'u' SDLK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' SDLK_v
BX_KEY_V 'v' SDLK_v
BX_KEY_W+BX_KEY_SHIFT_L 'W' SDLK_w
BX_KEY_W 'w' SDLK_w
BX_KEY_X+BX_KEY_SHIFT_L 'X' SDLK_x
BX_KEY_X+BX_KEY_ALT_R '<27>' SDLK_x
BX_KEY_X 'x' SDLK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Z' SDLK_z
BX_KEY_Y 'z' SDLK_z
BX_KEY_Z+BX_KEY_SHIFT_L 'Y' SDLK_y
BX_KEY_Z+BX_KEY_ALT_R '<27>' SDLK_y
BX_KEY_Z 'y' SDLK_y
BX_KEY_F1 none SDLK_F1
BX_KEY_F2 none SDLK_F2
BX_KEY_F3 none SDLK_F3
BX_KEY_F4 none SDLK_F4
BX_KEY_F5 none SDLK_F5
BX_KEY_F6 none SDLK_F6
BX_KEY_F7 none SDLK_F7
BX_KEY_F8 none SDLK_F8
BX_KEY_F9 none SDLK_F9
BX_KEY_F10 none SDLK_F10
BX_KEY_F11 none SDLK_F11
BX_KEY_F12 none SDLK_F12
BX_KEY_ALT_L none SDLK_LALT
BX_KEY_ALT_L none SDLK_LMETA
BX_KEY_ALT_R none SDLK_RALT
BX_KEY_ALT_R none SDLK_MODE
BX_KEY_BACKSLASH apostrophe SDLK_QUOTE
BX_KEY_BACKSLASH '#' SDLK_HASH
BX_KEY_BACKSPACE none SDLK_BACKSPACE
BX_KEY_CAPS_LOCK none SDLK_CAPSLOCK
BX_KEY_COMMA ',' SDLK_COMMA
BX_KEY_COMMA+BX_KEY_SHIFT_L ';' SDLK_SEMICOLON
BX_KEY_CTRL_L none SDLK_LCTRL
BX_KEY_CTRL_R none SDLK_RCTRL
BX_KEY_DELETE none SDLK_DELETE
BX_KEY_DOWN none SDLK_DOWN
BX_KEY_END none SDLK_END
BX_KEY_ENTER return SDLK_RETURN
BX_KEY_EQUALS none SDLK_WORLD_20
BX_KEY_EQUALS+BX_KEY_ALT_R '<27>' SDLK_WORLD_20
BX_KEY_EQUALS+BX_KEY_SHIFT_L '`' SDLK_WORLD_20
BX_KEY_ESC none SDLK_ESCAPE
BX_KEY_GRAVE '^' SDLK_CARET
BX_KEY_GRAVE+BX_KEY_SHIFT_L '<27>' SDLK_CARET
BX_KEY_GRAVE+BX_KEY_ALT_R '<27>' SDLK_CARET
BX_KEY_HOME none SDLK_HOME
BX_KEY_INSERT none SDLK_INSERT
BX_KEY_KP_5 none SDLK_KP5
BX_KEY_KP_ADD none SDLK_KP_PLUS
BX_KEY_KP_DELETE none SDLK_KP_PERIOD
BX_KEY_KP_DIVIDE none SDLK_KP_DIVIDE
BX_KEY_KP_DOWN none SDLK_KP2
BX_KEY_KP_END none SDLK_KP1
BX_KEY_KP_ENTER none SDLK_KP_ENTER
BX_KEY_KP_HOME none SDLK_KP7
BX_KEY_KP_INSERT none SDLK_KP0
BX_KEY_KP_LEFT none SDLK_KP4
BX_KEY_KP_MULTIPLY none SDLK_KP_MULTIPLY
BX_KEY_KP_PAGE_DOWN none SDLK_KP3
BX_KEY_KP_PAGE_UP none SDLK_KP9
BX_KEY_KP_RIGHT none SDLK_KP6
BX_KEY_KP_SUBTRACT none SDLK_KP_MINUS
BX_KEY_KP_UP none SDLK_KP8
BX_KEY_LEFT none SDLK_LEFT
BX_KEY_LEFT_BACKSLASH+BX_KEY_ALT_R '|' SDLK_LESS
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '>' SDLK_GREATER
BX_KEY_LEFT_BACKSLASH '<' SDLK_LESS
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '<27>' SDLK_WORLD_92
BX_KEY_LEFT_BRACKET '<27>' SDLK_WORLD_92
BX_KEY_MENU none SDLK_MENU
BX_KEY_MINUS+BX_KEY_ALT_L backslash SDLK_BACKSLASH
BX_KEY_MINUS+BX_KEY_SHIFT_L '?' SDLK_QUESTION
BX_KEY_MINUS '<27>' SDLK_WORLD_63
BX_KEY_NUM_LOCK none SDLK_NUMLOCK
BX_KEY_PAGE_DOWN none SDLK_PAGEDOWN
BX_KEY_PAGE_UP none SDLK_PAGEUP
BX_KEY_PAUSE none SDLK_BREAK
BX_KEY_PAUSE none SDLK_PAUSE
BX_KEY_PERIOD+BX_KEY_SHIFT_L ':' SDLK_COLON
BX_KEY_PERIOD '.' SDLK_PERIOD
BX_KEY_PERIOD+BX_KEY_ALT_L '<27>' SDLK_PERIOD
BX_KEY_PRINT none SDLK_PRINT
BX_KEY_PRINT none SDLK_SYSREQ
BX_KEY_RIGHT none SDLK_RIGHT
BX_KEY_RIGHT_BRACKET+BX_KEY_ALT_R '~' SDLK_PLUS
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '*' SDLK_PLUS
BX_KEY_RIGHT_BRACKET '+' SDLK_PLUS
BX_KEY_SCRL_LOCK none SDLK_SCROLLOCK
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L '<27>' SDLK_WORLD_86
BX_KEY_SEMICOLON '<27>' SDLK_WORLD_86
BX_KEY_SHIFT_L none SDLK_LSHIFT
BX_KEY_SHIFT_R none SDLK_RSHIFT
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '<27>' SDLK_WORLD_68
BX_KEY_SINGLE_QUOTE '<27>' SDLK_WORLD_68
BX_KEY_SLASH '-' SDLK_MINUS
BX_KEY_SLASH+BX_KEY_SHIFT_L '_' SDLK_UNDERSCORE
BX_KEY_SPACE space SDLK_SPACE
BX_KEY_TAB tab SDLK_TAB
BX_KEY_UP none SDLK_UP
BX_KEY_WIN_L none SDLK_LSUPER
BX_KEY_WIN_R none SDLK_RSUPER

View File

@ -0,0 +1,211 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, US keymap, SDL gui
# Author: Bryce Denney
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Host_key_name
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Host_key_name
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Host_key_name is the name of the key combination according to the gui library
# (X windows, SDL, etc). Each GUI module must provide a function that converts
# these host key names into numbers. A pointer to the conversion function is
# passed to loadKeymap(), and it is used when parsing the keymap file. As the
# keymap file is parsed, the conversion function is called for each host key
# name, to convert it into a number. Only the number is stored. If the host
# key name is not found, the conversion function returns BX_KEYMAP_UNKNOWN, and
# the keymap code will panic, like this:
#
# [KMAP ] line 51: unknown host key name 'SDLK_PAREN_RIGHT'
#
# If this happens, you must edit the keymap file, and either correct the host
# key name or comment out that line.
#
BX_KEY_0 '0' SDLK_0
BX_KEY_0+BX_KEY_SHIFT_L ')' SDLK_RIGHTPAREN
BX_KEY_1 '1' SDLK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' SDLK_EXCLAIM
BX_KEY_2 '2' SDLK_2
BX_KEY_2+BX_KEY_SHIFT_L '@' SDLK_AT
BX_KEY_3 '3' SDLK_3
BX_KEY_3+BX_KEY_SHIFT_L '#' SDLK_HASH
BX_KEY_4 '4' SDLK_4
BX_KEY_4+BX_KEY_SHIFT_L '$' SDLK_DOLLAR
BX_KEY_5 '5' SDLK_5
#BX_KEY_5+BX_KEY_SHIFT_L '%' SDLK_PERCENT
BX_KEY_6 '6' SDLK_6
BX_KEY_6+BX_KEY_SHIFT_L '^' SDLK_CARET
BX_KEY_7 '7' SDLK_7
BX_KEY_7+BX_KEY_SHIFT_L '&' SDLK_AMPERSAND
BX_KEY_8 '8' SDLK_8
BX_KEY_8+BX_KEY_SHIFT_L '*' SDLK_ASTERISK
BX_KEY_9 '9' SDLK_9
BX_KEY_9+BX_KEY_SHIFT_L '(' SDLK_LEFTPAREN
BX_KEY_A+BX_KEY_SHIFT_L 'A' SDLK_a
BX_KEY_A 'a' SDLK_a
BX_KEY_B+BX_KEY_SHIFT_L 'B' SDLK_b
BX_KEY_B 'b' SDLK_b
BX_KEY_C+BX_KEY_SHIFT_L 'C' SDLK_c
BX_KEY_C 'c' SDLK_c
BX_KEY_D+BX_KEY_SHIFT_L 'D' SDLK_d
BX_KEY_D 'd' SDLK_d
BX_KEY_E+BX_KEY_SHIFT_L 'E' SDLK_e
BX_KEY_E 'e' SDLK_e
BX_KEY_F+BX_KEY_SHIFT_L 'F' SDLK_f
BX_KEY_F 'f' SDLK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' SDLK_g
BX_KEY_G 'g' SDLK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' SDLK_h
BX_KEY_H 'h' SDLK_h
BX_KEY_I+BX_KEY_SHIFT_L 'I' SDLK_i
BX_KEY_I 'i' SDLK_i
BX_KEY_J+BX_KEY_SHIFT_L 'J' SDLK_j
BX_KEY_J 'j' SDLK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' SDLK_k
BX_KEY_K 'k' SDLK_k
BX_KEY_L+BX_KEY_SHIFT_L 'L' SDLK_l
BX_KEY_L 'l' SDLK_l
BX_KEY_M+BX_KEY_SHIFT_L 'M' SDLK_m
BX_KEY_M 'm' SDLK_m
BX_KEY_N+BX_KEY_SHIFT_L 'N' SDLK_n
BX_KEY_N 'n' SDLK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' SDLK_o
BX_KEY_O 'o' SDLK_o
BX_KEY_P+BX_KEY_SHIFT_L 'P' SDLK_p
BX_KEY_P 'p' SDLK_p
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' SDLK_q
BX_KEY_Q 'q' SDLK_q
BX_KEY_R+BX_KEY_SHIFT_L 'R' SDLK_r
BX_KEY_R 'r' SDLK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' SDLK_s
BX_KEY_S 's' SDLK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' SDLK_t
BX_KEY_T 't' SDLK_t
BX_KEY_U+BX_KEY_SHIFT_L 'U' SDLK_u
BX_KEY_U 'u' SDLK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' SDLK_v
BX_KEY_V 'v' SDLK_v
BX_KEY_W+BX_KEY_SHIFT_L 'W' SDLK_w
BX_KEY_W 'w' SDLK_w
BX_KEY_X+BX_KEY_SHIFT_L 'X' SDLK_x
BX_KEY_X 'x' SDLK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Y' SDLK_y
BX_KEY_Y 'y' SDLK_y
BX_KEY_Z+BX_KEY_SHIFT_L 'Z' SDLK_z
BX_KEY_Z 'z' SDLK_z
BX_KEY_F1 none SDLK_F1
BX_KEY_F2 none SDLK_F2
BX_KEY_F3 none SDLK_F3
BX_KEY_F4 none SDLK_F4
BX_KEY_F5 none SDLK_F5
BX_KEY_F6 none SDLK_F6
BX_KEY_F7 none SDLK_F7
BX_KEY_F8 none SDLK_F8
BX_KEY_F9 none SDLK_F9
BX_KEY_F10 none SDLK_F10
BX_KEY_F11 none SDLK_F11
BX_KEY_F12 none SDLK_F12
BX_KEY_ALT_L none SDLK_LALT
BX_KEY_ALT_L none SDLK_LMETA
BX_KEY_ALT_R none SDLK_MODE
#BX_KEY_ALT_R none SDLK_Multi_key
BX_KEY_BACKSLASH backslash SDLK_BACKSLASH
#BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '|' SDLK_bar
BX_KEY_BACKSPACE none SDLK_BACKSPACE
BX_KEY_CAPS_LOCK none SDLK_CAPSLOCK
BX_KEY_COMMA ',' SDLK_COMMA
BX_KEY_COMMA+BX_KEY_SHIFT_L '<' SDLK_LESS
BX_KEY_CTRL_L none SDLK_LCTRL
BX_KEY_CTRL_R none SDLK_RCTRL
BX_KEY_DELETE none SDLK_DELETE
BX_KEY_DOWN none SDLK_DOWN
BX_KEY_END none SDLK_END
BX_KEY_ENTER return SDLK_RETURN
BX_KEY_EQUALS '=' SDLK_EQUALS
BX_KEY_EQUALS+BX_KEY_SHIFT_L '+' SDLK_PLUS
BX_KEY_ESC none SDLK_ESCAPE
#BX_KEY_GRAVE+BX_KEY_SHIFT_L '~' SDLK_asciitilde
BX_KEY_GRAVE '`' SDLK_BACKQUOTE
BX_KEY_HOME none SDLK_HOME
BX_KEY_INSERT none SDLK_INSERT
BX_KEY_KP_5 none SDLK_KP5
#BX_KEY_KP_5 none SDLK_KP_BEGIN
BX_KEY_KP_ADD none SDLK_KP_PLUS
BX_KEY_KP_DELETE none SDLK_KP_PERIOD
#BX_KEY_KP_DELETE none SDLK_KP_DELETE
BX_KEY_KP_DIVIDE none SDLK_KP_DIVIDE
BX_KEY_KP_DOWN none SDLK_KP2
#BX_KEY_KP_DOWN none SDLK_KP_DOWN
BX_KEY_KP_END none SDLK_KP1
#BX_KEY_KP_END none SDLK_KP_END
BX_KEY_KP_ENTER none SDLK_KP_ENTER
BX_KEY_KP_HOME none SDLK_KP7
#BX_KEY_KP_HOME none SDLK_KP_HOME
BX_KEY_KP_INSERT none SDLK_KP0
#BX_KEY_KP_INSERT none SDLK_KP_INSERT
BX_KEY_KP_LEFT none SDLK_KP4
#BX_KEY_KP_LEFT none SDLK_KP_LEFT
BX_KEY_KP_MULTIPLY none SDLK_KP_MULTIPLY
BX_KEY_KP_PAGE_DOWN none SDLK_KP3
#BX_KEY_KP_PAGE_DOWN none SDLK_KP_PAGE_DOWN
BX_KEY_KP_PAGE_UP none SDLK_KP9
#BX_KEY_KP_PAGE_UP none SDLK_KP_PAGE_UP
BX_KEY_KP_RIGHT none SDLK_KP6
#BX_KEY_KP_RIGHT none SDLK_KP_Right
BX_KEY_KP_SUBTRACT none SDLK_KP_MINUS
BX_KEY_KP_UP none SDLK_KP8
#BX_KEY_KP_UP none SDLK_KP_Up
BX_KEY_LEFT none SDLK_LEFT
#BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '{' SDLK_BRACELEFT
BX_KEY_LEFT_BRACKET '[' SDLK_LEFTBRACKET
BX_KEY_MENU none SDLK_MENU
BX_KEY_MINUS '-' SDLK_MINUS
BX_KEY_MINUS+BX_KEY_SHIFT_L '_' SDLK_UNDERSCORE
BX_KEY_NUM_LOCK none SDLK_NUMLOCK
BX_KEY_PAGE_DOWN none SDLK_PAGEDOWN
BX_KEY_PAGE_UP none SDLK_PAGEUP
BX_KEY_PAUSE none SDLK_BREAK
BX_KEY_PAUSE none SDLK_PAUSE
BX_KEY_PERIOD+BX_KEY_SHIFT_L '>' SDLK_GREATER
BX_KEY_PERIOD '.' SDLK_PERIOD
BX_KEY_PRINT none SDLK_PRINT
BX_KEY_PRINT none SDLK_SYSREQ
BX_KEY_RIGHT none SDLK_RIGHT
#BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '}' SDLK_BRACERIGHT
BX_KEY_RIGHT_BRACKET ']' SDLK_RIGHTBRACKET
BX_KEY_SCRL_LOCK none SDLK_SCROLLOCK
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L ':' SDLK_COLON
BX_KEY_SEMICOLON ';' SDLK_SEMICOLON
BX_KEY_SHIFT_L none SDLK_LSHIFT
BX_KEY_SHIFT_R none SDLK_RSHIFT
BX_KEY_SINGLE_QUOTE apostrophe SDLK_QUOTE
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '"' SDLK_QUOTEDBL
BX_KEY_SLASH+BX_KEY_SHIFT_L '?' SDLK_QUESTION
BX_KEY_SLASH '/' SDLK_SLASH
BX_KEY_SPACE space SDLK_SPACE
#BX_KEY_TAB none SDLK_ISO_LEFT_TAB
BX_KEY_TAB tab SDLK_TAB
BX_KEY_UP none SDLK_UP
BX_KEY_WIN_L none SDLK_LSUPER
BX_KEY_WIN_R none SDLK_LSUPER

View File

@ -0,0 +1,220 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, BE keymap
# Author: Wouter Verhelst,
# based on FR keymap by Christophe Bothamy, Bryce Denney
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
BX_KEY_0+BX_KEY_SHIFT_L '0' XK_0
BX_KEY_0 '<27>' XK_agrave
BX_KEY_0+BX_KEY_ALT_R '}' XK_braceright
BX_KEY_1+BX_KEY_SHIFT_L '1' XK_1
BX_KEY_1 '&' XK_ampersand
BX_KEY_1+BX_KEY_ALT_R '|' XK_bar
BX_KEY_2+BX_KEY_SHIFT_L '2' XK_2
BX_KEY_2+BX_KEY_ALT_R '@' XK_at
BX_KEY_2 '<27>' XK_eacute
BX_KEY_3+BX_KEY_SHIFT_L '3' XK_3
BX_KEY_3+BX_KEY_ALT_R '#' XK_numbersign
BX_KEY_3 '"' XK_quotedbl
BX_KEY_4+BX_KEY_SHIFT_L '4' XK_4
BX_KEY_4 apostrophe XK_apostrophe
BX_KEY_5+BX_KEY_SHIFT_L '5' XK_5
BX_KEY_5 '(' XK_parenleft
BX_KEY_6+BX_KEY_SHIFT_L '6' XK_6
BX_KEY_6+BX_KEY_ALT_R '^' XK_asciicircum
BX_KEY_6 '<27>' XK_section
BX_KEY_7+BX_KEY_SHIFT_L '7' XK_7
BX_KEY_7 '<27>' XK_egrave
BX_KEY_8+BX_KEY_SHIFT_L '8' XK_8
BX_KEY_8 '!' XK_exclam
BX_KEY_9+BX_KEY_SHIFT_L '9' XK_9
BX_KEY_9+BX_KEY_ALT_R '{' XK_braceleft
BX_KEY_9 '<27>' XK_ccedilla
BX_KEY_A+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_A 'q' XK_q
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_B 'b' XK_b
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C 'c' XK_c
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D 'd' XK_d
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E 'e' XK_e
BX_KEY_E+BX_KEY_ALT_R none XK_EuroSign
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_F 'f' XK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_G 'g' XK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_H 'h' XK_h
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_I 'i' XK_i
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_J 'j' XK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_K 'k' XK_k
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_L 'l' XK_l
BX_KEY_M+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_M ',' XK_comma
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_N 'n' XK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_O 'o' XK_o
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_P 'p' XK_p
BX_KEY_Q+BX_KEY_SHIFT_L 'A' XK_A
BX_KEY_Q 'a' XK_a
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R 'r' XK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S 's' XK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T 't' XK_t
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_U 'u' XK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V 'v' XK_v
BX_KEY_W+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_W 'z' XK_z
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X 'x' XK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_Y 'y' XK_y
BX_KEY_Z+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_Z 'w' XK_w
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_BACKSLASH '<27>' XK_mu
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '<27>' XK_sterling
BX_KEY_BACKSLASH+BX_KEY_ALT_R '`' XK_dead_grave
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA+BX_KEY_SHIFT_L '.' XK_period
BX_KEY_COMMA ';' XK_semicolon
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS '-' XK_minus
BX_KEY_EQUALS+BX_KEY_SHIFT_L '_' XK_underscore
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE '<27>' XK_twosuperior
BX_KEY_GRAVE+BX_KEY_SHIFT_L '<27>' XK_threesuperior
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '>' XK_greater
BX_KEY_LEFT_BACKSLASH '<' XK_less
BX_KEY_LEFT_BACKSLASH+BX_KEY_ALT_R backslash XK_backslash
BX_KEY_LEFT_BRACKET none XK_dead_circumflex
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L none XK_dead_diaeresis
BX_KEY_LEFT_BRACKET+BX_KEY_ALT_R '[' XK_bracketleft
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS+BX_KEY_SHIFT_L '<27>' XK_degree
BX_KEY_MINUS ')' XK_parenright
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD ':' XK_colon
BX_KEY_PERIOD+BX_KEY_SHIFT_L '/' XK_slash
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET '$' XK_dollar
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '*' XK_asterisk
BX_KEY_RIGHT_BRACKET+BX_KEY_ALT_R ']' XK_bracketright
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_SEMICOLON 'm' XK_m
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_SINGLE_QUOTE+BX_KEY_ALT_R none XK_dead_acute
BX_KEY_SINGLE_QUOTE '<27>' XK_ugrave
BX_KEY_SLASH '=' XK_equal
BX_KEY_SLASH+BX_KEY_SHIFT_L '+' XK_plus
BX_KEY_SLASH+BX_KEY_ALT_R none XK_dead_tilde
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R

View File

@ -0,0 +1,247 @@
# Bochs Keymap file
# $Id: x11-pc-da.map,v 0.9 2002/09/02
# Target: PC(x86) keyboard, DA keymap
# Author: Andreas Ott
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
BX_KEY_0 '0' XK_0
BX_KEY_0+BX_KEY_ALT_R '}' XK_braceright
BX_KEY_0+BX_KEY_SHIFT_L '=' XK_equal
BX_KEY_1 '1' XK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' XK_exclam
BX_KEY_1+BX_KEY_ALT_R '<27>' XK_exclamdown
BX_KEY_2 '2' XK_2
BX_KEY_2+BX_KEY_SHIFT_L '=' XK_quotedbl
BX_KEY_2+BX_KEY_ALT_R '@' XK_at # XK_twosuperior
BX_KEY_3 '3' XK_3
BX_KEY_3+BX_KEY_SHIFT_L '#' XK_numbersign
BX_KEY_3+BX_KEY_ALT_R '<27>' XK_sterling
BX_KEY_4 '4' XK_4
BX_KEY_4+BX_KEY_SHIFT_L '<27>' XK_currency
BX_KEY_4+BX_KEY_ALT_R '$' XK_dollar
BX_KEY_5 '5' XK_5
BX_KEY_5+BX_KEY_ALT_R '<27>' XK_onehalf
BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_6 '6' XK_6
BX_KEY_6+BX_KEY_SHIFT_L '&' XK_ampersand
BX_KEY_6+BX_KEY_ALT_R '<27>' XK_yen
BX_KEY_7 '7' XK_7
BX_KEY_7+BX_KEY_ALT_R '{' XK_braceleft
BX_KEY_7+BX_KEY_SHIFT_L '/' XK_slash
BX_KEY_8 '8' XK_8
BX_KEY_8+BX_KEY_ALT_R '[' XK_bracketleft
BX_KEY_8+BX_KEY_SHIFT_L '(' XK_parenleft
BX_KEY_9 '9' XK_9
BX_KEY_9+BX_KEY_ALT_R ']' XK_bracketright
BX_KEY_9+BX_KEY_SHIFT_L ')' XK_parenright
BX_KEY_A+BX_KEY_SHIFT_L 'A' XK_A
BX_KEY_A 'a' XK_a
BX_KEY_A+BX_KEY_ALT_R '<27>' XK_ordfeminine
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_B 'b' XK_b
BX_KEY_B+BX_KEY_ALT_R none XK_rightdoublequotemark
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C 'c' XK_c
BX_KEY_C+BX_KEY_ALT_R '<27>' XK_copyright
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D 'd' XK_d
BX_KEY_D+BX_KEY_ALT_R '<27>' XK_eth
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E+BX_KEY_ALT_R '?' XK_EuroSign
BX_KEY_E 'e' XK_e
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_F+BX_KEY_ALT_R '?' XK_dstroke
BX_KEY_F 'f' XK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_G+BX_KEY_ALT_R '?' XK_eng
BX_KEY_G 'g' XK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_H 'h' XK_h
BX_KEY_H+BX_KEY_ALT_R '?' XK_hstroke
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_I 'i' XK_i
BX_KEY_I+BX_KEY_ALT_R none XK_rightarrow
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_J 'j' XK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_K 'k' XK_k
BX_KEY_K+BX_KEY_ALT_R none XK_kra
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_L 'l' XK_l
BX_KEY_M+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_M 'm' XK_m
BX_KEY_M+BX_KEY_ALT_R '<27>' XK_mu
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_N 'n' XK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_O 'o' XK_o
BX_KEY_O+BX_KEY_ALT_R none XK_oslash
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_P 'p' XK_p
BX_KEY_P+BX_KEY_ALT_R '<27>' XK_thorn
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_Q+BX_KEY_ALT_R '@' XK_at
BX_KEY_Q 'q' XK_q
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R+BX_KEY_ALT_R '<27>' XK_registered
BX_KEY_R 'r' XK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S 's' XK_s
BX_KEY_S+BX_KEY_ALT_R '<27>' XK_ssharp
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T 't' XK_t
BX_KEY_T+BX_KEY_ALT_R '<27>' XK_thorn
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_U+BX_KEY_ALT_R none XK_downarrow
BX_KEY_U 'u' XK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V+BX_KEY_ALT_R none XK_leftdoublequotemark
BX_KEY_V 'v' XK_v
BX_KEY_W+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_W+BX_KEY_ALT_R '?' XK_lstroke
BX_KEY_W 'w' XK_w
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X+BX_KEY_ALT_R '<27>' XK_guillemotright
BX_KEY_X 'x' XK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_Y+BX_KEY_ALT_R none XK_leftarrow
BX_KEY_Y 'y' XK_y
BX_KEY_Z+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_Z+BX_KEY_ALT_R '<27>' XK_guillemotleft
BX_KEY_Z 'z' XK_z
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_BACKSLASH apostrophe XK_apostrophe
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '*' XK_asterisk
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA ',' XK_comma
BX_KEY_COMMA+BX_KEY_ALT_R none XK_horizconnector
BX_KEY_COMMA+BX_KEY_SHIFT_L ';' XK_semicolon
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS none XK_acute
BX_KEY_EQUALS+BX_KEY_ALT_R '|' XK_bar
BX_KEY_EQUALS+BX_KEY_SHIFT_L '`' XK_grave
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE '<27>' XK_onehalf
BX_KEY_GRAVE+BX_KEY_SHIFT_L '<27>' XK_section
BX_KEY_GRAVE+BX_KEY_ALT_R '<27>' XK_threequarters
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BACKSLASH+BX_KEY_ALT_R backslash XK_backslash
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '>' XK_greater
BX_KEY_LEFT_BACKSLASH '<' XK_less
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '<27>' XK_Aring
BX_KEY_LEFT_BRACKET+BX_KEY_ALT_L none XK_diaeresis
BX_KEY_LEFT_BRACKET '<27>' XK_aring
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS+BX_KEY_ALT_R '<27>' XK_plusminus
BX_KEY_MINUS+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_MINUS '+' XK_plus
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD+BX_KEY_SHIFT_L ':' XK_colon
BX_KEY_PERIOD '.' XK_period
BX_KEY_PERIOD+BX_KEY_ALT_R '<27>' XK_periodcentered
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET+BX_KEY_ALT_R '~' XK_asciitilde
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '^' XK_asciicircum
BX_KEY_RIGHT_BRACKET '"' XK_diaeresis
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L '<27>' XK_AE
BX_KEY_SEMICOLON '<27>' XK_ae
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE '<27>' XK_oslash
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '<27>' XK_Ooblique
BX_KEY_SLASH+BX_KEY_ALT_R '<27>' XK_hyphen
BX_KEY_SLASH '-' XK_minus
BX_KEY_SLASH+BX_KEY_SHIFT_L '_' XK_underscore
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R

View File

@ -0,0 +1,248 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, DE keymap
# Author: Volker Ruppert
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
BX_KEY_0 '0' XK_0
BX_KEY_0+BX_KEY_ALT_R '}' XK_braceright
BX_KEY_0+BX_KEY_SHIFT_L '=' XK_equal
BX_KEY_1 '1' XK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' XK_exclam
BX_KEY_1+BX_KEY_ALT_R '<27>' XK_onesuperior
BX_KEY_2 '2' XK_2
BX_KEY_2+BX_KEY_SHIFT_L '"' XK_quotedbl
BX_KEY_2+BX_KEY_ALT_R '<27>' XK_twosuperior
BX_KEY_3 '3' XK_3
BX_KEY_3+BX_KEY_SHIFT_L '<27>' XK_section
BX_KEY_3+BX_KEY_ALT_R '<27>' XK_threesuperior
BX_KEY_4 '4' XK_4
BX_KEY_4+BX_KEY_SHIFT_L '$' XK_dollar
BX_KEY_4+BX_KEY_ALT_R '<27>' XK_onequarter
BX_KEY_5 '5' XK_5
BX_KEY_5+BX_KEY_ALT_R '<27>' XK_onehalf
BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_6 '6' XK_6
BX_KEY_6+BX_KEY_SHIFT_L '&' XK_ampersand
BX_KEY_6+BX_KEY_ALT_R '<27>' XK_threequarters
BX_KEY_7 '7' XK_7
BX_KEY_7+BX_KEY_ALT_R '{' XK_braceleft
BX_KEY_7+BX_KEY_SHIFT_L '/' XK_slash
BX_KEY_8 '8' XK_8
BX_KEY_8+BX_KEY_ALT_R '[' XK_bracketleft
BX_KEY_8+BX_KEY_SHIFT_L '(' XK_parenleft
BX_KEY_9 '9' XK_9
BX_KEY_9+BX_KEY_ALT_R ']' XK_bracketright
BX_KEY_9+BX_KEY_SHIFT_L ')' XK_parenright
BX_KEY_A+BX_KEY_SHIFT_L 'A' XK_A
BX_KEY_A 'a' XK_a
BX_KEY_A+BX_KEY_ALT_R '<27>' XK_ae
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_B 'b' XK_b
BX_KEY_B+BX_KEY_ALT_R none XK_rightdoublequotemark
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C 'c' XK_c
BX_KEY_C+BX_KEY_ALT_R '<27>' XK_cent
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D 'd' XK_d
BX_KEY_D+BX_KEY_ALT_R '<27>' XK_eth
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E+BX_KEY_ALT_R none XK_EuroSign
BX_KEY_E 'e' XK_e
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_F+BX_KEY_ALT_R none XK_dstroke
BX_KEY_F 'f' XK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_G+BX_KEY_ALT_R none XK_eng
BX_KEY_G 'g' XK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_H 'h' XK_h
BX_KEY_H+BX_KEY_ALT_R none XK_hstroke
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_I 'i' XK_i
BX_KEY_I+BX_KEY_ALT_R none XK_rightarrow
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_J 'j' XK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_K 'k' XK_k
BX_KEY_K+BX_KEY_ALT_R none XK_kra
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_L 'l' XK_l
BX_KEY_M+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_M 'm' XK_m
BX_KEY_M+BX_KEY_ALT_R '<27>' XK_mu
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_N 'n' XK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_O 'o' XK_o
BX_KEY_O+BX_KEY_ALT_R '<27>' XK_oslash
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_P 'p' XK_p
BX_KEY_P+BX_KEY_ALT_R '<27>' XK_thorn
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_Q+BX_KEY_ALT_R '@' XK_at
BX_KEY_Q 'q' XK_q
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R+BX_KEY_ALT_R '<27>' XK_paragraph
BX_KEY_R 'r' XK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S 's' XK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T 't' XK_t
BX_KEY_T+BX_KEY_ALT_R none XK_tslash
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_U+BX_KEY_ALT_R none XK_downarrow
BX_KEY_U 'u' XK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V+BX_KEY_ALT_R none XK_leftdoublequotemark
BX_KEY_V 'v' XK_v
BX_KEY_W+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_W+BX_KEY_ALT_R none XK_lstroke
BX_KEY_W 'w' XK_w
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X+BX_KEY_ALT_R '<27>' XK_guillemotright
BX_KEY_X 'x' XK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_Y+BX_KEY_ALT_R none XK_leftarrow
BX_KEY_Y 'z' XK_z
BX_KEY_Z+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_Z+BX_KEY_ALT_R '<27>' XK_guillemotleft
BX_KEY_Z 'y' XK_y
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_ALT_R none XK_ISO_Level3_Shift
BX_KEY_BACKSLASH apostrophe XK_apostrophe
BX_KEY_BACKSLASH '#' XK_numbersign
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA ',' XK_comma
BX_KEY_COMMA+BX_KEY_ALT_R none XK_horizconnector
BX_KEY_COMMA+BX_KEY_SHIFT_L ';' XK_semicolon
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS none XK_acute
BX_KEY_EQUALS+BX_KEY_ALT_R '<27>' XK_cedilla
BX_KEY_EQUALS+BX_KEY_SHIFT_L '`' XK_grave
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE '^' XK_asciicircum
BX_KEY_GRAVE+BX_KEY_SHIFT_L '<27>' XK_degree
BX_KEY_GRAVE+BX_KEY_ALT_R '<27>' XK_notsign
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BACKSLASH+BX_KEY_ALT_R '|' XK_bar
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '>' XK_greater
BX_KEY_LEFT_BACKSLASH '<' XK_less
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '<27>' XK_Udiaeresis
BX_KEY_LEFT_BRACKET+BX_KEY_ALT_L none XK_diaeresis
BX_KEY_LEFT_BRACKET '<27>' XK_udiaeresis
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS+BX_KEY_ALT_L backslash XK_backslash
BX_KEY_MINUS+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_MINUS '<27>' XK_ssharp
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD+BX_KEY_SHIFT_L ':' XK_colon
BX_KEY_PERIOD '.' XK_period
BX_KEY_PERIOD+BX_KEY_ALT_L '<27>' XK_periodcentered
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET+BX_KEY_ALT_R '~' XK_asciitilde
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '*' XK_asterisk
BX_KEY_RIGHT_BRACKET '+' XK_plus
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L '<27>' XK_Odiaeresis
BX_KEY_SEMICOLON '<27>' XK_odiaeresis
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '<27>' XK_Adiaeresis
BX_KEY_SINGLE_QUOTE '<27>' XK_adiaeresis
BX_KEY_SLASH none XK_dead_belowdot
BX_KEY_SLASH '-' XK_minus
BX_KEY_SLASH+BX_KEY_SHIFT_L '_' XK_underscore
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R

View File

@ -0,0 +1,217 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, ES keymap
# Author: Vicente Hernando Ara
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
#
BX_KEY_0 none XK_0
BX_KEY_0 none XK_equal
BX_KEY_1 none XK_1
BX_KEY_1 none XK_bar
BX_KEY_1 none XK_exclam
BX_KEY_2 none XK_2
BX_KEY_2 none XK_at
BX_KEY_2 none XK_quotedbl
BX_KEY_3 none XK_3
BX_KEY_3 none XK_numbersign
BX_KEY_3 none XK_periodcentered
BX_KEY_4 none XK_4
BX_KEY_4 none XK_dollar
BX_KEY_5 none XK_5
BX_KEY_5 none XK_percent
BX_KEY_6 none XK_6
BX_KEY_6 none XK_ampersand
BX_KEY_7 none XK_7
BX_KEY_7 none XK_slash
BX_KEY_8 none XK_8
BX_KEY_8 none XK_parenleft
BX_KEY_9 none XK_9
BX_KEY_9 none XK_parenright
BX_KEY_A none XK_A
BX_KEY_A none XK_a
BX_KEY_B none XK_B
BX_KEY_B none XK_b
BX_KEY_C none XK_C
BX_KEY_C none XK_c
BX_KEY_D none XK_D
BX_KEY_D none XK_d
BX_KEY_E none XK_E
BX_KEY_E none XK_EuroSign
BX_KEY_E none XK_e
BX_KEY_F none XK_F
BX_KEY_F none XK_f
BX_KEY_G none XK_G
BX_KEY_G none XK_g
BX_KEY_H none XK_H
BX_KEY_H none XK_h
BX_KEY_I none XK_I
BX_KEY_I none XK_i
BX_KEY_J none XK_J
BX_KEY_J none XK_j
BX_KEY_K none XK_K
BX_KEY_K none XK_k
BX_KEY_L none XK_L
BX_KEY_L none XK_l
BX_KEY_M none XK_M
BX_KEY_M none XK_m
BX_KEY_N none XK_N
BX_KEY_N none XK_n
BX_KEY_O none XK_O
BX_KEY_O none XK_o
BX_KEY_P none XK_P
BX_KEY_P none XK_p
BX_KEY_Q none XK_Q
BX_KEY_Q none XK_q
BX_KEY_R none XK_R
BX_KEY_R none XK_r
BX_KEY_S none XK_S
BX_KEY_S none XK_s
BX_KEY_T none XK_T
BX_KEY_T none XK_t
BX_KEY_U none XK_U
BX_KEY_U none XK_u
BX_KEY_V none XK_V
BX_KEY_V none XK_v
BX_KEY_W none XK_W
BX_KEY_W none XK_w
BX_KEY_X none XK_X
BX_KEY_X none XK_x
BX_KEY_Y none XK_Y
BX_KEY_Y none XK_y
BX_KEY_Z none XK_Z
BX_KEY_Z none XK_z
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_BACKSLASH none XK_Ccedilla
BX_KEY_BACKSLASH none XK_ccedilla
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA none XK_comma
BX_KEY_COMMA none XK_semicolon
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER none XK_Return
BX_KEY_EQUALS none XK_exclamdown
BX_KEY_EQUALS none XK_questiondown
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE none XK_asciitilde
BX_KEY_GRAVE none XK_backslash
BX_KEY_GRAVE none XK_grave
BX_KEY_GRAVE none XK_masculine
BX_KEY_GRAVE none XK_ordfeminine
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BACKSLASH none XK_greater
BX_KEY_LEFT_BACKSLASH none XK_less
BX_KEY_LEFT_BRACKET none XK_braceleft
BX_KEY_LEFT_BRACKET none XK_bracketleft
BX_KEY_LEFT_BRACKET none XK_dead_circumflex
BX_KEY_LEFT_BRACKET none XK_dead_grave
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS none XK_apostrophe
BX_KEY_MINUS none XK_question
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD none XK_colon
BX_KEY_PERIOD none XK_period
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET none XK_asterisk
BX_KEY_RIGHT_BRACKET none XK_braceright
BX_KEY_RIGHT_BRACKET none XK_bracketright
BX_KEY_RIGHT_BRACKET none XK_plus
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON none XK_Ntilde
BX_KEY_SEMICOLON none XK_ntilde
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE none XK_dead_acute
BX_KEY_SINGLE_QUOTE none XK_dead_diaeresis
BX_KEY_SLASH none XK_minus
BX_KEY_SLASH none XK_underscore
BX_KEY_SPACE none XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB none XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R

View File

@ -0,0 +1,218 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, FR keymap
# Author: Christophe Bothamy, Bryce Denney
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
BX_KEY_0+BX_KEY_SHIFT_L '0' XK_0
BX_KEY_0 '<27>' XK_agrave
BX_KEY_0+BX_KEY_ALT_R '@' XK_at
BX_KEY_1+BX_KEY_SHIFT_L '1' XK_1
BX_KEY_1 '&' XK_ampersand
BX_KEY_2+BX_KEY_SHIFT_L '2' XK_2
BX_KEY_2+BX_KEY_ALT_R '~' XK_asciitilde
BX_KEY_2 '<27>' XK_eacute
BX_KEY_3+BX_KEY_SHIFT_L '3' XK_3
BX_KEY_3+BX_KEY_ALT_R '#' XK_numbersign
BX_KEY_3 '"' XK_quotedbl
BX_KEY_4+BX_KEY_SHIFT_L '4' XK_4
BX_KEY_4 apostrophe XK_apostrophe
BX_KEY_4+BX_KEY_ALT_R '{' XK_braceleft
BX_KEY_5+BX_KEY_SHIFT_L '5' XK_5
BX_KEY_5+BX_KEY_ALT_R '[' XK_bracketleft
BX_KEY_5 '(' XK_parenleft
BX_KEY_6+BX_KEY_SHIFT_L '6' XK_6
BX_KEY_6+BX_KEY_ALT_R '|' XK_bar
BX_KEY_6 '-' XK_minus
BX_KEY_7+BX_KEY_SHIFT_L '7' XK_7
BX_KEY_7 '<27>' XK_egrave
BX_KEY_7+BX_KEY_ALT_R '`' XK_grave
BX_KEY_8+BX_KEY_SHIFT_L '8' XK_8
BX_KEY_8+BX_KEY_ALT_R backslash XK_backslash
BX_KEY_8 '_' XK_underscore
BX_KEY_9+BX_KEY_SHIFT_L '9' XK_9
BX_KEY_9+BX_KEY_ALT_R '^' XK_asciicircum
BX_KEY_9 '<27>' XK_ccedilla
BX_KEY_A+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_A 'q' XK_q
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_B 'b' XK_b
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C 'c' XK_c
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D 'd' XK_d
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E 'e' XK_e
BX_KEY_E+BX_KEY_ALT_R none XK_EuroSign
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_F 'f' XK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_G 'g' XK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_H 'h' XK_h
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_I 'i' XK_i
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_J 'j' XK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_K 'k' XK_k
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_L 'l' XK_l
BX_KEY_M+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_M ',' XK_comma
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_N 'n' XK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_O 'o' XK_o
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_P 'p' XK_p
BX_KEY_Q+BX_KEY_SHIFT_L 'A' XK_A
BX_KEY_Q 'a' XK_a
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R 'r' XK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S 's' XK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T 't' XK_t
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_U 'u' XK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V 'v' XK_v
BX_KEY_W+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_W 'z' XK_z
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X 'x' XK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_Y 'y' XK_y
BX_KEY_Z+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_Z 'w' XK_w
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_BACKSLASH '*' XK_asterisk
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '<27>' XK_mu
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA+BX_KEY_SHIFT_L '.' XK_period
BX_KEY_COMMA ';' XK_semicolon
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS+BX_KEY_ALT_R '}' XK_braceright
BX_KEY_EQUALS '=' XK_equal
BX_KEY_EQUALS+BX_KEY_SHIFT_L '+' XK_plus
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE '<27>' XK_twosuperior
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '>' XK_greater
BX_KEY_LEFT_BACKSLASH '<' XK_less
BX_KEY_LEFT_BRACKET '^' XK_dead_circumflex
BX_KEY_LEFT_BRACKET none XK_dead_diaeresis
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS+BX_KEY_ALT_R ']' XK_bracketright
BX_KEY_MINUS+BX_KEY_SHIFT_L '<27>' XK_degree
BX_KEY_MINUS ')' XK_parenright
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD ':' XK_colon
BX_KEY_PERIOD+BX_KEY_SHIFT_L '/' XK_slash
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET+BX_KEY_ALT_R '<27>' XK_currency
BX_KEY_RIGHT_BRACKET '$' XK_dollar
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '<27>' XK_sterling
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_SEMICOLON 'm' XK_m
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_SINGLE_QUOTE '<27>' XK_ugrave
BX_KEY_SLASH '!' XK_exclam
BX_KEY_SLASH+BX_KEY_SHIFT_L '<27>' XK_section
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R

View File

@ -0,0 +1,207 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, IT keymap
# Author: Emanuele Goldoni
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
#
BX_KEY_0 '0' XK_0
BX_KEY_0+BX_KEY_SHIFT_L '=' XK_equal
BX_KEY_1 '1' XK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' XK_exclam
BX_KEY_2 '2' XK_2
BX_KEY_2+BX_KEY_SHIFT_L '"' XK_quotedbl
BX_KEY_3 '3' XK_3
BX_KEY_3+BX_KEY_SHIFT_L '<27>' XK_sterling
BX_KEY_4 '4' XK_4
BX_KEY_4+BX_KEY_SHIFT_L '$' XK_dollar
BX_KEY_5 '5' XK_5
BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_6 '6' XK_6
BX_KEY_6+BX_KEY_SHIFT_L '&' XK_ampersand
BX_KEY_7 '7' XK_7
BX_KEY_7+BX_KEY_SHIFT_L '/' XK_slash
BX_KEY_8 '8' XK_8
BX_KEY_8+BX_KEY_SHIFT_L '(' XK_parenleft
BX_KEY_9 '9' XK_9
BX_KEY_9+BX_KEY_SHIFT_L ')' XK_parenright
BX_KEY_A+BX_KEY_SHIFT_L 'A' XK_A
BX_KEY_A 'a' XK_a
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_B 'b' XK_b
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C 'c' XK_c
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D 'd' XK_d
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E 'e' XK_e
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_F 'f' XK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_G 'g' XK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_H 'h' XK_h
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_I 'i' XK_i
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_J 'j' XK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_K 'k' XK_k
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_L 'l' XK_l
BX_KEY_M+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_M 'm' XK_m
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_N 'n' XK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_O 'o' XK_o
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_P 'p' XK_p
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_Q 'q' XK_q
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R 'r' XK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S 's' XK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T 't' XK_t
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_U 'u' XK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V 'v' XK_v
BX_KEY_W+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_W 'w' XK_w
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X 'x' XK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_Y 'y' XK_y
BX_KEY_Z+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_Z 'z' XK_z
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_BACKSLASH '<27>' XK_ugrave
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '<27>' XK_section
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '>' XK_greater
BX_KEY_LEFT_BACKSLASH '<' XK_less
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA ',' XK_comma
BX_KEY_COMMA+BX_KEY_SHIFT_L ';' XK_semicolon
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS '<27>' XK_igrave
BX_KEY_EQUALS+BX_KEY_SHIFT_L '^' XK_asciicircum
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE+BX_KEY_SHIFT_L '|' XK_bar
BX_KEY_GRAVE backslash XK_backslash
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '<27>' XK_eacute
BX_KEY_LEFT_BRACKET '<27>' XK_egrave
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS apostrophe XK_apostrophe
BX_KEY_MINUS+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD+BX_KEY_SHIFT_L ':' XK_colon
BX_KEY_PERIOD '.' XK_period
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '*' XK_asterisk
BX_KEY_RIGHT_BRACKET '+' XK_plus
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L '<27>' XK_ccedilla
BX_KEY_SEMICOLON '<27>' XK_ograve
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE '<27>' XK_agrave
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '<27>' XK_degree
BX_KEY_SLASH+BX_KEY_SHIFT_L '_' XK_underscore
BX_KEY_SLASH '-' XK_minus
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R

View File

@ -0,0 +1,211 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, RU keymap
# Author: Dmitry Soshnikov
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
#
# Note: this is charset-1251 layout map (using in Windows and some newest
# implementations of Linux), which works properly. Users of KOI8-R should
# slightly modify the map to achieve proper matching (actually didn't tested.
# - D.S.) It concerns of "," and "." symbols, which are placed on the second
# row of the keyboard (instead of placing it on "?/" button in charset-1251),
# and some other (unimportant) symbols. Main symbolic keyboard should work.
BX_KEY_0 '0' XK_0
BX_KEY_0+BX_KEY_SHIFT_L ')' XK_parenright
BX_KEY_1 '1' XK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' XK_exclam
BX_KEY_2 '2' XK_2
BX_KEY_2+BX_KEY_SHIFT_L '"' XK_quotedbl
BX_KEY_3 '3' XK_3
BX_KEY_3+BX_KEY_SHIFT_L '?' XK_numerosign
BX_KEY_4 '4' XK_4
BX_KEY_4+BX_KEY_SHIFT_L ';' XK_semicolon
BX_KEY_5 '5' XK_5
BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_6 '6' XK_6
BX_KEY_6+BX_KEY_SHIFT_L ':' XK_colon
BX_KEY_7 '7' XK_7
BX_KEY_7+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_8 '8' XK_8
BX_KEY_8+BX_KEY_SHIFT_L '*' XK_asterisk
BX_KEY_9 '9' XK_9
BX_KEY_9+BX_KEY_SHIFT_L '(' XK_parenleft
BX_KEY_A+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_EF
BX_KEY_A '<27>' XK_Cyrillic_ef
BX_KEY_B+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_I
BX_KEY_B '<27>' XK_Cyrillic_i
BX_KEY_C+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_ES
BX_KEY_C '<27>' XK_Cyrillic_es
BX_KEY_D+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_VE
BX_KEY_D '<27>' XK_Cyrillic_ve
BX_KEY_E+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_U
BX_KEY_E '<27>' XK_Cyrillic_u
BX_KEY_F+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_A
BX_KEY_F '<27>' XK_Cyrillic_a
BX_KEY_G+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_PE
BX_KEY_G '<27>' XK_Cyrillic_pe
BX_KEY_H+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_ER
BX_KEY_H '<27>' XK_Cyrillic_er
BX_KEY_I+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_SHA
BX_KEY_I '<27>' XK_Cyrillic_sha
BX_KEY_J+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_O
BX_KEY_J '<27>' XK_Cyrillic_o
BX_KEY_K+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_EL
BX_KEY_K '<27>' XK_Cyrillic_el
BX_KEY_L+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_DE
BX_KEY_L '<27>' XK_Cyrillic_de
BX_KEY_M+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_SOFTSIGN
BX_KEY_M '<27>' XK_Cyrillic_softsign
BX_KEY_N+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_TE
BX_KEY_N '<27>' XK_Cyrillic_te
BX_KEY_O+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_SHCHA
BX_KEY_O '<27>' XK_Cyrillic_shcha
BX_KEY_P+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_ZE
BX_KEY_P '<27>' XK_Cyrillic_ze
BX_KEY_Q+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_SHORTI
BX_KEY_Q '<27>' XK_Cyrillic_shorti
BX_KEY_R+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_KA
BX_KEY_R '<27>' XK_Cyrillic_ka
BX_KEY_S+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_YERU
BX_KEY_S '<27>' XK_Cyrillic_yeru
BX_KEY_T+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_IE
BX_KEY_T '<27>' XK_Cyrillic_ie
BX_KEY_U+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_GHE
BX_KEY_U '<27>' XK_Cyrillic_ghe
BX_KEY_V+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_EM
BX_KEY_V '<27>' XK_Cyrillic_em
BX_KEY_W+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_TSE
BX_KEY_W '<27>' XK_Cyrillic_tse
BX_KEY_X+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_CHE
BX_KEY_X '<27>' XK_Cyrillic_che
BX_KEY_Y+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_EN
BX_KEY_Y '<27>' XK_Cyrillic_en
BX_KEY_Z+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_YA
BX_KEY_Z '<27>' XK_Cyrillic_ya
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_BACKSLASH backslash XK_backslash
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '|' XK_bar
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA '<27>' XK_Cyrillic_be
BX_KEY_COMMA+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_BE
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS '=' XK_equal
BX_KEY_EQUALS+BX_KEY_SHIFT_L '+' XK_plus
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_IO
BX_KEY_GRAVE '<27>' XK_Cyrillic_io
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_HA
BX_KEY_LEFT_BRACKET '<27>' XK_Cyrillic_ha
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS '-' XK_minus
BX_KEY_MINUS+BX_KEY_SHIFT_L '_' XK_underscore
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_YU
BX_KEY_PERIOD '<27>' XK_Cyrillic_yu
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_HARDSIGN
BX_KEY_RIGHT_BRACKET '<27>' XK_Cyrillic_hardsign
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_ZHE
BX_KEY_SEMICOLON '<27>' XK_Cyrillic_zhe
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE '<27>' XK_Cyrillic_e
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '<27>' XK_Cyrillic_E
BX_KEY_SLASH+BX_KEY_SHIFT_L ',' XK_comma
BX_KEY_SLASH '.' XK_period
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R

View File

@ -0,0 +1,278 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, SE keymap
# Author: Magnus 'Moggen' <20>berg
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
#
# Upper key groups
BX_KEY_ESC none XK_Escape
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
# Main key group
# Row 1
BX_KEY_GRAVE '<27>' XK_section
BX_KEY_GRAVE+BX_KEY_SHIFT_L '<27>' XK_onehalf
BX_KEY_GRAVE+BX_KEY_ALT_R '<27>' XK_paragraph
BX_KEY_GRAVE+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_threequarters
BX_KEY_1 '1' XK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' XK_exclam
BX_KEY_1+BX_KEY_ALT_R '<27>' XK_exclamdown
BX_KEY_1+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_onesuperior
BX_KEY_2 '2' XK_2
BX_KEY_2+BX_KEY_SHIFT_L '"' XK_quotedbl
BX_KEY_2+BX_KEY_ALT_R '@' XK_at
BX_KEY_2+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_twosuperior
BX_KEY_3 '3' XK_3
BX_KEY_3+BX_KEY_SHIFT_L '#' XK_numbersign
BX_KEY_3+BX_KEY_ALT_R '<27>' XK_sterling
BX_KEY_3+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_threesuperior
BX_KEY_4 '4' XK_4
BX_KEY_4+BX_KEY_SHIFT_L '<27>' XK_currency
BX_KEY_4+BX_KEY_ALT_R '$' XK_dollar
BX_KEY_4+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_onequarter
BX_KEY_5 '5' XK_5
BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_5+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_cent
BX_KEY_6 '6' XK_6
BX_KEY_6+BX_KEY_SHIFT_L '&' XK_ampersand
BX_KEY_6+BX_KEY_ALT_R '<27>' XK_yen
BX_KEY_7 '7' XK_7
BX_KEY_7+BX_KEY_SHIFT_L '/' XK_slash
BX_KEY_7+BX_KEY_ALT_R '{' XK_braceleft
BX_KEY_7+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_division
BX_KEY_8 '8' XK_8
BX_KEY_8+BX_KEY_SHIFT_L '(' XK_parenleft
BX_KEY_8+BX_KEY_ALT_R '[' XK_bracketleft
BX_KEY_9 '9' XK_9
BX_KEY_9+BX_KEY_SHIFT_L ')' XK_parenright
BX_KEY_9+BX_KEY_ALT_R ']' XK_bracketright
BX_KEY_0 '0' XK_0
BX_KEY_0+BX_KEY_SHIFT_L '=' XK_equal
BX_KEY_0+BX_KEY_ALT_R '}' XK_braceright
BX_KEY_0+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_degree
BX_KEY_MINUS '+' XK_plus
BX_KEY_MINUS+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_MINUS+BX_KEY_ALT_L backslash XK_backslash
BX_KEY_MINUS+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_questiondown
BX_KEY_EQUALS none XK_dead_acute
BX_KEY_EQUALS+BX_KEY_SHIFT_L none XK_dead_grave
BX_KEY_EQUALS+BX_KEY_ALT_L '<27>' XK_plusminus
BX_KEY_EQUALS+BX_KEY_ALT_L+BX_KEY_ALT_R '<27>' XK_notsign
BX_KEY_BACKSPACE none XK_BackSpace
# Row 2
BX_KEY_TAB tab XK_Tab
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_Q 'q' XK_q
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_W 'w' XK_w
BX_KEY_W+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_E 'e' XK_e
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E+BX_KEY_SHIFT_L+BX_KEY_ALT_R none XK_EuroSign
BX_KEY_R 'r' XK_r
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R+BX_KEY_ALT_R '<27>' XK_registered
BX_KEY_T 't' XK_t
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T+BX_KEY_ALT_R '<27>' XK_thorn
BX_KEY_T+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_THORN
BX_KEY_Y 'y' XK_y
BX_KEY_Y+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_U 'u' XK_u
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_I 'i' XK_i
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_O 'o' XK_o
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_P 'p' XK_p
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_LEFT_BRACKET '<27>' XK_aring
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '<27>' XK_Aring
BX_KEY_RIGHT_BRACKET none XK_dead_diaeresis
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L none XK_dead_circumflex
BX_KEY_RIGHT_BRACKET+BX_KEY_ALT_R none XK_dead_tilde
BX_KEY_ENTER return XK_Return
# Row 3
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_A 'a' XK_a
BX_KEY_A+BX_KEY_SHIFT_L 'A' XK_A
BX_KEY_A+BX_KEY_ALT_R '<27>' XK_ordfeminine
BX_KEY_A+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_masculine
BX_KEY_S 's' XK_s
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S+BX_KEY_ALT_R '<27>' XK_ssharp
BX_KEY_D 'd' XK_d
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D+BX_KEY_ALT_R '<27>' XK_eth
BX_KEY_D+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_ETH
BX_KEY_F 'f' XK_f
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_G 'g' XK_g
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_H 'h' XK_h
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_J 'j' XK_j
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_K 'k' XK_k
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_L 'l' XK_l
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_SEMICOLON '<27>' XK_odiaeresis
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L '<27>' XK_Odiaeresis
BX_KEY_SEMICOLON+BX_KEY_ALT_R '<27>' XK_oslash
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_Ooblique
BX_KEY_SINGLE_QUOTE '<27>' XK_adiaeresis
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '<27>' XK_Adiaeresis
BX_KEY_SINGLE_QUOTE+BX_KEY_ALT_R '<27>' XK_ae
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_AE
BX_KEY_BACKSLASH apostrophe XK_apostrophe
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '*' XK_asterisk
BX_KEY_BACKSLASH+BX_KEY_ALT_R '<27>' XK_acute
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_multiply
# Row 4
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_LEFT_BACKSLASH '<' XK_less
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '>' XK_greater
BX_KEY_LEFT_BACKSLASH+BX_KEY_ALT_R '|' XK_bar
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L+BX_KEY_ALT_R '<27>' XK_brokenbar
BX_KEY_Z 'z' XK_z
BX_KEY_Z+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_Z+BX_KEY_ALT_R '<27>' XK_guillemotleft
BX_KEY_X 'x' XK_x
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X+BX_KEY_ALT_R '<27>' XK_guillemotright
BX_KEY_C 'c' XK_c
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C+BX_KEY_ALT_R '<27>' XK_copyright
BX_KEY_V 'v' XK_v
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V+BX_KEY_SHIFT_L+BX_KEY_ALT_R '`' XK_grave
BX_KEY_B 'b' XK_b
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_N 'n' XK_n
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_M 'm' XK_m
BX_KEY_M+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_M+BX_KEY_ALT_R '<27>' XK_mu
BX_KEY_COMMA ',' XK_comma
BX_KEY_COMMA+BX_KEY_SHIFT_L ';' XK_semicolon
BX_KEY_PERIOD '.' XK_period
BX_KEY_PERIOD+BX_KEY_SHIFT_L ':' XK_colon
BX_KEY_PERIOD+BX_KEY_ALT_R '<27>' XK_periodcentered
BX_KEY_SLASH '-' XK_minus
BX_KEY_SLASH+BX_KEY_SHIFT '_' XK_underscore
BX_KEY_SLASH+BX_KEY_ALT_R '<27>' XK_hyphen
BX_KEY_SLASH+BX_KEY_SHIFT+BX_KEY_ALT_R '<27>' XK_macron
BX_KEY_SHIFT_R none XK_Shift_R
# Row 5
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_WIN_L none XK_Super_L
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_SPACE space XK_space
BX_KEY_SPACE+BX_KEY_ALT_R none XK_nobreakspace
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_WIN_R none XK_Super_R
BX_KEY_MENU none XK_Menu
BX_KEY_CTRL_R none XK_Control_R
# Ins/Del/Home/End/PgUp/PgDn
BX_KEY_INSERT none XK_Insert
BX_KEY_DELETE none XK_Delete
BX_KEY_HOME none XK_Home
BX_KEY_END none XK_End
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAGE_DOWN none XK_Page_Down
# Arrow keys
BX_KEY_LEFT none XK_Left
BX_KEY_RIGHT none XK_Right
BX_KEY_UP none XK_Up
BX_KEY_DOWN none XK_Down
# Numerical keypad
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete

View File

@ -0,0 +1,206 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, SI keymap
# Author: Mitja Ursic
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
#
BX_KEY_0 '0' XK_0
BX_KEY_0+BX_KEY_SHIFT_L ')' XK_parenright
BX_KEY_1 '1' XK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' XK_exclam
BX_KEY_2 '2' XK_2
BX_KEY_2+BX_KEY_SHIFT_L '@' XK_at
BX_KEY_3 '3' XK_3
BX_KEY_3+BX_KEY_SHIFT_L '#' XK_numbersign
BX_KEY_4 '4' XK_4
BX_KEY_4+BX_KEY_SHIFT_L '$' XK_dollar
BX_KEY_5 '5' XK_5
BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_6 '6' XK_6
BX_KEY_7+BX_KEY_SHIFT_L '&' XK_ampersand
BX_KEY_7 '7' XK_7
BX_KEY_SLASH none XK_cacute
BX_KEY_8 '8' XK_8
BX_KEY_KP_MULTIPLY '*' XK_asterisk
BX_KEY_9 '9' XK_9
BX_KEY_9+BX_KEY_SHIFT_L '(' XK_parenleft
BX_KEY_A+BX_KEY_SHIFT_L 'a' XK_A
BX_KEY_A 'a' XK_a
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_B 'b' XK_b
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C 'c' XK_c
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D 'd' XK_d
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E 'e' XK_e
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_F 'f' XK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_G 'g' XK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_H 'h' XK_h
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_I 'i' XK_i
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_J 'j' XK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_K 'k' XK_k
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_L 'l' XK_l
BX_KEY_M+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_M 'm' XK_m
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_N 'n' XK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_O 'o' XK_o
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_P 'p' XK_p
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_Q 'q' XK_q
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R 'r' XK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S 's' XK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T 't' XK_t
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_U 'u' XK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V 'v' XK_v
BX_KEY_W+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_W 'w' XK_w
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X 'x' XK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_Y 'y' XK_y
BX_KEY_Z+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_Z 'z' XK_z
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_BACKSLASH backslash XK_backslash
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '|' XK_bar
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA ',' XK_comma
BX_KEY_COMMA+BX_KEY_SHIFT_L ';' XK_semicolon
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS '=' XK_zcaron
BX_KEY_KP_ADD '+' XK_plus
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE+BX_KEY_SHIFT_L '~' XK_asciitilde
BX_KEY_GRAVE '`' XK_grave
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '{' XK_Scaron
BX_KEY_LEFT_BRACKET '[' XK_bracketleft
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS '-' XK_minus
BX_KEY_MINUS+BX_KEY_SHIFT_L '_' XK_underscore
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_COMMA ',' XK_comma
BX_KEY_PERIOD '.' XK_period
BX_KEY_PERIOD+BX_KEY_SHIFT_L ':' XK_colon #more >
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '}' XK_Dstroke
BX_KEY_RIGHT_BRACKET ']' XK_bracketright
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_COMMA+BX_KEY_SHIFT_L ';' XK_semicolon #less <
BX_KEY_SEMICOLON ';' XK_ccaron
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L ':' XK_Ccaron
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE apostrophe XK_apostrophe
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '"' XK_quotedbl
BX_KEY_SLASH+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R

View File

@ -0,0 +1,209 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, UK keymap
# Author: Denis Lenihan
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
#
BX_KEY_0 '0' XK_0
BX_KEY_0+BX_KEY_SHIFT_L ')' XK_parenright
BX_KEY_1 '1' XK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' XK_exclam
BX_KEY_2 '2' XK_2
BX_KEY_2+BX_KEY_SHIFT_L '"' XK_quotedbl
BX_KEY_3 '3' XK_3
BX_KEY_3+BX_KEY_SHIFT_L '<27>' XK_sterling
BX_KEY_3+BX_KEY_ALT_R '|' XK_EuroSign
BX_KEY_4 '4' XK_4
BX_KEY_4+BX_KEY_SHIFT_L '$' XK_dollar
BX_KEY_5 '5' XK_5
BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_6 '6' XK_6
BX_KEY_6+BX_KEY_SHIFT_L '^' XK_asciicircum
BX_KEY_7 '7' XK_7
BX_KEY_7+BX_KEY_SHIFT_L '&' XK_ampersand
BX_KEY_8 '8' XK_8
BX_KEY_8+BX_KEY_SHIFT_L '*' XK_asterisk
BX_KEY_9 '9' XK_9
BX_KEY_9+BX_KEY_SHIFT_L '(' XK_parenleft
BX_KEY_A+BX_KEY_SHIFT_L 'A' XK_A
BX_KEY_A 'a' XK_a
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_B 'b' XK_b
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C 'c' XK_c
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D 'd' XK_d
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E 'e' XK_e
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_F 'f' XK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_G 'g' XK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_H 'h' XK_h
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_I 'i' XK_i
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_J 'j' XK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_K 'k' XK_k
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_L 'l' XK_l
BX_KEY_M+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_M 'm' XK_m
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_N 'n' XK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_O 'o' XK_o
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_P 'p' XK_p
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_Q 'q' XK_q
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R 'r' XK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S 's' XK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T 't' XK_t
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_U 'u' XK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V 'v' XK_v
BX_KEY_W+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_W 'w' XK_w
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X 'x' XK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_Y 'y' XK_y
BX_KEY_Z+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_Z 'z' XK_z
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_LEFT_BACKSLASH '\' XK_backslash
BX_KEY_LEFT_BACKSLASH+BX_KEY_SHIFT_L '|' XK_bar
BX_KEY_BACKSLASH '~' XK_asciitilde
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '#' XK_numbersign
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA ',' XK_comma
BX_KEY_COMMA+BX_KEY_SHIFT_L '<' XK_less
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS '=' XK_equal
BX_KEY_EQUALS+BX_KEY_SHIFT_L '+' XK_plus
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE+BX_KEY_SHIFT_L '<27>' XK_notsign
BX_KEY_GRAVE '`' XK_grave
BX_KEY_GRAVE+BX_KEY_ALT_R '|' XK_bar
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '{' XK_braceleft
BX_KEY_LEFT_BRACKET '[' XK_bracketleft
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS '-' XK_minus
BX_KEY_MINUS+BX_KEY_SHIFT_L '_' XK_underscore
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD+BX_KEY_SHIFT_L '>' XK_greater
BX_KEY_PERIOD '.' XK_period
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '}' XK_braceright
BX_KEY_RIGHT_BRACKET ']' XK_bracketright
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L ':' XK_colon
BX_KEY_SEMICOLON ';' XK_semicolon
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE apostrophe XK_apostrophe
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '@' XK_at
BX_KEY_SLASH+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_SLASH '/' XK_slash
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R

View File

@ -0,0 +1,205 @@
# Bochs Keymap file
# $Id$
# Target: PC(x86) keyboard, US keymap
# Author: Christophe Bothamy, Bryce Denney
#
# The keymap file describes the layout of a keyboard, and how it translates
# into Bochs key codes.
#
# Format:
# BX_Keysym ASCII_equivalent Xwin_Keysym
#
# Or, for keys that require modifiers:
# BX_Keysym+BX_Modifier ASCII_equivalent Xwin_Keysym
#
# BX_Keysym and BX_Modifier must be present in the bx_key_symbol[] list in
# gui/keymap.cc. The BX_Modifier is usually a shift key press, but it
# could be any key. Presently a maximum of one modifier is supported, but this
# could be changed in keymap.h (structure def has only one slot for modifier),
# keymap.cc (parsing code), and iodev/keyboard.cc (simulate keypresses for >1
# modifier).
#
# The ASCII_equivalent must be either apostrophe + one character + apostrophe,
# or one of these keywords: space, return, tab, backslash, apostrophe, none.
# This format is designed to look like a char constant in C, but it's a very
# simple parser. There's no concept of backslash being an escape char. The
# backslash and apostrophe entries are provided for aesthetic purposes only: no
# C++ programmer wants to see '\' or '''. The parser doesn't care, but they are
# ugly.
#
# Xwin_Keysym is the X windows equivalent of the key combination. These
# codes should match whatever you find in /usr/X11R6/include/X11/keysymdef.h.
# If you're running X windows, Bochs will take each of these Xwin_Keysyms,
# pull off the XK_ in front, and use XStringToKeysym() to change them into
# numerical codes. If this lookup fails, you will get a panic and you need
# to edit the keymap file.
#
BX_KEY_0 '0' XK_0
BX_KEY_0+BX_KEY_SHIFT_L ')' XK_parenright
BX_KEY_1 '1' XK_1
BX_KEY_1+BX_KEY_SHIFT_L '!' XK_exclam
BX_KEY_2 '2' XK_2
BX_KEY_2+BX_KEY_SHIFT_L '@' XK_at
BX_KEY_3 '3' XK_3
BX_KEY_3+BX_KEY_SHIFT_L '#' XK_numbersign
BX_KEY_4 '4' XK_4
BX_KEY_4+BX_KEY_SHIFT_L '$' XK_dollar
BX_KEY_5 '5' XK_5
BX_KEY_5+BX_KEY_SHIFT_L '%' XK_percent
BX_KEY_6 '6' XK_6
BX_KEY_6+BX_KEY_SHIFT_L '^' XK_asciicircum
BX_KEY_7 '7' XK_7
BX_KEY_7+BX_KEY_SHIFT_L '&' XK_ampersand
BX_KEY_8 '8' XK_8
BX_KEY_8+BX_KEY_SHIFT_L '*' XK_asterisk
BX_KEY_9 '9' XK_9
BX_KEY_9+BX_KEY_SHIFT_L '(' XK_parenleft
BX_KEY_A+BX_KEY_SHIFT_L 'A' XK_A
BX_KEY_A 'a' XK_a
BX_KEY_B+BX_KEY_SHIFT_L 'B' XK_B
BX_KEY_B 'b' XK_b
BX_KEY_C+BX_KEY_SHIFT_L 'C' XK_C
BX_KEY_C 'c' XK_c
BX_KEY_D+BX_KEY_SHIFT_L 'D' XK_D
BX_KEY_D 'd' XK_d
BX_KEY_E+BX_KEY_SHIFT_L 'E' XK_E
BX_KEY_E 'e' XK_e
BX_KEY_F+BX_KEY_SHIFT_L 'F' XK_F
BX_KEY_F 'f' XK_f
BX_KEY_G+BX_KEY_SHIFT_L 'G' XK_G
BX_KEY_G 'g' XK_g
BX_KEY_H+BX_KEY_SHIFT_L 'H' XK_H
BX_KEY_H 'h' XK_h
BX_KEY_I+BX_KEY_SHIFT_L 'I' XK_I
BX_KEY_I 'i' XK_i
BX_KEY_J+BX_KEY_SHIFT_L 'J' XK_J
BX_KEY_J 'j' XK_j
BX_KEY_K+BX_KEY_SHIFT_L 'K' XK_K
BX_KEY_K 'k' XK_k
BX_KEY_L+BX_KEY_SHIFT_L 'L' XK_L
BX_KEY_L 'l' XK_l
BX_KEY_M+BX_KEY_SHIFT_L 'M' XK_M
BX_KEY_M 'm' XK_m
BX_KEY_N+BX_KEY_SHIFT_L 'N' XK_N
BX_KEY_N 'n' XK_n
BX_KEY_O+BX_KEY_SHIFT_L 'O' XK_O
BX_KEY_O 'o' XK_o
BX_KEY_P+BX_KEY_SHIFT_L 'P' XK_P
BX_KEY_P 'p' XK_p
BX_KEY_Q+BX_KEY_SHIFT_L 'Q' XK_Q
BX_KEY_Q 'q' XK_q
BX_KEY_R+BX_KEY_SHIFT_L 'R' XK_R
BX_KEY_R 'r' XK_r
BX_KEY_S+BX_KEY_SHIFT_L 'S' XK_S
BX_KEY_S 's' XK_s
BX_KEY_T+BX_KEY_SHIFT_L 'T' XK_T
BX_KEY_T 't' XK_t
BX_KEY_U+BX_KEY_SHIFT_L 'U' XK_U
BX_KEY_U 'u' XK_u
BX_KEY_V+BX_KEY_SHIFT_L 'V' XK_V
BX_KEY_V 'v' XK_v
BX_KEY_W+BX_KEY_SHIFT_L 'W' XK_W
BX_KEY_W 'w' XK_w
BX_KEY_X+BX_KEY_SHIFT_L 'X' XK_X
BX_KEY_X 'x' XK_x
BX_KEY_Y+BX_KEY_SHIFT_L 'Y' XK_Y
BX_KEY_Y 'y' XK_y
BX_KEY_Z+BX_KEY_SHIFT_L 'Z' XK_Z
BX_KEY_Z 'z' XK_z
BX_KEY_F1 none XK_F1
BX_KEY_F2 none XK_F2
BX_KEY_F3 none XK_F3
BX_KEY_F4 none XK_F4
BX_KEY_F5 none XK_F5
BX_KEY_F6 none XK_F6
BX_KEY_F7 none XK_F7
BX_KEY_F8 none XK_F8
BX_KEY_F9 none XK_F9
BX_KEY_F10 none XK_F10
BX_KEY_F11 none XK_F11
BX_KEY_F12 none XK_F12
BX_KEY_ALT_L none XK_Alt_L
BX_KEY_ALT_L none XK_Meta_L
BX_KEY_ALT_R none XK_Alt_R
BX_KEY_ALT_R none XK_Mode_switch
BX_KEY_ALT_R none XK_Multi_key
BX_KEY_BACKSLASH backslash XK_backslash
BX_KEY_BACKSLASH+BX_KEY_SHIFT_L '|' XK_bar
BX_KEY_BACKSPACE none XK_BackSpace
BX_KEY_CAPS_LOCK none XK_Caps_Lock
BX_KEY_COMMA ',' XK_comma
BX_KEY_COMMA+BX_KEY_SHIFT_L '<' XK_less
BX_KEY_CTRL_L none XK_Control_L
BX_KEY_CTRL_R none XK_Control_R
BX_KEY_DELETE none XK_Delete
BX_KEY_DOWN none XK_Down
BX_KEY_END none XK_End
BX_KEY_ENTER return XK_Return
BX_KEY_EQUALS '=' XK_equal
BX_KEY_EQUALS+BX_KEY_SHIFT_L '+' XK_plus
BX_KEY_ESC none XK_Escape
BX_KEY_GRAVE+BX_KEY_SHIFT_L '~' XK_asciitilde
BX_KEY_GRAVE '`' XK_grave
BX_KEY_HOME none XK_Home
BX_KEY_INSERT none XK_Insert
BX_KEY_KP_5 none XK_KP_5
BX_KEY_KP_5 none XK_KP_Begin
BX_KEY_KP_ADD none XK_KP_Add
BX_KEY_KP_DELETE none XK_KP_Decimal
BX_KEY_KP_DELETE none XK_KP_Delete
BX_KEY_KP_DIVIDE none XK_KP_Divide
BX_KEY_KP_DOWN none XK_KP_2
BX_KEY_KP_DOWN none XK_KP_Down
BX_KEY_KP_END none XK_KP_1
BX_KEY_KP_END none XK_KP_End
BX_KEY_KP_ENTER none XK_KP_Enter
BX_KEY_KP_HOME none XK_KP_7
BX_KEY_KP_HOME none XK_KP_Home
BX_KEY_KP_INSERT none XK_KP_0
BX_KEY_KP_INSERT none XK_KP_Insert
BX_KEY_KP_LEFT none XK_KP_4
BX_KEY_KP_LEFT none XK_KP_Left
BX_KEY_KP_MULTIPLY none XK_KP_Multiply
BX_KEY_KP_PAGE_DOWN none XK_KP_3
BX_KEY_KP_PAGE_DOWN none XK_KP_Page_Down
BX_KEY_KP_PAGE_UP none XK_KP_9
BX_KEY_KP_PAGE_UP none XK_KP_Page_Up
BX_KEY_KP_RIGHT none XK_KP_6
BX_KEY_KP_RIGHT none XK_KP_Right
BX_KEY_KP_SUBTRACT none XK_KP_Subtract
BX_KEY_KP_UP none XK_KP_8
BX_KEY_KP_UP none XK_KP_Up
BX_KEY_LEFT none XK_Left
BX_KEY_LEFT_BRACKET+BX_KEY_SHIFT_L '{' XK_braceleft
BX_KEY_LEFT_BRACKET '[' XK_bracketleft
BX_KEY_MENU none XK_Menu
BX_KEY_MINUS '-' XK_minus
BX_KEY_MINUS+BX_KEY_SHIFT_L '_' XK_underscore
BX_KEY_NUM_LOCK none XK_Num_Lock
BX_KEY_PAGE_DOWN none XK_Page_Down
BX_KEY_PAGE_UP none XK_Page_Up
BX_KEY_PAUSE none XK_Break
BX_KEY_PAUSE none XK_Pause
BX_KEY_PERIOD+BX_KEY_SHIFT_L '>' XK_greater
BX_KEY_PERIOD '.' XK_period
BX_KEY_PRINT none XK_Print
BX_KEY_PRINT none XK_Sys_Req
BX_KEY_RIGHT none XK_Right
BX_KEY_RIGHT_BRACKET+BX_KEY_SHIFT_L '}' XK_braceright
BX_KEY_RIGHT_BRACKET ']' XK_bracketright
BX_KEY_SCRL_LOCK none XK_Scroll_Lock
BX_KEY_SEMICOLON+BX_KEY_SHIFT_L ':' XK_colon
BX_KEY_SEMICOLON ';' XK_semicolon
BX_KEY_SHIFT_L none XK_Shift_L
BX_KEY_SHIFT_R none XK_Shift_R
BX_KEY_SINGLE_QUOTE apostrophe XK_apostrophe
BX_KEY_SINGLE_QUOTE+BX_KEY_SHIFT_L '"' XK_quotedbl
BX_KEY_SLASH+BX_KEY_SHIFT_L '?' XK_question
BX_KEY_SLASH '/' XK_slash
BX_KEY_SPACE space XK_space
BX_KEY_TAB none XK_ISO_Left_Tab
BX_KEY_TAB tab XK_Tab
BX_KEY_UP none XK_Up
BX_KEY_WIN_L none XK_Super_L
BX_KEY_WIN_R none XK_Super_R