diff --git a/src/devices/machine/k033906.h b/src/devices/machine/k033906.h index 58721957cf0..c751b225ab7 100644 --- a/src/devices/machine/k033906.h +++ b/src/devices/machine/k033906.h @@ -13,28 +13,18 @@ #include "video/voodoo.h" - -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define MCFG_K033906_VOODOO(_tag) \ - downcast(*device).set_voodoo_tag(_tag); - -/*************************************************************************** - TYPE DEFINITIONS -***************************************************************************/ - - -// ======================> k033906_device - class k033906_device : public device_t { public: // construction/destruction - k033906_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + template + k033906_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&voodoo_tag) + : k033906_device(mconfig, tag, owner, clock) + { + m_voodoo.set_tag(std::forward(voodoo_tag)); + } - void set_voodoo_tag(const char *tag) { m_voodoo.set_tag(tag); } + k033906_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ32_MEMBER( read ); DECLARE_WRITE32_MEMBER( write ); @@ -61,8 +51,6 @@ private: uint32_t m_ram[32768]; }; - -// device type definition DECLARE_DEVICE_TYPE(K033906, k033906_device) #endif // MAME_MACHINE_K033906_H diff --git a/src/devices/machine/k053252.h b/src/devices/machine/k053252.h index c8a76b8ff20..b7e41ca06f4 100644 --- a/src/devices/machine/k053252.h +++ b/src/devices/machine/k053252.h @@ -7,41 +7,18 @@ #pragma once - #include "screen.h" -#define MCFG_K053252_INT1_EN_CB(_devcb) \ - downcast(*device).set_int1_en_callback(DEVCB_##_devcb); - -#define MCFG_K053252_INT2_EN_CB(_devcb) \ - downcast(*device).set_int2_en_callback(DEVCB_##_devcb); - -#define MCFG_K053252_INT1_ACK_CB(_devcb) \ - downcast(*device).set_int1_ack_callback(DEVCB_##_devcb); - -#define MCFG_K053252_INT2_ACK_CB(_devcb) \ - downcast(*device).set_int2_ack_callback(DEVCB_##_devcb); - -#define MCFG_K053252_INT_TIME_CB(_devcb) \ - downcast(*device).set_int_time_callback(DEVCB_##_devcb); - -#define MCFG_K053252_OFFSETS(_offsx, _offsy) \ - downcast(*device).set_offsets(_offsx, _offsy); - -#define MCFG_K053252_SET_SLAVE_SCREEN(_tag) \ - downcast(*device).set_slave_screen(_tag); - - class k053252_device : public device_t, public device_video_interface { public: k053252_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_int1_en_callback(Object &&obj) { return m_int1_en_cb.set_callback(std::forward(obj)); } - template devcb_base &set_int2_en_callback(Object &&obj) { return m_int2_en_cb.set_callback(std::forward(obj)); } - template devcb_base &set_int1_ack_callback(Object &&obj) { return m_int1_ack_cb.set_callback(std::forward(obj)); } - template devcb_base &set_int2_ack_callback(Object &&obj) { return m_int2_ack_cb.set_callback(std::forward(obj)); } - template devcb_base &set_int_time_callback(Object &&obj) { return m_int_time_cb.set_callback(std::forward(obj)); } + auto int1_en() { return m_int1_en_cb.bind(); } + auto int2_en() { return m_int2_en_cb.bind(); } + auto int1_ack() { return m_int1_ack_cb.bind(); } + auto int2_ack() { return m_int2_ack_cb.bind(); } + auto int_time() { return m_int_time_cb.bind(); } void set_offsets(int offsx, int offsy) { m_offsx = offsx; m_offsy = offsy; } DECLARE_READ8_MEMBER( read ); // CCU registers diff --git a/src/devices/machine/k054321.cpp b/src/devices/machine/k054321.cpp index 44d07e92de2..d11e06494e5 100644 --- a/src/devices/machine/k054321.cpp +++ b/src/devices/machine/k054321.cpp @@ -63,12 +63,6 @@ k054321_device::k054321_device(const machine_config &mconfig, const char *tag, d { } -void k054321_device::set_gain_devices(const char *_left, const char *_right) -{ - m_left.set_tag(_left); - m_right.set_tag(_right); -} - void k054321_device::device_start() { save_item(NAME(m_main1)); diff --git a/src/devices/machine/k054321.h b/src/devices/machine/k054321.h index e2fbaba9a25..78097b559da 100644 --- a/src/devices/machine/k054321.h +++ b/src/devices/machine/k054321.h @@ -6,16 +6,18 @@ #pragma once -#define MCFG_K054321_ADD(_tag, _left, _right) \ - MCFG_DEVICE_ADD(_tag, K054321, 0) \ - downcast(device)->set_gain_devices(_left, _right); - class k054321_device : public device_t { public: - k054321_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + template + k054321_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&left, U &&right) + : k054321_device(mconfig, tag, owner, 0) + { + m_left.set_tag(std::forward(left)); + m_right.set_tag(std::forward(right)); + } - void set_gain_devices(const char *_left, const char *_right); + k054321_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); void main_map(address_map &map); void sound_map(address_map &map); @@ -24,9 +26,11 @@ protected: void device_start() override; private: - required_device m_left, m_right; + required_device m_left; + required_device m_right; - u8 m_main1, m_main2; + u8 m_main1; + u8 m_main2; u8 m_sound1; u8 m_volume; diff --git a/src/devices/machine/k056230.h b/src/devices/machine/k056230.h index ac9d8e905b7..6c8ae121460 100644 --- a/src/devices/machine/k056230.h +++ b/src/devices/machine/k056230.h @@ -11,34 +11,20 @@ #pragma once - - - -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define MCFG_K056230_CPU(_tag) \ - downcast(*device).set_cpu_tag(_tag); - -#define MCFG_K056230_HACK(_region) \ - downcast(*device).set_thunderh_hack(_region); - - -/*************************************************************************** - TYPE DEFINITIONS -***************************************************************************/ - -// ======================> k056230_device - class k056230_device : public device_t { public: // construction/destruction + template + k056230_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&cpu_tag) + : k056230_device(mconfig, tag, owner, (uint32_t)0) + { + m_cpu.set_tag(std::forward(cpu_tag)); + } + k056230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void set_cpu_tag(const char *tag) { m_cpu.set_tag(tag); } - void set_thunderh_hack(int thunderh) { m_is_thunderh = thunderh; } + void set_thunderh_hack(bool thunderh) { m_is_thunderh = thunderh; } DECLARE_READ32_MEMBER(lanc_ram_r); DECLARE_WRITE32_MEMBER(lanc_ram_w); @@ -51,13 +37,10 @@ public: protected: // device-level overrides virtual void device_start() override; - virtual void device_reset() override { } - virtual void device_post_load() override { } - virtual void device_clock_changed() override { } private: - int m_is_thunderh; + bool m_is_thunderh; required_device m_cpu; uint32_t m_ram[0x2000]; diff --git a/src/devices/machine/kb3600.h b/src/devices/machine/kb3600.h index e77de332bc2..fce1eab7646 100644 --- a/src/devices/machine/kb3600.h +++ b/src/devices/machine/kb3600.h @@ -56,46 +56,6 @@ #pragma once - - - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_AY3600_MATRIX_X0(_cb) \ - downcast(*device).set_x0_cb(DEVCB_##_cb); -#define MCFG_AY3600_MATRIX_X1(_cb) \ - downcast(*device).set_x1_cb(DEVCB_##_cb); -#define MCFG_AY3600_MATRIX_X2(_cb) \ - downcast(*device).set_x2_cb(DEVCB_##_cb); -#define MCFG_AY3600_MATRIX_X3(_cb) \ - downcast(*device).set_x3_cb(DEVCB_##_cb); -#define MCFG_AY3600_MATRIX_X4(_cb) \ - downcast(*device).set_x4_cb(DEVCB_##_cb); -#define MCFG_AY3600_MATRIX_X5(_cb) \ - downcast(*device).set_x5_cb(DEVCB_##_cb); -#define MCFG_AY3600_MATRIX_X6(_cb) \ - downcast(*device).set_x6_cb(DEVCB_##_cb); -#define MCFG_AY3600_MATRIX_X7(_cb) \ - downcast(*device).set_x7_cb(DEVCB_##_cb); -#define MCFG_AY3600_MATRIX_X8(_cb) \ - downcast(*device).set_x8_cb(DEVCB_##_cb); -#define MCFG_AY3600_SHIFT_CB(_cb) \ - downcast(*device).set_shift_cb(DEVCB_##_cb); -#define MCFG_AY3600_CONTROL_CB(_cb) \ - downcast(*device).set_control_cb(DEVCB_##_cb); -#define MCFG_AY3600_DATA_READY_CB(_cb) \ - downcast(*device).set_data_ready_cb(DEVCB_##_cb); -#define MCFG_AY3600_AKO_CB(_cb) \ - downcast(*device).set_ako_cb(DEVCB_##_cb); - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -// ======================> ay3600_device - class ay3600_device : public device_t { public: @@ -105,19 +65,19 @@ public: // public interface uint16_t b_r(); - template devcb_base &set_x0_cb(Object &&rd) { return m_read_x0.set_callback(std::forward(rd)); } - template devcb_base &set_x1_cb(Object &&rd) { return m_read_x1.set_callback(std::forward(rd)); } - template devcb_base &set_x2_cb(Object &&rd) { return m_read_x2.set_callback(std::forward(rd)); } - template devcb_base &set_x3_cb(Object &&rd) { return m_read_x3.set_callback(std::forward(rd)); } - template devcb_base &set_x4_cb(Object &&rd) { return m_read_x4.set_callback(std::forward(rd)); } - template devcb_base &set_x5_cb(Object &&rd) { return m_read_x5.set_callback(std::forward(rd)); } - template devcb_base &set_x6_cb(Object &&rd) { return m_read_x6.set_callback(std::forward(rd)); } - template devcb_base &set_x7_cb(Object &&rd) { return m_read_x7.set_callback(std::forward(rd)); } - template devcb_base &set_x8_cb(Object &&rd) { return m_read_x8.set_callback(std::forward(rd)); } - template devcb_base &set_shift_cb(Object &&rd) { return m_read_shift.set_callback(std::forward(rd)); } - template devcb_base &set_control_cb(Object &&rd) { return m_read_control.set_callback(std::forward(rd)); } - template devcb_base &set_data_ready_cb(Object &&wr) { return m_write_data_ready.set_callback(std::forward(wr)); } - template devcb_base &set_ako_cb(Object &&wr) { return m_write_ako.set_callback(std::forward(wr)); } + auto x0() { return m_read_x0.bind(); } + auto x1() { return m_read_x1.bind(); } + auto x2() { return m_read_x2.bind(); } + auto x3() { return m_read_x3.bind(); } + auto x4() { return m_read_x4.bind(); } + auto x5() { return m_read_x5.bind(); } + auto x6() { return m_read_x6.bind(); } + auto x7() { return m_read_x7.bind(); } + auto x8() { return m_read_x8.bind(); } + auto shift() { return m_read_shift.bind(); } + auto control() { return m_read_control.bind(); } + auto data_ready() { return m_write_data_ready.bind(); } + auto ako() { return m_write_ako.bind(); } protected: // device-level overrides diff --git a/src/devices/machine/kr2376.h b/src/devices/machine/kr2376.h index 5a9529fd7c7..155782df91e 100644 --- a/src/devices/machine/kr2376.h +++ b/src/devices/machine/kr2376.h @@ -34,34 +34,6 @@ #pragma once - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_KR2376_MATRIX_X0(_cb) \ - downcast(*device).set_x_cb<0>(DEVCB_##_cb); -#define MCFG_KR2376_MATRIX_X1(_cb) \ - downcast(*device).set_x_cb<1>(DEVCB_##_cb); -#define MCFG_KR2376_MATRIX_X2(_cb) \ - downcast(*device).set_x_cb<2>(DEVCB_##_cb); -#define MCFG_KR2376_MATRIX_X3(_cb) \ - downcast(*device).set_x_cb<3>(DEVCB_##_cb); -#define MCFG_KR2376_MATRIX_X4(_cb) \ - downcast(*device).set_x_cb<4>(DEVCB_##_cb); -#define MCFG_KR2376_MATRIX_X5(_cb) \ - downcast(*device).set_x_cb<5>(DEVCB_##_cb); -#define MCFG_KR2376_MATRIX_X6(_cb) \ - downcast(*device).set_x_cb<6>(DEVCB_##_cb); -#define MCFG_KR2376_MATRIX_X7(_cb) \ - downcast(*device).set_x_cb<7>(DEVCB_##_cb); -#define MCFG_KR2376_SHIFT_CB(_cb) \ - downcast(*device).set_shift_cb(DEVCB_##_cb); -#define MCFG_KR2376_CONTROL_CB(_cb) \ - downcast(*device).set_control_cb(DEVCB_##_cb); -#define MCFG_KR2376_STROBE_CB(_cb) \ - downcast(*device).set_strobe_cb(DEVCB_##_cb); - class kr2376_device : public device_t { public: @@ -82,10 +54,10 @@ public: kr2376_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_x_cb(Object &&cb) { return m_read_x[N].set_callback(std::forward(cb)); } - template devcb_base &set_shift_cb(Object &&cb) { return m_read_shift.set_callback(std::forward(cb)); } - template devcb_base &set_control_cb(Object &&cb) { return m_read_control.set_callback(std::forward(cb)); } - template devcb_base &set_strobe_cb(Object &&cb) { return m_write_strobe.set_callback(std::forward(cb)); } + template auto x() { return m_read_x[N].bind(); } + auto shift() { return m_read_shift.bind(); } + auto control() { return m_read_control.bind(); } + auto strobe() { return m_write_strobe.bind(); } /* keyboard data */ DECLARE_READ8_MEMBER( data_r ); @@ -133,7 +105,6 @@ private: class kr2376_st_device : public kr2376_device { public: - // construction/destruction kr2376_st_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: virtual uint8_t key_codes(int mode, int x, int y) override; diff --git a/src/mame/drivers/agat.cpp b/src/mame/drivers/agat.cpp index 4a1c687fa50..0f76285fffc 100644 --- a/src/mame/drivers/agat.cpp +++ b/src/mame/drivers/agat.cpp @@ -1099,20 +1099,20 @@ MACHINE_CONFIG_START(agat7_state::agat7) ADDRESS_MAP_BANK(config, m_upperbank).set_map(&agat7_state::inhbank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x3000); /* keyboard controller -- XXX must be replaced */ - MCFG_DEVICE_ADD(m_ay3600, AY3600, 0) - MCFG_AY3600_MATRIX_X0(IOPORT("X0")) - MCFG_AY3600_MATRIX_X1(IOPORT("X1")) - MCFG_AY3600_MATRIX_X2(IOPORT("X2")) - MCFG_AY3600_MATRIX_X3(IOPORT("X3")) - MCFG_AY3600_MATRIX_X4(IOPORT("X4")) - MCFG_AY3600_MATRIX_X5(IOPORT("X5")) - MCFG_AY3600_MATRIX_X6(IOPORT("X6")) - MCFG_AY3600_MATRIX_X7(IOPORT("X7")) - MCFG_AY3600_MATRIX_X8(IOPORT("X8")) - MCFG_AY3600_SHIFT_CB(READLINE(*this, agat7_state, ay3600_shift_r)) - MCFG_AY3600_CONTROL_CB(READLINE(*this, agat7_state, ay3600_control_r)) - MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, agat7_state, ay3600_data_ready_w)) - MCFG_AY3600_AKO_CB(WRITELINE(*this, agat7_state, ay3600_ako_w)) + AY3600(config, m_ay3600, 0); + m_ay3600->x0().set_ioport("X0"); + m_ay3600->x1().set_ioport("X1"); + m_ay3600->x2().set_ioport("X2"); + m_ay3600->x3().set_ioport("X3"); + m_ay3600->x4().set_ioport("X4"); + m_ay3600->x5().set_ioport("X5"); + m_ay3600->x6().set_ioport("X6"); + m_ay3600->x7().set_ioport("X7"); + m_ay3600->x8().set_ioport("X8"); + m_ay3600->shift().set(FUNC(agat7_state::ay3600_shift_r)); + m_ay3600->control().set(FUNC(agat7_state::ay3600_control_r)); + m_ay3600->data_ready().set(FUNC(agat7_state::ay3600_data_ready_w)); + m_ay3600->ako().set(FUNC(agat7_state::ay3600_ako_w)); /* repeat timer. 10 Hz per Mymrin's book */ MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", agat7_state, ay3600_repeat, attotime::from_hz(10)) diff --git a/src/mame/drivers/apple2.cpp b/src/mame/drivers/apple2.cpp index e38d3eec88b..98e02c003cc 100644 --- a/src/mame/drivers/apple2.cpp +++ b/src/mame/drivers/apple2.cpp @@ -1410,20 +1410,20 @@ MACHINE_CONFIG_START(napple2_state::apple2_common) m_softlatch->q_out_cb<7>().set(FUNC(napple2_state::an3_w)); /* keyboard controller */ - MCFG_DEVICE_ADD(A2_KBDC_TAG, AY3600, 0) - MCFG_AY3600_MATRIX_X0(IOPORT("X0")) - MCFG_AY3600_MATRIX_X1(IOPORT("X1")) - MCFG_AY3600_MATRIX_X2(IOPORT("X2")) - MCFG_AY3600_MATRIX_X3(IOPORT("X3")) - MCFG_AY3600_MATRIX_X4(IOPORT("X4")) - MCFG_AY3600_MATRIX_X5(IOPORT("X5")) - MCFG_AY3600_MATRIX_X6(IOPORT("X6")) - MCFG_AY3600_MATRIX_X7(IOPORT("X7")) - MCFG_AY3600_MATRIX_X8(IOPORT("X8")) - MCFG_AY3600_SHIFT_CB(READLINE(*this, napple2_state, ay3600_shift_r)) - MCFG_AY3600_CONTROL_CB(READLINE(*this, napple2_state, ay3600_control_r)) - MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, napple2_state, ay3600_data_ready_w)) - MCFG_AY3600_AKO_CB(WRITELINE(*this, napple2_state, ay3600_ako_w)) + AY3600(config, m_ay3600, 0); + m_ay3600->x0().set_ioport("X0"); + m_ay3600->x1().set_ioport("X1"); + m_ay3600->x2().set_ioport("X2"); + m_ay3600->x3().set_ioport("X3"); + m_ay3600->x4().set_ioport("X4"); + m_ay3600->x5().set_ioport("X5"); + m_ay3600->x6().set_ioport("X6"); + m_ay3600->x7().set_ioport("X7"); + m_ay3600->x8().set_ioport("X8"); + m_ay3600->shift().set(FUNC(napple2_state::ay3600_shift_r)); + m_ay3600->control().set(FUNC(napple2_state::ay3600_control_r)); + m_ay3600->data_ready().set(FUNC(napple2_state::ay3600_data_ready_w)); + m_ay3600->ako().set(FUNC(napple2_state::ay3600_ako_w)); /* repeat timer. 15 Hz from page 90 of "The Apple II Circuit Description */ MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", napple2_state, ay3600_repeat, attotime::from_hz(15)) diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp index 40f39bd9fd3..ce5cef530b2 100644 --- a/src/mame/drivers/apple2e.cpp +++ b/src/mame/drivers/apple2e.cpp @@ -4040,20 +4040,20 @@ MACHINE_CONFIG_START(apple2e_state::apple2e) ADDRESS_MAP_BANK(config, A2_UPPERBANK_TAG).set_map(&apple2e_state::inhbank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x3000); /* keyboard controller */ - MCFG_DEVICE_ADD("ay3600", AY3600, 0) - MCFG_AY3600_MATRIX_X0(IOPORT("X0")) - MCFG_AY3600_MATRIX_X1(IOPORT("X1")) - MCFG_AY3600_MATRIX_X2(IOPORT("X2")) - MCFG_AY3600_MATRIX_X3(IOPORT("X3")) - MCFG_AY3600_MATRIX_X4(IOPORT("X4")) - MCFG_AY3600_MATRIX_X5(IOPORT("X5")) - MCFG_AY3600_MATRIX_X6(IOPORT("X6")) - MCFG_AY3600_MATRIX_X7(IOPORT("X7")) - MCFG_AY3600_MATRIX_X8(IOPORT("X8")) - MCFG_AY3600_SHIFT_CB(READLINE(*this, apple2e_state, ay3600_shift_r)) - MCFG_AY3600_CONTROL_CB(READLINE(*this, apple2e_state, ay3600_control_r)) - MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, apple2e_state, ay3600_data_ready_w)) - MCFG_AY3600_AKO_CB(WRITELINE(*this, apple2e_state, ay3600_ako_w)) + ay3600_device &kbdc(AY3600(config, "ay3600", 0)); + kbdc.x0().set_ioport("X0"); + kbdc.x1().set_ioport("X1"); + kbdc.x2().set_ioport("X2"); + kbdc.x3().set_ioport("X3"); + kbdc.x4().set_ioport("X4"); + kbdc.x5().set_ioport("X5"); + kbdc.x6().set_ioport("X6"); + kbdc.x7().set_ioport("X7"); + kbdc.x8().set_ioport("X8"); + kbdc.shift().set(FUNC(apple2e_state::ay3600_shift_r)); + kbdc.control().set(FUNC(apple2e_state::ay3600_control_r)); + kbdc.data_ready().set(FUNC(apple2e_state::ay3600_data_ready_w)); + kbdc.ako().set(FUNC(apple2e_state::ay3600_ako_w)); /* repeat timer. 15 Hz from page 7-15 of "Understanding the Apple IIe" */ MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", apple2e_state, ay3600_repeat, attotime::from_hz(15)) diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index 0f7524bcfd8..39dd0e8f967 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -4550,20 +4550,20 @@ MACHINE_CONFIG_START( apple2gs_state::apple2gs ) #if !RUN_ADB_MICRO /* keyboard controller */ - MCFG_DEVICE_ADD("ay3600", AY3600, 0) - MCFG_AY3600_MATRIX_X0(IOPORT("X0")) - MCFG_AY3600_MATRIX_X1(IOPORT("X1")) - MCFG_AY3600_MATRIX_X2(IOPORT("X2")) - MCFG_AY3600_MATRIX_X3(IOPORT("X3")) - MCFG_AY3600_MATRIX_X4(IOPORT("X4")) - MCFG_AY3600_MATRIX_X5(IOPORT("X5")) - MCFG_AY3600_MATRIX_X6(IOPORT("X6")) - MCFG_AY3600_MATRIX_X7(IOPORT("X7")) - MCFG_AY3600_MATRIX_X8(IOPORT("X8")) - MCFG_AY3600_SHIFT_CB(READLINE(*this, apple2gs_state, ay3600_shift_r)) - MCFG_AY3600_CONTROL_CB(READLINE(*this, apple2gs_state, ay3600_control_r)) - MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, apple2gs_state, ay3600_data_ready_w)) - MCFG_AY3600_AKO_CB(WRITELINE(*this, apple2gs_state, ay3600_ako_w)) + AY3600(config, m_ay3600, 0); + m_ay3600->x0().set_ioport("X0"); + m_ay3600->x1().set_ioport("X1"); + m_ay3600->x2().set_ioport("X2"); + m_ay3600->x3().set_ioport("X3"); + m_ay3600->x4().set_ioport("X4"); + m_ay3600->x5().set_ioport("X5"); + m_ay3600->x6().set_ioport("X6"); + m_ay3600->x7().set_ioport("X7"); + m_ay3600->x8().set_ioport("X8"); + m_ay3600->shift().set(FUNC(apple2gs_state::ay3600_shift_r)); + m_ay3600->control().set(FUNC(apple2gs_state::ay3600_control_r)); + m_ay3600->data_ready().set(FUNC(apple2gs_state::ay3600_data_ready_w)); + m_ay3600->ako().set(FUNC(apple2gs_state::ay3600_ako_w)); /* repeat timer. 15 Hz from page 7-15 of "Understanding the Apple IIe" */ MCFG_TIMER_DRIVER_ADD_PERIODIC("repttmr", apple2gs_state, ay3600_repeat, attotime::from_hz(15)) diff --git a/src/mame/drivers/apple3.cpp b/src/mame/drivers/apple3.cpp index 083cda9b91a..d7931e7e535 100644 --- a/src/mame/drivers/apple3.cpp +++ b/src/mame/drivers/apple3.cpp @@ -78,19 +78,19 @@ MACHINE_CONFIG_START(apple3_state::apple3) MCFG_PALETTE_INIT_OWNER(apple3_state, apple3 ) /* keyboard controller */ - MCFG_DEVICE_ADD("ay3600", AY3600, 0) - MCFG_AY3600_MATRIX_X0(IOPORT("X0")) - MCFG_AY3600_MATRIX_X1(IOPORT("X1")) - MCFG_AY3600_MATRIX_X2(IOPORT("X2")) - MCFG_AY3600_MATRIX_X3(IOPORT("X3")) - MCFG_AY3600_MATRIX_X4(IOPORT("X4")) - MCFG_AY3600_MATRIX_X5(IOPORT("X5")) - MCFG_AY3600_MATRIX_X6(IOPORT("X6")) - MCFG_AY3600_MATRIX_X7(IOPORT("X7")) - MCFG_AY3600_MATRIX_X8(IOPORT("X8")) - MCFG_AY3600_SHIFT_CB(READLINE(*this, apple3_state, ay3600_shift_r)) - MCFG_AY3600_CONTROL_CB(READLINE(*this, apple3_state, ay3600_control_r)) - MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, apple3_state, ay3600_data_ready_w)) + AY3600(config, m_ay3600, 0); + m_ay3600->x0().set_ioport("X0"); + m_ay3600->x1().set_ioport("X1"); + m_ay3600->x2().set_ioport("X2"); + m_ay3600->x3().set_ioport("X3"); + m_ay3600->x4().set_ioport("X4"); + m_ay3600->x5().set_ioport("X5"); + m_ay3600->x6().set_ioport("X6"); + m_ay3600->x7().set_ioport("X7"); + m_ay3600->x8().set_ioport("X8"); + m_ay3600->shift().set(FUNC(apple3_state::ay3600_shift_r)); + m_ay3600->control().set(FUNC(apple3_state::ay3600_control_r)); + m_ay3600->data_ready().set(FUNC(apple3_state::ay3600_data_ready_w)); /* slot bus */ MCFG_DEVICE_ADD(m_a2bus, A2BUS, 0) diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp index a5a3769683e..6285c6d1825 100644 --- a/src/mame/drivers/bw12.cpp +++ b/src/mame/drivers/bw12.cpp @@ -606,19 +606,19 @@ MACHINE_CONFIG_START(bw12_state::common) MCFG_PIT8253_CLK2(XTAL(1'843'200)) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, bw12_state, pit_out2_w)) - MCFG_DEVICE_ADD(AY3600PRO002_TAG, AY3600, 0) - MCFG_AY3600_MATRIX_X0(IOPORT("X0")) - MCFG_AY3600_MATRIX_X1(IOPORT("X1")) - MCFG_AY3600_MATRIX_X2(IOPORT("X2")) - MCFG_AY3600_MATRIX_X3(IOPORT("X3")) - MCFG_AY3600_MATRIX_X4(IOPORT("X4")) - MCFG_AY3600_MATRIX_X5(IOPORT("X5")) - MCFG_AY3600_MATRIX_X6(IOPORT("X6")) - MCFG_AY3600_MATRIX_X7(IOPORT("X7")) - MCFG_AY3600_MATRIX_X8(IOPORT("X8")) - MCFG_AY3600_SHIFT_CB(READLINE(*this, bw12_state, ay3600_shift_r)) - MCFG_AY3600_CONTROL_CB(READLINE(*this, bw12_state, ay3600_control_r)) - MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, bw12_state, ay3600_data_ready_w)) + AY3600(config, m_kbc, 0); + m_kbc->x0().set_ioport("X0"); + m_kbc->x1().set_ioport("X1"); + m_kbc->x2().set_ioport("X2"); + m_kbc->x3().set_ioport("X3"); + m_kbc->x4().set_ioport("X4"); + m_kbc->x5().set_ioport("X5"); + m_kbc->x6().set_ioport("X6"); + m_kbc->x7().set_ioport("X7"); + m_kbc->x8().set_ioport("X8"); + m_kbc->shift().set(FUNC(bw12_state::ay3600_shift_r)); + m_kbc->control().set(FUNC(bw12_state::ay3600_control_r)); + m_kbc->data_ready().set(FUNC(bw12_state::ay3600_data_ready_w)); MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr) MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxa_w)) diff --git a/src/mame/drivers/dbz.cpp b/src/mame/drivers/dbz.cpp index c8508b62dcd..798c7f20deb 100644 --- a/src/mame/drivers/dbz.cpp +++ b/src/mame/drivers/dbz.cpp @@ -374,8 +374,8 @@ MACHINE_CONFIG_START(dbz_state::dbz) MCFG_K053936_WRAP(1) MCFG_K053936_OFFSETS(-46, -16) - MCFG_DEVICE_ADD("k053252", K053252, 16000000/2) - MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, dbz_state, dbz_irq2_ack_w)) + K053252(config, m_k053252, 16000000/2); + m_k053252->int1_ack().set(FUNC(dbz_state::dbz_irq2_ack_w)); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/giclassic.cpp b/src/mame/drivers/giclassic.cpp index 1391bbd5c24..d21e49b1191 100644 --- a/src/mame/drivers/giclassic.cpp +++ b/src/mame/drivers/giclassic.cpp @@ -353,11 +353,8 @@ MACHINE_CONFIG_START(giclassicsvr_state::giclassvr) MCFG_K055673_CONFIG("gfx2", K055673_LAYOUT_PS, -60, 24) MCFG_K055673_PALETTE("palette") - MCFG_DEVICE_ADD("k053252a", K053252, XTAL(32'000'000)/4) - MCFG_K053252_OFFSETS(40, 16) // TODO - - MCFG_DEVICE_ADD("k053252b", K053252, XTAL(32'000'000)/4) - MCFG_K053252_OFFSETS(40, 16) // TODO + K053252(config, "k053252a", XTAL(32'000'000)/4).set_offsets(40, 16); // TODO + K053252(config, "k053252b", XTAL(32'000'000)/4).set_offsets(40, 16); // TODO MACHINE_CONFIG_END ROM_START( giclasex ) diff --git a/src/mame/drivers/gijoe.cpp b/src/mame/drivers/gijoe.cpp index 8438d5c839b..0d90c778c09 100644 --- a/src/mame/drivers/gijoe.cpp +++ b/src/mame/drivers/gijoe.cpp @@ -333,7 +333,7 @@ MACHINE_CONFIG_START(gijoe_state::gijoe) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker") + K054321(config, m_k054321, "lspeaker", "rspeaker"); MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000)) MCFG_K054539_TIMER_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI)) diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp index 23d689a92ea..ec88a735c21 100644 --- a/src/mame/drivers/gticlub.cpp +++ b/src/mame/drivers/gticlub.cpp @@ -255,6 +255,7 @@ public: m_eeprom(*this, "eeprom"), m_palette(*this, "palette"), m_konppc(*this, "konppc"), + m_k056230(*this, "k056230"), m_k001005(*this, "k001005"), m_k001006_1(*this, "k001006_1"), m_k001006_2(*this, "k001006_2"), @@ -296,6 +297,7 @@ private: required_device m_eeprom; required_device m_palette; required_device m_konppc; + required_device m_k056230; optional_device m_k001005; optional_device m_k001006_1; optional_device m_k001006_2; @@ -533,8 +535,8 @@ void gticlub_state::gticlub_map(address_map &map) map(0x78080000, 0x7808000f).rw(m_k001006_2, FUNC(k001006_device::read), FUNC(k001006_device::write)); map(0x780c0000, 0x780c0003).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_comm_r_ppc), FUNC(konppc_device::cgboard_dsp_comm_w_ppc)); map(0x7e000000, 0x7e003fff).rw(FUNC(gticlub_state::sysreg_r), FUNC(gticlub_state::sysreg_w)); - map(0x7e008000, 0x7e009fff).rw("k056230", FUNC(k056230_device::read), FUNC(k056230_device::write)); - map(0x7e00a000, 0x7e00bfff).rw("k056230", FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); + map(0x7e008000, 0x7e009fff).rw(m_k056230, FUNC(k056230_device::read), FUNC(k056230_device::write)); + map(0x7e00a000, 0x7e00bfff).rw(m_k056230, FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); map(0x7f000000, 0x7f3fffff).rom().region("user2", 0); /* Data ROM */ map(0x7f800000, 0x7f9fffff).rom().share("share2"); @@ -551,8 +553,8 @@ void gticlub_state::hangplt_map(address_map &map) map(0x78000000, 0x7800ffff).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_shared_r_ppc), FUNC(konppc_device::cgboard_dsp_shared_w_ppc)); map(0x780c0000, 0x780c0003).rw(m_konppc, FUNC(konppc_device::cgboard_dsp_comm_r_ppc), FUNC(konppc_device::cgboard_dsp_comm_w_ppc)); map(0x7e000000, 0x7e003fff).rw(FUNC(gticlub_state::sysreg_r), FUNC(gticlub_state::sysreg_w)); - map(0x7e008000, 0x7e009fff).rw("k056230", FUNC(k056230_device::read), FUNC(k056230_device::write)); - map(0x7e00a000, 0x7e00bfff).rw("k056230", FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); + map(0x7e008000, 0x7e009fff).rw(m_k056230, FUNC(k056230_device::read), FUNC(k056230_device::write)); + map(0x7e00a000, 0x7e00bfff).rw(m_k056230, FUNC(k056230_device::lanc_ram_r), FUNC(k056230_device::lanc_ram_w)); map(0x7e00c000, 0x7e00c00f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)); map(0x7f000000, 0x7f3fffff).rom().region("user2", 0); /* Data ROM */ map(0x7f800000, 0x7f9fffff).rom().share("share2"); @@ -977,8 +979,7 @@ MACHINE_CONFIG_START(gticlub_state::gticlub) m_adc1038->set_input_callback(FUNC(gticlub_state::adc1038_input_callback)); m_adc1038->set_gti_club_hack(true); - MCFG_DEVICE_ADD("k056230", K056230, 0) - MCFG_K056230_CPU("maincpu") + K056230(config, m_k056230, "maincpu"); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1030,10 +1031,7 @@ MACHINE_CONFIG_START(gticlub_state::thunderh) m_adc1038->set_gti_club_hack(false); - MCFG_DEVICE_REMOVE("k056230") - MCFG_DEVICE_ADD("k056230", K056230, 0) - MCFG_K056230_CPU("maincpu") - MCFG_K056230_HACK(1) + m_k056230->set_thunderh_hack(true); MACHINE_CONFIG_END MACHINE_CONFIG_START(gticlub_state::slrasslt) @@ -1084,8 +1082,7 @@ MACHINE_CONFIG_START(gticlub_state::hangplt) ADC1038(config, m_adc1038, 0); m_adc1038->set_input_callback(FUNC(gticlub_state::adc1038_input_callback)); - MCFG_DEVICE_ADD("k056230", K056230, 0) - MCFG_K056230_CPU("maincpu") + K056230(config, m_k056230, "maincpu"); MCFG_DEVICE_ADD("voodoo0", VOODOO_1, STD_VOODOO_1_CLOCK) MCFG_VOODOO_FBMEM(2) @@ -1101,11 +1098,8 @@ MACHINE_CONFIG_START(gticlub_state::hangplt) MCFG_VOODOO_CPU_TAG("dsp2") MCFG_VOODOO_VBLANK_CB(WRITELINE(*this, gticlub_state,voodoo_vblank_1)) - MCFG_DEVICE_ADD("k033906_1", K033906, 0) - MCFG_K033906_VOODOO("voodoo0") - - MCFG_DEVICE_ADD("k033906_2", K033906, 0) - MCFG_K033906_VOODOO("voodoo1") + K033906(config, "k033906_1", 0, "voodoo0"); + K033906(config, "k033906_2", 0, "voodoo1"); /* video hardware */ MCFG_PALETTE_ADD("palette", 65536) diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp index ba8c04a5f0d..b7e300c23f0 100644 --- a/src/mame/drivers/hazeltin.cpp +++ b/src/mame/drivers/hazeltin.cpp @@ -5,7 +5,7 @@ Hazeltine 1500 original machine (c) 1977 Hazeltine Corporation - perliminary driver by Ryan Holtz + preliminary driver by Ryan Holtz TODO (roughly in order of importance): - Figure out the correct keyboard decoding. @@ -762,19 +762,19 @@ MACHINE_CONFIG_START(hazl1500_state::hazl1500) MCFG_NETLIST_ANALOG_OUTPUT(NETLIST_TAG, "tvinterq", "tvinterq", hazl1500_state, tvinterq_cb, "") /* keyboard controller */ - MCFG_DEVICE_ADD(KBDC_TAG, AY3600, 0) - MCFG_AY3600_MATRIX_X0(IOPORT("X0")) - MCFG_AY3600_MATRIX_X1(IOPORT("X1")) - MCFG_AY3600_MATRIX_X2(IOPORT("X2")) - MCFG_AY3600_MATRIX_X3(IOPORT("X3")) - MCFG_AY3600_MATRIX_X4(IOPORT("X4")) - MCFG_AY3600_MATRIX_X5(IOPORT("X5")) - MCFG_AY3600_MATRIX_X6(IOPORT("X6")) - MCFG_AY3600_MATRIX_X7(IOPORT("X7")) - MCFG_AY3600_MATRIX_X8(IOPORT("X8")) - MCFG_AY3600_SHIFT_CB(READLINE(*this, hazl1500_state, ay3600_shift_r)) - MCFG_AY3600_CONTROL_CB(READLINE(*this, hazl1500_state, ay3600_control_r)) - MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, hazl1500_state, ay3600_data_ready_w)) + AY3600(config, m_kbdc, 0); + m_kbdc->x0().set_ioport("X0"); + m_kbdc->x1().set_ioport("X1"); + m_kbdc->x2().set_ioport("X2"); + m_kbdc->x3().set_ioport("X3"); + m_kbdc->x4().set_ioport("X4"); + m_kbdc->x5().set_ioport("X5"); + m_kbdc->x6().set_ioport("X6"); + m_kbdc->x7().set_ioport("X7"); + m_kbdc->x8().set_ioport("X8"); + m_kbdc->shift().set(FUNC(hazl1500_state::ay3600_shift_r)); + m_kbdc->control().set(FUNC(hazl1500_state::ay3600_control_r)); + m_kbdc->data_ready().set(FUNC(hazl1500_state::ay3600_data_ready_w)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/hexion.cpp b/src/mame/drivers/hexion.cpp index 95592da7c52..468e13b7c6e 100644 --- a/src/mame/drivers/hexion.cpp +++ b/src/mame/drivers/hexion.cpp @@ -261,10 +261,10 @@ MACHINE_CONFIG_START(hexion_state::hexion) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hexion_state, scanline, "screen", 0, 1) MCFG_WATCHDOG_ADD("watchdog") - MCFG_DEVICE_ADD("k053252", K053252, XTAL(24'000'000)/2) /* K053252, X0-010(?) @8D, xtal verified, divider not verified */ - MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, hexion_state, irq_ack_w)) - MCFG_K053252_INT2_ACK_CB(WRITELINE(*this, hexion_state, nmi_ack_w)) - MCFG_K053252_INT_TIME_CB(WRITE8(*this, hexion_state, ccu_int_time_w)) + K053252(config, m_k053252, XTAL(24'000'000)/2); /* K053252, X0-010(?) @8D, xtal verified, divider not verified */ + m_k053252->int1_ack().set(FUNC(hexion_state::irq_ack_w)); + m_k053252->int2_ack().set(FUNC(hexion_state::nmi_ack_w)); + m_k053252->int_time().set(FUNC(hexion_state::ccu_int_time_w)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp index 33e5ba1befb..1821febea98 100644 --- a/src/mame/drivers/hornet.cpp +++ b/src/mame/drivers/hornet.cpp @@ -1091,8 +1091,7 @@ MACHINE_CONFIG_START(hornet_state::hornet) MCFG_VOODOO_CPU_TAG("dsp") MCFG_VOODOO_VBLANK_CB(WRITELINE(*this, hornet_state,voodoo_vblank_0)) - MCFG_DEVICE_ADD("k033906_1", K033906, 0) - MCFG_K033906_VOODOO("voodoo0") + K033906(config, "k033906_1", 0, "voodoo0"); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1157,8 +1156,7 @@ MACHINE_CONFIG_START(hornet_state::hornet_2board) MCFG_VOODOO_CPU_TAG("dsp2") MCFG_VOODOO_VBLANK_CB(WRITELINE(*this, hornet_state,voodoo_vblank_1)) - MCFG_DEVICE_ADD("k033906_2", K033906, 0) - MCFG_K033906_VOODOO("voodoo1") + K033906(config, "k033906_2", 0, "voodoo1"); /* video hardware */ MCFG_PALETTE_MODIFY("palette") diff --git a/src/mame/drivers/konamigx.cpp b/src/mame/drivers/konamigx.cpp index a7278de1bfc..a606b396202 100644 --- a/src/mame/drivers/konamigx.cpp +++ b/src/mame/drivers/konamigx.cpp @@ -1624,11 +1624,11 @@ MACHINE_CONFIG_START(konamigx_state::konamigx) MCFG_DEVICE_ADD("dasp", TMS57002, MASTER_CLOCK/2) MCFG_DEVICE_DATA_MAP(gxtmsmap) - MCFG_DEVICE_ADD("k053252", K053252, MASTER_CLOCK/4) - MCFG_K053252_OFFSETS(24, 16) - MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, konamigx_state, vblank_irq_ack_w)) - MCFG_K053252_INT2_ACK_CB(WRITELINE(*this, konamigx_state, hblank_irq_ack_w)) - MCFG_VIDEO_SET_SCREEN("screen") + K053252(config, m_k053252, MASTER_CLOCK/4); + m_k053252->set_offsets(24, 16); + m_k053252->int1_ack().set(FUNC(konamigx_state::vblank_irq_ack_w)); + m_k053252->int2_ack().set(FUNC(konamigx_state::hblank_irq_ack_w)); + m_k053252->set_screen("screen"); MCFG_QUANTUM_TIME(attotime::from_hz(6000)) @@ -1736,8 +1736,7 @@ MACHINE_CONFIG_START(konamigx_state::dragoonj) MCFG_SCREEN_MODIFY("screen") MCFG_VIDEO_START_OVERRIDE(konamigx_state, dragoonj) - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_OFFSETS(24+16, 16) + m_k053252->set_offsets(24+16, 16); MCFG_DEVICE_MODIFY("k056832") MCFG_K056832_CONFIG("gfx1", K056832_BPP_5, 1, 0) @@ -1809,8 +1808,7 @@ MACHINE_CONFIG_START(konamigx_state::racinfrc) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_racinfrc) MCFG_VIDEO_START_OVERRIDE(konamigx_state, racinfrc) - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_OFFSETS(24-8+16, 0) + m_k053252->set_offsets(24-8+16, 0); MCFG_DEVICE_MODIFY("k056832") MCFG_K056832_CONFIG("gfx1", K056832_BPP_6, 0, 0) @@ -1837,9 +1835,8 @@ MACHINE_CONFIG_START(konamigx_state::gxtype3) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_type3) MCFG_VIDEO_START_OVERRIDE(konamigx_state, konamigx_type3) - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_OFFSETS(0, 16) - MCFG_K053252_SET_SLAVE_SCREEN("screen2") + m_k053252->set_offsets(0, 16); + m_k053252->set_slave_screen("screen2"); MCFG_DEVICE_MODIFY("k056832") MCFG_K056832_CONFIG("gfx1", K056832_BPP_6, 0, 2) @@ -1896,10 +1893,8 @@ MACHINE_CONFIG_START(konamigx_state::gxtype4) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_type4) MCFG_VIDEO_START_OVERRIDE(konamigx_state, konamigx_type4) - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_OFFSETS(0, 16) - MCFG_K053252_SET_SLAVE_SCREEN("screen2") - + m_k053252->set_offsets(0, 16); + m_k053252->set_slave_screen("screen2"); MCFG_DEVICE_MODIFY("k056832") MCFG_K056832_CONFIG("gfx1", K056832_BPP_8, 0, 0) @@ -1916,9 +1911,7 @@ MACHINE_CONFIG_START(konamigx_state::gxtype4_vsn) //MCFG_SCREEN_SIZE(128*8, 32*8) //MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16) - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_OFFSETS(0, 16) - + m_k053252->set_offsets(0, 16); MCFG_SCREEN_MODIFY("screen2") MCFG_SCREEN_SIZE(1024, 1024) @@ -1946,8 +1939,7 @@ MACHINE_CONFIG_START(konamigx_state::winspike) //MCFG_SCREEN_MODIFY("screen") //MCFG_SCREEN_VISIBLE_AREA(38, 38+384-1, 16, 16+224-1) - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_OFFSETS(24+15, 16) + m_k053252->set_offsets(24+15, 16); MCFG_DEVICE_MODIFY("k056832") MCFG_K056832_CB(konamigx_state, alpha_tile_callback) diff --git a/src/mame/drivers/laser3k.cpp b/src/mame/drivers/laser3k.cpp index c3da598e049..fdc27124c5f 100644 --- a/src/mame/drivers/laser3k.cpp +++ b/src/mame/drivers/laser3k.cpp @@ -995,19 +995,19 @@ MACHINE_CONFIG_START(laser3k_state::laser3k) RAM(config, "mainram").set_default_size("192K"); /* the 8048 isn't dumped, so substitute modified real Apple II h/w */ - MCFG_DEVICE_ADD("ay3600", AY3600, 0) - MCFG_AY3600_MATRIX_X0(IOPORT("X0")) - MCFG_AY3600_MATRIX_X1(IOPORT("X1")) - MCFG_AY3600_MATRIX_X2(IOPORT("X2")) - MCFG_AY3600_MATRIX_X3(IOPORT("X3")) - MCFG_AY3600_MATRIX_X4(IOPORT("X4")) - MCFG_AY3600_MATRIX_X5(IOPORT("X5")) - MCFG_AY3600_MATRIX_X6(IOPORT("X6")) - MCFG_AY3600_MATRIX_X7(IOPORT("X7")) - MCFG_AY3600_MATRIX_X8(IOPORT("X8")) - MCFG_AY3600_SHIFT_CB(READLINE(*this, laser3k_state, ay3600_shift_r)) - MCFG_AY3600_CONTROL_CB(READLINE(*this, laser3k_state, ay3600_control_r)) - MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, laser3k_state, ay3600_data_ready_w)) + AY3600(config, m_ay3600, 0); + m_ay3600->x0().set_ioport("X0"); + m_ay3600->x1().set_ioport("X1"); + m_ay3600->x2().set_ioport("X2"); + m_ay3600->x3().set_ioport("X3"); + m_ay3600->x4().set_ioport("X4"); + m_ay3600->x5().set_ioport("X5"); + m_ay3600->x6().set_ioport("X6"); + m_ay3600->x7().set_ioport("X7"); + m_ay3600->x8().set_ioport("X8"); + m_ay3600->shift().set(FUNC(laser3k_state::ay3600_shift_r)); + m_ay3600->control().set(FUNC(laser3k_state::ay3600_control_r)); + m_ay3600->data_ready().set(FUNC(laser3k_state::ay3600_data_ready_w)); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/lethal.cpp b/src/mame/drivers/lethal.cpp index 4fef5090a29..1545c1b1e8f 100644 --- a/src/mame/drivers/lethal.cpp +++ b/src/mame/drivers/lethal.cpp @@ -533,7 +533,7 @@ MACHINE_CONFIG_START(lethal_state::lethalen) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker") + K054321(config, m_k054321, "lspeaker", "rspeaker"); MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000)) MCFG_K054539_TIMER_HANDLER(INPUTLINE("soundcpu", INPUT_LINE_NMI)) diff --git a/src/mame/drivers/moo.cpp b/src/mame/drivers/moo.cpp index 6e18fbe8f27..7a95c7efafd 100644 --- a/src/mame/drivers/moo.cpp +++ b/src/mame/drivers/moo.cpp @@ -509,8 +509,8 @@ MACHINE_CONFIG_START(moo_state::moo) EEPROM_ER5911_8BIT(config, "eeprom"); - MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4) // 8MHz - MCFG_K053252_OFFSETS(40, 16) + K053252(config, m_k053252, XTAL(32'000'000)/4); // 8MHz + m_k053252->set_offsets(40, 16); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -546,7 +546,7 @@ MACHINE_CONFIG_START(moo_state::moo) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker") + K054321(config, m_k054321, "lspeaker", "rspeaker"); MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(32'000'000)/8) // 4MHz verified MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp index d1b78246187..4206ce5a508 100644 --- a/src/mame/drivers/mystwarr.cpp +++ b/src/mame/drivers/mystwarr.cpp @@ -954,8 +954,8 @@ MACHINE_CONFIG_START(mystwarr_state::mystwarr) EEPROM_ER5911_8BIT(config, "eeprom"); - MCFG_DEVICE_ADD("k053252", K053252, 6000000) // 6 MHz? - MCFG_K053252_OFFSETS(24, 16) + K053252(config, m_k053252, 6000000); // 6 MHz? + m_k053252->set_offsets(24, 16); MCFG_MACHINE_START_OVERRIDE(mystwarr_state,mystwarr) MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,mystwarr) @@ -996,7 +996,7 @@ MACHINE_CONFIG_START(mystwarr_state::mystwarr) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker") + K054321(config, m_k054321, "lspeaker", "rspeaker"); MCFG_DEVICE_ADD("k054539_1", K054539, XTAL(18'432'000)) MCFG_DEVICE_ADDRESS_MAP(0, mystwarr_k054539_map) @@ -1015,8 +1015,8 @@ MACHINE_CONFIG_START(mystwarr_state::viostorm) MCFG_MACHINE_RESET_OVERRIDE(mystwarr_state,viostorm) - MCFG_DEVICE_REPLACE("k053252", K053252, 16000000/2) - MCFG_K053252_OFFSETS(40, 16) + m_k053252->set_clock(16000000/2); + m_k053252->set_offsets(40, 16); /* basic machine hardware */ MCFG_DEVICE_MODIFY("maincpu") @@ -1053,8 +1053,7 @@ MACHINE_CONFIG_START(mystwarr_state::metamrph) MCFG_TIMER_MODIFY("scantimer") MCFG_TIMER_DRIVER_CALLBACK(mystwarr_state, metamrph_interrupt) - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_OFFSETS(24, 15) + m_k053252->set_offsets(24, 15); MCFG_K053250_ADD("k053250_1", "palette", "screen", -7, 0) @@ -1087,8 +1086,7 @@ MACHINE_CONFIG_START(mystwarr_state::dadandrn) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mystwarr_state, ddd_interrupt) MCFG_DEVICE_REMOVE("scantimer") - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_OFFSETS(24, 16+1) + m_k053252->set_offsets(24, 16+1); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dadandrn) @@ -1121,8 +1119,7 @@ MACHINE_CONFIG_START(mystwarr_state::gaiapols) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mystwarr_state, ddd_interrupt) MCFG_DEVICE_REMOVE("scantimer") - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_OFFSETS(40, 16) + m_k053252->set_offsets(40, 16); MCFG_K054000_ADD("k054000") @@ -1161,8 +1158,8 @@ MACHINE_CONFIG_START(mystwarr_state::martchmp) MCFG_DEVICE_MODIFY("soundcpu") MCFG_DEVICE_PROGRAM_MAP(martchmp_sound_map) - MCFG_DEVICE_REPLACE("k053252", K053252, 16000000/2) - MCFG_K053252_OFFSETS(32, 24-1) + m_k053252->set_clock(16000000/2); + m_k053252->set_offsets(32, 24-1); MCFG_PALETTE_MODIFY("palette") MCFG_PALETTE_FORMAT(XRGB) diff --git a/src/mame/drivers/nwk-tr.cpp b/src/mame/drivers/nwk-tr.cpp index 48d5a3c146b..6695c2b21d4 100644 --- a/src/mame/drivers/nwk-tr.cpp +++ b/src/mame/drivers/nwk-tr.cpp @@ -854,11 +854,8 @@ MACHINE_CONFIG_START(nwktr_state::nwktr) ADC12138(config, m_adc12138, 0); m_adc12138->set_ipt_convert_callback(FUNC(nwktr_state::adc12138_input_callback)); - MCFG_DEVICE_ADD("k033906_1", K033906, 0) - MCFG_K033906_VOODOO("voodoo0") - - MCFG_DEVICE_ADD("k033906_2", K033906, 0) - MCFG_K033906_VOODOO("voodoo1") + K033906(config, "k033906_1", 0, "voodoo0"); + K033906(config, "k033906_2", 0, "voodoo1"); /* video hardware */ MCFG_DEVICE_ADD("voodoo0", VOODOO_1, STD_VOODOO_1_CLOCK) diff --git a/src/mame/drivers/overdriv.cpp b/src/mame/drivers/overdriv.cpp index 8657115fdf7..cff5b92b5c0 100644 --- a/src/mame/drivers/overdriv.cpp +++ b/src/mame/drivers/overdriv.cpp @@ -377,8 +377,8 @@ MACHINE_CONFIG_START(overdriv_state::overdriv) MCFG_K053250_ADD("k053250_1", "palette", "screen", 0, 0) MCFG_K053250_ADD("k053250_2", "palette", "screen", 0, 0) - MCFG_DEVICE_ADD("k053252", K053252, XTAL(24'000'000)/4) - MCFG_K053252_OFFSETS(13*8, 2*8) + K053252(config, m_k053252, XTAL(24'000'000)/4); + m_k053252->set_offsets(13*8, 2*8); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp index 13c1294f564..824b2d40464 100644 --- a/src/mame/drivers/piratesh.cpp +++ b/src/mame/drivers/piratesh.cpp @@ -606,8 +606,8 @@ MACHINE_CONFIG_START(piratesh_state::piratesh) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4) - MCFG_K053252_OFFSETS(40, 16) // TODO + K053252(config, m_k053252, XTAL(32'000'000)/4); + m_k053252->set_offsets(40, 16); // TODO MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) diff --git a/src/mame/drivers/plygonet.cpp b/src/mame/drivers/plygonet.cpp index 223f9a387bb..61b18389a5b 100644 --- a/src/mame/drivers/plygonet.cpp +++ b/src/mame/drivers/plygonet.cpp @@ -591,7 +591,7 @@ MACHINE_CONFIG_START(polygonet_state::plygonet) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker") + K054321(config, m_k054321, "lspeaker", "rspeaker"); MCFG_DEVICE_ADD("k054539", K054539, XTAL(18'432'000)) MCFG_K054539_TIMER_HANDLER(WRITELINE(*this, polygonet_state, k054539_nmi_gen)) diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp index 7ad329fd08a..3b4765af391 100644 --- a/src/mame/drivers/poly.cpp +++ b/src/mame/drivers/poly.cpp @@ -301,18 +301,18 @@ MACHINE_CONFIG_START(poly_state::poly) //m_ptm->irq_callback().set("irqs", FUNC(input_merger_device::in_w<1>)); /* keyboard encoder */ - //MCFG_DEVICE_ADD("kr2376", KR2376_12, 50000) - //MCFG_KR2376_MATRIX_X0(IOPORT("X0")) - //MCFG_KR2376_MATRIX_X1(IOPORT("X1")) - //MCFG_KR2376_MATRIX_X2(IOPORT("X2")) - //MCFG_KR2376_MATRIX_X3(IOPORT("X3")) - //MCFG_KR2376_MATRIX_X4(IOPORT("X4")) - //MCFG_KR2376_MATRIX_X5(IOPORT("X5")) - //MCFG_KR2376_MATRIX_X6(IOPORT("X6")) - //MCFG_KR2376_MATRIX_X7(IOPORT("X7")) - //MCFG_KR2376_SHIFT_CB(READLINE(*this, poly_state, kbd_shift_r)) - //MCFG_KR2376_CONTROL_CB(READLINE(*this, poly_state, kbd_control_r)) - //MCFG_KR2376_STROBE_CB(WRITELINE("pia1", pia6821_device, cb1_w)) + //KR2376_12(config, m_kr2376, 50000); + //m_kr2376->x<0>().set_ioport("X0"); + //m_kr2376->x<1>().set_ioport("X1"); + //m_kr2376->x<2>().set_ioport("X2"); + //m_kr2376->x<3>().set_ioport("X3"); + //m_kr2376->x<4>().set_ioport("X4"); + //m_kr2376->x<5>().set_ioport("X5"); + //m_kr2376->x<6>().set_ioport("X6"); + //m_kr2376->x<7>().set_ioport("X7"); + //m_kr2376->shift().set(FUNC(poly_state::kbd_shift_r)); + //m_kr2376->control().set(FUNC(poly_state::kbd_control_r)); + //m_kr2376->strobe().set("pia1", FUNC(pia6821_device::cb1_w)); /* generic keyboard until ROM in KR2376-12 is known */ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) diff --git a/src/mame/drivers/qdrmfgp.cpp b/src/mame/drivers/qdrmfgp.cpp index ef08a1191e5..8ef7abaf449 100644 --- a/src/mame/drivers/qdrmfgp.cpp +++ b/src/mame/drivers/qdrmfgp.cpp @@ -555,8 +555,8 @@ MACHINE_CONFIG_START(qdrmfgp_state::qdrmfgp) MCFG_K056832_CONFIG("gfx1", K056832_BPP_4dj, 1, 0) MCFG_K056832_PALETTE("palette") - MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4) - MCFG_K053252_OFFSETS(40, 16) + K053252(config, m_k053252, XTAL(32'000'000)/4); + m_k053252->set_offsets(40, 16); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -601,8 +601,8 @@ MACHINE_CONFIG_START(qdrmfgp_state::qdrmfgp2) MCFG_K056832_CONFIG("gfx1", K056832_BPP_4dj, 1, 0) MCFG_K056832_PALETTE("palette") - MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4) - MCFG_K053252_OFFSETS(40, 16) + K053252(config, m_k053252, XTAL(32'000'000)/4); + m_k053252->set_offsets(40, 16); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/quickpick5.cpp b/src/mame/drivers/quickpick5.cpp index 748792ef19d..4e1ef607d08 100644 --- a/src/mame/drivers/quickpick5.cpp +++ b/src/mame/drivers/quickpick5.cpp @@ -406,10 +406,10 @@ MACHINE_CONFIG_START(quickpick5_state::quickpick5) MCFG_DEVICE_PROGRAM_MAP(quickpick5_main) MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", quickpick5_state, scanline, "screen", 0, 1) - MCFG_DEVICE_ADD("k053252", K053252, XTAL(32'000'000)/4) /* K053252, xtal verified, divider not verified */ - MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, quickpick5_state, vbl_ack_w)) - MCFG_K053252_INT2_ACK_CB(WRITELINE(*this, quickpick5_state, nmi_ack_w)) - MCFG_K053252_INT_TIME_CB(WRITE8(*this, quickpick5_state, ccu_int_time_w)) + K053252(config, m_k053252, XTAL(32'000'000)/4); /* K053252, xtal verified, divider not verified */ + m_k053252->int1_ack().set(FUNC(quickpick5_state::vbl_ack_w)); + m_k053252->int2_ack().set(FUNC(quickpick5_state::nmi_ack_w)); + m_k053252->int_time().set(FUNC(quickpick5_state::ccu_int_time_w)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/rollerg.cpp b/src/mame/drivers/rollerg.cpp index 2ab7515783f..3acb0a132b6 100644 --- a/src/mame/drivers/rollerg.cpp +++ b/src/mame/drivers/rollerg.cpp @@ -281,9 +281,9 @@ MACHINE_CONFIG_START(rollerg_state::rollerg) MCFG_K051316_OFFSETS(22, 1) MCFG_K051316_CB(rollerg_state, zoom_callback) - MCFG_DEVICE_ADD("k053252", K053252, 3000000*2) - MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, rollerg_state,rollerg_irq_ack_w)) - MCFG_K053252_OFFSETS(14*8, 2*8) + K053252(config, m_k053252, 3000000*2); + m_k053252->int1_ack().set(FUNC(rollerg_state::rollerg_irq_ack_w)); + m_k053252->set_offsets(14*8, 2*8); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/rungun.cpp b/src/mame/drivers/rungun.cpp index 493344aefcb..7a053fed964 100644 --- a/src/mame/drivers/rungun.cpp +++ b/src/mame/drivers/rungun.cpp @@ -438,9 +438,9 @@ MACHINE_CONFIG_START(rungun_state::rng) MCFG_K055673_PALETTE("palette") MCFG_K055673_SET_SCREEN("screen") - MCFG_DEVICE_ADD("k053252", K053252, 16000000/2) - MCFG_K053252_OFFSETS(9*8, 24) - MCFG_VIDEO_SET_SCREEN("screen") + K053252(config, m_k053252, 16000000/2); + m_k053252->set_offsets(9*8, 24); + m_k053252->set_screen("screen"); MCFG_PALETTE_ADD("palette2", 1024) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) @@ -451,7 +451,7 @@ MACHINE_CONFIG_START(rungun_state::rng) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker") + K054321(config, m_k054321, "lspeaker", "rspeaker"); // SFX MCFG_DEVICE_ADD("k054539_1", K054539, 18.432_MHz_XTAL) @@ -484,9 +484,7 @@ MACHINE_CONFIG_START(rungun_state::rng_dual) MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng_dual_right) MCFG_SCREEN_PALETTE("palette2") - - MCFG_DEVICE_MODIFY("k053252") - MCFG_K053252_SET_SLAVE_SCREEN("demultiplex2") + m_k053252->set_slave_screen("demultiplex2"); MACHINE_CONFIG_END diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp index d05d8fc44f7..655dc94105d 100644 --- a/src/mame/drivers/tasman.cpp +++ b/src/mame/drivers/tasman.cpp @@ -654,11 +654,11 @@ MACHINE_CONFIG_START(kongambl_state::kongambl) MCFG_DEVICE_PROGRAM_MAP(kongamaud_map) MCFG_DEVICE_PERIODIC_INT_DRIVER(kongambl_state, irq2_line_hold, 480) - MCFG_DEVICE_ADD("k053252", K053252, 25000000) - MCFG_K053252_OFFSETS(0, 16) // TBD - MCFG_K053252_INT1_ACK_CB(WRITELINE(*this, kongambl_state, vblank_irq_ack_w)) - MCFG_K053252_INT2_ACK_CB(WRITELINE(*this, kongambl_state, hblank_irq_ack_w)) - MCFG_VIDEO_SET_SCREEN("screen") + K053252(config, m_k053252, 25000000); + m_k053252->set_offsets(0, 16); // TBD + m_k053252->int1_ack().set(FUNC(kongambl_state::vblank_irq_ack_w)); + m_k053252->int2_ack().set(FUNC(kongambl_state::hblank_irq_ack_w)); + m_k053252->set_screen("screen"); EEPROM_93C46_16BIT(config, "eeprom"); diff --git a/src/mame/drivers/tv910.cpp b/src/mame/drivers/tv910.cpp index 42938bbd6a8..f54b96d5a98 100644 --- a/src/mame/drivers/tv910.cpp +++ b/src/mame/drivers/tv910.cpp @@ -528,20 +528,20 @@ MACHINE_CONFIG_START(tv910_state::tv910) MCFG_MC6845_ADDR_CHANGED_CB(tv910_state, crtc_update_addr) MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, tv910_state, vbl_w)) - MCFG_DEVICE_ADD(KBDC_TAG, AY3600, 0) - MCFG_AY3600_MATRIX_X0(IOPORT("X0")) - MCFG_AY3600_MATRIX_X1(IOPORT("X1")) - MCFG_AY3600_MATRIX_X2(IOPORT("X2")) - MCFG_AY3600_MATRIX_X3(IOPORT("X3")) - MCFG_AY3600_MATRIX_X4(IOPORT("X4")) - MCFG_AY3600_MATRIX_X5(IOPORT("X5")) - MCFG_AY3600_MATRIX_X6(IOPORT("X6")) - MCFG_AY3600_MATRIX_X7(IOPORT("X7")) - MCFG_AY3600_MATRIX_X8(IOPORT("X8")) - MCFG_AY3600_SHIFT_CB(READLINE(*this, tv910_state, ay3600_shift_r)) - MCFG_AY3600_CONTROL_CB(READLINE(*this, tv910_state, ay3600_control_r)) - MCFG_AY3600_DATA_READY_CB(WRITELINE(*this, tv910_state, ay3600_data_ready_w)) - MCFG_AY3600_AKO_CB(WRITELINE(*this, tv910_state, ay3600_ako_w)) + AY3600(config, m_ay3600, 0); + m_ay3600->x0().set_ioport("X0"); + m_ay3600->x1().set_ioport("X1"); + m_ay3600->x2().set_ioport("X2"); + m_ay3600->x3().set_ioport("X3"); + m_ay3600->x4().set_ioport("X4"); + m_ay3600->x5().set_ioport("X5"); + m_ay3600->x6().set_ioport("X6"); + m_ay3600->x7().set_ioport("X7"); + m_ay3600->x8().set_ioport("X8"); + m_ay3600->shift().set(FUNC(tv910_state::ay3600_shift_r)); + m_ay3600->control().set(FUNC(tv910_state::ay3600_control_r)); + m_ay3600->data_ready().set(FUNC(tv910_state::ay3600_data_ready_w)); + m_ay3600->ako().set(FUNC(tv910_state::ay3600_ako_w)); mos6551_device &acia(MOS6551(config, ACIA_TAG, 0)); acia.set_xtal(1.8432_MHz_XTAL); diff --git a/src/mame/drivers/vendetta.cpp b/src/mame/drivers/vendetta.cpp index 25b99533779..b4c96d7bb4a 100644 --- a/src/mame/drivers/vendetta.cpp +++ b/src/mame/drivers/vendetta.cpp @@ -507,8 +507,7 @@ MACHINE_CONFIG_START(vendetta_state::esckids) MCFG_DEVICE_MODIFY("k053246") MCFG_K053246_CONFIG("gfx2", NORMAL_PLANE_ORDER, 101, 6) - MCFG_DEVICE_ADD("k053252", K053252, 6000000) - MCFG_K053252_OFFSETS(12*8, 1*8) + K053252(config, "k053252", 6000000).set_offsets(12*8, 1*8); MACHINE_CONFIG_END diff --git a/src/mame/drivers/xexex.cpp b/src/mame/drivers/xexex.cpp index 45db683606c..69cb64fc868 100644 --- a/src/mame/drivers/xexex.cpp +++ b/src/mame/drivers/xexex.cpp @@ -521,7 +521,7 @@ MACHINE_CONFIG_START(xexex_state::xexex) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker") + K054321(config, m_k054321, "lspeaker", "rspeaker"); MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(32'000'000)/8) // 4MHz MCFG_SOUND_ROUTE(0, "filter1_l", 0.50) diff --git a/src/mame/drivers/xmen.cpp b/src/mame/drivers/xmen.cpp index d11a02fbc78..25e3b5a4ab0 100644 --- a/src/mame/drivers/xmen.cpp +++ b/src/mame/drivers/xmen.cpp @@ -340,7 +340,7 @@ MACHINE_CONFIG_START(xmen_state::xmen) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker") + K054321(config, m_k054321, "lspeaker", "rspeaker"); MCFG_DEVICE_ADD("ymsnd", YM2151, XTAL(16'000'000)/4) /* verified on pcb */ MCFG_SOUND_ROUTE(0, "lspeaker", 0.20) @@ -402,7 +402,7 @@ MACHINE_CONFIG_START(xmen_state::xmen6p) MCFG_K053251_ADD("k053251") - MCFG_K054321_ADD("k054321", "lspeaker", "rspeaker") + K054321(config, m_k054321, "lspeaker", "rspeaker"); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/z80ne.cpp b/src/mame/drivers/z80ne.cpp index 6dd0a0f9907..786a1d8dd43 100644 --- a/src/mame/drivers/z80ne.cpp +++ b/src/mame/drivers/z80ne.cpp @@ -455,17 +455,17 @@ MACHINE_CONFIG_START(z80ne_state::z80net) MCFG_MACHINE_START_OVERRIDE(z80ne_state, z80net ) MCFG_MACHINE_RESET_OVERRIDE(z80ne_state, z80net ) - MCFG_DEVICE_ADD("lx387_kr2376", KR2376_ST, 50000) - MCFG_KR2376_MATRIX_X0(IOPORT("X0")) - MCFG_KR2376_MATRIX_X1(IOPORT("X1")) - MCFG_KR2376_MATRIX_X2(IOPORT("X2")) - MCFG_KR2376_MATRIX_X3(IOPORT("X3")) - MCFG_KR2376_MATRIX_X4(IOPORT("X4")) - MCFG_KR2376_MATRIX_X5(IOPORT("X5")) - MCFG_KR2376_MATRIX_X6(IOPORT("X6")) - MCFG_KR2376_MATRIX_X7(IOPORT("X7")) - MCFG_KR2376_SHIFT_CB(READLINE(*this, z80ne_state, lx387_shift_r)) - MCFG_KR2376_CONTROL_CB(READLINE(*this, z80ne_state, lx387_control_r)) + KR2376_ST(config, m_lx387_kr2376, 50000); + m_lx387_kr2376->x<0>().set_ioport("X0"); + m_lx387_kr2376->x<1>().set_ioport("X1"); + m_lx387_kr2376->x<2>().set_ioport("X2"); + m_lx387_kr2376->x<3>().set_ioport("X3"); + m_lx387_kr2376->x<4>().set_ioport("X4"); + m_lx387_kr2376->x<5>().set_ioport("X5"); + m_lx387_kr2376->x<6>().set_ioport("X6"); + m_lx387_kr2376->x<7>().set_ioport("X7"); + m_lx387_kr2376->shift().set(FUNC(z80ne_state::lx387_shift_r)); + m_lx387_kr2376->control().set(FUNC(z80ne_state::lx387_control_r)); /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD("lx388", "mc6847") @@ -504,17 +504,17 @@ MACHINE_CONFIG_START(z80ne_state::z80netb) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) MCFG_CASSETTE_INTERFACE("z80ne_cass") - MCFG_DEVICE_ADD("lx387_kr2376", KR2376_ST, 50000) - MCFG_KR2376_MATRIX_X0(IOPORT("X0")) - MCFG_KR2376_MATRIX_X1(IOPORT("X1")) - MCFG_KR2376_MATRIX_X2(IOPORT("X2")) - MCFG_KR2376_MATRIX_X3(IOPORT("X3")) - MCFG_KR2376_MATRIX_X4(IOPORT("X4")) - MCFG_KR2376_MATRIX_X5(IOPORT("X5")) - MCFG_KR2376_MATRIX_X6(IOPORT("X6")) - MCFG_KR2376_MATRIX_X7(IOPORT("X7")) - MCFG_KR2376_SHIFT_CB(READLINE(*this, z80ne_state, lx387_shift_r)) - MCFG_KR2376_CONTROL_CB(READLINE(*this, z80ne_state, lx387_control_r)) + KR2376_ST(config, m_lx387_kr2376, 50000); + m_lx387_kr2376->x<0>().set_ioport("X0"); + m_lx387_kr2376->x<1>().set_ioport("X1"); + m_lx387_kr2376->x<2>().set_ioport("X2"); + m_lx387_kr2376->x<3>().set_ioport("X3"); + m_lx387_kr2376->x<4>().set_ioport("X4"); + m_lx387_kr2376->x<5>().set_ioport("X5"); + m_lx387_kr2376->x<6>().set_ioport("X6"); + m_lx387_kr2376->x<7>().set_ioport("X7"); + m_lx387_kr2376->shift().set(FUNC(z80ne_state::lx387_shift_r)); + m_lx387_kr2376->control().set(FUNC(z80ne_state::lx387_control_r)); /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD("lx388", "mc6847") @@ -553,7 +553,7 @@ MACHINE_CONFIG_START(z80netf_state::z80netf) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED) MCFG_CASSETTE_INTERFACE("z80ne_cass") - MCFG_DEVICE_ADD("lx387_kr2376", KR2376_ST, 50000) + KR2376_ST(config, m_lx387_kr2376, 50000); /* video hardware */ MCFG_SCREEN_MC6847_PAL_ADD("lx388", "mc6847") diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp index 78b363e052c..ca5202ec3ad 100644 --- a/src/mame/drivers/zr107.cpp +++ b/src/mame/drivers/zr107.cpp @@ -786,8 +786,7 @@ MACHINE_CONFIG_START(zr107_state::zr107) EEPROM_93C46_16BIT(config, "eeprom"); - MCFG_DEVICE_ADD("k056230", K056230, 0) - MCFG_K056230_CPU("maincpu") + K056230(config, "k056230", "maincpu"); MCFG_WATCHDOG_ADD("watchdog") @@ -857,8 +856,7 @@ MACHINE_CONFIG_START(zr107_state::jetwave) EEPROM_93C46_16BIT(config, "eeprom"); - MCFG_DEVICE_ADD("k056230", K056230, 0) - MCFG_K056230_CPU("maincpu") + K056230(config, "k056230", "maincpu"); MCFG_WATCHDOG_ADD("watchdog")