2026-03-12 13:30:58 +00:00
|
|
|
# BMC64 keyboard mapping file suitable for both
|
|
|
|
|
# USB and real C64 keyboards using GPIO
|
|
|
|
|
#
|
|
|
|
|
# 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
|
|
|
|
|
#
|
|
|
|
|
# Symbolic Mapping, US Layout, C64, GTK
|
|
|
|
|
#
|
|
|
|
|
# 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 |
|
|
|
|
|
# +-----+-----+-----+-----+-----+-----+-----+-----+-----+
|
|
|
|
|
#
|
|
|
|
|
# C64 Keyboard layout:
|
|
|
|
|
#
|
|
|
|
|
# arrow 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0 + - pound clr del f1/f2
|
|
|
|
|
# ctrl q w e r t y u i o p @ * ^ restore f3/f4
|
|
|
|
|
# r/s SL a s d f g h j k l :[ ;] = return f5/f6
|
|
|
|
|
# CBM LS z x c v b n m ,< .> /? RS u/d l/r f7/f8
|
|
|
|
|
# space
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!CLEAR
|
|
|
|
|
!LSHIFT 1 7
|
|
|
|
|
!RSHIFT 6 4
|
|
|
|
|
!VSHIFT RSHIFT
|
|
|
|
|
|
|
|
|
|
Tab 7 2 8 /* CTRL */
|
|
|
|
|
Control_L 7 5 8 /* Commodore Key */
|
|
|
|
|
Alt_L 7 5 8 /* Commodore Key */
|
|
|
|
|
BackSpace 0 0 8
|
2026-03-12 18:35:45 +00:00
|
|
|
Down 5 0 8
|
|
|
|
|
Up 5 3 8
|
|
|
|
|
Right 6 3 8
|
|
|
|
|
Left 6 0 8
|
|
|
|
|
#Down 0 7 8
|
|
|
|
|
#Left 0 2 1
|
|
|
|
|
#Right 0 2 8
|
|
|
|
|
#Up 0 7 1
|
2026-03-12 13:30:58 +00:00
|
|
|
Escape 7 7 8 /* RunStop */
|
|
|
|
|
F1 0 4 8
|
|
|
|
|
F2 0 4 1
|
|
|
|
|
F3 0 5 8
|
|
|
|
|
F4 0 5 1
|
|
|
|
|
F5 0 6 8
|
|
|
|
|
F6 0 6 1
|
|
|
|
|
F7 0 3 8
|
|
|
|
|
F8 0 3 1
|
2026-03-12 18:35:45 +00:00
|
|
|
#Home 6 3 8 /* Clr */
|
|
|
|
|
Home 7 1 8 /* Clr */
|
2026-03-12 13:30:58 +00:00
|
|
|
Shift_L 1 7 2
|
2026-03-12 18:35:45 +00:00
|
|
|
Shift_R 1 7 4
|
|
|
|
|
#Shift_R 6 4 4
|
|
|
|
|
Return 0 1 8
|
|
|
|
|
|
|
|
|
|
LeftBracket 0 7 8 /* at */
|
|
|
|
|
SemiColon 5 5 8 /* colon */
|
|
|
|
|
Comma 5 7 8 /* comma */
|
|
|
|
|
BackSlash 6 5 8 /* equal */
|
|
|
|
|
Pound 6 5 8 /* equal */
|
|
|
|
|
Equals 5 6 8 /* minus */
|
|
|
|
|
Period 5 4 8 /* period */
|
|
|
|
|
Dash 6 6 8 /* plus */
|
|
|
|
|
SingleQuote 6 2 8 /* semicolon */
|
|
|
|
|
Slash 6 7 8 /* slash */
|
|
|
|
|
Space 7 4 8 /* space */
|
|
|
|
|
Insert 0 2 8 /* sterling */
|
|
|
|
|
RightBracket 6 1 8 /* asterisk */
|
|
|
|
|
BackQuote 6 4 8 /* escape */
|
|
|
|
|
Del 6 6 8 /* plus */
|
|
|
|
|
|
|
|
|
|
#LeftBracket 5 6 8 /* at */
|
|
|
|
|
#SemiColon 5 5 8 /* colon */
|
|
|
|
|
#Comma 5 7 8 /* comma */
|
|
|
|
|
#BackSlash 6 5 0 /* equal */
|
|
|
|
|
#Pound 6 5 0 /* equal */
|
|
|
|
|
#Equals 5 3 8 /* minus */
|
|
|
|
|
#Period 5 4 8 /* period */
|
|
|
|
|
#Dash 5 0 8 /* plus */
|
|
|
|
|
#SingleQuote 6 2 8 /* semicolon */
|
|
|
|
|
#Slash 6 7 8 /* slash */
|
|
|
|
|
#Space 7 4 8 /* space */
|
|
|
|
|
#Insert 6 0 8 /* sterling */
|
|
|
|
|
#RightBracket 6 1 8 /* asterisk */
|
|
|
|
|
#BackQuote 7 1 0 /* arrowleft */
|
|
|
|
|
#Del 6 6 8 /* arrowup */
|
|
|
|
|
|
2026-03-12 13:30:58 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
# Restore key mappings
|
|
|
|
|
PageUp -3 0
|
|
|
|
|
CapsLock -4 1
|