#include "compiler.h"
#include "cpucore.h"
#include "pccore.h"
#include "iocore.h"
#include "memepp.h"
// ---- EPP-ROM
void MEMCALL memd000_wr8(UINT32 address, REG8 value) {
if (CPU_RAM_D000 & (1 << ((address >> 12) & 15))) {
mem[address] = (UINT8)value;
}
}
void MEMCALL memd000_wr16(UINT32 address, REG16 value) {
UINT8 *ptr;
UINT16 bit;
ptr = mem + address;
bit = 1 << ((address >> 12) & 15);
if ((address + 1) & 0xfff) {
if (CPU_RAM_D000 & bit) {
STOREINTELWORD(ptr, value);
}
}
else {
if (CPU_RAM_D000 & bit) {
ptr[0] = (UINT8)value;
}
if (CPU_RAM_D000 & (bit << 1)) {
ptr[1] = (UINT8)(value >> 8);
}
}
}
// ---- ITF
REG8 MEMCALL memf800_rd8(UINT32 address) {
if (CPU_ITFBANK) {
address += VRAM_STEP;
}
return(mem[address]);
}
REG16 MEMCALL memf800_rd16(UINT32 address) {
if (CPU_ITFBANK) {
address += VRAM_STEP;
}
return(LOADINTELWORD(mem + address));
}
// ---- EPSON ROM
void MEMCALL memepson_wr8(UINT32 address, REG8 value) {
mem[address + 0x1c8000 - 0xe8000] = (UINT8)value;
}
void MEMCALL memepson_wr16(UINT32 address, REG16 value) {
UINT8 *ptr;
ptr = mem + (address + 0x1c8000 - 0xe8000);
STOREINTELWORD(ptr, value);
}
RetroPC.NET-CVS <cvs@retropc.net>