Diff for /np2/io/pic.c between versions 1.12 and 1.15

version 1.12, 2004/01/29 00:27:29 version 1.15, 2004/03/05 04:39:59
Line 15  static const _PICITEM def_slave = { Line 15  static const _PICITEM def_slave = {
                                                         0, {0, 0, 0, 0, 0, 0, 0, 0},                                                          0, {0, 0, 0, 0, 0, 0, 0, 0},
                                                                 {7, 6, 5, 4, 3, 2, 1, 0},                                                                  {7, 6, 5, 4, 3, 2, 1, 0},
                                                                 {0, 0x10, 0x07, 0},                                                                  {0, 0x10, 0x07, 0},
                                                                 0x70, 0, 0, 0,                                                                  0x71, 0, 0, 0,
                                                                 0, 0, 0, 0};                                                                  0, 0, 0, 0};
   
   
Line 275  static void IOOUTCALL pic_o00(UINT port, Line 275  static void IOOUTCALL pic_o00(UINT port,
         }          }
 }  }
   
 #if defined(TRACE)  
 extern int piccnt;  
 #endif  
   
 static void IOOUTCALL pic_o02(UINT port, REG8 dat) {  static void IOOUTCALL pic_o02(UINT port, REG8 dat) {
   
         PICITEM         picp;          PICITEM         picp;
Line 286  static void IOOUTCALL pic_o02(UINT port, Line 282  static void IOOUTCALL pic_o02(UINT port,
 //      TRACEOUT(("pic %x %x", port, dat));  //      TRACEOUT(("pic %x %x", port, dat));
         picp = &pic.pi[(port >> 3) & 1];          picp = &pic.pi[(port >> 3) & 1];
         if (!picp->writeicw) {          if (!picp->writeicw) {
 #if 1   // マスクのセットだけなら nevent_forceexit()をコールしない  #if 1
                 if ((CPU_isDI) || ((picp->imr & dat) == picp->imr)) {                  UINT8   set;
                         picp->imr = dat;                  set = picp->imr & (~dat);
                         return;  
                 }  
                 // リセットされたビットは割り込みある?                  // リセットされたビットは割り込みある?
                 if (!(picp->irr & (picp->imr & (~dat)))) {                  if ((CPU_isDI) || (!(picp->irr & set))) {
                         picp->imr = dat;                          picp->imr = dat;
                         return;                          return;
                 }                  }
 #endif  #endif
                 picp->imr = dat;                  picp->imr = dat;
 #if defined(TRACE)  
                 piccnt++;  
 #endif  
         }          }
         else {          else {
                 picp->icw[picp->writeicw] = dat;                  picp->icw[picp->writeicw] = dat;

Removed from v.1.12  
changed lines
  Added in v.1.15


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