# 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)
# '!SHIFTL shiftkey'     shift lock 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
# 64     shift lock
#
# 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
#

!CLEAR
!LSHIFT 1 7
!RSHIFT 6 4
!VSHIFT RSHIFT
!SHIFTL LSHIFT

27 7 7 8               /*          ESC -> Run/Stop     */
49 7 0 8               /*            1 -> 1            */
50 7 3 8               /*            2 -> 2            */
51 1 0 8               /*            3 -> 3            */
52 1 3 8               /*            4 -> 4            */
53 2 0 8               /*            5 -> 5            */
54 2 3 8               /*            6 -> 6            */
55 3 0 32              /*            7 -> 7            */
56 3 3 8               /*            8 -> 8            */
57 4 0 8               /*            9 -> 9            */
48 4 3 32              /*            0 -> 0            */
8 0 0 8                /*    Backspace -> Del          */
9 7 2 8                /*          TAB -> Ctrl         */
113 7 6 8              /*            Q -> Q            */
119 1 1 8              /*            W -> W            */
101 1 6 8              /*            E -> E            */
114 2 1 8              /*            R -> R            */
116 2 6 8              /*            T -> T            */
121 3 1 8              /*            Y -> Y            */
117 3 6 8              /*            U -> U            */
105 4 1 8              /*            I -> I            */
111 4 6 8              /*            O -> O            */
112 5 1 8              /*            P -> P            */
91 5 6 8               /*            [ -> @            */
93 6 1 8               /*            ] -> *            */
13 0 1 8               /*       Return -> Return       */
306 7 5 8              /*    Left Ctrl -> CBM          */
97 1 2 8               /*            A -> A            */
115 1 5 8              /*            S -> S            */
100 2 2 8              /*            D -> D            */
102 2 5 8              /*            F -> F            */
103 3 2 8              /*            G -> G            */
104 3 5 8              /*            H -> H            */
106 4 2 8              /*            J -> J            */
107 4 5 8              /*            K -> K            */
108 5 2 8              /*            L -> L            */

55 6 7 0               /*            / -> /            */
39 3 0 33              /*            ' -> '            */
39 6 1 16              /*            * -> *            */
43 5 0 32              /*            + -> +            */
43 6 7 1               /*            ? -> ?            */
48 6 5 16              /*            = -> =            */
45 5 3 8               /*            - -> -            */
60 5 7 33              /*            < -> <            */
60 5 4 1               /*            > -> >            */
44 5 7 32              /*            , -> ,            */
44 6 2 0               /*            ; -> ;            */
46 5 4 32              /*            . -> .            */
46 5 5 0               /*            ; -> ;            */

127 0 0 8              /*          Ins -> Ins          */
277 0 0 1              /*          Del -> Del          */
304 1 7 2              /*   Left Shift -> Left Shift   */
301 1 7 64             /*    Caps Lock -> Shift Lock   */
122 1 4 8              /*            Z -> Z            */
120 2 7 8              /*            X -> X            */
99 2 4 8               /*            C -> C            */
118 3 7 8              /*            V -> V            */
98 3 4 8               /*            B -> B            */
110 4 7 8              /*            N -> N            */
109 4 4 8              /*            M -> M            */
303 6 4 4              /*  Right Shift -> Right Shift  */
32 7 4 8               /*        Space -> Space        */
282 0 4 8              /*           F1 -> F1           */
283 0 4 1              /*           F2 -> F2           */
284 0 5 8              /*           F3 -> F3           */
285 0 5 1              /*           F4 -> F4           */
286 0 6 8              /*           F5 -> F5           */
287 0 6 1              /*           F6 -> F6           */
288 0 3 8              /*           F7 -> F7           */
289 0 3 1              /*           F8 -> F8           */
278 6 3 8              /*         Home -> CLR/HOME     */
273 0 7 1              /*           Up -> CRSR UP      */
276 0 2 1              /*         Left -> CRSR LEFT    */
275 0 2 8              /*        Right -> CRSR RIGHT   */
274 0 7 8              /*         Down -> CRSR DOWN    */

256 4 3 8              /*     NumPad 0 -> 0            */
257 7 0 8              /*     NumPad 1 -> 1            */
258 7 3 8              /*     NumPad 2 -> 2            */
259 1 0 8              /*     NumPad 3 -> 3            */
260 1 3 8              /*     NumPad 4 -> 4            */
261 2 0 8              /*     NumPad 5 -> 5            */
262 2 3 8              /*     NumPad 6 -> 6            */
263 3 0 8              /*     NumPad 7 -> 7            */
264 3 3 8              /*     NumPad 8 -> 8            */
265 4 0 8              /*     NumPad 9 -> 9            */
266 5 7 8              /*     NumPad , -> ,            */
267 6 7 8              /*     NumPad / -> /            */
268 6 1 8              /*     NumPad * -> *            */
269 5 3 8              /*     NumPad - -> -            */
270 5 0 8              /*     NumPad + -> +            */
271 0 1 8              /* NumPad Enter -> Return       */

# no layout specific things
229 5 6 8              /*           aa -> @            */
314 6 6 33             /*            ^ -> Up Arrow     */
314 6 6 0              /*   " (umlaut) -> PI           */
248 5 5 1              /* (no)      oe -> [            */
230 6 2 1              /* (no)      ae -> ]            */
124 7 1 8              /* (no)       | -> Left Arrow   */
92 6 0 8               /* (no)       \ -> Pound        */

# Restore key mappings
280 -3 0
0 -3 1
