Keyboard Controller
Aus Lowlevel
Version vom 20. Januar 2007, 17:29 Uhr von Taljeth (Diskussion | Beiträge) (Liste als Wiki-Liste formatieren)
Der Keyboard Controller (KBC) sitzt auf dem Mainboard und dient, wie der Name vermuten lässt, unter anderem der Tastaturansteuerung. Er hat jedoch noch viele weitere Funktionen.
Funktionen des KBC:
- Ansteuerung der Tastatur
- Ansteuerung des PSAUX-Ports (z.B. PS/2-Maus)
- ein-/ausschalten der 21-Adressleitung (a20-Gate)
- CPU-Reset auslösen
- ein-/ausschalten des Systemlautsprechers
- Information ob das System eine Monochrom- oder Farbgrafikkarte benutzt
Zur Komunikation mit dem KBC werden die Ports 0x60, 0x61 und 0x64 verwendet.
Statusregister
| BIT | Beschreibung | Wert | Beschreibung |
|---|---|---|---|
| 0 | Status des Ausgabepuffers (KBC -> CPU) | 0 | Ausgabepuffer leer |
| 1 | Ausgabepuffer voll (es kann von Port 0x60 gelesen werden) | ||
| 1 | Status des Eingabepuffers (KBC <- CPU) | 0 | Eingabepuffer leer (es kann auf Port 0x60 oder 0x64 geschrieben werden) |
| 1 | Eingabepuffer voll | ||
| 2 | Systemstatus? | 0 | Reset/Selbsttest wird gerade ausgeführt |
| 1 | Selbsttest erfolgreich | ||
| 3 | zuletzt benutztes Port | 0 | 0x60 |
| 1 | 0x64? 0x61? | ||
| 4 | Tastatursperre | 0 | Tastatur gesperrt |
| 1 | Tastatur nicht gesperrt | ||
| 5 | PSAUX? | 0 | ? |
| 1 | ? | ||
| 6 | Timeout | 0 | kein Timeout |
| 1 | Tastatur oder PSAUX-Gerät ragiert nicht? | ||
| 7 | Paritätsfehler | 0 | kein Fehler |
| 1 | Beim letzten Senden/Empfangen trat ein Paritätsfehler auf |
inputport
| BIT | Beschreibung | Wert | Beschreibung |
|---|---|---|---|
| 0 | Keyboard data in pin? | 0 | ? |
| 1 | ? | ||
| 1 | PS/2 mouse in pin? | 0 | ? |
| 1 | ? | ||
| 2 | Reserviert | ||
| 3 | Reserviert | ||
| 4 | Reserviert | ||
| 5 | Reserviert | ||
| 6 | Wether you have a color or mono screen | 0 | ? |
| 1 | ? | ||
| 7 | Tastatursperre | 0 | Tastatursperre gesperrt |
| 1 | Tastatursperre nicht gesperrt |