diff options
author | cracyc <cracyc@users.noreply.github.com> | 2019-03-14 19:01:25 -0500 |
---|---|---|
committer | cracyc <cracyc@users.noreply.github.com> | 2019-03-14 19:01:25 -0500 |
commit | 1a14eeaa7d26dd5a5b83bc36874fe68198d07eaa (patch) | |
tree | fa4bfd87a0d722825f5bd6440a3db33dbe589960 | |
parent | 427ab5516bf687728a4f708389b9593486a32860 (diff) |
pc_kbc: fix keyboard with pc/xt (nw)
-rw-r--r-- | src/devices/bus/pc_kbd/pc_kbdc.cpp | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/devices/bus/pc_kbd/pc_kbdc.cpp b/src/devices/bus/pc_kbd/pc_kbdc.cpp index 6d28227bca2..5e99056adbe 100644 --- a/src/devices/bus/pc_kbd/pc_kbdc.cpp +++ b/src/devices/bus/pc_kbd/pc_kbdc.cpp @@ -118,9 +118,12 @@ void pc_kbdc_device::update_clock_state() // We first set our state to prevent possible endless loops m_clock_state = new_clock_state; + // Send state to keyboard interface logic on mainboard + m_out_clock_cb(m_clock_state); + // Send state to keyboard if (m_keyboard) - m_keyboard->clock_write( m_clock_state ); + m_keyboard->clock_write(m_clock_state); } } @@ -134,6 +137,9 @@ void pc_kbdc_device::update_data_state() // We first set our state to prevent possible endless loops m_data_state = new_data_state; + // Send state to keyboard interface logic on mainboard + m_out_data_cb(m_data_state); + // Send state to keyboard if (m_keyboard) m_keyboard->data_write(m_data_state); @@ -157,23 +163,15 @@ WRITE_LINE_MEMBER(pc_kbdc_device::data_write_from_mb) WRITE_LINE_MEMBER(pc_kbdc_device::clock_write_from_kb) { - state = state ? 1 : 0; - if (state != m_kb_clock_state) - { - m_out_clock_cb(m_kb_clock_state = state); - update_clock_state(); - } + m_kb_clock_state = state; + update_clock_state(); } WRITE_LINE_MEMBER(pc_kbdc_device::data_write_from_kb) { - state = state ? 1 : 0; - if (state != m_kb_data_state) - { - m_out_data_cb(m_kb_data_state = state); - update_data_state(); - } + m_kb_data_state = state; + update_data_state(); } |