- read access to the status registers clears the IRQs

This commit is contained in:
Volker Ruppert 2002-01-27 00:41:38 +00:00
parent 4d4be62283
commit 4ed537308c
1 changed files with 5 additions and 3 deletions

View File

@ -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. // Copyright (C) 2002 MandrakeSoft S.A.
@ -70,7 +70,7 @@ bx_keyb_c::bx_keyb_c(void)
memset( &s, 0, sizeof(s) ); memset( &s, 0, sizeof(s) );
BX_KEY_THIS put("KBD"); BX_KEY_THIS put("KBD");
BX_KEY_THIS settype(KBDLOG); 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) bx_keyb_c::~bx_keyb_c(void)
@ -110,7 +110,7 @@ bx_keyb_c::resetinternals(Boolean powerup)
void void
bx_keyb_c::init(bx_devices_c *d, bx_cmos_c *cmos) 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; Bit32u i;
BX_KEY_THIS devices = d; 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.sysf << 2) |
(BX_KEY_THIS s.kbd_controller.inpb << 1) | (BX_KEY_THIS s.kbd_controller.inpb << 1) |
BX_KEY_THIS s.kbd_controller.outb; 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); RETURN(val);
} }