Abb. 18: 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.
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. 19: Tastenprogrammierung vor der Eingabe
der PC-Taste
Abb. 20: 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. 21: 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: 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.
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.
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 | - |