--- nono/vm/mainbus_virt68k.cpp 2026/04/29 17:05:33 1.1.1.3 +++ nono/vm/mainbus_virt68k.cpp 2026/04/29 17:06:01 1.1.1.5 @@ -26,6 +26,7 @@ // +-- XPbusDevice #include "mainbus_virt68k.h" +#include "buserr.h" #include "interrupt.h" #include "mainapp.h" #include "mainram.h" @@ -86,6 +87,7 @@ busdata Virt68kMainbus::Read(busaddr addr) { uint32 pa = addr.Addr(); + lastaddr = pa; accstat_read[pa >> AccStat::SHIFT] = AccStat::READ; IODevice *dev = Decoder(pa); return dev->Read(addr); @@ -95,6 +97,7 @@ busdata Virt68kMainbus::Write(busaddr addr, uint32 data) { uint32 pa = addr.Addr(); + lastaddr = pa; accstat_read[pa >> AccStat::SHIFT] = AccStat::WRITE; IODevice *dev = Decoder(pa); return dev->Write(addr, data); @@ -104,6 +107,7 @@ busdata Virt68kMainbus::ReadBurst16(busaddr addr, uint32 *dst) { uint32 pa = addr.Addr(); + lastaddr = pa; // 開始アドレスしか残らない… IODevice *dev = Decoder(pa); busdata r = dev->ReadBurst16(addr, dst); if (__predict_true(r.IsBusErr() == false)) { @@ -116,6 +120,7 @@ busdata Virt68kMainbus::WriteBurst16(busaddr addr, const uint32 *src) { uint32 pa = addr.Addr(); + lastaddr = pa; // 開始アドレスしか残らない… IODevice *dev = Decoder(pa); busdata r = dev->WriteBurst16(addr, src); if (__predict_true(r.IsBusErr() == false)) {