--- xmil/z80c/z80mem.c 2004/08/01 05:31:32 1.1 +++ xmil/z80c/z80mem.c 2004/08/20 23:01:16 1.4 @@ -1,55 +1,66 @@ #include "compiler.h" +#include "z80core.h" #include "pccore.h" -REG8 MEMCALL Z80_RDMEM(REG16 addr) { +REG8 MEMCALL mem_read8(UINT addr) { if (addr & 0x8000) { - return(mMAIN[addr]); + return(mainmem[addr]); } else { - return(RAM0r[addr]); + return(z80core.e.memread[addr]); } } -void MEMCALL Z80_WRMEM(REG16 addr, REG8 value) { +SINT MEMCALL mem_read8s(UINT addr) { if (addr & 0x8000) { - mMAIN[addr] = (UINT8)value; + return((SINT)(SINT8)mainmem[addr]); } else { - RAM0w[addr] = (UINT8)value; + return((SINT)(SINT8)z80core.e.memread[addr]); } } -REG16 MEMCALL Z80_RDMEM_W(REG16 addr) { +void MEMCALL mem_write8(UINT addr, REG8 value) { + + if (addr & 0x8000) { + mainmem[addr] = (UINT8)value; + } + else { + z80core.e.memwrite[addr] = (UINT8)value; + } +} + +REG16 MEMCALL mem_read16(UINT addr) { if ((addr & 0x7fff) != 0x7fff) { if (addr & 0x8000) { - return(LOADINTELWORD(mMAIN + addr)); + return(LOADINTELWORD(mainmem + addr)); } else { - return(LOADINTELWORD(RAM0r + addr)); + return(LOADINTELWORD(z80core.e.memread + addr)); } } else { - return(Z80_RDMEM(addr) + (Z80_RDMEM(LOW16(addr + 1)) << 8)); + return(mem_read8(addr) + (mem_read8(LOW16(addr + 1)) << 8)); } } -void MEMCALL Z80_WRMEM_W(REG16 addr, REG16 value) { +void MEMCALL mem_write16(UINT addr, REG16 value) { if ((addr & 0x7fff) != 0x7fff) { if (addr & 0x8000) { - STOREINTELWORD(mMAIN + addr, value); + STOREINTELWORD(mainmem + addr, value); } else { - STOREINTELWORD(RAM0w + addr, value); + STOREINTELWORD(z80core.e.memwrite + addr, value); } } else { - Z80_WRMEM(addr, (REG8)value); - Z80_WRMEM(LOW16(addr + 1), (REG8)(value >> 8)); + mem_write8(addr, (REG8)value); + mem_write8(LOW16(addr + 1), (REG8)(value >> 8)); } }