Terms-LogoTerms97801 Version 2.0 Online Handbuch

Inhalt Index Voriges Kapitel Vorige Seite Nächste Seite Nächstes Kapitel Kapitel: 1 2 3 4 5 6 7 8 9 10 Anhang


5.4 Nicht-Standard-Tastaturen und OEM-Codes

In der Praxis werden für den Einsatz einer 97801-Emulation gerne Tastaturen verwendet, die alle Tasten eines 97801-Terminals besitzen. Eine solche Tastatur, wegen ihrer doppelten oder gar dreifachen Nutzungsmöglichkeit auch bimodale oder trimodale Tastatur genannt.

Da zu den Zeiten der 16bit-Version von Terms97801 diese Tastaturen ohne Windows-Tastaturtreiber geliefert wurden, wurde Terms97801 so entwickelt, daß wahlweise mit den virtuellen Keycodes von Windows, oder aber mit den OEM-Codes der Tastatur gearbeitet werden konnte. Die zweite Möglichkeit diente dazu, die trimodale Tastatur verwenden zu können.

Mit den 32bit -Versionen von Windows hat sich die Situation verändert. Während unter Windows95 es weiterhin möglich ist, über die OEM-Codes zu arbeiten, ist dies unter WindowsNT 4.0 nicht mehr möglich. Wegen der Forderung, daß eine 'hängende Anwendung' nicht das System lahmlegen darf, und der zusätzlichen Forderung, daß Windows auch ohne Maus bedient werden kann, muß es immer eine Tastenkombination geben, um von der 'hängenden Anwendung' auf eine andere Anwendung zu wechseln. Aus diesem Grund werden bestimmte Tasten schon vom Tastaturtreiber abgefangen und gelangen nicht mehr zur Anwendung.

Beim Einsatz einer trimodalen Tastatur mit WindowsNT 4.0 ist ein passender Tastaturtreiber zwingend. Ein solcher Tastaturtreiber wurde von Siemens-Nixdorf entwickelt.

5.4.1 Trimodale Tastatur mit Windows-Tastaturtreiber

Bei der Verwendung eines speziellen Windows-Tastaturtreibers muß für Terms97801 eine entsprechende Tastaturtabelle verwendet werden, die den virtuellen Keycodes der zusätzlichen Tasten den richtigen 97801-Scancode zuordnet. Hierbei sollte beachtet werden, daß die Funktionstasten F13 - F22 von dem Treiber nicht unbedingt auf VK_F13 - VK_F22 abgebildet werden.

Am einfachsten ist es, die zusätzlichen Einträge der Tastaturtabelle über die interaktive Tastenprogrammierung zu erzeugen. Da Terms97801 eine interne Tabelle mit den Tastennamen besitzt, kann es möglich sein, daß die Tasteninfo-Funktion nicht die richtigen Tastennamen anzeigt. Entsprechende Anpassungen an verfügbare Tastaturtreiber werden in zukünftigen Korrektur-Versionen berücksichtigt werden.

5.4.2 Trimodale Tastatur ohne Windows-Tastaturtreiber

Ist für die verwendete Tastatur kein Windows-Treiber vorhanden, gibt es die Möglichkeit, Terms97801 mit einer eigenen Umsetzung der OEM-Scancodes auf virtuelle Keycodes arbeiten zu lassen. Hierzu muß eine Umsetzungstabelle angegeben werden. Am einfachsten geschieht dies über den Dialog System..Terminal..OEM-Tastatur. Die Umsetzungstabelle kann auch in der Ini-Datei eingetragen werden:

[Keyboard]
....
OEMtoVK=b22tovk.oem
...

Ist eine Umsetzungstabelle angegeben, erzeugt sich Terms97801 eigene virtuelle Keycodes. Die Umsetzungstabelle hat folgenden Aufbau:

<OEM-Scancode>:<virtueller keycode>
<OEM-Scancode>:<virtueller keycode>
....

Leerzeilen und Kommentare, die mit ';' beginnen, sind erlaubt.

In der Tabelle muß der OEM-Scancode für jede Taste als hexadezimaler Wert angegeben werden, gefolgt von einem Doppelpunkt und dem hexadezimalen Wert des zugeordneten virtuellen Keycodes.

Der Wert für den virtuellen Keycode liegt zwischen 00 und ff. Der Wert für den OEM-Scancode liegt zwischen 00 und 7f, mit eventuell vorangestellter 1 für die 'extended keys'.

Beispiel:

01:1b; Esc
02:31; 1
03:32; 2
04:33; 3
...
79:f1; del line
...
11c:0d; Eingabe Ziffernblock
....
135:6f; / Ziffernblock

Die 'extended keys' sind diejenigen Tasten, die zusätzlich über die Tasten des Ziffernblocks erreicht werden können. Zur Umschaltung der Bedeutung der Tasten des Ziffernblocks dient die NUMLOCK-Taste. Windows gibt je nach Zustand der NUMLOCK-Taste unterschiedliche virtuelle Keycodes ab. Diese Eigenschaft geht bei der Verwendung der OEM-Tabelle verloren; die Tastatur verhält sich in diesem Punkt wie eine echte 97801-Tastatur. Das Lämpchen zur Anzeige des Zustands der NUMLOCK-Taste wird von Terms97801 als Ch.-Code-Lämpchen verwendet.

Die Vergabe von virtuellen Keycodes ist prinzipiell beliebig, solange die Terms97801-Tastaturtabelle auf diese Codes abgestimmt ist. Durch die Tasteninfo-Funktion von Terms97801 sind die virtuellen Keycodes festgelegt. Die gilt auch für diejenigen virtuellen Keycodes, die neu vereinbart werden müssen, da sie durch Microsoft nicht definiert sind.

HINWEIS:
Die Taste, die von Windows als VK_SNAPSHOT interpretiert wird macht ein paar Probleme. Diese Taste, auf der Standard-PC-Tastatur mit 'Druck/S-Abf' bezeichnet, hat die Windows-Funktion, den aktuellen Bildschirminhalt in die Zwischenablage zu kopieren. Außer der unangenehmen Eigenschaft den Inhalt der Zwischenablage zu verändern, hat diese Taste noch das Problem, vom System nicht an Programme, also auch Terms97801, weitergereicht zu werden. Genauer gesagt, das System gibt für diese Taste in Hoch- oder Strg-Kombination keine Nachricht an Programme, und in der Alt-Kombination und als normaler Tastendruck nur die Nachricht, daß die Taste losgelassen wurde.

Unangenehm an den trimodalen Tastaturen ist die Tatsache, daß bestimmte Funktionstasten (je nach Variante) von Windows als VK_SNAPSHOT interpretiert werden.

Während für alle anderen Tasten nur das Niederdrücken der Taste ausgewertet wird, wertet Terms97801 für diese Taste das Loslassen aus. Damit ist es möglich, auch diese Taste zu verwenden. Der aktuelle Inhalt der Zwischenablage wird aber durch diese Taste gelöscht.

5.4.3 Das Tastatur-Utility TermsKey

Im Lieferumfang befinden sich einige OEM-Tabellen. Da es jedoch sehr viele verschiedene Varianten der trimodalen Tastatur gibt, kann es nötig sein, die vorhandenen Tabellen abzuändern. Um die OEM-Codes zu herauszufinden, die von der Tastatur abgegeben werden, wurde das Tastatur-Utility termskey.exe in den Lieferumfang aufgenommen.

Da dieses Utility alle Tasten anzeigen soll, sind die Windows-Tastatur-Funktionen abgeschaltet. Ohne Maus kann das Programm weder beendet werden, noch auf ein anderes Programm umgeschaltet werden.


Abb. 24: Tastatur-Utility TermsKey

Der OEM-Scancode ist Bestandteil des lParam-Parameters; der Einfachkeit halber wird der OEM-Scancode nochmals in einer eigenen Spalte angezeigt.

5.4.4 Die OEM-Tabelle für die Standardtastatur

Eine Nutzung der OEM-Umsetzung kann auch für die Standardtastatur sinnvoll sein. Durch eine geeignete OEM-Tabelle kann zwischen den beiden ENTER-Tasten unterschieden werden und so z.B. die MENU-Taste auf die ENTER-Taste des Ziffernblocks gelegt werden. Ohne OEM-Tabelle ist dies nicht möglich, da beide ENTER-Tasten denselben virtuellen Keycode abliefern. Mit der Verwendung einer OEM-Tabelle wird der NUMLOCK-Mechanismus, also die Umschaltung des Ziffernblocks zwischen Cursor-Funktionen und Ziffern, abgeschaltet. Das NUMLOCK-Kontroll-Lämpchen wird dann als Ch.-Code-Lämpchen benutzt.

Eine OEM-Tabelle, die die Standardtastatur auf dieselben virtuellen Keycodes umsetzt wie der Standard-Tastaturtreiber, findet sich als pctovk.oem im Lieferumfang. Diese Tabelle kann als Ausgangsbasis für eigene Modifikationen genommen werden.

5.4.5 Windows95-Tastatur

Anläßlich der Windows95-Einführung wird von Microsoft eine spezielle Windowstastatur propagiert. Diese Tastatur unterscheidet sich gegenüber den herkömmlichen Tastaturen durch drei zusätzliche Tasten, die Anwendungstaste und linke bzw. rechte Windowstaste genannt werden.

Die Windows-Tasten können zwar genau wie alle anderen Tasten unter Terms97801 programmiert und verwendet werden, es ist aber nicht möglich die dazugehörige Windows-Funktion abzuschalten. Aus diesem Grund eignen sich diese Tasten leider nicht zum Ansprechen von 97801-Tasten.


Terms-LogoTerms97801 Version 2.0 Online Handbuch

Inhalt Index Voriges Kapitel Vorige Seite Nächste Seite Nächstes Kapitel Kapitel: 1 2 3 4 5 6 7 8 9 10 Anhang