--- nono/vm/mpu88xx0.h 2026/04/29 17:05:25 1.1.1.13 +++ nono/vm/mpu88xx0.h 2026/04/29 17:05:34 1.1.1.15 @@ -17,9 +17,9 @@ #include "m88200.h" #include -class MPU88xx0Device : public MPUDevice, private M88100 +class MPU88xx0Device : public MainMPUDevice, private M88100 { - using inherited = MPUDevice; + using inherited = MainMPUDevice; friend class Luna88kPROMEmuDevice; static const uint32 CPU_STATE_NORMAL = 0; @@ -109,7 +109,7 @@ class MPU88xx0Device : public MPUDevice, uint64 fetch() { reg.nip = reg.fip; - reg.opF = cmmu[0]->load_32(reg.fip); + reg.opF = cmmu[0]->load_4(reg.fip); reg.fip += 4; return reg.opF; } @@ -147,7 +147,7 @@ class MPU88xx0Device : public MPUDevice, bool IsMXM() const { return (reg.psr & PSR_MXM) != 0; } // FPxS1, FPxS2 レジスタを設定 - static void SetFPxS(uint32& h, uint32& l, double src, uint32 t); + static void SetFPxS(uint32 *h, uint32 *l, double src, uint32 t); void SetFPS1(double src, uint32 t1); void SetFPS2(double src, uint32 t2); void SetFPS1(uint32 src); @@ -173,9 +173,8 @@ class MPU88xx0Device : public MPUDevice, uint32 nop_counter {}; // STOP 検出用の nop 命令カウンタ // ロードストア命令用の下処理 - bool ldst_usr(uint32& usr); uint32 ldst_scale(uint32 size); - bool ldst_align(uint32 size, uint32& addr); + // 浮動小数点数命令用の処理 void ops_int(int mode); @@ -242,7 +241,7 @@ OP_PROTO(illegal); // レジスタモニター DECLARE_MONITOR_CALLBACK(MonitorUpdate); - Monitor monitor { this }; + Monitor *monitor {}; // イベントコールバック EventCallback_t exec_normal {};