--- nono/vm/dmac.cpp 2026/04/29 17:05:55 1.1.1.18 +++ nono/vm/dmac.cpp 2026/04/29 17:06:00 1.1.1.19 @@ -22,7 +22,7 @@ // time 時間後に呼び出すコールバックをセットする。 // func の書式が面倒なのを省略して書きたいため。 #define CallAfter(func_, time_, wait_) do { \ - event->func = ToEventCallback(&DMACDevice::func_); \ + event->SetCallback(&DMACDevice::func_); \ event->time = time_ * 80_nsec + wait_; \ scheduler->StartEvent(event); \ } while (0) @@ -59,7 +59,7 @@ DMACDevice::DMACDevice() // #3 は未対応 monitor = gMonitorManager->Regist(ID_MONITOR_DMAC, this); - monitor->func = ToMonitorCallback(&DMACDevice::MonitorUpdate); + monitor->SetCallback(&DMACDevice::MonitorScreen); monitor->SetSize(80, 34); } @@ -634,7 +634,7 @@ DMACDevice::Peek1(uint32 addr) } void -DMACDevice::MonitorUpdate(Monitor *, TextScreen& screen) +DMACDevice::MonitorScreen(Monitor *, TextScreen& screen) { int x; int y; @@ -868,7 +868,7 @@ DMACDevice::MonitorUpdate(Monitor *, Tex } } -// 4ビット分を表示する。MonitorUpdate の下請け +// 4ビット分を表示する。MonitorScreen の下請け void DMACDevice::MonitorReg4(TextScreen& screen, int x, int y, uint32 reg, const char * const *names) @@ -1136,7 +1136,7 @@ DMACDevice::StartTransfer(DMACChan *chan case DMAC::CHAIN_reserved: // とりあえず DISABLED と同じ動作にしておくか。 chan_putlog(chan, 1, "Undefined CHAIN=1 (ignored)"); - // FALLTHROUGH + FALLTHROUGH; case DMAC::CHAIN_DISABLED: chan_putlog(chan, 1, "%s", MakeStartLog(chan).c_str()); break; @@ -1752,6 +1752,7 @@ DMACDevice::TransferLog(DMACChan *chan, if (r.IsOK()) { str += string_format("$%04x", r.Data()); } + break; case WR_M8: case WR_D8: str += string_format("$%02x", (uint32)data);