Skip to content

Commit

Permalink
devices\machine\myb3k_kbd: removed MCFG macro (nw)
Browse files Browse the repository at this point in the history
  • Loading branch information
Osso13 committed Jan 17, 2019
1 parent c1afd51 commit d80de5b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 18 deletions.
18 changes: 12 additions & 6 deletions src/devices/machine/myb3k_kbd.h
Expand Up @@ -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<myb3k_keyboard_device &>(*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)
Expand All @@ -51,7 +46,18 @@ class myb3k_keyboard_device : public device_t
TIMER_ID_SECOND_BYTE
};

template <class Object> void set_keyboard_callback(Object &&cb) { m_keyboard_cb = std::forward<Object>(cb); }
template <class FunctionClass>
void set_keyboard_callback(void (FunctionClass::*callback)(u8 character), const char *name)
{
set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
}
// FIXME: this should be aware of current device for resolving the tag
template <class FunctionClass>
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<FunctionClass *>(nullptr)));
}
void set_keyboard_callback(output_delegate callback) { m_keyboard_cb = callback; }

protected:
myb3k_keyboard_device(
Expand Down
25 changes: 13 additions & 12 deletions src/mame/drivers/myb3k.cpp
Expand Up @@ -1017,32 +1017,33 @@ 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)
MCFG_SCREEN_RAW_PARAMS(XTAL(14'318'181) / 3, 600, 0, 600, 400, 0, 400)
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 )
Expand Down

0 comments on commit d80de5b

Please sign in to comment.