Diff for /np2/i386c/ia32/cpu_mem.c between versions 1.3 and 1.5

version 1.3, 2004/01/05 06:50:15 version 1.5, 2004/01/13 16:32:16
Line 31 Line 31
 #include "cpu.h"  #include "cpu.h"
 #include "memory.h"  #include "memory.h"
   
 // ¤¢¤È¤Ç¡Ä  
 // extern DWORD cpumem_addrmask;                // -> CPU_STAT_ADRSMASK  
   
 BYTE *cpumem = 0;  BYTE *cpumem = 0;
 DWORD extmem_size = 0;  DWORD extmem_size = 0;
 BYTE protectmem_size = 0;  BYTE protectmem_size = 0;
   
   
 /*  /*
  * initialize 1MB-16MB memory   * initialize 1MB-16MB memory
  */   */
Line 511  cpu_memorywrite_d(DWORD address, DWORD v Line 509  cpu_memorywrite_d(DWORD address, DWORD v
                 adr -= LOWMEM;                  adr -= LOWMEM;
                 if (adr < extmem_size - 3) {                  if (adr < extmem_size - 3) {
                         STOREINTELDWORD(cpumem + adr, value);                          STOREINTELDWORD(cpumem + adr, value);
                 } else {                  } else if (adr < extmem_size) {
                         ia32_panic("cpu_memorywrite_d: out of universe.");                          cpu_memorywrite_w(adr, value & 0xffff);
                           cpu_memorywrite_w(adr + 2, (value >> 16) & 0xffff);
                 }                  }
         }          }
 }  }
Line 531  cpu_memorywrite_w(DWORD address, WORD va Line 530  cpu_memorywrite_w(DWORD address, WORD va
                 adr -= LOWMEM;                  adr -= LOWMEM;
                 if (adr < extmem_size - 1) {                  if (adr < extmem_size - 1) {
                         STOREINTELWORD(cpumem + adr, value);                          STOREINTELWORD(cpumem + adr, value);
                 } else {                  } else if (adr == extmem_size - 1) {
                         ia32_panic("cpu_memorywrite_w: out of universe.");                          cpumem[adr] = value & 0xff;
                 }                  }
         }          }
 }  }
Line 548  cpu_memorywrite(DWORD address, BYTE valu Line 547  cpu_memorywrite(DWORD address, BYTE valu
                 adr -= LOWMEM;                  adr -= LOWMEM;
                 if (adr < extmem_size) {                  if (adr < extmem_size) {
                         cpumem[adr] = value;                          cpumem[adr] = value;
                 } else {  
                         ia32_panic("cpu_memorywrite: out of universe.");  
                 }                  }
         }          }
 }  }
Line 570  cpu_memoryread_d(DWORD address) Line 567  cpu_memoryread_d(DWORD address)
                 if (adr < extmem_size - 3) {                  if (adr < extmem_size - 3) {
                         val = LOADINTELDWORD(cpumem + adr);                          val = LOADINTELDWORD(cpumem + adr);
                 } else {                  } else {
                         ia32_panic("cpu_memoryread_d: out of universe.");                          val = cpu_memoryread_w(adr);
                         val = (DWORD)-1;                          val |= (DWORD)cpu_memoryread_w(adr + 2) << 16;
                 }                  }
         }          }
         return val;          return val;
Line 592  cpu_memoryread_w(DWORD address) Line 589  cpu_memoryread_w(DWORD address)
                 adr -= LOWMEM;                  adr -= LOWMEM;
                 if (adr < extmem_size - 1) {                  if (adr < extmem_size - 1) {
                         val = LOADINTELWORD(cpumem + adr);                          val = LOADINTELWORD(cpumem + adr);
                   } else if (adr == extmem_size - 1) {
                           val = 0xff00 | cpumem[adr];
                 } else {                  } else {
                         ia32_panic("cpu_memoryread_w: out of universe.");  
                         val = (WORD)-1;                          val = (WORD)-1;
                 }                  }
         }          }
Line 613  cpu_memoryread(DWORD address) Line 611  cpu_memoryread(DWORD address)
                 if (adr < extmem_size) {                  if (adr < extmem_size) {
                         val = cpumem[adr];                          val = cpumem[adr];
                 } else {                  } else {
                         ia32_panic("cpu_memoryread: out of universe.");  
                         val = (BYTE)-1;                          val = (BYTE)-1;
                 }                  }
         }          }

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


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