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

version 1.7, 2003/12/22 01:44:59 version 1.9, 2005/03/18 09:23:10
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "cpucore.h"  #include        "cpucore.h"
 #include        "egcmem.h"  
 #include        "pccore.h"  
 #include        "iocore.h"  
 #include        "vram.h"  
 #include        "font.h"  
   
 #define USE_HIMEM               0x110000  #define USE_HIMEM               0x110000
   
   
 REG8 MEMCALL i286_membyte_read(UINT seg, UINT off) {  
   
         UINT32  address;  
   
         address = (seg << 4) + LOW16(off);  
         if (address < I286_MEMREADMAX) {  
                 return(mem[address]);  
         }  
         else {  
                 return(i286_memoryread(address));  
         }  
 }  
   
 REG16 MEMCALL i286_memword_read(UINT seg, UINT off) {  
   
         UINT32  address;  
   
         address = (seg << 4) + LOW16(off);  
         if (address < (I286_MEMREADMAX - 1)) {  
                 return(LOADINTELWORD(mem + address));  
         }  
         else {  
                 return(i286_memoryread_w(address));  
         }  
 }  
   
 void MEMCALL i286_membyte_write(UINT seg, UINT off, REG8 value) {  
   
         UINT32  address;  
   
         address = (seg << 4) + LOW16(off);  
         if (address < I286_MEMWRITEMAX) {  
                 mem[address] = (BYTE)value;  
         }  
         else {  
                 i286_memorywrite(address, value);  
         }  
 }  
   
 void MEMCALL i286_memword_write(UINT seg, UINT off, REG16 value) {  
   
         UINT32  address;  
   
         address = (seg << 4) + LOW16(off);  
         if (address < (I286_MEMWRITEMAX - 1)) {  
                 STOREINTELWORD(mem + address, value);  
         }  
         else {  
                 i286_memorywrite_w(address, value);  
         }  
 }  
   
 void MEMCALL i286_memstr_read(UINT seg, UINT off, void *dat, UINT leng) {  void MEMCALL i286_memstr_read(UINT seg, UINT off, void *dat, UINT leng) {
   
         BYTE    *out;          UINT8   *out;
         UINT32  adrs;          UINT32  adrs;
         UINT    size;          UINT    size;
   
         out = (BYTE *)dat;          out = (UINT8 *)dat;
         adrs = seg << 4;          adrs = seg << 4;
         off = LOW16(off);          off = LOW16(off);
         if ((I286_MEMREADMAX >= 0x10000) &&          if ((I286_MEMREADMAX >= 0x10000) &&
Line 102  void MEMCALL i286_memstr_read(UINT seg,  Line 44  void MEMCALL i286_memstr_read(UINT seg, 
 void MEMCALL i286_memstr_write(UINT seg, UINT off,  void MEMCALL i286_memstr_write(UINT seg, UINT off,
                                                                                                 const void *dat, UINT leng) {                                                                                                  const void *dat, UINT leng) {
   
         BYTE    *out;          UINT8   *out;
         UINT32  adrs;          UINT32  adrs;
         UINT    size;          UINT    size;
   
         out = (BYTE *)dat;          out = (UINT8 *)dat;
         adrs = seg << 4;          adrs = seg << 4;
         off = LOW16(off);          off = LOW16(off);
         if ((I286_MEMWRITEMAX >= 0x10000) &&          if ((I286_MEMWRITEMAX >= 0x10000) &&
Line 144  void MEMCALL i286_memx_read(UINT32 addre Line 86  void MEMCALL i286_memx_read(UINT32 addre
                 CopyMemory(dat, mem + address, leng);                  CopyMemory(dat, mem + address, leng);
         }          }
         else {          else {
                 BYTE *out = (BYTE *)dat;                  UINT8 *out = (UINT8 *)dat;
                 if (address < I286_MEMREADMAX) {                  if (address < I286_MEMREADMAX) {
                         CopyMemory(out, mem + address, I286_MEMREADMAX - address);                          CopyMemory(out, mem + address, I286_MEMREADMAX - address);
                         out += I286_MEMREADMAX - address;                          out += I286_MEMREADMAX - address;
Line 159  void MEMCALL i286_memx_read(UINT32 addre Line 101  void MEMCALL i286_memx_read(UINT32 addre
   
 void MEMCALL i286_memx_write(UINT32 address, const void *dat, UINT leng) {  void MEMCALL i286_memx_write(UINT32 address, const void *dat, UINT leng) {
   
 const BYTE      *out;  const UINT8     *out;
   
         if ((address + leng) < I286_MEMWRITEMAX) {          if ((address + leng) < I286_MEMWRITEMAX) {
                 CopyMemory(mem + address, dat, leng);                  CopyMemory(mem + address, dat, leng);
         }          }
         else {          else {
                 out = (BYTE *)dat;                  out = (UINT8 *)dat;
                 if (address < I286_MEMWRITEMAX) {                  if (address < I286_MEMWRITEMAX) {
                         CopyMemory(mem + address, out, I286_MEMWRITEMAX - address);                          CopyMemory(mem + address, out, I286_MEMWRITEMAX - address);
                         out += I286_MEMWRITEMAX - address;                          out += I286_MEMWRITEMAX - address;

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


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