Diff for /np2/i386c/memory.c between versions 1.6 and 1.8

version 1.6, 2003/12/27 11:55:23 version 1.8, 2004/01/25 05:41:29
Line 14 Line 14
         BYTE    mem[0x200000];          BYTE    mem[0x200000];
   
   
 #define USE_HIMEM  // これ要る??
   #define USE_HIMEM               0x10fff0
   
 // ---- write byte  // ---- write byte
   
Line 183  static void MEMCALL egc_wt(UINT32 addres Line 184  static void MEMCALL egc_wt(UINT32 addres
         egc_write(address, value);          egc_write(address, value);
 }  }
   
 static void MEMCALL emmc_wt(UINT32 address, REG8 value) {  
   
         extmem.pageptr[(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) {
   
         mem[address + 0x1c8000 - 0xe8000] = (BYTE)value;          mem[address + 0x1c8000 - 0xe8000] = (BYTE)value;
Line 288  static REG8 MEMCALL egc_rd(UINT32 addres Line 284  static REG8 MEMCALL egc_rd(UINT32 addres
         return(egc_read(address));          return(egc_read(address));
 }  }
   
 static REG8 MEMCALL emmc_rd(UINT32 address) {  
   
         return(extmem.pageptr[(address >> 14) & 3][LOW14(address)]);  
 }  
   
 static REG8 MEMCALL i286_rb(UINT32 address) {  static REG8 MEMCALL i286_rb(UINT32 address) {
   
         if (CPU_ITFBANK) {          if (CPU_ITFBANK) {
Line 465  static void MEMCALL egcw_wt(UINT32 addre Line 456  static void MEMCALL egcw_wt(UINT32 addre
         }          }
 }  }
   
 static void MEMCALL emmcw_wt(UINT32 address, REG16 value) {  
   
         BYTE    *ptr;  
   
         if ((address & 0x3fff) != 0x3fff) {  
                 ptr = extmem.pageptr[(address >> 14) & 3] + LOW14(address);  
                 STOREINTELWORD(ptr, value);  
         }  
         else {  
                 extmem.pageptr[(address >> 14) & 3][0x3fff] = (BYTE)value;  
                 extmem.pageptr[((address + 1) >> 14) & 3][0] = (BYTE)(value >> 8);  
         }  
 }  
   
 static void MEMCALL i286w_wb(UINT32 address, REG16 value) {  static void MEMCALL i286w_wb(UINT32 address, REG16 value) {
   
         mem[address + 0x1c8000 - 0xe8000] = (BYTE)value;          mem[address + 0x1c8000 - 0xe8000] = (BYTE)value;
Line 611  static REG16 MEMCALL egcw_rd(UINT32 addr Line 588  static REG16 MEMCALL egcw_rd(UINT32 addr
         }          }
 }  }
   
 static REG16 MEMCALL emmcw_rd(UINT32 address) {  
   
 const BYTE      *ptr;  
         REG16   ret;  
   
         if ((address & 0x3fff) != 0x3fff) {  
                 ptr = extmem.pageptr[(address >> 14) & 3] + LOW14(address);  
                 return(LOADINTELWORD(ptr));  
         }  
         else {  
                 ret = extmem.pageptr[(address >> 14) & 3][0x3fff];  
                 ret += extmem.pageptr[((address + 1) >> 14) & 3][0] << 8;  
                 return(ret);  
         }  
 }  
   
 static REG16 MEMCALL i286w_rb(UINT32 address) {  static REG16 MEMCALL i286w_rb(UINT32 address) {
   
         if (CPU_ITFBANK) {          if (CPU_ITFBANK) {
Line 675  static MEMFN memfn = { Line 636  static MEMFN memfn = {
                         i286_rd,        i286_rd,        i286_rd,        i286_rd,                // 60                          i286_rd,        i286_rd,        i286_rd,        i286_rd,                // 60
                         i286_rd,        i286_rd,        i286_rd,        i286_rd,                // 80                          i286_rd,        i286_rd,        i286_rd,        i286_rd,                // 80
                         tram_rd,        vram_r0,        vram_r0,        vram_r0,                // a0                          tram_rd,        vram_r0,        vram_r0,        vram_r0,                // a0
                         emmc_rd,        emmc_rd,        i286_rd,        i286_rd,                // c0                          i286_rd,        i286_rd,        i286_rd,        i286_rd,                // c0
                         vram_r0,        i286_rd,        i286_rd,        i286_rb},               // f0                          vram_r0,        i286_rd,        i286_rd,        i286_rb},               // f0
   
                    {i286_wt,    i286_wt,        i286_wt,        i286_wt,                // 00                     {i286_wt,    i286_wt,        i286_wt,        i286_wt,                // 00
Line 684  static MEMFN memfn = { Line 645  static MEMFN memfn = {
                         i286_wt,        i286_wt,        i286_wt,        i286_wt,                // 60                          i286_wt,        i286_wt,        i286_wt,        i286_wt,                // 60
                         i286_wt,        i286_wt,        i286_wt,        i286_wt,                // 80                          i286_wt,        i286_wt,        i286_wt,        i286_wt,                // 80
                         tram_wt,        vram_w0,        vram_w0,        vram_w0,                // a0                          tram_wt,        vram_w0,        vram_w0,        vram_w0,                // a0
                         emmc_wt,        emmc_wt,        i286_wn,        i286_wn,                // c0                          i286_wn,        i286_wn,        i286_wn,        i286_wn,                // c0
                         vram_w0,        i286_wn,        i286_wn,        i286_wn},               // e0                          vram_w0,        i286_wn,        i286_wn,        i286_wn},               // e0
   
                    {i286w_rd,   i286w_rd,       i286w_rd,       i286w_rd,               // 00                     {i286w_rd,   i286w_rd,       i286w_rd,       i286w_rd,               // 00
Line 693  static MEMFN memfn = { Line 654  static MEMFN memfn = {
                         i286w_rd,       i286w_rd,       i286w_rd,       i286w_rd,               // 60                          i286w_rd,       i286w_rd,       i286w_rd,       i286w_rd,               // 60
                         i286w_rd,       i286w_rd,       i286w_rd,       i286w_rd,               // 80                          i286w_rd,       i286w_rd,       i286w_rd,       i286w_rd,               // 80
                         tramw_rd,       vramw_r0,       vramw_r0,       vramw_r0,               // a0                          tramw_rd,       vramw_r0,       vramw_r0,       vramw_r0,               // a0
                         emmcw_rd,       emmcw_rd,       i286w_rd,       i286w_rd,               // c0                          i286w_rd,       i286w_rd,       i286w_rd,       i286w_rd,               // c0
                         vramw_r0,       i286w_rd,       i286w_rd,       i286w_rb},              // e0                          vramw_r0,       i286w_rd,       i286w_rd,       i286w_rb},              // e0
   
                    {i286w_wt,   i286w_wt,       i286w_wt,       i286w_wt,               // 00                     {i286w_wt,   i286w_wt,       i286w_wt,       i286w_wt,               // 00
Line 702  static MEMFN memfn = { Line 663  static MEMFN memfn = {
                         i286w_wt,       i286w_wt,       i286w_wt,       i286w_wt,               // 60                          i286w_wt,       i286w_wt,       i286w_wt,       i286w_wt,               // 60
                         i286w_wt,       i286w_wt,       i286w_wt,       i286w_wt,               // 80                          i286w_wt,       i286w_wt,       i286w_wt,       i286w_wt,               // 80
                         tramw_wt,       vramw_w0,       vramw_w0,       vramw_w0,               // a0                          tramw_wt,       vramw_w0,       vramw_w0,       vramw_w0,               // a0
                         emmcw_wt,       emmcw_wt,       i286w_wn,       i286w_wn,               // c0                          i286w_wn,       i286w_wn,       i286w_wn,       i286w_wn,               // c0
                         vramw_w0,       i286w_wn,       i286w_wn,       i286w_wn}};             // e0                          vramw_w0,       i286w_wn,       i286w_wn,       i286w_wn}};             // e0
   
 static const MMAPTBL mmaptbl[2] = {  static const MMAPTBL mmaptbl[2] = {
Line 811  REG8 MEMCALL __i286_memoryread(UINT32 ad Line 772  REG8 MEMCALL __i286_memoryread(UINT32 ad
                 return(mem[address]);                  return(mem[address]);
         }          }
 #if defined(USE_HIMEM)  #if defined(USE_HIMEM)
         else if (address >= 0x10fff0) {          else if (address >= USE_HIMEM) {
                 address -= 0x100000;                  address -= 0x100000;
                 if (address < CPU_EXTMEMSIZE) {                  if (address < CPU_EXTMEMSIZE) {
                         return(CPU_EXTMEM[address]);                          return(CPU_EXTMEM[address]);
Line 834  REG16 MEMCALL __i286_memoryread_w(UINT32 Line 795  REG16 MEMCALL __i286_memoryread_w(UINT32
                 return(LOADINTELWORD(mem + address));                  return(LOADINTELWORD(mem + address));
         }          }
 #if defined(USE_HIMEM)  #if defined(USE_HIMEM)
         else if (address >= (0x10fff0 - 1)) {          else if (address >= (USE_HIMEM - 1)) {
                 address -= 0x100000;                  address -= 0x100000;
                 if (address == (0x00fff0 - 1)) {                  if (address == (USE_HIMEM - 0x100000 - 1)) {
                         ret = mem[0x100000 + address];                          ret = mem[0x100000 + address];
                 }                  }
                 else if (address < CPU_EXTMEMSIZE) {                  else if (address < CPU_EXTMEMSIZE) {
Line 882  void MEMCALL __i286_memorywrite(UINT32 a Line 843  void MEMCALL __i286_memorywrite(UINT32 a
                 mem[address] = (BYTE)value;                  mem[address] = (BYTE)value;
         }          }
 #if defined(USE_HIMEM)  #if defined(USE_HIMEM)
         else if (address >= 0x10fff0) {          else if (address >= USE_HIMEM) {
                 address -= 0x100000;                  address -= 0x100000;
                 if (address < CPU_EXTMEMSIZE) {                  if (address < CPU_EXTMEMSIZE) {
                         CPU_EXTMEM[address] = (BYTE)value;                          CPU_EXTMEM[address] = (BYTE)value;
Line 900  void MEMCALL __i286_memorywrite_w(UINT32 Line 861  void MEMCALL __i286_memorywrite_w(UINT32
                 STOREINTELWORD(mem + address, value);                  STOREINTELWORD(mem + address, value);
         }          }
 #if defined(USE_HIMEM)  #if defined(USE_HIMEM)
         else if (address >= (0x10fff0 - 1)) {          else if (address >= (USE_HIMEM - 1)) {
                 address -= 0x100000;                  address -= 0x100000;
                 if (address == (0x00fff0 - 1)) {                  if (address == (USE_HIMEM - 0x100000 - 1)) {
                         mem[address] = (BYTE)value;                          mem[address] = (BYTE)value;
                 }                  }
                 else if (address < CPU_EXTMEMSIZE) {                  else if (address < CPU_EXTMEMSIZE) {
Line 1100  const BYTE *out; Line 1061  const BYTE *out;
                 }                  }
         }          }
 }  }
   
 #endif  #endif
   

Removed from v.1.6  
changed lines
  Added in v.1.8


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