| Zeile 216: | Zeile 216: | ||
Dieser Code könnte beispielsweise folgendermaßen aussehen: | Dieser Code könnte beispielsweise folgendermaßen aussehen: | ||
| − | <c> | + | <syntaxhighlight lang=c> |
static void send_command(uint8_t command); | static void send_command(uint8_t command); | ||
void init_keyboard(void) | void init_keyboard(void) | ||
| Zeile 239: | Zeile 239: | ||
outb(0x60, command); | outb(0x60, command); | ||
} | } | ||
| − | </ | + | </syntaxhighlight> |
In einem vernünftigen Betriebssystem möchte man die Tastatur wahrscheinlich | In einem vernünftigen Betriebssystem möchte man die Tastatur wahrscheinlich | ||
| Zeile 296: | Zeile 296: | ||
Auch hier wieder ein kleiner Codeabschnitt, der zeigt wie man den IRQ-Handler | Auch hier wieder ein kleiner Codeabschnitt, der zeigt wie man den IRQ-Handler | ||
umsetzen könnte (aus týndur übernommen, BSD-Lizenz): | umsetzen könnte (aus týndur übernommen, BSD-Lizenz): | ||
| − | <c> | + | <syntaxhighlight lang=c> |
/** | /** | ||
* Scancode in einen Keycode uebersetzen | * Scancode in einen Keycode uebersetzen | ||
| Zeile 360: | Zeile 360: | ||
//Nach erfolgreichen Tests, könnte eine send_key_event Funtkion wie bei Týndur verwendet werden | //Nach erfolgreichen Tests, könnte eine send_key_event Funtkion wie bei Týndur verwendet werden | ||
} | } | ||
| − | </ | + | </syntaxhighlight> |
Dieses Codestück unternimmt genau die oben beschriebenen Schritte. Die Funktion | Dieses Codestück unternimmt genau die oben beschriebenen Schritte. Die Funktion | ||
| Zeile 387: | Zeile 387: | ||
=== CPU-Reset === | === CPU-Reset === | ||
Der CPU-Reset wird ausgelöst, indem der Wert 0xFE in den Outputport geschrieben wird. | Der CPU-Reset wird ausgelöst, indem der Wert 0xFE in den Outputport geschrieben wird. | ||
| − | <asm> | + | <syntaxhighlight lang=asm> |
;Warten, bis der Eingabepuffer leer ist | ;Warten, bis der Eingabepuffer leer ist | ||
wait1: | wait1: | ||
| Zeile 407: | Zeile 407: | ||
mov al, 0xFE | mov al, 0xFE | ||
out 0x60, al | out 0x60, al | ||
| − | </ | + | </syntaxhighlight> |
= Links = | = Links = | ||