summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/electron/cart/abr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/electron/cart/abr.cpp')
-rw-r--r--src/devices/bus/electron/cart/abr.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/devices/bus/electron/cart/abr.cpp b/src/devices/bus/electron/cart/abr.cpp
index 1d2455e56c1..c894d5e9c71 100644
--- a/src/devices/bus/electron/cart/abr.cpp
+++ b/src/devices/bus/electron/cart/abr.cpp
@@ -46,13 +46,16 @@ void electron_abr_device::device_start()
// read - cartridge data read
//-------------------------------------------------
-uint8_t electron_abr_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2)
+uint8_t electron_abr_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa)
{
uint8_t data = 0xff;
- if (oe)
+ if (!infc && !infd)
{
- data = m_nvram[(offset & 0x3fff) | (romqa << 14)];
+ if (offset >= 0x0000 && offset < 0x4000)
+ {
+ data = m_nvram[(offset & 0x3fff) | (romqa << 14)];
+ }
}
return data;
@@ -62,7 +65,7 @@ uint8_t electron_abr_device::read(offs_t offset, int infc, int infd, int romqa,
// write - cartridge data write
//-------------------------------------------------
-void electron_abr_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2)
+void electron_abr_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa)
{
if (infc)
{
@@ -82,9 +85,10 @@ void electron_abr_device::write(offs_t offset, uint8_t data, int infc, int infd,
break;
}
}
- else if (oe)
+
+ if (!infc && !infd)
{
- if (!m_bank_locked[romqa])
+ if (offset >= 0x0000 && offset < 0x4000 && !m_bank_locked[romqa])
{
m_nvram[(offset & 0x3fff) | (romqa << 14)] = data;
}