--- nono/vm/mpu64180.h 2026/04/29 17:05:46 1.1.1.5 +++ nono/vm/mpu64180.h 2026/04/29 17:06:01 1.1.1.7 @@ -12,7 +12,6 @@ #include "mpu.h" #include "branchhistory.h" -#include "event.h" #include "hd64180.h" #include "message.h" #include @@ -101,10 +100,10 @@ class MPU64180Device : public MPUDevice, void EnterNormal(); void EnterSleep(); void EnterWakeup(); - void ExecTrace(Event& ev); - void ExecNormal(Event& ev); - void ExecSleep(Event& ev); - void ExecWakeup(Event& ev); + void ExecTrace(Event *); + void ExecNormal(Event *); + void ExecSleep(Event *); + void ExecWakeup(Event *); void SetExec(EventCallback_t); // トレース設定。デバッガから呼び出される。 @@ -208,7 +207,7 @@ class MPU64180Device : public MPUDevice, // タイマー void EnableTimer(); void ChangeTimerInterrupt(); - void TimerCallback(Event& ev); + void TimerCallback(Event *); void MakeActiveTimer(); uint16 ppc {}; @@ -256,7 +255,7 @@ class MPU64180Device : public MPUDevice, // 直近の命令語 uint8 op {}; - uint64 clock_nsec {}; // MPU クロック [nsec] + uint64 clock_tsec {}; // MPU クロック [tsec] // 電源オンからの累積消費サイクル uint64 used_cycle {}; @@ -305,9 +304,9 @@ class MPU64180Device : public MPUDevice, XPbusDevice *xpbus {}; // モニター - DECLARE_MONITOR_CALLBACK(MonitorUpdateReg); - DECLARE_MONITOR_CALLBACK(MonitorUpdateIO); - DECLARE_MONITOR_CALLBACK(MonitorUpdateIntr); + DECLARE_MONITOR_SCREEN(MonitorScreenReg); + DECLARE_MONITOR_SCREEN(MonitorScreenIO); + DECLARE_MONITOR_SCREEN(MonitorScreenIntr); Monitor *reg_monitor {}; Monitor *io_monitor {}; Monitor *intr_monitor {}; @@ -316,13 +315,13 @@ class MPU64180Device : public MPUDevice, EventCallback_t exec_func {}; // イベント - Event timer_event { this }; + Event *timer_event {}; // 名前 static const char * const opmode_names[]; static std::vector ionames; }; -static inline MPU64180Device *GetMPU64180Device() { +inline MPU64180Device *GetMPU64180Device() { return Object::GetObject(OBJ_MPUXP); }