--- np2/io/serial.c 2003/10/16 17:57:57 1.1 +++ np2/io/serial.c 2003/10/23 06:26:16 1.3 @@ -1,7 +1,5 @@ #include "compiler.h" -#include "dosio.h" #include "commng.h" -#include "memory.h" #include "pccore.h" #include "iocore.h" @@ -112,9 +110,9 @@ void keystat_senddata(BYTE data) { } else { if ((np2cfg.XSHIFT) && - ((key == 0x70) && (np2cfg.XSHIFT & 1)) || + (((key == 0x70) && (np2cfg.XSHIFT & 1)) || ((key == 0x74) && (np2cfg.XSHIFT & 2)) || - ((key == 0x73) && (np2cfg.XSHIFT & 4))) { + ((key == 0x73) && (np2cfg.XSHIFT & 4)))) { if (data & 0x80) { return; } @@ -156,6 +154,18 @@ void keystat_resetcopyhelp(void) { } } +void keystat_allrelease(void) { + + UINT i; + + for (i=0; i<0x80; i++) { + if (keystat[i] & 0x80) { + keystat[i] &= ~0x80; + keyb_out((BYTE)(i + 0x80)); + } + } +} + void keystat_forcerelease(BYTE value) { if (keystat[value & 0x7f] & 0x80) { @@ -288,6 +298,7 @@ void rs232c_callback(void) { BOOL interrupt; + interrupt = FALSE; if ((cm_rs232c) && (cm_rs232c->read(cm_rs232c, &rs232c.data))) { rs232c.result |= 2; if (sysport.c & 1) {