summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine/8042kbdc.c
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2011-12-21 02:36:32 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2011-12-21 02:36:32 +0000
commita29b09717a0ab7a72976e88e26d08696a7b17ca8 (patch)
treeb7c7e2b53602331732b43ceefacaffef2bacee7c /src/emu/machine/8042kbdc.c
parentcab1345f1c6768347329d3ab95c9fe4282769faf (diff)
Fix for 8042kbc.c irq generation, now California Chase correctly accept keyboard inputs [Grull Osgo]
Diffstat (limited to 'src/emu/machine/8042kbdc.c')
-rw-r--r--src/emu/machine/8042kbdc.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/emu/machine/8042kbdc.c b/src/emu/machine/8042kbdc.c
index 9e13c4af7f7..51f54809bab 100644
--- a/src/emu/machine/8042kbdc.c
+++ b/src/emu/machine/8042kbdc.c
@@ -264,6 +264,12 @@ static TIMER_CALLBACK( kbdc8042_time )
at_8042_check_keyboard(machine);
}
+static TIMER_CALLBACK( kbdc8042_clr_int )
+{
+ /* Lets 8952's timers do their job before clear the interrupt line, */
+ /* else Keyboard interrupt never happens. */
+ kbdc8042.keyboard_interrupt(machine, 0);
+}
void kbdc8042_init(running_machine &machine, const struct kbdc8042_interface *intf)
@@ -293,7 +299,9 @@ static void at_8042_receive(running_machine &machine, UINT8 data)
if (kbdc8042.keyboard_interrupt)
{
kbdc8042.keyboard_interrupt(machine, 1);
- kbdc8042.keyboard_interrupt(machine, 0);
+ /* Lets 8952's timers do their job before clear the interrupt line, */
+ /* else Keyboard interrupt never happens. */
+ machine.scheduler().timer_set( attotime::from_usec(2), FUNC(kbdc8042_clr_int),0,0 );
}
}