diff options
Diffstat (limited to 'src/mame/drivers/goldnpkr.cpp')
-rw-r--r-- | src/mame/drivers/goldnpkr.cpp | 93 |
1 files changed, 40 insertions, 53 deletions
diff --git a/src/mame/drivers/goldnpkr.cpp b/src/mame/drivers/goldnpkr.cpp index 60e4be4ae95..2eab70a3f73 100644 --- a/src/mame/drivers/goldnpkr.cpp +++ b/src/mame/drivers/goldnpkr.cpp @@ -1300,6 +1300,7 @@ public: goldnpkr_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_pia(*this, "pia%u", 0U), m_videoram(*this, "videoram"), m_colorram(*this, "colorram"), m_discrete(*this, "discrete"), @@ -1354,6 +1355,7 @@ public: protected: required_device<cpu_device> m_maincpu; + required_device_array<pia6821_device, 2> m_pia; DECLARE_WRITE8_MEMBER(goldnpkr_videoram_w); DECLARE_WRITE8_MEMBER(goldnpkr_colorram_w); @@ -1397,7 +1399,6 @@ private: required_shared_ptr<uint8_t> m_videoram; required_shared_ptr<uint8_t> m_colorram; - optional_device<discrete_device> m_discrete; optional_device<ay8910_device> m_ay8910; required_device<gfxdecode_device> m_gfxdecode; @@ -4322,14 +4323,14 @@ MACHINE_CONFIG_START(goldnpkr_state::goldnpkr_base) MCFG_NVRAM_ADD_0FILL("nvram") - MCFG_DEVICE_ADD("pia0", PIA6821, 0) - MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, goldnpkr_mux_port_r)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, goldnpkr_state, lamps_a_w)) + PIA6821(config, m_pia[0], 0); + m_pia[0]->readpa_handler().set(FUNC(goldnpkr_state::goldnpkr_mux_port_r)); + m_pia[0]->writepb_handler().set(FUNC(goldnpkr_state::lamps_a_w)); - MCFG_DEVICE_ADD("pia1", PIA6821, 0) - MCFG_PIA_READPA_HANDLER(IOPORT("SW1")) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, sound_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, goldnpkr_state, mux_w)) + PIA6821(config, m_pia[1], 0); + m_pia[1]->readpa_handler().set_ioport("SW1"); + m_pia[1]->writepa_handler().set(FUNC(goldnpkr_state::sound_w)); + m_pia[1]->writepb_handler().set(FUNC(goldnpkr_state::mux_w)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -4368,9 +4369,8 @@ MACHINE_CONFIG_START(goldnpkr_state::pottnpkr) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(pottnpkr_map) - MCFG_DEVICE_MODIFY("pia0") - MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, pottnpkr_mux_port_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, mux_port_w)) + m_pia[0]->readpa_handler().set(FUNC(goldnpkr_state::pottnpkr_mux_port_r)); + m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::mux_port_w)); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -4386,9 +4386,8 @@ MACHINE_CONFIG_START(goldnpkr_state::witchcrd) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(witchcrd_map) - MCFG_DEVICE_MODIFY("pia0") - MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, pottnpkr_mux_port_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, mux_port_w)) + m_pia[0]->readpa_handler().set(FUNC(goldnpkr_state::pottnpkr_mux_port_r)); + m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::mux_port_w)); /* video hardware */ MCFG_PALETTE_MODIFY("palette") @@ -4408,11 +4407,8 @@ MACHINE_CONFIG_START(goldnpkr_state::wcfalcon) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(witchcrd_falcon_map) - MCFG_DEVICE_MODIFY("pia0") - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, mux_port_w)) - - MCFG_DEVICE_MODIFY("pia1") - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, wcfalcon_snd_w)) /* port A out, custom handler due to address + data are muxed */ + m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::mux_port_w)); + m_pia[1]->writepa_handler().set(FUNC(goldnpkr_state::wcfalcon_snd_w)); /* port A out, custom handler due to address + data are muxed */ /* video hardware */ MCFG_PALETTE_MODIFY("palette") @@ -4432,9 +4428,8 @@ MACHINE_CONFIG_START(goldnpkr_state::wildcard) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(wildcard_map) - MCFG_DEVICE_MODIFY("pia0") - MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, pottnpkr_mux_port_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, mux_port_w)) + m_pia[0]->readpa_handler().set(FUNC(goldnpkr_state::pottnpkr_mux_port_r)); + m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::mux_port_w)); /* video hardware */ // MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_wildcard) @@ -4456,9 +4451,8 @@ MACHINE_CONFIG_START(goldnpkr_state::wcrdxtnd) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(wcrdxtnd_map) - MCFG_DEVICE_MODIFY("pia0") - MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, pottnpkr_mux_port_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, mux_port_w)) + m_pia[0]->readpa_handler().set(FUNC(goldnpkr_state::pottnpkr_mux_port_r)); + m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::mux_port_w)); /* video hardware */ MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_wcrdxtnd) @@ -4484,11 +4478,8 @@ MACHINE_CONFIG_START(goldnpkr_state::wildcrdb) MCFG_DEVICE_PROGRAM_MAP(wildcrdb_mcu_map) MCFG_DEVICE_IO_MAP(wildcrdb_mcu_io_map) - MCFG_DEVICE_MODIFY("pia0") - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, mux_port_w)) - - MCFG_DEVICE_MODIFY("pia1") - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, wcfalcon_snd_w)) + m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::mux_port_w)); + m_pia[1]->writepa_handler().set(FUNC(goldnpkr_state::wcfalcon_snd_w)); /* video hardware */ // MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_wildcard) @@ -4510,9 +4501,8 @@ MACHINE_CONFIG_START(goldnpkr_state::genie) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(genie_map) - MCFG_DEVICE_MODIFY("pia0") - MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, pottnpkr_mux_port_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, mux_port_w)) + m_pia[0]->readpa_handler().set(FUNC(goldnpkr_state::pottnpkr_mux_port_r)); + m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::mux_port_w)); /* video hardware */ MCFG_PALETTE_MODIFY("palette") @@ -4532,9 +4522,8 @@ MACHINE_CONFIG_START(goldnpkr_state::geniea) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(goldnpkr_map) -// MCFG_DEVICE_MODIFY("pia0") -// MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, pottnpkr_mux_port_r)) -// MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, mux_port_w)) +// m_pia[0]->readpa_handler().set(FUNC(goldnpkr_state::pottnpkr_mux_port_r)); +// m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::mux_port_w)); /* video hardware */ MCFG_PALETTE_MODIFY("palette") @@ -4570,17 +4559,15 @@ MACHINE_CONFIG_START(goldnpkr_state::bchancep) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_PROGRAM_MAP(bchancep_map) - MCFG_DEVICE_MODIFY("pia0") - MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, pia0_a_r)) - MCFG_PIA_READPB_HANDLER(READ8(*this, goldnpkr_state, pia0_b_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, pia0_a_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, goldnpkr_state, pia0_b_w)) + m_pia[0]->readpa_handler().set(FUNC(goldnpkr_state::pia0_a_r)); + m_pia[0]->readpb_handler().set(FUNC(goldnpkr_state::pia0_b_r)); + m_pia[0]->writepa_handler().set(FUNC(goldnpkr_state::pia0_a_w)); + m_pia[0]->writepb_handler().set(FUNC(goldnpkr_state::pia0_b_w)); - MCFG_DEVICE_MODIFY("pia1") - MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, pia1_a_r)) - MCFG_PIA_READPB_HANDLER(READ8(*this, goldnpkr_state, pia1_b_r)) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, pia1_a_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, goldnpkr_state, pia1_b_w)) + m_pia[1]->readpa_handler().set(FUNC(goldnpkr_state::pia1_a_r)); + m_pia[1]->readpb_handler().set(FUNC(goldnpkr_state::pia1_b_r)); + m_pia[1]->writepa_handler().set(FUNC(goldnpkr_state::pia1_a_w)); + m_pia[1]->writepb_handler().set(FUNC(goldnpkr_state::pia1_b_w)); /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -4730,14 +4717,14 @@ MACHINE_CONFIG_START(blitz_state::megadpkr) MCFG_DEVICE_ADD("timekpr", M48T02, 0) - MCFG_DEVICE_ADD("pia0", PIA6821, 0) - MCFG_PIA_READPA_HANDLER(READ8(*this, goldnpkr_state, pottnpkr_mux_port_r)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, goldnpkr_state, lamps_a_w)) + PIA6821(config, m_pia[0], 0); + m_pia[0]->readpa_handler().set(FUNC(goldnpkr_state::pottnpkr_mux_port_r)); + m_pia[0]->writepb_handler().set(FUNC(goldnpkr_state::lamps_a_w)); - MCFG_DEVICE_ADD("pia1", PIA6821, 0) - MCFG_PIA_READPA_HANDLER(IOPORT("SW1")) - MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, goldnpkr_state, sound_w)) - MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, goldnpkr_state, mux_w)) + PIA6821(config, m_pia[1], 0); + m_pia[1]->readpa_handler().set_ioport("SW1"); + m_pia[1]->writepa_handler().set(FUNC(goldnpkr_state::sound_w)); + m_pia[1]->writepb_handler().set(FUNC(goldnpkr_state::mux_w)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) |