diff options
author | Robbbert <Robbbert@users.noreply.github.com> | 2018-04-04 13:42:15 +1000 |
---|---|---|
committer | Robbbert <Robbbert@users.noreply.github.com> | 2018-04-04 13:42:15 +1000 |
commit | c460fa875cf673b432632a2c2e97ab528587bc2d (patch) | |
tree | a5edac6b5068055da13fd3e6916f9f3d352e35f0 /src/mame/drivers/s8.cpp | |
parent | d16497ea885779e1397a98248f418e7e9d32c8aa (diff) |
(nw) output finder for s6,s8,s8a,s9,spectra,taito
Diffstat (limited to 'src/mame/drivers/s8.cpp')
-rw-r--r-- | src/mame/drivers/s8.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mame/drivers/s8.cpp b/src/mame/drivers/s8.cpp index 99b89e267f0..a58b0068b64 100644 --- a/src/mame/drivers/s8.cpp +++ b/src/mame/drivers/s8.cpp @@ -68,6 +68,7 @@ public: , m_pia24(*this, "pia24") , m_pia28(*this, "pia28") , m_pia30(*this, "pia30") + , m_digits(*this, "digit%u", 0U) { } DECLARE_READ8_MEMBER(sound_r); @@ -102,6 +103,7 @@ private: emu_timer* m_irq_timer; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; static const device_timer_id TIMER_IRQ = 0; + virtual void machine_start() override { m_digits.resolve(); } required_device<cpu_device> m_maincpu; required_device<cpu_device> m_audiocpu; required_device<pia6821_device> m_pias; @@ -109,6 +111,7 @@ private: required_device<pia6821_device> m_pia24; required_device<pia6821_device> m_pia28; required_device<pia6821_device> m_pia30; + output_finder<61> m_digits; }; void s8_state::s8_main_map(address_map &map) @@ -230,7 +233,7 @@ WRITE8_MEMBER( s8_state::dig0_w ) data &= 0x7f; m_strobe = data & 15; m_data_ok = true; - output().set_digit_value(60, patterns[data>>4]); // diag digit + m_digits[60] = patterns[data>>4]; // diag digit } WRITE8_MEMBER( s8_state::dig1_w ) @@ -238,8 +241,8 @@ WRITE8_MEMBER( s8_state::dig1_w ) static const uint8_t patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543 if (m_data_ok) { - output().set_digit_value(m_strobe+16, patterns[data&15]); - output().set_digit_value(m_strobe, patterns[data>>4]); + m_digits[m_strobe+16] = patterns[data&15]; + m_digits[m_strobe] = patterns[data>>4]; } m_data_ok = false; } |