--- nono/vm/crtc2.cpp 2026/04/29 17:04:28 1.1 +++ nono/vm/crtc2.cpp 2026/04/29 17:04:31 1.1.1.3 @@ -14,7 +14,7 @@ CRTC2Device::CRTC2Device() vdisp_event.dev = this; vdisp_event.func = (DeviceCallback_t)&CRTC2Device::VDispCallback; - vdisp_event.name = "CRTC2 V-DISP"; + vdisp_event.SetName("CRTC2 V-DISP"); } CRTC2Device::~CRTC2Device() @@ -36,16 +36,15 @@ CRTC2Device::ResetHard() // すぐに垂直帰線期間を開始する vdisp_event.time = 0; vdisp_event.code = 1; - gScheduler->AddEvent(&vdisp_event); + vdisp_event.Start(); } uint64 -CRTC2Device::Read8(uint32 addr) +CRTC2Device::Read(uint32 addr) { - uint32 an = addr - devaddr; uint32 data; - switch (an) { + switch (addr) { case 0: // アドレスレジスタ // アドレスレジスタは書き込み専用 // XXX 何が読めるか @@ -78,32 +77,15 @@ CRTC2Device::Read8(uint32 addr) break; default: - data = 0xff; - putlog(0, "未実装バイト読み込み $%08x", addr); - break; + __unreachable(); } return data; } uint64 -CRTC2Device::Read16(uint32 addr) -{ - putlog(0, "未実装ワード読み込み $%08x", addr); - return 0xffff; -} - -uint64 -CRTC2Device::Read32(uint32 addr) -{ - putlog(0, "未実装ロング読み込み $%08x", addr); - return 0xffffffff; -} - -uint64 -CRTC2Device::Write8(uint32 addr, uint32 data) +CRTC2Device::Write(uint32 addr, uint32 data) { - uint32 an = addr - devaddr; - switch (an) { + switch (addr) { case 0: // アドレスレジスタ ar = data & 0x3f; putlog(3, "アドレスレジスタ <- $%02x", ar); @@ -129,30 +111,14 @@ CRTC2Device::Write8(uint32 addr, uint32 return 0; default: - putlog(3, "未実装バイト書き込み $%08x <- %02x", addr, data); - return 0; + __unreachable(); } } uint64 -CRTC2Device::Write16(uint32 addr, uint32 data) -{ - putlog(0, "未実装ワード書き込み $%08x <- %04x", addr, data); - return 0; -} - -uint64 -CRTC2Device::Write32(uint32 addr, uint32 data) -{ - putlog(0, "未実装ロング書き込み $%08x <- %08x", addr, data); - return 0; -} - -uint64 -CRTC2Device::Peek8(uint32 addr) +CRTC2Device::Peek(uint32 addr) { - uint32 an = addr - devaddr; - switch (an) { + switch (addr) { case 0: // アドレスレジスタ return ar; @@ -160,7 +126,7 @@ CRTC2Device::Peek8(uint32 addr) return reg[ar]; default: - return 0xff; + __unreachable(); } } @@ -185,5 +151,5 @@ CRTC2Device::VDispCallback(int arg) vdisp_event.time = 507.328_usec; // 32*Ht } vdisp_event.code = 1 - arg; - gScheduler->AddEvent(&vdisp_event); + vdisp_event.Start(); }