3.2 Neudefinierung der Tastatur

 

Im XL-Computer gibt es eine Tabelle, in der die einzelnen Tasten definiert werden. Das Betriebssystem besitzt eine eigene Datentafel, welche die normale Belegung angibt. Der Benutzer kann nun selbst eine solche Definitionstafel erstellen. Er mußdann nur dem Betriebssystem mitteilen, wo sich letztere im Speicher befindet.

 

Eine Anwendungsmöglichkeit für diese Definitionstabelle wäre das Ausprobieren anderer, vielleicht besserer Tastenanordnungen, wie z.B. die DVORAK-Tastenbelegung. Ein Beispiel hierfür befindet sich in Anhang A, so daßder Benutzer mit dieser Möglichkeit experimentieren kann. (Im Laufe der Jahre wurde die OWERTY-Anordnung der Tastatur als Standard angenommen, obwohl es Leute gibt, die der DVORAK-Belegung den Vorzug geben. Der Leser kann nun eine eigene Entscheidung fällen.

 

 

INHALT DER TASTATUR-DEFINITIONS-TABELLE

 

Diese Tabelle gestattet die Erzeugung jedes beliebigen ATASCII-Codes oder einer internen Funktion für nahezu jede Taste. Die Ausnahmen werden am Ende dieses Abschnittes angegeben. Um die Tasten neu zu definieren, mußals erstes ein Speicherbereich gefunden und festgelegt werden, in dem eine 192 Bytes groFe Tabelle abgelegt werden kann. In dieser Tabelle werden die neuen Tastendefinitionen vom Benutzer gespeichert. Danach wird dem Betriebssystem mitgeteilt, wo sich diese Tafel befindet, so daßsie anstelle der normalen verwendet wird.

 

Die Tafel besteht aus folgenden Teilen:

 

 

Das letzte Byte dieser Tabelle liegt an der Adresse KEYTABLE-START + 191.

 

Der Grund für die Tabellenaufteilung in 3 Gruppen zu je 64 Bytes liegt in der Hardware, die insgesamt nur 64 Tastencodes erzeugen kann. Diese von 00-63 (=$00-$3F) nummerierten Codes werden als direkter Index innerhalb der Tabellenteile benutzt. Welcher dieser Tafelabschnitte benutzt wird, hängt von Betätigung der SHIFT- oder CTRL-Taste ab.

 

Anmerkung: Es gibt keinen Tafelteil für gleichzeitiges Drücken der SHIFT- und der CTRL-Taste. Diese Kombination ist unzulässig und wird dementsprechend vom Betriebssystem ignoriert.

 

Jeder der drei 64 Bytes groFen Tabellenteile besitzt die nachfolgend angegebene Form:

 

 

Byte 0 enthält die Umwandlung für den Tastencode 00 mit CTRL-, SHIFT-Taste oder ohne diese beiden. Letzteres hängt vom angewählten Tafelabschnitt ab.

 

 

Die vom Benutzer in der Tabelle platzierten Codes erzeugen entweder einen ATASCII-Code (für spätere Umsetzung in ein Zeichen oder weisen das System an, eine bestimmte Funktion auszuführen. Speziell die Codes von $80 bis $92 werden besonders vom System behandelt. Diese Umsetzung wird in nachfolgender Darstellung angegeben:

 

CODES UND IHRE WIRKUNG AUF DAS SYSTEM NACH DER UMSETZUNG

 

CODE      EFFEKT (sofern vorhanden)

$00..$7F  Werden nur als ATASCII-Code benutzt.

$92..$FF  Werden nur als ATASCII-Code benutzt.

$80       Wird ignoriert; ungültige Tastenkombination.

$8l       Invertiert die Ausgabe auf dem Bildschirm.

$82       Umschaltung zwischen GroF-/Kleinschrift-Rastung.

$83       GroFbuchstaben-Festrastung.

$84       CTRL-Festrastung.

$85       End-of-File (=Dateiende).

$86       ATASCII-Code;

$87       ATASCII-Code.

$89       Ein-/Ausschalten des Tastatur-Klickgeräusches

$8A       Cursor eine Zeile hoch

$8B       Cursor eine Zeile runter

$8C       Cursor eine Spalte nach links

$8D       Cursor eine Spalte nach rechts

$8E       Cursor in obere linke Bildschirmecke

$8F       Cursor an untere linke Bildschirmecke

$90       Cursor an linken Rand

$91       Cursor an rechten Rand

 

Die nachstehende Tabelle zeigt den zu einzelnen Codes gehörigen GroFbuchstaben. Die physikalische Position der einzelnen Tasten innerhalb der Tafel legt den von ihnen erzeugten Code fest. Um den entsprechenden Code zu erhalten, müssen vom Leser die jeweiligen Werte der Spalten und Zeilen addiert werden. Das Ergebnis ist der zum Betriebssystem gelangende Hex-Wert ($00=$3F).

 

 

 

 

TABELLE DER TASTENDEFINITIONEN

 

 

Ein Beispiel: Der GroFbuchstabe ìCî befindet sich in der Tabelle in Zeile 10 und Spalte 2. Die Hardware erzeugt also einen Hardware-Code mit dem Wert $10 + $2 = $l2. Der ATASCII-Code dieses Zeichens wird in der Definitionstafel für die Tasten an Stelle $12 gespeichert, wobei dieses für alle möglichen Eingabearten des ìCî gilt (C-Taste allein, mit SHIFT oder mit CTRL gedrückt). Der Benutzer kann nun das Durchführen einer Funktion bzw. die Ausgabe eines bestimmten ATASCII-Codes veranlassen, indem der Inhalt der Definitionstafel an Stelle $l2 geändert wird.

 

Nachdem die neue Definitionstafel erstellt und im Speicher untergebracht wurde, mußder Benutzer dem Betriebssystem mitteilen, wo diese sich befindet. Dies geschieht durch Speichern der Adresse des Tabellenbeginns an den Stellen $79 und $7A. Das OS benutzt dann die neue Tafel zur Umwandlung der Tasteneingaben.

 

Das niederwertige Byte der Definitionstabellen-Adresse mußin die Speicherstelle $79, das höherwertige Byte in Stelle $7A geschrieben werden. Diese beiden Speicherstellen sind zusammen einer der verschiedenen Systemvektoren des Computers. Er wird beim Einschalten des Gerätes und beim SYSTEM-RESET so zurückgesetzt, daßer auf die Tabelle mit der Original-Definition zeigt.

 

 

NICHT NEUDEFINIERBARE TASTEN UND TASTENKOMBINATIONEN

 

Die folgenden Tasten bzw. Tastenkombinationen sind auf eine spezielle Weise verdrahtet oder werden auf eine besondere Art vom Betriebssystem behandelt und können daher nicht neu definiert werden.

 

Obwohl ein hardwaremäFig erzeugter Code und ein entsprechender Freiraum in der Umsetzungstafel existiert, ist es nicht möglich, diese Tasten neu zu definieren. Das Operating-System ìfängtî den Hardware-Code dieser Eingabe direkt ab, damit eine spezielle Funktion immer ausgeführt werden kann und nicht zum Umsetzungsmodus gesprungen werden muF. Die folgenden Tasten sind von der Neudefinition ausgenommen:

 

 

BREAK

Diese Funktion wird gesondert durch das Betriebssystem bearbeitet. Sie wird durch die Hardware erkannt.

 

SHIFT

Diese Taste ist ein Bestandteil der hardwaremäFigen Codierung aller Tastenbetätigungen.

 

CTRL

Für diese Taste gilt das Gleiche, wie für die SHIFT-Taste.

 

OPTION, SELECT,  START

Diese drei Tasten sind direkt mit den GTIA-Schaltkreisen verbunden und werden deshalb auch direkt von diesen erkannt.

 

RESET

Ist direkt mit der RESET-Leitung des 6502-Prozessors verbunden.

 

HELP

Diese Funktion ist im Betriebssystem festgelegt. Die Bearbeitung der HELP-Funktion wird an anderer Stelle diesem Manual behandelt.

 

CTRL-1

Diese Taste stoppt und startet die Bildschirmausgabe.  Sie kontrolliert die Stop/Start-Funktion beim Listen (ìLISTî in BASIC)  und wird vom Betriebssystem beim Decodieren der  hardwaremäFigen Tasten-Codes ìabgefangenî.