pc_kbc: fix keyboard with pc/xt (nw)

This commit is contained in:
cracyc 2019-03-14 19:01:25 -05:00
parent 427ab5516b
commit 1a14eeaa7d

View File

@ -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();
}