Keyboard Controller — Änderungen 2216 → 2220

Zeile 10: Zeile 10:
 
*CPU-Reset auslösen, also neustarten des Systems
 
*CPU-Reset auslösen, also neustarten des Systems
  
−
*Zusammen mit dem [[Programmable Interval Timer | PIT]] den [[Systemlautsprecher]] steuern.
+
*Zusammen mit dem [[Programmable Interval Timer | PIT]] den [[Systemlautsprecher]] ansteuern.
  
 
*Information ob das System eine Monochrom- oder Farbgrafikkarte benutzt
 
*Information ob das System eine Monochrom- oder Farbgrafikkarte benutzt
Zeile 26: Zeile 26:
 
(*Anmerkung zu PSAUX0 und PSAUX1: Diese Begriffe habe ich mir "ausgedacht", da ich keine vernünftige offizielle Bezeichnung kenne. Man wird diese Begriffe also in keiner anderen Referenz finden. Außer es wurde hier abgeschrieben.)
 
(*Anmerkung zu PSAUX0 und PSAUX1: Diese Begriffe habe ich mir "ausgedacht", da ich keine vernünftige offizielle Bezeichnung kenne. Man wird diese Begriffe also in keiner anderen Referenz finden. Außer es wurde hier abgeschrieben.)
 
<br>
 
<br>
 +
 +
== USB Legacy Support ==
 +
Diese von vielen Mainboards bereitgestellt Funktion simuliert angeschlossene USB-Geräte wie Maus und Tastatur als PS/2 Geräte.<br>
 +
<br>
 +
Dies hat für Programmierer Vor- und Nachteile. Einerseits muss man für die Unterstützung solcher Eingabegeräte keine eigenen USB Treiber programmieren. Andererseits ergeben sich damit einige der hier aufgelisteten Probleme:<br>
 +
*Auf manchen Systemen Läuft IMMER eine Abstraktionsschicht mit, auch wenn keine USB Geräte angeschlossen sind. Dies kann zur folge haben, dass die Intellimaus-Extension nicht funktioniert. Oder dass man nicht, wie weiter oben beschrieben, beliebige Geräte an ein PSAUX Port anschließen kann. (wird nicht erkannt)
 +
*Das [[SMM BIOS]], über welches die USB zu PS/2 Abstraktion stattfindet, unterstützen nicht immer den Betrieb über 32Bit [[Protected Mode]]. Die Benutzung erweiterter Speichertechniken oder des [[Long Mode]] kann das System daher zum Abstürzen bringen!
 +
 +
<br>
 +
Diese Probleme sind nicht mehr vorhanden wenn der Legacy-Modus ausgeschaltet wurde.<br>
 +
<br>
 +
Nach meinen Informationen wird der Legacy-Modus ausgeschaltet sobald der USB-Chip initialisiert wird. Also die Hardware weiß, dass die Software die USB Geräte direkt ansteuern kann. (Ist diese Information korrekt?)
 +
  
 
== Programmieren des KBC ==
 
== Programmieren des KBC ==
Zeile 262: Zeile 275:
 
<asm>
 
<asm>
 
;Warten bis der Eingabepuffer leer ist
 
;Warten bis der Eingabepuffer leer ist
−
wait:
+
wait1:
 
in  al, x064
 
in  al, x064
 
test al, 00000010b
 
test al, 00000010b
−
jne  wait
+
jne  wait1
  
 
;Befehl 0xD1 zum schreiben des Inputports an den KBC senden
 
;Befehl 0xD1 zum schreiben des Inputports an den KBC senden