Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: Hauke am 16. May 2005, 15:17

Titel: Tastaturtreiber
Beitrag von: Hauke am 16. May 2005, 15:17
Ich wollte ein Treiber für die Tastatur, anhand der Ports, programmieren. So hab ich herausgefunden, dass Port 60h für die Scanncodes da sind und, dass man diesen Port nur auslesen soll, wenn Bit 1 des Portes 64h eins ist. Aber wenn ich dieses überprüfe, wird nur eine 0 herausgegeben obwohl ich eine Taste gedrückt habe. Dasselbe passiert beim auslesen vor Port 60h mit Ausnahme, dass 0 und 255 zurückgegeben wird.

So sieht in etwa mein Code aus.
mov ax, 3
int 10h
mov ax, 0xb800
mov ds, ax
xor si, si ;si null setzen
anf:
mov dx, 0x64
in al, dx
and al, 2
cmp al, 0
je anf
mov dx, 0x60
in al, dx
cmp al, 0x1E ;Scancode für 'A'
jne anf
mov cl, 'a'
mov [si], cl
inc si
inc si
cmp si, 4000
jne anf
xor si, si
jmp anf

Worin legt das Problem?  :?: