num_pressed++;
}
- key = ext ? scantbl_set1_ext[code] : scantbl_set1[code];
- ext = 0;
+ if(!ext) {
+ key = code < 0x59 ? scantbl_set1[code] : 0;
+ } else {
+ switch(code) {
+ case 0x1c: key = '\r'; break;
+ case 0x1d: key = KB_RCTRL; break;
+ //case 0x35: key = KB_NUM_MINUS; break;
+ //case 0x37: key = KB_SYSRQ; break;
+ case 0x38: key = KB_RALT; break;
+ case 0x47: key = KB_HOME; break;
+ case 0x48: key = KB_UP; break;
+ case 0x49: key = KB_PGUP; break;
+ case 0x4b: key = KB_LEFT; break;
+ case 0x4d: key = KB_RIGHT; break;
+ case 0x4f: key = KB_END; break;
+ case 0x50: key = KB_DOWN; break;
+ case 0x51: key = KB_PGDN; break;
+ case 0x52: key = KB_INSERT; break;
+ case 0x53: key = KB_DEL; break;
+ default:
+ key = 0;
+ }
+ ext = 0;
+ }
if(press) {
if(key == KB_DEL && (keystate[KB_LALT] || keystate[KB_RALT]) && (keystate[KB_LCTRL] || keystate[KB_RCTRL])) {