From 3d37224601b828e46a2950f9971f78a3c966726a Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Tue, 4 Sep 2018 04:49:13 +0200 Subject: [PATCH] i8279: De-MCFG, nw --- src/devices/machine/i8279.h | 41 ----------------------------------- src/mame/drivers/akaiax80.cpp | 14 ++++++------ src/mame/drivers/i7000.cpp | 10 ++++----- src/mame/drivers/icecold.cpp | 10 ++++----- src/mame/drivers/isbc8010.cpp | 14 ++++++------ src/mame/drivers/marywu.cpp | 8 +++---- src/mame/drivers/maygay1b.cpp | 14 ++++++------ src/mame/drivers/maygayv1.cpp | 8 +++---- src/mame/drivers/mmd1.cpp | 12 +++++----- src/mame/drivers/peyper.cpp | 12 +++++----- src/mame/drivers/pg685.cpp | 12 +++++----- src/mame/drivers/sdk85.cpp | 14 ++++++------ src/mame/drivers/sdk86.cpp | 12 +++++----- src/mame/drivers/selz80.cpp | 12 +++++----- src/mame/drivers/turbo.cpp | 24 ++++++++++---------- 15 files changed, 88 insertions(+), 129 deletions(-) diff --git a/src/devices/machine/i8279.h b/src/devices/machine/i8279.h index fd78d23ed62..6deac956cfc 100644 --- a/src/devices/machine/i8279.h +++ b/src/devices/machine/i8279.h @@ -35,53 +35,12 @@ #pragma once - - - -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define MCFG_I8279_OUT_IRQ_CB(_devcb) \ - downcast(*device).set_out_irq_callback(DEVCB_##_devcb); - -#define MCFG_I8279_OUT_SL_CB(_devcb) \ - downcast(*device).set_out_sl_callback(DEVCB_##_devcb); - -#define MCFG_I8279_OUT_DISP_CB(_devcb) \ - downcast(*device).set_out_disp_callback(DEVCB_##_devcb); - -#define MCFG_I8279_OUT_BD_CB(_devcb) \ - downcast(*device).set_out_bd_callback(DEVCB_##_devcb); - -#define MCFG_I8279_IN_RL_CB(_devcb) \ - downcast(*device).set_in_rl_callback(DEVCB_##_devcb); - -#define MCFG_I8279_IN_SHIFT_CB(_devcb) \ - downcast(*device).set_in_shift_callback(DEVCB_##_devcb); - -#define MCFG_I8279_IN_CTRL_CB(_devcb) \ - downcast(*device).set_in_ctrl_callback(DEVCB_##_devcb); - -/*************************************************************************** - TYPE DEFINITIONS -***************************************************************************/ - -// ======================> i8279_device - class i8279_device : public device_t { public: // construction/destruction i8279_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_out_irq_callback(Object &&cb) { return m_out_irq_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_sl_callback(Object &&cb) { return m_out_sl_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_disp_callback(Object &&cb) { return m_out_disp_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_bd_callback(Object &&cb) { return m_out_bd_cb.set_callback(std::forward(cb)); } - template devcb_base &set_in_rl_callback(Object &&cb) { return m_in_rl_cb.set_callback(std::forward(cb)); } - template devcb_base &set_in_shift_callback(Object &&cb) { return m_in_shift_cb.set_callback(std::forward(cb)); } - template devcb_base &set_in_ctrl_callback(Object &&cb) { return m_in_ctrl_cb.set_callback(std::forward(cb)); } auto out_irq_callback() { return m_out_irq_cb.bind(); } auto out_sl_callback() { return m_out_sl_cb.bind(); } auto out_disp_callback() { return m_out_disp_cb.bind(); } diff --git a/src/mame/drivers/akaiax80.cpp b/src/mame/drivers/akaiax80.cpp index f2dd789a289..7a53beeb242 100644 --- a/src/mame/drivers/akaiax80.cpp +++ b/src/mame/drivers/akaiax80.cpp @@ -107,13 +107,13 @@ MACHINE_CONFIG_START(ax80_state::ax80) MCFG_DEVICE_ADD(PPI0_TAG, I8255A, 0) MCFG_DEVICE_ADD(PPI1_TAG, I8255A, 0) - MCFG_DEVICE_ADD("kdc", I8279, 6554800 / 8) // Keyboard/Display Controller - //MCFG_I8279_OUT_IRQ_CB(INPUTLINE("maincpu", UPD7810_INTF1)) // irq - //MCFG_I8279_OUT_SL_CB(WRITE8(*this, ax80_state, scanlines_w)) // scan SL lines - //MCFG_I8279_OUT_DISP_CB(WRITE8(*this, ax80_state, digit_w)) // display A&B - //MCFG_I8279_IN_RL_CB(READ8(*this, ax80_state, kbd_r)) // kbd RL lines - //MCFG_I8279_IN_SHIFT_CB(VCC) // not connected - //MCFG_I8279_IN_CTRL_CB(VCC) // not connected + I8279(config, "kdc", 6554800 / 8); // Keyboard/Display Controller + //kdc.out_irq_calback().set_inputline("maincpu", UPD7810_INTF1); // irq + //kdc.out_sl_callback().set(FUNC(ax80_state::scanlines_w)); // scan SL lines + //kdc.out_disp_callback().set(FUNC(ax80_state::digit_w)); // display A&B + //kdc.in_rl_callback().set(FUNC(ax80_state::kbd_r)) // kbd RL lines + //kdc.in_shift_callback().set_constant(1); // not connected + //kdc.in_ctrl_callback().set_constant(1); // not connected MACHINE_CONFIG_END static INPUT_PORTS_START( ax80 ) diff --git a/src/mame/drivers/i7000.cpp b/src/mame/drivers/i7000.cpp index 99eecfad917..d2e06197003 100644 --- a/src/mame/drivers/i7000.cpp +++ b/src/mame/drivers/i7000.cpp @@ -380,11 +380,11 @@ MACHINE_CONFIG_START(i7000_state::i7000) MCFG_PIT8253_OUT2_HANDLER(WRITELINE("speaker", speaker_sound_device, level_w)) /* Keyboard interface */ - MCFG_DEVICE_ADD("i8279", I8279, 4000000) /* guessed value. TODO: verify on PCB */ - MCFG_I8279_OUT_SL_CB(WRITE8(*this, i7000_state, i7000_scanlines_w)) // scan SL lines - MCFG_I8279_IN_RL_CB(READ8(*this, i7000_state, i7000_kbd_r)) // kbd RL lines - MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // TODO: Shift key - MCFG_I8279_IN_CTRL_CB(CONSTANT(1)) // TODO: Ctrl key + i8279_device &kbdc(I8279(config, "i8279", 4000000)); /* guessed value. TODO: verify on PCB */ + kbdc.out_sl_callback().set(FUNC(i7000_state::i7000_scanlines_w)); // scan SL lines + kbdc.in_rl_callback().set(FUNC(i7000_state::i7000_kbd_r)); // kbd RL lines + kbdc.in_shift_callback().set_constant(1); // TODO: Shift key + kbdc.in_ctrl_callback().set_constant(1); // TODO: Ctrl key /* Cartridge slot */ MCFG_GENERIC_CARTSLOT_ADD("cardslot", generic_romram_plain_slot, "i7000_card") diff --git a/src/mame/drivers/icecold.cpp b/src/mame/drivers/icecold.cpp index 99e999300ea..79ba88d9ca6 100644 --- a/src/mame/drivers/icecold.cpp +++ b/src/mame/drivers/icecold.cpp @@ -385,11 +385,11 @@ MACHINE_CONFIG_START(icecold_state::icecold) pia2.irqa_handler().set_inputline("maincpu", M6809_IRQ_LINE); pia2.irqb_handler().set_inputline("maincpu", M6809_IRQ_LINE); - MCFG_DEVICE_ADD("i8279", I8279, XTAL(6'000'000)/4) - MCFG_I8279_OUT_IRQ_CB(WRITELINE("pia0", pia6821_device, cb1_w)) // irq - MCFG_I8279_OUT_SL_CB(WRITE8(*this, icecold_state, scanlines_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, icecold_state, digit_w)) // display A&B - MCFG_I8279_IN_RL_CB(READ8(*this, icecold_state, kbd_r)) // kbd RL lines + i8279_device &kbdc(I8279(config, "i8279", XTAL(6'000'000)/4)); + kbdc.out_irq_callback().set("pia0", FUNC(pia6821_device::cb1_w)); // irq + kbdc.out_sl_callback().set(FUNC(icecold_state::scanlines_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(icecold_state::digit_w)); // display A&B + kbdc.in_rl_callback().set(FUNC(icecold_state::kbd_r)); // kbd RL lines // 30Hz signal from CH-C of ay0 MCFG_TIMER_DRIVER_ADD_PERIODIC("sint_timer", icecold_state, icecold_sint_timer, attotime::from_hz(30)) diff --git a/src/mame/drivers/isbc8010.cpp b/src/mame/drivers/isbc8010.cpp index 0d54771f6df..5535f9bb504 100644 --- a/src/mame/drivers/isbc8010.cpp +++ b/src/mame/drivers/isbc8010.cpp @@ -225,13 +225,13 @@ MACHINE_CONFIG_START(isbc8010_state::isbc8010) // MCFG_AY51013_WRITE_SO_CB(WRITE8(*this, sdk80_state, nascom1_hd6402_so)) /* Devices */ -// MCFG_DEVICE_ADD("i8279", I8279, 3100000) // based on divider -// MCFG_I8279_OUT_IRQ_CB(INPUTLINE("maincpu", I8085_RST55_LINE)) // irq -// MCFG_I8279_OUT_SL_CB(WRITE8(*this, sdk80_state, scanlines_w)) // scan SL lines -// MCFG_I8279_OUT_DISP_CB(WRITE8(*this, sdk80_state, digit_w)) // display A&B -// MCFG_I8279_IN_RL_CB(READ8(*this, sdk80_state, kbd_r)) // kbd RL lines -// MCFG_I8279_IN_SHIFT_CB(VCC) // Shift key -// MCFG_I8279_IN_CTRL_CB(VCC) +// i8279_device &kbdc(I8279(config, "i8279", 3100000)); // based on divider +// kbdc.out_irq_callback().set_inputline("maincpu", I8085_RST55_LINE); // irq +// kbdc.out_sl_callback().set(FUNC(sdk80_state::scanlines_w)); // scan SL lines +// kbdc.out_disp_callback().set(FUNC(sdk80_state::digit_w)); // display A&B +// kbdc.in_rl_callback().set(FUNC(sdk80_state::kbd_r)); // kbd RL lines +// kbdc.in_shift_callback().set_constant(1); // Shift key +// kbdc.in_ctrl_callback().set_constant(1); MACHINE_CONFIG_END diff --git a/src/mame/drivers/marywu.cpp b/src/mame/drivers/marywu.cpp index ee61ae6c1f9..00cac9256d4 100644 --- a/src/mame/drivers/marywu.cpp +++ b/src/mame/drivers/marywu.cpp @@ -194,10 +194,10 @@ MACHINE_CONFIG_START(marywu_state::marywu) //TODO: figure out what each bit is mapped to in the 80c31 ports P1 and P3 /* Keyboard & display interface */ - MCFG_DEVICE_ADD("i8279", I8279, XTAL(10'738'635)) /* should it be perhaps a fraction of the XTAL clock ? */ - MCFG_I8279_OUT_SL_CB(WRITE8(*this, marywu_state, multiplex_7seg_w)) // select block of 7seg modules by multiplexing the SL scan lines - MCFG_I8279_IN_RL_CB(READ8(*this, marywu_state, keyboard_r)) // keyboard Return Lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, marywu_state, display_7seg_data_w)) + i8279_device &kbdc(I8279(config, "i8279", XTAL(10'738'635))); // should it be perhaps a fraction of the XTAL clock ? + kbdc.out_sl_callback().set(FUNC(marywu_state::multiplex_7seg_w)); // select block of 7seg modules by multiplexing the SL scan lines + kbdc.in_rl_callback().set(FUNC(marywu_state::keyboard_r)); // keyboard Return Lines + kbdc.out_disp_callback().set(FUNC(marywu_state::display_7seg_data_w)); /* Video */ config.set_default_layout(layout_marywu); diff --git a/src/mame/drivers/maygay1b.cpp b/src/mame/drivers/maygay1b.cpp index 07d86582e3b..c1ae852cbfd 100644 --- a/src/mame/drivers/maygay1b.cpp +++ b/src/mame/drivers/maygay1b.cpp @@ -811,16 +811,16 @@ MACHINE_CONFIG_START(maygay1b_state::maygay_m1) MCFG_TIMER_DRIVER_ADD_PERIODIC("nmitimer", maygay1b_state, maygay1b_nmitimer_callback, attotime::from_hz(75)) // freq? - MCFG_DEVICE_ADD("i8279", I8279, M1_MASTER_CLOCK/4) // unknown clock - MCFG_I8279_OUT_SL_CB(WRITE8(*this, maygay1b_state, scanlines_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, maygay1b_state, lamp_data_w)) // display A&B - MCFG_I8279_IN_RL_CB(READ8(*this, maygay1b_state, kbd_r)) // kbd RL lines + i8279_device &kbdc(I8279(config, "i8279", M1_MASTER_CLOCK/4)); // unknown clock + kbdc.out_sl_callback().set(FUNC(maygay1b_state::scanlines_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(maygay1b_state::lamp_data_w)); // display A&B + kbdc.in_rl_callback().set(FUNC(maygay1b_state::kbd_r)); // kbd RL lines #ifndef USE_MCU // on M1B there is a 2nd i8279, on M1 / M1A a 8051 handles this task! - MCFG_DEVICE_ADD("i8279_2", I8279, M1_MASTER_CLOCK/4) // unknown clock - MCFG_I8279_OUT_SL_CB(WRITE8(*this, maygay1b_state, scanlines_2_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, maygay1b_state, lamp_data_2_w)) // display A&B + i8279_device &kbdc2(I8279(config, "i8279_2", M1_MASTER_CLOCK/4)); // unknown clock + kbdc2.out_sl_callback().set(FUNC(maygay1b_state::scanlines_2_w)); // scan SL lines + kbdc2.out_disp_callback().set(FUNC(maygay1b_state::lamp_data_2_w)); // display A&B #endif MCFG_DEVICE_ADD("reel0", REEL, STARPOINT_48STEP_REEL, 1, 3, 0x09, 4) diff --git a/src/mame/drivers/maygayv1.cpp b/src/mame/drivers/maygayv1.cpp index eecd849ad8c..fb07a7e9cc6 100644 --- a/src/mame/drivers/maygayv1.cpp +++ b/src/mame/drivers/maygayv1.cpp @@ -914,10 +914,10 @@ MACHINE_CONFIG_START(maygayv1_state::maygayv1) MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, maygayv1_state, duart_irq_handler)) MCFG_MC68681_A_TX_CALLBACK(WRITELINE(*this, maygayv1_state, duart_txa)) - MCFG_DEVICE_ADD("i8279", I8279, MASTER_CLOCK/4) // unknown clock - MCFG_I8279_OUT_SL_CB(WRITE8(*this, maygayv1_state, strobe_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, maygayv1_state, lamp_data_w)) // display A&B - MCFG_I8279_IN_RL_CB(READ8(*this, maygayv1_state, kbd_r)) // kbd RL lines + i8279_device &kbdc(I8279(config, "i8279", MASTER_CLOCK/4)); // unknown clock + kbdc.out_sl_callback().set(FUNC(maygayv1_state::strobe_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(maygayv1_state::lamp_data_w)); // display A&B + kbdc.in_rl_callback().set(FUNC(maygayv1_state::kbd_r)); // kbd RL lines SPEAKER(config, "mono").front_center(); diff --git a/src/mame/drivers/mmd1.cpp b/src/mame/drivers/mmd1.cpp index 7a47f3c8fca..6e34f766fac 100644 --- a/src/mame/drivers/mmd1.cpp +++ b/src/mame/drivers/mmd1.cpp @@ -519,12 +519,12 @@ MACHINE_CONFIG_START(mmd1_state::mmd2) config.set_default_layout(layout_mmd2); /* Devices */ - MCFG_DEVICE_ADD("i8279", I8279, 400000) // based on divider - MCFG_I8279_OUT_SL_CB(WRITE8(*this, mmd1_state, mmd2_scanlines_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, mmd1_state, mmd2_digit_w)) // display A&B - MCFG_I8279_IN_RL_CB(READ8(*this, mmd1_state, mmd2_kbd_r)) // kbd RL lines - MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // Shift key - MCFG_I8279_IN_CTRL_CB(CONSTANT(1)) + i8279_device &kbdc(I8279(config, "i8279", 400000)); // based on divider + kbdc.out_sl_callback().set(FUNC(mmd1_state::mmd2_scanlines_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(mmd1_state::mmd2_digit_w)); // display A&B + kbdc.in_rl_callback().set(FUNC(mmd1_state::mmd2_kbd_r)); // kbd RL lines + kbdc.in_shift_callback().set_constant(1); // Shift key + kbdc.in_ctrl_callback().set_constant(1); MACHINE_CONFIG_END diff --git a/src/mame/drivers/peyper.cpp b/src/mame/drivers/peyper.cpp index 1c2da4509c6..8e0b3cbd7e9 100644 --- a/src/mame/drivers/peyper.cpp +++ b/src/mame/drivers/peyper.cpp @@ -625,12 +625,12 @@ MACHINE_CONFIG_START(peyper_state::peyper) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "ayvol", 1.0) /* Devices */ - MCFG_DEVICE_ADD("i8279", I8279, 2500000) - MCFG_I8279_OUT_SL_CB(WRITE8(*this, peyper_state, col_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, peyper_state, disp_w)) // display A&B - MCFG_I8279_IN_RL_CB(READ8(*this, peyper_state, sw_r)) // kbd RL lines - MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // Shift key - MCFG_I8279_IN_CTRL_CB(CONSTANT(1)) + i8279_device &kbdc(I8279(config, "i8279", 2500000)); + kbdc.out_sl_callback().set(FUNC(peyper_state::col_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(peyper_state::disp_w)); // display A&B + kbdc.in_rl_callback().set(FUNC(peyper_state::sw_r)); // kbd RL lines + kbdc.in_shift_callback().set_constant(1); // Shift key + kbdc.in_ctrl_callback().set_constant(1); MACHINE_CONFIG_END // Not allowed to set up an array all at once, so we have this mess diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp index 1ea1fd48e77..1bdc6fdc617 100644 --- a/src/mame/drivers/pg685.cpp +++ b/src/mame/drivers/pg685.cpp @@ -458,8 +458,8 @@ MACHINE_CONFIG_START(pg685_state::pg675) // rs232 port // keyboard - MCFG_DEVICE_ADD("kbdc", I8279, XTAL(12'288'000) / 6) // divider guessed - MCFG_I8279_OUT_IRQ_CB(WRITELINE("mainpic", pic8259_device, ir0_w)) + i8279_device &kbdc(I8279(config, "kbdc", XTAL(12'288'000) / 6)); // divider guessed + kbdc.out_irq_callback().set("mainpic", FUNC(pic8259_device::ir0_w)); // printer @@ -508,8 +508,8 @@ MACHINE_CONFIG_START(pg685_state::pg685) // rs232 port // keyboard - MCFG_DEVICE_ADD("kbdc", I8279, XTAL(12'288'000) / 6) // divider guessed - MCFG_I8279_OUT_IRQ_CB(WRITELINE("mainpic", pic8259_device, ir0_w)) + i8279_device &kbdc(I8279(config, "kbdc", XTAL(12'288'000) / 6)); // divider guessed + kbdc.out_irq_callback().set("mainpic", FUNC(pic8259_device::ir0_w)); // printer @@ -559,8 +559,8 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12) // rs232 port // keyboard - MCFG_DEVICE_ADD("kbdc", I8279, 12288000 / 6) // wrong - MCFG_I8279_OUT_IRQ_CB(WRITELINE("mainpic", pic8259_device, ir0_w)) + i8279_device &kbdc(I8279(config, "kbdc", 12288000 / 6)); // wrong + kbdc.out_irq_callback().set("mainpic", FUNC(pic8259_device::ir0_w)); // printer diff --git a/src/mame/drivers/sdk85.cpp b/src/mame/drivers/sdk85.cpp index dbca31faeb1..6023d6542aa 100644 --- a/src/mame/drivers/sdk85.cpp +++ b/src/mame/drivers/sdk85.cpp @@ -167,13 +167,13 @@ MACHINE_CONFIG_START(sdk85_state::sdk85) config.set_default_layout(layout_sdk85); /* Devices */ - MCFG_DEVICE_ADD("kdc", I8279, 6.144_MHz_XTAL / 2) // Keyboard/Display Controller (A13) - MCFG_I8279_OUT_IRQ_CB(INPUTLINE("maincpu", I8085_RST55_LINE)) // irq - MCFG_I8279_OUT_SL_CB(WRITE8(*this, sdk85_state, scanlines_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, sdk85_state, digit_w)) // display A&B - MCFG_I8279_IN_RL_CB(READ8(*this, sdk85_state, kbd_r)) // kbd RL lines - MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // Shift key - MCFG_I8279_IN_CTRL_CB(CONSTANT(1)) + i8279_device &kdc(I8279(config, "kdc", 6.144_MHz_XTAL / 2)); // Keyboard/Display Controller (A13) + kdc.out_irq_callback().set_inputline("maincpu", I8085_RST55_LINE); // irq + kdc.out_sl_callback().set(FUNC(sdk85_state::scanlines_w)); // scan SL lines + kdc.out_disp_callback().set(FUNC(sdk85_state::digit_w)); // display A&B + kdc.in_rl_callback().set(FUNC(sdk85_state::kbd_r)); // kbd RL lines + kdc.in_shift_callback().set_constant(1); // Shift key + kdc.in_ctrl_callback().set_constant(1); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/sdk86.cpp b/src/mame/drivers/sdk86.cpp index 0e73afc4be8..7bec26e7c31 100644 --- a/src/mame/drivers/sdk86.cpp +++ b/src/mame/drivers/sdk86.cpp @@ -170,12 +170,12 @@ MACHINE_CONFIG_START(sdk86_state::sdk86) usart_clock.signal_handler().set(I8251_TAG, FUNC(i8251_device::write_txc)); usart_clock.signal_handler().append(I8251_TAG, FUNC(i8251_device::write_rxc)); - MCFG_DEVICE_ADD("i8279", I8279, 2500000) // based on divider - MCFG_I8279_OUT_SL_CB(WRITE8(*this, sdk86_state, scanlines_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, sdk86_state, digit_w)) // display A&B - MCFG_I8279_IN_RL_CB(READ8(*this, sdk86_state, kbd_r)) // kbd RL lines - MCFG_I8279_IN_SHIFT_CB(CONSTANT(0)) // Shift key - MCFG_I8279_IN_CTRL_CB(CONSTANT(0)) + i8279_device &kbdc(I8279(config, "i8279", 2500000)); // based on divider + kbdc.out_sl_callback().set(FUNC(sdk86_state::scanlines_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(sdk86_state::digit_w)); // display A&B + kbdc.in_rl_callback().set(FUNC(sdk86_state::kbd_r)); // kbd RL lines + kbdc.in_shift_callback().set_constant(0); // Shift key + kbdc.in_ctrl_callback().set_constant(0); MCFG_DEVICE_ADD("port1", I8255A, 0) MCFG_DEVICE_ADD("port2", I8255A, 0) diff --git a/src/mame/drivers/selz80.cpp b/src/mame/drivers/selz80.cpp index 281731e6e2f..ef9388a11e5 100644 --- a/src/mame/drivers/selz80.cpp +++ b/src/mame/drivers/selz80.cpp @@ -242,12 +242,12 @@ MACHINE_CONFIG_START(selz80_state::selz80) MCFG_RS232_DSR_HANDLER(WRITELINE("uart", i8251_device, write_dsr)) MCFG_RS232_CTS_HANDLER(WRITELINE("uart", i8251_device, write_cts)) - MCFG_DEVICE_ADD("i8279", I8279, 5000000 / 2) // based on divider - MCFG_I8279_OUT_SL_CB(WRITE8(*this, selz80_state, scanlines_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, selz80_state, digit_w)) // display A&B - MCFG_I8279_IN_RL_CB(READ8(*this, selz80_state, kbd_r)) // kbd RL lines - MCFG_I8279_IN_SHIFT_CB(CONSTANT(1)) // Shift key - MCFG_I8279_IN_CTRL_CB(CONSTANT(1)) + i8279_device &kbdc(I8279(config, "i8279", 5000000 / 2)); // based on divider + kbdc.out_sl_callback().set(FUNC(selz80_state::scanlines_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(selz80_state::digit_w)); // display A&B + kbdc.in_rl_callback().set(FUNC(selz80_state::kbd_r)); // kbd RL lines + kbdc.in_shift_callback().set_constant(1); // Shift key + kbdc.in_ctrl_callback().set_constant(1); MACHINE_CONFIG_END MACHINE_CONFIG_START(selz80_state::dagz80) diff --git a/src/mame/drivers/turbo.cpp b/src/mame/drivers/turbo.cpp index 2b7c5c6e023..6f63ea927f2 100644 --- a/src/mame/drivers/turbo.cpp +++ b/src/mame/drivers/turbo.cpp @@ -870,10 +870,10 @@ MACHINE_CONFIG_START(turbo_state::turbo) m_i8255_3->in_pb_callback().set_ioport("DSW2"); m_i8255_3->out_pc_callback().set(FUNC(turbo_state::turbo_ppi3c_w)); - MCFG_DEVICE_ADD("i8279", I8279, MASTER_CLOCK/4) // unknown clock - MCFG_I8279_OUT_SL_CB(WRITE8(*this, turbo_state, scanlines_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, turbo_state, digit_w)) // display A&B - MCFG_I8279_IN_RL_CB(IOPORT("DSW1")) // kbd RL lines + i8279_device &kbdc(I8279(config, "i8279", MASTER_CLOCK/4)); // unknown clock + kbdc.out_sl_callback().set(FUNC(turbo_state::scanlines_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(turbo_state::digit_w)); // display A&B + kbdc.in_rl_callback().set_ioport("DSW1"); // kbd RL lines ls259_device &outlatch(LS259(config, "outlatch")); // IC125 - outputs passed through CN5 outlatch.q_out_cb<0>().set(FUNC(turbo_state::coin_meter_1_w)); @@ -915,10 +915,10 @@ MACHINE_CONFIG_START(turbo_state::subroc3d) m_i8255_1->out_pb_callback().set(FUNC(turbo_state::subroc3d_sound_b_w)); m_i8255_1->out_pc_callback().set(FUNC(turbo_state::subroc3d_sound_c_w)); - MCFG_DEVICE_ADD("i8279", I8279, MASTER_CLOCK/4) // unknown clock - MCFG_I8279_OUT_SL_CB(WRITE8(*this, turbo_state, scanlines_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, turbo_state, digit_w)) // display A&B - MCFG_I8279_IN_RL_CB(IOPORT("DSW1")) // kbd RL lines + i8279_device &kbdc(I8279(config, "i8279", MASTER_CLOCK/4)); // unknown clock + kbdc.out_sl_callback().set(FUNC(turbo_state::scanlines_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(turbo_state::digit_w)); // display A&B + kbdc.in_rl_callback().set_ioport("DSW1"); // kbd RL lines /* video hardware */ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_turbo) @@ -963,10 +963,10 @@ MACHINE_CONFIG_START(turbo_state::buckrog) m_i8255_1->out_pb_callback().set(FUNC(turbo_state::buckrog_sound_b_w)); m_i8255_1->out_pc_callback().set(FUNC(turbo_state::buckrog_ppi1c_w)); - MCFG_DEVICE_ADD("i8279", I8279, MASTER_CLOCK/4) // unknown clock - MCFG_I8279_OUT_SL_CB(WRITE8(*this, turbo_state, scanlines_w)) // scan SL lines - MCFG_I8279_OUT_DISP_CB(WRITE8(*this, turbo_state, digit_w)) // display A&B - MCFG_I8279_IN_RL_CB(IOPORT("DSW1")) // kbd RL lines + i8279_device &kbdc(I8279(config, "i8279", MASTER_CLOCK/4)); // unknown clock + kbdc.out_sl_callback().set(FUNC(turbo_state::scanlines_w)); // scan SL lines + kbdc.out_disp_callback().set(FUNC(turbo_state::digit_w)); // display A&B + kbdc.in_rl_callback().set_ioport("DSW1"); // kbd RL lines /* video hardware */ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_turbo)