Diff for /np2/io/mouseif.c between versions 1.6 and 1.11

version 1.6, 2003/12/08 00:55:32 version 1.11, 2004/03/14 23:45:44
Line 3 Line 3
 #include        "cpucore.h"  #include        "cpucore.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
   #include        "keystat.h"
   
   
 // マウス ver0.28  // マウス ver0.28
Line 19  void mouseif_sync(void) { Line 20  void mouseif_sync(void) {
         // 今回の移動量を取得          // 今回の移動量を取得
         mouseif.b = mousemng_getstat(&mouseif.sx, &mouseif.sy, 1);          mouseif.b = mousemng_getstat(&mouseif.sx, &mouseif.sy, 1);
         if (np2cfg.KEY_MODE == 3) {          if (np2cfg.KEY_MODE == 3) {
                 mouseif.b &= keyext_getmouse(&mouseif.sx, &mouseif.sy);                  mouseif.b &= keystat_getmouse(&mouseif.sx, &mouseif.sy);
         }          }
         mouseif.rx = mouseif.sx;          mouseif.rx = mouseif.sx;
         mouseif.ry = mouseif.sy;          mouseif.ry = mouseif.sy;
Line 41  static void calc_mousexy(void) { Line 42  static void calc_mousexy(void) {
                 diff /= 1000;                  diff /= 1000;
                 dx = mouseif.sx;                  dx = mouseif.sx;
                 if (dx > 0) {                  if (dx > 0) {
                         dx = dx * diff / pc.frame1000;                          dx = dx * diff / mouseif.moveclock;
                         if (dx > mouseif.rx) {                          if (dx > mouseif.rx) {
                                 dx = mouseif.rx;                                  dx = mouseif.rx;
                         }                          }
                 }                  }
                 else if (dx < 0) {                  else if (dx < 0) {
                         dx *= -1;                          dx *= -1;
                         dx = dx * diff / pc.frame1000;                          dx = dx * diff / mouseif.moveclock;
                         dx *= -1;                          dx *= -1;
                         if (dx < mouseif.rx) {                          if (dx < mouseif.rx) {
                                 dx = mouseif.rx;                                  dx = mouseif.rx;
Line 59  static void calc_mousexy(void) { Line 60  static void calc_mousexy(void) {
   
                 dy = mouseif.sy;                  dy = mouseif.sy;
                 if (dy > 0) {                  if (dy > 0) {
                         dy = dy * diff / pc.frame1000;                          dy = dy * diff / mouseif.moveclock;
                         if (dy > mouseif.ry) {                          if (dy > mouseif.ry) {
                                 dy = mouseif.ry;                                  dy = mouseif.ry;
                         }                          }
                 }                  }
                 else if (dy < 0) {                  else if (dy < 0) {
                         dy *= -1;                          dy *= -1;
                         dy = dy * diff / pc.frame1000;                          dy = dy * diff / mouseif.moveclock;
                         dy *= -1;                          dy *= -1;
                         if (dy < mouseif.ry) {                          if (dy < mouseif.ry) {
                                 dy = mouseif.ry;                                  dy = mouseif.ry;
Line 83  void mouseint(NEVENTITEM item) { Line 84  void mouseint(NEVENTITEM item) {
         if (item->flag & NEVENT_SETEVENT) {          if (item->flag & NEVENT_SETEVENT) {
                 if (!(mouseif.portc & 0x10)) {                  if (!(mouseif.portc & 0x10)) {
                         pic_setirq(0x0d);                          pic_setirq(0x0d);
                         nevent_set(NEVENT_MOUSE, pc.mouseclock << mouseif.timing,                          nevent_set(NEVENT_MOUSE, mouseif.intrclock << mouseif.timing,
                                                                                                 mouseint, NEVENT_RELATIVE);                                                                                                  mouseint, NEVENT_RELATIVE);
                 }                  }
         }          }
Line 113  static void setportc(REG8 value) { Line 114  static void setportc(REG8 value) {
         if ((value ^ mouseif.portc) & 0x10) {          if ((value ^ mouseif.portc) & 0x10) {
                 if (!(value & 0x10)) {                  if (!(value & 0x10)) {
                         if (!nevent_iswork(NEVENT_MOUSE)) {                          if (!nevent_iswork(NEVENT_MOUSE)) {
                                 nevent_set(NEVENT_MOUSE, pc.mouseclock << mouseif.timing,                                  nevent_set(NEVENT_MOUSE, mouseif.intrclock << mouseif.timing,
                                                                                                 mouseint, NEVENT_ABSOLUTE);                                                                                                  mouseint, NEVENT_ABSOLUTE);
                         }                          }
                 }                  }
Line 132  static void IOOUTCALL mouseif_o7fdd(UINT Line 133  static void IOOUTCALL mouseif_o7fdd(UINT
   
 static void IOOUTCALL mouseif_o7fdf(UINT port, REG8 dat) {  static void IOOUTCALL mouseif_o7fdf(UINT port, REG8 dat) {
   
         if (dat & 0xf0) {          if (!(dat & 0xf0)) {
                 mouseif.mode = (UINT8)dat;  
                 if (dat == 0x93) {  
                         setportc(0);  
                 }  
         }  
         else {  
                 if (dat & 1) {                  if (dat & 1) {
                         setportc((REG8)(mouseif.portc | (1 << (dat >> 1))));                          setportc((REG8)(mouseif.portc | (1 << (dat >> 1))));
                 }                  }
Line 146  static void IOOUTCALL mouseif_o7fdf(UINT Line 141  static void IOOUTCALL mouseif_o7fdf(UINT
                         setportc((REG8)(mouseif.portc & (~(1 << (dat >> 1)))));                          setportc((REG8)(mouseif.portc & (~(1 << (dat >> 1)))));
                 }                  }
         }          }
           else if (dat & 0x80) {
                   mouseif.mode = (UINT8)dat;
                   pic_resetirq(0x0d);
                   nevent_set(NEVENT_MOUSE, mouseif.intrclock << mouseif.timing,
                                                                                                   mouseint, NEVENT_ABSOLUTE);
                   setportc(0);
           }
         (void)port;          (void)port;
 }  }
   
Line 181  static REG8 IOINPCALL mouseif_i7fd9(UINT Line 183  static REG8 IOINPCALL mouseif_i7fd9(UINT
         else {          else {
                 ret |= (x >> 4) & 0x0f;                  ret |= (x >> 4) & 0x0f;
         }          }
 //      TRACEOUT(("%x %x mouse [%x] %d -> %x", CPU_CS, CPU_IP, portc & 0x20, y, ret));  
         (void)port;          (void)port;
         return(ret);          return(ret);
 }  }
Line 226  void mouseif_reset(void) { Line 227  void mouseif_reset(void) {
   
         ZeroMemory(&mouseif, sizeof(mouseif));          ZeroMemory(&mouseif, sizeof(mouseif));
         mouseif.mode = 0x93;          mouseif.mode = 0x93;
         mouseif.portc = 0x10;                                                                                   // ver0.28          mouseif.portc = 0x10;
           mouseif.intrclock = pccore.realclock / 120;
           mouseif.moveclock = pccore.realclock / 56400;
 }  }
   
 void mouseif_bind(void) {  void mouseif_bind(void) {

Removed from v.1.6  
changed lines
  Added in v.1.11


RetroPC.NET-CVS <cvs@retropc.net>