--- nono/vm/mpu680x0.h 2026/04/29 17:05:42 1.1.1.17 +++ nono/vm/mpu680x0.h 2026/04/29 17:05:50 1.1.1.18 @@ -13,7 +13,6 @@ #include "mpu.h" #include "branchhistory.h" #include "bus.h" -#include "event.h" #include "m680x0.h" #include "m68030mmu.h" #include @@ -116,18 +115,18 @@ class MPU680x0Device : public MainMPUDev protected: // リセット例外コールバック - void ResetCallback(Event& ev); + void ResetCallback(Event *); // 命令実行系コールバック - void ExecShort(Event& ev); - void ExecFull(Event& ev); - void ExecTrace(Event& ev); + void ExecShort(Event *); + void ExecFull(Event *); + void ExecTrace(Event *); // トレース設定。デバッガから呼び出される。 void SetTrace(bool enable) override; // 割り込みイベントコールバック - void InterruptCallback(Event& ev); + void InterruptCallback(Event *); // 次の実行サイクルを Full にする。 void MakeNextFull(); @@ -155,7 +154,7 @@ class MPU680x0Device : public MainMPUDev // バスエラーからの復帰用。 inline void save_reg_pd(int n) { // 該当ビットのフラグを立てる - flag_pd |= (1 << n); + flag_pd |= (1U << n); // 保存 save_pd[n] = reg.A[n]; @@ -165,7 +164,7 @@ class MPU680x0Device : public MainMPUDev // バスエラーからの復帰用。 inline void save_reg_pi(int n) { // 該当ビットのフラグを立てる - flag_pi |= (1 << n); + flag_pi |= (1U << n); // 保存 save_pi[n] = reg.A[n]; @@ -174,14 +173,14 @@ class MPU680x0Device : public MainMPUDev // -(An) 実行前にレジスタを(まだ保存してなければ)保存する。 // 1命令で同じレジスタを2回 -(An) する可能性がある命令用。 inline void save_reg_pd_if(int n) { - if ((flag_pd & (1 << n)) == 0) { + if ((flag_pd & (1U << n)) == 0) { save_reg_pd(n); } } // (An)+ 実行前にレジスタを(まだ保存してなければ)保存する。 // 1命令で同じレジスタを2回 (An)+ する可能性がある命令用。 inline void save_reg_pi_if(int n) { - if ((flag_pi & (1 << n)) == 0) { + if ((flag_pi & (1U << n)) == 0) { save_reg_pi(n); } } @@ -440,7 +439,7 @@ class MPU680x0Device : public MainMPUDev BranchHistory_m680x0 exhist { OBJ_MPU_EXHIST }; // 割り込みイベント - Event intr_event { this }; + Event *intr_event {}; // トレースでコールバックを差し替えることができるように // イベントコールバックを変数に入れてある