diff --git a/src/emu/machine/8042kbdc.c b/src/emu/machine/8042kbdc.c index 9c81a2e2850..77db7608e28 100644 --- a/src/emu/machine/8042kbdc.c +++ b/src/emu/machine/8042kbdc.c @@ -179,7 +179,6 @@ #include "machine/pckeybrd.h" #include "machine/8042kbdc.h" -#include "machine/pit8253.h" #include "machine/pcshare.h" @@ -208,6 +207,7 @@ static struct kbdc8042_type_t type; void (*set_gate_a20)(int a20); void (*keyboard_interrupt)(int state); + int (*get_out2)(running_machine *machine); UINT8 inport, outport, data, command; @@ -271,6 +271,7 @@ void kbdc8042_init(const struct kbdc8042_interface *intf) kbdc8042.type = intf->type; kbdc8042.set_gate_a20 = intf->set_gate_a20; kbdc8042.keyboard_interrupt = intf->keyboard_interrupt; + kbdc8042.get_out2 = intf->get_out2; /* ibmat bios wants 0x20 set! (keyboard locked when not set) 0x80 */ kbdc8042.inport = 0xa0; @@ -386,7 +387,7 @@ READ8_HANDLER(kbdc8042_8_r) break; case 2: - if (pit8253_get_output(0, 2)) + if (kbdc8042.get_out2(machine)) data |= 0x20; else data &= ~0x20; diff --git a/src/emu/machine/8042kbdc.h b/src/emu/machine/8042kbdc.h index 50113e88790..06fa4cc3b87 100644 --- a/src/emu/machine/8042kbdc.h +++ b/src/emu/machine/8042kbdc.h @@ -23,6 +23,7 @@ struct kbdc8042_interface kbdc8042_type_t type; void (*set_gate_a20)(int a20); void (*keyboard_interrupt)(int state); + int (*get_out2)(running_machine *machine); }; diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c index 3fdac56f47b..e8f5c261517 100644 --- a/src/mame/drivers/gamecstl.c +++ b/src/mame/drivers/gamecstl.c @@ -650,9 +650,13 @@ static void ide_interrupt(int state) pic8259_set_irq_line(1, 6, state); } +static int gamecstl_get_out2(running_machine *machine) { + return pit8253_get_output((device_config*)device_list_find_by_tag( machine->config->devicelist, PIT8254, "pit8254" ), 2 ); +} + static const struct kbdc8042_interface at8042 = { - KBDC8042_AT386, set_gate_a20, keyboard_interrupt + KBDC8042_AT386, set_gate_a20, keyboard_interrupt, gamecstl_get_out2 }; static const struct ide_interface ide_intf = diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c index d4bec59c629..cc7fcfb3926 100644 --- a/src/mame/drivers/mediagx.c +++ b/src/mame/drivers/mediagx.c @@ -1066,9 +1066,13 @@ static void ide_interrupt(int state) pic8259_set_irq_line(1, 6, state); } +static int mediagx_get_out2(running_machine *machine) { + return pit8253_get_output((device_config*)device_list_find_by_tag( machine->config->devicelist, PIT8254, "pit8254" ), 2 ); +} + static const struct kbdc8042_interface at8042 = { - KBDC8042_AT386, set_gate_a20, keyboard_interrupt + KBDC8042_AT386, set_gate_a20, keyboard_interrupt, mediagx_get_out2 }; static const struct ide_interface ide_intf = diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c index 33f07d4a509..756cfd56789 100644 --- a/src/mame/drivers/taitowlf.c +++ b/src/mame/drivers/taitowlf.c @@ -616,9 +616,13 @@ static void ide_interrupt(int state) pic8259_set_irq_line(1, 6, state); } +static int taitowlf_get_out2(running_machine *machine) { + return pit8253_get_output((device_config*)device_list_find_by_tag( machine->config->devicelist, PIT8254, "pit8254" ), 2 ); +} + static const struct kbdc8042_interface at8042 = { - KBDC8042_AT386, set_gate_a20, keyboard_interrupt + KBDC8042_AT386, set_gate_a20, keyboard_interrupt, taitowlf_get_out2 }; static const struct ide_interface ide_intf =