Diff for /np2/i286a/memory.c between versions 1.9 and 1.10

version 1.9, 2005/03/18 09:23:10 version 1.10, 2005/05/20 13:59:46
Line 3 Line 3
   
 #define USE_HIMEM               0x110000  #define USE_HIMEM               0x110000
   
 void MEMCALL i286_memstr_read(UINT seg, UINT off, void *dat, UINT leng) {  
   void MEMCALL memp_reads(UINT32 address, void *dat, UINT leng) {
   
           if ((address + leng) < I286_MEMREADMAX) {
                   CopyMemory(dat, mem + address, leng);
           }
           else {
                   UINT8 *out = (UINT8 *)dat;
                   if (address < I286_MEMREADMAX) {
                           CopyMemory(out, mem + address, I286_MEMREADMAX - address);
                           out += I286_MEMREADMAX - address;
                           leng -= I286_MEMREADMAX - address;
                           address = I286_MEMREADMAX;
                   }
                   while(leng--) {
                           *out++ = memp_read8(address++);
                   }
           }
   }
   
   void MEMCALL memp_writes(UINT32 address, const void *dat, UINT leng) {
   
   const UINT8     *out;
   
           if ((address + leng) < I286_MEMWRITEMAX) {
                   CopyMemory(mem + address, dat, leng);
           }
           else {
                   out = (UINT8 *)dat;
                   if (address < I286_MEMWRITEMAX) {
                           CopyMemory(mem + address, out, I286_MEMWRITEMAX - address);
                           out += I286_MEMWRITEMAX - address;
                           leng -= I286_MEMWRITEMAX - address;
                           address = I286_MEMWRITEMAX;
                   }
                   while(leng--) {
                           memp_write8(address++, *out++);
                   }
           }
   }
   
   
   void MEMCALL memr_reads(UINT seg, UINT off, void *dat, UINT leng) {
   
         UINT8   *out;          UINT8   *out;
         UINT32  adrs;          UINT32  adrs;
Line 35  void MEMCALL i286_memstr_read(UINT seg,  Line 77  void MEMCALL i286_memstr_read(UINT seg, 
         }          }
         else {          else {
                 while(leng--) {                  while(leng--) {
                         *out++ = i286_memoryread(adrs + off);                          *out++ = memp_read8(adrs + off);
                         off = LOW16(off + 1);                          off = LOW16(off + 1);
                 }                  }
         }          }
 }  }
   
 void MEMCALL i286_memstr_write(UINT seg, UINT off,  void MEMCALL memr_writes(UINT seg, UINT off, const void *dat, UINT leng) {
                                                                                                 const void *dat, UINT leng) {  
   
         UINT8   *out;          UINT8   *out;
         UINT32  adrs;          UINT32  adrs;
Line 74  void MEMCALL i286_memstr_write(UINT seg, Line 115  void MEMCALL i286_memstr_write(UINT seg,
         }          }
         else {          else {
                 while(leng--) {                  while(leng--) {
                         i286_memorywrite(adrs + off, *out++);                          memp_write8(adrs + off, *out++);
                         off = LOW16(off + 1);                          off = LOW16(off + 1);
                 }                  }
         }          }
 }  }
   
 void MEMCALL i286_memx_read(UINT32 address, void *dat, UINT leng) {  
   
         if ((address + leng) < I286_MEMREADMAX) {  
                 CopyMemory(dat, mem + address, leng);  
         }  
         else {  
                 UINT8 *out = (UINT8 *)dat;  
                 if (address < I286_MEMREADMAX) {  
                         CopyMemory(out, mem + address, I286_MEMREADMAX - address);  
                         out += I286_MEMREADMAX - address;  
                         leng -= I286_MEMREADMAX - address;  
                         address = I286_MEMREADMAX;  
                 }  
                 while(leng--) {  
                         *out++ = i286_memoryread(address++);  
                 }  
         }  
 }  
   
 void MEMCALL i286_memx_write(UINT32 address, const void *dat, UINT leng) {  
   
 const UINT8     *out;  
   
         if ((address + leng) < I286_MEMWRITEMAX) {  
                 CopyMemory(mem + address, dat, leng);  
         }  
         else {  
                 out = (UINT8 *)dat;  
                 if (address < I286_MEMWRITEMAX) {  
                         CopyMemory(mem + address, out, I286_MEMWRITEMAX - address);  
                         out += I286_MEMWRITEMAX - address;  
                         leng -= I286_MEMWRITEMAX - address;  
                         address = I286_MEMWRITEMAX;  
                 }  
                 while(leng--) {  
                         i286_memorywrite(address++, *out++);  
                 }  
         }  
 }  
   

Removed from v.1.9  
changed lines
  Added in v.1.10


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