summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2020-10-24 21:47:13 +1100
committer Vas Crabb <vas@vastheman.com>2020-10-24 21:47:13 +1100
commit3122672bde0deb37a38cc1e9867e33d39326588d (patch)
treee1f351cbd00292fc1c296c5b9c25f690e7e21e10
parentd48db16bac912ecd1bf61dce18784b13fa58d555 (diff)
bus/a2bus: Make Grappler+ cnxx writes select low ROM bank for completeness.
-rw-r--r--src/devices/bus/a2bus/grapplerplus.cpp10
-rw-r--r--src/devices/bus/a2bus/grapplerplus.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/src/devices/bus/a2bus/grapplerplus.cpp b/src/devices/bus/a2bus/grapplerplus.cpp
index 8de41067385..99e0f69f78f 100644
--- a/src/devices/bus/a2bus/grapplerplus.cpp
+++ b/src/devices/bus/a2bus/grapplerplus.cpp
@@ -191,6 +191,16 @@ u8 a2bus_grapplerplus_device::read_cnxx(u8 offset)
}
+void a2bus_grapplerplus_device::write_cnxx(u8 offset, u8 data)
+{
+ LOG("Write Cn%02X=%02X (bus conflict)\n", offset, data);
+
+ if (m_rom_bank)
+ LOG("Select low ROM bank\n");
+ m_rom_bank = 0x0000U;
+}
+
+
u8 a2bus_grapplerplus_device::read_c800(u16 offset)
{
return m_rom[(offset & 0x07ffU) | m_rom_bank];
diff --git a/src/devices/bus/a2bus/grapplerplus.h b/src/devices/bus/a2bus/grapplerplus.h
index ec8bd938492..1060dc11c4f 100644
--- a/src/devices/bus/a2bus/grapplerplus.h
+++ b/src/devices/bus/a2bus/grapplerplus.h
@@ -47,6 +47,7 @@ public:
virtual u8 read_c0nx(u8 offset) override;
virtual void write_c0nx(u8 offset, u8 data) override;
virtual u8 read_cnxx(u8 offset) override;
+ virtual void write_cnxx(u8 offset, u8 data) override;
virtual u8 read_c800(u16 offset) override;
protected: