# 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 # 256 key is used for an alternative keyboard mapping # # 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 # # Positional Mapping, German Layout, C64, X11 # +-----+-----+-----+-----+-----+-----+-----+-----+ # |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ # |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ # |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ # |Bit 2| 5 % | R | D | 6 & | C | F | T | X | # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ # |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ # |Bit 4| 9 ) | I | J | 0 | M | K | O | N | # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ # |Bit 5| + | P | L | - | . > | : [ | @ | , < | # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ # |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ # |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | # +-----+-----+-----+-----+-----+-----+-----+-----+-----+ !CLEAR !LSHIFT 1 7 !RSHIFT 6 4 !VSHIFT RSHIFT !SHIFTL LSHIFT # keys that can't be mapped positionally are: # (row0) pound (-> ), clr/home (-> home) # (row1) arrow up (-> end), restore (-> F12) # (row2) run/stop (-> escape) # (row3) commodore (-> control) # extra keys are: # clr/home (-> altgr+\) # ins/del (-> delete) # ins/del+shift (-> insert) # arrow up (-> altgr+~) # arrow up+shift (-> altgr+m) # f1 (-> page up) # f7 (-> page down) # :+shift (-> altgr+[) # ;+shift (-> altgr+]) # @ (-> altgr+Q) ##################### # |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| # inst/del BackSpace 0 0 8 # extra: delete -> ins/del Delete 0 0 8 # extra: insert -> shift+ins/del Insert 0 0 1 # return Return 0 1 8 # cursor r/l Right 0 2 8 Left 0 2 1 # f7 F7 0 3 8 F8 0 3 1 # extra: pagedown -> f7 Page_Down 0 3 8 # f1 F1 0 4 8 F2 0 4 1 # extra: pagedown -> f1 Page_Up 0 4 8 # f3 F3 0 5 8 F4 0 5 1 # f4 F5 0 6 8 F6 0 6 1 # cursor u/d Up 0 7 1 Down 0 7 8 ##################### # |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | # shift+3 section 1 0 8 # shift+4 dollar 1 3 8 # left shift Shift_L 1 7 2 # shift lock Caps_Lock 1 7 64 ##################### # |Bit 2| 5 % | R | D | 6 & | C | F | T | X | # shift+5 percent 2 0 8 # shift+6 ampersand 2 3 8 ##################### # |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | # shift+7 slash 3 0 8 # shift+8 parenleft 3 3 8 ##################### # |Bit 4| 9 ) | I | J | 0 | M | K | O | N | # shift+9 parenright 4 0 8 # shift+0 equal 4 3 8 ##################### # |Bit 5| + | P | L | - | . > | : [ | @ | , < | # plus ssharp 5 0 8 question 5 0 8 # minus acute 5 3 8 grave 5 3 8 # dot period 5 4 8 colon 5 4 1 # colon odiaeresis 5 5 8 Odiaeresis 5 5 1 # extra: altgr+[ -> :+shift bracketleft 5 5 1 # @-key udiaeresis 5 6 8 Udiaeresis 5 6 1 # extra: altgr+Q -> @ at 5 6 0 # comma comma 5 7 8 semicolon 5 7 1 ##################### # |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | # pound less 6 0 8 greater 6 0 1 bar 6 0 8 brokenbar 6 0 8 # * plus 6 1 8 asterisk 6 1 1 # semi-colon adiaeresis 6 2 8 Adiaeresis 6 2 1 # extra: altgr+] -> ;+shift bracketright 6 2 1 # clr/home Home 6 3 8 # extra: altgr+\ -> clr/home backslash 6 3 8 # right shift Shift_R 6 4 4 # = numbersign 6 5 8 apostrophe 6 5 8 # arrow up / pi End 6 6 8 # extra: altgr+~ -> arrow up asciitilde 6 6 8 # extra: altgr+m -> arrow up+shift (pi) mu 6 6 1 # / ? minus 6 7 8 underscore 6 7 1 ##################### # |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | # shift+1 exclam 7 0 8 # left arrow asciicircum 7 1 8 degree 7 1 8 # ctrl Tab 7 2 8 ISO_Left_Tab 7 2 8 # shift+2 quotedbl 7 3 8 # space space 7 4 8 # cbm Control_L 7 5 8 # run/stop Escape 7 7 8 ##################### # letters and numbers 0 4 3 8 1 7 0 8 2 7 3 8 3 1 0 8 4 1 3 8 5 2 0 8 6 2 3 8 7 3 0 8 8 3 3 8 9 4 0 8 A 1 2 8 B 3 4 8 C 2 4 8 D 2 2 8 E 1 6 8 F 2 5 8 G 3 2 8 H 3 5 8 I 4 1 8 J 4 2 8 K 4 5 8 L 5 2 8 M 4 4 8 N 4 7 8 O 4 6 8 P 5 1 8 Q 7 6 8 R 2 1 8 S 1 5 8 T 2 6 8 U 3 6 8 V 3 7 8 W 1 1 8 X 2 7 8 Y 3 1 8 Z 1 4 8 a 1 2 8 b 3 4 8 c 2 4 8 d 2 2 8 e 1 6 8 f 2 5 8 g 3 2 8 h 3 5 8 i 4 1 8 j 4 2 8 k 4 5 8 l 5 2 8 m 4 4 8 n 4 7 8 o 4 6 8 p 5 1 8 q 7 6 8 r 2 1 8 s 1 5 8 t 2 6 8 u 3 6 8 v 3 7 8 w 1 1 8 x 2 7 8 z 3 1 8 y 1 4 8 # # Restore key mappings # F12 -3 0 F12 -3 1