--- nono/debugger/vectortable.cpp 2026/04/29 17:05:16 1.1.1.3 +++ nono/debugger/vectortable.cpp 2026/04/29 17:05:28 1.1.1.5 @@ -25,6 +25,7 @@ VectorTable::VectorTable(VMType vmtype) case VMType::X68030: case VMType::LUNA1: case VMType::NEWS: + case VMType::VIRT68K: InitTableM68030(vmtype); break; case VMType::LUNA88K: @@ -35,7 +36,7 @@ VectorTable::VectorTable(VMType vmtype) } monitor.func = ToMonitorCallback(&VectorTable::MonitorUpdate); - monitor.SetSize(49, 1 + 32); // ヘッダの1行と全エントリ数 + monitor.SetSize(75, 1 + 32); // ヘッダの1行と全エントリ数 monitor.SetMaxHeight(1 + Size()); monitor.Regist(ID_SUBWIN_VECTOR); } @@ -163,10 +164,10 @@ VectorTable::GetExceptionName(int vector void VectorTable::MonitorUpdate(Monitor *, TextScreen& screen) { - // 0 1 2 3 4 5 6 - // 0123456789012345678901234567890123456789012345678901234567890123456789 - // No. Offset Address Name Count - // $02( 2) $0008 $12345678 01234567890123456789012 0123456789 +// 0 1 2 3 4 5 6 7 +// 012345678901234567890123456789012345678901234567890123456789012345678901234 +// No. Offset Address Name >< Count +// $02( 2) $0008 $12345678 0123456789012345678901201234567890123456789012345 uint32 vbr = mpu->GetVBR(); @@ -179,17 +180,19 @@ VectorTable::MonitorUpdate(Monitor *, Te // 最初の1行は常にヘッダ screen.Print(0, 0, "No. Offset Address Name"); - //screen.Print(57, 0, "Count"); + screen.Print(70, 0, "Count"); for (int y = 1; v < vend; v++, y++) { - screen.Print(0, y, "$%02x(%3d) $%04x", v, v, v * 4); - uint64 addr = mainbus->Peek32(vbr + v * 4); - if (__predict_false((int64)addr < 0)) { + screen.Print(0, y, "$%02x(%3u) $%04x", v, v, v * 4); + busdata addr = mainbus->Peek4(vbr + v * 4); + if (__predict_false(addr.IsBusErr())) { screen.Print(16, y, "BusErr"); } else { - screen.Print(16, y, "$%08x", (uint32)addr); + screen.Print(16, y, "$%08x", addr.Data()); } screen.Print(26, y, "%-23s", GetTableName(v)); + screen.Print(49, y, "%26s", + format_number(mpu->excep_counter[v]).c_str()); } }