--- nono/vm/romimg_x68k.cpp 2026/04/29 17:05:18 1.1.1.10 +++ nono/vm/romimg_x68k.cpp 2026/04/29 17:05:25 1.1.1.11 @@ -41,7 +41,7 @@ #include "builtinrom.h" #include "config.h" #include "mainapp.h" -#include "vm.h" +#include "mainbus.h" // // IPLROM0 @@ -84,7 +84,8 @@ IPLROM0Device::Init() void IPLROM0Device::ResetHard(bool poweron) { - gVM->SwitchBootPageToROM(this); + auto mainbus = GetMainbusDevice(); + mainbus->SwitchBootPageToROM(); } // Read の共通処理。 @@ -94,28 +95,29 @@ IPLROM0Device::ReadDecoder(uint32 addr) { // ROM アドレスがアクセスされたら切り替える if (addr >= 0xff0000) { - gVM->SwitchBootPageToRAM(this); + auto mainbus = GetMainbusDevice(); + mainbus->SwitchBootPageToRAM(); } // どちらにしてもアクセスは ROM のアドレス return addr | 0xff0000; } -uint64 +busdata IPLROM0Device::Read8(uint32 addr) { addr = ReadDecoder(addr); return iplrom1->Read8(addr); } -uint64 +busdata IPLROM0Device::Read16(uint32 addr) { addr = ReadDecoder(addr); return iplrom1->Read16(addr); } -uint64 +busdata IPLROM0Device::Read32(uint32 addr) { addr = ReadDecoder(addr); @@ -124,7 +126,7 @@ IPLROM0Device::Read32(uint32 addr) // Write は RAM 領域へも ROM 領域へも発生しないはずなので基底のを使う。 -uint64 +busdata IPLROM0Device::Peek8(uint32 addr) { addr |= 0xff0000;