summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cvicny.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cvicny.cpp')
-rw-r--r--src/mame/drivers/cvicny.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/mame/drivers/cvicny.cpp b/src/mame/drivers/cvicny.cpp
index 4cf6a80a593..6cfb22b0d95 100644
--- a/src/mame/drivers/cvicny.cpp
+++ b/src/mame/drivers/cvicny.cpp
@@ -40,25 +40,29 @@ class cvicny_state : public driver_device
{
public:
cvicny_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_digit_last(0)
- { }
+ : driver_device(mconfig, type, tag)
+ , m_digit_last(0)
+ , m_maincpu(*this, "maincpu")
+ , m_digits(*this, "digit%u", 0U)
+ { }
- required_device<cpu_device> m_maincpu;
+ void cvicny(machine_config &config);
+ void cvicny_mem(address_map &map);
DECLARE_READ8_MEMBER(key_r);
DECLARE_WRITE8_MEMBER(digit_w);
DECLARE_WRITE8_MEMBER(segment_w );
+private:
uint8_t m_digit;
uint8_t m_digit_last;
- void cvicny(machine_config &config);
- void cvicny_mem(address_map &map);
+ virtual void machine_start() override { m_digits.resolve(); }
+ required_device<cpu_device> m_maincpu;
+ output_finder<8> m_digits;
};
WRITE8_MEMBER( cvicny_state::segment_w ) // output segments on the selected digit
{
if (m_digit != m_digit_last)
- output().set_digit_value(m_digit, data);
+ m_digits[m_digit] = data;
m_digit_last = m_digit;
}