PS/2 Tastatur Scancodes - Immer alles US-amerikanisch?

OP #6964382
Lesenswert?

Hallo zusammen!
Ein altes Laptop soll ein neues selbstgebasteltes Innenleben bekommen. 
Die Tastaturmatrix bekomme ich per Arduino Mega2560 inzwischen abgefragt 
(24 Pins für 89 Tasten...). Per "seriellem Debug" sehe ich welche Taste 
ich gedrückt habe. Verkabelung passt also.
Das ganze soll wie eine PS/2 Tastatur funktionieren, womit wir bei der 
eigentlichen Frage wären:
Sehe ich das richtig das die Scancodes (Scan Code Set 2, 
https://www.marjorie.de/ps2/start.htm) zwar auf konkrete Zeichen 
verweisen aber damit eigentlich nur die Tastaturkappenbeschriftung einer 
US-Standard-Tastatur meinen?

Ich müsste also schauen wo meine Laptop-Taste auf einer 
DE-Standard-Tastatur auftaucht, die Position dieser Taste auf einer 
US-Standard-Tastatur wiederfinden und das was dort auf der Tastaturkappe 
steht wäre dann der Buchstabe der zu meinem gewüschten Scancode passt. 
Bisschen Gefummel, aber kein unlösbares Problem....

Danke für eure Antworten
drahtbruecke
OP #6964426
Lesenswert?

Mit US-Layout tippen, ja das kann man machen, muß man aber nicht.
Ich habe erst 2% des Speichers belegt, beim RAM sind es noch weniger.
Ich glaube das krieg ich da noch rein. ;-)

Edith:
Jetzt funzt der Link. Ah, da sind die Code gleich aufgeführt. Dann ist 
der Rest ja reine Fleißarbeit.

Wenn man nur eine schräge Idee dazu hat, erwartet man nicht, diese 
schräge Idee komplett ausmultipliziert im Netz zu finden...

Danke fürs finden!
#6964485
Lesenswert?

Detlev S. schrieb:
> Sehe ich das richtig das die Scancodes (Scan Code Set 2,
> https://www.marjorie.de/ps2/start.htm) zwar auf konkrete Zeichen
> verweisen aber damit eigentlich nur die Tastaturkappenbeschriftung
> einer US-Standard-Tastatur meinen?

Scancodes sind unabhängig vom Tastaturlayout. Der Scancode identifiziert 
die Position der Taste. Die Scancodes sind dabei von der Matrix einer 
historischen IBM-Tastatur abgeleitet.

Die Zuordnung von Zeichen oder Sonderfunktionen (Shift oder auch 
Numlock) macht dann der Keyboard-Treiber. So ist es problemlos möglich, 
die Shift- Funktion z.B. auf die "Q" Taste zu legen. Elektrisch ist kein 
Unterschied zwischen beiden Tasten. Jede sendet ihren Make-Scancode beim 
Runterdrücken und den Break-Scancode beim loslassen.

Auch die LEDs einer Tastatur werden vom Treiber gesteuert. Daß die 
"Shift-Lock" LED den Status der Shift-Lock Funktion zeigt, ist reine 
Übereinkunft. Genausogut könnte der Keyboard-Treiber mit der LED die 
Uhrzeit im Morsecode schicken.
Gast #6964709
Lesenswert?

> Elektrisch ist kein Unterschied zwischen beiden Tasten [Q und Shift].

Nicht ganz.  Da die Qualifier-Tasten in Kombination mit anderen Tasten 
gedrückt werden (z.B. Alt-Shift-Control-F1) sind die (um beliebig viele 
gleichzeitige Betätigungen erkennen zu können und um Ghosting zu 
vermeiden) oft nicht Teil der Scan-Matrix sondern separat an den 
Controller geführt.

> Genausogut könnte der Keyboard-Treiber mit der LED die Uhrzeit im
> Morsecode schicken.

Bei mir zeigen die den Status der DSL-Leitung an, wie früher die Modems: 
CD/RX/TX ;-)
Gast #6964842
Lesenswert?

Josef schrieb:
> Die deutsche '<'-Taste und ihr Scan-Code fehlen
> übrigens auf der US-Tastatur, wenn ich das richtig sehe.

Richtig. Die non-US-Varianten haben 102 statt 101 Tasten und die 
Enter-Taste hat eine andere Form.


Wer gerne klassische Tastaturen nutzt, wie Cherry G80 oder IBM MF/2 
("Model M"), der legt sich mit passendem Tastaturtreiber die Windows- 
bzw SU-Taste auf die meist unnütze Caps Lock.
OP #6966384
Lesenswert?

Achim H. schrieb:
> Oder Du stellst Dein Tastaturlayout auf "English (USA?)" um und nimmst
> dadurch die Tasten auf -- es gibt einige Tasten, die an andere Stellen
> gerutscht sind.
>
> Man könnte auch nach einer entsprechenden Tabelle im Internet suchen ...
> http://www.winfaq.de/faq_html/Content/tip1500/onlinefaq.php?h=tip1576.htm

Hallo Achim. Ich such mir gerade ein wenig mein Zeug zusammen, und die 
Codes auf der von dir verlinkten Seite passen irgendwie nicht zu den 
anderen Quellen.

Z.B. "Escape" soll dort "01 00" sein, überall sonst wo es um PS/2 
Hardware geht finde ich 0x76. Und das loslassen ("break") der Taste ist 
gar nicht erwähnt.
Das sind Scan Codes, aber nicht für das PS/2 Tastaturprotokoll.
Das macht aber gar nichts, ich hab's ja sofort gemerkt. Ich glaube damit 
könnte eine "falsch belegte Tastatur" mit Windows-Mitteln "repariert" 
werden, oder? (Sorry, brüte gerade Corona aus, bin nicht so fit im 
Kopf.)

Wenn man die Idee mit dem Mapping einmal verstanden hat kann man die 
Codes einfach vom dem Tastaturbild in Wikipedia abtippen und braucht gar 
nicht den Umweg über die US-Tastatur zu nehmen.
Die Laptop-Tastatur hat zwar ein gequetschtes Layout ohne separaten 
Zehnerblock, aber jede Taste ist irgendwo vorhanden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren