| version 1.15, 2004/03/30 07:12:03 | version 1.17, 2004/03/30 20:01:30 | 
| Line 1 | Line 1 | 
 | #include        "compiler.h" | #include        "compiler.h" | 
 |  | #include        "cpucore.h" | 
 | #include        "commng.h" | #include        "commng.h" | 
 | #include        "pccore.h" | #include        "pccore.h" | 
 | #include        "iocore.h" | #include        "iocore.h" | 
| Line 22  static void keyboard_int(BOOL absolute) | Line 23  static void keyboard_int(BOOL absolute) | 
 | keybrd.data = keybrd.buf[keybrd.bufpos]; | keybrd.data = keybrd.buf[keybrd.bufpos]; | 
 | keybrd.bufpos = (keybrd.bufpos + 1) & KB_BUFMASK; | keybrd.bufpos = (keybrd.bufpos + 1) & KB_BUFMASK; | 
 | } | } | 
 |  | TRACEOUT(("recv -> %02x", keybrd.data)); | 
 | } | } | 
 | pic_setirq(1); | pic_setirq(1); | 
 | nevent_set(NEVENT_KEYBOARD, keybrd.xferclock, | nevent_set(NEVENT_KEYBOARD, keybrd.xferclock, | 
| Line 39  void keyboard_callback(NEVENTITEM item) | Line 41  void keyboard_callback(NEVENTITEM item) | 
 | static void IOOUTCALL keyboard_o41(UINT port, REG8 dat) { | static void IOOUTCALL keyboard_o41(UINT port, REG8 dat) { | 
 |  |  | 
 | if (keybrd.cmd & 1) { | if (keybrd.cmd & 1) { | 
| keystat_ctrl(dat); | TRACEOUT(("send -> %02x", dat)); | 
|  | keystat_ctrlsend(dat); | 
 | } | } | 
 | (void)port; | (void)port; | 
 | } | } | 
 |  |  | 
 | static void IOOUTCALL keyboard_o43(UINT port, REG8 dat) { | 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)) { | if ((!(dat & 0x08)) && (keybrd.cmd & 0x08)) { | 
 | keyboard_resetsignal(); | keyboard_resetsignal(); | 
 | } | } | 
| Line 60  static REG8 IOINPCALL keyboard_i41(UINT | Line 64  static REG8 IOINPCALL keyboard_i41(UINT | 
 |  |  | 
 | (void)port; | (void)port; | 
 | keybrd.status &= ~2; | keybrd.status &= ~2; | 
 |  | TRACEOUT(("in41 -> %02x %.4x:%.8x", keybrd.data, CPU_CS, CPU_EIP)); | 
 | return(keybrd.data); | return(keybrd.data); | 
 | } | } | 
 |  |  | 
 | static REG8 IOINPCALL keyboard_i43(UINT port) { | static REG8 IOINPCALL keyboard_i43(UINT port) { | 
 |  |  | 
 | (void)port; | (void)port; | 
 |  | TRACEOUT(("in43 -> %02x %.4x:%.8x", keybrd.status, CPU_CS, CPU_EIP)); | 
 | return(keybrd.status); | return(keybrd.status); | 
 | } | } | 
 |  |  | 
| Line 96  void keyboard_resetsignal(void) { | Line 102  void keyboard_resetsignal(void) { | 
 |  |  | 
 | keybrd.cmd = 0; | keybrd.cmd = 0; | 
 | keybrd.status = 0; | keybrd.status = 0; | 
 |  | keybrd.ctrls = 0; | 
 | keybrd.buffers = 0; | keybrd.buffers = 0; | 
| keybrd.bufpos = 0; | keystat_ctrlreset(); | 
 | keystat_resendstat(); | keystat_resendstat(); | 
 | } | } | 
 |  |  |