interrupt 0x16 geht net?
-
ich hab mal folgende Funktion für meinen Kernel entworfen:
void consoleReadChar(char* c) { char kbBuf; _asm { mov ax, 0x0000 int 0x16 mov [kbBuf], al } *c = kbBuf; }
Die Funktion liest aber keinen Key ein. Hat jemand ne Ahnung wo der Fehler liegt?
-
vielleicht kein Realmode Code?
-
du musst aufpassem auf key- und scancode. in deinem beispiel wird der keycode zurückgegeben, also ganz normal buchstaben udn so. das klappt aber nicht bei pfeiltasten und so. außerdem wartet diese funktion auf einen tastendruck. ich weiß nicht, ob du dachtest, dass die funktion nur den code der momentan gedrückten taste zurückgibt. dann musst du die funkzion 0x01 des int 0x16 benutzen. ansonsten ist der code eig. ok... evtl musst du die eckigen klammern bei kbBuf weglassen, sollte aber gehn...
cu todo