summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/pckeybrd.cpp
diff options
context:
space:
mode:
author wilbertpol <wilbertpol@users.noreply.github.com>2018-05-20 19:27:20 +0200
committer R. Belmont <rb6502@users.noreply.github.com>2018-05-20 13:27:20 -0400
commit2beba4ce73fad917c7159a39939bace54f76494b (patch)
treee9d33c059bc5045f13d0c1748f0a044650370b8d /src/devices/machine/pckeybrd.cpp
parentacf93837ac21b2b0bb003d1649b893200c269812 (diff)
Replace set_led_value and set_lamp_value with output_finders. [Wilbe… (#3592)
* Replace set_led_value and set_lamp_value with output_finders. [Wilbert Pol] * segaufo: keep the 2 bit lamp outputs
Diffstat (limited to 'src/devices/machine/pckeybrd.cpp')
-rw-r--r--src/devices/machine/pckeybrd.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/devices/machine/pckeybrd.cpp b/src/devices/machine/pckeybrd.cpp
index 2ff9f5c7261..b06611f261f 100644
--- a/src/devices/machine/pckeybrd.cpp
+++ b/src/devices/machine/pckeybrd.cpp
@@ -293,6 +293,7 @@ pc_keyboard_device::pc_keyboard_device(const machine_config &mconfig, device_typ
at_keyboard_device::at_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
pc_keyboard_device(mconfig, AT_KEYB, tag, owner, clock),
+ m_leds(*this, "led%u", 0U),
m_scan_code_set(1)
{
m_type = KEYBOARD_TYPE::AT;
@@ -333,6 +334,7 @@ void at_keyboard_device::device_start()
save_item(NAME(m_scan_code_set));
save_item(NAME(m_input_state));
pc_keyboard_device::device_start();
+ m_leds.resolve();
}
void pc_keyboard_device::device_reset()
@@ -341,10 +343,6 @@ void pc_keyboard_device::device_reset()
m_repeat = 8;
m_numlock = 0;
m_on = true;
- /* set default led state */
- machine().output().set_led_value(2, 0);
- machine().output().set_led_value(0, 0);
- machine().output().set_led_value(1, 0);
m_head = m_tail = 0;
queue_insert(0xaa);
@@ -355,6 +353,11 @@ void at_keyboard_device::device_reset()
{
m_input_state = 0;
pc_keyboard_device::device_reset();
+
+ /* set default led state */
+ m_leds[2] = 0;
+ m_leds[0] = 0;
+ m_leds[1] = 0;
}
WRITE_LINE_MEMBER(pc_keyboard_device::enable)
@@ -783,11 +786,10 @@ WRITE8_MEMBER(at_keyboard_device::write)
/* bits: 0 scroll lock, 1 num lock, 2 capslock */
/* led's in same order as my keyboard leds. */
- /* num lock, caps lock, scroll lock */
- machine().output().set_led_value(2, (data & 0x01));
- machine().output().set_led_value(0, ((data & 0x02)>>1));
- machine().output().set_led_value(1, ((data & 0x04)>>2));
-
+ /* num lock, caps lock, scroll lock */
+ m_leds[2] = BIT(data, 0);
+ m_leds[0] = BIT(data, 1);
+ m_leds[1] = BIT(data, 2);
}
break;
case 2: