--- np2/i386c/memory.c 2012/01/23 05:18:09 1.36 +++ np2/i386c/memory.c 2012/01/29 14:53:54 1.40 @@ -552,7 +552,7 @@ void MEMCALL memp_reads(UINT32 address, void MEMCALL memp_writes(UINT32 address, const void *dat, UINT leng) { - const UINT8 *out = dat; + const UINT8 *out = (UINT8 *)dat; UINT diff; /* fast memory access */ @@ -582,7 +582,7 @@ void MEMCALL memp_writes(UINT32 address, // ---- Logical Space (BIOS) -static UINT32 physicaladdr(UINT32 addr, BOOL wr) { +static UINT32 MEMCALL physicaladdr(UINT32 addr, BOOL wr) { UINT32 a; UINT32 pde; @@ -610,8 +610,8 @@ static UINT32 physicaladdr(UINT32 addr, addr = (pte & CPU_PTE_BASEADDR_MASK) + (addr & 0x00000fff); return(addr); -retdummy: - return(0x01000000); // てきとーにメモリが存在しない場所 + retdummy: + return(0x01000000); /* XXX */ } @@ -636,19 +636,18 @@ void MEMCALL meml_reads(UINT32 address, void MEMCALL meml_writes(UINT32 address, const void *dat, UINT leng) { - const UINT8 *out = dat; - UINT size; + UINT size; if (!CPU_STAT_PAGING) { - memp_writes(address, out, leng); + memp_writes(address, dat, leng); } else { while(leng) { size = 0x1000 - (address & 0xfff); size = min(size, leng); - memp_writes(physicaladdr(address, TRUE), out, size); + memp_writes(physicaladdr(address, TRUE), dat, size); address += size; - out += size; + dat = ((UINT8 *)dat) + size; leng -= size; } } @@ -733,10 +732,9 @@ void MEMCALL memr_reads(UINT seg, UINT o void MEMCALL memr_writes(UINT seg, UINT off, const void *dat, UINT leng) { - const UINT8 *out = dat; - UINT32 addr; - UINT rem; - UINT size; + UINT32 addr; + UINT rem; + UINT size; while(leng) { off = LOW16(off); @@ -748,12 +746,11 @@ void MEMCALL memr_writes(UINT seg, UINT size = min(size, rem); addr = physicaladdr(addr, TRUE); } - memp_writes(addr, out, size); + memp_writes(addr, dat, size); off += size; - out += size; + dat = ((UINT8 *)dat) + size; leng -= size; } } #endif -