|
|
| version 1.4, 2003/10/23 18:33:13 | version 1.5, 2003/11/21 06:51:11 |
|---|---|
| Line 35 static void calc_mousexy(void) { | Line 35 static void calc_mousexy(void) { |
| clock = I286_CLOCK + I286_BASECLOCK + I286_REMCLOCK; | clock = I286_CLOCK + I286_BASECLOCK + I286_REMCLOCK; |
| diff = clock - mouseif.lastc; | diff = clock - mouseif.lastc; |
| if (diff >= 2000) { | if (diff >= 2000) { |
| SINT16 dx; | SINT32 dx; |
| SINT16 dy; | SINT32 dy; |
| mouseif.rapid ^= 0xa0; | mouseif.rapid ^= 0xa0; |
| diff /= 1000; | diff /= 1000; |
| dx = (SINT16)(mouseif.sx * diff / pc.frame1000); | dx = mouseif.sx; |
| if (dx >= 0) { // ˵ | if (dx > 0) { |
| dx = dx * diff / pc.frame1000; | |
| if (dx > mouseif.rx) { | if (dx > mouseif.rx) { |
| dx = mouseif.rx; | dx = mouseif.rx; |
| } | } |
| } | } |
| else { // Éé | else if (dx < 0) { |
| dx *= -1; | |
| dx = dx * diff / pc.frame1000; | |
| dx *= -1; | |
| if (dx < mouseif.rx) { | if (dx < mouseif.rx) { |
| dx = mouseif.rx; | dx = mouseif.rx; |
| } | } |
| } | } |
| mouseif.x += dx; | mouseif.x += dx; |
| mouseif.rx -= dx; | mouseif.rx -= dx; |
| dy = (SINT16)(mouseif.sy * diff / pc.frame1000); | |
| if (dy >= 0) { // ˵ | dy = mouseif.sy; |
| if (dy > 0) { | |
| dy = dy * diff / pc.frame1000; | |
| if (dy > mouseif.ry) { | if (dy > mouseif.ry) { |
| dy = mouseif.ry; | dy = mouseif.ry; |
| } | } |
| } | } |
| else { // Éé | else if (dy < 0) { |
| dy *= -1; | |
| dy = dy * diff / pc.frame1000; | |
| dy *= -1; | |
| if (dy < mouseif.ry) { | if (dy < mouseif.ry) { |
| dy = mouseif.ry; | dy = mouseif.ry; |
| } | } |
| Line 148 static BYTE IOINPCALL mouseif_i7fd9(UINT | Line 157 static BYTE IOINPCALL mouseif_i7fd9(UINT |
| BYTE portc; | BYTE portc; |
| calc_mousexy(); | calc_mousexy(); |
| ret = mouseif.b & 0xf0; | ret = mouseif.b; |
| if (np2cfg.MOUSERAPID) { | if (np2cfg.MOUSERAPID) { |
| ret |= mouseif.rapid; | ret |= mouseif.rapid; |
| } | } |
| ret |= 0x40; | ret &= 0xf0; |
| ret |= 0x50; | |
| portc = mouseif.portc; | portc = mouseif.portc; |
| if (portc & 0x80) { | if (portc & 0x80) { |
| x = mouseif.latch_x; | x = mouseif.latch_x; |
| Line 171 static BYTE IOINPCALL mouseif_i7fd9(UINT | Line 181 static BYTE IOINPCALL mouseif_i7fd9(UINT |
| else { | else { |
| ret |= (x >> 4) & 0x0f; | ret |= (x >> 4) & 0x0f; |
| } | } |
| // TRACEOUT(("%x %x mouse [%x] %d -> %x", I286_CS, I286_IP, portc & 0x20, y, ret)); | |
| (void)port; | (void)port; |
| return(ret); | return(ret); |
| } | } |