From d01c23cdc8f0291d7f65ca9f55c927d80836b313 Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 15 May 2020 11:26:14 +0200 Subject: [PATCH] datum,emma2: small fix to matrix() calls (nw) --- src/mame/drivers/datum.cpp | 14 +++++--------- src/mame/drivers/emma2.cpp | 9 ++++++--- src/mame/layout/saitek_ssystem4.lay | 2 +- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/mame/drivers/datum.cpp b/src/mame/drivers/datum.cpp index 8f2bbd13732..4e86ef3bf2e 100644 --- a/src/mame/drivers/datum.cpp +++ b/src/mame/drivers/datum.cpp @@ -82,6 +82,7 @@ private: DECLARE_WRITE8_MEMBER(pb_w); void datum_mem(address_map &map); uint8_t m_keydata; + uint8_t m_seg; virtual void machine_reset() override; required_device m_pia1; required_device m_pia2; @@ -156,6 +157,7 @@ INPUT_CHANGED_MEMBER( datum_state::trigger_nmi ) void datum_state::machine_reset() { m_keydata = 0; + m_seg = 0; } // read keyboard @@ -170,21 +172,15 @@ READ8_MEMBER( datum_state::pa_r ) // write display segments WRITE8_MEMBER( datum_state::pa_w ) { - data ^= 0xff; - if (m_keydata > 3) - { - m_display->matrix(1<(data, 7, 0, 5, 6, 4, 2, 1, 3)); - m_keydata = 0; - } - - return; + m_seg = bitswap<8>(~data, 7, 0, 5, 6, 4, 2, 1, 3); + m_display->matrix(1<(data, 7, 6, 5, 4, 0, 1, 2, 3) & 15; - return; + m_display->matrix(1< m_maincpu; required_device m_cassette; required_device m_via; @@ -153,13 +154,14 @@ WRITE8_MEMBER( emma2_state::digit_w ) { m_cassette->output( BIT(data, 6) ? +1.0 : -1.0); - data &= 7; - m_digit = data; + m_digit = data & 7; + m_display->matrix(1 << m_digit, m_seg); } WRITE8_MEMBER( emma2_state::segment_w ) { - m_display->matrix(1<matrix(1 << m_digit, m_seg); } READ8_MEMBER( emma2_state::keyboard_r ) @@ -171,6 +173,7 @@ READ8_MEMBER( emma2_state::keyboard_r ) void emma2_state::machine_reset() { + m_seg = 0; m_digit = 0; } diff --git a/src/mame/layout/saitek_ssystem4.lay b/src/mame/layout/saitek_ssystem4.lay index 46a4bdaa72c..9a317d17d33 100644 --- a/src/mame/layout/saitek_ssystem4.lay +++ b/src/mame/layout/saitek_ssystem4.lay @@ -87,7 +87,7 @@ license:CC0 - +