mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
hp/hp80.cpp: Fixed keyboard issue on hp86b_001 & hp86b_004. (#10668)
This commit is contained in:
parent
7154a0d3a4
commit
45faf34dbb
@ -203,6 +203,7 @@ protected:
|
||||
|
||||
// State of keyboard
|
||||
ioport_value m_kb_state[ 3 ];
|
||||
bool m_int_kb_enabled;
|
||||
bool m_kb_enable;
|
||||
bool m_kb_pressed;
|
||||
bool m_kb_flipped;
|
||||
@ -325,6 +326,7 @@ void hp80_base_state::machine_start()
|
||||
save_item(NAME(m_halt_lines));
|
||||
save_pointer(NAME(m_kb_state) , 3);
|
||||
save_item(NAME(m_kb_enable));
|
||||
save_item(NAME(m_int_kb_enabled));
|
||||
save_item(NAME(m_kb_pressed));
|
||||
save_item(NAME(m_kb_flipped));
|
||||
save_item(NAME(m_kb_lang_readout));
|
||||
@ -346,6 +348,7 @@ void hp80_base_state::machine_reset()
|
||||
m_kb_state[ 2 ] = 0;
|
||||
m_kb_keycode = 0xff;
|
||||
m_kb_enable = true;
|
||||
m_int_kb_enabled = false;
|
||||
m_kb_pressed = false;
|
||||
m_kb_flipped = false;
|
||||
m_kb_lang_readout = false;
|
||||
@ -463,6 +466,9 @@ void hp80_base_state::keysts_w(uint8_t data)
|
||||
if (m_has_int_keyb) {
|
||||
m_kb_lang_readout = BIT(data , 2);
|
||||
m_kb_raw_readout = BIT(data , 3);
|
||||
if (!m_int_kb_enabled && (data & 0x0f) == 1) {
|
||||
m_int_kb_enabled = true;
|
||||
}
|
||||
}
|
||||
m_dac->write(BIT(data , 5));
|
||||
m_beep->set_state(BIT(data , 6));
|
||||
@ -717,7 +723,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(hp80_base_state::kb_scan)
|
||||
input[ 1 ] = m_io_key1->read();
|
||||
input[ 2 ] = m_io_key2->read();
|
||||
|
||||
if (m_kb_enable) {
|
||||
if (m_kb_enable && (!m_has_int_keyb || m_int_kb_enabled)) {
|
||||
uint8_t row;
|
||||
uint8_t col;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user