summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-02-20 16:46:55 -0500
committer AJR <ajrhacker@users.noreply.github.com>2020-02-20 16:48:16 -0500
commitaaaf9146f928bf191c3ce43f7c082ad6a27c66b9 (patch)
treeb68d595cd511129432a009237f00be838481f9b1
parentd143f4f43d83f1b863559d3792e275740c5f2e30 (diff)
sdk85, sdk86: More accurate 8279 interfaces; reduce tag lookups (nw)
-rw-r--r--src/mame/drivers/sdk85.cpp2
-rw-r--r--src/mame/drivers/sdk86.cpp11
2 files changed, 6 insertions, 7 deletions
diff --git a/src/mame/drivers/sdk85.cpp b/src/mame/drivers/sdk85.cpp
index 78bbad3e976..2495cdd1f8f 100644
--- a/src/mame/drivers/sdk85.cpp
+++ b/src/mame/drivers/sdk85.cpp
@@ -192,7 +192,7 @@ INPUT_PORTS_END
void sdk85_state::scanlines_w(u8 data)
{
- m_digit = data;
+ m_digit = data & 7;
}
void sdk85_state::digit_w(u8 data)
diff --git a/src/mame/drivers/sdk86.cpp b/src/mame/drivers/sdk86.cpp
index 490d855cad0..f73518148fd 100644
--- a/src/mame/drivers/sdk86.cpp
+++ b/src/mame/drivers/sdk86.cpp
@@ -45,6 +45,7 @@ public:
sdk86_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
+ , m_kbdrow(*this, "X%X", 0U)
, m_digits(*this, "digit%u", 0U)
{ }
@@ -61,6 +62,7 @@ private:
uint8_t m_digit;
virtual void machine_start() override { m_digits.resolve(); }
required_device<cpu_device> m_maincpu;
+ required_ioport_array<3> m_kbdrow;
output_finder<8> m_digits;
};
@@ -127,12 +129,9 @@ READ8_MEMBER( sdk86_state::kbd_r )
{
uint8_t data = 0xff;
- if (m_digit < 3)
- {
- char kbdrow[6];
- sprintf(kbdrow,"X%X",m_digit);
- data = ioport(kbdrow)->read();
- }
+ if ((m_digit & 7) < 3)
+ data = m_kbdrow[m_digit & 7]->read();
+
return data;
}