From ff08c8cd4eb7004bac71652421b4aea987f5c468 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Tue, 11 Dec 2018 18:17:20 +0100 Subject: machine/keyboard, terminal: removed MCFG macros (nw) --- src/devices/bus/ecbbus/grip.cpp | 4 ++-- src/devices/bus/vip/vp620.cpp | 9 +++++---- src/devices/machine/keyboard.h | 25 ++++++++++++------------- src/devices/machine/terminal.cpp | 4 ++-- src/devices/machine/terminal.h | 21 ++++++++++++--------- src/mame/drivers/abc80.cpp | 4 ++-- src/mame/drivers/acrnsys.cpp | 30 +++++++++++++++++------------- src/mame/drivers/atlantis.cpp | 10 +++++----- src/mame/drivers/basic52.cpp | 2 +- src/mame/drivers/besta.cpp | 17 +++++++++-------- src/mame/drivers/bigbord2.cpp | 4 ++-- src/mame/drivers/binbug.cpp | 4 ++-- src/mame/drivers/cd2650.cpp | 4 ++-- src/mame/drivers/cgc7900.cpp | 4 ++-- src/mame/drivers/chaos.cpp | 4 ++-- src/mame/drivers/cortex.cpp | 17 +++++++++-------- src/mame/drivers/cxhumax.cpp | 2 +- src/mame/drivers/czk80.cpp | 19 ++++++++++--------- src/mame/drivers/d6809.cpp | 4 ++-- src/mame/drivers/dccons.cpp | 3 ++- src/mame/drivers/dim68k.cpp | 4 ++-- src/mame/drivers/dm7000.cpp | 4 ++-- src/mame/drivers/dms86.cpp | 9 +++++---- src/mame/drivers/dual68.cpp | 4 ++-- src/mame/drivers/ec65.cpp | 12 ++++++------ src/mame/drivers/eurocom2.cpp | 4 ++-- src/mame/drivers/evmbug.cpp | 11 ++++++----- src/mame/drivers/gridcomp.cpp | 4 ++-- src/mame/drivers/imsai.cpp | 17 +++++++++-------- src/mame/drivers/ipds.cpp | 4 ++-- src/mame/drivers/jonos.cpp | 4 ++-- src/mame/drivers/jupiter.cpp | 4 ++-- src/mame/drivers/konamim2.cpp | 2 +- src/mame/drivers/llc.cpp | 4 ++-- src/mame/drivers/mbc200.cpp | 4 ++-- src/mame/drivers/mes.cpp | 4 ++-- src/mame/drivers/mod8.cpp | 4 ++-- src/mame/drivers/modellot.cpp | 4 ++-- src/mame/drivers/ms9540.cpp | 14 +++++++------- src/mame/drivers/naomi.cpp | 3 ++- src/mame/drivers/okean240.cpp | 4 ++-- src/mame/drivers/olyboss.cpp | 8 ++++---- src/mame/drivers/olytext.cpp | 4 ++-- src/mame/drivers/patinho_feio.cpp | 16 ++++++++-------- src/mame/drivers/pdp11.cpp | 9 +++++---- src/mame/drivers/pes.cpp | 2 +- src/mame/drivers/phunsy.cpp | 4 ++-- src/mame/drivers/poly.cpp | 4 ++-- src/mame/drivers/proteus3.cpp | 4 ++-- src/mame/drivers/ptcsol.cpp | 4 ++-- src/mame/drivers/ravens.cpp | 4 ++-- src/mame/drivers/rc702.cpp | 4 ++-- src/mame/drivers/rc759.cpp | 4 ++-- src/mame/drivers/rm380z.cpp | 8 ++++---- src/mame/drivers/rvoice.cpp | 22 +++++++++++----------- src/mame/drivers/sacstate.cpp | 15 ++++++++------- src/mame/drivers/sapi1.cpp | 15 ++++++++------- src/mame/drivers/sbc6510.cpp | 2 +- src/mame/drivers/tavernie.cpp | 4 ++-- src/mame/drivers/tk80bs.cpp | 4 ++-- src/mame/drivers/trs80m2.cpp | 8 ++++---- src/mame/drivers/ts802.cpp | 9 +++++---- src/mame/drivers/ts816.cpp | 9 +++++---- src/mame/drivers/v6809.cpp | 4 ++-- src/mame/drivers/vax11.cpp | 9 +++++---- src/mame/drivers/votrpss.cpp | 4 ++-- src/mame/drivers/z9001.cpp | 4 ++-- src/mame/drivers/zrt80.cpp | 2 +- src/mame/includes/dc.h | 3 +-- src/mame/machine/dc.cpp | 12 +++++++----- src/mame/machine/gridkeyb.h | 19 ++++++------------- src/mame/machine/maple-dc.cpp | 11 +++++------ src/mame/machine/maple-dc.h | 26 +++++++++++++++----------- src/mame/machine/teleprinter.cpp | 4 ++-- src/mame/machine/teleprinter.h | 3 --- 75 files changed, 297 insertions(+), 282 deletions(-) diff --git a/src/devices/bus/ecbbus/grip.cpp b/src/devices/bus/ecbbus/grip.cpp index fab96c31634..655710cd0d5 100644 --- a/src/devices/bus/ecbbus/grip.cpp +++ b/src/devices/bus/ecbbus/grip.cpp @@ -458,8 +458,8 @@ MACHINE_CONFIG_START(ecb_grip21_device::device_add_mconfig) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(ecb_grip21_device, kb_w)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(ecb_grip21_device::kb_w)); MACHINE_CONFIG_END diff --git a/src/devices/bus/vip/vp620.cpp b/src/devices/bus/vip/vp620.cpp index 66e057fa084..643a8856481 100644 --- a/src/devices/bus/vip/vp620.cpp +++ b/src/devices/bus/vip/vp620.cpp @@ -36,10 +36,11 @@ void vp620_device::kb_w(uint8_t data) // MACHINE_CONFIG_START( vp620 ) //------------------------------------------------- -MACHINE_CONFIG_START(vp620_device::device_add_mconfig) - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(vp620_device, kb_w)) -MACHINE_CONFIG_END +void vp620_device::device_add_mconfig(machine_config &config) +{ + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(vp620_device::kb_w)); +} diff --git a/src/devices/machine/keyboard.h b/src/devices/machine/keyboard.h index 247560b3dbb..4788d51f33b 100644 --- a/src/devices/machine/keyboard.h +++ b/src/devices/machine/keyboard.h @@ -6,18 +6,6 @@ #pragma once -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define KEYBOARDCB_PUT(cls, fnc) generic_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), DEVICE_SELF, ((cls *)nullptr)) -#define KEYBOARDCB_DEVPUT(tag, cls, fnc) generic_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), (tag), ((cls *)nullptr)) - -#define MCFG_GENERIC_KEYBOARD_CB(cb) \ - downcast(*device).set_keyboard_callback((KEYBOARDCB_##cb)); - - - /*************************************************************************** DEVICE TYPE GLOBALS ***************************************************************************/ @@ -91,7 +79,18 @@ public: device_t *owner, u32 clock); - 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; } virtual ioport_constructor device_input_ports() const override; diff --git a/src/devices/machine/terminal.cpp b/src/devices/machine/terminal.cpp index 2d18fd50a90..be9b501c687 100644 --- a/src/devices/machine/terminal.cpp +++ b/src/devices/machine/terminal.cpp @@ -334,8 +334,8 @@ MACHINE_CONFIG_START(generic_terminal_device::device_add_mconfig) MCFG_SCREEN_VISIBLE_AREA(0, generic_terminal_device::TERMINAL_WIDTH*8-1, 0, generic_terminal_device::TERMINAL_HEIGHT*10-1) MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, generic_terminal_device, update) - MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(generic_terminal_device, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0)); + keyboard.set_keyboard_callback(FUNC(generic_terminal_device::kbd_put)); SPEAKER(config, "bell").front_center(); MCFG_DEVICE_ADD("beeper", BEEP, 2'000) diff --git a/src/devices/machine/terminal.h b/src/devices/machine/terminal.h index e200de29cd6..bf2f81c07f7 100644 --- a/src/devices/machine/terminal.h +++ b/src/devices/machine/terminal.h @@ -12,14 +12,6 @@ #define TERMINAL_SCREEN_TAG "terminal_screen" -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define MCFG_GENERIC_TERMINAL_KEYBOARD_CB(cb) \ - downcast(*device).set_keyboard_callback((KEYBOARDCB_##cb)); - - /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ @@ -31,7 +23,18 @@ class generic_terminal_device : public device_t public: generic_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - 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(generic_keyboard_device::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(generic_keyboard_device::output_delegate(callback, name, devname, static_cast(nullptr))); + } + void set_keyboard_callback(generic_keyboard_device::output_delegate callback) { m_keyboard_cb = callback; } DECLARE_WRITE8_MEMBER(write) { term_write(data); } diff --git a/src/mame/drivers/abc80.cpp b/src/mame/drivers/abc80.cpp index 957288239c4..1508992d2d6 100644 --- a/src/mame/drivers/abc80.cpp +++ b/src/mame/drivers/abc80.cpp @@ -528,8 +528,8 @@ MACHINE_CONFIG_START(abc80_state::abc80) MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abc80_cards, "abcexp") RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr); - MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(abc80_state, kbd_w)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0)); + keyboard.set_keyboard_callback(FUNC(abc80_state::kbd_w)); MCFG_QUICKLOAD_ADD("quickload", abc80_state, bac, "bac", 2) diff --git a/src/mame/drivers/acrnsys.cpp b/src/mame/drivers/acrnsys.cpp index dff9c24849e..f24b1a4f120 100644 --- a/src/mame/drivers/acrnsys.cpp +++ b/src/mame/drivers/acrnsys.cpp @@ -360,7 +360,8 @@ void acrnsys_state::kbd_put_pb(uint8_t data) 6502 CPU Board - Part No. 200,000 ***************************************************************************/ -MACHINE_CONFIG_START(acrnsys_state::a6502) +void acrnsys_state::a6502(machine_config &config) +{ M6502(config, m_maincpu, 24_MHz_XTAL / 12); /* 1MHz 6502 CPU */ m_maincpu->set_addrmap(AS_PROGRAM, &acrnsys_state::a6502_mem); @@ -371,16 +372,17 @@ MACHINE_CONFIG_START(acrnsys_state::a6502) //m_ins8154->out_a().set(FUNC(acrnsys_state::ins8154_pa_w)); m_ins8154->in_b().set(FUNC(acrnsys_state::kbd_r)); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(acrnsys_state, kbd_put)) -MACHINE_CONFIG_END + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(acrnsys_state::kbd_put)); +} /*************************************************************************** 6502A CPU Board - Part No. 200,005 ***************************************************************************/ -MACHINE_CONFIG_START(acrnsys_state::a6502a) +void acrnsys_state::a6502a(machine_config &config) +{ M6502(config, m_maincpu, 24_MHz_XTAL / 12); /* 2MHz 6502A CPU */ m_maincpu->set_addrmap(AS_PROGRAM, &acrnsys_state::a6502a_mem); @@ -391,16 +393,17 @@ MACHINE_CONFIG_START(acrnsys_state::a6502a) //m_via6522->cb2_handler().set(FUNC(acrnsys_state::cass_w)); m_via6522->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<0>)); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(acrnsys_state, kbd_put)) -MACHINE_CONFIG_END + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(acrnsys_state::kbd_put)); +} /*************************************************************************** 6809 CPU Board - Part No. 200,012 ***************************************************************************/ -MACHINE_CONFIG_START(acrnsys_state::a6809) +void acrnsys_state::a6809(machine_config &config) +{ MC6809(config, m_maincpu, 4_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &acrnsys_state::a6809_mem); @@ -415,11 +418,12 @@ MACHINE_CONFIG_START(acrnsys_state::a6809) CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->ack_handler().set(m_via6522, FUNC(via6522_device::write_ca1)); m_centronics->busy_handler().set(m_via6522, FUNC(via6522_device::write_pa7)); - MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") + output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out")); + m_centronics->set_output_latch(latch); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(acrnsys_state, kbd_put_pb)) -MACHINE_CONFIG_END + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(acrnsys_state::kbd_put_pb)); +} /*************************************************************************** diff --git a/src/mame/drivers/atlantis.cpp b/src/mame/drivers/atlantis.cpp index 6dc37fc8cfe..0ad435ef004 100644 --- a/src/mame/drivers/atlantis.cpp +++ b/src/mame/drivers/atlantis.cpp @@ -809,8 +809,8 @@ DEVICE_INPUT_DEFAULTS_END * *************************************/ -MACHINE_CONFIG_START(atlantis_state::mwskins) - +void atlantis_state::mwskins(machine_config &config) +{ /* basic machine hardware */ VR4310LE(config, m_maincpu, 166666666); m_maincpu->set_icache_size(16384); @@ -860,8 +860,8 @@ MACHINE_CONFIG_START(atlantis_state::mwskins) m_ioasic->set_auto_ack(1); if DEBUG_CONSOLE { m_ioasic->serial_tx_handler().set(m_uart0, FUNC(generic_terminal_device::write)); - MCFG_DEVICE_ADD(m_uart0, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(DEVPUT("ioasic", midway_ioasic_device, serial_rx_w)) + GENERIC_TERMINAL(config, m_uart0, 0); + m_uart0->set_keyboard_callback("ioasic", FUNC(midway_ioasic_device::serial_rx_w)); } // TL16C552 UART @@ -891,7 +891,7 @@ MACHINE_CONFIG_START(atlantis_state::mwskins) com2.dsr_handler().set(m_uart2, FUNC(ins8250_uart_device::dsr_w)); com2.ri_handler().set(m_uart2, FUNC(ins8250_uart_device::ri_w)); com2.cts_handler().set(m_uart2, FUNC(ins8250_uart_device::cts_w)); -MACHINE_CONFIG_END +} /************************************* diff --git a/src/mame/drivers/basic52.cpp b/src/mame/drivers/basic52.cpp index 3ed021fffb6..a6b0b2463da 100644 --- a/src/mame/drivers/basic52.cpp +++ b/src/mame/drivers/basic52.cpp @@ -117,7 +117,7 @@ void basic52_state::basic31(machine_config &config) /* video hardware */ GENERIC_TERMINAL(config, m_terminal, 0); - m_terminal->set_keyboard_callback(KEYBOARDCB_PUT(basic52_state, kbd_put)); + m_terminal->set_keyboard_callback(FUNC(basic52_state::kbd_put)); I8255(config, "ppi8255", 0); } diff --git a/src/mame/drivers/besta.cpp b/src/mame/drivers/besta.cpp index 7748a3ed023..88c280dab56 100644 --- a/src/mame/drivers/besta.cpp +++ b/src/mame/drivers/besta.cpp @@ -134,18 +134,19 @@ void besta_state::machine_reset() } /* CP31 processor board */ -MACHINE_CONFIG_START(besta_state::besta) +void besta_state::besta(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68030, 2*16670000) - MCFG_DEVICE_PROGRAM_MAP(besta_mem) + M68030(config, m_maincpu, 2*16670000); + m_maincpu->set_addrmap(AS_PROGRAM, &besta_state::besta_mem); - MCFG_DEVICE_ADD ("pit1", PIT68230, 16670000 / 2) // XXX verify clock + PIT68230(config, m_pit1, 16670000 / 2); // XXX verify clock - MCFG_DEVICE_ADD ("pit2", PIT68230, 16670000 / 2) // XXX verify clock + PIT68230(config, m_pit2, 16670000 / 2); // XXX verify clock - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(besta_state, kbd_put)) -MACHINE_CONFIG_END + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(besta_state::kbd_put)); +} /* ROM definition */ diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp index 05d051ba298..44bbd8a9943 100644 --- a/src/mame/drivers/bigbord2.cpp +++ b/src/mame/drivers/bigbord2.cpp @@ -621,8 +621,8 @@ MACHINE_CONFIG_START(bigbord2_state::bigbord2) MCFG_DEVICE_ADD("outlatch1", LS259, 0) // U96 /* keyboard */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(bigbord2_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(bigbord2_state::kbd_put)); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/binbug.cpp b/src/mame/drivers/binbug.cpp index 5294579dc83..49d33c6ec1a 100644 --- a/src/mame/drivers/binbug.cpp +++ b/src/mame/drivers/binbug.cpp @@ -554,8 +554,8 @@ MACHINE_CONFIG_START(dg680_state::dg680) MCFG_PALETTE_ADD_MONOCHROME("palette") /* Keyboard */ - MCFG_DEVICE_ADD("keyb", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(dg680_state, kbd_put)) + generic_keyboard_device &keyb(GENERIC_KEYBOARD(config, "keyb", 0)); + keyb.set_keyboard_callback(FUNC(dg680_state::kbd_put)); /* Cassette */ MCFG_CASSETTE_ADD( "cassette" ) diff --git a/src/mame/drivers/cd2650.cpp b/src/mame/drivers/cd2650.cpp index e77327012e8..7067898726c 100644 --- a/src/mame/drivers/cd2650.cpp +++ b/src/mame/drivers/cd2650.cpp @@ -321,8 +321,8 @@ MACHINE_CONFIG_START(cd2650_state::cd2650) BEEP(config, "beeper", 950).add_route(ALL_OUTPUTS, "mono", 0.50); // guess /* Devices */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(cd2650_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(cd2650_state::kbd_put)); MCFG_CASSETTE_ADD( "cassette" ) MACHINE_CONFIG_END diff --git a/src/mame/drivers/cgc7900.cpp b/src/mame/drivers/cgc7900.cpp index f618cd6eb1b..58508504108 100644 --- a/src/mame/drivers/cgc7900.cpp +++ b/src/mame/drivers/cgc7900.cpp @@ -478,8 +478,8 @@ MACHINE_CONFIG_START(cgc7900_state::cgc7900) AY8910(config, AY8910_TAG, XTAL(28'480'000)/16).add_route(ALL_OUTPUTS, "mono", 0.25); /* devices */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(cgc7900_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(cgc7900_state::kbd_put)); MCFG_DEVICE_ADD(MM58167_TAG, MM58167, XTAL(32'768)) MCFG_MM58167_IRQ_CALLBACK(WRITELINE(*this, cgc7900_state, irq<0x0>)) diff --git a/src/mame/drivers/chaos.cpp b/src/mame/drivers/chaos.cpp index ea6596c4de3..b785edcc42a 100644 --- a/src/mame/drivers/chaos.cpp +++ b/src/mame/drivers/chaos.cpp @@ -156,8 +156,8 @@ MACHINE_CONFIG_START(chaos_state::chaos) MCFG_DEVICE_DATA_MAP(data_map) /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(chaos_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(chaos_state::kbd_put)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/cortex.cpp b/src/mame/drivers/cortex.cpp index c2d1f89f762..e127ba600ab 100644 --- a/src/mame/drivers/cortex.cpp +++ b/src/mame/drivers/cortex.cpp @@ -179,7 +179,8 @@ void cortex_state::init_init() membank("bankw0")->configure_entry(0, &main[0x00000]); } -MACHINE_CONFIG_START(cortex_state::cortex) +void cortex_state::cortex(machine_config &config) +{ /* basic machine hardware */ /* TMS9995 CPU @ 12.0 MHz */ // Standard variant, no overflow int @@ -205,17 +206,17 @@ MACHINE_CONFIG_START(cortex_state::cortex) crtc.set_vram_size(0x4000); SCREEN(config, "screen", SCREEN_TYPE_RASTER); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(cortex_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(cortex_state::kbd_put)); - //MCFG_DEVICE_ADD("uart1", TMS9902, XTAL(12'000'000) / 4) - //MCFG_DEVICE_ADD("uart2", TMS9902, XTAL(12'000'000) / 4) + //TMS9902(config, "uart1", XTAL(12'000'000) / 4); + //TMS9902(config, "uart2", XTAL(12'000'000) / 4); /* Sound */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 950) // guess - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) -MACHINE_CONFIG_END + BEEP(config, m_beep, 950); // guess + m_beep->add_route(ALL_OUTPUTS, "mono", 0.05); +} /* ROM definition */ ROM_START( cortex ) diff --git a/src/mame/drivers/cxhumax.cpp b/src/mame/drivers/cxhumax.cpp index 62bb1a69693..631b0d1ef10 100644 --- a/src/mame/drivers/cxhumax.cpp +++ b/src/mame/drivers/cxhumax.cpp @@ -1073,7 +1073,7 @@ MACHINE_CONFIG_START(cxhumax_state::cxhumax) MCFG_PALETTE_ADD_MONOCHROME("palette") - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) + GENERIC_TERMINAL(config, m_terminal, 0); MACHINE_CONFIG_END ROM_START( hxhdci2k ) diff --git a/src/mame/drivers/czk80.cpp b/src/mame/drivers/czk80.cpp index 2123acca269..69180a85481 100644 --- a/src/mame/drivers/czk80.cpp +++ b/src/mame/drivers/czk80.cpp @@ -62,8 +62,10 @@ public: void czk80(machine_config &config); void init_czk80(); +protected: + virtual void machine_reset() override; + private: - DECLARE_MACHINE_RESET(czk80); TIMER_CALLBACK_MEMBER(czk80_reset); DECLARE_READ8_MEMBER(port80_r); DECLARE_READ8_MEMBER(port81_r); @@ -153,7 +155,7 @@ TIMER_CALLBACK_MEMBER( czk80_state::czk80_reset) membank("bankr0")->set_entry(1); } -MACHINE_RESET_MEMBER( czk80_state, czk80 ) +void czk80_state::machine_reset() { machine().scheduler().timer_set(attotime::from_usec(3), timer_expired_delegate(FUNC(czk80_state::czk80_reset),this)); membank("bankr0")->set_entry(0); // point at rom @@ -185,19 +187,18 @@ void czk80_state::kbd_put(u8 data) m_term_data = data; } -MACHINE_CONFIG_START(czk80_state::czk80) +void czk80_state::czk80(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(16'000'000) / 4); m_maincpu->set_addrmap(AS_PROGRAM, &czk80_state::czk80_mem); m_maincpu->set_addrmap(AS_IO, &czk80_state::czk80_io); m_maincpu->set_daisy_config(daisy_chain); - MCFG_MACHINE_RESET_OVERRIDE(czk80_state, czk80) - - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(czk80_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(czk80_state::kbd_put)); UPD765A(config, m_fdc, true, true); - MCFG_FLOPPY_DRIVE_ADD("fdc:0", czk80_floppies, "525dd", floppy_image_device::default_floppy_formats) + FLOPPY_CONNECTOR(config, "fdc:0", czk80_floppies, "525dd", floppy_image_device::default_floppy_formats); z80ctc_device& ctc(Z80CTC(config, "ctc", XTAL(16'000'000) / 4)); ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); @@ -213,7 +214,7 @@ MACHINE_CONFIG_START(czk80_state::czk80) z80pio_device& pio(Z80PIO(config, "pio", XTAL(16'000'000)/4)); pio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/d6809.cpp b/src/mame/drivers/d6809.cpp index 96f5c9cc371..f85a28f038e 100644 --- a/src/mame/drivers/d6809.cpp +++ b/src/mame/drivers/d6809.cpp @@ -198,8 +198,8 @@ MACHINE_CONFIG_START(d6809_state::d6809) MCFG_DEVICE_ADD("acia2", MOS6551, XTAL(14'745'600) / 8) // uses Q clock /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(d6809_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(d6809_state::kbd_put)); // Floppy UPD765A(config, m_fdc, true, true); diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp index c9a6f7b7678..dd2572d3388 100644 --- a/src/mame/drivers/dccons.cpp +++ b/src/mame/drivers/dccons.cpp @@ -606,7 +606,8 @@ MACHINE_CONFIG_START(dc_cons_state::dc) // MACRONIX_29LV160TMC(config, "dcflash"); - MCFG_MAPLE_DC_ADD( "maple_dc", "maincpu", dc_maple_irq ) + MAPLE_DC(config, m_maple, 0, m_maincpu); + m_maple->irq_callback().set(FUNC(dc_state::maple_irq)); MCFG_DC_CONTROLLER_ADD("dcctrl0", "maple_dc", 0, ":P1:0", ":P1:1", ":P1:A0", ":P1:A1", ":P1:A2", ":P1:A3", ":P1:A4", ":P1:A5") MCFG_DC_CONTROLLER_ADD("dcctrl1", "maple_dc", 1, ":P2:0", ":P2:1", ":P2:A0", ":P2:A1", ":P2:A2", ":P2:A3", ":P2:A4", ":P2:A5") MCFG_DC_CONTROLLER_ADD("dcctrl2", "maple_dc", 2, ":P3:0", ":P3:1", ":P3:A0", ":P3:A1", ":P3:A2", ":P3:A3", ":P3:A4", ":P3:A5") diff --git a/src/mame/drivers/dim68k.cpp b/src/mame/drivers/dim68k.cpp index 745034b553f..8e14571d46d 100644 --- a/src/mame/drivers/dim68k.cpp +++ b/src/mame/drivers/dim68k.cpp @@ -342,8 +342,8 @@ MACHINE_CONFIG_START(dim68k_state::dim68k) m_crtc->set_char_width(8); m_crtc->set_update_row_callback(FUNC(dim68k_state::crtc_update_row), this); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(dim68k_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(dim68k_state::kbd_put)); // software lists MCFG_SOFTWARE_LIST_ADD("flop_list", "dim68k") diff --git a/src/mame/drivers/dm7000.cpp b/src/mame/drivers/dm7000.cpp index 6e3b874ba26..827d49ba179 100644 --- a/src/mame/drivers/dm7000.cpp +++ b/src/mame/drivers/dm7000.cpp @@ -317,8 +317,8 @@ MACHINE_CONFIG_START(dm7000_state::dm7000) MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) MCFG_SCREEN_UPDATE_DRIVER(dm7000_state, screen_update_dm7000) - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(dm7000_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(dm7000_state::kbd_put)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/dms86.cpp b/src/mame/drivers/dms86.cpp index 43817b2c380..b266e87eeba 100644 --- a/src/mame/drivers/dms86.cpp +++ b/src/mame/drivers/dms86.cpp @@ -138,7 +138,8 @@ void dms86_state::kbd_put(u8 data) m_term_data = data; } -MACHINE_CONFIG_START(dms86_state::dms86) +void dms86_state::dms86(machine_config &config) +{ /* basic machine hardware */ I8086(config, m_maincpu, XTAL(14'745'600) / 3); // according to the manual... hmm m_maincpu->set_addrmap(AS_PROGRAM, &dms86_state::mem_map); @@ -173,9 +174,9 @@ MACHINE_CONFIG_START(dms86_state::dms86) rs232.dcd_handler().set(m_sio[0], FUNC(z80sio_device::dcdb_w)); // HiNet / Monitor switch rs232.cts_handler().set(m_sio[0], FUNC(z80sio_device::ctsb_w)).invert(); - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(dms86_state, kbd_put)) -MACHINE_CONFIG_END + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(dms86_state::kbd_put)); +} /* ROM definition */ ROM_START( dms86 ) diff --git a/src/mame/drivers/dual68.cpp b/src/mame/drivers/dual68.cpp index 6369f029c8c..cb7d57789d4 100644 --- a/src/mame/drivers/dual68.cpp +++ b/src/mame/drivers/dual68.cpp @@ -103,8 +103,8 @@ MACHINE_CONFIG_START(dual68_state::dual68) MCFG_DEVICE_IO_MAP(sio4_io) /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(dual68_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(dual68_state::kbd_put)); MCFG_DEVICE_ADD("usart1", MC2661, 9.8304_MHz_XTAL / 2) // SCN2661B MCFG_DEVICE_ADD("usart2", MC2661, 9.8304_MHz_XTAL / 2) // SCN2661B diff --git a/src/mame/drivers/ec65.cpp b/src/mame/drivers/ec65.cpp index 5ee46374159..2a86aeb2374 100644 --- a/src/mame/drivers/ec65.cpp +++ b/src/mame/drivers/ec65.cpp @@ -195,19 +195,19 @@ MACHINE_CONFIG_START(ec65_state::ec65) crtc.set_update_row_callback(FUNC(ec65_state::crtc_update_row), this); /* devices */ - MCFG_DEVICE_ADD(PIA6821_TAG, PIA6821, 0) + PIA6821(config, PIA6821_TAG, 0); - MCFG_DEVICE_ADD(ACIA6850_TAG, ACIA6850, 0) + ACIA6850(config, ACIA6850_TAG, 0); - MCFG_DEVICE_ADD(VIA6522_0_TAG, VIA6522, XTAL(4'000'000) / 4) + VIA6522(config, m_via_0, XTAL(4'000'000) / 4); - MCFG_DEVICE_ADD(VIA6522_1_TAG, VIA6522, XTAL(4'000'000) / 4) + VIA6522(config, m_via_1, XTAL(4'000'000) / 4); mos6551_device &acia(MOS6551(config, ACIA6551_TAG, 0)); acia.set_xtal(XTAL(1'843'200)); - MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(ec65_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0)); + keyboard.set_keyboard_callback(FUNC(ec65_state::kbd_put)); MACHINE_CONFIG_END MACHINE_CONFIG_START(ec65k_state::ec65k) diff --git a/src/mame/drivers/eurocom2.cpp b/src/mame/drivers/eurocom2.cpp index 5b4a165f122..fa7f8f09d75 100644 --- a/src/mame/drivers/eurocom2.cpp +++ b/src/mame/drivers/eurocom2.cpp @@ -449,8 +449,8 @@ MACHINE_CONFIG_START(eurocom2_state::eurocom2) MCFG_SCREEN_PALETTE("palette") MCFG_PALETTE_ADD_MONOCHROME("palette") - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(eurocom2_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(eurocom2_state::kbd_put)); PIA6821(config, m_pia1, 0); m_pia1->readca1_handler().set(FUNC(eurocom2_state::pia1_ca1_r)); // keyboard strobe diff --git a/src/mame/drivers/evmbug.cpp b/src/mame/drivers/evmbug.cpp index 1b14c6747b8..4d5669728b5 100644 --- a/src/mame/drivers/evmbug.cpp +++ b/src/mame/drivers/evmbug.cpp @@ -114,7 +114,8 @@ void evmbug_state::machine_reset() m_maincpu->reset_line(ASSERT_LINE); } -MACHINE_CONFIG_START(evmbug_state::evmbug) +void evmbug_state::evmbug(machine_config &config) +{ // basic machine hardware // TMS9995 CPU @ 12.0 MHz // We have no lines connected yet @@ -123,11 +124,11 @@ MACHINE_CONFIG_START(evmbug_state::evmbug) m_maincpu->set_addrmap(AS_IO, &evmbug_state::io_map); /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(evmbug_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(evmbug_state::kbd_put)); - //MCFG_DEVICE_ADD("uart1", TMS9902, XTAL(12'000'000) / 4) -MACHINE_CONFIG_END + //TMS9902(config, "uart1", XTAL(12'000'000) / 4); +} /* ROM definition */ ROM_START( evmbug ) diff --git a/src/mame/drivers/gridcomp.cpp b/src/mame/drivers/gridcomp.cpp index 8d1d2e12889..2c5d357fa3f 100644 --- a/src/mame/drivers/gridcomp.cpp +++ b/src/mame/drivers/gridcomp.cpp @@ -391,8 +391,8 @@ MACHINE_CONFIG_START(gridcomp_state::grid1101) MCFG_SCREEN_PALETTE("palette") MCFG_PALETTE_ADD_MONOCHROME("palette") - MCFG_DEVICE_ADD("keyboard", GRID_KEYBOARD, 0) - MCFG_GRID_KEYBOARD_CB(PUT(gridcomp_state, kbd_put)) + grid_keyboard_device &keyboard(GRID_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(gridcomp_state::kbd_put)); i7220_device &i7220(I7220(config, "i7220", XTAL(4'000'000))); i7220.set_data_size(3); // 3 1-Mbit MBM's diff --git a/src/mame/drivers/imsai.cpp b/src/mame/drivers/imsai.cpp index 327d326ddc6..589d97fbeb6 100644 --- a/src/mame/drivers/imsai.cpp +++ b/src/mame/drivers/imsai.cpp @@ -105,18 +105,19 @@ void imsai_state::machine_reset() m_term_data = 0; } -MACHINE_CONFIG_START(imsai_state::imsai) +void imsai_state::imsai(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8085A, XTAL(6'000'000)) - MCFG_DEVICE_PROGRAM_MAP(imsai_mem) - MCFG_DEVICE_IO_MAP(imsai_io) + I8085A(config, m_maincpu, XTAL(6'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &imsai_state::imsai_mem); + m_maincpu->set_addrmap(AS_IO, &imsai_state::imsai_io); /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(imsai_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(imsai_state::kbd_put)); /* Devices */ - MCFG_DEVICE_ADD("uart", I8251, 0) + I8251(config, "uart", 0); PIT8253(config, m_pit, 0); m_pit->set_clk<0>(6_MHz_XTAL / 3); // Timer 0: baud rate gen for 8251 @@ -124,7 +125,7 @@ MACHINE_CONFIG_START(imsai_state::imsai) m_pit->out_handler<0>().append("uart", FUNC(i8251_device::write_rxc)); m_pit->set_clk<1>(6_MHz_XTAL / 3); // Timer 1: user m_pit->set_clk<2>(6_MHz_XTAL / 3); // Timer 2: user -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( imsai ) diff --git a/src/mame/drivers/ipds.cpp b/src/mame/drivers/ipds.cpp index da688422ab2..96bd4f3e176 100644 --- a/src/mame/drivers/ipds.cpp +++ b/src/mame/drivers/ipds.cpp @@ -154,8 +154,8 @@ MACHINE_CONFIG_START(ipds_state::ipds) MCFG_I8275_CHARACTER_WIDTH(6) MCFG_I8275_DRAW_CHARACTER_CALLBACK_OWNER(ipds_state, crtc_display_pixels) - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(ipds_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(ipds_state::kbd_put)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/jonos.cpp b/src/mame/drivers/jonos.cpp index 3641f690713..b7e74808269 100644 --- a/src/mame/drivers/jonos.cpp +++ b/src/mame/drivers/jonos.cpp @@ -192,8 +192,8 @@ MACHINE_CONFIG_START(jonos_state::jonos) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jonos) MCFG_PALETTE_ADD_MONOCHROME("palette") - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(jonos_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(jonos_state::kbd_put)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/jupiter.cpp b/src/mame/drivers/jupiter.cpp index bea56375950..2f0f38d0b53 100644 --- a/src/mame/drivers/jupiter.cpp +++ b/src/mame/drivers/jupiter.cpp @@ -341,8 +341,8 @@ MACHINE_CONFIG_START(jupiter3_state::jupiter3) MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":0", jupiter_floppies, "525ssdd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":1", jupiter_floppies, nullptr, floppy_image_device::default_floppy_formats) - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(jupiter3_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(jupiter3_state::kbd_put)); // internal ram RAM(config, RAM_TAG).set_default_size("64K"); diff --git a/src/mame/drivers/konamim2.cpp b/src/mame/drivers/konamim2.cpp index 1aeac3f1c40..14b6040f676 100644 --- a/src/mame/drivers/konamim2.cpp +++ b/src/mame/drivers/konamim2.cpp @@ -1316,7 +1316,7 @@ MACHINE_CONFIG_START(konamim2_state::m2) MCFG_DEVICE_PROGRAM_MAP(m2_main_s) // TODO: declaring as second screen causes palette confusion (wants to use palette from the other screen?) - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) + GENERIC_TERMINAL(config, m_terminal, 0); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/llc.cpp b/src/mame/drivers/llc.cpp index f203f4eb088..99baf74c5cb 100644 --- a/src/mame/drivers/llc.cpp +++ b/src/mame/drivers/llc.cpp @@ -240,8 +240,8 @@ MACHINE_CONFIG_START(llc_state::llc1) ctc.zc_callback<0>().set("z80ctc", FUNC(z80ctc_device::trg1)); ctc.zc_callback<1>().set("z80ctc", FUNC(z80ctc_device::trg3)); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(llc_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(llc_state::kbd_put)); MACHINE_CONFIG_END MACHINE_CONFIG_START(llc_state::llc2) diff --git a/src/mame/drivers/mbc200.cpp b/src/mame/drivers/mbc200.cpp index 4c22b3f5324..e87aa2a7af5 100644 --- a/src/mame/drivers/mbc200.cpp +++ b/src/mame/drivers/mbc200.cpp @@ -353,8 +353,8 @@ MACHINE_CONFIG_START(mbc200_state::mbc200) MCFG_FLOPPY_DRIVE_SOUND(true) /* Keyboard */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(mbc200_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(mbc200_state::kbd_put)); /* software lists */ MCFG_SOFTWARE_LIST_ADD("flop_list", "mbc200") diff --git a/src/mame/drivers/mes.cpp b/src/mame/drivers/mes.cpp index 04f6a0c5193..9f695399564 100644 --- a/src/mame/drivers/mes.cpp +++ b/src/mame/drivers/mes.cpp @@ -152,8 +152,8 @@ MACHINE_CONFIG_START(mes_state::mes) Z80PIO(config, "pio", 0); Z80SIO(config, "sio", 0); - MCFG_DEVICE_ADD("keybd", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(mes_state, kbd_put)) + generic_keyboard_device &keybd(GENERIC_KEYBOARD(config, "keybd", 0)); + keybd.set_keyboard_callback(FUNC(mes_state::kbd_put)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/mod8.cpp b/src/mame/drivers/mod8.cpp index d2320f6961c..5d4f7589d61 100644 --- a/src/mame/drivers/mod8.cpp +++ b/src/mame/drivers/mod8.cpp @@ -154,8 +154,8 @@ MACHINE_CONFIG_START(mod8_state::mod8) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(mod8_state,mod8_irq_callback) /* video hardware */ - MCFG_DEVICE_ADD(TELEPRINTER_TAG, TELEPRINTER, 0) - MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(PUT(mod8_state, kbd_put)) + TELEPRINTER(config, m_teleprinter, 0); + m_teleprinter->set_keyboard_callback(FUNC(mod8_state::kbd_put)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/modellot.cpp b/src/mame/drivers/modellot.cpp index a531ecc61f6..365d41e9464 100644 --- a/src/mame/drivers/modellot.cpp +++ b/src/mame/drivers/modellot.cpp @@ -197,8 +197,8 @@ MACHINE_CONFIG_START(modellot_state::modellot) MCFG_PALETTE_ADD_MONOCHROME("palette") /* Devices */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(modellot_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(modellot_state::kbd_put)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/ms9540.cpp b/src/mame/drivers/ms9540.cpp index 8463f146b2b..fc17a01d395 100644 --- a/src/mame/drivers/ms9540.cpp +++ b/src/mame/drivers/ms9540.cpp @@ -78,16 +78,16 @@ void ms9540_state::kbd_put(u8 data) m_term_data = data; } -MACHINE_CONFIG_START(ms9540_state::ms9540) +void ms9540_state::ms9540(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 8000000) // unknown clock - MCFG_DEVICE_PROGRAM_MAP(mem_map) + M68000(config, m_maincpu, 8000000); // unknown clock + m_maincpu->set_addrmap(AS_PROGRAM, &ms9540_state::mem_map); /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ms9540_state, kbd_put)) - -MACHINE_CONFIG_END + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(ms9540_state::kbd_put)); +} /* ROM definition */ ROM_START( ms9540 ) diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp index ce48e989269..fd674df3c9e 100644 --- a/src/mame/drivers/naomi.cpp +++ b/src/mame/drivers/naomi.cpp @@ -2915,7 +2915,8 @@ MACHINE_CONFIG_START(dc_state::naomi_aw_base) MCFG_DEVICE_ADD("soundcpu", ARM7, ((XTAL(33'868'800)*2)/3)/8) // AICA bus clock is 2/3rds * 33.8688. ARM7 gets 1 bus cycle out of each 8. MCFG_DEVICE_PROGRAM_MAP(dc_audio_map) - MCFG_MAPLE_DC_ADD( "maple_dc", "maincpu", dc_maple_irq ) + MAPLE_DC(config, m_maple, 0, m_maincpu); + m_maple->irq_callback().set(FUNC(dc_state::maple_irq)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/okean240.cpp b/src/mame/drivers/okean240.cpp index ca108352322..30c102ce069 100644 --- a/src/mame/drivers/okean240.cpp +++ b/src/mame/drivers/okean240.cpp @@ -574,8 +574,8 @@ MACHINE_CONFIG_START(okean240_state::okean240) MCFG_DEVICE_REMOVE("uart") MCFG_DEVICE_REMOVE("rs232") subdevice("pit")->out_handler<1>().set_nop(); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(okean240_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(okean240_state::kbd_put)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/olyboss.cpp b/src/mame/drivers/olyboss.cpp index bbf469f3c2e..19d28fa6cc9 100644 --- a/src/mame/drivers/olyboss.cpp +++ b/src/mame/drivers/olyboss.cpp @@ -476,8 +476,8 @@ MACHINE_CONFIG_START( olyboss_state::olybossd ) m_ppi->out_pc_callback().set(FUNC(olyboss_state::ppic_w)); /* keyboard */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(olyboss_state, keyboard_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(olyboss_state::keyboard_put)); MACHINE_CONFIG_END MACHINE_CONFIG_START( olyboss_state::olybossb ) @@ -540,8 +540,8 @@ MACHINE_CONFIG_START( olyboss_state::bossb85 ) MCFG_VIDEO_SET_SCREEN(SCREEN_TAG) /* keyboard */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(olyboss_state, keyboard85_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(olyboss_state::keyboard85_put)); MACHINE_CONFIG_END MACHINE_CONFIG_START( olyboss_state::bossa85 ) diff --git a/src/mame/drivers/olytext.cpp b/src/mame/drivers/olytext.cpp index 9af7a15d98f..ed80b13dfd3 100644 --- a/src/mame/drivers/olytext.cpp +++ b/src/mame/drivers/olytext.cpp @@ -171,8 +171,8 @@ MACHINE_CONFIG_START( olytext_state::olytext ) MCFG_FLOPPY_DRIVE_SOUND(true) /* keyboard */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(olytext_state, keyboard_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(olytext_state::keyboard_put)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/patinho_feio.cpp b/src/mame/drivers/patinho_feio.cpp index fbdc3479590..92463e03178 100644 --- a/src/mame/drivers/patinho_feio.cpp +++ b/src/mame/drivers/patinho_feio.cpp @@ -134,8 +134,8 @@ void patinho_feio_state::teletype_kbd_input(u8 data) //I figured out that the data is provided inverted (2's complement) //based on a comment in the source code listing of the HEXAM program. //It is not clear though, if all I/O devices complement the data when - //communicating with the computer, or if this behavious is a particular - //caracteristics of the teletype. + //communicating with the computer, or if this behaviour is a particular + //characteristic of the teletype. m_maincpu->transfer_byte_from_external_device(0xB, ~data); } @@ -263,22 +263,22 @@ MACHINE_CONFIG_START(patinho_feio_state::patinho_feio) /* Teleprinter TeleType ASR33 - (max. speed: 10 characteres per second) + (max. speed: 10 characters per second) with paper tape reading (and optionally punching) capabilities */ MCFG_PATINHO_IODEV_WRITE_CB(0xB, WRITE8(*this, patinho_feio_state, teletype_data_w)) /* Papertape Reader Hewlett-Packard HP-2737-A - Optical Papertape Reader (max. speed: 300 characteres per second) */ + Optical Papertape Reader (max. speed: 300 characters per second) */ // MCFG_PATINHO_IODEV_READ_CB(0xE, READ8(*this, patinho_feio_state, papertapereader_data_r)) /* DECWRITER */ - MCFG_DEVICE_ADD("decwriter", TELEPRINTER, 0) - MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(PUT(patinho_feio_state, decwriter_kbd_input)) + teleprinter_device &decwriter(TELEPRINTER(config, "decwriter", 0)); + decwriter.set_keyboard_callback(FUNC(patinho_feio_state::decwriter_kbd_input)); /* Teletype */ - MCFG_DEVICE_ADD("teletype", TELEPRINTER, 1) - MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(PUT(patinho_feio_state, teletype_kbd_input)) + teleprinter_device &teletype(TELEPRINTER(config, "teletype", 1)); + teletype.set_keyboard_callback(FUNC(patinho_feio_state::teletype_kbd_input)); /* punched tape */ MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "patinho_tape") diff --git a/src/mame/drivers/pdp11.cpp b/src/mame/drivers/pdp11.cpp index e48405c021f..aa8dcbc9811 100644 --- a/src/mame/drivers/pdp11.cpp +++ b/src/mame/drivers/pdp11.cpp @@ -353,18 +353,19 @@ void pdp11_state::kbd_put(u8 data) m_teletype_status |= 0x80; } -MACHINE_CONFIG_START(pdp11_state::pdp11) +void pdp11_state::pdp11(machine_config &config) +{ /* basic machine hardware */ T11(config, m_maincpu, XTAL(4'000'000)); // Need proper CPU here m_maincpu->set_initial_mode(6 << 13); m_maincpu->set_addrmap(AS_PROGRAM, &pdp11_state::pdp11_mem); /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(pdp11_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(pdp11_state::kbd_put)); RX01(config, "rx01", 0); -MACHINE_CONFIG_END +} MACHINE_CONFIG_START(pdp11_state::pdp11ub2) pdp11(config); diff --git a/src/mame/drivers/pes.cpp b/src/mame/drivers/pes.cpp index 7abd62cd632..1e51fe6a583 100644 --- a/src/mame/drivers/pes.cpp +++ b/src/mame/drivers/pes.cpp @@ -263,7 +263,7 @@ void pes_state::pes(machine_config &config) m_speech->add_route(ALL_OUTPUTS, "mono", 1.0); GENERIC_TERMINAL(config, m_terminal, 0); - m_terminal->set_keyboard_callback(KEYBOARDCB_PUT(pes_state, pes_kbd_input)); + m_terminal->set_keyboard_callback(FUNC(pes_state::pes_kbd_input)); } /****************************************************************************** diff --git a/src/mame/drivers/phunsy.cpp b/src/mame/drivers/phunsy.cpp index 3a83660c4f9..4de1d9e683e 100644 --- a/src/mame/drivers/phunsy.cpp +++ b/src/mame/drivers/phunsy.cpp @@ -372,8 +372,8 @@ MACHINE_CONFIG_START(phunsy_state::phunsy) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* Devices */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(phunsy_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(phunsy_state::kbd_put)); MCFG_CASSETTE_ADD( "cassette" ) /* quickload */ diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp index e3d7fc38168..9853ee4f05c 100644 --- a/src/mame/drivers/poly.cpp +++ b/src/mame/drivers/poly.cpp @@ -315,8 +315,8 @@ MACHINE_CONFIG_START(poly_state::poly) //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) - MCFG_GENERIC_KEYBOARD_CB(PUT(poly_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(poly_state::kbd_put)); /* video control */ PIA6821(config, m_pia[0], 0); diff --git a/src/mame/drivers/proteus3.cpp b/src/mame/drivers/proteus3.cpp index 1a37cbaf089..39332f15078 100644 --- a/src/mame/drivers/proteus3.cpp +++ b/src/mame/drivers/proteus3.cpp @@ -402,8 +402,8 @@ MACHINE_CONFIG_START(proteus3_state::proteus3) m_pia->ca2_handler().set(FUNC(proteus3_state::ca2_w)); m_pia->irqb_handler().set_inputline("maincpu", M6800_IRQ_LINE); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(proteus3_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(proteus3_state::kbd_put)); /* cassette */ ACIA6850(config, m_acia1, 0); diff --git a/src/mame/drivers/ptcsol.cpp b/src/mame/drivers/ptcsol.cpp index cc151ef77e9..c6cd8ac2f5d 100644 --- a/src/mame/drivers/ptcsol.cpp +++ b/src/mame/drivers/ptcsol.cpp @@ -783,8 +783,8 @@ MACHINE_CONFIG_START(sol20_state::sol20) m_uart_s->set_rx_clock(4800.0); m_uart_s->set_auto_rdav(true); // ROD (pin 4) tied to RDD (pin 18) - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(sol20_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(sol20_state::kbd_put)); MCFG_SOFTWARE_LIST_ADD("cass_list", "sol20_cass") MACHINE_CONFIG_END diff --git a/src/mame/drivers/ravens.cpp b/src/mame/drivers/ravens.cpp index ce65e70c338..4441483d0f0 100644 --- a/src/mame/drivers/ravens.cpp +++ b/src/mame/drivers/ravens.cpp @@ -369,8 +369,8 @@ MACHINE_CONFIG_START(ravens_state::ravens2) MCFG_MACHINE_RESET_OVERRIDE(ravens_state, ravens2) /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ravens_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(ravens_state::kbd_put)); /* quickload */ MCFG_QUICKLOAD_ADD("quickload", ravens_state, ravens, "pgm", 1) diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp index 3118eb79565..d29dfad2a64 100644 --- a/src/mame/drivers/rc702.cpp +++ b/src/mame/drivers/rc702.cpp @@ -369,8 +369,8 @@ MACHINE_CONFIG_START(rc702_state::rc702) MCFG_FLOPPY_DRIVE_SOUND(true) /* Keyboard */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(rc702_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(rc702_state::kbd_put)); TTL7474(config, m_7474, 0); m_7474->output_cb().set(FUNC(rc702_state::q_w)); diff --git a/src/mame/drivers/rc759.cpp b/src/mame/drivers/rc759.cpp index 5a6b107d558..89921ab5608 100644 --- a/src/mame/drivers/rc759.cpp +++ b/src/mame/drivers/rc759.cpp @@ -568,8 +568,8 @@ MACHINE_CONFIG_START(rc759_state::rc759) MCFG_I82730_SINT_HANDLER(WRITELINE(m_pic, pic8259_device, ir4_w)) // keyboard - MCFG_DEVICE_ADD("keyb", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(rc759_state, keyb_put)) + generic_keyboard_device &keyb(GENERIC_KEYBOARD(config, "keyb", 0)); + keyb.set_keyboard_callback(FUNC(rc759_state::keyb_put)); // cassette MCFG_CASSETTE_ADD("cas") diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp index 45df7b155b7..56373e7f788 100644 --- a/src/mame/drivers/rm380z.cpp +++ b/src/mame/drivers/rm380z.cpp @@ -269,8 +269,8 @@ MACHINE_CONFIG_START(rm380z_state::rm380z) MCFG_FLOPPY_DRIVE_ADD("wd1771:1", rm380z_floppies, "sssd", floppy_image_device::default_floppy_formats) /* keyboard */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(rm380z_state, keyboard_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put)); MACHINE_CONFIG_END MACHINE_CONFIG_START(rm380z_state::rm480z) @@ -292,8 +292,8 @@ MACHINE_CONFIG_START(rm380z_state::rm480z) // MCFG_PALETTE_ADD_MONOCHROME("palette") /* keyboard */ -// MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) -// MCFG_GENERIC_KEYBOARD_CB(PUT(rm380z_state, keyboard_put)) +// generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); +// keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/rvoice.cpp b/src/mame/drivers/rvoice.cpp index f4c17174833..b8d8c3e6c93 100644 --- a/src/mame/drivers/rvoice.cpp +++ b/src/mame/drivers/rvoice.cpp @@ -360,15 +360,16 @@ void rvoice_state::null_kbd_put(u8 data) { } -MACHINE_CONFIG_START(rvoice_state::rvoicepc) +void rvoice_state::rvoicepc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", HD63701, XTAL(7'372'800)) - MCFG_DEVICE_PROGRAM_MAP(hd63701_main_mem) + HD63701(config, m_maincpu, XTAL(7'372'800)); + m_maincpu->set_addrmap(AS_PROGRAM, &rvoice_state::hd63701_main_mem); - //MCFG_DEVICE_ADD("playercpu", HD63701, XTAL(7'372'800)) // not dumped yet - //MCFG_DEVICE_PROGRAM_MAP(hd63701_slave_mem) - //MCFG_DEVICE_IO_MAP(hd63701_slave_io) - MCFG_QUANTUM_TIME(attotime::from_hz(60)) + //hd63701_cpu_device &playercpu(HD63701(config "playercpu", XTAL(7'372'800))); // not dumped yet + //playercpu.set_addrmap(AS_PROGRAM, &rvoice_state::hd63701_slave_mem); + //playercpu.set_addrmap(AS_PROGRAM, &rvoice_state::hd63701_slave_io); + config.m_minimum_quantum = attotime::from_hz(60); mos6551_device &acia(MOS6551(config, "acia65c51", 0)); acia.set_xtal(1.8432_MHz_XTAL); @@ -376,10 +377,9 @@ MACHINE_CONFIG_START(rvoice_state::rvoicepc) /* video hardware */ /* sound hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(rvoice_state, null_kbd_put)) - -MACHINE_CONFIG_END + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(rvoice_state::null_kbd_put)); +} diff --git a/src/mame/drivers/sacstate.cpp b/src/mame/drivers/sacstate.cpp index 78fbaa66432..5f0e7a9c912 100644 --- a/src/mame/drivers/sacstate.cpp +++ b/src/mame/drivers/sacstate.cpp @@ -133,16 +133,17 @@ void sacstate_state::machine_reset() m_val = ioport("CONFIG")->read(); } -MACHINE_CONFIG_START(sacstate_state::sacstate) +void sacstate_state::sacstate(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8008, 800000) - MCFG_DEVICE_PROGRAM_MAP(sacstate_mem) - MCFG_DEVICE_IO_MAP(sacstate_io) + I8008(config, m_maincpu, 800000); + m_maincpu->set_addrmap(AS_PROGRAM, &sacstate_state::sacstate_mem); + m_maincpu->set_addrmap(AS_IO, &sacstate_state::sacstate_io); /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(sacstate_state, kbd_put)) -MACHINE_CONFIG_END + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(sacstate_state::kbd_put)); +} /* ROM definition */ ROM_START( sacstate ) diff --git a/src/mame/drivers/sapi1.cpp b/src/mame/drivers/sapi1.cpp index 9e3c3deb865..142b7efb484 100644 --- a/src/mame/drivers/sapi1.cpp +++ b/src/mame/drivers/sapi1.cpp @@ -623,7 +623,7 @@ void sapi1_state::init_sapizps3b() /* Machine driver */ MACHINE_CONFIG_START(sapi1_state::sapi1) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(18'000'000) / 9) // Tesla MHB8080A + MHB8224 + MHB8228 + MCFG_DEVICE_ADD(m_maincpu, I8080A, XTAL(18'000'000) / 9) // Tesla MHB8080A + MHB8224 + MHB8228 MCFG_DEVICE_PROGRAM_MAP(sapi1_mem) MCFG_MACHINE_RESET_OVERRIDE(sapi1_state, sapi1) @@ -642,14 +642,15 @@ MACHINE_CONFIG_START(sapi1_state::sapi1) RAM(config, RAM_TAG).set_default_size("64K"); MACHINE_CONFIG_END -MACHINE_CONFIG_START(sapi1_state::sapi2) +void sapi1_state::sapi2(machine_config &config) +{ sapi1(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(sapi2_mem) - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(sapi1_state, kbd_put)) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &sapi1_state::sapi2_mem); + + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(sapi1_state::kbd_put)); +} MACHINE_CONFIG_START(sapi1_state::sapi3) sapi2(config); diff --git a/src/mame/drivers/sbc6510.cpp b/src/mame/drivers/sbc6510.cpp index 9acf0c8bea7..8b2aac2908a 100644 --- a/src/mame/drivers/sbc6510.cpp +++ b/src/mame/drivers/sbc6510.cpp @@ -292,7 +292,7 @@ MACHINE_CONFIG_START(sbc6510_state::sbc6510) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_sbc6510) /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) + GENERIC_TERMINAL(config, m_terminal, 0); /* sound hardware */ SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp index 86b58ee4e76..1c2e873ccc2 100644 --- a/src/mame/drivers/tavernie.cpp +++ b/src/mame/drivers/tavernie.cpp @@ -359,8 +359,8 @@ MACHINE_CONFIG_START(tavernie_state::ivg09) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* Devices */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(tavernie_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(tavernie_state::kbd_put)); mc6845_device &crtc(MC6845(config, "crtc", 1008000)); // unknown clock crtc.set_screen("screen"); diff --git a/src/mame/drivers/tk80bs.cpp b/src/mame/drivers/tk80bs.cpp index 47cf0897071..fc26f3d365e 100644 --- a/src/mame/drivers/tk80bs.cpp +++ b/src/mame/drivers/tk80bs.cpp @@ -194,8 +194,8 @@ MACHINE_CONFIG_START(tk80bs_state::tk80bs) m_ppi->in_pa_callback().set(FUNC(tk80bs_state::port_a_r)); m_ppi->in_pb_callback().set(FUNC(tk80bs_state::port_b_r)); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(tk80bs_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(tk80bs_state::kbd_put)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp index 76a95ab21ab..177b235dfab 100644 --- a/src/mame/drivers/trs80m2.cpp +++ b/src/mame/drivers/trs80m2.cpp @@ -776,8 +776,8 @@ MACHINE_CONFIG_START(trs80m2_state::trs80m2) TRS80M2_KEYBOARD(config, m_kb, 0); m_kb->clock_wr_callback().set(FUNC(trs80m2_state::kb_clock_w)); - MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(trs80m2_state, kbd_w)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0)); + keyboard.set_keyboard_callback(FUNC(trs80m2_state::kbd_w)); // internal RAM RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("32K,96K,128K,160K,192K,224K,256K,288K,320K,352K,384K,416K,448K,480K,512K"); @@ -868,8 +868,8 @@ MACHINE_CONFIG_START(trs80m16_state::trs80m16) TRS80M2_KEYBOARD(config, m_kb, 0); m_kb->clock_wr_callback().set(FUNC(trs80m2_state::kb_clock_w)); - MCFG_DEVICE_ADD(KEYBOARD_TAG, GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(trs80m2_state, kbd_w)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0)); + keyboard.set_keyboard_callback(FUNC(trs80m2_state::kbd_w)); // internal RAM RAM(config, RAM_TAG).set_default_size("256K").set_extra_options("512K,768K,1M"); diff --git a/src/mame/drivers/ts802.cpp b/src/mame/drivers/ts802.cpp index 1f3ca782d91..d8fcc909224 100644 --- a/src/mame/drivers/ts802.cpp +++ b/src/mame/drivers/ts802.cpp @@ -191,7 +191,8 @@ void ts802_state::init_ts802() membank("bankw0")->configure_entry(0, &main[0x0000]); } -MACHINE_CONFIG_START(ts802_state::ts802) +void ts802_state::ts802(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 16_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &ts802_state::ts802_mem); @@ -199,8 +200,8 @@ MACHINE_CONFIG_START(ts802_state::ts802) //m_maincpu->set_daisy_config(daisy_chain_intf); // causes problems /* Devices */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ts802_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(ts802_state::kbd_put)); z80dma_device& dma(Z80DMA(config, "dma", 16_MHz_XTAL / 4)); dma.out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT); @@ -221,7 +222,7 @@ MACHINE_CONFIG_START(ts802_state::ts802) FD1793(config, "fdc", 4'000'000 / 2); // unknown clock FLOPPY_CONNECTOR(config, "fdc:0", ts802_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( ts802 ) diff --git a/src/mame/drivers/ts816.cpp b/src/mame/drivers/ts816.cpp index 62f2070594c..b6c59cccdb4 100644 --- a/src/mame/drivers/ts816.cpp +++ b/src/mame/drivers/ts816.cpp @@ -263,7 +263,8 @@ void ts816_state::init_ts816() membank("bank2")->configure_entry(1, &rams[0x1e000]); } -MACHINE_CONFIG_START(ts816_state::ts816) +void ts816_state::ts816(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(16'000'000) / 4); m_maincpu->set_addrmap(AS_PROGRAM, &ts816_state::ts816_mem); @@ -271,8 +272,8 @@ MACHINE_CONFIG_START(ts816_state::ts816) m_maincpu->set_daisy_config(daisy_chain); /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ts816_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(ts816_state::kbd_put)); //z80sio_device& sio0(Z80SIO(config, "sio0", XTAL(16'000'000) / 4)); //sio0.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); @@ -310,7 +311,7 @@ MACHINE_CONFIG_START(ts816_state::ts816) z80dma_device& dma(Z80DMA(config, "dma", XTAL(16'000'000) / 4)); //dma.out_busreq_callback().set(FUNC(ts816_state::busreq_w)); dma.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( ts816 ) diff --git a/src/mame/drivers/v6809.cpp b/src/mame/drivers/v6809.cpp index c9fbcad7fcc..d4122dea7e3 100644 --- a/src/mame/drivers/v6809.cpp +++ b/src/mame/drivers/v6809.cpp @@ -311,8 +311,8 @@ MACHINE_CONFIG_START(v6809_state::v6809) m_crtc->set_update_row_callback(FUNC(v6809_state::crtc_update_row), this); m_crtc->set_on_update_addr_change_callback(FUNC(v6809_state::crtc_update_addr), this); - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(v6809_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(v6809_state::kbd_put)); // port A = drive select and 2 control lines ; port B = keyboard // CB2 connects to the interrupt pin of the RTC (the rtc code doesn't support it) diff --git a/src/mame/drivers/vax11.cpp b/src/mame/drivers/vax11.cpp index 6be5d7cde69..9a799f4e54e 100644 --- a/src/mame/drivers/vax11.cpp +++ b/src/mame/drivers/vax11.cpp @@ -140,18 +140,19 @@ void vax11_state::kbd_put(u8 data) m_term_status = 0xffff; } -MACHINE_CONFIG_START(vax11_state::vax11) +void vax11_state::vax11(machine_config &config) +{ /* basic machine hardware */ T11(config, m_maincpu, XTAL(4'000'000)); // Need proper CPU here m_maincpu->set_initial_mode(0 << 13); m_maincpu->set_addrmap(AS_PROGRAM, &vax11_state::vax11_mem); /* video hardware */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(vax11_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(vax11_state::kbd_put)); RX01(config, "rx01", 0); -MACHINE_CONFIG_END +} ROM_START( vax785 ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) diff --git a/src/mame/drivers/votrpss.cpp b/src/mame/drivers/votrpss.cpp index 8d02332522e..756d567936b 100644 --- a/src/mame/drivers/votrpss.cpp +++ b/src/mame/drivers/votrpss.cpp @@ -262,8 +262,8 @@ MACHINE_CONFIG_START(votrpss_state::votrpss) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* Devices */ - MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) - MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(votrpss_state, kbd_put)) + GENERIC_TERMINAL(config, m_terminal, 0); + m_terminal->set_keyboard_callback(FUNC(votrpss_state::kbd_put)); i8251_device &uart(I8251(config, "uart", 0)); uart.txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); diff --git a/src/mame/drivers/z9001.cpp b/src/mame/drivers/z9001.cpp index 35a1e69c4b0..e29df35bee0 100644 --- a/src/mame/drivers/z9001.cpp +++ b/src/mame/drivers/z9001.cpp @@ -231,8 +231,8 @@ MACHINE_CONFIG_START(z9001_state::z9001) BEEP(config, "beeper", 800).add_route(ALL_OUTPUTS, "mono", 0.50); /* Devices */ - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(z9001_state, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(z9001_state::kbd_put)); MCFG_TIMER_DRIVER_ADD_PERIODIC("z9001_timer", z9001_state, timer_callback, attotime::from_msec(10)) z80pio_device& pio1(Z80PIO(config, "z80pio1", XTAL(9'830'400) / 4)); diff --git a/src/mame/drivers/zrt80.cpp b/src/mame/drivers/zrt80.cpp index c1df58bb97d..f4baf373946 100644 --- a/src/mame/drivers/zrt80.cpp +++ b/src/mame/drivers/zrt80.cpp @@ -312,7 +312,7 @@ void zrt80_state::zrt80(machine_config &config) m_8250->out_int_callback().set_inputline("maincpu", INPUT_LINE_IRQ0); generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); - keyboard.set_keyboard_callback(KEYBOARDCB_PUT(zrt80_state, kbd_put)); + keyboard.set_keyboard_callback(FUNC(zrt80_state::kbd_put)); } /* ROM definition */ diff --git a/src/mame/includes/dc.h b/src/mame/includes/dc.h index 0c8c8558a1d..707adb0cfc7 100644 --- a/src/mame/includes/dc.h +++ b/src/mame/includes/dc.h @@ -79,6 +79,7 @@ class dc_state : public driver_device DECLARE_WRITE64_MEMBER( dc_modem_w ); DECLARE_WRITE8_MEMBER( g1_irq ); DECLARE_WRITE8_MEMBER( pvr_irq ); + DECLARE_WRITE8_MEMBER( maple_irq ); DECLARE_READ64_MEMBER( sh4_soundram_r ); DECLARE_WRITE64_MEMBER( sh4_soundram_w ); DECLARE_WRITE_LINE_MEMBER(aica_irq); @@ -287,6 +288,4 @@ class dc_state : public driver_device #define IST_ERR_ISP_LIMIT 0x00000004 #define IST_ERR_PVRIF_ILL_ADDR 0x00000040 -void dc_maple_irq(running_machine &machine); - #endif // MAME_INCLUDES_DC_H diff --git a/src/mame/machine/dc.cpp b/src/mame/machine/dc.cpp index 0108b7f6187..20d1db3ebf7 100644 --- a/src/mame/machine/dc.cpp +++ b/src/mame/machine/dc.cpp @@ -177,12 +177,14 @@ WRITE8_MEMBER(dc_state::pvr_irq) dc_update_interrupt_status(); } -void dc_maple_irq(running_machine &machine) +WRITE8_MEMBER(dc_state::maple_irq) { - dc_state *state = machine.driver_data(); - - state->dc_sysctrl_regs[SB_ISTNRM] |= IST_DMA_MAPLE; - state->dc_update_interrupt_status(); + switch(data) { + case maple_dc_device::DMA_MAPLE_IRQ: + dc_sysctrl_regs[SB_ISTNRM] |= IST_DMA_MAPLE; + break; + } + dc_update_interrupt_status(); } TIMER_CALLBACK_MEMBER(dc_state::ch2_dma_irq) diff --git a/src/mame/machine/gridkeyb.h b/src/mame/machine/gridkeyb.h index c70669dcb05..c4a41cd1589 100644 --- a/src/mame/machine/gridkeyb.h +++ b/src/mame/machine/gridkeyb.h @@ -8,18 +8,6 @@ #include "machine/keyboard.h" -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define GRIDKEYBCB_PUT(cls, fnc) grid_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), DEVICE_SELF, ((cls *)nullptr)) -#define GRIDKEYBCB_DEVPUT(tag, cls, fnc) grid_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), (tag), ((cls *)nullptr)) - -#define MCFG_GRID_KEYBOARD_CB(cb) \ - downcast(*device).set_keyboard_callback((GRIDKEYBCB_##cb)); - - - /*************************************************************************** DEVICE TYPE GLOBALS ***************************************************************************/ @@ -52,7 +40,12 @@ public: device_t *owner, u32 clock); - template void set_keyboard_callback(Object &&cb) { m_keyboard_cb = std::forward(cb); } + template + void set_keyboard_callback(void (FunctionClass::*callback)(u16 character), const char *name) + { + set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast(nullptr))); + } + void set_keyboard_callback(output_delegate callback) { m_keyboard_cb = callback; } virtual ioport_constructor device_input_ports() const override; diff --git a/src/mame/machine/maple-dc.cpp b/src/mame/machine/maple-dc.cpp index 2d1b962669a..77705c6556b 100644 --- a/src/mame/machine/maple-dc.cpp +++ b/src/mame/machine/maple-dc.cpp @@ -18,13 +18,13 @@ void maple_dc_device::amap(address_map &map) } maple_dc_device::maple_dc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MAPLE_DC, tag, owner, clock) + : device_t(mconfig, MAPLE_DC, tag, owner, clock), + cpu(*this, finder_base::DUMMY_TAG), + irq_cb(*this) { // Do not move that in device_start or there will be a race // condition with the maple devices call to register_port. memset(devices, 0, sizeof(devices)); - cpu = nullptr; - irq_cb = nullptr; } void maple_dc_device::register_port(int port, maple_device *device) @@ -38,8 +38,8 @@ void maple_dc_device::register_port(int port, maple_device *device) void maple_dc_device::device_start() { logerror("maple_dc_device started\n"); - cpu = machine().device(maincpu_tag); timer = timer_alloc(0); + irq_cb.resolve_safe(); mdstar = 0; @@ -86,8 +86,7 @@ void maple_dc_device::device_timer(emu_timer &timer, device_timer_id id, int par case DMA_DONE: dma_state = DMA_IDLE; mdst = 0; - if(irq_cb) - irq_cb(machine()); + irq_cb(DMA_MAPLE_IRQ); break; default: diff --git a/src/mame/machine/maple-dc.h b/src/mame/machine/maple-dc.h index 860294e2d4f..d0219f674fa 100644 --- a/src/mame/machine/maple-dc.h +++ b/src/mame/machine/maple-dc.h @@ -7,19 +7,25 @@ #include "cpu/sh/sh4.h" -#define MCFG_MAPLE_DC_ADD(_tag, _maincpu_tag, _irq_cb) \ - MCFG_DEVICE_ADD(_tag, MAPLE_DC, 0) \ - downcast(*device).set_maincpu_tag(_maincpu_tag); \ - downcast(*device).set_irq_cb(_irq_cb); - class maple_device; class maple_dc_device : public device_t { public: + enum { + DMA_MAPLE_IRQ + }; + + template + maple_dc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag) + : maple_dc_device(mconfig, tag, owner, clock) + { + set_maincpu_tag(std::forward(cpu_tag)); + } + maple_dc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void set_maincpu_tag(const char *new_maincpu_tag) { maincpu_tag = new_maincpu_tag; } - void set_irq_cb(void (*new_irq_cb)(running_machine &)) { irq_cb = new_irq_cb; } + template void set_maincpu_tag(T &&cpu_tag) { cpu.set_tag(std::forward(cpu_tag)); } + auto irq_callback() { return irq_cb.bind(); } DECLARE_READ32_MEMBER(sb_mdstar_r); // 5f6c04 DECLARE_WRITE32_MEMBER(sb_mdstar_w); @@ -59,7 +65,7 @@ private: maple_device *devices[4]; - sh4_device *cpu; + required_device cpu; emu_timer *timer; uint32_t mdstar, mden, mdst, msys; @@ -67,11 +73,9 @@ private: uint32_t dma_state, dma_adr, dma_port, dma_dest; bool dma_endflag; - void (*irq_cb)(running_machine &); + devcb_write8 irq_cb; void dma_step(); - - const char *maincpu_tag; }; DECLARE_DEVICE_TYPE(MAPLE_DC, maple_dc_device) diff --git a/src/mame/machine/teleprinter.cpp b/src/mame/machine/teleprinter.cpp index 1bd3d21e07f..6cbc53090cf 100644 --- a/src/mame/machine/teleprinter.cpp +++ b/src/mame/machine/teleprinter.cpp @@ -218,8 +218,8 @@ MACHINE_CONFIG_START(teleprinter_device::device_add_mconfig) MCFG_SCREEN_SIZE(teleprinter_device::WIDTH*8, teleprinter_device::HEIGHT*8) MCFG_SCREEN_VISIBLE_AREA(0, teleprinter_device::WIDTH*8-1, 0, teleprinter_device::HEIGHT*8-1) MCFG_SCREEN_UPDATE_DEVICE(DEVICE_SELF, teleprinter_device, tp_update) - MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) - MCFG_GENERIC_KEYBOARD_CB(PUT(generic_terminal_device, kbd_put)) + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); + keyboard.set_keyboard_callback(FUNC(generic_terminal_device::kbd_put)); SPEAKER(config, "bell").front_center(); MCFG_DEVICE_ADD("beeper", BEEP, 2'000) diff --git a/src/mame/machine/teleprinter.h b/src/mame/machine/teleprinter.h index f33090399b4..d6817d88066 100644 --- a/src/mame/machine/teleprinter.h +++ b/src/mame/machine/teleprinter.h @@ -14,9 +14,6 @@ #define TELEPRINTER_TAG "teleprinter" #define TELEPRINTER_SCREEN_TAG "tty_screen" -#define MCFG_GENERIC_TELEPRINTER_KEYBOARD_CB(cb) \ - downcast(*device).set_keyboard_callback(KEYBOARDCB_##cb); - /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ -- cgit v1.2.3