<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Scancode</id>
	<title>Scancode - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Scancode"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Scancode&amp;action=history"/>
	<updated>2026-05-24T15:26:56Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Scancode&amp;diff=43990&amp;oldid=prev</id>
		<title>84.158.119.155: Formatierung</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Scancode&amp;diff=43990&amp;oldid=prev"/>
		<updated>2025-05-20T15:55:15Z</updated>

		<summary type="html">&lt;p&gt;Formatierung&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Überarbeiten|Grund=Thema verfehlt. Der Artikel befasst sich mit den Tastaturtypen in der Geschichte der IBM-PCs, nicht mit Scancodes.}}&lt;br /&gt;
&lt;br /&gt;
Ein &amp;#039;&amp;#039;&amp;#039;Scancode&amp;#039;&amp;#039;&amp;#039; ist in der Computertechnik eine Nummer, die von der [[Tastatur]] eines Rechners an diesen gesendet wird, wenn eine Taste gedrückt, gehalten oder losgelassen wird. Beim erstmaligen Drücken einer Taste wird der Scancode für die jeweilige Taste gesendet und dies als sofortige Eingabe registriert, wird die Taste dabei gedrückt gehalten, dann erfolgt zuerst eine Verzögerung (&amp;#039;&amp;#039;typematic&amp;#039;&amp;#039; bzw. &amp;#039;&amp;#039;auto repeat delay&amp;#039;&amp;#039; genannt) von ca. 0,5 bis 0,6 s, ehe der gehaltene Tastendruck als weitere (Zeichen-)Eingabe registriert wird. Folgezeichen werden mit einer Tastatur-Wiederholrate (auch &amp;#039;&amp;#039;repeat rate&amp;#039;&amp;#039; genannt) von in der Regel 25 ms als jeweils weitere Eingabe registriert. Diese Verzögerung und Tastatur-Wiederholrate kann bei USB-Tastaturen bei den meisten Betriebssystemen eingestellt werden, bei XT-, AT- und PS/2 Tastaturen ist sie meist durch die Hardware auf 0,5 s für die Verzögerung und 100 ms für die Tastatur-Wiederholrate fest vorgegeben. Beim Loslassen der Taste wird ein Break Code (0xf0) Scancode gesendet und die Eingabe ist beendet. Unter Unix ähnlichen Betriebssystemen kann die Verzögerung und Tastaturwiederholrate mit Programmen wie &amp;lt;code&amp;gt;xset q&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;kbdrate -v&amp;lt;/code&amp;gt; ausgegeben werden.&lt;br /&gt;
&lt;br /&gt;
== PC/XT-Tastatur ==&lt;br /&gt;
Im Jahr 1981 hatte [[IBM]] zusammen mit dem ersten [[IBM Personal Computer|IBM&amp;amp;nbsp;PC]] eine Tastatur mit 83 Tasten eingeführt. Da diese auch beim 1983 erschienenen [[IBM Personal Computer XT|IBM PC/XT]] unverändert beibehalten wurde, ist sie heute als &amp;#039;&amp;#039;XT-Tastatur&amp;#039;&amp;#039; bekannt.&lt;br /&gt;
&lt;br /&gt;
Frühere Computertastaturen sendeten oft direkt [[American Standard Code for Information Interchange|ASCII]] oder Codes einer anderen [[Zeichensatz]]norm an den Rechner. Um aber beim für den Vertrieb in vielen Ländern geplanten IBM&amp;amp;nbsp;PC nicht in jeder länderspezifischen [[Tastatur]]variante andere Codes generieren zu müssen, wurde jeder [[Taste]] eine Nummer zugeordnet, der sog. &amp;#039;&amp;#039;Scancode&amp;#039;&amp;#039;. Dem Scancode wurde dann erst im Rechner vom [[Gerätetreiber|Tastaturtreiber]] ein ASCII-Code zugeordnet. Für den Scancode wurden die Tasten einfach nach ihrer Lage auf der Tastatur reihenweise von links nach rechts durchnummeriert, im Gegensatz zum ASCII-Code, der der alphabetischen Anordnung folgt.&lt;br /&gt;
&lt;br /&gt;
Ein Standard-Tastaturtreiber für die US-amerikanische Belegung war bei jedem PC im [[BIOS (IBM PC)|BIOS]] integriert, länderspezifische Zuordnungen erledigte ein Software-Tastaturtreiber, der als [[TSR-Programm]] beim Systemstart nachgeladen wurde. Unter [[MS-DOS]] sowie den meisten [[PC-kompatibles DOS|dazu kompatiblen DOS]] heißt dieses Programm &amp;lt;span style=&amp;quot;font-family: monospace, monospace;&amp;quot;&amp;gt;[[KEYB|KEYB.COM]]&amp;lt;/span&amp;gt; (siehe [[Liste von DOS-Kommandozeilenbefehlen#K|Liste von DOS-Kommandozeilenbefehlen]]), andere Betriebssysteme verwendeten dazu meist ebenfalls ein [[Systemsoftware|Systemprogramm]], unter [[Linux]] beispielsweise &amp;lt;span style=&amp;quot;font-family: monospace, monospace;&amp;quot;&amp;gt;loadkeys&amp;lt;/span&amp;gt;,&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.man7.org/linux/man-pages/man1/loadkeys.1.html |titel=loadkeys(1) — Linux manual page |werk=man7.org |hrsg=Michael Kerrisk |datum=1994-02-06 |format=[[Manpage]] |sprache=en |abruf=2023-09-16}}&amp;lt;/ref&amp;gt; oder eine Systemeinstellung.&lt;br /&gt;
&lt;br /&gt;
Somit musste IBM bei den PC-Tastaturen für den Vertrieb in verschiedenen Ländern nur unterschiedlich bedruckte Tastenkappen einbauen, während die Elektronik der Tastatur gleich bleiben konnte und sich am Rechner selbst überhaupt nichts ändern musste.&lt;br /&gt;
&lt;br /&gt;
Bei der XT-Tastatur gab es links einen Block von 10 [[Funktionstaste]]n und rechts die alphanumerischen Tasten mit angegliedertem Zahlenblock. [[Leuchtdiode|LEDs]] zur Signalisierung der aktuellen Zustände und einen separaten [[Pfeiltaste]]nblock gab es noch nicht. Die Kommunikation geschah ausschließlich von der Tastatur zum PC, der PC konnte seinerseits also noch keine Befehle an die Tastatur schicken. Die XT-Tastatur hat wie die AT-Tastatur ein 5-poliger [[DIN-Steckverbinder]], ist zu ihr aber aufgrund der Verwendung eines anderen Protokolls auf Protokollebene nicht kompatibel.&lt;br /&gt;
&lt;br /&gt;
== PC/AT-Tastatur ==&lt;br /&gt;
Die logische Weiterentwicklung war die 1984 mit dem [[IBM Personal Computer/AT|IBM PC/AT]] eingeführte &amp;#039;&amp;#039;AT-Tastatur&amp;#039;&amp;#039; mit 84 Tasten (abgesetzten Funktionstasten und 10er-Block). Die physikalische Schnittstelle wurde beibehalten, jedoch 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 ([[MCS-48|Intel 8042]]) auf der Hauptplatine des Computers, 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; so konnte die so wichtige [[Kompatibilität (Technik)|Kompatibilität]] der Rechner erhalten bleiben. Die Umsetzung der Codes war abschaltbar, und IBM rechnete wohl damit, dass sie normalerweise abgeschaltet sein würde, sobald ein moderneres Betriebssystem verfügbar wurde; in der Praxis wurde aber weiterhin fast überall MS-DOS bzw. PC-DOS verwendet und die Umsetzung war praktisch immer eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
Die AT-Tastatur hat wie die XT-Tastatur einen 5-poligen [[DIN-Steckverbinder]], ist zu ihr aber auf Protokollebene nicht kompatibel. Der Umbau eines XT auf AT erforderte daher meist den Austausch der Tastatur; es gab aber auch Tastaturen, die einen Umschalter auf der Unterseite hatten oder sich automatisch passend umschalten konnten. AT-Tastaturen mit DIN-Stecker können dagegen über ein einfaches Adapterkabel an die [[PS/2-Schnittstelle]] angeschlossen werden: Die elektrischen Eigenschaften beider Schnittstellen sind identisch.&lt;br /&gt;
&lt;br /&gt;
== MF2-Tastatur ==&lt;br /&gt;
[[Datei:Tastatur de3 rgb.png|400px|miniatur|Deutsche MF2-Tastatur mit 105 Tasten; die angegebenen Nummern sind Tastennummern, keine Scancodes]]&lt;br /&gt;
&lt;br /&gt;
Der nächste Generationswechsel vollzog sich 1986, als IBM die 101 Tasten große MF2-Tastatur (&amp;#039;&amp;#039;{{lang|en|multi-functional}}&amp;#039;&amp;#039;) für den US-Markt herausbrachte. Analog wurde die länderspezifische 102 Tasten große MF2-Tastatur definiert. Letztlich basieren auf diesen beiden [[Tastaturbelegung]]en alle heute üblichen Erweiterungen, wie beispielsweise die 104/105-Tasten-[[Microsoft Windows|Windows]]-Tastatur.&lt;br /&gt;
&lt;br /&gt;
Die MF2-Tastatur verwendete die gleiche Schnittstelle und Signalisierung wie die vorherige PC/AT-Tastatur. Ab 1987 wurde der Stecker für die [[Personal System/2|IBM PS/2]]-Computer durch eine kleinere Variante ersetzt, die elektrischen Signale blieben aber die gleichen.&lt;br /&gt;
&lt;br /&gt;
Die Anordnung der Tasten wurde dahingehend geändert, dass nun die Funktionstasten, deren Anzahl zugleich um zwei erhöht wurde, oberhalb der alphanumerischen Tasten liegen. Der Zehnerblock und spezielle Tasten zur Cursorbewegung wurden optisch getrennt.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich wird beim Drücken einer Taste der entsprechende &amp;#039;&amp;#039;Scancode&amp;#039;&amp;#039; der Taste gesendet. Bei längerem Drücken wird der gleiche Scancode wiederholt gesendet und beim Loslassen wird ein sog. &amp;#039;&amp;#039;Break-Code $F0&amp;#039;&amp;#039; dem Scancode vorangesetzt.&lt;br /&gt;
&lt;br /&gt;
Das „Keyboard-BIOS“ setzt diese Werte allerdings weiterhin um. Nach dieser Umsetzung ist in der Regel beim &amp;#039;&amp;#039;{{lang|en|make code}}&amp;#039;&amp;#039; das oberste Bit &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, beim &amp;#039;&amp;#039;{{lang|en|break code}}&amp;#039;&amp;#039; aber &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Die Leertaste hat nach der Umsetzung den &amp;#039;&amp;#039;{{lang|en|make code}}&amp;#039;&amp;#039; &amp;lt;code&amp;gt;$39&amp;lt;/code&amp;gt; und den &amp;#039;&amp;#039;{{lang|en|break code}}&amp;#039;&amp;#039; &amp;lt;code&amp;gt;$B9&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Um mit einer MF2-Tastatur kompatibel zur XT-Tastatur zu sein, bekamen die Tasten des neuen Cursorblocks (nach der Umsetzung) den gleichen Code mit einem speziellen Code &amp;lt;code&amp;gt;$E0&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;$E1&amp;lt;/code&amp;gt; zur Unterscheidung davorgesetzt. Alte Software ignorierte gewöhnlich den ihr unbekannten Code &amp;lt;code&amp;gt;$E0&amp;lt;/code&amp;gt; bzw. &amp;lt;code&amp;gt;$E1&amp;lt;/code&amp;gt; und verarbeitete nur den folgenden Code, der der gleiche war wie bei der jeweils entsprechenden Taste des alten kombinierten Ziffern/Cursorblocks. Neue Software konnte dagegen die neuen Codes bei Bedarf erkennen und wusste dann, dass eine Taste des neuen Cursorblocks und nicht eine des kombinierten Ziffern/Cursorblocks gedrückt worden war.&lt;br /&gt;
&lt;br /&gt;
Die amerikanische MF2-Tastatur hat 101 Tasten; die länderspezifische 102 Tasten. Die zusätzliche Taste trägt auf deutschen Tastaturen die drei Zeichen „&amp;lt;“, „&amp;gt;“ und „|“, die linke Umschalttaste ist dafür verkleinert.&lt;br /&gt;
&lt;br /&gt;
=== Tastaturbefehle ===&lt;br /&gt;
* Wird die Tastatur zurückgesetzt (PC schickt &amp;#039;&amp;#039;Reset = $FF&amp;#039;&amp;#039;), antwortet sie bei erfolgreichem Basic Assurance Test mit &amp;#039;&amp;#039;Bat = $AA &amp;#039;&amp;#039;&lt;br /&gt;
* Wird die Tastatur zurückgesetzt und es gibt einen Fehlerfall, klemmt beispielsweise eine Taste, reagiert sie mit &amp;#039;&amp;#039;BatE1 = $FC&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;BatE2 = $FD&amp;#039;&amp;#039;.&lt;br /&gt;
* Der Test der Kommunikation erfolgt vom PC mit &amp;#039;&amp;#039;Echo = $EE&amp;#039;&amp;#039; und die Tastatur antwortet ebenfalls mit &amp;#039;&amp;#039;Echo = $EE&amp;#039;&amp;#039;.&lt;br /&gt;
* Allgemein werden alle Kommandos zur Tastatur mit Acknowledge &amp;#039;&amp;#039;Ack = $FA&amp;#039;&amp;#039; von der Tastatur bestätigt. Stimmt etwas nicht mit den Daten, kommt ein Misunderstand &amp;#039;&amp;#039;Misu = $FE&amp;#039;&amp;#039;.&lt;br /&gt;
* Wird die Tastatur mit &amp;#039;&amp;#039;Read ID = $F2&amp;#039;&amp;#039; nach ihrem Typ gefragt, antwortet eine MF2-Tastatur mit 2 Bytes &amp;#039;&amp;#039;ID1 = $AB&amp;#039;&amp;#039; und &amp;#039;&amp;#039;ID2 = $83&amp;#039;&amp;#039;. Aus Kompatibilitätsgründen wurde das auch bei späteren Tastaturen nie geändert, so dass in der Praxis der Typ nicht softwaremäßig abgefragt werden kann (außer bei USB-Tastaturen, siehe unten).&lt;br /&gt;
* Ist der [[Tastaturpuffer]] voll, reagiert die Tastatur mit &amp;#039;&amp;#039;Full = $FF&amp;#039;&amp;#039;.&lt;br /&gt;
* Der vom PC kommende Befehl &amp;#039;&amp;#039;Set LED = $ED&amp;#039;&amp;#039; gefolgt von einem Byte steuert die Leuchtdioden (Bit 0..2 = ScrlLock, NumLock, CapsLock; Bit 3..7 = 0).&lt;br /&gt;
* Vom PC kommendes &amp;#039;&amp;#039;Set Codeset = $F0&amp;#039;&amp;#039; gefolgt von einem Byte wählt das Code-Set 1..3 aus.&lt;br /&gt;
* Vom PC kommendes &amp;#039;&amp;#039;Set Codeset = $F0&amp;#039;&amp;#039; gefolgt von 0 fragt ab, welches Code Set aktiv ist.&lt;br /&gt;
* Vom PC kommender Befehl &amp;#039;&amp;#039;Set Speed = $F3&amp;#039;&amp;#039; gefolgt von einem Byte steuert die Verzögerungszeit zwischen dem Tastendruck und dem Anspringen der automatischen Tastenwiederholung (Bit 5, 6) und die Wiederholungsrate (Bit 0..4).&lt;br /&gt;
* Vom PC kommendes &amp;#039;&amp;#039;Enable = $F4&amp;#039;&amp;#039; aktiviert den Scanvorgang und &amp;#039;&amp;#039;Disable = $F5&amp;#039;&amp;#039; deaktiviert den Scanvorgang, so dass keine Tastendrücke mehr erkannt werden.&lt;br /&gt;
* Vom PC kommendes &amp;#039;&amp;#039;Set Default = $F6&amp;#039;&amp;#039; setzt alles auf Standardwerte.&lt;br /&gt;
* Vom PC kommendes &amp;#039;&amp;#039;Resend = $FE&amp;#039;&amp;#039; fordert die Tastatur auf, den letzten Antwortcode zu wiederholen. Von der Tastatur kommendes &amp;#039;&amp;#039;Resend = $FE&amp;#039;&amp;#039; fordert umgekehrt den Rechner zur Wiederholung auf. Diese Codes werden gesendet, wenn durch eine Leitungsstörung [[Paritätsbit|Paritätsfehler]] oder unvollständige Bytes empfangen werden.&lt;br /&gt;
&lt;br /&gt;
=== Code-Sets ===&lt;br /&gt;
Die Codetabelle der PC-Tastatur ist komplex, innerhalb der MFM-Tastatur selbst existieren drei Tabellen mit Scancodes, welche durch das Senden von Befehlscodes an die Tastatur ausgewählt werden können.&lt;br /&gt;
&lt;br /&gt;
* Scancode-Set 1 (entspricht im Wesentlichen der XT-Tastatur)&lt;br /&gt;
* Scancode-Set 2 (entspricht im Wesentlichen der AT-Tastatur, heutiger Standard)&lt;br /&gt;
* Scancode-Set 3 (neues, logischer aufgebautes Codeset der MF2-Tastatur, das sich aber nie durchsetzen konnte)&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann die Umwandlung von Tastaturcodes durch das im Rechnergehäuse befindliche „Keyboard BIOS“ ein- und ausgeschaltet werden (heutiger Standard: eingeschaltet); damit ergeben sich aus Sicht der Firmware und Software, die die Codes letztlich empfangen, insgesamt sechs mögliche Codevarianten.&lt;br /&gt;
&lt;br /&gt;
Tastaturen anderer Hersteller als IBM haben teilweise die Scancode-Sets 1 und 3 nicht oder fehlerhaft umgesetzt. Ebenso funktioniert die Abschaltung der Scancodeumwandlung auf manchen Mainboards nicht korrekt. Auch die existierenden PC-[[Emulator]]en implementieren diese Varianten nicht. Daher verwenden alle heutigen PC-Betriebssysteme ausschließlich das Scancode-Set 2 mit eingeschalteter Umwandlung. Der Controller im Keyboard überträgt die Codes zum „Keyboard-BIOS“ im PC mit Scancode-Set 2, und dieses setzt sie dann um auf Scancode-Set 1. Die Software bekommt daher auf allen PCs gewöhnlich nur die älteste Variante, Set 1, zu Gesicht – auf dem Ur-PC und auf XTs direkt, auf ATs und allen neueren PCs per Umsetzung.&lt;br /&gt;
&lt;br /&gt;
== USB-Tastaturen ==&lt;br /&gt;
[[Universal Serial Bus|USB]]-Tastaturen verwenden einen neuen Satz von Scancodes ohne Beziehung zu den verschiedenen älteren Systemen; die entsprechenden Treiber neuer Betriebssysteme können diese Codes verarbeiten. Für die Verwendung mit [[Bootloader]]n und älteren Betriebssystemen werden deren Scancodes vom [[BIOS]] des Rechners softwaremäßig auf die alten Scancodes abgebildet. Dabei wird ebenfalls nur das Scancode-Set 2 mit eingeschalteter Umwandlung emuliert. Manche BIOSe führen diese Umwandlung unvollständig durch, so wird z.&amp;amp;nbsp;B. teilweise die AltGr-Taste nicht von der Alt-Taste unterschieden, was für deutsche Tastaturen problematisch ist.&lt;br /&gt;
&lt;br /&gt;
Die Scancodes für USB-Tastaturen sind architekturübergreifend einheitlich. USB-Tastaturen für die [[Apple Macintosh|Apple-Macintosh]]-Serie verwenden also die gleichen Scancodes wie PC-USB-Tastaturen.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.marjorie.de/ps2/start.htm Scancode-Sets 1–3 mit ausführlichen Hintergrundinformationen]&lt;br /&gt;
* [https://aeb.win.tue.nl/linux/kbd/scancodes.html Umfangreiches Handbuch über Keyboard scancodes von Andries Brouwer]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Computertaste]]&lt;br /&gt;
[[Kategorie:Hardware]]&lt;br /&gt;
[[Kategorie:Tastaturbelegung]]&lt;/div&gt;</summary>
		<author><name>84.158.119.155</name></author>
	</entry>
</feed>