diff options
Diffstat (limited to 'src/mame/drivers/mappy.cpp')
-rw-r--r-- | src/mame/drivers/mappy.cpp | 272 |
1 files changed, 135 insertions, 137 deletions
diff --git a/src/mame/drivers/mappy.cpp b/src/mame/drivers/mappy.cpp index 58cf22ed556..6c948e7a9b3 100644 --- a/src/mame/drivers/mappy.cpp +++ b/src/mame/drivers/mappy.cpp @@ -1333,22 +1333,21 @@ MACHINE_CONFIG_START(mappy_state::superpac_common) MCFG_DEVICE_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */ MCFG_DEVICE_PROGRAM_MAP(superpac_cpu2_map) - MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 2M on CPU board - MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(*this, mappy_state, int_on_2_w)) - MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(*this, mappy_state, int_on_w)) - MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE("namco", namco_15xx_device, sound_enable_w)) - MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE("namcoio_1", namcoio_device, set_reset_line)) MCFG_DEVCB_INVERT - MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("namcoio_2", namcoio_device, set_reset_line)) MCFG_DEVCB_INVERT - MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(INPUTLINE("sub", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT + ls259_device &mainlatch(LS259(config, "mainlatch")); // 2M on CPU board + mainlatch.q_out_cb<0>().set(FUNC(mappy_state::int_on_2_w)); + mainlatch.q_out_cb<1>().set(FUNC(mappy_state::int_on_w)); + mainlatch.q_out_cb<3>().set(m_namco_15xx, FUNC(namco_15xx_device::sound_enable_w)); + mainlatch.q_out_cb<4>().set(m_namcoio[0], FUNC(namcoio_device::set_reset_line)).invert(); + mainlatch.q_out_cb<4>().append(m_namcoio[1], FUNC(namcoio_device::set_reset_line)).invert(); + mainlatch.q_out_cb<5>().set_inputline(m_subcpu, INPUT_LINE_RESET).invert(); MCFG_WATCHDOG_ADD("watchdog") MCFG_WATCHDOG_VBLANK_INIT("screen", 8) - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */ - /* synchronization of the CPUs */ + MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs - MCFG_DEVICE_ADD("dipmux", LS157, 0) - MCFG_74157_A_IN_CB(IOPORT("DSW2")) - MCFG_74157_B_IN_CB(IOPORT("DSW2")) MCFG_DEVCB_RSHIFT(4) + ls157_device &dipmux(LS157(config, "dipmux")); + dipmux.a_in_callback().set_ioport("DSW2"); + dipmux.b_in_callback().set_ioport("DSW2").rshift(4); /* video hardware */ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_superpac) @@ -1373,60 +1372,60 @@ MACHINE_CONFIG_START(mappy_state::superpac_common) MACHINE_CONFIG_END -MACHINE_CONFIG_START(mappy_state::superpac) - +void mappy_state::superpac(machine_config &config) +{ superpac_common(config); - MCFG_DEVICE_ADD("namcoio_1", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("BUTTONS")) - - MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(READ8("dipmux", ls157_device, output_r)) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("DSW1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("DSW1")) MCFG_DEVCB_RSHIFT(4) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("DSW0")) - MCFG_NAMCO56XX_OUT_0_CB(WRITELINE("dipmux", ls157_device, select_w)) MCFG_DEVCB_BIT(0) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(mappy_state::pacnpal) + NAMCO_56XX(config, m_namcoio[0], 0); + m_namcoio[0]->in_callback<0>().set_ioport("COINS"); + m_namcoio[0]->in_callback<1>().set_ioport("P1"); + m_namcoio[0]->in_callback<2>().set_ioport("P2"); + m_namcoio[0]->in_callback<3>().set_ioport("BUTTONS"); + + NAMCO_56XX(config, m_namcoio[1], 0); + m_namcoio[1]->in_callback<0>().set("dipmux", FUNC(ls157_device::output_r)); + m_namcoio[1]->in_callback<1>().set_ioport("DSW1"); + m_namcoio[1]->in_callback<2>().set_ioport("DSW1").rshift(4); + m_namcoio[1]->in_callback<3>().set_ioport("DSW0"); + m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0); +} +void mappy_state::pacnpal(machine_config &config) +{ superpac_common(config); - MCFG_DEVICE_ADD("namcoio_1", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_NAMCO56XX_OUT_0_CB(WRITE8(*this, mappy_state, out_lamps)) - - MCFG_DEVICE_ADD("namcoio_2", NAMCO_59XX, 0) - MCFG_NAMCO59XX_IN_0_CB(READ8("dipmux", ls157_device, output_r)) - MCFG_NAMCO59XX_IN_1_CB(IOPORT("DSW1")) - MCFG_NAMCO59XX_IN_2_CB(IOPORT("DSW1")) MCFG_DEVCB_RSHIFT(4) - MCFG_NAMCO59XX_IN_3_CB(IOPORT("DSW0")) - MCFG_NAMCO59XX_OUT_0_CB(WRITELINE("dipmux", ls157_device, select_w)) MCFG_DEVCB_BIT(0) -MACHINE_CONFIG_END + NAMCO_56XX(config, m_namcoio[0], 0); + m_namcoio[0]->in_callback<0>().set_ioport("COINS"); + m_namcoio[0]->in_callback<1>().set_ioport("P1"); + m_namcoio[0]->in_callback<2>().set_ioport("P2"); + m_namcoio[0]->in_callback<3>().set_ioport("BUTTONS"); + m_namcoio[0]->out_callback<0>().set(FUNC(mappy_state::out_lamps)); + + NAMCO_59XX(config, m_namcoio[1], 0); + m_namcoio[1]->in_callback<0>().set("dipmux", FUNC(ls157_device::output_r)); + m_namcoio[1]->in_callback<1>().set_ioport("DSW1"); + m_namcoio[1]->in_callback<2>().set_ioport("DSW1").rshift(4); + m_namcoio[1]->in_callback<3>().set_ioport("DSW0"); + m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0); +} MACHINE_CONFIG_START(mappy_state::grobda) superpac_common(config); - MCFG_DEVICE_ADD("namcoio_1", NAMCO_58XX, 0) - MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) + NAMCO_58XX(config, m_namcoio[0], 0); + m_namcoio[0]->in_callback<0>().set_ioport("COINS"); + m_namcoio[0]->in_callback<1>().set_ioport("P1"); + m_namcoio[0]->in_callback<2>().set_ioport("P2"); + m_namcoio[0]->in_callback<3>().set_ioport("BUTTONS"); - MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(READ8("dipmux", ls157_device, output_r)) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("DSW1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("DSW1")) MCFG_DEVCB_RSHIFT(4) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("DSW0")) - MCFG_NAMCO56XX_OUT_0_CB(WRITELINE("dipmux", ls157_device, select_w)) MCFG_DEVCB_BIT(0) + NAMCO_56XX(config, m_namcoio[1], 0); + m_namcoio[1]->in_callback<0>().set("dipmux", FUNC(ls157_device::output_r)); + m_namcoio[1]->in_callback<1>().set_ioport("DSW1"); + m_namcoio[1]->in_callback<2>().set_ioport("DSW1").rshift(4); + m_namcoio[1]->in_callback<3>().set_ioport("DSW0"); + m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0); /* sound hardware */ MCFG_DEVICE_ADD("dac", DAC_4BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.275) // alternate route to 15XX-related DAC? @@ -1447,36 +1446,36 @@ MACHINE_CONFIG_START(mappy_state::phozon) MCFG_DEVICE_ADD("sub2", MC6809E, PIXEL_CLOCK/4) /* SUB CPU */ MCFG_DEVICE_PROGRAM_MAP(phozon_cpu3_map) - MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 5C - MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(*this, mappy_state, int_on_2_w)) - MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(*this, mappy_state, int_on_w)) - MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, mappy_state, int_on_3_w)) - MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE("namco", namco_15xx_device, sound_enable_w)) - MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE("namcoio_1", namco58xx_device, set_reset_line)) MCFG_DEVCB_INVERT - MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("namcoio_2", namco56xx_device, set_reset_line)) MCFG_DEVCB_INVERT - MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(INPUTLINE("sub", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT - MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(INPUTLINE("sub2", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT + ls259_device &mainlatch(LS259(config, "mainlatch")); // 5C + mainlatch.q_out_cb<0>().set(FUNC(mappy_state::int_on_2_w)); + mainlatch.q_out_cb<1>().set(FUNC(mappy_state::int_on_w)); + mainlatch.q_out_cb<2>().set(FUNC(mappy_state::int_on_3_w)); + mainlatch.q_out_cb<3>().set(m_namco_15xx, FUNC(namco_15xx_device::sound_enable_w)); + mainlatch.q_out_cb<4>().set(m_namcoio[0], FUNC(namcoio_device::set_reset_line)).invert(); + mainlatch.q_out_cb<4>().append(m_namcoio[1], FUNC(namcoio_device::set_reset_line)).invert(); + mainlatch.q_out_cb<5>().set_inputline(m_subcpu, INPUT_LINE_RESET).invert(); + mainlatch.q_out_cb<6>().set_inputline(m_subcpu2, INPUT_LINE_RESET).invert(); MCFG_WATCHDOG_ADD("watchdog") MCFG_WATCHDOG_VBLANK_INIT("screen", 8) - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */ - /* synchronization of the CPUs */ - MCFG_DEVICE_ADD("namcoio_1", NAMCO_58XX, 0) - MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - - MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(READ8("dipmux", ls157_device, output_r)) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("DSW1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("DSW1")) MCFG_DEVCB_RSHIFT(4) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("DSW0")) - MCFG_NAMCO56XX_OUT_0_CB(WRITELINE("dipmux", ls157_device, select_w)) MCFG_DEVCB_BIT(0) - - MCFG_DEVICE_ADD("dipmux", LS157, 0) - MCFG_74157_A_IN_CB(IOPORT("DSW2")) - MCFG_74157_B_IN_CB(IOPORT("DSW2")) MCFG_DEVCB_RSHIFT(4) + MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs + + NAMCO_58XX(config, m_namcoio[0], 0); + m_namcoio[0]->in_callback<0>().set_ioport("COINS"); + m_namcoio[0]->in_callback<1>().set_ioport("P1"); + m_namcoio[0]->in_callback<2>().set_ioport("P2"); + m_namcoio[0]->in_callback<3>().set_ioport("BUTTONS"); + + NAMCO_56XX(config, m_namcoio[1], 0); + m_namcoio[1]->in_callback<0>().set("dipmux", FUNC(ls157_device::output_r)); + m_namcoio[1]->in_callback<1>().set_ioport("DSW1"); + m_namcoio[1]->in_callback<2>().set_ioport("DSW1").rshift(4); + m_namcoio[1]->in_callback<3>().set_ioport("DSW0"); + m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0); + + ls157_device &dipmux(LS157(config, "dipmux")); + dipmux.a_in_callback().set_ioport("DSW2"); + dipmux.b_in_callback().set_ioport("DSW2").rshift(4); /* video hardware */ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_phozon) @@ -1510,23 +1509,22 @@ MACHINE_CONFIG_START(mappy_state::mappy_common) MCFG_DEVICE_ADD("sub", MC6809E, PIXEL_CLOCK/4) /* 1.536 MHz */ MCFG_DEVICE_PROGRAM_MAP(mappy_cpu2_map) - MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 2M on CPU board - MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(*this, mappy_state, int_on_2_w)) - MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(*this, mappy_state, int_on_w)) - MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, mappy_state, mappy_flip_w)) - MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE("namco", namco_15xx_device, sound_enable_w)) - MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE("namcoio_1", namcoio_device, set_reset_line)) MCFG_DEVCB_INVERT - MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("namcoio_2", namcoio_device, set_reset_line)) MCFG_DEVCB_INVERT - MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(INPUTLINE("sub", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT + ls259_device &mainlatch(LS259(config, "mainlatch")); // 2M on CPU board + mainlatch.q_out_cb<0>().set(FUNC(mappy_state::int_on_2_w)); + mainlatch.q_out_cb<1>().set(FUNC(mappy_state::int_on_w)); + mainlatch.q_out_cb<2>().set(FUNC(mappy_state::mappy_flip_w)); + mainlatch.q_out_cb<3>().set(m_namco_15xx, FUNC(namco_15xx_device::sound_enable_w)); + mainlatch.q_out_cb<4>().set(m_namcoio[0], FUNC(namcoio_device::set_reset_line)).invert(); + mainlatch.q_out_cb<4>().append(m_namcoio[1], FUNC(namcoio_device::set_reset_line)).invert(); + mainlatch.q_out_cb<5>().set_inputline(m_subcpu, INPUT_LINE_RESET).invert(); MCFG_WATCHDOG_ADD("watchdog") MCFG_WATCHDOG_VBLANK_INIT("screen", 8) - MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */ - /* synchronization of the CPUs */ + MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per frame - an high value to ensure proper synchronization of the CPUs - MCFG_DEVICE_ADD("dipmux", LS157, 0) - MCFG_74157_A_IN_CB(IOPORT("DSW2")) - MCFG_74157_B_IN_CB(IOPORT("DSW2")) MCFG_DEVCB_RSHIFT(4) + ls157_device &dipmux(LS157(config, "dipmux")); + dipmux.a_in_callback().set_ioport("DSW2"); + dipmux.b_in_callback().set_ioport("DSW2").rshift(4); /* video hardware */ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_mappy) @@ -1550,23 +1548,23 @@ MACHINE_CONFIG_START(mappy_state::mappy_common) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) MACHINE_CONFIG_END -MACHINE_CONFIG_START(mappy_state::mappy) - +void mappy_state::mappy(machine_config &config) +{ mappy_common(config); - MCFG_DEVICE_ADD("namcoio_1", NAMCO_58XX, 0) - MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - - MCFG_DEVICE_ADD("namcoio_2", NAMCO_58XX, 0) - MCFG_NAMCO58XX_IN_0_CB(READ8("dipmux", ls157_device, output_r)) - MCFG_NAMCO58XX_IN_1_CB(IOPORT("DSW1")) - MCFG_NAMCO58XX_IN_2_CB(IOPORT("DSW1")) MCFG_DEVCB_RSHIFT(4) - MCFG_NAMCO58XX_IN_3_CB(IOPORT("DSW0")) - MCFG_NAMCO58XX_OUT_0_CB(WRITELINE("dipmux", ls157_device, select_w)) MCFG_DEVCB_BIT(0) -MACHINE_CONFIG_END + NAMCO_58XX(config, m_namcoio[0], 0); + m_namcoio[0]->in_callback<0>().set_ioport("COINS"); + m_namcoio[0]->in_callback<1>().set_ioport("P1"); + m_namcoio[0]->in_callback<2>().set_ioport("P2"); + m_namcoio[0]->in_callback<3>().set_ioport("BUTTONS"); + + NAMCO_58XX(config, m_namcoio[1], 0); + m_namcoio[1]->in_callback<0>().set("dipmux", FUNC(ls157_device::output_r)); + m_namcoio[1]->in_callback<1>().set_ioport("DSW1"); + m_namcoio[1]->in_callback<2>().set_ioport("DSW1").rshift(4); + m_namcoio[1]->in_callback<3>().set_ioport("DSW0"); + m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0); +} MACHINE_CONFIG_START(mappy_state::digdug2) @@ -1575,18 +1573,18 @@ MACHINE_CONFIG_START(mappy_state::digdug2) MCFG_WATCHDOG_MODIFY("watchdog") MCFG_WATCHDOG_VBLANK_INIT("screen", 0) - MCFG_DEVICE_ADD("namcoio_1", NAMCO_58XX, 0) - MCFG_NAMCO58XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO58XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO58XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO58XX_IN_3_CB(IOPORT("BUTTONS")) - - MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(READ8("dipmux", ls157_device, output_r)) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("DSW1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("DSW1")) MCFG_DEVCB_RSHIFT(4) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("DSW0")) - MCFG_NAMCO56XX_OUT_0_CB(WRITELINE("dipmux", ls157_device, select_w)) MCFG_DEVCB_BIT(0) + NAMCO_58XX(config, m_namcoio[0], 0); + m_namcoio[0]->in_callback<0>().set_ioport("COINS"); + m_namcoio[0]->in_callback<1>().set_ioport("P1"); + m_namcoio[0]->in_callback<2>().set_ioport("P2"); + m_namcoio[0]->in_callback<3>().set_ioport("BUTTONS"); + + NAMCO_56XX(config, m_namcoio[1], 0); + m_namcoio[1]->in_callback<0>().set("dipmux", FUNC(ls157_device::output_r)); + m_namcoio[1]->in_callback<1>().set_ioport("DSW1"); + m_namcoio[1]->in_callback<2>().set_ioport("DSW1").rshift(4); + m_namcoio[1]->in_callback<3>().set_ioport("DSW0"); + m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0); MACHINE_CONFIG_END MACHINE_CONFIG_START(mappy_state::todruaga) @@ -1598,24 +1596,24 @@ MACHINE_CONFIG_START(mappy_state::todruaga) MCFG_PALETTE_ENTRIES(64*4+64*16) MACHINE_CONFIG_END -MACHINE_CONFIG_START(mappy_state::motos) - +void mappy_state::motos(machine_config &config) +{ mappy_common(config); - MCFG_DEVICE_ADD("namcoio_1", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(IOPORT("COINS")) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("P1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("P2")) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("BUTTONS")) - MCFG_NAMCO56XX_OUT_0_CB(WRITE8(*this, mappy_state, out_lamps)) - - MCFG_DEVICE_ADD("namcoio_2", NAMCO_56XX, 0) - MCFG_NAMCO56XX_IN_0_CB(READ8("dipmux", ls157_device, output_r)) - MCFG_NAMCO56XX_IN_1_CB(IOPORT("DSW1")) - MCFG_NAMCO56XX_IN_2_CB(IOPORT("DSW1")) MCFG_DEVCB_RSHIFT(4) - MCFG_NAMCO56XX_IN_3_CB(IOPORT("DSW0")) - MCFG_NAMCO56XX_OUT_0_CB(WRITELINE("dipmux", ls157_device, select_w)) MCFG_DEVCB_BIT(0) -MACHINE_CONFIG_END + NAMCO_56XX(config, m_namcoio[0], 0); + m_namcoio[0]->in_callback<0>().set_ioport("COINS"); + m_namcoio[0]->in_callback<1>().set_ioport("P1"); + m_namcoio[0]->in_callback<2>().set_ioport("P2"); + m_namcoio[0]->in_callback<3>().set_ioport("BUTTONS"); + m_namcoio[0]->out_callback<0>().set(FUNC(mappy_state::out_lamps)); + + NAMCO_56XX(config, m_namcoio[1], 0); + m_namcoio[1]->in_callback<0>().set("dipmux", FUNC(ls157_device::output_r)); + m_namcoio[1]->in_callback<1>().set_ioport("DSW1"); + m_namcoio[1]->in_callback<2>().set_ioport("DSW1").rshift(4); + m_namcoio[1]->in_callback<3>().set_ioport("DSW0"); + m_namcoio[1]->out_callback<0>().set("dipmux", FUNC(ls157_device::select_w)).bit(0); +} |