Autor Thema: Break-SCanCode wird nicht gesendet ...  (Gelesen 5084 mal)

thetrue

  • Beiträge: 216
    • Profil anzeigen
    • http://www.the-true.net
Gespeichert
« am: 20. July 2006, 22:09 »
nabend,

ich habe ein problem mit meinem Tastatur treiber...
wenn ich ne taste loslasse, bekomme ich keinen IRQ1 aufruff ... also kann ich die break scancodes nicht lesen ...
Make ScanCodes functionieren perfect, nja fast ...

hier mein IRQ1:

irq1:
pusha

in al,60h ;Tastaturdaten holen

mov edi, puffer
call num_to_str ; hex to decimal
mov esi, puffer
mov al, 0x00
int 30h ; text ausgabe ... (decimal)


mov al, 0x20 ;EOI-Wert in AL ablegen
out 0x20, al ;EOI an Master-PIC senden
popa
iret


und hier noch die einstellungen:

bcheck3:
in   al, 64h
and al, 02h
jnz bcheck3
mov al, 0xF6
out 0x60, al

bcheck:
in   al, 64h
and al, 02h
jnz bcheck

mov al, 0x60
out 0x64, al
bcheck2:
in   al, 64h
and al, 02h
jnz bcheck2

mov al, 10000111b
out 0x60,al[quote][/quote]
thetrue way is my way

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 20. July 2006, 22:19 »
hm... was genau macht die Funktion num_to_str? und was sind ihre Inputs/Outputs?

thetrue

  • Beiträge: 216
    • Profil anzeigen
    • http://www.the-true.net
Gespeichert
« Antwort #2 am: 20. July 2006, 22:21 »
Zitat von: __OS_coder
hm... was genau macht die Funktion num_to_str? und was sind ihre Inputs/Outputs?


die function wandelt hex, decimal etx in decimal strings ...

num_to_str:
mov cx, 1
clean_puffer:
push esi
mov esi, '0'
mov [edi], esi
inc cx
inc edi
pop esi
cmp cx, 7
jbe clean_puffer
num_to_str2:
mov bx,10
div bx
add dl,30h
mov [edi],dl
xor edx,edx
dec edi
cmp ax, 0
jne num_to_str2
ret
thetrue way is my way

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 20. July 2006, 22:38 »
hmm... okay
Break Codes?! STRG+C, z.B.? Da sendet der doch mehrere Bytes... das heißt du musst erst port 0x60 abfragen, den als Breakcode identifizieren und dann die restlichen bytes abfragen... Ick hab des aber selber noch nie gecodet...

thetrue

  • Beiträge: 216
    • Profil anzeigen
    • http://www.the-true.net
Gespeichert
« Antwort #4 am: 20. July 2006, 23:23 »
ne, ich bekomme net mal F0h gesendet .. also der erste byte vom break
thetrue way is my way

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 20. July 2006, 23:25 »
vllt liegt das daran, dass du erst ne Taste, die n breakcode sendet, drücken muss? XD  :P

thetrue

  • Beiträge: 216
    • Profil anzeigen
    • http://www.the-true.net
Gespeichert
« Antwort #6 am: 20. July 2006, 23:32 »
:D neee ich drücke schon paar tasten keine angst ;)
thetrue way is my way

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 21. July 2006, 00:09 »
Also ich habe nie komplexere Tastaturtreiber geschrieben, aber ich bin immer ohne irgendwelche Initialisierungen ausgekommen. Da ein anderer Beitrag vor dir darauf hindeutet, dass du in dem Initialisierungscode auf ein anderes Scancodeset wechselst, (sorry, aber den Wust schau ich mir nicht unkommentiert an) würde ich vorschlagen, dass du einfach bei der Standardeinstellung bleibst.
Dieser Text wird unter jedem Beitrag angezeigt.

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 21. July 2006, 19:40 »
ähmm... ist das erste Byte vom Break net 0xE0?! Kann aber auch seien, dass ich mich irre...

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #9 am: 21. July 2006, 19:55 »
nein, das byte 0xE0 kommt vor jedem der erweiterten Scancodes. Er hat schon recht mit 0xF0... aber ich glaube mittlerweile funktioniert es bei ihm, soweit ich des jetzt in ICQ mitgekriegt hab...
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 21. July 2006, 19:58 »
nagut alles klar ;) ich hab des ja auch noch nie gemacht, mit den breakcodes... aber gelesen habe ick darüber...ist aber auch schon länger her... LoL

thetrue

  • Beiträge: 216
    • Profil anzeigen
    • http://www.the-true.net
Gespeichert
« Antwort #11 am: 21. July 2006, 20:21 »
jop, alles fucntioniert, es hat von anfang an functioniert, nur habe ich es nicht  mit gekreigt ^^ da ich die scancodes immer überschreiben habe ... also beim ausgeben
thetrue way is my way

 

Einloggen