diff options
Diffstat (limited to 'src/mame/drivers/sc2.cpp')
-rw-r--r-- | src/mame/drivers/sc2.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/mame/drivers/sc2.cpp b/src/mame/drivers/sc2.cpp index 1260e0d0b48..e1d75ecc5fc 100644 --- a/src/mame/drivers/sc2.cpp +++ b/src/mame/drivers/sc2.cpp @@ -25,10 +25,12 @@ public: sc2_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_beep(*this, "beeper"), - m_maincpu(*this, "maincpu") + m_maincpu(*this, "maincpu"), + m_digits(*this, "digit%u", 0U), + m_leds(*this, "led%u", 0U) { } - required_device<beep_device> m_beep; + DECLARE_READ8_MEMBER(pio_port_a_r); DECLARE_READ8_MEMBER(pio_port_b_r); DECLARE_WRITE8_MEMBER(pio_port_a_w); @@ -42,10 +44,14 @@ public: void sc2_update_display(); virtual void machine_start() override; virtual void machine_reset() override; - required_device<cpu_device> m_maincpu; void sc2(machine_config &config); void sc2_io(address_map &map); void sc2_mem(address_map &map); + + required_device<beep_device> m_beep; + required_device<cpu_device> m_maincpu; + output_finder<4> m_digits; + output_finder<2> m_leds; }; READ8_MEMBER( sc2_state::sc2_beep ) @@ -105,6 +111,9 @@ INPUT_PORTS_END void sc2_state::machine_start() { + m_digits.resolve(); + m_leds.resolve(); + save_item(NAME(m_led_7seg_data)); save_item(NAME(m_kp_matrix)); save_item(NAME(m_led_selected)); @@ -127,29 +136,29 @@ void sc2_state::sc2_update_display() if (!BIT(m_led_selected, 0)) { - output().set_digit_value(0, digit_data); + m_digits[0] = digit_data; m_led_7seg_data[0] = digit_data; - output().set_led_value(0, BIT(m_digit_data, 7)); + m_leds[0] = BIT(m_digit_data, 7); } if (!BIT(m_led_selected, 1)) { - output().set_digit_value(1, digit_data); + m_digits[1] = digit_data; m_led_7seg_data[1] = digit_data; - output().set_led_value(1, BIT(m_digit_data, 7)); + m_leds[1] = BIT(m_digit_data, 7); } if (!BIT(m_led_selected, 2)) { - output().set_digit_value(2, digit_data); + m_digits[2] = digit_data; m_led_7seg_data[2] = digit_data; } if (!BIT(m_led_selected, 3)) { - output().set_digit_value(3, digit_data); + m_digits[3] = digit_data; m_led_7seg_data[3] = digit_data; } } |