diff options
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 |
commit | a29b09717a0ab7a72976e88e26d08696a7b17ca8 (patch) | |
tree | b7c7e2b53602331732b43ceefacaffef2bacee7c /src/emu/machine/8042kbdc.c | |
parent | cab1345f1c6768347329d3ab95c9fe4282769faf (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.c | 10 |
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 ); } } |