Diff for /np2/i386c/ia32/cpu_io.c between versions 1.11 and 1.12

version 1.11, 2011/12/21 18:02:47 version 1.12, 2012/01/08 18:25:34
Line 36  static void CPUCALL Line 36  static void CPUCALL
 check_io(UINT port, UINT len)   check_io(UINT port, UINT len) 
 {  {
         UINT off;          UINT off;
         UINT8 bit;          UINT16 map;
         UINT8 map;          UINT16 mask;
   
         if (CPU_STAT_IOLIMIT == 0) {          if (CPU_STAT_IOLIMIT == 0) {
                 VERBOSE(("check_io: CPU_STAT_IOLIMIT == 0 (port = %04x, len = %d)", port, len));                  VERBOSE(("check_io: CPU_STAT_IOLIMIT == 0 (port = %04x, len = %d)", port, len));
                 EXCEPTION(GP_EXCEPTION, 0);                  EXCEPTION(GP_EXCEPTION, 0);
         }          }
   
           if ((port + len) / 8 >= CPU_STAT_IOLIMIT) {
                   VERBOSE(("check_io: out of range: CPU_STAT_IOLIMIT(%08x) (port = %04x, len = %d)", CPU_STAT_IOLIMIT, port, len));
                   EXCEPTION(GP_EXCEPTION, 0);
           }
   
         off = port / 8;          off = port / 8;
         bit = 1 << (port % 8);          mask = ((1 << len) - 1) << (port % 8);
         for (; len > 0; ++off, bit = 0x01) {          map = cpu_kmemoryread_w(CPU_STAT_IOADDR + off);
                 if (off >= CPU_STAT_IOLIMIT) {          if (map & mask) {
                         VERBOSE(("check_io: off(%08x) >= CPU_STAT_IOLIMIT(%08x) (port = %04x, len = %d)", off, CPU_STAT_IOLIMIT, port, len));                  VERBOSE(("check_io: (bitmap(0x%04x) & bit(0x%04x)) != 0 (CPU_STAT_IOADDR=0x%08x, offset=0x%04x, port = 0x%04x, len = %d)", map, mask, CPU_STAT_IOADDR, off, port, len));
                         EXCEPTION(GP_EXCEPTION, 0);                  EXCEPTION(GP_EXCEPTION, 0);
                 }  
   
                 map = cpu_kmemoryread(CPU_STAT_IOADDR + off);  
                 for (; (len > 0) && (bit != 0x00); bit <<= 1, --len) {  
                         if (map & bit) {  
                                 VERBOSE(("check_io: (bitmap(0x%02x) & bit(0x%02x)) != 0 (port = %04x, len = %d)", map, bit, port, len));  
                                 EXCEPTION(GP_EXCEPTION, 0);  
                         }  
                 }  
         }          }
 }  }
   

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


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