--- nono/vm/mainbus.cpp 2026/04/29 17:05:28 1.1.1.4 +++ nono/vm/mainbus.cpp 2026/04/29 17:05:50 1.1.1.7 @@ -17,7 +17,7 @@ // ResetByMPU o o o *1 x (*1:どっちでもいい) // // Access Map o o o x x -// HV access o o o o ? +// HV access o o o x ? // Peek4 o o o x x // Singleton o o o x x // @@ -56,7 +56,7 @@ // +-- XPbusDevice (これはただの IODevice) #include "mainbus.h" -#include "syncer.h" +#include "monitor.h" // // メインバスの素質を持つ基本クラス @@ -90,9 +90,6 @@ MainbusBaseDevice::SwitchBootPage(bool i } else { putlog(1, "SwitchBootPage RAM (Normal)"); } - - // 同期モード指示 - GetSyncer()->RequestBootPageMode(isrom); } // モニタ表示用にデバイス名を整形。 @@ -125,10 +122,10 @@ MainbusBaseDevice::FormatDevName(const D MainbusDevice::MainbusDevice(uint objid_) : inherited(objid_) { - monitor_accstat.func = + accstat_monitor = gMonitorManager->Regist(ID_MONITOR_ACCSTAT, this); + accstat_monitor->func = ToMonitorCallback(&MainbusDevice::MonitorUpdateAccStat); // 表示行数が機種ごとに異なるので継承側でセットしている。 - monitor_accstat.Regist(ID_MONITOR_ACCSTAT); // 通常は 32bit 空間全体 (そうでない機種はコンストラクタで上書きする) accstat_baseaddr = 0; @@ -144,10 +141,6 @@ MainbusDevice::~MainbusDevice() bool MainbusDevice::Init() { - if (inherited::Init() == false) { - return false; - } - // アクセス状況の表示用配列。 accstat_rw.resize(AccStat::MAINLEN >> (32 - accstat_bitlen)); @@ -356,9 +349,9 @@ MainbusDevice::MonitorUpdateAccStat(Moni Mainbus24Device::Mainbus24Device() : MainbusDevice(OBJ_MAINBUS) { - monitor.func = ToMonitorCallback(&Mainbus24Device::MonitorUpdate); - monitor.SetSize(75, 33); - monitor.Regist(ID_MONITOR_MAINBUS); + monitor = gMonitorManager->Regist(ID_MONITOR_MAINBUS, this); + monitor->func = ToMonitorCallback(&Mainbus24Device::MonitorUpdate); + monitor->SetSize(75, 33); } Mainbus24Device::~Mainbus24Device()