|
|
| version 1.19, 2004/03/31 19:23:37 | version 1.25, 2011/01/15 18:04:43 |
|---|---|
| Line 24 void keyboard_callback(NEVENTITEM item) | Line 24 void keyboard_callback(NEVENTITEM item) |
| 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)); | // TRACEOUT(("recv -> %02x", keybrd.data)); |
| } | } |
| pic_setirq(1); | pic_setirq(1); |
| nevent_set(NEVENT_KEYBOARD, keybrd.xferclock, | nevent_set(NEVENT_KEYBOARD, keybrd.xferclock, |
| Line 36 void keyboard_callback(NEVENTITEM item) | Line 36 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) { |
| TRACEOUT(("send -> %02x", dat)); | // TRACEOUT(("send -> %02x", dat)); |
| keystat_ctrlsend(dat); | keystat_ctrlsend(dat); |
| } | } |
| else { | |
| keybrd.mode = 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)); | // 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 63 static REG8 IOINPCALL keyboard_i41(UINT |
| (void)port; | (void)port; |
| keybrd.status &= ~2; | keybrd.status &= ~2; |
| pic_resetirq(1); | pic_resetirq(1); |
| TRACEOUT(("in41 -> %02x %.4x:%.8x", keybrd.data, CPU_CS, CPU_EIP)); | // 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)); | // TRACEOUT(("in43 -> %02x %.4x:%.8x", keybrd.status, CPU_CS, CPU_EIP)); |
| return(keybrd.status | 0x85); | return(keybrd.status | 0x85); |
| } | } |
| Line 81 static const IOINP keybrdi41[2] = { | Line 84 static const IOINP keybrdi41[2] = { |
| keyboard_i41, keyboard_i43}; | keyboard_i41, keyboard_i43}; |
| void keyboard_reset(void) { | void keyboard_reset(const NP2CFG *pConfig) { |
| ZeroMemory(&keybrd, sizeof(keybrd)); | ZeroMemory(&keybrd, sizeof(keybrd)); |
| keybrd.data = 0xff; | keybrd.data = 0xff; |
| keybrd.mode = 0x5e; | |
| (void)pConfig; | |
| } | } |
| void keyboard_bind(void) { | void keyboard_bind(void) { |
| Line 162 void rs232c_open(void) { | Line 168 void rs232c_open(void) { |
| void rs232c_callback(void) { | void rs232c_callback(void) { |
| BOOL interrupt; | BOOL intr; |
| interrupt = FALSE; | intr = FALSE; |
| if ((cm_rs232c) && (cm_rs232c->read(cm_rs232c, &rs232c.data))) { | if ((cm_rs232c) && (cm_rs232c->read(cm_rs232c, &rs232c.data))) { |
| rs232c.result |= 2; | rs232c.result |= 2; |
| if (sysport.c & 1) { | if (sysport.c & 1) { |
| interrupt = TRUE; | intr = TRUE; |
| } | } |
| } | } |
| else { | else { |
| rs232c.result &= (BYTE)~2; | rs232c.result &= (UINT8)~2; |
| } | } |
| if (sysport.c & 4) { | if (sysport.c & 4) { |
| if (rs232c.send) { | if (rs232c.send) { |
| rs232c.send = 0; | rs232c.send = 0; |
| interrupt = TRUE; | intr = TRUE; |
| } | } |
| } | } |
| if (interrupt) { | if (intr) { |
| pic_setirq(4); | pic_setirq(4); |
| } | } |
| } | } |
| BYTE rs232c_stat(void) { | UINT8 rs232c_stat(void) { |
| if (cm_rs232c == NULL) { | if (cm_rs232c == NULL) { |
| cm_rs232c = commng_create(COMCREATE_SERIAL); | cm_rs232c = commng_create(COMCREATE_SERIAL); |
| Line 304 static const IOOUT rs232co30[2] = { | Line 310 static const IOOUT rs232co30[2] = { |
| static const IOINP rs232ci30[2] = { | static const IOINP rs232ci30[2] = { |
| rs232c_i30, rs232c_i32}; | rs232c_i30, rs232c_i32}; |
| void rs232c_reset(void) { | void rs232c_reset(const NP2CFG *pConfig) { |
| commng_destroy(cm_rs232c); | commng_destroy(cm_rs232c); |
| cm_rs232c = NULL; | cm_rs232c = NULL; |
| Line 314 void rs232c_reset(void) { | Line 320 void rs232c_reset(void) { |
| rs232c.pos = 0; | rs232c.pos = 0; |
| rs232c.dummyinst = 0; | rs232c.dummyinst = 0; |
| rs232c.mul = 10 * 16; | rs232c.mul = 10 * 16; |
| (void)pConfig; | |
| } | } |
| void rs232c_bind(void) { | void rs232c_bind(void) { |