--- np2/io/serial.c 2004/03/30 07:12:03 1.15 +++ np2/io/serial.c 2004/03/31 11:59:18 1.18 @@ -1,4 +1,5 @@ #include "compiler.h" +#include "cpucore.h" #include "commng.h" #include "pccore.h" #include "iocore.h" @@ -22,6 +23,7 @@ static void keyboard_int(BOOL absolute) keybrd.data = keybrd.buf[keybrd.bufpos]; keybrd.bufpos = (keybrd.bufpos + 1) & KB_BUFMASK; } + TRACEOUT(("recv -> %02x", keybrd.data)); } pic_setirq(1); nevent_set(NEVENT_KEYBOARD, keybrd.xferclock, @@ -39,13 +41,15 @@ void keyboard_callback(NEVENTITEM item) static void IOOUTCALL keyboard_o41(UINT port, REG8 dat) { if (keybrd.cmd & 1) { - keystat_ctrl(dat); + TRACEOUT(("send -> %02x", dat)); + keystat_ctrlsend(dat); } (void)port; } static void IOOUTCALL keyboard_o43(UINT port, REG8 dat) { + TRACEOUT(("out43 -> %02x %.4x:%.8x", dat, CPU_CS, CPU_EIP)); if ((!(dat & 0x08)) && (keybrd.cmd & 0x08)) { keyboard_resetsignal(); } @@ -60,13 +64,15 @@ static REG8 IOINPCALL keyboard_i41(UINT (void)port; keybrd.status &= ~2; + TRACEOUT(("in41 -> %02x %.4x:%.8x", keybrd.data, CPU_CS, CPU_EIP)); return(keybrd.data); } static REG8 IOINPCALL keyboard_i43(UINT port) { (void)port; - return(keybrd.status); + TRACEOUT(("in43 -> %02x %.4x:%.8x", keybrd.status, CPU_CS, CPU_EIP)); + return(keybrd.status | 0x85); } @@ -96,8 +102,9 @@ void keyboard_resetsignal(void) { keybrd.cmd = 0; keybrd.status = 0; + keybrd.ctrls = 0; keybrd.buffers = 0; - keybrd.bufpos = 0; + keystat_ctrlreset(); keystat_resendstat(); }