summaryrefslogtreecommitdiffstats
path: root/src/devices/bus/svi3x8/slot
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/svi3x8/slot')
-rw-r--r--src/devices/bus/svi3x8/slot/slot.cpp35
-rw-r--r--src/devices/bus/svi3x8/slot/slot.h55
-rw-r--r--src/devices/bus/svi3x8/slot/sv801.cpp8
-rw-r--r--src/devices/bus/svi3x8/slot/sv801.h6
-rw-r--r--src/devices/bus/svi3x8/slot/sv802.cpp16
-rw-r--r--src/devices/bus/svi3x8/slot/sv802.h4
-rw-r--r--src/devices/bus/svi3x8/slot/sv803.cpp4
-rw-r--r--src/devices/bus/svi3x8/slot/sv803.h4
-rw-r--r--src/devices/bus/svi3x8/slot/sv805.cpp8
-rw-r--r--src/devices/bus/svi3x8/slot/sv805.h4
-rw-r--r--src/devices/bus/svi3x8/slot/sv806.cpp14
-rw-r--r--src/devices/bus/svi3x8/slot/sv806.h8
-rw-r--r--src/devices/bus/svi3x8/slot/sv807.cpp4
-rw-r--r--src/devices/bus/svi3x8/slot/sv807.h4
14 files changed, 83 insertions, 91 deletions
diff --git a/src/devices/bus/svi3x8/slot/slot.cpp b/src/devices/bus/svi3x8/slot/slot.cpp
index c345d864f4b..eb2137ce629 100644
--- a/src/devices/bus/svi3x8/slot/slot.cpp
+++ b/src/devices/bus/svi3x8/slot/slot.cpp
@@ -20,11 +20,11 @@ DEFINE_DEVICE_TYPE(SVI_SLOT_BUS, svi_slot_bus_device, "svislotbus", "SVI Slot Bu
// svi_slot_bus_device - constructor
//-------------------------------------------------
-svi_slot_bus_device::svi_slot_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
- device_t(mconfig, SVI_SLOT_BUS, tag, owner, clock),
- m_int_handler(*this),
- m_romdis_handler(*this),
- m_ramdis_handler(*this)
+svi_slot_bus_device::svi_slot_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, SVI_SLOT_BUS, tag, owner, clock)
+ , m_int_handler(*this)
+ , m_romdis_handler(*this)
+ , m_ramdis_handler(*this)
{
}
@@ -71,14 +71,14 @@ void svi_slot_bus_device::add_card(device_svi_slot_interface *card)
// mreq_r - memory read from slot
//-------------------------------------------------
-READ8_MEMBER( svi_slot_bus_device::mreq_r )
+uint8_t svi_slot_bus_device::mreq_r(offs_t offset)
{
device_svi_slot_interface *entry = m_dev.first();
uint8_t data = 0xff;
while (entry)
{
- data &= entry->mreq_r(space, offset);
+ data &= entry->mreq_r(offset);
entry = entry->next();
}
@@ -89,13 +89,13 @@ READ8_MEMBER( svi_slot_bus_device::mreq_r )
// mreq_w - memory write to slot
//-------------------------------------------------
-WRITE8_MEMBER( svi_slot_bus_device::mreq_w )
+void svi_slot_bus_device::mreq_w(offs_t offset, uint8_t data)
{
device_svi_slot_interface *entry = m_dev.first();
while (entry)
{
- entry->mreq_w(space, offset, data);
+ entry->mreq_w(offset, data);
entry = entry->next();
}
}
@@ -104,14 +104,14 @@ WRITE8_MEMBER( svi_slot_bus_device::mreq_w )
// iorq_r - memory read from slot
//-------------------------------------------------
-READ8_MEMBER( svi_slot_bus_device::iorq_r )
+uint8_t svi_slot_bus_device::iorq_r(offs_t offset)
{
device_svi_slot_interface *entry = m_dev.first();
uint8_t data = 0xff;
while (entry)
{
- data &= entry->iorq_r(space, offset);
+ data &= entry->iorq_r(offset);
entry = entry->next();
}
@@ -122,13 +122,13 @@ READ8_MEMBER( svi_slot_bus_device::iorq_r )
// iorq_w - memory write to slot
//-------------------------------------------------
-WRITE8_MEMBER( svi_slot_bus_device::iorq_w )
+void svi_slot_bus_device::iorq_w(offs_t offset, uint8_t data)
{
device_svi_slot_interface *entry = m_dev.first();
while (entry)
{
- entry->iorq_w(space, offset, data);
+ entry->iorq_w(offset, data);
entry = entry->next();
}
}
@@ -204,10 +204,9 @@ DEFINE_DEVICE_TYPE(SVI_SLOT, svi_slot_device, "svislot", "SVI Slot")
// svi_slot_device - constructor
//-------------------------------------------------
-svi_slot_device::svi_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
- device_t(mconfig, SVI_SLOT, tag, owner, clock),
- device_slot_interface(mconfig, *this),
- m_bus_tag(nullptr)
+svi_slot_device::svi_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, SVI_SLOT, tag, owner, clock)
+ , device_slot_interface(mconfig, *this)
{
}
@@ -221,7 +220,7 @@ void svi_slot_device::device_start()
if (dev)
{
- svi_slot_bus_device *bus = downcast<svi_slot_bus_device *>(m_owner->subdevice(m_bus_tag));
+ svi_slot_bus_device *bus = downcast<svi_slot_bus_device *>(owner()->subdevice(SVIBUS_TAG));
bus->add_card(dev);
}
}
diff --git a/src/devices/bus/svi3x8/slot/slot.h b/src/devices/bus/svi3x8/slot/slot.h
index 702c005b770..756f17658fd 100644
--- a/src/devices/bus/svi3x8/slot/slot.h
+++ b/src/devices/bus/svi3x8/slot/slot.h
@@ -40,27 +40,11 @@
#pragma once
-
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
+// CONSTANTS / MACROS
//**************************************************************************
-#define MCFG_SVI_SLOT_BUS_ADD \
- MCFG_DEVICE_ADD("slotbus", SVI_SLOT_BUS, 0)
-
-#define MCFG_SVI_SLOT_ADD(_tag, _slot_intf, _def_slot) \
- MCFG_DEVICE_ADD(_tag, SVI_SLOT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \
- downcast<svi_slot_device &>(*device).set_bus(this, "slotbus");
-
-#define MCFG_SVI_SLOT_INT_HANDLER(_devcb) \
- downcast<svi_slot_bus_device &>(*device).set_int_handler(DEVCB_##_devcb);
-
-#define MCFG_SVI_SLOT_ROMDIS_HANDLER(_devcb) \
- downcast<svi_slot_bus_device &>(*device).set_romdis_handler(DEVCB_##_devcb);
-
-#define MCFG_SVI_SLOT_RAMDIS_HANDLER(_devcb) \
- downcast<svi_slot_bus_device &>(*device).set_ramdis_handler(DEVCB_##_devcb);
+#define SVIBUS_TAG "slot_bux"
//**************************************************************************
@@ -79,9 +63,9 @@ public:
virtual ~svi_slot_bus_device();
// callbacks
- template <class Object> devcb_base &set_int_handler(Object &&cb) { return m_int_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_romdis_handler(Object &&cb) { return m_romdis_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_ramdis_handler(Object &&cb) { return m_ramdis_handler.set_callback(std::forward<Object>(cb)); }
+ auto int_handler() { return m_int_handler.bind(); }
+ auto romdis_handler() { return m_romdis_handler.bind(); }
+ auto ramdis_handler() { return m_ramdis_handler.bind(); }
void add_card(device_svi_slot_interface *card);
@@ -91,10 +75,10 @@ public:
DECLARE_WRITE_LINE_MEMBER( ramdis_w ) { m_ramdis_handler(state); };
// from host
- DECLARE_READ8_MEMBER( mreq_r );
- DECLARE_WRITE8_MEMBER( mreq_w );
- DECLARE_READ8_MEMBER( iorq_r );
- DECLARE_WRITE8_MEMBER( iorq_w );
+ uint8_t mreq_r(offs_t offset);
+ void mreq_w(offs_t offset, uint8_t data);
+ uint8_t iorq_r(offs_t offset);
+ void iorq_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER( bk21_w );
DECLARE_WRITE_LINE_MEMBER( bk22_w );
@@ -122,10 +106,17 @@ class svi_slot_device : public device_t, public device_slot_interface
{
public:
// construction/destruction
- svi_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ template <typename T>
+ svi_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
+ : svi_slot_device(mconfig, tag, owner, 0)
+ {
+ option_reset();
+ opts(*this);
+ set_default_option(dflt);
+ set_fixed(false);
+ }
- // inline configuration
- void set_bus(device_t *owner, const char *bus_tag) { m_owner = owner; m_bus_tag = bus_tag; }
+ svi_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// device-level overrides
@@ -152,10 +143,10 @@ public:
device_svi_slot_interface *next() const { return m_next; }
- virtual DECLARE_READ8_MEMBER( mreq_r ) { return 0xff; }
- virtual DECLARE_WRITE8_MEMBER( mreq_w ) { }
- virtual DECLARE_READ8_MEMBER( iorq_r ) { return 0xff; }
- virtual DECLARE_WRITE8_MEMBER( iorq_w ) { }
+ virtual uint8_t mreq_r(offs_t offset) { return 0xff; }
+ virtual void mreq_w(offs_t offset, uint8_t data) { }
+ virtual uint8_t iorq_r(offs_t offset) { return 0xff; }
+ virtual void iorq_w(offs_t offset, uint8_t data) { }
virtual DECLARE_WRITE_LINE_MEMBER( bk21_w ) { }
virtual DECLARE_WRITE_LINE_MEMBER( bk22_w ) { }
diff --git a/src/devices/bus/svi3x8/slot/sv801.cpp b/src/devices/bus/svi3x8/slot/sv801.cpp
index 48881ffc9e1..9d73b62aec1 100644
--- a/src/devices/bus/svi3x8/slot/sv801.cpp
+++ b/src/devices/bus/svi3x8/slot/sv801.cpp
@@ -97,7 +97,7 @@ WRITE_LINE_MEMBER( sv801_device::drq_w )
m_drq = state;
}
-WRITE8_MEMBER( sv801_device::motor_w )
+void sv801_device::motor_w(uint8_t data)
{
m_floppy = nullptr;
@@ -112,7 +112,7 @@ WRITE8_MEMBER( sv801_device::motor_w )
m_floppy1->get_device()->mon_w(!BIT(data, 3));
}
-READ8_MEMBER( sv801_device::iorq_r )
+uint8_t sv801_device::iorq_r(offs_t offset)
{
switch (offset)
{
@@ -126,7 +126,7 @@ READ8_MEMBER( sv801_device::iorq_r )
return 0xff;
}
-WRITE8_MEMBER( sv801_device::iorq_w )
+void sv801_device::iorq_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -134,7 +134,7 @@ WRITE8_MEMBER( sv801_device::iorq_w )
case 0x31: m_fdc->track_w(data); break;
case 0x32: m_fdc->sector_w(data); break;
case 0x33: m_fdc->data_w(data); break;
- case 0x34: motor_w(space, 0, data); break;
+ case 0x34: motor_w(data); break;
case 0x38:
m_fdc->dden_w(BIT(data, 0));
if (m_floppy)
diff --git a/src/devices/bus/svi3x8/slot/sv801.h b/src/devices/bus/svi3x8/slot/sv801.h
index 38dea1e55d0..29c2014b872 100644
--- a/src/devices/bus/svi3x8/slot/sv801.h
+++ b/src/devices/bus/svi3x8/slot/sv801.h
@@ -28,8 +28,8 @@ public:
// construction/destruction
sv801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER( iorq_r ) override;
- virtual DECLARE_WRITE8_MEMBER( iorq_w ) override;
+ virtual uint8_t iorq_r(offs_t offset) override;
+ virtual void iorq_w(offs_t offset, uint8_t data) override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
@@ -37,7 +37,7 @@ protected:
virtual void device_reset() override;
private:
- DECLARE_WRITE8_MEMBER( motor_w );
+ void motor_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( intrq_w );
DECLARE_WRITE_LINE_MEMBER( drq_w );
diff --git a/src/devices/bus/svi3x8/slot/sv802.cpp b/src/devices/bus/svi3x8/slot/sv802.cpp
index 2cc905d472c..909ed2fa712 100644
--- a/src/devices/bus/svi3x8/slot/sv802.cpp
+++ b/src/devices/bus/svi3x8/slot/sv802.cpp
@@ -20,12 +20,14 @@ DEFINE_DEVICE_TYPE(SV802, sv802_device, "sv802", "SV-802 Centronics Printer Inte
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(sv802_device::device_add_mconfig)
- MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
- MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, sv802_device, busy_w))
+void sv802_device::device_add_mconfig(machine_config &config)
+{
+ CENTRONICS(config, m_centronics, centronics_devices, "printer");
+ m_centronics->busy_handler().set(FUNC(sv802_device::busy_w));
- MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
-MACHINE_CONFIG_END
+ OUTPUT_LATCH(config, m_cent_data_out);
+ m_centronics->set_output_latch(*m_cent_data_out);
+}
//**************************************************************************
@@ -60,7 +62,7 @@ void sv802_device::device_start()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER( sv802_device::iorq_r )
+uint8_t sv802_device::iorq_r(offs_t offset)
{
if (offset == 0x12)
return 0xfe | m_busy;
@@ -68,7 +70,7 @@ READ8_MEMBER( sv802_device::iorq_r )
return 0xff;
}
-WRITE8_MEMBER( sv802_device::iorq_w )
+void sv802_device::iorq_w(offs_t offset, uint8_t data)
{
switch (offset)
{
diff --git a/src/devices/bus/svi3x8/slot/sv802.h b/src/devices/bus/svi3x8/slot/sv802.h
index 2a06329c966..aabea33bbaf 100644
--- a/src/devices/bus/svi3x8/slot/sv802.h
+++ b/src/devices/bus/svi3x8/slot/sv802.h
@@ -28,8 +28,8 @@ public:
// construction/destruction
sv802_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER( iorq_r ) override;
- virtual DECLARE_WRITE8_MEMBER( iorq_w ) override;
+ virtual uint8_t iorq_r(offs_t offset) override;
+ virtual void iorq_w(offs_t offset, uint8_t data) override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
diff --git a/src/devices/bus/svi3x8/slot/sv803.cpp b/src/devices/bus/svi3x8/slot/sv803.cpp
index db79801530c..6adc07fd193 100644
--- a/src/devices/bus/svi3x8/slot/sv803.cpp
+++ b/src/devices/bus/svi3x8/slot/sv803.cpp
@@ -56,7 +56,7 @@ void sv803_device::device_reset()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER( sv803_device::mreq_r )
+uint8_t sv803_device::mreq_r(offs_t offset)
{
if (offset >= 0x8000 && offset <= 0xbfff)
return m_ram[offset - 0x8000];
@@ -64,7 +64,7 @@ READ8_MEMBER( sv803_device::mreq_r )
return 0xff;
}
-WRITE8_MEMBER( sv803_device::mreq_w )
+void sv803_device::mreq_w(offs_t offset, uint8_t data)
{
if (offset >= 0x8000 && offset <= 0xbfff)
m_ram[offset - 0x8000] = data;
diff --git a/src/devices/bus/svi3x8/slot/sv803.h b/src/devices/bus/svi3x8/slot/sv803.h
index 6fd1d2b635a..8cae18acf64 100644
--- a/src/devices/bus/svi3x8/slot/sv803.h
+++ b/src/devices/bus/svi3x8/slot/sv803.h
@@ -26,8 +26,8 @@ public:
// construction/destruction
sv803_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER( mreq_r ) override;
- virtual DECLARE_WRITE8_MEMBER( mreq_w ) override;
+ virtual uint8_t mreq_r(offs_t offset) override;
+ virtual void mreq_w(offs_t offset, uint8_t data) override;
protected:
virtual void device_start() override;
diff --git a/src/devices/bus/svi3x8/slot/sv805.cpp b/src/devices/bus/svi3x8/slot/sv805.cpp
index bc4dc77c19f..cdcaee6f167 100644
--- a/src/devices/bus/svi3x8/slot/sv805.cpp
+++ b/src/devices/bus/svi3x8/slot/sv805.cpp
@@ -65,7 +65,7 @@ void sv805_device::device_start()
// IMPLEMENTATION
//**************************************************************************
-READ8_MEMBER( sv805_device::iorq_r )
+uint8_t sv805_device::iorq_r(offs_t offset)
{
switch (offset)
{
@@ -77,13 +77,13 @@ READ8_MEMBER( sv805_device::iorq_r )
case 0x2d:
case 0x2e:
case 0x2f:
- return m_uart->ins8250_r(space, offset & 0x07);
+ return m_uart->ins8250_r(machine().dummy_space(), offset & 0x07);
}
return 0xff;
}
-WRITE8_MEMBER( sv805_device::iorq_w )
+void sv805_device::iorq_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -95,7 +95,7 @@ WRITE8_MEMBER( sv805_device::iorq_w )
case 0x2d:
case 0x2e:
case 0x2f:
- m_uart->ins8250_w(space, offset & 0x07, data);
+ m_uart->ins8250_w(machine().dummy_space(), offset & 0x07, data);
}
}
diff --git a/src/devices/bus/svi3x8/slot/sv805.h b/src/devices/bus/svi3x8/slot/sv805.h
index 3a6f350a490..892dc23b432 100644
--- a/src/devices/bus/svi3x8/slot/sv805.h
+++ b/src/devices/bus/svi3x8/slot/sv805.h
@@ -28,8 +28,8 @@ public:
// construction/destruction
sv805_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER( iorq_r ) override;
- virtual DECLARE_WRITE8_MEMBER( iorq_w ) override;
+ virtual uint8_t iorq_r(offs_t offset) override;
+ virtual void iorq_w(offs_t offset, uint8_t data) override;
protected:
virtual void device_add_mconfig(machine_config &config) override;
diff --git a/src/devices/bus/svi3x8/slot/sv806.cpp b/src/devices/bus/svi3x8/slot/sv806.cpp
index 5408aa8738c..aed4fb80bda 100644
--- a/src/devices/bus/svi3x8/slot/sv806.cpp
+++ b/src/devices/bus/svi3x8/slot/sv806.cpp
@@ -114,7 +114,7 @@ MC6845_UPDATE_ROW( sv806_device::crtc_update_row )
}
}
-READ8_MEMBER( sv806_device::mreq_r )
+uint8_t sv806_device::mreq_r(offs_t offset)
{
if (offset >= 0xf000 && m_ram_enabled)
{
@@ -125,7 +125,7 @@ READ8_MEMBER( sv806_device::mreq_r )
return 0xff;
}
-WRITE8_MEMBER( sv806_device::mreq_w )
+void sv806_device::mreq_w(offs_t offset, uint8_t data)
{
if (offset >= 0xf000 && m_ram_enabled)
{
@@ -134,20 +134,20 @@ WRITE8_MEMBER( sv806_device::mreq_w )
}
}
-READ8_MEMBER( sv806_device::iorq_r )
+uint8_t sv806_device::iorq_r(offs_t offset)
{
if (offset == 0x51)
- return m_crtc->register_r(space, 0);
+ return m_crtc->register_r();
return 0xff;
}
-WRITE8_MEMBER( sv806_device::iorq_w )
+void sv806_device::iorq_w(offs_t offset, uint8_t data)
{
switch (offset)
{
- case 0x50: m_crtc->address_w(space, 0, data); break;
- case 0x51: m_crtc->register_w(space, 0, data); break;
+ case 0x50: m_crtc->address_w(data); break;
+ case 0x51: m_crtc->register_w(data); break;
case 0x58: m_ram_enabled = data; break;
}
}
diff --git a/src/devices/bus/svi3x8/slot/sv806.h b/src/devices/bus/svi3x8/slot/sv806.h
index 868117b8565..e6af5071c56 100644
--- a/src/devices/bus/svi3x8/slot/sv806.h
+++ b/src/devices/bus/svi3x8/slot/sv806.h
@@ -28,10 +28,10 @@ public:
// construction/destruction
sv806_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_READ8_MEMBER( mreq_r ) override;
- virtual DECLARE_WRITE8_MEMBER( mreq_w ) override;
- virtual DECLARE_READ8_MEMBER( iorq_r ) override;
- virtual DECLARE_WRITE8_MEMBER( iorq_w ) override;
+ virtual uint8_t mreq_r(offs_t offset) override;
+ virtual void mreq_w(offs_t offset, uint8_t data) override;
+ virtual uint8_t iorq_r(offs_t offset) override;
+ virtual void iorq_w(offs_t offset, uint8_t data) override;
protected:
virtual const tiny_rom_entry *device_rom_region() const override;
diff --git a/src/devices/bus/svi3x8/slot/sv807.cpp b/src/devices/bus/svi3x8/slot/sv807.cpp
index 6ea6a77a6bc..281b7845c64 100644
--- a/src/devices/bus/svi3x8/slot/sv807.cpp
+++ b/src/devices/bus/svi3x8/slot/sv807.cpp
@@ -118,7 +118,7 @@ void sv807_device::device_reset()
// test setup: S2 = enabled (22), S3 = enabled (31)
-READ8_MEMBER( sv807_device::mreq_r )
+uint8_t sv807_device::mreq_r(offs_t offset)
{
if ((BK21_ACTIVE || BK31_ACTIVE) && offset < 0x8000)
{
@@ -135,7 +135,7 @@ READ8_MEMBER( sv807_device::mreq_r )
return 0xff;
}
-WRITE8_MEMBER( sv807_device::mreq_w )
+void sv807_device::mreq_w(offs_t offset, uint8_t data)
{
if ((BK21_ACTIVE || BK31_ACTIVE) && offset < 0x8000)
{
diff --git a/src/devices/bus/svi3x8/slot/sv807.h b/src/devices/bus/svi3x8/slot/sv807.h
index e3f12201d37..8d12befff79 100644
--- a/src/devices/bus/svi3x8/slot/sv807.h
+++ b/src/devices/bus/svi3x8/slot/sv807.h
@@ -29,8 +29,8 @@ public:
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
- virtual DECLARE_READ8_MEMBER( mreq_r ) override;
- virtual DECLARE_WRITE8_MEMBER( mreq_w ) override;
+ virtual uint8_t mreq_r(offs_t offset) override;
+ virtual void mreq_w(offs_t offset, uint8_t data) override;
virtual void bk21_w(int state) override;
virtual void bk22_w(int state) override;