OSDN Git Service

[VM] TRY:Use namespace {VMNAME} to separate around VMs. This feature still apply...
[csp-qt/common_source_project-fm7.git] / source / src / vm / fm7 / mainmem_writeseq.cpp
index 4eca58e..5dbb311 100644 (file)
@@ -8,6 +8,11 @@
 #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)
 {
@@ -27,7 +32,7 @@ void FM7_MAINMEM::write_shared_ram(uint32_t realaddr, uint32_t data, bool dmamod
 {
        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)
@@ -35,9 +40,9 @@ void FM7_MAINMEM::write_direct_access(uint32_t realaddr, uint32_t data, bool dma
 #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;
@@ -58,9 +63,7 @@ void FM7_MAINMEM::write_mmio(uint32_t addr, uint32_t data, bool dmamode)
 {
        addr &= 0xff;
        iowait();
-       if(mainio != NULL) {
-               mainio->write_data8(addr, data);
-       }
+       call_write_data8(mainio, addr, data);
        return;
 }
 
@@ -137,6 +140,7 @@ void FM7_MAINMEM::write_data(uint32_t addr, uint32_t data, bool dmamode)
 # ifdef _FM77AV_VARIANTS
                        else if(mmr_bank == 0x3f) {
                                if((raddr >= 0xd80) && (raddr <= 0xd97)) { // MMR AREA
+                                       iowait(); // OK?
                                        return;
                                } else {
                                        raddr = raddr | 0x3f000;
@@ -190,11 +194,13 @@ void FM7_MAINMEM::write_data8_main(uint32_t addr, uint32_t data, bool dmamode)
 #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;
@@ -203,3 +209,5 @@ void FM7_MAINMEM::write_data8_main(uint32_t addr, uint32_t data, bool dmamode)
 #endif
        write_data(addr, data, dmamode);
 }
+
+}