--- nono/vm/interrupt.cpp 2026/04/29 17:05:24 1.1.1.9 +++ nono/vm/interrupt.cpp 2026/04/29 17:05:28 1.1.1.10 @@ -30,12 +30,12 @@ // | | +---------------+ // | | // | | +------------------+ -// | +--| Virt68kInterrupt | (virt68k の割り込みコントローラ) +// | +--| Virt68kInterrupt | (virt-m68k の割り込みコントローラ) // | +------------------+ // | // +-- PEDECDevice (X68030 の Lv1 担当コントローラ) // +-- SysCtlrDevice (LUNA-88K の割り込みコントローラ) -// +-- GFPICDevice (virt68k の各レベル担当コントローラ) +// +-- GFPICDevice (virt-m68k の各レベル担当コントローラ) #include "interrupt.h" #include "dmac.h" @@ -64,7 +64,7 @@ InterruptDevice::InterruptDevice() } // コンストラクタ(オブジェクト名指定あり) -InterruptDevice::InterruptDevice(int objid_) +InterruptDevice::InterruptDevice(uint objid_) : inherited(objid_) { } @@ -212,7 +212,7 @@ M680x0Interrupt::ResetHard(bool poweron) void M680x0Interrupt::ChangeInterrupt() { - int newipl; + uint newipl; // intmap_status は最下位ビットを常に立ててあるので 0 にならない newipl = (uint)(31 - __builtin_clz(intmap_status)) / 4; @@ -325,7 +325,7 @@ X68030Interrupt::InterruptAcknowledge(in break; } - return busdata::BusErr; + return BusData::BusErr; } void @@ -345,13 +345,13 @@ X68030Interrupt::MonitorUpdate(Monitor * // SPC Mask y = 0; - screen.Print(0, y, "Lv Device IM=%d", intr_mask); + screen.Print(0, y, "Lv Device IM=%u", intr_mask); screen.Puts(36, y, "Count"); y++; for (uint32 map : disp_list) { int clz = __builtin_clz(map); int lv = (31 - clz) / 4; - screen.Print(0, y, "%d", lv); + screen.Print(0, y, "%u", lv); screen.Puts(3, y, TA::OnOff(intmap_status & map), GetIntName(map)); if (lv <= intr_mask) { screen.Puts(11, y, "Mask"); @@ -439,13 +439,13 @@ LunaInterrupt::MonitorUpdate(Monitor *, // 1 XP(Hi) Mask01234567890123456789012345 y = 0; - screen.Print(0, y, "Lv Device IM=%d", intr_mask); + screen.Print(0, y, "Lv Device IM=%u", intr_mask); screen.Puts(35, y, "Count"); y++; for (uint32 map : disp_list) { int clz = __builtin_clz(map); int lv = (31 - clz) / 4; - screen.Print(0, y, "%d", lv); + screen.Print(0, y, "%u", lv); screen.Puts(3, y, TA::OnOff(intmap_status & map), GetIntName(map)); if (lv <= intr_mask) { screen.Puts(10, y, "Mask"); @@ -547,13 +547,13 @@ NewsInterrupt::MonitorUpdate(Monitor *, // 1 XP(Hi) Mask01234567890123456789012345 y = 0; - screen.Print(0, y, "Lv Device IM=%d", intr_mask); + screen.Print(0, y, "Lv Device IM=%u", intr_mask); screen.Puts(35, y, "Count"); y++; for (uint32 map : disp_list) { int clz = __builtin_clz(map); int lv = (31 - clz) / 4; - screen.Print(0, y, "%d", lv); + screen.Print(0, y, "%u", lv); screen.Puts(3, y, TA::OnOff(intmap_status & map), GetIntName(map)); if (lv <= intr_mask) { screen.Puts(10, y, "Mask"); @@ -565,7 +565,7 @@ NewsInterrupt::MonitorUpdate(Monitor *, // -// virt68k 仮想割り込みコントローラ +// virt-m68k 仮想割り込みコントローラ // // コンストラクタ @@ -659,14 +659,14 @@ Virt68kInterrupt::MonitorUpdate(Monitor // E:Enable D:Disable .:NotConnected y = 0; - screen.Print(0, y, "Lv Device IM=%d IRQ 20 10 1", + screen.Print(0, y, "Lv Device IM=%u IRQ 20 10 1", intr_mask); screen.Puts(72, y, "Count"); y++; for (uint32 map : disp_list) { - int clz = __builtin_clz(map); - int lv = (31 - clz) / 4; - screen.Print(0, y, "%d", lv); + uint clz = __builtin_clz(map); + uint lv = (uint)(31 - clz) / 4; + screen.Print(0, y, "%u", lv); screen.Puts(3, y, TA::OnOff(intmap_status & map), GetIntName(map)); if (lv <= intr_mask) { screen.Puts(10, y, "Mask");