--- nono/vm/mpu680x0.h 2026/04/29 17:04:36 1.1.1.2 +++ nono/vm/mpu680x0.h 2026/04/29 17:04:42 1.1.1.4 @@ -19,8 +19,7 @@ class MPU680x0Device : public MPUDevice ~MPU680x0Device() override; bool Init() override; - void ResetHard() override; - bool MonitorUpdate() override; + void MonitorUpdate(TextScreen&) override; uint32 Run(uint64 request) override; @@ -31,6 +30,9 @@ class MPU680x0Device : public MPUDevice uint32 GetLaddr() const override { return cpu->bus.laddr; } uint32 GetPaddr() const override { return cpu->bus.paddr; } + // アクセスウェイトを加算 + void AddCycle(uint64 cycle) override { cpu->total_cycle += cycle; } + // 割り込み発生を MPU に通知 (オートベクタ) void Interrupt(Object *src, int level) override; @@ -64,7 +66,10 @@ class MPU680x0Device : public MPUDevice } private: - m68kcpu *cpu = NULL; + // リセット例外イベントコールバック + void ResetCallback(Event& ev); + + m68kcpu *cpu {}; }; // ATC モニタ @@ -74,10 +79,10 @@ class MPUATC : public Object MPUATC(m68kcpu *cpu); ~MPUATC() override { } - bool MonitorUpdate() override; + void MonitorUpdate(TextScreen&) override; private: - m68kcpu *cpu = NULL; + m68kcpu *cpu {}; }; extern std::unique_ptr gMPUATC;