Diff for /np2/i386c/ia32/paging.c between versions 1.5 and 1.7

version 1.5, 2004/01/23 16:17:51 version 1.7, 2004/01/27 15:56:57
Line 239  cpu_linear_memory_read(DWORD laddr, DWOR Line 239  cpu_linear_memory_read(DWORD laddr, DWOR
                         break;                          break;
                 }                  }
   
                 if (length == r)                  length -= r;
                   if (length == 0)
                         break;                          break;
   
                 laddr += r;                  laddr += r;
                 length -= r;  
                 remain -= r;                  remain -= r;
                 if (remain <= 0)                  if (remain <= 0) {
                           /* next page */
                         remain += 0x1000;                          remain += 0x1000;
                   }
         }          }
   
         return value;          return value;
Line 285  cpu_linear_memory_write(DWORD laddr, DWO Line 287  cpu_linear_memory_write(DWORD laddr, DWO
                 case 3:                  case 3:
                         cpu_memorywrite_w(paddr, value & 0xffff);                          cpu_memorywrite_w(paddr, value & 0xffff);
                         value >>= 16;                          value >>= 16;
                         cpu_memorywrite(paddr, value & 0xff);                          cpu_memorywrite(paddr + 2, value & 0xff);
                         value >>= 8;                          value >>= 8;
                         break;                          break;
   
Line 298  cpu_linear_memory_write(DWORD laddr, DWO Line 300  cpu_linear_memory_write(DWORD laddr, DWO
                         break;                          break;
                 }                  }
   
                 if (length == r)                  length -= r;
                   if (length == 0)
                         break;                          break;
   
                 laddr += r;                  laddr += r;
                 length -= r;  
                 remain -= r;                  remain -= r;
                 if (remain <= 0)                  if (remain <= 0) {
                           /* next page */
                         remain += 0x1000;                          remain += 0x1000;
                   }
         }          }
 }  }
   
Line 327  paging_check(DWORD laddr, DWORD length,  Line 331  paging_check(DWORD laddr, DWORD length, 
                 paddr = paging(laddr, crw, pl);                  paddr = paging(laddr, crw, pl);
   
                 r = (remain > length) ? length : remain;                  r = (remain > length) ? length : remain;
                 if (length == r)  
                   length -= r;
                   if (length == 0)
                         break;                          break;
   
                 laddr += r;                  laddr += r;
                 length -= r;  
                 remain -= r;                  remain -= r;
                 if (remain <= 0)                  if (remain <= 0) {
                           /* next page */
                         remain += 0x1000;                          remain += 0x1000;
                   }
         }          }
 }  }
   
Line 347  paging(DWORD laddr, int crw, int user_mo Line 354  paging(DWORD laddr, int crw, int user_mo
         DWORD pte_addr; /* page table entry address */          DWORD pte_addr; /* page table entry address */
         DWORD pte;      /* page table entry */          DWORD pte;      /* page table entry */
         DWORD bit;          DWORD bit;
         DWORD err = 0;          DWORD err;
   
 #if defined(IA32_SUPPORT_TLB)  #if defined(IA32_SUPPORT_TLB)
         if (tlb_lookup(laddr, crw, &paddr))          if (tlb_lookup(laddr, crw, &paddr))

Removed from v.1.5  
changed lines
  Added in v.1.7


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