summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-04-04 14:53:11 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-04-04 14:53:11 -0400
commit22e7581a2b01e53d2dad7f97b5bef0129eb6dc5e (patch)
treeca17f36e20d3642fcf8805a02c7943f8c0c3891b
parent672405116dfb42a6fe0925db1f8bf0ea829aeadf (diff)
vt100_kbd: Use output finders (nw)
-rw-r--r--src/mame/machine/vt100_kbd.cpp33
-rw-r--r--src/mame/machine/vt100_kbd.h5
2 files changed, 24 insertions, 14 deletions
diff --git a/src/mame/machine/vt100_kbd.cpp b/src/mame/machine/vt100_kbd.cpp
index 253022285a9..cf0a63f89dc 100644
--- a/src/mame/machine/vt100_kbd.cpp
+++ b/src/mame/machine/vt100_kbd.cpp
@@ -166,6 +166,10 @@ vt100_keyboard_device::vt100_keyboard_device(const machine_config &mconfig, cons
, m_speaker(*this, "beeper")
, m_scan_counter(*this, "counter")
, m_key_row(*this, "LINE%X", 0)
+ , m_online_led(*this, "online_led")
+ , m_local_led(*this, "local_led")
+ , m_locked_led(*this, "locked_led")
+ , m_ln_led(*this, "l%u_led", 1U)
, m_signal_line(true)
, m_last_signal_change(attotime::zero)
, m_last_scan(0)
@@ -230,13 +234,16 @@ void vt100_keyboard_device::device_start()
m_uart->write_cs(1);
m_uart->write_swe(0);
- machine().output().set_value("online_led",0);
- machine().output().set_value("local_led", 1);
- machine().output().set_value("locked_led",1);
- machine().output().set_value("l1_led", 1);
- machine().output().set_value("l2_led", 1);
- machine().output().set_value("l3_led", 1);
- machine().output().set_value("l4_led", 1);
+ m_online_led.resolve();
+ m_local_led.resolve();
+ m_locked_led.resolve();
+ m_ln_led.resolve();
+
+ m_online_led = 0;
+ m_local_led = 1;
+ m_locked_led = 1;
+ for (int n = 0; n < 4; n++)
+ m_ln_led[n] = 1;
save_item(NAME(m_signal_line));
save_item(NAME(m_last_signal_change));
@@ -267,13 +274,11 @@ WRITE_LINE_MEMBER(vt100_keyboard_device::signal_line_w)
if (dav)
{
u8 data = m_uart->get_received_data();
- machine().output().set_value("online_led",BIT(data, 5) ? 1 : 0);
- machine().output().set_value("local_led", BIT(data, 5) ? 0 : 1);
- machine().output().set_value("locked_led",BIT(data, 4) ? 0 : 1);
- machine().output().set_value("l1_led", BIT(data, 3) ? 0 : 1);
- machine().output().set_value("l2_led", BIT(data, 2) ? 0 : 1);
- machine().output().set_value("l3_led", BIT(data, 1) ? 0 : 1);
- machine().output().set_value("l4_led", BIT(data, 0) ? 0 : 1);
+ m_online_led = BIT(data, 5) ? 1 : 0;
+ m_local_led = BIT(data, 5) ? 0 : 1;
+ m_locked_led = BIT(data, 4) ? 0 : 1;
+ for (int n = 0; n < 4; n++)
+ m_ln_led[n] = BIT(data, 3 - n) ? 0 : 1;
m_speaker->set_state(BIT(data, 7));
if (BIT(data, 6))
diff --git a/src/mame/machine/vt100_kbd.h b/src/mame/machine/vt100_kbd.h
index 99c33a5aa29..fe1bed0c483 100644
--- a/src/mame/machine/vt100_kbd.h
+++ b/src/mame/machine/vt100_kbd.h
@@ -60,6 +60,11 @@ private:
required_device<ripple_counter_device> m_scan_counter;
required_ioport_array<16> m_key_row;
+ output_finder<> m_online_led;
+ output_finder<> m_local_led;
+ output_finder<> m_locked_led;
+ output_finder<4> m_ln_led;
+
bool m_signal_line;
attotime m_last_signal_change;
u8 m_last_scan;