# vim: set noexpandtab cc=80:
#
# CPC/Emulator to host keymap
# Line format: CPC_KEY<tab>HOST_KEY<tab>[OPTIONAL_MODIFIER]
# Edit this at your own risk. It is *strongly* advised to back up this
# file before trying to modify it.
#
CPC_0	SDLK_0	MOD_PC_SHIFT
CPC_1	SDLK_1	MOD_PC_SHIFT
CPC_2	SDLK_2	MOD_PC_SHIFT
CPC_3	SDLK_3	MOD_PC_SHIFT
CPC_4	SDLK_4	MOD_PC_SHIFT
CPC_5	SDLK_5	MOD_PC_SHIFT
CPC_6	SDLK_6	MOD_PC_SHIFT
CPC_7	SDLK_7	MOD_PC_SHIFT
CPC_8	SDLK_8	MOD_PC_SHIFT
CPC_9	SDLK_9	MOD_PC_SHIFT
CPC_A	SDLK_q	MOD_PC_SHIFT
CPC_B	SDLK_b	MOD_PC_SHIFT
CPC_C	SDLK_c	MOD_PC_SHIFT
CPC_D	SDLK_d	MOD_PC_SHIFT
CPC_E	SDLK_e	MOD_PC_SHIFT
CPC_F	SDLK_f	MOD_PC_SHIFT
CPC_G	SDLK_g	MOD_PC_SHIFT
CPC_H	SDLK_h	MOD_PC_SHIFT
CPC_I	SDLK_i	MOD_PC_SHIFT
CPC_J	SDLK_j	MOD_PC_SHIFT
CPC_K	SDLK_k	MOD_PC_SHIFT
CPC_L	SDLK_l	MOD_PC_SHIFT
CPC_M	SDLK_SEMICOLON	MOD_PC_SHIFT
CPC_N	SDLK_n	MOD_PC_SHIFT
CPC_O	SDLK_o	MOD_PC_SHIFT
CPC_P	SDLK_p	MOD_PC_SHIFT
CPC_Q	SDLK_a	MOD_PC_SHIFT
CPC_R	SDLK_r	MOD_PC_SHIFT
CPC_S	SDLK_s	MOD_PC_SHIFT
CPC_T	SDLK_t	MOD_PC_SHIFT
CPC_U	SDLK_u	MOD_PC_SHIFT
CPC_V	SDLK_v	MOD_PC_SHIFT
CPC_W	SDLK_z	MOD_PC_SHIFT
CPC_X	SDLK_x	MOD_PC_SHIFT
CPC_Y	SDLK_y	MOD_PC_SHIFT
CPC_Z	SDLK_w	MOD_PC_SHIFT
CPC_a	SDLK_q
CPC_b	SDLK_b
CPC_c	SDLK_c
CPC_d	SDLK_d
CPC_e	SDLK_e
CPC_f	SDLK_f
CPC_g	SDLK_g
CPC_h	SDLK_h
CPC_i	SDLK_i
CPC_j	SDLK_j
CPC_k	SDLK_k
CPC_l	SDLK_l
CPC_m	SDLK_SEMICOLON
CPC_n	SDLK_n
CPC_o	SDLK_o
CPC_p	SDLK_p
CPC_q	SDLK_a
CPC_r	SDLK_r
CPC_s	SDLK_s
CPC_t	SDLK_t
CPC_u	SDLK_u
CPC_v	SDLK_v
CPC_w	SDLK_z
CPC_x	SDLK_x
CPC_y	SDLK_y
CPC_z	SDLK_w
CPC_CTRL_a	SDLK_q	MOD_PC_CTRL
CPC_CTRL_b	SDLK_b	MOD_PC_CTRL
CPC_CTRL_c	SDLK_c	MOD_PC_CTRL
CPC_CTRL_d	SDLK_d	MOD_PC_CTRL
CPC_CTRL_e	SDLK_e	MOD_PC_CTRL
CPC_CTRL_f	SDLK_f	MOD_PC_CTRL
CPC_CTRL_g	SDLK_g	MOD_PC_CTRL
CPC_CTRL_h	SDLK_h	MOD_PC_CTRL
CPC_CTRL_i	SDLK_i	MOD_PC_CTRL
CPC_CTRL_j	SDLK_j	MOD_PC_CTRL
CPC_CTRL_k	SDLK_k	MOD_PC_CTRL
CPC_CTRL_l	SDLK_l	MOD_PC_CTRL
CPC_CTRL_m	SDLK_SEMICOLON	MOD_PC_CTRL
CPC_CTRL_n	SDLK_n	MOD_PC_CTRL
CPC_CTRL_o	SDLK_o	MOD_PC_CTRL
CPC_CTRL_p	SDLK_p	MOD_PC_CTRL
CPC_CTRL_q	SDLK_a	MOD_PC_CTRL
CPC_CTRL_r	SDLK_r	MOD_PC_CTRL
CPC_CTRL_s	SDLK_s	MOD_PC_CTRL
CPC_CTRL_t	SDLK_t	MOD_PC_CTRL
CPC_CTRL_u	SDLK_u	MOD_PC_CTRL
CPC_CTRL_v	SDLK_v	MOD_PC_CTRL
CPC_CTRL_w	SDLK_z	MOD_PC_CTRL
CPC_CTRL_x	SDLK_x	MOD_PC_CTRL
CPC_CTRL_y	SDLK_y	MOD_PC_CTRL
CPC_CTRL_z	SDLK_w	MOD_PC_CTRL
CPC_CTRL_0	SDLK_0	MOD_PC_CTRL
CPC_CTRL_1	SDLK_1	MOD_PC_CTRL
CPC_CTRL_2	SDLK_2	MOD_PC_CTRL
CPC_CTRL_3	SDLK_3	MOD_PC_CTRL
CPC_CTRL_4	SDLK_4	MOD_PC_CTRL
CPC_CTRL_5	SDLK_5	MOD_PC_CTRL
CPC_CTRL_6	SDLK_6	MOD_PC_CTRL
CPC_CTRL_7	SDLK_7	MOD_PC_CTRL
CPC_CTRL_8	SDLK_8	MOD_PC_CTRL
CPC_CTRL_9	SDLK_9	MOD_PC_CTRL
CPC_CTRL_UP	SDLK_UP	MOD_PC_CTRL
CPC_CTRL_DOWN	SDLK_DOWN	MOD_PC_CTRL
CPC_CTRL_LEFT	SDLK_LEFT	MOD_PC_CTRL
CPC_CTRL_RIGHT	SDLK_RIGHT	MOD_PC_CTRL
CPC_AMPERSAND	SDLK_1
CPC_ASTERISK	SDLK_BACKSLASH
# @ doesn't exist on French CPC keyboard, replaced by à
CPC_AT	SDLK_0	MOD_PC_MODE
CPC_BACKQUOTE	SDLK_7	MOD_PC_MODE
# \ doesn't exist on French CPC keyboard, replaced by ç
CPC_BACKSLASH	SDLK_8	MOD_PC_MODE
CPC_CAPSLOCK	SDLK_CAPSLOCK
CPC_CLR	SDLK_DELETE
CPC_COLON	SDLK_PERIOD
CPC_COMMA	SDLK_m
CPC_CONTROL	SDLK_LCTRL
CPC_COPY	SDLK_LALT
CPC_CPY_DOWN	SDLK_DOWN	MOD_PC_SHIFT
CPC_CPY_LEFT	SDLK_LEFT	MOD_PC_SHIFT
CPC_CPY_RIGHT	SDLK_RIGHT	MOD_PC_SHIFT
CPC_CPY_UP	SDLK_UP	MOD_PC_SHIFT
CPC_CUR_DOWN	SDLK_DOWN
CPC_CUR_LEFT	SDLK_LEFT
CPC_CUR_RIGHT	SDLK_RIGHT
CPC_CUR_UP	SDLK_UP
CPC_CUR_ENDBL	SDLK_PAGEDOWN
CPC_CUR_HOMELN	SDLK_HOME
CPC_CUR_ENDLN	SDLK_END
CPC_CUR_HOMEBL	SDLK_PAGEUP
CPC_DBLQUOTE	SDLK_3
CPC_DEL	SDLK_BACKSPACE
CPC_DOLLAR	SDLK_RIGHTBRACKET
CPC_ENTER	SDLK_KP_ENTER
CPC_EQUAL	SDLK_EQUALS
CPC_ESC	SDLK_ESCAPE
CPC_EXCLAMATN	SDLK_SLASH
CPC_F0	SDLK_KP_0
CPC_F1	SDLK_KP_1
CPC_F2	SDLK_KP_2
CPC_F3	SDLK_KP_3
CPC_F4	SDLK_KP_4
CPC_F5	SDLK_KP_5
CPC_F6	SDLK_KP_6
CPC_F7	SDLK_KP_7
CPC_F8	SDLK_KP_8
CPC_F9	SDLK_KP_9
CPC_FPERIOD	SDLK_KP_PERIOD
CPC_GREATER	SDLK_LESS	MOD_PC_SHIFT
CPC_HASH	SDLK_3	MOD_PC_MODE
CPC_LBRACKET	SDLK_5	MOD_PC_MODE
# Curly braces actually don't exist on French CPC keyboard
CPC_LCBRACE	SDLK_4	MOD_PC_MODE
CPC_LEFTPAREN	SDLK_5
CPC_LESS	SDLK_LESS
CPC_LSHIFT	SDLK_LSHIFT
CPC_MINUS	SDLK_6
CPC_PERCENT	SDLK_QUOTE	MOD_PC_SHIFT
CPC_PERIOD	SDLK_COMMA	MOD_PC_SHIFT
# | doesn't exist on French CPC keyboard, replaced by ù
CPC_PIPE	SDLK_QUOTE
CPC_PLUS	SDLK_EQUALS	MOD_PC_SHIFT
CPC_POWER	SDLK_LEFTBRACKET
CPC_QUESTION	SDLK_m	MOD_PC_SHIFT
CPC_QUOTE	SDLK_4
CPC_RBRACKET	SDLK_MINUS	MOD_PC_MODE
# Curly braces actually don't exist on French CPC keyboard
CPC_RCBRACE	SDLK_EQUALS	MOD_PC_MODE
CPC_RETURN	SDLK_RETURN
CPC_RIGHTPAREN	SDLK_MINUS
CPC_RSHIFT	SDLK_RSHIFT
CPC_SEMICOLON	SDLK_COMMA
CPC_SLASH	SDLK_PERIOD	MOD_PC_SHIFT
CPC_SPACE	SDLK_SPACE
CPC_TAB	SDLK_TAB
CPC_UNDERSCORE	SDLK_8
CPC_FR_eACUTE	SDLK_2
CPC_FR_eGRAVE	SDLK_7
CPC_FR_cCEDIL	SDLK_9
CPC_FR_aGRAVE	SDLK_0
CPC_FR_uGRAVE	SDLK_uGRAVE
#
# Emulator keymap
#
CAP32_DEBUG	SDLK_F12
CAP32_PASTE	SDLK_F11
CAP32_EXIT	SDLK_F10
CAP32_SPEED	SDLK_F9
CAP32_FPS	SDLK_F8
CAP32_JOY	SDLK_F7
CAP32_PHAZER	SDLK_F7	MOD_PC_SHIFT
CAP32_MF2STOP	SDLK_F6
CAP32_RESET	SDLK_F5
CAP32_NEXTDISKA	SDLK_F5	MOD_PC_SHIFT
CAP32_TAPEPLAY	SDLK_F4
CAP32_SCRNSHOT	SDLK_F3
CAP32_SNAPSHOT	SDLK_F3	MOD_PC_SHIFT
CAP32_LD_SNAP	SDLK_F4	MOD_PC_SHIFT
CAP32_FULLSCRN	SDLK_F2
CAP32_GUI	SDLK_F1
CAP32_VKBD	SDLK_F1	MOD_PC_SHIFT
CAP32_WAITBREAK	SDLK_PAUSE
CAP32_DELAY	SDLK_PAUSE	MOD_PC_SHIFT
CAP32_DEVTOOLS	SDLK_F2	MOD_PC_SHIFT
