--- nono/vm/vm_x68k.cpp 2026/04/29 17:04:42 1.1.1.3 +++ nono/vm/vm_x68k.cpp 2026/04/29 17:04:45 1.1.1.4 @@ -8,6 +8,7 @@ #include "bus.h" #include "config.h" #include "human68k.h" +#include "interrupt.h" #include "mpu680x0.h" #include "renderer.h" #include "rp5c15.h" @@ -39,8 +40,9 @@ VM_X68030::VM_X68030() // デバイス (順序に注意) // BusErrDevice は親コンストラクタで作成済み。 + gMPU.reset(new MPU680x0Device(0xff0000)); // required by Scheduler gScheduler.reset(new Scheduler()); // required by * - gMPU.reset(new MPU680x0Device(0xff0000)); + gInterrupt.reset(new X68030Interrupt()); gRAM.reset(new RAMDevice()); // required by XIOSpace xiospace.reset(new XIOSpaceDevice()); @@ -101,11 +103,18 @@ VM_RXZ::VM_RXZ() // デバイス (順序に注意) // BusErrDevice は親コンストラクタで作成済み。 + gMPU.reset(new MPU680x0Device(0)); // required by Scheduler gScheduler.reset(new Scheduler()); // required by * - gMPU.reset(new MPU680x0Device(0)); + gInterrupt.reset(new X68030Interrupt()); gRAM.reset(new RAMDevice()); // required by Human68k gRTC.reset(new RP5C15Device()); human68k.reset(new Human68k()); + + // 割り当て + // 全域 RAM に見せる。正しくはない。 + for (int i = 0; i < countof(::devtable); i++) { + ::devtable[i] = gRAM.get(); + } } // デストラクタ