diff options
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 |
commit | 22e7581a2b01e53d2dad7f97b5bef0129eb6dc5e (patch) | |
tree | ca17f36e20d3642fcf8805a02c7943f8c0c3891b | |
parent | 672405116dfb42a6fe0925db1f8bf0ea829aeadf (diff) |
vt100_kbd: Use output finders (nw)
-rw-r--r-- | src/mame/machine/vt100_kbd.cpp | 33 | ||||
-rw-r--r-- | src/mame/machine/vt100_kbd.h | 5 |
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; |