#include "vm.h"
#include "emu.h"
#include "fm7_mainmem.h"
+#include "fm7_mainio.h"
+#include "fm7_display.h"
+#include "kanjirom.h"
+
+namespace FM7 {
void FM7_MAINMEM::write_data_tbl(uint32_t addr, uint32_t data, bool dmamode)
{
{
realaddr = realaddr & 0x7f;
if(!sub_halted) return; // Not halt
- return display->write_data8(realaddr + 0xd380, data); // Okay?
+ return call_write_data8(display, realaddr + 0xd380, data); // Okay?
}
void FM7_MAINMEM::write_direct_access(uint32_t realaddr, uint32_t data, bool dmamode)
#if defined(_FM77AV_VARIANTS)
if(!sub_halted) return; // Not halt
if(dmamode) {
- display->write_dma_data8(realaddr & 0xffff, data); // Okay?
+ call_write_dma_data8(display, realaddr & 0xffff, data); // Okay?
} else {
- display->write_data8(realaddr & 0xffff, data); // Okay?
+ call_write_data8(display, realaddr & 0xffff, data); // Okay?
}
#else
return;
{
addr &= 0xff;
iowait();
- if(mainio != NULL) {
- mainio->write_data8(addr, data);
- }
+ call_write_data8(mainio, addr, data);
return;
}
# ifdef _FM77AV_VARIANTS
else if(mmr_bank == 0x3f) {
if((raddr >= 0xd80) && (raddr <= 0xd97)) { // MMR AREA
+ iowait(); // OK?
return;
} else {
raddr = raddr | 0x3f000;
#ifdef _FM77AV_VARIANTS
if(initiator_enabled) {
if((addr >= 0x6000) && (addr < 0x8000)) {
+ iowait();
//uint32_t raddr = addr - 0x6000;
//return fm7_mainmen_initrom[raddr];
return;
}
if((addr >= 0xfffe) && (addr < 0x10000)) {
+ iowait();
//uint32_t raddr = addr - 0xe000;
//return fm7_mainmen_initrom[raddr];
return;
#endif
write_data(addr, data, dmamode);
}
+
+}