A free Windows-compatible Operating System - mirrored from GitHub
Go to file
Colin Finck 73dc6b939b - The implementation of the "Mouse Reset" command differs much from chip to chip.
While most return an ACK or NACK as the first byte to indicate, whether a mouse is plugged in or not, some systems (like ECS K7S5A Pro, SiS735 chipset) always return an ACK and 0xAA.
  Only the last byte indicates the status of the actual mouse. It is either sent as 0x00 or not.

  Therefore only get the first two bytes in a loop and issue just one i8042ReadDataWait command for the last byte.
  This reduced the "black screen time" in 1st stage setup (after loading the drivers and before showing the language selection screen) from 45 seconds to 3 seconds on my K7S5A Pro system.
  I also tested this change with three other systems, with and without mouse, and they are still detected properly.
- Wait 50 microseconds, when we got no data after the Mouse Reset and before trying it again.
  This way, the implementation doesn't depend on the system speed.
- Break the loop, when the CTRL_SELF_TEST command completed successfully.
- Remove the return values from i8042DetectKeyboard and i8042DetectMouse.
  We just used them for outputting debug info if no keyboard or mouse was detected. But this info is already printed by the procedures themselves.
  This way, I could also drop one variable in i8042DetectMouse :-)

svn path=/trunk/; revision=32725
2008-03-20 12:21:34 +00:00
irc Fix the build. 2008-03-08 11:08:52 +00:00
reactos - The implementation of the "Mouse Reset" command differs much from chip to chip. 2008-03-20 12:21:34 +00:00
rosapps Bug 3136: Italian translation update by Paolo Devoti (devotip@tiscali.it) 2008-03-18 11:46:03 +00:00
rostests add missing winetests : hlink & schannel, 2008-02-22 21:01:47 +00:00
wallpaper Re-add the "lake.bmp" wallpaper inclusion (partly imported from the deleted 0.3.1 branch, r26044) 2007-06-21 15:23:49 +00:00