我正在尝试制作一个PS/2键盘控制器,但是无法使其工作。
outb(0x60, 0xED);
outb(0x60, 2); /* Turn on CapsLock LED (doesn't works)*/
char c = 0;
while (c != 1)
{
if (inb(0x60) != c)
{
c = inb(0x60);
if (c > 0)
putch(scan2char(c));
}
}
scan2char function:
char scan2char(char scn)
{
char keych;
switch (scn)
{
case 0x15:
keych = 'q';
break;
case 0x1D:
keych = 'w';
break;
case 0x24:
keych = 'e';
break;
case 0x2D:
keych = 'r';
break;
case 0x2C:
keych = 't';
break;
case 0x35:
keych = 'y';
break;
}
return keych;
}
它可以读取键,但键盘布局以一种奇怪的方式发生了变化;例如:如果我按9键,我会得到q,如果我按0键,我会得到w,你明白了。 起初,我以为可能是putch函数的问题,但经过一些测试,我发现putch并不是问题所在。
protected-mode
让我怀疑... - linuxfan says Reinstate Monica