| 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]] | + | *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 | ||
| − | + | wait1: | |
in al, x064 | in al, x064 | ||
test al, 00000010b | test al, 00000010b | ||
| − | jne | + | jne wait1 |
;Befehl 0xD1 zum schreiben des Inputports an den KBC senden | ;Befehl 0xD1 zum schreiben des Inputports an den KBC senden | ||