Autor Thema: [asm] tastatur treiber konvertiert die zeichen nicht  (Gelesen 2263 mal)

chris12

  • Beiträge: 134
    • Profil anzeigen
Gespeichert
« am: 07. September 2008, 21:07 »
ich bin seit freitag dabei eienen tastatur treiber für mein os zu schreiben aber nun will es nicht so wie ich will, meien idee war es das bios standart layout zu nehemen und die zeichen der tastatur anzupassen zb. bios standart layout z und y vertauscht-> zurücktauschen.
nun hab ich aber das problem, dass die zeichen nach der bearbeitung nicht ausgegeben werden und das der tastatur puffer nach kurzer zeit voll ist, und desshalb keine zeichen mehr aufnimmt. aber das passiert nur wenn dieser bearbeitungs code aufgerufen wird.

hier der problem code:
tasttr: 
mov ah, 0 
int 16h 

cmp ah, 0x4B  ;scancode für pfeiltaste links
je near key_left 
.
. ;hier werden noch andere scancodes abgefragt
.
cmp al, 'z'
je near key_y 
.
.  ;hier werden noch andere ascii zeichen und codes abgefragt
.

weiter:
mov ah, 0x0e   
int 10h

;das folgende sind konvertierungen von groß zu klein; haben nur bedeutung fur die befehlsauswehrtung

mov dl, 'A'   
cmp al, dl   
je near A2a_a   
.
.  ;hier werden alle buchstaben Von groß zu klein konvertiert
.
ret
A2a_a: 
mov al, 'a' 
ret 
.
. ;hier werden alle buchstaben Von groß zu klein konvertiert
.

key_left:
mov si, left ;Inhalt: 'left wurde gedrückt'
mov al, 01h ;funktion 01h (schreiben) des
int 21h   ;int 21h (eigenes int mit bios teletype)
jmp weiter
.
.
.

key_y:
mov al, 'y'
jmp weiter 

.
.
.
mfg bb chris12
OS? Pah! Zuerst die CPU, dann die Plattform und _dann_ das OS!

 

Einloggen