Die Schritte der Umsetzung eines Tastaturanschlags werden in folgender Grafik verdeutlicht:
Abb. 19: Tastenumsetzung
Die Tastatur liefert einen OEM-Code ab. Dieser Code ist abhängig von der verwendeten Tastatur, aber nicht von der Beschriftung der Tastaturkappe. Der zugehörige Windows-Tastaturtreiber setzt diesen OEM-Code in den virtuellen Keycode um, wobei die Ländereinstellungen für die Tastatur zur Umsetzung der nationalen Sonderzeichen verwendet wird.
Terms97801 erzeugt aus den virtuellen Keycodes zusammen mit Alt, Hoch und Strg-Taste einen Scancode des 97801-Terminals.
Ein 97801-Terminal, und damit auch Terms97801, erzeugt aus dem Scancode über seine Tastaturtabelle einen Character-Code, der auf die Leitung zum Host gegeben wird. Der Host schickt dieses Zeichen als Echo an das Terminal zurück. Die Darstellung des Zeichens auf dem Bildschirm hängt vom angewählten Font des 97801-Terminals ab.
Terms97801 geht in erster Linie von einer Umsetzung des virtuellen Keycodes in 97801-Scancodes aus. Eine entsprechende Tabelle (*.key) kann mit dem Menüpunkt Datei..Tastaturtabelle laden/speichern und der Tastenprogrammierung bequem individuellen Wünschen angepaßt werden.
Die Umsetzung von OEM-Code zu virtuellem Keycode kann mit Terms97801 über externe Tabellen realisiert werden. Die Tabelle kann über System..Terminal oder über Editieren der Ini-Datei angegeben werden.
Mit OEM-Tabelle ist der NumLock-Mechanismus für Terms97801 abgeschaltet. Das zugehörige Lämpchen zeigt dann den Zustand der Ch.-Code-Taste an.
ANMERKUNG:
Die Tastaturtreiber von WindowsNT 4.0 fangen einige Tasten ab und geben sie
nicht an die Anwendung, in diesem Fall Terms97801, weiter. Die Verwendung
von OEM-Tabellen unterliegt somit gewissen Einschränkungen.
Die Tastatur kann leicht und ohne Kenntnis von Tastaturcodes programmiert werden. Die gewünschte 97801-Taste wird über die Bitmap-Tastatur mit der Maus bestimmt, die dazugehörende PC-Taste wird auf der angeschlossenen Tastatur eingegeben.
Zur Programmierung einer Tastenzuordnung sollte die volle Tastatur auf dem Bildschirm angezeigt werden.
Ein Anklicken der Taste versetzt die Tastatur in den Programmiermodus. Dies wird duch eine invertierte Darstellung der Tastaturanzeige sichtbar gemacht.
Für jede Tastenzuordnung sind folgende Schritte durchzuführen:
Abb. 20: Tastenprogrammierung vor der Eingabe
der PC-Taste
Abb. 21: Tastenprogrammierung nach der Eingabe
der PC-Taste
Um herauszufinden, welche Tastenkombinationen noch unverwendet sind, kann mit dem Knopf 'Liste' eine Liste aller Tastenkombinationen angezeigt werden. Die erste Spalte zeigt alle PC-Tastenkombinationen. In der zweiten Spalte ist die jeweils zugehörige 97801-Taste eingetragen, falls für die PC-Taste eine solche programmiert ist.
Die Auswahl der Tastenkombination kann durch Doppelklick auf den Listeneintrag vorgenommen werden.
Falls eine Liste der Tastenzuordnungen gewünscht ist, kann diese mit dem Knopf 'Liste kopieren' in die Zwischenablage übertragen werden und mit einem geeigneten Programm ausgedruckt weden. Die Felder sind mit Tabulatoren getrennt. Da die Liste die 102 Tasten in je 8 Kombinationen mit Hoch, Strg und Alt enthält, wird der Ausdruck knapp 20 Seiten lang!
Abb. 22: Tastenprogrammierung durch Auswahl aus
der Liste
Alle Tasteneingaben werden nach der Bearbeitung durch Terms97801 an Windows weitergegeben. Damit funktionieren die Windows-üblichen Tastensteuerungen wie Alt-Tab oder Alt-F4. Sollen bestimmte Tastenkombinationen nicht an Windows weitergegeben werden, muß das Kästchen 'PC-Taste für Windows sperren' angekreuzt werden. In der Standardtabelle ist dies für F10 getan, da Windows sonst durch diese Taste zur Auswahl im Menü wechselt. Programmierer/innen sollten dies für Strg+V und Strg+C vornehmen, falls sie diese Taste benötigen und auf diese Tastenkürzel für Kopieren und Einfügen verzichten können.
HINWEIS:
Unter den 32bit Windows-Plattformen gibt es einige Tasten, die eine
Windows-Funktion auslösen, bevor sie an die Anwendung weitergegeben
werden. Solche Tasten lassen sich nicht in ihrer Windows-funktion sperren.
Eine solche Taste ist z.B. die Windows-Taste.
HINWEIS:
Die Taste Alt-Gr der PC-Tastatur bewirkt genau dasselbe wie
gleichzeitiges Drücken von Strg und Alt. Dieser Sachverhalt ist eine
technische Eigenheit der PC-Tastaturen. Für die Tastenprogrammierung
von Terms97801 bedeutet dies, daß eine Tastenkombination mit Strg-Alt
Gr nicht verwendet werden kann.
HINWEIS:
Die Beschriftung der PC-Taste und der Tastenname müssen
nicht immer genau der angeschlossenen Tastatur entsprechen. Tasten ohne
Beschriftung, z.B. mit Pfeilen, bleiben leer.
Terms97801 verwendet eine Tabelle, um die 'virtuellen keycodes' des PC auf Scancodes des 97801 umzusetzen. Eine Tabelle mit Standardwerten ist fester Bestandteil von Terms97801. Es kann aber auch eine externe Tastaturtabelle verwendet werden. Eine solche Tabelle entsteht, wenn die Menüfunktion Datei..Tastaturtabelle speichern aufgerufen wird. Alternativ kann die Tastaturtabelle auch im Dialog Einstellungen..Tastatur oder über den roten 'Save'-Knopf in der Tastaturanzeige gespeichert werden. Eine so gespeicherte Tastaturtabelle wird beim nächsten Start von Terms97801 automatisch geladen und statt der internen Tabelle verwendet. Die Tastaturtabellen haben die Endung .key.
Die externe Tastaturtabelle wird im ASCII-Format gespeichert und kann mit einem Editor bearbeitet werden. Normalerweise wird die Tastaturtabelle statt mit einem Editor über die interaktive Tastenprogrammierung per Maus erstellt.
Eine einmal erstellte Tastaturtabelle kann durch Kopieren für andere Terms97801-Installationen verfügbar gemacht werden.
Eine kommentierte Beispieltabelle mit dem Namen pcto978.key befindet sich im Lieferumfang. Da Kommentare beim Einlesen herausgefiltert werden, werden sie beim Speichern nicht mehr geschrieben.
Das Editieren der Tastaturtabelle ist mühsam und es gibt nur wenig Gründe dies zu tun. Ein Grund ist der Wunsch, eine 97801-Taste über verschiedene PC-Tasten erreichen zu können. In der interaktiven Tastenprogrammierung mit der Maus kann immer nur eine PC-Tastenkombination einer 97801-Tastenkombination zugeordnet werden, da die Tasteninfo nur eine zugehörige PC-Taste anzeigt.
Für die externe Tastaturtabelle gilt folgende Syntax:
- Leerzeilen werden überlesen
- Zeilen, die mit # oder ; beginnen, werden als Kommentare überlesen
- eine Tastenzuordnung hat folgenden Aufbau:
PC-VKey: ScanCode, shift, ctrl, shift+ctrl, alt, shift+alt, ctrl+alt,
shift+ctrl+alt
Alle Code-Angaben werden hexadezimal interpretiert.
Die Zuordnung einer Shift-Ctrl-Alt-Kombination zur PC-Taste erfolgt über
die Position der durch Kommata getrennten Zahlenreihe.
Der auf dieser Position stehende
97801-Scancode kann durch Addition von
0x100 für shift
0x200 für ctrl
0x400 für alt
als eine Shift-Ctrl-Alt-Kombination der 97801-Tastatur definiert werden.
Die Addition von 0x80 sperrt die Taste für die Weitergabe an Windows. Normalerweise werden alle Tasteneingaben nach der Verarbeitung durch Terms97801 an Windows weitergereicht. Damit funktioniert die Windows-übliche Tastatursteuerung, wie Alt-Tab, Alt-Space etc. Die Funktionstasten F1 und F10 werden von Windows für die Tastatursteuerung benutzt (F1 = Hilfe, F10 = Menüauswahl) und ebenso von vielen UNIX-Anwendungen. Darum sind in der Standard-Tabelle diese Tasten für Windows gesperrt, d.h. innerhalb von Terms97801 kann das Menü nicht mit F10 angesprochen werden.
Beispiel:
;Taste M PC-VK-Code = 4d 97801-Scancode = 4d
4d: 4d,14d,24d,06,0,54d,44d,64d
;Taste F10 PC-VK-Code = 79 97801-Scancode = 68
79: e8,1e8,268, 74, 0,568,468,668
Durch diese Zeilen in der Tastaturtabelle ergeben sich folgende Zuordnungen:
PC | 97801 | Kommentar |
M | M | |
shift-M | shift-M | |
ctrl-M | ctrl-M | |
shift-ctrl-M | Mode-Taste | 97801-Scancode für Mode ist 06 |
alt-M | - | für Windows reserviert/nicht gesperrt |
shift-alt-M | shift-alt-M | |
alt-gr-M | alt-M | Alt-GrPC=Alt97801 |
shift-alt-M | shift-ctrl-M | |
F10 | F10 | Windows-Funktion (Menü) ist gesperrt |
shift-F10 | shift-F10 | Windows-Funktion (Menü) ist gesperrt |
ctrl-F10 | ctrl-F10 | |
shift-ctrl-F10 | F20 | 97801-Scancode für F20 ist 74 |
alt-F10 | - | nicht belegt |
shift-alt-F10 | shift-alt-F10 | |
alt-gr-F10 | alt-F10 | Alt-GrPC=Alt97801 |
shift-alt-gr-F10 | ctrl-alt-F10 |