--- nono/vm/newsctlr.cpp 2026/04/29 17:05:42 1.1.1.6 +++ nono/vm/newsctlr.cpp 2026/04/29 17:06:00 1.1.1.8 @@ -42,6 +42,7 @@ #include "newsctlr.h" #include "dipsw.h" #include "ethernet.h" +#include "event.h" #include "interrupt.h" #include "scheduler.h" #include "syncer.h" @@ -82,10 +83,11 @@ NewsCtlrDevice::Init() putmsg(1, "macaddr=%s", macaddr.ToString(':').c_str()); memcpy(&oidrom[8], &macaddr, sizeof(macaddr)); - timer_event.func = ToEventCallback(&NewsCtlrDevice::TimerCallback); - timer_event.time = TIMER_PERIOD; - timer_event.SetName("SystemTimer"); - scheduler->RegistEvent(timer_event); + auto evman = GetEventManager(); + timer_event = evman->Regist(this, + ToEventCallback(&NewsCtlrDevice::TimerCallback), + "SystemTimer"); + timer_event->time = TIMER_PERIOD; return true; } @@ -214,7 +216,7 @@ NewsCtlrDevice::Peek1(uint32 addr) // NewsIO の下請けとして呼ばれる。 void -NewsCtlrDevice::MonitorUpdateNewsCtlr(TextScreen& screen, int y) +NewsCtlrDevice::MonitorScreenNewsCtlr(TextScreen& screen, int y) { // テーブル方式ではないので、Read/Write と手動で揃える…。 @@ -319,7 +321,7 @@ NewsCtlrDevice::WriteTimer(uint32 data) // システムタイマーイベント void -NewsCtlrDevice::TimerCallback(Event& ev) +NewsCtlrDevice::TimerCallback(Event *ev) { timer_intr = true; ChangeInterrupt();