diff options
author | smf- <smf-@users.noreply.github.com> | 2014-01-06 13:17:32 +0000 |
---|---|---|
committer | smf- <smf-@users.noreply.github.com> | 2014-01-06 13:17:32 +0000 |
commit | 45d9761cad18873ac1a92e06c2604f1b451f591a (patch) | |
tree | 29439104cb775379b9974e1e7ef7a5cfecc394b0 /src/mame/drivers/s8.c | |
parent | 735fa982fade40e52fed59003b5fd4488bda9ae8 (diff) |
Converted PIA6821 to DEVCB2 [smf]
Diffstat (limited to 'src/mame/drivers/s8.c')
-rw-r--r-- | src/mame/drivers/s8.c | 129 |
1 files changed, 44 insertions, 85 deletions
diff --git a/src/mame/drivers/s8.c b/src/mame/drivers/s8.c index 1d2d74f5ddf..ee0b9e69c93 100644 --- a/src/mame/drivers/s8.c +++ b/src/mame/drivers/s8.c @@ -247,43 +247,11 @@ WRITE_LINE_MEMBER( s8_state::pia21_ca2_w ) m_pias->ca1_w(m_ca1); } -static const pia6821_interface pia21_intf = -{ - DEVCB_DRIVER_MEMBER(s8_state, dac_r), /* port A in */ - DEVCB_NULL, /* port B in */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pia21_ca1_r), /* line CA1 in */ - DEVCB_LINE_GND, /* line CB1 in */ - DEVCB_NULL, /* line CA2 in */ - DEVCB_NULL, /* line CB2 in */ - DEVCB_DRIVER_MEMBER(s8_state, sound_w), /* port A out */ - DEVCB_DRIVER_MEMBER(s8_state, sol2_w), /* port B out */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pia21_ca2_w), /* line CA2 out */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pia21_cb2_w), /* line CB2 out */ - DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE), /* IRQA */ - DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE) /* IRQB */ -}; - WRITE8_MEMBER( s8_state::lamp0_w ) { m_maincpu->set_input_line(M6800_IRQ_LINE, CLEAR_LINE); } -static const pia6821_interface pia24_intf = -{ - DEVCB_NULL, /* port A in */ - DEVCB_NULL, /* port B in */ - DEVCB_LINE_GND, /* line CA1 in */ - DEVCB_LINE_GND, /* line CB1 in */ - DEVCB_LINE_VCC, /* line CA2 in */ - DEVCB_LINE_VCC, /* line CB2 in */ - DEVCB_DRIVER_MEMBER(s8_state, lamp0_w), /* port A out */ - DEVCB_DRIVER_MEMBER(s8_state, lamp1_w), /* port B out */ - DEVCB_NULL, /* line CA2 out */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pia24_cb2_w), /* line CB2 out */ - DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE), /* IRQA */ - DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE) /* IRQB */ -}; - READ_LINE_MEMBER( s8_state::pia28_ca1_r ) { return BIT(ioport("DIAGS")->read(), 2); // advance button @@ -314,22 +282,6 @@ WRITE8_MEMBER( s8_state::dig1_w ) m_data_ok = false; } -static const pia6821_interface pia28_intf = -{ - DEVCB_NULL, /* port A in */ - DEVCB_NULL, /* port B in */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pia28_ca1_r), /* line CA1 in */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pia28_cb1_r), /* line CB1 in */ - DEVCB_NULL, /* line CA2 in */ - DEVCB_NULL, /* line CB2 in */ - DEVCB_DRIVER_MEMBER(s8_state, dig0_w), /* port A out */ - DEVCB_DRIVER_MEMBER(s8_state, dig1_w), /* port B out */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pia28_ca2_w), /* line CA2 out */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pia28_cb2_w), /* line CB2 out */ - DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE), /* IRQA */ - DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE) /* IRQB */ -}; - READ8_MEMBER( s8_state::switch_r ) { char kbdrow[8]; @@ -342,22 +294,6 @@ WRITE8_MEMBER( s8_state::switch_w ) m_kbdrow = data; } -static const pia6821_interface pia30_intf = -{ - DEVCB_DRIVER_MEMBER(s8_state, switch_r), /* port A in */ - DEVCB_NULL, /* port B in */ - DEVCB_LINE_GND, /* line CA1 in */ - DEVCB_LINE_GND, /* line CB1 in */ - DEVCB_LINE_VCC, /* line CA2 in */ - DEVCB_LINE_VCC, /* line CB2 in */ - DEVCB_NULL, /* port A out */ - DEVCB_DRIVER_MEMBER(s8_state, switch_w), /* port B out */ - DEVCB_NULL, /* line CA2 out */ - DEVCB_NULL, /* line CB2 out */ - DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE), /* IRQA */ - DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE) /* IRQB */ -}; - READ_LINE_MEMBER( s8_state::pias_ca1_r ) { return m_ca1; @@ -383,22 +319,6 @@ WRITE8_MEMBER( s8_state::dac_w ) m_dac->write_unsigned8(data); } -static const pia6821_interface pias_intf = -{ - DEVCB_DRIVER_MEMBER(s8_state, dac_r), /* port A in */ - DEVCB_NULL, /* port B in */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pias_ca1_r), /* line CA1 in */ - DEVCB_LINE_GND, /* line CB1 in */ - DEVCB_NULL, /* line CA2 in */ - DEVCB_NULL, /* line CB2 in */ - DEVCB_DRIVER_MEMBER(s8_state, sound_w), /* port A out */ - DEVCB_DRIVER_MEMBER(s8_state, dac_w), /* port B out */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pias_ca2_w), /* line CA2 out */ - DEVCB_DRIVER_LINE_MEMBER(s8_state, pias_cb2_w), /* line CB2 out */ - DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE), /* IRQA */ - DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE) /* IRQB */ -}; - TIMER_DEVICE_CALLBACK_MEMBER( s8_state::irq) { if (m_t_c > 0x70) @@ -421,18 +341,57 @@ static MACHINE_CONFIG_START( s8, s8_state ) MCFG_FRAGMENT_ADD( genpin_audio ) /* Devices */ - MCFG_PIA6821_ADD("pia21", pia21_intf) - MCFG_PIA6821_ADD("pia24", pia24_intf) - MCFG_PIA6821_ADD("pia28", pia28_intf) - MCFG_PIA6821_ADD("pia30", pia30_intf) + MCFG_DEVICE_ADD("pia21", PIA6821, 0) + MCFG_PIA6821_READPA_HANDLER(READ8(s8_state, dac_r)) + MCFG_PIA6821_READCA1_HANDLER(READLINE(s8_state, pia21_ca1_r)) + MCFG_PIA6821_WRITEPA_HANDLER(WRITE8(s8_state, sound_w)) + MCFG_PIA6821_WRITEPB_HANDLER(WRITE8(s8_state, sol2_w)) + MCFG_PIA6821_CA2_HANDLER(WRITELINE(s8_state, pia21_ca2_w)) + MCFG_PIA6821_CB2_HANDLER(WRITELINE(s8_state, pia21_cb2_w)) + MCFG_PIA6821_IRQA_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line)) + MCFG_PIA6821_IRQB_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line)) + + MCFG_DEVICE_ADD("pia24", PIA6821, 0) + MCFG_PIA6821_WRITEPA_HANDLER(WRITE8(s8_state, lamp0_w)) + MCFG_PIA6821_WRITEPB_HANDLER(WRITE8(s8_state, lamp1_w)) + MCFG_PIA6821_CB2_HANDLER(WRITELINE(s8_state, pia24_cb2_w)) + MCFG_PIA6821_IRQA_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line)) + MCFG_PIA6821_IRQB_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line)) + + MCFG_DEVICE_ADD("pia28", PIA6821, 0) + MCFG_PIA6821_READCA1_HANDLER(READLINE(s8_state, pia28_ca1_r)) + MCFG_PIA6821_READCA2_HANDLER(READLINE(s8_state, pia28_cb1_r)) + MCFG_PIA6821_WRITEPA_HANDLER(WRITE8(s8_state, dig0_w)) + MCFG_PIA6821_WRITEPB_HANDLER(WRITE8(s8_state, dig1_w)) + MCFG_PIA6821_CA2_HANDLER(WRITELINE(s8_state, pia28_ca2_w)) + MCFG_PIA6821_CB2_HANDLER(WRITELINE(s8_state, pia28_cb2_w)) + MCFG_PIA6821_IRQA_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line)) + MCFG_PIA6821_IRQB_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line)) + + MCFG_DEVICE_ADD("pia30", PIA6821, 0) + MCFG_PIA6821_READPA_HANDLER(READ8(s8_state, switch_r)) + MCFG_PIA6821_WRITEPB_HANDLER(WRITE8(s8_state, switch_w)) + MCFG_PIA6821_IRQA_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line)) + MCFG_PIA6821_IRQB_HANDLER(DEVWRITELINE("maincpu", m6802_cpu_device, irq_line)) + MCFG_NVRAM_ADD_1FILL("nvram") + /* Add the soundcard */ MCFG_CPU_ADD("audiocpu", M6808, 4000000) MCFG_CPU_PROGRAM_MAP(s8_audio_map) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("dac", DAC, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_PIA6821_ADD("pias", pias_intf) + + MCFG_DEVICE_ADD("pias", PIA6821, 0) + MCFG_PIA6821_READPA_HANDLER(READ8(s8_state, dac_r)) + MCFG_PIA6821_READCA1_HANDLER(READLINE(s8_state, pias_ca1_r)) + MCFG_PIA6821_WRITEPA_HANDLER(WRITE8(s8_state, sound_w)) + MCFG_PIA6821_WRITEPB_HANDLER(WRITE8(s8_state, dac_w)) + MCFG_PIA6821_CA2_HANDLER(WRITELINE(s8_state, pias_ca2_w)) + MCFG_PIA6821_CB2_HANDLER(WRITELINE(s8_state, pias_cb2_w)) + MCFG_PIA6821_IRQA_HANDLER(DEVWRITELINE("audiocpu", m6808_cpu_device, irq_line)) + MCFG_PIA6821_IRQB_HANDLER(DEVWRITELINE("audiocpu", m6808_cpu_device, irq_line)) MACHINE_CONFIG_END /*------------------------------ |