# VICE keyboard mapping file
#
# A Keyboard map is read in as patch to the current map.
#
# File format:
# - comment lines start with '#'
# - keyword lines start with '!keyword'
# - normal line has 'keysym/scancode row column shiftflag'
#
# Keywords and their lines are:
# '!CLEAR' clear whole table
# '!INCLUDE filename' read file as mapping file
# '!LSHIFT row col' left shift keyboard row/column
# '!RSHIFT row col' right shift keyboard row/column
# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT)
# '!UNDEF keysym' remove keysym from table
#
# Shiftflag can have the values:
# 0 key is not shifted for this keysym/scancode
# 1 key is shifted for this keysym/scancode
# 2 left shift
# 4 right shift
# 8 key can be shifted or not with this keysym/scancode
# 16 deshift key for this keysym/scancode
# 32 another definition for this keysym/scancode follows
#
# Negative row values:
# 'keysym -1 n' joystick #1, direction n
# 'keysym -2 n' joystick #2, direction n
# 'keysym -3 0' first RESTORE key
# 'keysym -3 1' second RESTORE key
# 'keysym -4 0' 40/80 column key
# 'keysym -4 1' CAPS (ASCII/DIN) key
#
!CLEAR
!LSHIFT 8 4
!RSHIFT 8 3
!VSHIFT RSHIFT
#0 -1 -1 0 /* (no key) */
1 7 0 8 /* ESC -> ESC */
2 9 1 8 /* 1 -> 1 */
3 10 1 8 /* 2 -> 2 */
4 11 1 8 /* 3 -> 3 */
5 12 1 8 /* 4 -> 4 */
6 13 1 8 /* 5 -> 5 */
7 13 2 8 /* 6 -> 6 */
8 14 1 8 /* 7 -> 7 */
9 15 1 8 /* 8 -> 8 */
10 0 1 8 /* 9 -> 9 */
11 1 1 8 /* 0 -> 0 */
12 1 2 8 /* Minus -> Minus */
13 2 1 8 /* Equal -> Equal */
14 3 3 8 /* Backspace -> Del */
15 8 2 8 /* TAB -> TAB */
16 9 2 8 /* Q -> Q */
17 10 2 8 /* W -> W */
18 11 2 8 /* E -> E */
19 12 2 8 /* R -> R */
20 12 3 8 /* T -> T */
21 13 3 8 /* Y -> Y */
22 14 2 8 /* U -> U */
23 15 2 8 /* I -> I */
24 0 2 8 /* O -> O */
25 1 3 8 /* P -> P */
26 1 4 8 /* [ -> [ */
27 2 3 8 /* ] -> ] */
28 2 4 8 /* Return -> Return */
29 8 5 8 /* Left Ctrl -> CTRL */
30 9 3 8 /* A -> A */
31 10 3 8 /* S -> S */
32 11 3 8 /* D -> D */
33 11 4 8 /* F -> F */
34 12 4 8 /* G -> G */
35 13 4 8 /* H -> H */
36 14 3 8 /* J -> J */
37 15 3 8 /* K -> K */
38 0 3 8 /* L -> L */
39 0 4 8 /* ; -> ; */
40 1 5 8 /* ' -> ' */
41 8 1 8 /* ` -> ESC */
42 8 4 2 /* Left Shift -> Left Shift */
#43 -1 -1 0 /* \ -> (no key) */
44 9 4 8 /* Z -> Z */
45 10 4 8 /* X -> X */
46 10 5 8 /* C -> C */
47 11 5 8 /* V -> V */
48 12 5 8 /* B -> B */
49 13 5 8 /* N -> N */
50 14 4 8 /* M -> M */
51 15 4 8 /* , -> , */
52 15 5 8 /* . -> . */
53 0 5 8 /* / -> / */
54 8 3 4 /* Right Shift -> Right Shift */
55 6 1 8 /* Grey * -> * */
#56 -1 -1 0 /* Left Alt -> (no key) */
57 14 5 8 /* Space -> Space */
58 7 0 8 /* Caps Lock -> Run/Stop */
59 8 0 8 /* F1 -> F1 */
60 9 0 8 /* F2 -> F2 */
61 10 0 8 /* F3 -> F3 */
62 11 0 8 /* F4 -> F4 */
63 12 0 8 /* F5 -> F5 */
64 13 0 8 /* F6 -> F6 */
65 14 0 8 /* F7 -> F7 */
66 15 0 8 /* F8 -> F8 */
67 0 0 8 /* F9 -> F9 */
68 1 0 8 /* F10 -> F10 */
#69 -1 -1 0 /* Num Lock -> (no key) */
#70 -1 -1 0 /* Scroll Lock -> (no key) */
71 4 2 8 /* Numpad 7 -> Numpad 7 */
72 5 2 8 /* Numpad 8 -> Numpad 8 */
73 6 2 8 /* Numpad 9 -> Numpad 9 */
74 7 2 8 /* Numpad - -> Numpad - */
75 4 3 8 /* Numpad 4 -> Numpad 4 */
76 5 3 8 /* Numpad 5 -> Numpad 5 */
77 6 3 8 /* Numpad 6 -> Numpad 6 */
78 7 3 8 /* Numpad + -> Numpad + */
79 4 4 8 /* Numpad 1 -> Numpad 1 */
80 5 4 8 /* Numpad 2 -> Numpad 2 */
81 6 4 8 /* Numpad 3 -> Numpad 3 */
82 4 5 8 /* Numpad 0 -> Numpad 0 */
83 5 5 8 /* Numpad . -> Numpad . */
#84 -1 -1 0 /* SysReq -> (no key) */
#85 -1 -1 0 /* 85 -> (no key) */
#86 -1 -1 0 /* 86 -> (no key) */
#87 -1 -1 0 /* F11 -> (no key) */
#88 -1 -1 0 /* F12 -> (no key) */
89 4 0 8 /* Home -> CLR/HOME */
90 3 0 8 /* Up -> CRSR UP */
91 5 0 8 /* PgUp -> Rev/Off */
92 3 1 8 /* Left -> CRSR LEFT */
93 3 2 8 /* Right -> CRSR RIGHT */
94 5 1 8 /* End -> CE */
95 2 0 8 /* Down -> CRSR DOWN */
96 6 0 8 /* PgDown -> Norm/Graph */
97 2 2 8 /* Ins -> Pound */
98 4 1 8 /* Del -> ? */
99 7 4 8 /* Numpad Enter -> Numpad Enter */
100 3 4 8 /* Right Ctrl -> C= */
101 2 5 8 /* Pause -> Pi */
#102 -1 -1 0 /* PrtScr -> (no key) */
103 7 1 8 /* Numpad / -> Numpad / */
#104 -1 -1 0 /* Right Alt -> (no key) */
#105 -1 -1 0 /* Break -> (no key) */
#106 -1 -1 0 /* Left Win95 -> (no key) */
#107 -1 -1 0 /* Right Win95 -> (no key) */