From d32d713e9e95a46dd83e423365b2ba0627e8c46e Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sat, 26 Jan 2013 19:57:44 +0000 Subject: [PATCH] bfm_sc4 - cleanup some tagmap use (note, previous change to screenless refreshrate for the synths still causes issues here) --- src/mame/drivers/bfm_sc4h.c | 12 ++++++------ src/mame/includes/bfm_sc45.h | 30 ++++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/mame/drivers/bfm_sc4h.c b/src/mame/drivers/bfm_sc4h.c index d2a35035786..e1d061260c9 100644 --- a/src/mame/drivers/bfm_sc4h.c +++ b/src/mame/drivers/bfm_sc4h.c @@ -42,18 +42,18 @@ #include "sc4_dmd.lh" -UINT8 read_input_matrix(running_machine &machine, int row) +UINT8 sc4_state::read_input_matrix(running_machine &machine, int row) { - static const char *const portnames[16] = { "IN-0", "IN-1", "IN-2", "IN-3", "IN-4", "IN-5", "IN-6", "IN-7", "IN-8", "IN-9", "IN-A", "IN-B" }; + ioport_port* portnames[16] = { m_io1, m_io2, m_io3, m_io4, m_io5, m_io6, m_io7, m_io8, m_io9, m_io10, m_io11, m_io12 }; UINT8 value; if (row<4) { - value = (machine.root_device().ioport(portnames[row])->read_safe(0x00) & 0x1f) + ((machine.root_device().ioport(portnames[row+8])->read_safe(0x00) & 0x07) << 5); + value = ((portnames[row])->read_safe(0x00) & 0x1f) + (((portnames[row+8])->read_safe(0x00) & 0x07) << 5); } else { - value = (machine.root_device().ioport(portnames[row])->read_safe(0x00) & 0x1f) + ((machine.root_device().ioport(portnames[row+4])->read_safe(0x00) & 0x18) << 2); + value = ((portnames[row])->read_safe(0x00) & 0x1f) + (((portnames[row+4])->read_safe(0x00) & 0x18) << 2); } return value; @@ -934,7 +934,7 @@ INPUT_PORTS_START( sc4_base ) PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_START("IN-a") + PORT_START("IN-A") PORT_DIPNAME( 0x01, 0x00, "IN-a:0" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) @@ -952,7 +952,7 @@ INPUT_PORTS_START( sc4_base ) PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_START("IN-b") + PORT_START("IN-B") PORT_DIPNAME( 0x01, 0x00, "IN-b:0" ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) diff --git a/src/mame/includes/bfm_sc45.h b/src/mame/includes/bfm_sc45.h index 9afff934613..5475c9cafca 100644 --- a/src/mame/includes/bfm_sc45.h +++ b/src/mame/includes/bfm_sc45.h @@ -20,8 +20,19 @@ public: m_ymz(*this, "ymz"), m_maincpu(*this, "maincpu"), m_vfd0(*this, "vfd0"), - m_nvram(*this, "nvram") - + m_nvram(*this, "nvram"), + m_io1(*this, "IN-0"), + m_io2(*this, "IN-1"), + m_io3(*this, "IN-2"), + m_io4(*this, "IN-3"), + m_io5(*this, "IN-4"), + m_io6(*this, "IN-5"), + m_io7(*this, "IN-6"), + m_io8(*this, "IN-7"), + m_io9(*this, "IN-8"), + m_io10(*this, "IN-9"), + m_io11(*this, "IN-A"), + m_io12(*this, "IN-B") { m_chk41addr = -1; m_dochk41 = false; @@ -59,6 +70,7 @@ public: UINT16 m_mainram[0x10000/2]; + UINT8 read_input_matrix(running_machine &machine, int row); DECLARE_WRITE8_MEMBER(mux_output_w); DECLARE_WRITE8_MEMBER(mux_output2_w); @@ -484,6 +496,20 @@ public: DECLARE_MACHINE_START(sc4); DECLARE_MACHINE_RESET(sc4); + +protected: + required_ioport m_io1; + required_ioport m_io2; + required_ioport m_io3; + required_ioport m_io4; + required_ioport m_io5; + required_ioport m_io6; + required_ioport m_io7; + required_ioport m_io8; + required_ioport m_io9; + required_ioport m_io10; + required_ioport m_io11; + required_ioport m_io12; }; class sc4_adder4_state : public sc4_state