Hm... Das verwirrt mich ein bisschen. Ich habe aktuell folgenden Code:
char keyboard_handler(int show) {
volatile char scancode=port_in(0x60);
if (!(scancode & 0x80)) {
if (show == 1) print_char(kbdus[(short)scancode], 4*160+12, 0x02);
return kbdus[(short)scancode];
}
return 0;
}
void reset_keyboard() {
while (!(port_in(0x64) & 0x1));
}
Der Code in der main.c hat sich nicht verändert, nur dass ich das reset_keyboard ganz am Anfang der großen hile Schleife entfernt habe. Es funktioniert auch alles so weit perfekt; das einzige seltsame Problem ist noch, wenn man vor der großen while Schleife eine Taste drückt und danach Enter, führt das dazu, dass aus der Schleife gegangen wird und gleich abgefragt, wird, ob der Computer neugestartet werden soll. Ich habe den Eindruck, dass irgendetwas total schiefgeht.