mirror of
https://github.com/memtest86plus/memtest86plus.git
synced 2025-02-25 18:55:23 -06:00
Ignore PS/2 mouse events (issue #456)
If a legacy BIOS has enabled PS/2 mouse input, the bytes received on port 0x60 may come from either the keyboard or the mouse. Currently we treat all bytes as keyboard input, which means mouse input will be translated into arbitrary key codes. This may cause a memory test to be interrupted or aborted. We should instead disable or ignore any mouse input. Although it should be possible to reconfigure the PS/2 controller to disable mouse input, it's quite likely that there's some quirky H/W out there that makes this more complicated than it seems. The simple solution is to detect mouse input by checking whether bit 5 of the received byte is set and discarding it if so.
This commit is contained in:
parent
71d061a4c7
commit
5a5c6f3c8b
@ -248,9 +248,13 @@ char get_key(void)
|
||||
|
||||
static bool escaped = false;
|
||||
if (keyboard_types & KT_LEGACY) {
|
||||
uint8_t c = inb(0x64);
|
||||
if (c & 0x01) {
|
||||
c = inb(0x60);
|
||||
uint8_t status = inb(0x64);
|
||||
if (status & 0x01) {
|
||||
uint8_t c = inb(0x60);
|
||||
if (status & 0x20) {
|
||||
// Ignore mouse events.
|
||||
return '\0';
|
||||
}
|
||||
if (escaped) {
|
||||
escaped = false;
|
||||
switch (c) {
|
||||
|
Loading…
Reference in New Issue
Block a user