Autor Thema: Keyboard  (Gelesen 4720 mal)

zacK

  • Beiträge: 216
    • Profil anzeigen
    • http://www.domae.ch
Gespeichert
« am: 06. April 2005, 09:06 »
HUHU

ich bin gerade meinem vesa treiber am aktualisieren. ich möchte das ich mit verschiedenen tast die auflösung wählen kann.

doch ich habe gemerkt das wenn ich den pc boote, das da schon was im keyboard buffer steht...

damit hole ich ne taste
getkey:
xor ax,ax
int 0x16
ret


nun muss ich immer die getkey 2 mal aufrufen weil sie beim ersten mal überspringt wird da im buffer die 2 steht... hat jemand ne ahnung wie ich diesen buffer lehren kann?

thx

zacK

  • Beiträge: 216
    • Profil anzeigen
    • http://www.domae.ch
Gespeichert
« Antwort #1 am: 07. April 2005, 09:07 »
ich glaube die 2 war im buffer weil ich den a20 gate falsch aktiviert habe...

ich aktiviere den a20 auf verschiedene weisen, jedoch scheint er immer noch nicht gesetzt zu sein... :( könnte villeicht jemand meine a20testrutine kontrolieren? thx

EDIT: Die Funktion sollte in ax 1 schreiben falls a20 aktiviert ist, sonst 0.

;===============================================================
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;-----------Test if a20 is set----------------------------------
TestA20:
.0:
push bx
push cx
push es

.1:
mov bx, 0xFFFF
mov es, bx
push bx
mov ax, [es:0x100]
not ax
xor bx, bx
mov es, bx
mov [es:0x100], ax
pop bx
mov es,bx
cmp ax, [es:0x100]
je .2

mov ax, 1
jmp .3

.2:
mov ax, 0

.3:
pop es
pop cx
pop bx
ret

 

Einloggen