Ich habe einen âkleinenâ Tastaturtreiber geschrieben, in dem ich Tastendrücke verarbeiten kann. Nun wollte ich die LEDs programmieren jedoch funktionier das irgendwie nicht.
jmp anf
;;;;;;;;;;;;;;;;
TaSt db 2 ;Num LED ist standartmäßig eingeschaltet
anf:
mov dx, 0x64
in al, dx
and al, 1
cmp al, 0
je anf
mov dx, 0x60
in al, dx
cmp al, 0xC5
je num
jmp anf
num:
mov dx, 0x64
in al, dx
and al, 1
cmp al, 0
jne anf
mov cx, 0x200
warte2: ;augenblick waren
loop warte2
mov dx, 0x60
mov al, 0xED
out dx, al
mov al, [TaSt]
mov cx, 0x200
warte1: ;augenblick waren
loop warte1
xor al, 0x2 ;Num LED setzen oder nicht setzen
out dx, al
mov [TaSt], al
mov cl, '0'
mov si, 8
add cl, al
mov [si],cl ;gucken ob er bis hier gekommen ist
in al, dx
jmp anf
Vorher wird in den ProtectMode geschaltet.
Der Selektor Ds zeigt auf einen Videodeskriptor.
Nach dem Ausführen passier folgendes:
Nach dem ich die "Num" Taste gerückt habe dauert es ein bisschen. (Warum weiß ich nicht, bei den nächsten drücken auf die Num Taste dauert es fast keine Zeit vielleicht 1ms oder so)
Auf dem Bildschirm erscheint nun ein R und eine Zeile Darunter und mehrere Spalten rechts ein (") Anführungszeichen obwohl statt ein R eine null da sein sollte und das LED leuchtet weiter nachdem ich die Num Taste noch mal drücke steht ein P statt einem R und kein (") und bei dem ED regt sich nichts. Warum funktioniert dieser Code nicht?