Diff for /np2/i386c/ia32/cpu_io.c between versions 1.1 and 1.3

version 1.1, 2003/12/08 00:55:31 version 1.3, 2004/02/05 16:43:44
Line 34 Line 34
   
   
 static void  static void
 check_io(WORD port, int len)  check_io(WORD port, DWORD len)
 {  {
         WORD off;          WORD off;
         BYTE bit;          BYTE bit;
         BYTE map;          BYTE map;
   
         /* そもそも I/O 許可マップが無い場合 */  
         if (CPU_STAT_IOLIMIT == 0) {          if (CPU_STAT_IOLIMIT == 0) {
                   VERBOSE(("check_io: CPU_STAT_IOLIMIT == 0 (port = %04x, len = %d)", port, len));
                 EXCEPTION(GP_EXCEPTION, 0);                  EXCEPTION(GP_EXCEPTION, 0);
         }          }
   
         off = port / 8;          off = port / 8;
         bit = 1 << (port % 8);          bit = 1 << (port % 8);
         for (; len > 0; ++off, bit = 0x01) {          for (; len > 0; ++off, bit = 0x01) {
                 /* I/O 許可マップはビット単位なので */                  if (off >= CPU_STAT_IOLIMIT) {
                 if (off * 8 >= CPU_STAT_IOLIMIT) {                          VERBOSE(("check_io: off(%08x) >= CPU_STAT_IOLIMIT(%08x) (port = %04x, len = %d)", off, CPU_STAT_IOLIMIT, port, len));
                         EXCEPTION(GP_EXCEPTION, 0);                          EXCEPTION(GP_EXCEPTION, 0);
                 }                  }
   
                 map = cpu_lmemoryread(CPU_STAT_IOADDR + off);                  map = cpu_kmemoryread(CPU_STAT_IOADDR + off);
                 for (; (len > 0) && (bit != 0x00); bit <<= 1, --len) {                  for (; (len > 0) && (bit != 0x00); bit <<= 1, --len) {
                         if (map & bit) {                          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);                                  EXCEPTION(GP_EXCEPTION, 0);
                         }                          }
                 }                  }

Removed from v.1.1  
changed lines
  Added in v.1.3


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