KeysNoModifiers = {
  { SDLK_F1,           KeyCode::eKEY_F1 },
  { SDLK_F2,           KeyCode::eKEY_F2 },
  { SDLK_F3,           KeyCode::eKEY_F3 },
  { SDLK_F4,           KeyCode::eKEY_F4 },
  { SDLK_F5,           KeyCode::eKEY_F5 },
  { SDLK_F6,           KeyCode::eKEY_ANS },
  { SDLK_F9,           KeyCode::eKEY_IM2ND },
  { SDLK_F10,          KeyCode::eKEY_IMALPHA },
  { SDLK_F12,          KeyCode::eKEY_ON },
  { SDLK_RETURN,       KeyCode::eKEY_ENTER },
  { SDLK_UP,           KeyCode::eKEY_UP },
  { SDLK_DOWN,         KeyCode::eKEY_DOWN },
  { SDLK_LEFT,         KeyCode::eKEY_LEFT },
  { SDLK_RIGHT,        KeyCode::eKEY_RIGHT },
  { SDLK_HOME,         KeyCode::eKEY_LEFT_END },
  { SDLK_END,          KeyCode::eKEY_RIGHT_END },
  { SDLK_INSERT,       KeyCode::eKEY_INS },
  { SDLK_DELETE,       KeyCode::eKEY_DEL },
  { SDLK_ESCAPE,       KeyCode::eKEY_CLEAR },
  { SDLK_SLASH,        KeyCode::eKEY_DIV },
  { SDLK_COMMA,        KeyCode::eKEY_COMMA },
  { SDLK_LEFTBRACKET,  KeyCode::eKEY_LBRACKET },
  { SDLK_RIGHTBRACKET, KeyCode::eKEY_RBRACKET },
  { SDLK_SPACE,        KeyCode::eKEY_SPACE },
  { SDLK_PERIOD,       KeyCode::eKEY_DOT },
  { SDLK_MINUS,        KeyCode::eKEY_MINUS },
  { SDLK_EQUALS,       KeyCode::eKEY_EQUALS },
  { SDLK_QUOTE,        KeyCode::eKEY_QUOTE },
  { SDLK_1,            KeyCode::eKEY_1 },
  { SDLK_2,            KeyCode::eKEY_2 },
  { SDLK_3,            KeyCode::eKEY_3 },
  { SDLK_4,            KeyCode::eKEY_4 },
  { SDLK_5,            KeyCode::eKEY_5 },
  { SDLK_6,            KeyCode::eKEY_6 },
  { SDLK_7,            KeyCode::eKEY_7 },
  { SDLK_8,            KeyCode::eKEY_8 },
  { SDLK_9,            KeyCode::eKEY_9 },
  { SDLK_0,            KeyCode::eKEY_0 },
  { SDLK_KP_DIVIDE,    KeyCode::eKEY_DIV },
  { SDLK_KP_MULTIPLY,  KeyCode::eKEY_MUL },
  { SDLK_KP_MINUS,     KeyCode::eKEY_MINUS },
  { SDLK_KP_PLUS,      KeyCode::eKEY_PLUS },
  { SDLK_KP_ENTER,     KeyCode::eKEY_ENTER },
  { SDLK_HASH ,        KeyCode::eKEY_HASH },
  { SDLK_DOLLAR,       KeyCode::eKEY_DOLLAR },
  { SDLK_PERCENT,      KeyCode::eKEY_PERCENT },
  { SDLK_AMPERSAND,    KeyCode::eKEY_AMPERSAND },
  { SDLK_SEMICOLON,    KeyCode::eKEY_SEMICOLON },
  { SDLK_AT,           KeyCode::eKEY_AT },
  { SDLK_BACKSLASH,    KeyCode::eKEY_BACKSLASH },
  { SDLK_PAGEUP,       KeyCode::eKEY_PAGE_UP },
  { SDLK_PAGEDOWN,     KeyCode::eKEY_PAGE_DOWN },
  { SDLK_BACKSPACE,    KeyCode::eKEY_BACKSPACE },
};
KeysShift = {
  { SDLK_1,            KeyCode::eKEY_EXCLAIMATION },
  { SDLK_2,            KeyCode::eKEY_AT },
  { SDLK_3,            KeyCode::eKEY_HASH },
  { SDLK_4,            KeyCode::eKEY_DOLLAR },
  { SDLK_5,            KeyCode::eKEY_PERCENT },
  { SDLK_6,            KeyCode::eKEY_CARET },
  { SDLK_7,            KeyCode::eKEY_AMPERSAND },
  { SDLK_8,            KeyCode::eKEY_MUL },
  { SDLK_9,            KeyCode::eKEY_LPAREN },
  { SDLK_0,            KeyCode::eKEY_RPAREN },
  { SDLK_LEFTBRACKET,  KeyCode::eKEY_LBRACE },
  { SDLK_RIGHTBRACKET, KeyCode::eKEY_RBRACE },
  { SDLK_SEMICOLON,    KeyCode::eKEY_COLON },
  { SDLK_QUOTE,        KeyCode::eKEY_DOUBLE_QUOTE },
  { SDLK_SLASH,        KeyCode::eKEY_QUESTION },
  { SDLK_EQUALS,       KeyCode::eKEY_PLUS },
  { SDLK_PERIOD,       KeyCode::eKEY_GREATER },
  { SDLK_COMMA,        KeyCode::eKEY_LESS },
  { SDLK_INSERT,       KeyCode::eKEY_PASTE },
  { SDLK_MINUS,        KeyCode::eKEY_UNDESCORE },
  { SDLK_BACKSLASH,    KeyCode::eKEY_PIPE },
  { SDLK_BACKQUOTE,    KeyCode::eKEY_TILDE },
};
KeysAlt = {
  { SDLK_x,     KeyCode::eKEY_EXIT        },
  { SDLK_r,     KeyCode::eKEY_FORMAT      },
  { SDLK_o,     KeyCode::eKEY_MODE        },
  { SDLK_d,     KeyCode::eKEY_DRAW        },
  { SDLK_h,     KeyCode::eKEY_MATH        },
  { SDLK_i,     KeyCode::eKEY_LIST        },
  { SDLK_e,     KeyCode::eKEY_STAT        },
  { SDLK_l,     KeyCode::eKEY_TABLE       },
  { SDLK_f,     KeyCode::eKEY_CALC        },
  { SDLK_b,     KeyCode::eKEY_TBLSETUP    },
  { SDLK_v,     KeyCode::eKEY_VARS        },
  { SDLK_s,     KeyCode::eKEY_ASIN        },
  { SDLK_c,     KeyCode::eKEY_ACOS        },
  { SDLK_a,     KeyCode::eKEY_ATAN        },
  { SDLK_q,     KeyCode::eKEY_X2          },
  { SDLK_g,     KeyCode::eKEY_POW_10      },
  { SDLK_n,     KeyCode::eKEY_POW_E       },
  { SDLK_m,     KeyCode::eKEY_MEM         },
  { SDLK_1,     KeyCode::eKEY_POW_MINUS1  },
  { SDLK_p,     KeyCode::eKEY_PI          },
  { SDLK_w,     KeyCode::eKEY_EXPONENT    },
  { SDLK_RIGHT, KeyCode::eKEY_STORE       },
};
KeysCtrl = {
  { SDLK_f,        KeyCode::eKEY_OFF         },
  { SDLK_m,        KeyCode::eKEY_MATRIX      },
  { SDLK_o,        KeyCode::eKEY_STATPLOT    },
  { SDLK_p,        KeyCode::eKEY_APPS        },
  { SDLK_r,        KeyCode::eKEY_PRGM        },
  { SDLK_l,        KeyCode::eKEY_CATALOG     },
  { SDLK_e,        KeyCode::eKEY_ANGLE       },
  { SDLK_d,        KeyCode::eKEY_DISTR       },
  { SDLK_t,        KeyCode::eKEY_TEST        },
  { SDLK_y,        KeyCode::eKEY_ENTRY       },
  { SDLK_i,        KeyCode::eKEY_COMPLEX_I   },
  { SDLK_s,        KeyCode::eKEY_SIN         },
  { SDLK_c,        KeyCode::eKEY_COS         },
  { SDLK_a,        KeyCode::eKEY_TAN         },
  { SDLK_q,        KeyCode::eKEY_SQRT        },
  { SDLK_g,        KeyCode::eKEY_LOG         },
  { SDLK_n,        KeyCode::eKEY_LN          },
  { SDLK_u,        KeyCode::eKEY_ARG         },
  { SDLK_w,        KeyCode::eKEY_POW_TEN     },
  { SDLK_1,        KeyCode::eKEY_LIST1       },
  { SDLK_2,        KeyCode::eKEY_LIST2       },
  { SDLK_3,        KeyCode::eKEY_LIST3       },
  { SDLK_4,        KeyCode::eKEY_LIST4       },
  { SDLK_5,        KeyCode::eKEY_LIST5       },
  { SDLK_6,        KeyCode::eKEY_LIST6x      },
  { SDLK_b,        KeyCode::eKEY_RCL         },
  { SDLK_KP_1,     KeyCode::eKEY_LIST1       },
  { SDLK_KP_2,     KeyCode::eKEY_LIST2       },
  { SDLK_KP_3,     KeyCode::eKEY_LIST3       },
  { SDLK_KP_4,     KeyCode::eKEY_LIST4       },
  { SDLK_KP_5,     KeyCode::eKEY_LIST5       },
  { SDLK_KP_6,     KeyCode::eKEY_LIST6x      },
  { SDLK_KP_ENTER, KeyCode::eKEY_SOLVE       },
  { SDLK_RETURN,   KeyCode::eKEY_SOLVE       },
  { SDLK_MINUS,    KeyCode::eKEY_UNARY_MINUS },
  { SDLK_KP_MINUS, KeyCode::eKEY_UNARY_MINUS },
  { SDLK_INSERT,   KeyCode::eKEY_COPY        },
  { SDLK_RIGHT,    KeyCode::eKEY_STORE       },
};