Die Tastatur in STEmulator ist auch frei programmierbar. Hierfür wird die KEYTAB.CNF-Datei benutzt, die sich im SYSTEM-Ordner im STEmulator-Installationsverzeichnis befinden muss. Falls diese Datei vorhanden ist, wird sie geladen und die dort gemachten Einstellungen benutzt. Falls sie nicht gefunden wird, benutzt STEmulator die integrierte Standard-Tastatur-Belegung.
Es wird immer die Tastenbelegung des TOS als Grundlage benutzt, die Regeln in der KEYTAB.CNF sind zur Erweiterung gedacht bzw. zum Ändern der Belegung. Es ist also nicht nötig, alle Tasten zu programmieren. STEmulator kann die Tastatur standardmäßig vollständig bedienen.
Die Datei ist eine ASCII-Datei mit folgender Syntax:
Die Datei enthält folgende Abschnitte zur Tastendefinition:
normal | Hier stehen die Regeln für normale Tastendrücke. |
shift | Hier stehen die Regeln für Tastendrücke + [Shift]. |
alternate | Hier stehen die Regeln für Tastendrücke + [Alt(ernate)]. |
control | Hier stehen die Regeln für Tastendrücke + [Strg]. |
normal_deadchar | Hier stehen die Regeln für Deadchars*. |
shift_deadchar | Hier stehen die Regeln für Deadchars + [Shift]. |
Die Regeln sind nach folgendem Schema zu setzen.
Für alle Abschnitte außer den beiden für Deadchars gilt:
KEYBOARDSCANCODE = ASCIIWERT
Die Deadchars erwarten folgende Syntax:
KEYBOARDSCANCODE1 + KEYBOARDSCANCODE2 = ASCIIWERT
Beispiele:
0x29=0xdd | ergibt für die Taste [^] jetzt § |
0x1e=0x62 | ergibt für die Taste [a] jetzt [b] |
0x29+0x1e=0x83 | ergibt für die Taste [^] und dann die Taste [a] den Buchstaben
â. |
Die Deadchars werden auf folgende Art erzeugt: Nach dem Drücken der ersten Taste wird, wenn diese als Deadchar eingetragen ist, auf eine weitere gewartet. Falls diese als zweiter Wert in einer Deadchar-Regel steht, wird der dritte Wert aus dieser Regel zurückgeliefert.
Die Scancodes der einzelnen Tasten sind mit Hilfe des beiliegenden Tools KEYGET.EXE sehr leicht zu bestimmen. Sie finden das Programm im SYSTEM-Ordner Ihrer STEmulator-Installation.
*) Ein Deadchar
ist eine Taste, die allein gedrückt noch
nicht gleich reagiert, sondern auf einen weiteren Tastendruck wartet,
bevor ein Zeichen ausgegeben wird. Wenn die nachfolgend gedrückte
Taste mit dem Deadchar eine sinnvolle Kombination ergibt, wird ein
zusammengesetztes Zeichen ausgegeben, ansonsten beide gedrückte
Tastenbelegungen.