mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
8042kbdc: only include mouse on ps2 keyboards, avoids extra invalid mouse device on touchscreen drivers and fixes input on the tv990 (nw)
This commit is contained in:
parent
5284e44ee2
commit
2c704f837b
@ -142,7 +142,7 @@ void kbdc8042_device::at_8042_check_keyboard()
|
||||
|
||||
void kbdc8042_device::at_8042_check_mouse()
|
||||
{
|
||||
if (!m_keyboard.received && !m_mouse.received)
|
||||
if ((m_keybtype == KBDC8042_PS2) && PS2_MOUSE_ON && !m_keyboard.received && !m_mouse.received)
|
||||
{
|
||||
if (m_mouse.to_transmit == 0)
|
||||
{
|
||||
@ -415,7 +415,7 @@ WRITE8_MEMBER(kbdc8042_device::data_w)
|
||||
m_mouse.on = 1;
|
||||
break;
|
||||
case 0xa9: /* test mouse */
|
||||
at_8042_receive(PS2_MOUSE_ON ? 0x00 : 0xff);
|
||||
at_8042_receive(((m_keybtype == KBDC8042_PS2) && PS2_MOUSE_ON) ? 0x00 : 0xff);
|
||||
break;
|
||||
case 0xaa: /* selftest */
|
||||
at_8042_receive(0x55);
|
||||
@ -530,5 +530,5 @@ INPUT_PORTS_END
|
||||
|
||||
ioport_constructor kbdc8042_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME(kbdc8042_mouse);
|
||||
return ((m_keybtype == KBDC8042_PS2) && PS2_MOUSE_ON) ? INPUT_PORTS_NAME(kbdc8042_mouse) : nullptr;
|
||||
}
|
||||
|
@ -28,8 +28,7 @@ public:
|
||||
enum kbdc8042_type_t
|
||||
{
|
||||
KBDC8042_STANDARD,
|
||||
KBDC8042_PS2, /* another timing of integrated controller */
|
||||
KBDC8042_AT386 /* hack for at386 driver */
|
||||
KBDC8042_PS2
|
||||
};
|
||||
|
||||
// construction/destruction
|
||||
@ -98,9 +97,9 @@ private:
|
||||
int m_poll_delay;
|
||||
|
||||
required_device<at_keyboard_device> m_keyboard_dev;
|
||||
required_ioport m_mousex_port;
|
||||
required_ioport m_mousey_port;
|
||||
required_ioport m_mousebtn_port;
|
||||
optional_ioport m_mousex_port;
|
||||
optional_ioport m_mousey_port;
|
||||
optional_ioport m_mousebtn_port;
|
||||
|
||||
kbdc8042_type_t m_keybtype;
|
||||
|
||||
|
@ -259,7 +259,7 @@ void mtxl_state::at486(machine_config &config)
|
||||
config.device_remove("mb:keybc");
|
||||
config.device_remove("mb:pc_kbdc");
|
||||
kbdc8042_device &kbdc(KBDC8042(config, "kbdc"));
|
||||
kbdc.set_keyboard_type(kbdc8042_device::KBDC8042_AT386);
|
||||
kbdc.set_keyboard_type(kbdc8042_device::KBDC8042_STANDARD);
|
||||
kbdc.system_reset_callback().set_inputline(m_maincpu, INPUT_LINE_RESET);
|
||||
kbdc.gate_a20_callback().set_inputline(m_maincpu, INPUT_LINE_A20);
|
||||
kbdc.input_buffer_full_callback().set("mb:pic8259_master", FUNC(pic8259_device::ir1_w));
|
||||
@ -319,7 +319,7 @@ void mtxl_state::at486hd(machine_config &config)
|
||||
config.device_remove("mb:keybc");
|
||||
config.device_remove("mb:pc_kbdc");
|
||||
kbdc8042_device &kbdc(KBDC8042(config, "kbdc"));
|
||||
kbdc.set_keyboard_type(kbdc8042_device::KBDC8042_AT386);
|
||||
kbdc.set_keyboard_type(kbdc8042_device::KBDC8042_STANDARD);
|
||||
kbdc.system_reset_callback().set_inputline(m_maincpu, INPUT_LINE_RESET);
|
||||
kbdc.gate_a20_callback().set_inputline(m_maincpu, INPUT_LINE_A20);
|
||||
kbdc.input_buffer_full_callback().set("mb:pic8259_master", FUNC(pic8259_device::ir1_w));
|
||||
|
@ -416,7 +416,7 @@ void tv990_state::tv990(machine_config &config)
|
||||
rs232b.cts_handler().set(m_uart[1], FUNC(ns16450_device::cts_w));
|
||||
|
||||
KBDC8042(config, m_kbdc);
|
||||
m_kbdc->set_keyboard_type(kbdc8042_device::KBDC8042_AT386);
|
||||
m_kbdc->set_keyboard_type(kbdc8042_device::KBDC8042_STANDARD);
|
||||
m_kbdc->input_buffer_full_callback().set_inputline("maincpu", M68K_IRQ_2);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
@ -917,7 +917,7 @@ void vis_state::vis(machine_config &config)
|
||||
config.device_remove("mb:pc_kbdc");
|
||||
|
||||
kbdc8042_device &kbdc(KBDC8042(config, "kbdc"));
|
||||
kbdc.set_keyboard_type(kbdc8042_device::KBDC8042_AT386);
|
||||
kbdc.set_keyboard_type(kbdc8042_device::KBDC8042_STANDARD);
|
||||
kbdc.system_reset_callback().set_inputline("maincpu", INPUT_LINE_RESET);
|
||||
kbdc.gate_a20_callback().set_inputline("maincpu", INPUT_LINE_A20);
|
||||
kbdc.input_buffer_full_callback().set("mb:pic8259_master", FUNC(pic8259_device::ir1_w));
|
||||
|
@ -221,7 +221,7 @@ void pcat_base_state::pcat_common(machine_config &config)
|
||||
m_mc146818->set_century_index(0x32);
|
||||
|
||||
KBDC8042(config, m_kbdc, 0);
|
||||
m_kbdc->set_keyboard_type(kbdc8042_device::KBDC8042_AT386);
|
||||
m_kbdc->set_keyboard_type(kbdc8042_device::KBDC8042_STANDARD);
|
||||
m_kbdc->system_reset_callback().set_inputline(m_maincpu, INPUT_LINE_RESET);
|
||||
m_kbdc->gate_a20_callback().set_inputline(m_maincpu, INPUT_LINE_A20);
|
||||
m_kbdc->input_buffer_full_callback().set(m_pic8259_1, FUNC(pic8259_device::ir1_w));
|
||||
|
Loading…
Reference in New Issue
Block a user