Privacy Policy Cookie Policy Terms and Conditions Scancode - Wikipedia

Scancode

aus Wikipedia, der freien Enzyklopädie

Inhaltsverzeichnis

[Bearbeiten] XT-Tastatur

In den frühen 1980-er Jahren hat IBM die sogenannte XT- PC-Tastatur mit 83 Tasten eingeführt. Um nicht bei jeder länderspezifischen Tastatur andere Codes generieren zu müssen, wurde jeder Taste eine Nummer zugeordnet, der sog. Scancode, der im Rechner vom Tastaturtreiber ein ASCII-Code zugeordnet wurde. Ein Standard-Tastaturtreiber für die US-amerikanische Belegung war bei jedem PC im BIOS integriert, länderspezifische Zuordnungen erledigte ein Software-Tastaturtreiber, der als TSR-Programm beim Systemstart nachgeladen wurde.

Bei der XT-Tastatur gab es links einen Block von 10 Funktionstasten und rechts die alphanumerischen Tasten mit angegliedertem Zahlenblock. LEDs zur Signalisierung der aktuellen Zustände und einen separaten Cursorblock gab es noch nicht. Die Kommunikation geschah ausschließlich von der Tastatur zum PC. Der prinzipielle Aufbau der seriellen Schnittstelle ist unter PS/2-Schnittstelle beschrieben; der typische Steckverbinder für PC- und AT-Tastaturen war allerdings über lange Jahre ein 5poliger DIN-Verbinder, den man in Deutschland als Stecker für NF-Signale kannte ("Überspielkabel").

[Bearbeiten] AT-Tastatur

Die logische Weiterentwicklung war die AT-Tastatur mit 84 Tasten (abgesetzten Funktionstasten und 10er Block). Hier wurde die physikalische Schnittstelle, die PS/2-Schnittstelle, beibehalten, jedoch wurde die Signalisierung komplett neu gestaltet. Die Kommunikation zwischen Rechner und Tastatur war nun bidirektional, erkennbar beispielsweise daran, dass der Rechner die Status-LEDs programmgesteuert schalten konnte. Die übertragenen Codes waren völlig andere als beim XT. Ein kleiner Ein-Chip-Rechner (8042), etwas missverständlich "keyboard BIOS" genannt, setzte die tatsächlich übertragenen Codes auf kompatible Werte um. Für die Software sah eine AT-Tastatur (mit ihrem vorgeschalteten "keyboard BIOS") einer XT-Tastatur sehr ähnlich.

Der Umbau eines XT auf AT erforderte meist den Austausch der Tastatur; es gab aber auch Tastaturen, die sich selbst passend umschalten konnten.

[Bearbeiten] MF2-Tastatur

deutsche MF2-Tastatur mit 105 Tasten
vergrößern
deutsche MF2-Tastatur mit 105 Tasten

Der nächste Generationswechsel vollzog sich 1986, als IBM die 101 Tasten große MF2-Tastatur für den US- oder englischen Markt herausbrachte. Analog wurde die länderspezifische 102 Tasten große MF2-Tastatur definiert. Letztendlich basieren auf diesen beiden Tastaturlayouts alle zukünftigen Erweiterungen, wie beispielsweise die 104/105 Tasten Windows-Tastatur.

Die Anordnung der Tasten wurde dahingegen geändert, dass nun die Funktionstasten oberhalb der alphanumerischen Tasten liegen. Der Zehnerblock und spezielle Tasten zur Cursorbewegung wurden optisch getrennt.

Grundsätzlich wird beim Drücken einer Taste der entsprechende Scancode der Taste gesendet. Bei längeren Drücken wird der gleiche Scancode wiederholt gesendet und beim Loslassen wird ein sog. Break-Code $F0 dem Scancode vorangesetzt.

Das "keyboard BIOS" setzt diese Werte allerdings um. In der Regel ist beim make code das oberste Bit = 0, beim break code aber 1.

Beispiel: Die Leertaste hat den make code $39 und den break code $B9.

Um mit einer MF2-Tastatur kompatibel zur XT-Tastatur zu sein, bekamen bestimmte Tasten den gleichen Code mit einen speziellen Code $E0 oder $E1 zur Unterscheidung davorgesetzt.

Die amerikanische MF2-Tastatur hat 101 Tasten; die länderspezifische 102 Tasten. Die zusätzliche Taste trägt auf deutschen Tastaturen die Beschriftung </>. Die neuen Windows-Tasten 59, 63 und 64 sind in den unten beschrieben Tabellen nicht enthalten. Wer die Codes kennt, kann sie gerne eintragen.

[Bearbeiten] Tastaturbefehle

  • Wird die Tastatur zurückgesetzt (PC schickt Reset = $FF), antwortet sie bei erfolgreichen Basic assurance test mit Bat = $AA
  • Wird die Tastatur zurückgesetzt und es gibt einen Fehlerfall, beispielsweise klemmt eine Taste, reagiert sie mit BatE1 = $FC oder BatE2 = $FD.
  • Der Test der Kommunikation erfolgt vom PC mit Echo = $EE und die Tastatur antwortet ebenfalls mit Echo = $EE.
  • Allgemein werden alle Kommandos zur Tastatur mit Acknowledge Ack = $FA von der Tastatur bestätigt. Stimmt etwas nicht mit den Daten, kommt ein Misunderstand Misu = $FE.
  • Wird die Tastatur Read ID = $F2 nach ihren Typ gefragt, antwortet eine MF2-Tastatur mit 2 Bytes ID1 = $AB und ID2 = $83.
  • Ist der Tastaturpuffer voll, reagiert die Tastatur mit Full = $FF
  • Der vom PC kommende Befehl Set LED = $ED gefolgt von einem Byte, steuert die Leuchtdioden (Bit 0..2 = ScrlLock, NumLock, CapsLock; Bit 3..7 = 0).
  • Vom PC Set Codeset = $F0 gefolgt von einem Byte, wählt das Code-Set 1..3 aus.
  • Vom PC Set Codeset = $F0 gefolgt von 0 fragt ab, welches Code Set aktiv ist.
  • Vom PC der Befehl Set Speed = $F3 gefolgt von einem Byte, steuert die Verzögerung (Bit 5, 6) und Wiederholungsrate (Bit 0..4).
  • Vom PC Enable = $F4 aktiviert den Scanvorgang und Disable = $F5 deaktiviert den Scanvorgang.
  • Vom PC Set Default = $F6 setzt alles auf Standardwerte.
  • Vom PC Resend = $FE dient zum Wiederholen des letzten Codes.

[Bearbeiten] Code-Sets

Die Codetabelle der PC-Tastatur ist ein ziemliches Durcheinander. Schon früh hat man versucht, sie zu systematisieren und daher für die MF-Tastatur drei Codetabellen definiert:

  • Scan Code Set 1
  • Scan Code Set 2 (heutiger Standard)
  • Scan Code Set 3

[Bearbeiten] Weblinks

Wiktionary: Tastatur – Bedeutungserklärungen, Wortherkunft, Synonyme und Übersetzungen
Andere Sprachen

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -