Tastaturpuffer

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Der Tastaturpuffer dient dazu, die über die Tastatur eingegebenen Zeichen zwischenzuspeichern bis der Computer (in der Regel ein Programm oder das Betriebssystem) diese weiter verarbeiten kann. Durch den Tastaturpuffer wird es dem Benutzer ermöglicht, unterbrechungsfrei Zeichen einzugeben, ohne dass der Computer ihn hierbei stört. Bei manchen Computersystemen, wie z.B. PCs, ertönt bei überfülltem Tastaturpuffer in der Regel ein Piepton.
Die Organisation des Tastaturpuffers durch den Computer erfolgt nach dem First In - First Out - Prinzip (FIFO). Damit ist sichergestellt, dass z.B. bei der Eingabe von Wörtern oder Sätzen die Reihenfolge der Zeichen erhalten bleibt und keine Tastenanschläge verloren gehen, auch wenn gerade keine Tasten vom einlesenden Programm gelesen oder erwartet werden (Entkopplung der Tasteneingabe vom Einlesen durch ein Programm).

Der Tastaturpuffer befindet sich beim C64 in den Speicherstellen 631-640 ($0277-$0280) innerhalb der erweiterten Zeropage und ist hier somit 10 Zeichen groß. Die Standard-IRQ-Routine des KERNALs ($EA31/$EA87) ist dabei für das Auslesen der Tastatur über CIA 1 zuständig und schreibt entsprechend in den Tastaturpuffer; gelesen wird der Tastaturpuffer unter BASIC V2 von der Routine BASIN ($E5CD), die unter anderem vom Bildschirmeditor benutzt wird.

Der Tastaturpuffer kann mit den BASIC-Befehlen PEEK ausgelesen und mit POKE manipuliert werden. Weiterhin lassen sich u.a. durch die Manipulation des Tastaturpuffers automatisch Programmzeilen generieren. Typischer Einsatz dieser Technik ist bei sogenannte DATA-Zeilen-Generatoren und Funktionsdefinitionen via DEF FN.

Programmierung[Bearbeiten | Quelltext bearbeiten]

  • POKE 198,0 löscht den Tastaturpuffer
  • POKE 649,0 setzt die Länge des Tastaturpuffers auf 0 und blockiert somit die Tasten

Weblinks[Bearbeiten | Quelltext bearbeiten]

WP-W11.png Wikipedia: Tastaturpuffer