summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/sc2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/sc2.cpp')
-rw-r--r--src/mame/drivers/sc2.cpp27
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;
}
}