Lowlevel
Lowlevel => OS-Design => Thema gestartet von: RedEagle am 18. February 2010, 11:20
-
Hi
Ich suche nun schon seit Stunden eine Tabelle mit den Scancodes für Deutsche Tastaturen - leider ohne Erfolg. Alle Tabellen, auch die, die angeblich deutsch sein sollen sind Englisch.
Kennt zufällig jemand nen Link, oder hat jemand 'ne pdf rumliegen?
btw: Sind die scancodes für shift/alt/strg/*lock und auch Sondertasten wie F1..F12, enter,space,... auf jeder Tastatur gleich? Die Positionen ändern sich ja eigentlich nicht
-
http://www.tu-chemnitz.de/informatik/RA/lehre/mop/dos_stuff/scancodes.html
Müsste sein was du suchst.
-
hm... nicht wirklich, da es sich nicht um den set 2 scancode handelt :D
Allerdings wird dort das Deutsche und Englische layout vergleichen, was eigentlich schon reicht... Ich hoffe das Funktioniert mit den 2. set auch so reibungslos, aber Feinheiten lassen sich ja per Try&Error korrigieren
Danke
-
Warum muss es Set 2 sein? Ist diese Tabelle nicht die standardmäßige Belegung?
-
Eigentlich ist Set 2 die standardmäßige Belegung... Und auf einen kurzen Blick sieht mir das schon sehr nach Set 2 aus.
-
Naja - Es stimmt zumindest nicht mit [url http://www.computer-engineering.org/ps2keyboard/scancodes2.html]dieser (EN)[/url] Tabelle überein
bsp:
Zeichen - Tabelle: tu-chemnitz (EN) - Tabelle: computer-engineering.org (EN)
a - 0x1E - 0x1C
b - 0x30 - 0x32
c - 0x2E - 0x21
...
Diese ganze scancode-geschichte ist irgendwie sehr undurchsichtig - 1000 Tabellen geben 1000 andere Werte - Ich hatte damals schon Schwierigkeiten das die Tabelle, die ich damals nutze, teilweise nicht mit den Werten von bochs übereinstimmten.
Nur im Gegensatz zu damals würde ich den Treiber diesmal gerne richtig anpacken, und nicht irgendwas rein improvisieren. Deshalb hätte ich schon gerne gute Tabellen, am besten für verschiedene layouts wobei Englisch und Deutsch erstmal wichtigsten sind - Später können dann weitere durch hinzufügen einer Datei ergänzt werden...
-
Also man muss da genau lesen: http://www.computer-engineering.org/ps2keyboard/
This article tries to cover every aspect of AT and PS/2 keyboards. It includes information on the low-level signals and protocol, scan codes, the command set, initialization, compatibility issues, and other miscellaneous information. Since it's closely related, I've also included information on the PC keyboard controller.
Und zu den Scancode Sets: http://www.computer-engineering.org/ps2keyboard/#Scancodes%20FN
if you've ever done any low-level PC programming, you've probably notice the keyboard controller supplies set ONE scan codes by default.
Es gibt also einen Unterschied zwischen den Daten, die das Keyboard an den Keyboard Controller schickt, und den Daten, die der Keyboard Controller an die CPU schickt.
-
Deswegen gibt es im Command Byte ein Bit mit folgender Bedeutung:
XLAT (Translate Scan Codes) - Enables/disables translation to set 1 scan codes.
Ich habe übrigens keine Tabelle benutzt damals, sondern einfach scancode ausgeben lassen, Emulator starten paar tasten tippen, die scancodes merken, dann in Code umsetzen.
-
das XLAT-Bit habe ich gelöscht, und dann scancodes aus set 2 angefordert:
int SetScanCode2()
{
///Scancode 1 übersetzung deaktivieren
SendKBC_Command(KBCCMD_READ_CCMDBYTE);
BYTE ccmdbyte = GetKBCAnswer();
ccmdbyte &= ~KBCCCMDBYTE_TRANSLATE_SCANCODE;
SendKBC_Command(KBCCMD_WRITE_CCMDBYTE);
SendKBC_Data(ccmdbyte);
///Scancode 2 festlegen
SendKB_Command(KBCMD_SETSCANCODE);
SendKB_Data(KBSC_2);
return ERROR_NOERROR;
}
Ich spiele im Moment mit dem Gedanken einfach ein Tool für mein OS zu schreiben, mit dem man lookup-tables für seine Tastatur generieren lassen kann - man zeichnet ein Tastendruck auf, und fragt den User nach dem entsprechenden ASCII-Code...
Die Tabelle wird anschließend natürlich gespeichert - bei jeden booten allen Tasten ASCII-Codes zuzuweisen ist nicht sehr user friendly :-D
-
Ich spiele im Moment mit dem Gedanken einfach ein Tool für mein OS zu schreiben, mit dem man lookup-tables für seine Tastatur generieren lassen kann - man zeichnet ein Tastendruck auf, und fragt den User nach dem entsprechenden ASCII-Code...
Und mit welchen Tasten genau gibt er den ASCII-Code ein? :-D
-
Und mit welchen Tasten genau gibt er den ASCII-Code ein? :-D
Der ASCII-Code wird natürlich mit dem Any-Key gemorst. :wink:
-
Ich brauche den User ja nur zu bitten zu Beginn die Tasten 0..9 zu drücken.