Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: bitmaster am 18. July 2007, 08:48
-
Hi,
ich bin gerade dabei meinen Tastaturtreiber fertig zu schreiben. Es klappt auch eigentlich alles wunderbar. Nur habe ich Verständnisprobleme mit dem extendet Scancodes E0h und E1h. Ich dachte immer das nach E0h ein Scancode kommt, den man direkt auslesen darf ohne erneut auf den IRQ1 warten zu müssen, und bei E1h zwi Scancodes die folgen. Aber jetzt habe ich gesehen, dass die Taste "Pause Untbr" folgenden Scancode hat: E1h 1Dh 45h E1h 9Dh C5h und die Taste "Druck S-Abf": E0h 2Ah E0h 37h. Das sind ja weit mehr als nur ein/zwei Scancodes die folgen. Aber woher weiß ich jetzt ob ich ein, zwei, drei, vier oder wie viele Scancodes ich nach E0h und E1h direkt laden darf? Und wieso folgen so viele Scancodes, wenn es doch gar nicht so viele Tasten gibt. Da würden doch ein oder zwei Scancodes reichen? Vielen dank!!!
bitmaster
-
E1h 1Dh 45h
Makecode.
E1h 9Dh C5h
Breakcode.
=> 2 Scancodes nach 0xE1 (zumindest bei dem Scancodeset)
"Druck S-Abf": E0h 2Ah E0h 37h
=> 2 Scancodes (das zweite 0xE0 kannst du verwerfen)
zumindest sind das meine Folgerungen.
-
die tastatur ist der letzte üpll, der im ibm standard zu finden ist... ich hab wochen gebraucht, bis ich durchgestiegen bin... am besten, du verwendest einen einfachen scancode. problem ist nur, dass manche tastaturen nicht zu allen scancodes kompatibel sind. (naja.. probiern!)
was diese beschissenen sonder-scancodes betrifft, bleibt dir nur eine möglichkeit: du musst abspeichern, ob bereits ein scancode dieser art gesendet wurde; denn wie du bereits befürchtet hast, wird bei jedem scancode ein neuer irq0 ausgelöst... vorher kannst du den code nicht auslesen.
hier findest du einiges:
- http://my.execpc.com/~geezer/osd/kbd/
- http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html
- http://my.execpc.com/~geezer/osd/kbd/de-1.txt
Cheebi
-
Vielen dank!!! Ich bin zwar schon fast fertig mit meinem Tastaturtreiber, nur du hast recht die speziellen Tasten wie Druck und Pause sind schon nicht so schön. Wobei Druck noch relativ einfach ist und mit einem extended shift umschlingt wird. Aber ich weiß ja jetzt wie ich das machen werde. Also vielen dank!!!
bitmaster