--- np2/keystat.c 2004/03/30 07:12:02 1.8 +++ np2/keystat.c 2004/03/31 11:59:17 1.11 @@ -157,7 +157,19 @@ kstbl_err: // ---- -void keystat_ctrl(REG8 dat) { +void keystat_ctrlinit(void) { + + ZeroMemory(&keyctrl, sizeof(keyctrl)); +} + +void keystat_ctrlreset(void) { + + keyctrl.reqparam = 0; +} + +void keystat_ctrlsend(REG8 dat) { + +// return; // まだテスト if (!keyctrl.reqparam) { keyctrl.mode = dat; @@ -195,12 +207,11 @@ void keystat_ctrl(REG8 dat) { #if defined(SUPPORT_PC9801_119) case 0x95: keyctrl.kbdtype = dat; + keyboard_ctrl(0xfa); break; #endif - case 0x9d: - break; - - case 0x9e: + case 0x9c: + keyboard_ctrl(0xfa); break; } keyctrl.reqparam = 0; @@ -228,14 +239,16 @@ void keystat_down(const UINT8 *key, REG8 } else { #if defined(SUPPORT_PC9801_119) - if ((keyctrl.kbdtype != 0x03) && (keycode >= 0x75)) { - continue; - } -#else - if (keycode >= 0x75) { - continue; - } + if (keyctrl.kbdtype != 0x03) #endif + { + if (keycode == 0x7d) { + keycode = 0x70; + } + else if (keycode >= 0x75) { + continue; + } + } if ((np2cfg.XSHIFT) && (((keycode == 0x70) && (np2cfg.XSHIFT & 1)) || ((keycode == 0x74) && (np2cfg.XSHIFT & 2)) || @@ -279,14 +292,16 @@ void keystat_up(const UINT8 *key, REG8 k } else { #if defined(SUPPORT_PC9801_119) - if ((keyctrl.kbdtype != 0x03) && (keycode >= 0x75)) { - continue; - } -#else - if (keycode >= 0x75) { - continue; - } + if (keyctrl.kbdtype != 0x03) #endif + { + if (keycode == 0x7d) { + keycode = 0x70; + } + else if (keycode >= 0x75) { + continue; + } + } if ((np2cfg.XSHIFT) && (((keycode == 0x70) && (np2cfg.XSHIFT & 1)) || ((keycode == 0x74) && (np2cfg.XSHIFT & 2)) ||