summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/williams.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/williams.cpp')
-rw-r--r--src/mame/drivers/williams.cpp52
1 files changed, 24 insertions, 28 deletions
diff --git a/src/mame/drivers/williams.cpp b/src/mame/drivers/williams.cpp
index 07e043307bb..45098bf8bff 100644
--- a/src/mame/drivers/williams.cpp
+++ b/src/mame/drivers/williams.cpp
@@ -1584,14 +1584,13 @@ MACHINE_CONFIG_START(williams_state::williams_muxed)
/* basic machine hardware */
/* pia */
- MCFG_DEVICE_MODIFY("pia_0")
- MCFG_PIA_READPA_HANDLER(IOPORT("IN0")) MCFG_DEVCB_MASK(0x30)
- MCFG_DEVCB_CHAIN_INPUT(READ8("mux_0", ls157_device, output_r)) MCFG_DEVCB_MASK(0x0f)
- MCFG_DEVCB_CHAIN_INPUT(READ8("mux_1", ls157_device, output_r)) MCFG_DEVCB_RSHIFT(-6) MCFG_DEVCB_MASK(0xc0)
- MCFG_PIA_READPB_HANDLER(IOPORT("IN1")) MCFG_DEVCB_MASK(0xfc)
- MCFG_DEVCB_CHAIN_INPUT(READ8("mux_1", ls157_device, output_r)) MCFG_DEVCB_RSHIFT(2) MCFG_DEVCB_MASK(0x03)
- MCFG_PIA_CB2_HANDLER(WRITELINE("mux_0", ls157_device, select_w))
- MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("mux_1", ls157_device, select_w))
+ m_pia[0]->readpa_handler().set_ioport("IN0").mask(0x30);
+ m_pia[0]->readpa_handler().append("mux_0", FUNC(ls157_device::output_r)).mask(0x0f);
+ m_pia[0]->readpa_handler().append("mux_1", FUNC(ls157_device::output_r)).lshift(6).mask(0xc0);
+ m_pia[0]->readpb_handler().set_ioport("IN1").mask(0xfc);
+ m_pia[0]->readpb_handler().append("mux_1", FUNC(ls157_device::output_r)).rshift(2).mask(0x03);
+ m_pia[0]->cb2_handler().set("mux_0", FUNC(ls157_device::select_w));
+ m_pia[0]->cb2_handler().append("mux_1", FUNC(ls157_device::select_w));
MCFG_DEVICE_ADD("mux_0", LS157, 0) // IC3 on interface board (actually LS257 with OC tied low)
MCFG_74157_A_IN_CB(IOPORT("INP2"))
@@ -1623,9 +1622,8 @@ MACHINE_CONFIG_START(williams_state::lottofun)
/* basic machine hardware */
/* pia */
- MCFG_DEVICE_MODIFY("pia_0")
- MCFG_PIA_WRITEPB_HANDLER(WRITELINE("ticket", ticket_dispenser_device, motor_w)) MCFG_DEVCB_BIT(7)
- MCFG_PIA_CA2_HANDLER(WRITELINE(*this, williams_state, lottofun_coin_lock_w))
+ m_pia[0]->writepa_handler().set("ticket", FUNC(ticket_dispenser_device::motor_w)).bit(7);
+ m_pia[0]->ca2_handler().set(FUNC(williams_state::lottofun_coin_lock_w));
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(70), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_HIGH)
MACHINE_CONFIG_END
@@ -1710,11 +1708,10 @@ MACHINE_CONFIG_START(blaster_state::blaster)
MCFG_DEVICE_PROGRAM_MAP(sound_map_b)
/* pia */
- MCFG_DEVICE_MODIFY("pia_0")
- MCFG_PIA_READPB_HANDLER(READ8("mux_b", ls157_device, output_r)) MCFG_DEVCB_MASK(0x0f)
- MCFG_DEVCB_CHAIN_INPUT(IOPORT("IN1")) MCFG_DEVCB_MASK(0xf0)
- MCFG_PIA_CB2_HANDLER(WRITELINE("mux_a", ls157_x2_device, select_w))
- MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("mux_b", ls157_device, select_w))
+ m_pia[0]->readpb_handler().set("mux_b", FUNC(ls157_device::output_r)).mask(0x0f);
+ m_pia[0]->readpb_handler().append_ioport("IN1").mask(0xf0);
+ m_pia[0]->cb2_handler().set("mux_a", FUNC(ls157_x2_device::select_w));
+ m_pia[0]->cb2_handler().append("mux_b", FUNC(ls157_device::select_w));
MCFG_DEVICE_MODIFY("mux_a") // IC7 (for PA0-PA3) + IC5 (for PA4-PA7)
MCFG_74157_A_IN_CB(READ8(*this, williams_state, williams_49way_port_0_r))
@@ -1805,23 +1802,23 @@ MACHINE_CONFIG_START(williams2_state::williams2)
MCFG_INPUT_MERGER_ANY_HIGH("soundirq")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("soundcpu", M6808_IRQ_LINE))
- MCFG_DEVICE_ADD("pia_0", PIA6821, 0)
+ MCFG_DEVICE_ADD(m_pia[0], PIA6821, 0)
MCFG_PIA_READPA_HANDLER(IOPORT("IN0"))
MCFG_PIA_READPB_HANDLER(IOPORT("IN1"))
- MCFG_DEVICE_ADD("pia_1", PIA6821, 0)
+ MCFG_DEVICE_ADD(m_pia[1], PIA6821, 0)
MCFG_PIA_READPA_HANDLER(IOPORT("IN2"))
MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, williams2_state,williams2_snd_cmd_w))
MCFG_PIA_CB2_HANDLER(WRITELINE("pia_2", pia6821_device, ca1_w))
MCFG_PIA_IRQA_HANDLER(WRITELINE("mainirq", input_merger_any_high_device, in_w<0>))
MCFG_PIA_IRQB_HANDLER(WRITELINE("mainirq", input_merger_any_high_device, in_w<1>))
- MCFG_DEVICE_ADD("pia_2", PIA6821, 0)
- MCFG_PIA_WRITEPA_HANDLER(WRITE8("pia_1", pia6821_device, portb_w))
- MCFG_PIA_WRITEPB_HANDLER(WRITE8("dac", dac_byte_interface, data_w))
- MCFG_PIA_CA2_HANDLER(WRITELINE("pia_1", pia6821_device, cb1_w))
- MCFG_PIA_IRQA_HANDLER(WRITELINE("soundirq", input_merger_any_high_device, in_w<0>))
- MCFG_PIA_IRQB_HANDLER(WRITELINE("soundirq", input_merger_any_high_device, in_w<1>))
+ PIA6821(config, m_pia[2], 0);
+ m_pia[2]->writepa_handler().set(m_pia[1], FUNC(pia6821_device::portb_w));
+ m_pia[2]->writepb_handler().set("dac", FUNC(dac_byte_interface::data_w));
+ m_pia[2]->ca2_handler().set(m_pia[1], FUNC(pia6821_device::cb1_w));
+ m_pia[2]->irqa_handler().set("soundirq", FUNC(input_merger_any_high_device::in_w<0>));
+ m_pia[2]->irqb_handler().set("soundirq", FUNC(input_merger_any_high_device::in_w<1>));
MACHINE_CONFIG_END
@@ -1897,10 +1894,9 @@ MACHINE_CONFIG_START(joust2_state::joust2)
MCFG_MACHINE_RESET_OVERRIDE(joust2_state,joust2)
/* pia */
- MCFG_DEVICE_MODIFY("pia_0")
- MCFG_PIA_READPA_HANDLER(IOPORT("IN0")) MCFG_DEVCB_MASK(0xf0)
- MCFG_DEVCB_CHAIN_INPUT(READ8("mux", ls157_device, output_r)) MCFG_DEVCB_MASK(0x0f)
- MCFG_PIA_CA2_HANDLER(WRITELINE("mux", ls157_device, select_w))
+ m_pia[0]->readpa_handler().set_ioport("IN0").mask(0xf0);
+ m_pia[0]->readpa_handler().append("mux", FUNC(ls157_device::output_r)).mask(0x0f);
+ m_pia[0]->ca2_handler().set("mux", FUNC(ls157_device::select_w));
MCFG_DEVICE_MODIFY("pia_1")
MCFG_PIA_READPA_HANDLER(IOPORT("IN2"))