diff options
author | andreasnaive <andreasnaive@gmail.com> | 2019-03-25 23:13:40 +0100 |
---|---|---|
committer | andreasnaive <andreasnaive@gmail.com> | 2019-03-25 23:13:40 +0100 |
commit | b380514764cf857469bae61c11143a19f79a74c5 (patch) | |
tree | 63c8012e262618f08a332da31dd714281aa2c5ed /src/devices/bus/svi3x8/slot | |
parent | c24473ddff715ecec2e258a6eb38960cf8c8e98e (diff) |
Revert "conflict resolution (nw)"
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing
changes made to 009cba4fb8102102168ef32870892438327f3705.
Diffstat (limited to 'src/devices/bus/svi3x8/slot')
-rw-r--r-- | src/devices/bus/svi3x8/slot/slot.cpp | 35 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/slot.h | 55 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv801.cpp | 8 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv801.h | 6 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv802.cpp | 16 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv802.h | 4 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv803.cpp | 4 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv803.h | 4 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv805.cpp | 8 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv805.h | 4 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv806.cpp | 14 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv806.h | 8 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv807.cpp | 4 | ||||
-rw-r--r-- | src/devices/bus/svi3x8/slot/sv807.h | 4 |
14 files changed, 91 insertions, 83 deletions
diff --git a/src/devices/bus/svi3x8/slot/slot.cpp b/src/devices/bus/svi3x8/slot/slot.cpp index eb2137ce629..c345d864f4b 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 //------------------------------------------------- -uint8_t svi_slot_bus_device::mreq_r(offs_t offset) +READ8_MEMBER( svi_slot_bus_device::mreq_r ) { device_svi_slot_interface *entry = m_dev.first(); uint8_t data = 0xff; while (entry) { - data &= entry->mreq_r(offset); + data &= entry->mreq_r(space, offset); entry = entry->next(); } @@ -89,13 +89,13 @@ uint8_t svi_slot_bus_device::mreq_r(offs_t offset) // mreq_w - memory write to slot //------------------------------------------------- -void svi_slot_bus_device::mreq_w(offs_t offset, uint8_t data) +WRITE8_MEMBER( svi_slot_bus_device::mreq_w ) { device_svi_slot_interface *entry = m_dev.first(); while (entry) { - entry->mreq_w(offset, data); + entry->mreq_w(space, offset, data); entry = entry->next(); } } @@ -104,14 +104,14 @@ void svi_slot_bus_device::mreq_w(offs_t offset, uint8_t data) // iorq_r - memory read from slot //------------------------------------------------- -uint8_t svi_slot_bus_device::iorq_r(offs_t offset) +READ8_MEMBER( svi_slot_bus_device::iorq_r ) { device_svi_slot_interface *entry = m_dev.first(); uint8_t data = 0xff; while (entry) { - data &= entry->iorq_r(offset); + data &= entry->iorq_r(space, offset); entry = entry->next(); } @@ -122,13 +122,13 @@ uint8_t svi_slot_bus_device::iorq_r(offs_t offset) // iorq_w - memory write to slot //------------------------------------------------- -void svi_slot_bus_device::iorq_w(offs_t offset, uint8_t data) +WRITE8_MEMBER( svi_slot_bus_device::iorq_w ) { device_svi_slot_interface *entry = m_dev.first(); while (entry) { - entry->iorq_w(offset, data); + entry->iorq_w(space, offset, data); entry = entry->next(); } } @@ -204,9 +204,10 @@ 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) +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) { } @@ -220,7 +221,7 @@ void svi_slot_device::device_start() if (dev) { - svi_slot_bus_device *bus = downcast<svi_slot_bus_device *>(owner()->subdevice(SVIBUS_TAG)); + svi_slot_bus_device *bus = downcast<svi_slot_bus_device *>(m_owner->subdevice(m_bus_tag)); bus->add_card(dev); } } diff --git a/src/devices/bus/svi3x8/slot/slot.h b/src/devices/bus/svi3x8/slot/slot.h index 756f17658fd..702c005b770 100644 --- a/src/devices/bus/svi3x8/slot/slot.h +++ b/src/devices/bus/svi3x8/slot/slot.h @@ -40,11 +40,27 @@ #pragma once + //************************************************************************** -// CONSTANTS / MACROS +// INTERFACE CONFIGURATION MACROS //************************************************************************** -#define SVIBUS_TAG "slot_bux" +#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); //************************************************************************** @@ -63,9 +79,9 @@ public: virtual ~svi_slot_bus_device(); // callbacks - auto int_handler() { return m_int_handler.bind(); } - auto romdis_handler() { return m_romdis_handler.bind(); } - auto ramdis_handler() { return m_ramdis_handler.bind(); } + 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)); } void add_card(device_svi_slot_interface *card); @@ -75,10 +91,10 @@ public: DECLARE_WRITE_LINE_MEMBER( ramdis_w ) { m_ramdis_handler(state); }; // from host - 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_READ8_MEMBER( mreq_r ); + DECLARE_WRITE8_MEMBER( mreq_w ); + DECLARE_READ8_MEMBER( iorq_r ); + DECLARE_WRITE8_MEMBER( iorq_w ); DECLARE_WRITE_LINE_MEMBER( bk21_w ); DECLARE_WRITE_LINE_MEMBER( bk22_w ); @@ -106,18 +122,11 @@ class svi_slot_device : public device_t, public device_slot_interface { public: // construction/destruction - 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); - } - svi_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // inline configuration + void set_bus(device_t *owner, const char *bus_tag) { m_owner = owner; m_bus_tag = bus_tag; } + protected: // device-level overrides virtual void device_start() override; @@ -143,10 +152,10 @@ public: device_svi_slot_interface *next() const { return m_next; } - 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_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 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 9d73b62aec1..48881ffc9e1 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; } -void sv801_device::motor_w(uint8_t data) +WRITE8_MEMBER( sv801_device::motor_w ) { m_floppy = nullptr; @@ -112,7 +112,7 @@ void sv801_device::motor_w(uint8_t data) m_floppy1->get_device()->mon_w(!BIT(data, 3)); } -uint8_t sv801_device::iorq_r(offs_t offset) +READ8_MEMBER( sv801_device::iorq_r ) { switch (offset) { @@ -126,7 +126,7 @@ uint8_t sv801_device::iorq_r(offs_t offset) return 0xff; } -void sv801_device::iorq_w(offs_t offset, uint8_t data) +WRITE8_MEMBER( sv801_device::iorq_w ) { switch (offset) { @@ -134,7 +134,7 @@ void sv801_device::iorq_w(offs_t offset, uint8_t data) 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(data); break; + case 0x34: motor_w(space, 0, 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 29c2014b872..38dea1e55d0 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 uint8_t iorq_r(offs_t offset) override; - virtual void iorq_w(offs_t offset, uint8_t data) override; + virtual DECLARE_READ8_MEMBER( iorq_r ) override; + virtual DECLARE_WRITE8_MEMBER( iorq_w ) override; protected: virtual void device_add_mconfig(machine_config &config) override; @@ -37,7 +37,7 @@ protected: virtual void device_reset() override; private: - void motor_w(uint8_t data); + DECLARE_WRITE8_MEMBER( motor_w ); 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 909ed2fa712..2cc905d472c 100644 --- a/src/devices/bus/svi3x8/slot/sv802.cpp +++ b/src/devices/bus/svi3x8/slot/sv802.cpp @@ -20,14 +20,12 @@ DEFINE_DEVICE_TYPE(SV802, sv802_device, "sv802", "SV-802 Centronics Printer Inte // device_add_mconfig - add device configuration //------------------------------------------------- -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)); +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)) - OUTPUT_LATCH(config, m_cent_data_out); - m_centronics->set_output_latch(*m_cent_data_out); -} + MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") +MACHINE_CONFIG_END //************************************************************************** @@ -62,7 +60,7 @@ void sv802_device::device_start() // IMPLEMENTATION //************************************************************************** -uint8_t sv802_device::iorq_r(offs_t offset) +READ8_MEMBER( sv802_device::iorq_r ) { if (offset == 0x12) return 0xfe | m_busy; @@ -70,7 +68,7 @@ uint8_t sv802_device::iorq_r(offs_t offset) return 0xff; } -void sv802_device::iorq_w(offs_t offset, uint8_t data) +WRITE8_MEMBER( sv802_device::iorq_w ) { switch (offset) { diff --git a/src/devices/bus/svi3x8/slot/sv802.h b/src/devices/bus/svi3x8/slot/sv802.h index aabea33bbaf..2a06329c966 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 uint8_t iorq_r(offs_t offset) override; - virtual void iorq_w(offs_t offset, uint8_t data) override; + virtual DECLARE_READ8_MEMBER( iorq_r ) override; + virtual DECLARE_WRITE8_MEMBER( iorq_w ) 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 6adc07fd193..db79801530c 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 //************************************************************************** -uint8_t sv803_device::mreq_r(offs_t offset) +READ8_MEMBER( sv803_device::mreq_r ) { if (offset >= 0x8000 && offset <= 0xbfff) return m_ram[offset - 0x8000]; @@ -64,7 +64,7 @@ uint8_t sv803_device::mreq_r(offs_t offset) return 0xff; } -void sv803_device::mreq_w(offs_t offset, uint8_t data) +WRITE8_MEMBER( sv803_device::mreq_w ) { 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 8cae18acf64..6fd1d2b635a 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 uint8_t mreq_r(offs_t offset) override; - virtual void mreq_w(offs_t offset, uint8_t data) override; + virtual DECLARE_READ8_MEMBER( mreq_r ) override; + virtual DECLARE_WRITE8_MEMBER( mreq_w ) 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 cdcaee6f167..bc4dc77c19f 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 //************************************************************************** -uint8_t sv805_device::iorq_r(offs_t offset) +READ8_MEMBER( sv805_device::iorq_r ) { switch (offset) { @@ -77,13 +77,13 @@ uint8_t sv805_device::iorq_r(offs_t offset) case 0x2d: case 0x2e: case 0x2f: - return m_uart->ins8250_r(machine().dummy_space(), offset & 0x07); + return m_uart->ins8250_r(space, offset & 0x07); } return 0xff; } -void sv805_device::iorq_w(offs_t offset, uint8_t data) +WRITE8_MEMBER( sv805_device::iorq_w ) { switch (offset) { @@ -95,7 +95,7 @@ void sv805_device::iorq_w(offs_t offset, uint8_t data) case 0x2d: case 0x2e: case 0x2f: - m_uart->ins8250_w(machine().dummy_space(), offset & 0x07, data); + m_uart->ins8250_w(space, offset & 0x07, data); } } diff --git a/src/devices/bus/svi3x8/slot/sv805.h b/src/devices/bus/svi3x8/slot/sv805.h index 892dc23b432..3a6f350a490 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 uint8_t iorq_r(offs_t offset) override; - virtual void iorq_w(offs_t offset, uint8_t data) override; + virtual DECLARE_READ8_MEMBER( iorq_r ) override; + virtual DECLARE_WRITE8_MEMBER( iorq_w ) 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 aed4fb80bda..5408aa8738c 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 ) } } -uint8_t sv806_device::mreq_r(offs_t offset) +READ8_MEMBER( sv806_device::mreq_r ) { if (offset >= 0xf000 && m_ram_enabled) { @@ -125,7 +125,7 @@ uint8_t sv806_device::mreq_r(offs_t offset) return 0xff; } -void sv806_device::mreq_w(offs_t offset, uint8_t data) +WRITE8_MEMBER( sv806_device::mreq_w ) { if (offset >= 0xf000 && m_ram_enabled) { @@ -134,20 +134,20 @@ void sv806_device::mreq_w(offs_t offset, uint8_t data) } } -uint8_t sv806_device::iorq_r(offs_t offset) +READ8_MEMBER( sv806_device::iorq_r ) { if (offset == 0x51) - return m_crtc->register_r(); + return m_crtc->register_r(space, 0); return 0xff; } -void sv806_device::iorq_w(offs_t offset, uint8_t data) +WRITE8_MEMBER( sv806_device::iorq_w ) { switch (offset) { - case 0x50: m_crtc->address_w(data); break; - case 0x51: m_crtc->register_w(data); break; + case 0x50: m_crtc->address_w(space, 0, data); break; + case 0x51: m_crtc->register_w(space, 0, 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 e6af5071c56..868117b8565 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 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; + 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; 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 281b7845c64..6ea6a77a6bc 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) -uint8_t sv807_device::mreq_r(offs_t offset) +READ8_MEMBER( sv807_device::mreq_r ) { if ((BK21_ACTIVE || BK31_ACTIVE) && offset < 0x8000) { @@ -135,7 +135,7 @@ uint8_t sv807_device::mreq_r(offs_t offset) return 0xff; } -void sv807_device::mreq_w(offs_t offset, uint8_t data) +WRITE8_MEMBER( sv807_device::mreq_w ) { 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 8d12befff79..e3f12201d37 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 uint8_t mreq_r(offs_t offset) override; - virtual void mreq_w(offs_t offset, uint8_t data) override; + virtual DECLARE_READ8_MEMBER( mreq_r ) override; + virtual DECLARE_WRITE8_MEMBER( mreq_w ) override; virtual void bk21_w(int state) override; virtual void bk22_w(int state) override; |