#
# Kernal64 keyboard layout configuration file
#
# lines that start with # character or empty lines are ignored
# the configuration file has two sections identified by [map] and [keypad_map]: in the first, standard keys are configured,
# while in the second keys of the numeric keypad are configured, if any.
#
# every configuration line is composed by
#   [[w|x|m]]<modifiers><host key name or key code> = <emulated key>,<emulated key>,...,<emulated key> [<comment>]
# where [[w|x|m]] is an optional modifier to indicate that the row must be included in the configuration for the given OS only: w=Windows,x=Linux,m=Mac, discarded otherwise
# in this way the same emulated keys can be configured for different OS
# where <modifiers> can be a combination of:
# + for shift (shifted host key)
# ^ for altg  (altg + host key)
# ! for numeric virtual key code (used for host key that has not a Java key name, just a code number)
# - turn off automatic shifting (used to disable the automatic shifting)
#
# <comment> it's a # character followed by a comment

# host key names (or symbols) are listed below:

# Host keys
#                        0                         1                         2                         3                         4                         5                         6                         7
#                        8                         9                         A                    ACCEPT                       ADD                     AGAIN            ALL_CANDIDATES              ALPHANUMERIC
#                      ALT                 ALT_GRAPH                 AMPERSAND                  ASTERISK                        AT                         B                BACK_QUOTE                BACK_SLASH
#               BACK_SPACE                     BEGIN                 BRACELEFT                BRACERIGHT                         C                    CANCEL                 CAPS_LOCK                CIRCUMFLEX
#                    CLEAR             CLOSE_BRACKET                CODE_INPUT                     COLON                     COMMA                   COMPOSE              CONTEXT_MENU                   CONTROL
#                  CONVERT                      COPY                       CUT                         D             DEAD_ABOVEDOT            DEAD_ABOVERING                DEAD_ACUTE                DEAD_BREVE
#               DEAD_CARON              DEAD_CEDILLA           DEAD_CIRCUMFLEX            DEAD_DIAERESIS          DEAD_DOUBLEACUTE                DEAD_GRAVE                 DEAD_IOTA               DEAD_MACRON
#              DEAD_OGONEK     DEAD_SEMIVOICED_SOUND                DEAD_TILDE         DEAD_VOICED_SOUND                   DECIMAL                    DELETE                    DIVIDE                    DOLLAR
#                     DOWN                         E                       END                     ENTER                    EQUALS                    ESCAPE                 EURO_SIGN          EXCLAMATION_MARK
#                        F                        F1                       F10                       F11                       F12                       F13                       F14                       F15
#                      F16                       F17                       F18                       F19                        F2                       F20                       F21                       F22
#                      F23                       F24                        F3                        F4                        F5                        F6                        F7                        F8
#                       F9                     FINAL                      FIND                FULL_WIDTH                         G                   GREATER                         H                HALF_WIDTH
#                     HELP                  HIRAGANA                      HOME                         I       INPUT_METHOD_ON_OFF                    INSERT INVERTED_EXCLAMATION_MARK                         J
#        JAPANESE_HIRAGANA         JAPANESE_KATAKANA            JAPANESE_ROMAN                         K                      KANA                 KANA_LOCK                     KANJI                  KATAKANA
#                  KP_DOWN                   KP_LEFT                  KP_RIGHT                     KP_UP                         L                      LEFT          LEFT_PARENTHESIS                      LESS
#                        M                      META                     MINUS                MODECHANGE                  MULTIPLY                         N                NONCONVERT               NUMBER_SIGN
#                  NUMPAD0                   NUMPAD1                   NUMPAD2                   NUMPAD3                   NUMPAD4                   NUMPAD5                   NUMPAD6                   NUMPAD7
#                  NUMPAD8                   NUMPAD9                  NUM_LOCK                         O              OPEN_BRACKET                         P                 PAGE_DOWN                   PAGE_UP
#                    PASTE                     PAUSE                    PERIOD                      PLUS        PREVIOUS_CANDIDATE               PRINTSCREEN                     PROPS                         Q
#                    QUOTE                  QUOTEDBL                         R                     RIGHT         RIGHT_PARENTHESIS          ROMAN_CHARACTERS                         S               SCROLL_LOCK
#                SEMICOLON                 SEPARATOR                     SHIFT                     SLASH                     SPACE                      STOP                  SUBTRACT                         T
#                      TAB                         U                 UNDEFINED                UNDERSCORE                      UNDO                        UP                         V                         W
#                  WINDOWS                         X                         Y                         Z

# emulated key names are listed below:

# C64 & VIC20 keys
#         A         AT          B          C        CBM   CLR_HOME      COLON      COMMA
#   CRSR_LR    CRSR_UD       CTRL          D          E      EQUAL        EXP          F
#        F1         F3         F5         F7          G          H          I   INST_DEL
#         J          K          L       LIRA    L_ARROW    L_SHIFT          M      MINUS
#         N        N_0        N_1        N_2        N_3        N_4        N_5        N_6
#       N_7        N_8        N_9          O          P     PERIOD       PLUS          Q
#         R    RESTORE     RETURN   RUN_STOP    R_SHIFT          S    SEMICOL      SLASH
#     SPACE       STAR          T          U          V          W          X          Y
#         Z

# C128 special keys
#            ALT       CAPS_LOCK             ESC            HELP      KEYPAD_DOT     KEYPAD_DOWN    KEYPAD_ENTER     KEYPAD_LEFT
#   KEYPAD_MINUS      KEYPAD_N_0      KEYPAD_N_1      KEYPAD_N_2      KEYPAD_N_3      KEYPAD_N_4      KEYPAD_N_5      KEYPAD_N_6
#     KEYPAD_N_7      KEYPAD_N_8      KEYPAD_N_9     KEYPAD_PLUS    KEYPAD_RIGHT       KEYPAD_UP       LINE_FEED       NO_SCROLL
#            TAB          _40_80

# CBM2 keys
#              0               1               2               3               4               5               6               7
#              8               9               A               B          BARROW               C CLOSED_SBRACKET           COMMA
#      COMMODORE         CONTROL               D        DB_QUOTE             DEL             DOT            DOWN               E
#          EQUAL             ESC               F              F1             F10              F2              F3              F4
#             F5              F6              F7              F8              F9               G           GRAPH               H
#           HOME               I               J               K            KP_0           KP_00            KP_1            KP_2
#           KP_3            KP_4            KP_5            KP_6            KP_7            KP_8            KP_9           KP_CE
#         KP_DIV          KP_DOT        KP_ENTER        KP_MINUS          KP_MUL         KP_PLUS        KP_QMARK               L
#           LEFT               M           MINUS               N               O   OPEN_SBRACKET               P              PI
#              Q               R          RETURN           RIGHT             RVS               S         SEMICOL           SHIFT
#          SLASH           SPACE            STOP               T             TAB               U              UP               V
#              W               X               Y               Z

# when a shifted emulated key must be configured, either L_SHIFT or R_SHIFT (or SHIFT for CBM2) can be used
# if the - modifiers is not used the given configuration is cloned also for the shifted version
# for example
# A = A
# 2 configurations are produced: one for A -> A and one for +A = A,L_SHIFT

# examples
# to map a host F1 key to an emulated F1 key
# F1 = F1
# to map a host F2 key to an emulated F2 key
# F2 = F1,L_SHIFT
# to map a Altgr + à (for Italian layout this produce #) to an emulated #
# ^!16777440	= N_3,L_SHIFT
# here it is used a key code !16777440 because the character à does not have a Java name

[map]
# function keys
# =====================================
F1 			= F1
-F2 		= F1,L_SHIFT
F3 			= F3
-F4 		= F3,L_SHIFT
F5 			= F5
-F6 		= F5,L_SHIFT
F7 			= F7
-F8 		= F7,L_SHIFT
# numbers row
BACK_SLASH 	= L_ARROW
1 			= N_1
2 			= N_2
-3 			= N_3
+3			= LIRA
# #
[w]-^!16777440	= N_3,L_SHIFT
[xm]-^NUMBER_SIGN	= N_3,L_SHIFT
4 			= N_4
5 			= N_5
6 			= N_6
-7 			= N_7
-QUOTE		= N_7,L_SHIFT
8 			= N_8
9 			= N_9
-0 			= N_0
PLUS 		= PLUS
MINUS 		= MINUS
HOME 		= CLR_HOME
BACK_SPACE 	= INST_DEL
# QWERTY row
# =====================================
-CONTROL 	= CTRL
Q 			= Q
W 			= W
E 			= E
R 			= R
T 			= T
Y 			= Y
U 			= U
I 			= I
O 			= O
P 			= P
# @
[w]-^!16777458= AT
[xm]-^AT	= AT
+PLUS 		= STAR
#ì
-!16777452	= EXP
DELETE		= RESTORE
# ASDF row
# =====================================
ESCAPE 		= RUN_STOP
A 			= A
S 			= S
D 			= D
F 			= F
G 			= G
H 			= H
J 			= J
K 			= K
L 			= L
+PERIOD 	= COLON
+COMMA 		= SEMICOL
# ]
[w]-^PLUS		= SEMICOL,L_SHIFT
[xm]-^CLOSE_BRACKET= SEMICOL,L_SHIFT
# [
[w]-^!16777448	= COLON,L_SHIFT
[xm]-^OPEN_BRACKET= COLON,L_SHIFT
+0			= EQUAL
ENTER 		= RETURN
# ZXCV row
# =====================================
TAB			= CBM
Z			= Z
X			= X
C			= C
V			= V
B			= B
N			= N
M			= M
-COMMA		= COMMA
-PERIOD 	= PERIOD
-LESS		= COMMA,L_SHIFT
+LESS		= PERIOD,L_SHIFT
+7			= SLASH
+QUOTE		= SLASH,L_SHIFT
-RIGHT		= CRSR_LR
-LEFT		= CRSR_LR,L_SHIFT
-UP			= CRSR_UD,L_SHIFT
-DOWN		= CRSR_UD
# SPACE row
# =====================================
SPACE		= SPACE
# Special keys ========================
CAPS_LOCK    = CAPS_LOCK
SCROLL_LOCK  = NO_SCROLL
PAUSE        = LINE_FEED
F9           = _40_80
F11          = TAB
F12          = HELP
INSERT       = ALT
PAGE_UP      = ESC
[keypad_map]
NUMPAD5 	= KEYPAD_N_5
ENTER 		= KEYPAD_ENTER
LEFT 		= KEYPAD_LEFT
DECIMAL 	= KEYPAD_DOT
NUMPAD6 	= KEYPAD_N_6
UP 			= KEYPAD_UP
NUMPAD1 	= KEYPAD_N_1
SUBTRACT 	= KEYPAD_MINUS
NUMPAD0 	= KEYPAD_N_0
NUMPAD9 	= KEYPAD_N_9
RIGHT 		= KEYPAD_RIGHT
NUMPAD2 	= KEYPAD_N_2
NUMPAD7 	= KEYPAD_N_7
NUMPAD3 	= KEYPAD_N_3
NUMPAD8 	= KEYPAD_N_8
DOWN 		= KEYPAD_DOWN
ADD 		= KEYPAD_PLUS
NUMPAD4 	= KEYPAD_N_4