--- nono/vm/interrupt.cpp 2026/04/29 17:05:33 1.1.1.11 +++ nono/vm/interrupt.cpp 2026/04/29 17:06:00 1.1.1.14 @@ -194,22 +194,11 @@ M680x0Interrupt::~M680x0Interrupt() bool M680x0Interrupt::Init() { - if (inherited::Init() == false) { - return false; - } - mpu680x0 = GetMPU680x0Device(mpu); return true; } -// リセット -void -M680x0Interrupt::ResetHard(bool poweron) -{ - inherited::ResetHard(poweron); -} - void M680x0Interrupt::ChangeInterrupt() { @@ -234,7 +223,7 @@ M680x0Interrupt::ChangeInterrupt() X68030Interrupt::X68030Interrupt() { monitor = gMonitorManager->Regist(ID_MONITOR_INTERRUPT, this); - monitor->func = ToMonitorCallback(&X68030Interrupt::MonitorUpdate); + monitor->SetCallback(&X68030Interrupt::MonitorScreen); } // デストラクタ @@ -330,7 +319,7 @@ X68030Interrupt::InterruptAcknowledge(in } void -X68030Interrupt::MonitorUpdate(Monitor *, TextScreen& screen) +X68030Interrupt::MonitorScreen(Monitor *, TextScreen& screen) { int y; @@ -362,7 +351,7 @@ X68030Interrupt::MonitorUpdate(Monitor * } // PEDEC 分も一緒に表示したい - pedec->MonitorUpdate(screen, intr_mask, y); + pedec->MonitorScreen(screen, intr_mask, y); } @@ -374,7 +363,7 @@ X68030Interrupt::MonitorUpdate(Monitor * LunaInterrupt::LunaInterrupt() { monitor = gMonitorManager->Regist(ID_MONITOR_INTERRUPT, this); - monitor->func = ToMonitorCallback(&LunaInterrupt::MonitorUpdate); + monitor->SetCallback(&LunaInterrupt::MonitorScreen); } // デストラクタ @@ -425,7 +414,7 @@ LunaInterrupt::InterruptAcknowledge(int } void -LunaInterrupt::MonitorUpdate(Monitor *, TextScreen& screen) +LunaInterrupt::MonitorScreen(Monitor *, TextScreen& screen) { int y; @@ -465,7 +454,7 @@ LunaInterrupt::MonitorUpdate(Monitor *, NewsInterrupt::NewsInterrupt() { monitor = gMonitorManager->Regist(ID_MONITOR_INTERRUPT, this); - monitor->func = ToMonitorCallback(&NewsInterrupt::MonitorUpdate); + monitor->SetCallback(&NewsInterrupt::MonitorScreen); } // デストラクタ @@ -533,7 +522,7 @@ NewsInterrupt::PeekStatus() const } void -NewsInterrupt::MonitorUpdate(Monitor *, TextScreen& screen) +NewsInterrupt::MonitorScreen(Monitor *, TextScreen& screen) { int y; @@ -573,7 +562,7 @@ NewsInterrupt::MonitorUpdate(Monitor *, Virt68kInterrupt::Virt68kInterrupt() { monitor = gMonitorManager->Regist(ID_MONITOR_INTERRUPT, this); - monitor->func = ToMonitorCallback(&Virt68kInterrupt::MonitorUpdate); + monitor->SetCallback(&Virt68kInterrupt::MonitorScreen); } // デストラクタ @@ -626,8 +615,7 @@ Virt68kInterrupt::Init() void Virt68kInterrupt::IncMonitorHeight() { - auto size = monitor->GetSize(); - monitor->SetSize(size.width, size.height + 1); + monitor->AddHeight(1); } // 割り込みアクノリッジに応答する @@ -639,7 +627,7 @@ Virt68kInterrupt::InterruptAcknowledge(i } void -Virt68kInterrupt::MonitorUpdate(Monitor *, TextScreen& screen) +Virt68kInterrupt::MonitorScreen(Monitor *, TextScreen& screen) { int y; @@ -674,7 +662,7 @@ Virt68kInterrupt::MonitorUpdate(Monitor } // 各入力ピンの状態も表示しないと何も分からない。 - gfpic[lv]->MonitorUpdateSummary(screen, 15, y); + gfpic[lv]->MonitorScreenSummary(screen, 15, y); screen.Print(51, y, "%26s", format_number(counter[clz]).c_str()); y++; @@ -686,6 +674,6 @@ Virt68kInterrupt::MonitorUpdate(Monitor for (uint32 map : disp_list) { int clz = __builtin_clz(map); int lv = (31 - clz) / 4; - y = gfpic[lv]->MonitorUpdateDetail(screen, y, lv); + y = gfpic[lv]->MonitorScreenDetail(screen, y, lv); } }