--- nono/vm/nmi.cpp 2026/04/29 17:05:18 1.1.1.3 +++ nono/vm/nmi.cpp 2026/04/29 17:05:51 1.1.1.7 @@ -9,6 +9,7 @@ // #include "nmi.h" +#include "event.h" #include "interrupt.h" #include "mainapp.h" #include "scheduler.h" @@ -17,9 +18,6 @@ NMIDevice::NMIDevice() : inherited(OBJ_NMI) { - event.func = ToEventCallback(&NMIDevice::NegateCallback); - event.time = 100_msec; - event.Regist("NMI"); } // デストラクタ @@ -31,14 +29,16 @@ NMIDevice::~NMIDevice() bool NMIDevice::Init() { - if (inherited::Init() == false) { - return false; - } - interrupt = GetInterruptDevice(); scheduler->ConnectMessage(MessageID::NMI, this, - ToMessageCallback(&NMIDevice::AssertCallback)); + ToMessageCallback(&NMIDevice::AssertMessage)); + + auto evman = GetEventManager(); + event = evman->Regist(this, + ToEventCallback(&NMIDevice::NegateCallback), + "NMI"); + event->time = 100_msec; return true; } @@ -66,7 +66,7 @@ NMIDevice::NegateNMI() // NMI アサートのメッセージコールバック void -NMIDevice::AssertCallback(MessageID msgid, uint32 arg) +NMIDevice::AssertMessage(MessageID msgid, uint32 arg) { AssertNMI(); @@ -80,7 +80,7 @@ NMIDevice::AssertCallback(MessageID msgi // NMI ネゲートのイベントコールバック void -NMIDevice::NegateCallback(Event& ev) +NMIDevice::NegateCallback(Event *ev) { NegateNMI(); }