|
|
| version 1.4, 2003/10/23 18:33:13 | version 1.6, 2003/12/04 16:48:15 |
|---|---|
| Line 96 void keystat_reset(void) { | Line 96 void keystat_reset(void) { |
| ZeroMemory(keystat, sizeof(keystat)); | ZeroMemory(keystat, sizeof(keystat)); |
| } | } |
| void keystat_senddata(BYTE data) { | void keystat_senddata(BYTE data) { |
| BYTE key = data & 0x7f; | BYTE key; |
| BOOL keynochange = FALSE; | BOOL keynochange; |
| key = data & 0x7f; | |
| keynochange = FALSE; | |
| // CTRL:カナ 0x71,0x72 bit7==0でトグル処理 (標準処理) | |
| if ((key == 0x71) || (key == 0x72)) { | if ((key == 0x71) || (key == 0x72)) { |
| if (data & 0x80) { | if (data & 0x80) { |
| return; | return; |
| Line 120 void keystat_senddata(BYTE data) { | Line 125 void keystat_senddata(BYTE data) { |
| keystat[key] ^= 0x80; | keystat[key] ^= 0x80; |
| } | } |
| else { | else { |
| // CTRL:カナ 0x79,0x7a bit7をそのまま通知 | |
| // (ハードウェアでメカニカル処理してる場合) | |
| if ((key == 0x79) || (key == 0x7a)) { | |
| key -= 0x08; | |
| data -= 0x08; | |
| } | |
| if (!((keystat[key] ^ data) & 0x80)) { | if (!((keystat[key] ^ data) & 0x80)) { |
| keystat[key] ^= 0x80; | keystat[key] ^= 0x80; |
| } | } |