--- nono/vm/areaset.cpp 2026/04/29 17:05:25 1.1.1.9 +++ nono/vm/areaset.cpp 2026/04/29 17:05:50 1.1.1.12 @@ -8,9 +8,8 @@ // エリアセット // -// 書き込み専用デバイスなので BusIO を使うのも余計手間な気がする。 - #include "areaset.h" +#include "event.h" #include "mpu.h" #include "x68kio.h" @@ -29,10 +28,6 @@ AreaSetDevice::~AreaSetDevice() bool AreaSetDevice::Init() { - if (inherited::Init() == false) { - return false; - } - x68kio = GetX68kIODevice(); return true; @@ -48,50 +43,34 @@ AreaSetDevice::ResetHard(bool poweron) } busdata -AreaSetDevice::Read8(uint32 addr) +AreaSetDevice::ReadPort(uint32 offset) { - // 書き込み専用なので読み出しはすべてバスエラー。 - putlog(2, "Read $%06x.B (BusErr)", addr); - return busdata::BusErr; + putlog(2, "Read $%06x (BusErr)", mpu->GetPaddr()); + return BusData::BusErr; } -busdata -AreaSetDevice::Read16(uint32 addr) -{ - // 書き込み専用なので読み出しはすべてバスエラー。 - putlog(2, "Read $%06x.W (BusErr)", addr); - return busdata::BusErr; -} busdata -AreaSetDevice::Write8(uint32 addr, uint32 data) +AreaSetDevice::WritePort(uint32 offset, uint32 data) { - busdata r; - - // 2バイトおきのようだ。 - uint32 offset = addr & 1; - if (offset == 0) { - putlog(2, "Write $%06x.B (BusErr)", addr); - r.SetBusErr(); - } else { - putlog(1, "Write $%06x <- $%02x", addr, data); - x68kio->SetAreaset(data & 0xff); - } + putlog(1, "Write $%06x <- $%02x", mpu->GetPaddr(), data); + x68kio->SetAreaset(data); const busdata wait = busdata::Wait(7 * 40_nsec); - r |= wait; + busdata r = wait; + r |= BusData::Size1; return r; } busdata -AreaSetDevice::Write16(uint32 addr, uint32 data) +AreaSetDevice::PeekPort(uint32 offset) { - // ワード書き込みは可能 - return Write8(addr + 1, data & 0xff); + return BusData::BusErr; } -busdata -AreaSetDevice::Peek8(uint32 addr) +bool +AreaSetDevice::PokePort(uint32 offset, uint32 data) { - return busdata::BusErr; + // とりあえず + return false; }