From d80de5bcfbeb3a08051079fea98cce46e02850fa Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Thu, 17 Jan 2019 19:14:16 +0100 Subject: devices\machine\myb3k_kbd: removed MCFG macro (nw) --- src/devices/machine/myb3k_kbd.h | 18 ++++++++++++------ src/mame/drivers/myb3k.cpp | 25 +++++++++++++------------ 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/src/devices/machine/myb3k_kbd.h b/src/devices/machine/myb3k_kbd.h index 747289a53f1..f43fc75bc67 100644 --- a/src/devices/machine/myb3k_kbd.h +++ b/src/devices/machine/myb3k_kbd.h @@ -24,11 +24,6 @@ #pragma once -#define MYB3K_KBD_CB_PUT(cls, fnc) myb3k_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), DEVICE_SELF, ((cls *)nullptr)) -#define MYB3K_KBD_CB_DEVPUT(tag, cls, fnc) myb3k_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), (tag), ((cls *)nullptr)) - -#define MCFG_MYB3K_KEYBOARD_CB(cb) downcast(*device).set_keyboard_callback((MYB3K_KBD_CB_##cb)); - DECLARE_DEVICE_TYPE(MYB3K_KEYBOARD, myb3k_keyboard_device) DECLARE_DEVICE_TYPE(JB3000_KEYBOARD, jb3000_keyboard_device) DECLARE_DEVICE_TYPE(STEPONE_KEYBOARD, stepone_keyboard_device) @@ -51,7 +46,18 @@ public: TIMER_ID_SECOND_BYTE }; - template void set_keyboard_callback(Object &&cb) { m_keyboard_cb = std::forward(cb); } + template + void set_keyboard_callback(void (FunctionClass::*callback)(u8 character), const char *name) + { + set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast(nullptr))); + } + // FIXME: this should be aware of current device for resolving the tag + template + void set_keyboard_callback(const char *devname, void (FunctionClass::*callback)(u8 character), const char *name) + { + set_keyboard_callback(output_delegate(callback, name, devname, static_cast(nullptr))); + } + void set_keyboard_callback(output_delegate callback) { m_keyboard_cb = callback; } protected: myb3k_keyboard_device( diff --git a/src/mame/drivers/myb3k.cpp b/src/mame/drivers/myb3k.cpp index 8581c56f6d5..7d9403e8fec 100644 --- a/src/mame/drivers/myb3k.cpp +++ b/src/mame/drivers/myb3k.cpp @@ -1017,8 +1017,8 @@ MACHINE_CONFIG_START(myb3k_state::myb3k) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* Keyboard */ - MCFG_DEVICE_ADD("myb3k_keyboard", MYB3K_KEYBOARD, 0) - MCFG_MYB3K_KEYBOARD_CB(PUT(myb3k_state, kbd_set_data_and_interrupt)) + MYB3K_KEYBOARD(config, m_kb, 0); + m_kb->set_keyboard_callback(FUNC(myb3k_state::kbd_set_data_and_interrupt)); /* Monitor */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1026,23 +1026,24 @@ MACHINE_CONFIG_START(myb3k_state::myb3k) MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update) MACHINE_CONFIG_END -MACHINE_CONFIG_START(myb3k_state::jb3000) +void myb3k_state::jb3000(machine_config &config) +{ myb3k(config); /* Keyboard */ - MCFG_DEVICE_REPLACE("myb3k_keyboard", JB3000_KEYBOARD, 0) - MCFG_MYB3K_KEYBOARD_CB(PUT(myb3k_state, kbd_set_data_and_interrupt)) - -MACHINE_CONFIG_END + JB3000_KEYBOARD(config.replace(), m_kb, 0); + m_kb->set_keyboard_callback(FUNC(myb3k_state::kbd_set_data_and_interrupt)); +} -MACHINE_CONFIG_START(myb3k_state::stepone) +void myb3k_state::stepone(machine_config &config) +{ myb3k(config); /* Keyboard */ - MCFG_DEVICE_REPLACE("myb3k_keyboard", STEPONE_KEYBOARD, 0) - MCFG_MYB3K_KEYBOARD_CB(PUT(myb3k_state, kbd_set_data_and_interrupt)) + STEPONE_KEYBOARD(config.replace(), m_kb, 0); + m_kb->set_keyboard_callback(FUNC(myb3k_state::kbd_set_data_and_interrupt)); /* software lists */ - MCFG_SOFTWARE_LIST_ADD("stepone_flop_list", "stepone_flop") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "stepone_flop_list").set_original("stepone_flop"); +} /* ROM definitions, ROM area is 8 x 8Kb and can be populated with 2732 mask ROMs or 2764s */ ROM_START( myb3k ) -- cgit v1.2.3