|
|
| version 1.9, 2004/02/07 21:23:22 | version 1.10, 2004/02/11 17:39:59 |
|---|---|
| Line 86 static void keybrd_out(REG8 data) { | Line 86 static void keybrd_out(REG8 data) { |
| // ---- | // ---- |
| UINT8 keystat[0x80]; | static UINT8 keystat[0x80]; |
| void keystat_reset(void) { | void keystat_reset(void) { |
| Line 98 void keystat_senddata(REG8 data) { | Line 98 void keystat_senddata(REG8 data) { |
| REG8 key; | REG8 key; |
| BOOL keynochange; | BOOL keynochange; |
| const UINT8 *user; | |
| UINT i; | |
| key = data & 0x7f; | key = data & 0x7f; |
| keynochange = FALSE; | keynochange = FALSE; |
| Line 110 void keystat_senddata(REG8 data) { | Line 112 void keystat_senddata(REG8 data) { |
| data = key | (keystat[key] & 0x80); | data = key | (keystat[key] & 0x80); |
| keystat[key] ^= 0x80; | keystat[key] ^= 0x80; |
| } | } |
| else if ((key == 0x76) || (key == 0x77)) { // user key | |
| user = np2cfg.userkey[key - 0x76]; | |
| for (i=0; i<user[0]; i++) { | |
| key = user[i+1] & 0x7f; | |
| if (!((keystat[key] ^ data) & 0x80)) { | |
| keystat[key] ^= 0x80; | |
| keybrd_out((REG8)(key | (data & 0x80))); | |
| } | |
| } | |
| return; | |
| } | |
| else { | else { |
| if ((np2cfg.XSHIFT) && | if ((np2cfg.XSHIFT) && |
| (((key == 0x70) && (np2cfg.XSHIFT & 1)) || | (((key == 0x70) && (np2cfg.XSHIFT & 1)) || |
| Line 150 void keystat_senddata(REG8 data) { | Line 163 void keystat_senddata(REG8 data) { |
| } | } |
| } | } |
| void keystat_forcerelease(REG8 value) { | |
| REG8 key; | |
| const UINT8 *user; | |
| UINT i; | |
| key = value & 0x7f; | |
| if ((key != 0x76) && (key != 0x77)) { | |
| if (keystat[key] & 0x80) { | |
| keystat[key] &= ~0x80; | |
| keybrd_out((REG8)(key | 0x80)); | |
| } | |
| } | |
| else { | |
| user = np2cfg.userkey[key - 0x76]; | |
| for (i=0; i<user[0]; i++) { | |
| key = user[i+1] & 0x7f; | |
| if (keystat[key] & 0x80) { | |
| keystat[key] &= ~0x80; | |
| keybrd_out((REG8)(key | 0x80)); | |
| } | |
| } | |
| } | |
| } | |
| void keystat_resetcopyhelp(void) { | void keystat_resetcopyhelp(void) { |
| REG8 i; | REG8 i; |
| Line 174 void keystat_allrelease(void) { | Line 212 void keystat_allrelease(void) { |
| } | } |
| } | } |
| void keystat_forcerelease(REG8 value) { | |
| if (keystat[value & 0x7f] & 0x80) { | |
| keystat[value & 0x7f] &= ~0x80; | |
| keybrd_out((REG8)(value | 0x80)); | |
| } | |
| } | |
| void keystat_resetjoykey(void) { | void keystat_resetjoykey(void) { |
| int i; | int i; |