--- nono/vm/dmac.cpp 2026/04/29 17:04:55 1.1.1.8 +++ nono/vm/dmac.cpp 2026/04/29 17:04:58 1.1.1.9 @@ -26,7 +26,7 @@ DMACDevice::DMACDevice() dmac.chan[2].desc = "User"; dmac.chan[3].desc = "ADPCM"; - for (int i = 0; i < countof(event); i++) { + for (int i = 0; i < event.size(); i++) { event[i].dev = this; event[i].func = (DeviceCallback_t)&DMACDevice::Transfer; event[i].SetName(string_format("DMAC #%d", i)); @@ -69,8 +69,8 @@ DMACDevice::ResetHard() } // イベントをすべて停止 - for (int i = 0; i < countof(event); i++) { - event[i].Stop(); + for (auto& ev : event) { + ev.Stop(); } } @@ -564,7 +564,7 @@ DMACDevice::MonitorUpdate(Monitor *, Tex val = chan->PeekCSR(); screen.Print(x, y++, "$%02x", val); static const char * const csrname[] = { - "COC", "BTC", "NDT", "ERR", "ACT", "---", "PCT", "PCS", + "COC", "BTC", "NDT", "ERR", "ACT", "-", "PCT", "PCS", }; MonitorReg4(screen, x, y++, val >> 4, &csrname[0]); MonitorReg4(screen, x, y++, val & 0xff, &csrname[4]); @@ -676,7 +676,7 @@ DMACDevice::MonitorUpdate(Monitor *, Tex val = chan->ccr; screen.Print(x, y++, "$%02x", val); static const char * const ccrnames[] = { - "STR", "CNT", "HLT", "SAB", "INT", "---", "---", "---", + "STR", "CNT", "HLT", "SAB", "INT", "-", "-", "-", }; MonitorReg4(screen, x, y++, (val >> 4), &ccrnames[0]); MonitorReg4(screen, x, y++, (val & 0xff), &ccrnames[4]); @@ -731,8 +731,12 @@ DMACDevice::MonitorReg4(TextScreen& scre int x, int y, uint32 reg, const char * const *names) { for (int i = 0; i < 4; i++) { - bool b = reg & (1 << (3 - i)); - screen.Puts(x + i * 4, y, TA::OnOff(b), names[i]); + if (names[i][0] == '-') { + screen.Puts(x + i * 4, y, TA::Disable, "---"); + } else { + bool b = reg & (1 << (3 - i)); + screen.Puts(x + i * 4, y, TA::OnOff(b), names[i]); + } } }