| 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); | 
 | } | } |