Diff for /np2/i286c/memory.c between versions 1.16 and 1.18

version 1.16, 2003/12/27 11:55:23 version 1.18, 2004/02/18 02:03:36
Line 10 Line 10
         BYTE    mem[0x200000];          BYTE    mem[0x200000];
   
   
 #define USE_HIMEM               0x10fff0  
   
 #if defined(TRACE)  #if defined(TRACE)
 #define MEMORY_DEBUG  #define MEMORY_DEBUG
 #endif  #endif
Line 185  static void MEMCALL egc_wt(UINT32 addres Line 183  static void MEMCALL egc_wt(UINT32 addres
   
 static void MEMCALL emmc_wt(UINT32 address, REG8 value) {  static void MEMCALL emmc_wt(UINT32 address, REG8 value) {
   
         extmem.pageptr[(address >> 14) & 3][LOW14(address)] = (BYTE)value;          i286core.e.ems[(address >> 14) & 3][LOW14(address)] = (BYTE)value;
 }  }
   
 static void MEMCALL i286_wb(UINT32 address, REG8 value) {  static void MEMCALL i286_wb(UINT32 address, REG8 value) {
Line 290  static REG8 MEMCALL egc_rd(UINT32 addres Line 288  static REG8 MEMCALL egc_rd(UINT32 addres
   
 static REG8 MEMCALL emmc_rd(UINT32 address) {  static REG8 MEMCALL emmc_rd(UINT32 address) {
   
         return(extmem.pageptr[(address >> 14) & 3][LOW14(address)]);          return(i286core.e.ems[(address >> 14) & 3][LOW14(address)]);
 }  }
   
 static REG8 MEMCALL i286_rb(UINT32 address) {  static REG8 MEMCALL i286_rb(UINT32 address) {
Line 450  static void MEMCALL grcgw_tdw1(UINT32 ad Line 448  static void MEMCALL grcgw_tdw1(UINT32 ad
 static void MEMCALL egcw_wt(UINT32 address, REG16 value) {  static void MEMCALL egcw_wt(UINT32 address, REG16 value) {
   
         CPU_REMCLOCK -= MEMWAIT_GRCG;          CPU_REMCLOCK -= MEMWAIT_GRCG;
         if (!(address & 1)) {          egc_write_w(address, value);
                 egc_write_w(address, value);  
         }  
         else {  
                 if (!(egc.sft & 0x1000)) {  
                         egc_write(address, (REG8)value);  
                         egc_write(address + 1, (REG8)(value >> 8));  
                 }  
                 else {  
                         egc_write(address + 1, (REG8)(value >> 8));  
                         egc_write(address, (REG8)value);  
                 }  
         }  
 }  }
   
 static void MEMCALL emmcw_wt(UINT32 address, REG16 value) {  static void MEMCALL emmcw_wt(UINT32 address, REG16 value) {
Line 470  static void MEMCALL emmcw_wt(UINT32 addr Line 456  static void MEMCALL emmcw_wt(UINT32 addr
         BYTE    *ptr;          BYTE    *ptr;
   
         if ((address & 0x3fff) != 0x3fff) {          if ((address & 0x3fff) != 0x3fff) {
                 ptr = extmem.pageptr[(address >> 14) & 3] + LOW14(address);                  ptr = i286core.e.ems[(address >> 14) & 3] + LOW14(address);
                 STOREINTELWORD(ptr, value);                  STOREINTELWORD(ptr, value);
         }          }
         else {          else {
                 extmem.pageptr[(address >> 14) & 3][0x3fff] = (BYTE)value;                  i286core.e.ems[(address >> 14) & 3][0x3fff] = (BYTE)value;
                 extmem.pageptr[((address + 1) >> 14) & 3][0] = (BYTE)(value >> 8);                  i286core.e.ems[((address + 1) >> 14) & 3][0] = (BYTE)(value >> 8);
         }          }
 }  }
   
Line 591  static REG16 MEMCALL grcgw_tcr1(UINT32 a Line 577  static REG16 MEMCALL grcgw_tcr1(UINT32 a
   
 static REG16 MEMCALL egcw_rd(UINT32 address) {  static REG16 MEMCALL egcw_rd(UINT32 address) {
   
         REG16   ret;  
   
         CPU_REMCLOCK -= MEMWAIT_GRCG;          CPU_REMCLOCK -= MEMWAIT_GRCG;
         if (!(address & 1)) {          return(egc_read_w(address));
                 return(egc_read_w(address));  
         }  
         else {  
                 if (!(egc.sft & 0x1000)) {  
                         ret = egc_read(address);  
                         ret += egc_read(address + 1) << 8;  
                         return(ret);  
                 }  
                 else {  
                         ret = egc_read(address + 1) << 8;  
                         ret += egc_read(address);  
                         return(ret);  
                 }  
         }  
 }  }
   
 static REG16 MEMCALL emmcw_rd(UINT32 address) {  static REG16 MEMCALL emmcw_rd(UINT32 address) {
Line 617  const BYTE *ptr; Line 587  const BYTE *ptr;
         REG16   ret;          REG16   ret;
   
         if ((address & 0x3fff) != 0x3fff) {          if ((address & 0x3fff) != 0x3fff) {
                 ptr = extmem.pageptr[(address >> 14) & 3] + LOW14(address);                  ptr = i286core.e.ems[(address >> 14) & 3] + LOW14(address);
                 return(LOADINTELWORD(ptr));                  return(LOADINTELWORD(ptr));
         }          }
         else {          else {
                 ret = extmem.pageptr[(address >> 14) & 3][0x3fff];                  ret = i286core.e.ems[(address >> 14) & 3][0x3fff];
                 ret += extmem.pageptr[((address + 1) >> 14) & 3][0] << 8;                  ret += i286core.e.ems[((address + 1) >> 14) & 3][0] << 8;
                 return(ret);                  return(ret);
         }          }
 }  }

Removed from v.1.16  
changed lines
  Added in v.1.18


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