Keyboard Controller — Änderungen 11347 → 11385

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);
 
}
 
}
−
</c>
+
</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
 
}
 
}
−
</c>
+
</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
−
</asm>
+
</syntaxhighlight>
  
 
= Links =
 
= Links =