/* joystick/mouse port 1 */

DEFEVENT(JOYPORT1_START,"Joystick port 1", AM_INFO, 0,1,0)

DEFEVENT(MOUSE1_FIRST,"", AM_DUMMY, 0,0,0)

DEFEVENT(MOUSE1_HORIZ,"Mouse1 Horizontal",AM_MOUSE_AXIS|AM_JOY_AXIS,8,1,0)
DEFEVENT(MOUSE1_VERT,"Mouse1 Vertical",AM_MOUSE_AXIS|AM_JOY_AXIS,8,1,1)
DEFEVENT(MOUSE1_HORIZ_INV,"Mouse1 Horizontal (inverted)",AM_MOUSE_AXIS|AM_JOY_AXIS,8,1,0|IE_INVERT)
DEFEVENT(MOUSE1_VERT_INV,"Mouse1 Vertical (inverted)",AM_MOUSE_AXIS|AM_JOY_AXIS,8,1,1|IE_INVERT)

DEFEVENT(MOUSE1_LAST,"", AM_DUMMY, 0,0,0)

DEFEVENT(MOUSE1_UP,"Mouse1 Up",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,32,1,DIR_UP)
DEFEVENT(MOUSE1_DOWN,"Mouse1 Down",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,32,1,DIR_DOWN)
DEFEVENT(MOUSE1_LEFT,"Mouse1 Left",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,64,1,DIR_LEFT)
DEFEVENT(MOUSE1_RIGHT,"Mouse1 Right",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,64,1,DIR_RIGHT)

DEFEVENT(MOUSE1_WHEEL,"Mouse1 Wheel",AM_MOUSE_AXIS|AM_JOY_AXIS,8,1,2)

DEFEVENT(MOUSE_CDTV_HORIZ,"CDTV Mouse Horizontal",AM_JOY_AXIS,8,1,0|IE_CDTV)
DEFEVENT(MOUSE_CDTV_VERT,"CDTV Mouse Vertical",AM_JOY_AXIS,8,1,1|IE_CDTV)
DEFEVENT(MOUSE_CDTV_UP,"CDTV Mouse Up",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,32,1,DIR_UP|IE_CDTV)
DEFEVENT(MOUSE_CDTV_DOWN,"CDTV Mouse Down",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,32,1,DIR_DOWN|IE_CDTV)
DEFEVENT(MOUSE_CDTV_LEFT,"CDTV Mouse Left",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,64,1,DIR_LEFT|IE_CDTV)
DEFEVENT(MOUSE_CDTV_RIGHT,"CDTV Mouse Right",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,64,1,DIR_RIGHT|IE_CDTV)

DEFEVENT(JOY1_HORIZ,"Joy1 Horizontal",AM_JOY_AXIS,0,1,DIR_LEFT|DIR_RIGHT)
DEFEVENT(JOY1_VERT,"Joy1 Vertical",AM_JOY_AXIS,0,1,DIR_UP|DIR_DOWN)
DEFEVENT(JOY1_HORIZ_POT,"Joy1 Horizontal (Analog)",AM_JOY_AXIS,128,1,1)
DEFEVENT(JOY1_VERT_POT,"Joy1 Vertical (Analog)",AM_JOY_AXIS,128,1,0)
DEFEVENT(JOY1_HORIZ_POT_INV,"Joy1 Horizontal (Analog, inverted)",AM_JOY_AXIS,128,1,1|IE_INVERT)
DEFEVENT(JOY1_VERT_POT_INV,"Joy1 Vertical (Analog, inverted)",AM_JOY_AXIS,128,1,0|IE_INVERT)

DEFEVENT(JOY1_LEFT,"Joy1 Left",AM_K,16,1,DIR_LEFT)
DEFEVENT(JOY1_RIGHT,"Joy1 Right",AM_K,16,1,DIR_RIGHT)
DEFEVENT(JOY1_UP,"Joy1 Up",AM_K,16,1,DIR_UP)
DEFEVENT(JOY1_DOWN,"Joy1 Down",AM_K,16,1,DIR_DOWN)
DEFEVENT(JOY1_LEFT_UP,"Joy1 Left+Up",AM_K,16,1,DIR_LEFT|DIR_UP)
DEFEVENT(JOY1_LEFT_DOWN,"Joy1 Left+Down",AM_K,16,1,DIR_LEFT|DIR_DOWN)
DEFEVENT(JOY1_RIGHT_UP,"Joy1 Right+Up",AM_K,16,1,DIR_RIGHT|DIR_UP)
DEFEVENT(JOY1_RIGHT_DOWN,"Joy1 Right+Down",AM_K,16,1,DIR_RIGHT|DIR_DOWN)

DEFEVENT(JOY1_FIRE_BUTTON,"Joy1 Fire/Mouse1 Left Button",AM_K,4,1,JOYBUTTON_1)
DEFEVENT(JOY1_2ND_BUTTON,"Joy1 2nd Button/Mouse1 Right Button",AM_K,4,1,JOYBUTTON_2)
DEFEVENT(JOY1_3RD_BUTTON,"Joy1 3rd Button/Mouse1 Middle Button",AM_K,4,1,JOYBUTTON_3)
DEFEVENT(JOY1_CD32_PLAY,"Joy1 CD32 Play",AM_K,4,1,JOYBUTTON_CD32_PLAY)
DEFEVENT(JOY1_CD32_RWD,"Joy1 CD32 RWD",AM_K,4,1,JOYBUTTON_CD32_RWD)
DEFEVENT(JOY1_CD32_FFW,"Joy1 CD32 FFW",AM_K,4,1,JOYBUTTON_CD32_FFW)
DEFEVENT(JOY1_CD32_GREEN,"Joy1 CD32 Green",AM_K,4,1,JOYBUTTON_CD32_GREEN)
DEFEVENT(JOY1_CD32_YELLOW,"Joy1 CD32 Yellow",AM_K,4,1,JOYBUTTON_CD32_YELLOW)
DEFEVENT(JOY1_CD32_RED,"Joy1 CD32 Red",AM_K,4,1,JOYBUTTON_CD32_RED)
DEFEVENT(JOY1_CD32_BLUE,"Joy1 CD32 Blue",AM_K,4,1,JOYBUTTON_CD32_BLUE)

/* joystick/mouse port 2 */

DEFEVENT(JOYPORT2_START,"Joystick port 2", AM_INFO, 0,2,0)

DEFEVENT(MOUSE2_FIRST,"", AM_DUMMY, 0,0,0)

DEFEVENT(MOUSE2_HORIZ,"Mouse2 Horizontal",AM_MOUSE_AXIS|AM_JOY_AXIS,8,2,0)
DEFEVENT(MOUSE2_VERT,"Mouse2 Vertical",AM_MOUSE_AXIS|AM_JOY_AXIS,8,2,1)
DEFEVENT(MOUSE2_HORIZ_INV,"Mouse2 Horizontal (inverted)",AM_MOUSE_AXIS|AM_JOY_AXIS,8,2,0|IE_INVERT)
DEFEVENT(MOUSE2_VERT_INV,"Mouse2 Vertical (inverted)",AM_MOUSE_AXIS|AM_JOY_AXIS,8,2,1|IE_INVERT)

DEFEVENT(MOUSE2_LAST,"", AM_DUMMY, 0,0,0)

DEFEVENT(MOUSE2_UP,"Mouse2 Up",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,32,2,DIR_UP)
DEFEVENT(MOUSE2_DOWN,"Mouse2 Down",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,32,2,DIR_DOWN)
DEFEVENT(MOUSE2_LEFT,"Mouse2 Left",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,64,2,DIR_LEFT)
DEFEVENT(MOUSE2_RIGHT,"Mouse2 Right",AM_KEY|AM_JOY_BUT|AM_MOUSE_BUT,64,2,DIR_RIGHT)

DEFEVENT(JOY2_HORIZ,"Joy2 Horizontal",AM_JOY_AXIS,0,2,DIR_LEFT|DIR_RIGHT)
DEFEVENT(JOY2_VERT,"Joy2 Vertical",AM_JOY_AXIS,0,2,DIR_UP|DIR_DOWN)
DEFEVENT(JOY2_HORIZ_POT,"Joy2 Horizontal (Analog)",AM_JOY_AXIS,128,2,1)
DEFEVENT(JOY2_VERT_POT,"Joy2 Vertical (Analog)",AM_JOY_AXIS,128,2,0)
DEFEVENT(JOY2_HORIZ_POT_INV,"Joy2 Horizontal (Analog, inverted)",AM_JOY_AXIS,128,2,1|IE_INVERT)
DEFEVENT(JOY2_VERT_POT_INV,"Joy2 Vertical (Analog, inverted)",AM_JOY_AXIS,128,2,0|IE_INVERT)

DEFEVENT(JOY2_LEFT,"Joy2 Left",AM_K,16,2,DIR_LEFT)
DEFEVENT(JOY2_RIGHT,"Joy2 Right",AM_K,16,2,DIR_RIGHT)
DEFEVENT(JOY2_UP,"Joy2 Up",AM_K,16,2,DIR_UP)
DEFEVENT(JOY2_DOWN,"Joy2 Down",AM_K,16,2,DIR_DOWN)
DEFEVENT(JOY2_LEFT_UP,"Joy2 Left+Up",AM_K,16,2,DIR_LEFT|DIR_UP)
DEFEVENT(JOY2_LEFT_DOWN,"Joy2 Left+Down",AM_K,16,2,DIR_LEFT|DIR_DOWN)
DEFEVENT(JOY2_RIGHT_UP,"Joy2 Right+Up",AM_K,16,2,DIR_RIGHT|DIR_UP)
DEFEVENT(JOY2_RIGHT_DOWN,"Joy2 Right+Down",AM_K,16,2,DIR_RIGHT|DIR_DOWN)

DEFEVENT(JOY2_FIRE_BUTTON,"Joy2 Fire/Mouse2 Left Button",AM_K,4,2,JOYBUTTON_1)
DEFEVENT(JOY2_2ND_BUTTON,"Joy2 2nd Button/Mouse2 Right Button",AM_K,4,2,JOYBUTTON_2)
DEFEVENT(JOY2_3RD_BUTTON,"Joy2 3rd Button/Mouse2 Middle Button",AM_K,4,2,JOYBUTTON_3)
DEFEVENT(JOY2_CD32_PLAY,"Joy2 CD32 Play",AM_K,4,2,JOYBUTTON_CD32_PLAY)
DEFEVENT(JOY2_CD32_RWD,"Joy2 CD32 RWD",AM_K,4,2,JOYBUTTON_CD32_RWD)
DEFEVENT(JOY2_CD32_FFW,"Joy2 CD32 FFW",AM_K,4,2,JOYBUTTON_CD32_FFW)
DEFEVENT(JOY2_CD32_GREEN,"Joy2 CD32 Green",AM_K,4,2,JOYBUTTON_CD32_GREEN)
DEFEVENT(JOY2_CD32_YELLOW,"Joy2 CD32 Yellow",AM_K,4,2,JOYBUTTON_CD32_YELLOW)
DEFEVENT(JOY2_CD32_RED,"Joy2 CD32 Red",AM_K,4,2,JOYBUTTON_CD32_RED)
DEFEVENT(JOY2_CD32_BLUE,"Joy2 CD32 Blue",AM_K,4,2,JOYBUTTON_CD32_BLUE)

DEFEVENT(LIGHTPEN_HORIZ,"Lightpen Horizontal",AM_MOUSE_AXIS|AM_JOY_AXIS,0,5,0)
DEFEVENT(LIGHTPEN_VERT,"Lightpen Vertical",AM_MOUSE_AXIS|AM_JOY_AXIS,0,5,1)
DEFEVENT(LIGHTPEN_LEFT,"Lightpen Left",AM_K,1,5,DIR_LEFT)
DEFEVENT(LIGHTPEN_RIGHT,"Lightpen Right",AM_K,1,5,DIR_RIGHT)
DEFEVENT(LIGHTPEN_UP,"Lightpen Up",AM_K,1,5,DIR_UP)
DEFEVENT(LIGHTPEN_DOWN,"Lightpen Down",AM_K,1,5,DIR_DOWN)

/* parallel port joystick adapter */

DEFEVENT(PAR_JOY1_START,"Parallel port joystick adapter", AM_INFO, 0,3,0)

DEFEVENT(PAR_JOY1_HORIZ,"Parallel Joy1 Horizontal",AM_JOY_AXIS,0,3,DIR_LEFT|DIR_RIGHT)
DEFEVENT(PAR_JOY1_VERT,"Parallel Joy1 Vertical",AM_JOY_AXIS,0,3,DIR_UP|DIR_DOWN)
DEFEVENT(PAR_JOY1_LEFT,"Parallel Joy1 Left",AM_K,16,3,DIR_LEFT)
DEFEVENT(PAR_JOY1_RIGHT,"Parallel Joy1 Right",AM_K,16,3,DIR_RIGHT)
DEFEVENT(PAR_JOY1_UP,"Parallel Joy1 Up",AM_K,16,3,DIR_UP)
DEFEVENT(PAR_JOY1_DOWN,"Parallel Joy1 Down",AM_K,16,3,DIR_DOWN)
DEFEVENT(PAR_JOY1_LEFT_UP,"Parallel Joy1 Left+Up",AM_K,16,3,DIR_LEFT|DIR_UP)
DEFEVENT(PAR_JOY1_LEFT_DOWN,"Parallel Joy1 Left+Down",AM_K,16,3,DIR_LEFT|DIR_DOWN)
DEFEVENT(PAR_JOY1_RIGHT_UP,"Parallel Joy1 Right+Up",AM_K,16,3,DIR_RIGHT|DIR_UP)
DEFEVENT(PAR_JOY1_RIGHT_DOWN,"Parallel Joy1 Right+Down",AM_K,16,3,DIR_RIGHT|DIR_DOWN)
DEFEVENT(PAR_JOY1_FIRE_BUTTON,"Parallel Joy1 Fire Button",AM_K,4,3,JOYBUTTON_1)

DEFEVENT(PAR_JOY2_START,"", AM_DUMMY, 0,4,0)

DEFEVENT(PAR_JOY2_HORIZ,"Parallel Joy2 Horizontal",AM_JOY_AXIS,0,4,DIR_LEFT|DIR_RIGHT)
DEFEVENT(PAR_JOY2_VERT,"Parallel Joy2 Vertical",AM_JOY_AXIS,0,4,DIR_UP|DIR_DOWN)
DEFEVENT(PAR_JOY2_LEFT,"Parallel Joy2 Left",AM_K,16,4,DIR_LEFT)
DEFEVENT(PAR_JOY2_RIGHT,"Parallel Joy2 Right",AM_K,16,4,DIR_RIGHT)
DEFEVENT(PAR_JOY2_UP,"Parallel Joy2 Up",AM_K,16,4,DIR_UP)
DEFEVENT(PAR_JOY2_DOWN,"Parallel Joy2 Down",AM_K,16,4,DIR_DOWN)
DEFEVENT(PAR_JOY2_LEFT_UP,"Parallel Joy2 Left+Up",AM_K,16,4,DIR_LEFT|DIR_UP)
DEFEVENT(PAR_JOY2_LEFT_DOWN,"Parallel Joy2 Left+Down",AM_K,16,4,DIR_LEFT|DIR_DOWN)
DEFEVENT(PAR_JOY2_RIGHT_UP,"Parallel Joy2 Right+Up",AM_K,16,4,DIR_RIGHT|DIR_UP)
DEFEVENT(PAR_JOY2_RIGHT_DOWN,"Parallel Joy2 Right+Down",AM_K,16,4,DIR_RIGHT|DIR_DOWN)
DEFEVENT(PAR_JOY2_FIRE_BUTTON,"Parallel Joy2 Fire Button",AM_K,4,4,JOYBUTTON_1)

DEFEVENT(PAR_JOY_END,"", AM_DUMMY, 0,0,0)

/* keys */

DEFEVENT(KEY_START,"Keyboard",AM_INFO, 0,0,0)

DEFEVENT(KEY_F1,"F1",AM_K,0,0,AK_F1)
DEFEVENT(KEY_F2,"F2",AM_K,0,0,AK_F2)
DEFEVENT(KEY_F3,"F3",AM_K,0,0,AK_F3)
DEFEVENT(KEY_F4,"F4",AM_K,0,0,AK_F4)
DEFEVENT(KEY_F5,"F5",AM_K,0,0,AK_F5)
DEFEVENT(KEY_F6,"F6",AM_K,0,0,AK_F6)
DEFEVENT(KEY_F7,"F7",AM_K,0,0,AK_F7)
DEFEVENT(KEY_F8,"F8",AM_K,0,0,AK_F8)
DEFEVENT(KEY_F9,"F9",AM_K,0,0,AK_F9)
DEFEVENT(KEY_F10,"F10",AM_K,0,0,AK_F10)

/* "special" keys */

DEFEVENT(KEY_ESC,"ESC",AM_K,0,0,AK_ESC)
DEFEVENT(KEY_TAB,"Tab",AM_K,0,0,AK_TAB)
DEFEVENT(KEY_CTRL,"CTRL",AM_K,0,0,AK_CTRL)
DEFEVENT(KEY_CTRL_RIGHT,"Right CTRL",AM_K,0,0,AK_RCTRL)
DEFEVENT(KEY_CAPS_LOCK,"Caps Lock",AM_K,0,0,AK_CAPSLOCK)
DEFEVENT(KEY_SHIFT_LEFT,"Left Shift",AM_K,0,0,AK_LSH)
DEFEVENT(KEY_ALT_LEFT,"Left Alt",AM_K,0,0,AK_LALT)
DEFEVENT(KEY_AMIGA_LEFT,"Left Amiga",AM_K,0,0,AK_LAMI)
DEFEVENT(KEY_AMIGA_RIGHT,"Right Amiga",AM_K,0,0,AK_RAMI)
DEFEVENT(KEY_ALT_RIGHT,"Right Alt",AM_K,0,0,AK_RALT)
DEFEVENT(KEY_SHIFT_RIGHT,"Right Shift",AM_K,0,0,AK_RSH)
DEFEVENT(KEY_SPACE,"Space",AM_K,0,0,AK_SPC)
DEFEVENT(KEY_CURSOR_UP,"Cursor Up",AM_K,0,0,AK_UP)
DEFEVENT(KEY_CURSOR_DOWN,"Cursor Down",AM_K,0,0,AK_DN)
DEFEVENT(KEY_CURSOR_LEFT,"Cursor Left",AM_K,0,0,AK_LF)
DEFEVENT(KEY_CURSOR_RIGHT,"Cursor Right",AM_K,0,0,AK_RT)
DEFEVENT(KEY_HELP,"Help",AM_K,0,0,AK_HELP)
DEFEVENT(KEY_DEL,"Del",AM_K,0,0,AK_DEL)
DEFEVENT(KEY_BACKSPACE,"Backspace",AM_K,0,0,AK_BS)
DEFEVENT(KEY_RETURN,"Return",AM_K,0,0,AK_RET)

/* numpad */

DEFEVENT(KEY_A,"A",AM_K,0,0,AK_A)
DEFEVENT(KEY_B,"B",AM_K,0,0,AK_B)
DEFEVENT(KEY_C,"C",AM_K,0,0,AK_C)
DEFEVENT(KEY_D,"D",AM_K,0,0,AK_D)
DEFEVENT(KEY_E,"E",AM_K,0,0,AK_E)
DEFEVENT(KEY_F,"F",AM_K,0,0,AK_F)
DEFEVENT(KEY_G,"G",AM_K,0,0,AK_G)
DEFEVENT(KEY_H,"H",AM_K,0,0,AK_H)
DEFEVENT(KEY_I,"I",AM_K,0,0,AK_I)
DEFEVENT(KEY_J,"J",AM_K,0,0,AK_J)
DEFEVENT(KEY_K,"K",AM_K,0,0,AK_K)
DEFEVENT(KEY_L,"L",AM_K,0,0,AK_L)
DEFEVENT(KEY_M,"M",AM_K,0,0,AK_M)
DEFEVENT(KEY_N,"N",AM_K,0,0,AK_N)
DEFEVENT(KEY_O,"O",AM_K,0,0,AK_O)
DEFEVENT(KEY_P,"P",AM_K,0,0,AK_P)
DEFEVENT(KEY_Q,"Q",AM_K,0,0,AK_Q)
DEFEVENT(KEY_R,"R",AM_K,0,0,AK_R)
DEFEVENT(KEY_S,"S",AM_K,0,0,AK_S)
DEFEVENT(KEY_T,"T",AM_K,0,0,AK_T)
DEFEVENT(KEY_U,"U",AM_K,0,0,AK_U)
DEFEVENT(KEY_V,"V",AM_K,0,0,AK_V)
DEFEVENT(KEY_W,"W",AM_K,0,0,AK_W)
DEFEVENT(KEY_X,"X",AM_K,0,0,AK_X)
DEFEVENT(KEY_Y,"Y",AM_K,0,0,AK_Y)
DEFEVENT(KEY_Z,"Z",AM_K,0,0,AK_Z)

DEFEVENT(KEY_ENTER,"Numpad Enter",AM_K,0,0,AK_ENT)
DEFEVENT(KEY_NP_0,"Numpad 0",AM_K,0,0,AK_NP0)
DEFEVENT(KEY_NP_1,"Numpad 1",AM_K,0,0,AK_NP1)
DEFEVENT(KEY_NP_2,"Numpad 2",AM_K,0,0,AK_NP2)
DEFEVENT(KEY_NP_3,"Numpad 3",AM_K,0,0,AK_NP3)
DEFEVENT(KEY_NP_4,"Numpad 4",AM_K,0,0,AK_NP4)
DEFEVENT(KEY_NP_5,"Numpad 5",AM_K,0,0,AK_NP5)
DEFEVENT(KEY_NP_6,"Numpad 6",AM_K,0,0,AK_NP6)
DEFEVENT(KEY_NP_7,"Numpad 7",AM_K,0,0,AK_NP7)
DEFEVENT(KEY_NP_8,"Numpad 8",AM_K,0,0,AK_NP8)
DEFEVENT(KEY_NP_9,"Numpad 9",AM_K,0,0,AK_NP9)
DEFEVENT(KEY_NP_PERIOD,"Numpad Period",AM_K,0,0,AK_NPDEL)
DEFEVENT(KEY_NP_ADD,"Numpad Plus",AM_K,0,0,AK_NPADD)
DEFEVENT(KEY_NP_SUB,"Numpad Minus",AM_K,0,0,AK_NPSUB)
DEFEVENT(KEY_NP_MUL,"Numpad Multiply",AM_K,0,0,AK_NPMUL)
DEFEVENT(KEY_NP_DIV,"Numpad Divide",AM_K,0,0,AK_NPDIV)
DEFEVENT(KEY_NP_LPAREN,"Numpad Left Parenthesis",AM_K,0,0,AK_NPLPAREN)
DEFEVENT(KEY_NP_RPAREN,"Numpad Right Parenthesis",AM_K,0,0,AK_NPRPAREN)
DEFEVENT(KEY_2B,"Keycode 0x2b",AM_K,0,0,0x2b)
DEFEVENT(KEY_30,"Keycode 0x30",AM_K,0,0,0x30)

DEFEVENT(KEY_BACKQUOTE,"Back Quote",AM_K,0,0,AK_BACKQUOTE)
DEFEVENT(KEY_1,"1",AM_K,0,0,AK_1)
DEFEVENT(KEY_2,"2",AM_K,0,0,AK_2)
DEFEVENT(KEY_3,"3",AM_K,0,0,AK_3)
DEFEVENT(KEY_4,"4",AM_K,0,0,AK_4)
DEFEVENT(KEY_5,"5",AM_K,0,0,AK_5)
DEFEVENT(KEY_6,"6",AM_K,0,0,AK_6)
DEFEVENT(KEY_7,"7",AM_K,0,0,AK_7)
DEFEVENT(KEY_8,"8",AM_K,0,0,AK_8)
DEFEVENT(KEY_9,"9",AM_K,0,0,AK_9)
DEFEVENT(KEY_0,"0",AM_K,0,0,AK_0)
DEFEVENT(KEY_SUB,"Minus",AM_K,0,0,AK_MINUS)
DEFEVENT(KEY_EQUALS,"Equals",AM_K,0,0,AK_EQUAL)
DEFEVENT(KEY_BACKSLASH,"Backslash",AM_K,0,0,AK_BACKSLASH)

DEFEVENT(KEY_LEFTBRACKET,"Left Bracket",AM_K,0,0,AK_LBRACKET)
DEFEVENT(KEY_RIGHTBRACKET,"Right Bracket",AM_K,0,0,AK_RBRACKET)
DEFEVENT(KEY_SEMICOLON,"Semicolon",AM_K,0,0,AK_SEMICOLON)
DEFEVENT(KEY_SINGLEQUOTE,"Single Quote",AM_K,0,0,AK_QUOTE)
DEFEVENT(KEY_COMMA,"Comma",AM_K,0,0,AK_COMMA)
DEFEVENT(KEY_PERIOD,"Period",AM_K,0,0,AK_PERIOD)
DEFEVENT(KEY_DIV,"Slash",AM_K,0,0,AK_SLASH)

// DEFEVENT(KEY_,"",AM_K,0,0,0x)

/* mouse wheel "keys" */

DEFEVENT(MOUSEWHEEL_DOWN,"Mouse Wheel Down",AM_K,0,0,0x7a)
DEFEVENT(MOUSEWHEEL_UP,"Mouse Wheel Up",AM_K,0,0,0x7b)

/* misc */

DEFEVENT(KEY_CDTV_STOP,"CDTV Stop",AM_K,0,0,0x72)
DEFEVENT(KEY_CDTV_PLAYPAUSE,"CDTV Play/Pause",AM_K,0,0,0x73)
DEFEVENT(KEY_CDTV_PREV,"CDTV Previous",AM_K,0,0,0x74)
DEFEVENT(KEY_CDTV_NEXT,"CDTV Next",AM_K,0,0,0x75)
DEFEVENT(KEY_CDTV_REW,"CDTV Rewind",AM_K,0,0,0x76)
DEFEVENT(KEY_CDTV_FF,"CDTV Fast Forward",AM_K,0,0,0x77)

DEFEVENT(KEY_0E,"Keycode 0x0E",AM_K,0,0,0x0e)

DEFEVENT(KEY_1C,"Keycode 0x1C",AM_K,0,0,0x1c)

DEFEVENT(KEY_2C,"Keycode 0x2C",AM_K,0,0,0x2C)

DEFEVENT(KEY_3B,"Keycode 0x3B",AM_K,0,0,0x3b)
DEFEVENT(KEY_47,"Keycode 0x47",AM_K,0,0,0x47)

DEFEVENT(KEY_48,"Keycode 0x48",AM_K,0,0,0x48)
DEFEVENT(KEY_49,"Keycode 0x49",AM_K,0,0,0x49)
DEFEVENT(KEY_4B,"Keycode 0x4B",AM_K,0,0,0x4b)

DEFEVENT(KEY_68,"Keycode 0x68",AM_K,0,0,0x68)
DEFEVENT(KEY_69,"Keycode 0x69",AM_K,0,0,0x69)
DEFEVENT(KEY_6A,"Keycode 0x6A",AM_K,0,0,0x6a)
DEFEVENT(KEY_6B,"Keycode 0x6B",AM_K,0,0,0x6b)
DEFEVENT(KEY_6C,"Keycode 0x6C",AM_K,0,0,0x6c)
DEFEVENT(KEY_6D,"Keycode 0x6D",AM_K,0,0,0x6d)
DEFEVENT(KEY_6E,"Keycode 0x6E",AM_K,0,0,0x6e)
DEFEVENT(KEY_6F,"Keycode 0x6F",AM_K,0,0,0x6f)

DEFEVENT(KEY_70,"Keycode 0x70",AM_K,0,0,0x70)
DEFEVENT(KEY_71,"Keycode 0x71",AM_K,0,0,0x71)
DEFEVENT(KEY_78,"Keycode 0x78 (Reset Warning)",AM_K,0,0,0x78)
DEFEVENT(KEY_79,"Keycode 0x79",AM_K,0,0,0x79)
DEFEVENT(KEY_7A,"Keycode 0x7A",AM_K,0,0,0x7a)
DEFEVENT(KEY_7B,"Keycode 0x7B",AM_K,0,0,0x7b)
DEFEVENT(KEY_7C,"Keycode 0x7C",AM_K,0,0,0x7c)
DEFEVENT(KEY_7D,"Keycode 0x7D",AM_K,0,0,0x7d)
DEFEVENT(KEY_7E,"Keycode 0x7E",AM_K,0,0,0x7e)
DEFEVENT(KEY_7F,"Keycode 0x7F",AM_K,0,0,0x7f)

/* special */

DEFEVENT(SPC_ENTERGUI,"Enter GUI",AM_K,0,0,AKS_ENTERGUI)
DEFEVENT(SPC_SCREENSHOT,"Screenshot",AM_K,0,0,AKS_SCREENSHOT_FILE)
DEFEVENT(SPC_SCREENSHOT_CLIPBOARD,"Screenshot (clipboard)",AM_K,0,0,AKS_SCREENSHOT_CLIPBOARD)
DEFEVENT(SPC_FREEZEBUTTON,"Activate Cartridge",AM_K,0,0,AKS_FREEZEBUTTON)
DEFEVENT(SPC_FLOPPY0,"Change disk in DF0:",AM_K,0,0,AKS_FLOPPY0)
DEFEVENT(SPC_FLOPPY1,"Change disk in DF1:",AM_K,0,0,AKS_FLOPPY1)
DEFEVENT(SPC_FLOPPY2,"Change disk in DF2:",AM_K,0,0,AKS_FLOPPY2)
DEFEVENT(SPC_FLOPPY3,"Change disk in DF3:",AM_K,0,0,AKS_FLOPPY3)
DEFEVENT(SPC_EFLOPPY0,"Eject disk in DF0:",AM_K,0,0,AKS_EFLOPPY0)
DEFEVENT(SPC_EFLOPPY1,"Eject disk in DF1:",AM_K,0,0,AKS_EFLOPPY1)
DEFEVENT(SPC_EFLOPPY2,"Eject disk in DF2:",AM_K,0,0,AKS_EFLOPPY2)
DEFEVENT(SPC_EFLOPPY3,"Eject disk in DF3:",AM_K,0,0,AKS_EFLOPPY3)
DEFEVENT(SPC_PAUSE,"Pause emulation",AM_K,0,0,AKS_PAUSE)
DEFEVENT(SPC_WARP,"Warp mode",AM_K,0,0,AKS_WARP)
DEFEVENT(SPC_INHIBITSCREEN,"Toggle screen updates",AM_K,0,0,AKS_INHIBITSCREEN)
DEFEVENT(SPC_IRQ7,"Level 7 interrupt",AM_K,0,0,AKS_IRQ7)
DEFEVENT(SPC_STATEREWIND,"Load previous state capture",AM_K,0,0,AKS_STATEREWIND)
DEFEVENT(SPC_VOLUME_DOWN,"Decrease volume level",AM_K,0,0,AKS_VOLDOWN)
DEFEVENT(SPC_VOLUME_UP,"Increase volume level",AM_K,0,0,AKS_VOLUP)
DEFEVENT(SPC_VOLUME_MUTE,"Mute/unmute volume",AM_K,0,0,AKS_VOLMUTE)
DEFEVENT(SPC_MASTER_VOLUME_DOWN,"Decrease master volume level",AM_K,0,0,AKS_MVOLDOWN)
DEFEVENT(SPC_MASTER_VOLUME_UP,"Increase master volume level",AM_K,0,0,AKS_MVOLUP)
DEFEVENT(SPC_MASTER_VOLUME_MUTE,"Mute/unmute master volume",AM_K,0,0,AKS_MVOLMUTE)
DEFEVENT(SPC_QUIT,"Quit emulator",AM_K,0,0,AKS_QUIT)
DEFEVENT(SPC_SOFTRESET,"Reset emulation",AM_K,0,0,AKS_SOFTRESET)
DEFEVENT(SPC_HARDRESET,"Hard reset emulation",AM_K,0,0,AKS_HARDRESET)
DEFEVENT(SPC_ENTERDEBUGGER,"Activate the built-in debugger",AM_K,0,0,AKS_ENTERDEBUGGER)
DEFEVENT(SPC_STATESAVE,"Quick save state",AM_K,0,0,AKS_STATESAVEQUICK)
DEFEVENT(SPC_STATERESTORE,"Quick restore state",AM_K,0,0,AKS_STATERESTOREQUICK)
DEFEVENT(SPC_STATESAVEDIALOG,"Save state",AM_K,0,0,AKS_STATESAVEDIALOG)
DEFEVENT(SPC_STATERESTOREDIALOG,"Restore state",AM_K,0,0,AKS_STATERESTOREDIALOG)
DEFEVENT(SPC_TOGGLEFULLSCREEN,"Toggle windowed/fullscreen",AM_K,0,0,AKS_TOGGLEWINDOWEDFULLSCREEN)
DEFEVENT(SPC_TOGGLEFULLWINDOWFULLSCREEN,"Toggle full-window/fullscreen",AM_K,0,0,AKS_TOGGLEFULLWINDOWFULLSCREEN)
DEFEVENT(SPC_TOGGLEWINDOWFULLWINDOW,"Toggle window/full-window",AM_K,0,0,AKS_TOGGLEWINDOWFULLWINDOW)
DEFEVENT(SPC_TOGGLEMOUSEGRAB,"Toggle between mouse grabbed and un-grabbed",AM_K,0,0,AKS_TOGGLEMOUSEGRAB)
DEFEVENT(SPC_GLPANLEFT,"Pan opengl texture to the left",AM_K,0,0,AKS_GLPANLEFT)		/*Koko*/
DEFEVENT(SPC_GLPANRIGHT,"Pan opengl texture to the left",AM_K,0,0,AKS_GLPANRIGHT) 	/*Koko*/
DEFEVENT(SPC_GLPANUP,"Pan opengl texture to the left",AM_K,0,0,AKS_GLPANUP) 		/*Koko*/
DEFEVENT(SPC_GLPANDOWN,"Pan opengl texture to the left",AM_K,0,0,AKS_GLPANDOWN) 	/*Koko*/
DEFEVENT(SPC_GLPANSCANMORE,"ZoomIn opengl texture",AM_K,0,0,AKS_GLPANSCANMORE) 		/*Koko*/
DEFEVENT(SPC_GLPANSCANLESS,"ZoomOut opengl texture",AM_K,0,0,AKS_GLPANSCANLESS) 	/*Koko*/
DEFEVENT(SPC_DECREASE_REFRESHRATE,"Decrease emulation speed",AM_K,0,0,AKS_DECREASEREFRESHRATE)
DEFEVENT(SPC_INCREASE_REFRESHRATE,"Increase emulation speed",AM_K,0,0,AKS_INCREASEREFRESHRATE)
DEFEVENT(SPC_SWITCHINTERPOL,"Switch between audio interpolation methods",AM_K,0,0,AKS_SWITCHINTERPOL)

DEFEVENT(SPC_DISKSWAPPER_NEXT,"Next slot in Disk Swapper",AM_K,0,0,AKS_DISKSWAPPER_NEXT)
DEFEVENT(SPC_DISKSWAPPER_PREV,"Previous slot in Disk Swapper",AM_K,0,0,AKS_DISKSWAPPER_PREV)
DEFEVENT(SPC_DISKSWAPPER_INSERT0,"Insert disk in current Disk Swapper slot in DF0:",AM_K,0,0,AKS_DISKSWAPPER_INSERT0)
DEFEVENT(SPC_DISKSWAPPER_INSERT1,"Insert disk in current Disk Swapper slot in DF1:",AM_K,0,0,AKS_DISKSWAPPER_INSERT1)
DEFEVENT(SPC_DISKSWAPPER_INSERT2,"Insert disk in current Disk Swapper slot in DF2:",AM_K,0,0,AKS_DISKSWAPPER_INSERT2)
DEFEVENT(SPC_DISKSWAPPER_INSERT3,"Insert disk in current Disk Swapper slot in DF3:",AM_K,0,0,AKS_DISKSWAPPER_INSERT3)

DEFEVENT(SPC_DISK_PREV0,"Previous disk image in DF0:",AM_K,0,0,AKS_DISK_PREV0)
DEFEVENT(SPC_DISK_PREV1,"Previous disk image in DF1:",AM_K,0,0,AKS_DISK_PREV1)
DEFEVENT(SPC_DISK_PREV2,"Previous disk image in DF2:",AM_K,0,0,AKS_DISK_PREV2)
DEFEVENT(SPC_DISK_PREV3,"Previous disk image in DF3:",AM_K,0,0,AKS_DISK_PREV3)
DEFEVENT(SPC_DISK_NEXT0,"Next disk image in DF0:",AM_K,0,0,AKS_DISK_NEXT0)
DEFEVENT(SPC_DISK_NEXT1,"Next disk image in DF1:",AM_K,0,0,AKS_DISK_NEXT1)
DEFEVENT(SPC_DISK_NEXT2,"Next disk image in DF2:",AM_K,0,0,AKS_DISK_NEXT2)
DEFEVENT(SPC_DISK_NEXT3,"Next disk image in DF3:",AM_K,0,0,AKS_DISK_NEXT3)

DEFEVENT(SPC_INPUT_CONFIG1,"Select Input Configuration #1",AM_K,0,0,AKS_INPUT_CONFIG_1)
DEFEVENT(SPC_INPUT_CONFIG2,"Select Input Configuration #2",AM_K,0,0,AKS_INPUT_CONFIG_2)
DEFEVENT(SPC_INPUT_CONFIG3,"Select Input Configuration #3",AM_K,0,0,AKS_INPUT_CONFIG_3)
DEFEVENT(SPC_INPUT_CONFIG4,"Select Input Configuration #4",AM_K,0,0,AKS_INPUT_CONFIG_4)

DEFEVENT(SPC_ARCADIA_DIAGNOSTICS,"Arcadia diagnostics dip switch",AM_K,0,0,AKS_ARCADIADIAGNOSTICS)
DEFEVENT(SPC_ARCADIA_PLAYER1,"Arcadia player 1",AM_K,0,0,AKS_ARCADIAPLY1)
DEFEVENT(SPC_ARCADIA_PLAYER2,"Arcadia player 2",AM_K,0,0,AKS_ARCADIAPLY2)
DEFEVENT(SPC_ARCADIA_COIN1,"Arcadia coin player 1",AM_K,0,0,AKS_ARCADIACOIN1)
DEFEVENT(SPC_ARCADIA_COIN2,"Arcadia coin player 2",AM_K,0,0,AKS_ARCADIACOIN2)
