From 4ed537308ccfe0fa15c6fef607abd2fc94ca7009 Mon Sep 17 00:00:00 2001 From: Volker Ruppert Date: Sun, 27 Jan 2002 00:41:38 +0000 Subject: [PATCH] - read access to the status registers clears the IRQs --- bochs/iodev/keyboard.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bochs/iodev/keyboard.cc b/bochs/iodev/keyboard.cc index fc9b788ce..a0055b98c 100644 --- a/bochs/iodev/keyboard.cc +++ b/bochs/iodev/keyboard.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: keyboard.cc,v 1.42 2002-01-08 19:00:06 vruppert Exp $ +// $Id: keyboard.cc,v 1.43 2002-01-27 00:41:38 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -70,7 +70,7 @@ bx_keyb_c::bx_keyb_c(void) memset( &s, 0, sizeof(s) ); BX_KEY_THIS put("KBD"); BX_KEY_THIS settype(KBDLOG); - BX_DEBUG(("Init $Id: keyboard.cc,v 1.42 2002-01-08 19:00:06 vruppert Exp $")); + BX_DEBUG(("Init $Id: keyboard.cc,v 1.43 2002-01-27 00:41:38 vruppert Exp $")); } bx_keyb_c::~bx_keyb_c(void) @@ -110,7 +110,7 @@ bx_keyb_c::resetinternals(Boolean powerup) void bx_keyb_c::init(bx_devices_c *d, bx_cmos_c *cmos) { - BX_DEBUG(("Init $Id: keyboard.cc,v 1.42 2002-01-08 19:00:06 vruppert Exp $")); + BX_DEBUG(("Init $Id: keyboard.cc,v 1.43 2002-01-27 00:41:38 vruppert Exp $")); Bit32u i; BX_KEY_THIS devices = d; @@ -295,6 +295,8 @@ bx_keyb_c::read(Bit32u address, unsigned io_len) (BX_KEY_THIS s.kbd_controller.sysf << 2) | (BX_KEY_THIS s.kbd_controller.inpb << 1) | BX_KEY_THIS s.kbd_controller.outb; + BX_KEY_THIS devices->pic->untrigger_irq(1); + BX_KEY_THIS devices->pic->untrigger_irq(12); RETURN(val); }