# 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) # '!LCTRL row col' left control keyboard row/column # '!VCTRL ctrlkey' virtual control key (LCTRL) # '!LCBM row col' left CBM keyboard row/column # '!VCBM cbmkey' virtual CBM key (LCBM) # '!UNDEF keysym' remove keysym from table # # Shiftflag can have the values: # 0 key is not shifted for this keysym/scancode # 1 key is combined with shift for this keysym/scancode # 2 key is left shift on emulated machine # 4 key is right shift on emulated machine # 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 key is shift-lock on emulated machine # 128 shift modifier required on host # 256 key is used for an alternative keyboard mapping # 512 alt-r (alt-gr) modifier required on host # 1024 ctrl modifier required on host # 2048 key is combined with cbm for this keysym/scancode # 4096 key is combined with ctrl for this keysym/scancode # 8192 key is (left) cbm on emulated machine # 16384 key is (left) ctrl on emulated machine # # to migrate older keymaps and use the CBM and/or CTRL related features: # # - define !LCTRL, !VCTRL, !LCBM, !VCBM # - add 'key is (left) cbm/ctrl on emulated machine' flags to # all keys that map to the cbm or ctrl key respectively. # # after that the virtual cbm/ctrl flags and requiring host modifiers # should work as expected. keep an eye on the error messages. # # Negative row values: # 'keysym -1 n' joystick keymap A, direction n # 'keysym -2 n' joystick keymap B, 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 # 'keysym -5 n' joyport keypad, key n # # Joystick direction values: # 0 Fire # 1 South/West # 2 South # 3 South/East # 4 West # 5 East # 6 North/West # 7 North # 8 North/East # # Joyport keypad key layout: # -------------------------- # | 0 | 1 | 2 | 3 | 4 | # -------------------------- # | 5 | 6 | 7 | 8 | 9 | # -------------------------- # | 10 | 11 | 12 | 13 | 14 | # -------------------------- # | 15 | 16 | 17 | 18 | 19 | # -------------------------- # # When a bigger spaced key is used, # it uses the upper left most key value. # Symbolic Mapping, Swiss-German Layout, C64, X11 # C64 keyboard matrix: # # +-----+-----+-----+-----+-----+-----+-----+-----+ # |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 LSHIFT # !SHIFTL LSHIFT # !LCBM 7 5 # !VCBM LCBM # !LCTRL 7 2 # !VCTRL LCTRL # keys that can't be mapped positionally are: # (row0) pound (-> Insert), clr/home (-> Home) # (row1) arrow up (-> Delete), restore (-> PgUp) # (row2) run/stop (-> Escape) # (row3) commodore (-> Control) ##################### # |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| BackSpace 0 0 8 Return 0 1 8 Right 0 2 8 F7 0 3 8 F1 0 4 8 F3 0 5 8 F5 0 6 8 Down 0 7 8 Left 0 2 1 F8 0 3 1 F2 0 4 1 F4 0 5 1 F6 0 6 1 Up 0 7 1 ##################### # |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | 3 1 0 8 w 1 1 8 a 1 2 8 4 1 3 8 y 1 4 8 s 1 5 8 e 1 6 8 numbersign 1 0 1 W 1 1 1 A 1 2 1 dollar 1 3 1 Y 1 4 1 S 1 5 1 E 1 6 1 Shift_L 1 7 2 ##################### # |Bit 2| 5 % | R | D | 6 & | C | F | T | X | 5 2 0 8 r 2 1 8 d 2 2 8 6 2 3 8 c 2 4 8 f 2 5 8 t 2 6 8 x 2 7 8 percent 2 0 1 R 2 1 1 D 2 2 1 ampersand 2 3 1 C 2 4 1 F 2 5 1 T 2 6 1 X 2 7 1 ##################### # |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | 7 3 0 8 z 3 1 8 g 3 2 8 8 3 3 8 b 3 4 8 h 3 5 8 u 3 6 8 v 3 7 8 apostrophe 3 0 1 Z 3 1 1 G 3 2 1 parenleft 3 3 1 B 3 4 1 H 3 5 1 U 3 6 1 V 3 7 1 ##################### # |Bit 4| 9 ) | I | J | 0 | M | K | O | N | 9 4 0 8 i 4 1 8 j 4 2 8 0 4 3 8 m 4 4 8 k 4 5 8 o 4 6 8 n 4 7 8 parenright 4 0 1 I 4 1 1 J 4 2 1 M 4 4 1 K 4 5 1 O 4 6 1 N 4 7 1 ##################### # |Bit 5| + | P | L | - | . > | : [ | @ | , < | plus 5 0 0 p 5 1 8 l 5 2 8 minus 5 3 8 period 5 4 8 colon 5 5 0 at 5 6 0 comma 5 7 8 P 5 1 1 L 5 2 1 underscore 5 3 1 greater 5 4 1 bracketleft 5 5 1 less 5 7 1 ##################### # |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | sterling 6 0 0 asterisk 6 1 0 semicolon 6 2 0 Home 6 3 8 equal 6 5 0 dead_circumflex 6 6 0 slash 6 7 0 bracketright 6 2 1 question 6 7 1 Shift_R 6 4 4 ##################### # |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | 1 7 0 8 section 7 1 8 Tab 7 2 8 2 7 3 8 space 7 4 8 Control_L 7 5 8 q 7 6 8 Escape 7 7 8 exclam 7 0 1 degree 7 1 1 ISO_Left_Tab 7 2 1 quotedbl 7 3 1 Q 7 6 1 # # Restore key mappings # Page_Up -3 0 # # joyport attached keypad key mapping # Num_Lock -5 0 KP_7 -5 1 KP_8 -5 2 KP_9 -5 3 KP_Divide -5 4 Scroll_Lock -5 5 KP_4 -5 6 KP_5 -5 7 KP_6 -5 8 KP_Multiply -5 9 Sys_Req -5 10 KP_1 -5 11 KP_2 -5 12 KP_3 -5 13 KP_Subtract -5 14 Print -5 15 KP_0 -5 16 KP_Delete -5 17 KP_Enter -5 18 KP_Add -5 19