--- np2/io/mouseif.c 2004/02/18 03:24:48 1.8 +++ np2/io/mouseif.c 2004/03/05 04:39:59 1.9 @@ -84,6 +84,7 @@ void mouseint(NEVENTITEM item) { if (item->flag & NEVENT_SETEVENT) { if (!(mouseif.portc & 0x10)) { pic_setirq(0x0d); + TRACEOUT(("mouse int")); nevent_set(NEVENT_MOUSE, mouseif.intrclock << mouseif.timing, mouseint, NEVENT_RELATIVE); } @@ -133,13 +134,7 @@ static void IOOUTCALL mouseif_o7fdd(UINT static void IOOUTCALL mouseif_o7fdf(UINT port, REG8 dat) { - if (dat & 0xf0) { - mouseif.mode = (UINT8)dat; - if (dat == 0x93) { - setportc(0); - } - } - else { + if (!(dat & 0xf0)) { if (dat & 1) { setportc((REG8)(mouseif.portc | (1 << (dat >> 1)))); } @@ -147,6 +142,10 @@ static void IOOUTCALL mouseif_o7fdf(UINT setportc((REG8)(mouseif.portc & (~(1 << (dat >> 1))))); } } + else if (dat & 0x80) { + mouseif.mode = (UINT8)dat; + setportc(0); + } (void)port; } @@ -182,8 +181,8 @@ static REG8 IOINPCALL mouseif_i7fd9(UINT else { ret |= (x >> 4) & 0x0f; } -// TRACEOUT(("%x %x mouse [%x] %d -> %x", CPU_CS, CPU_IP, portc & 0x20, y, ret)); (void)port; + TRACEOUT(("mouse read %x", ret)); return(ret); }