summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/s8.c
diff options
context:
space:
mode:
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
commit45d9761cad18873ac1a92e06c2604f1b451f591a (patch)
tree29439104cb775379b9974e1e7ef7a5cfecc394b0 /src/mame/drivers/s8.c
parent735fa982fade40e52fed59003b5fd4488bda9ae8 (diff)
Converted PIA6821 to DEVCB2 [smf]
Diffstat (limited to 'src/mame/drivers/s8.c')
-rw-r--r--src/mame/drivers/s8.c129
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
/*------------------------------