Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ keyboard(7) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

stty(1)

vtlmgr(1M)

ioctl(2)

ascii(5)

console(7)

display(7)

termio(7)

keyboard(7)                     (Nur RM400)                     keyboard(7)

NAME
     keyboard - Tastatur der Systemkonsole

BESCHREIBUNG
     Die Systemkonsole besteht aus zwei getrennten Teilen: Der Tastatur und
     dem Bildschirm [siehe display(7)].

     Über die Tastatur werden Daten eingegeben und bestimmte Steuersignale
     an den Rechner geschickt. Die Reliant UNIX Software emuliert ein Ter-
     minal auf dem Bildschirm und der Tastatur der Konsole und benutzt
     dabei bestimmte Tasten und Tastenkombinationen. Diese Tasten und
     Tastenkombinationen haben spezielle, Reliant UNIX spezifische Namen,
     die nicht unbedingt mit den Tastenbeschriftungen auf Ihrer Tastatur
     übereinstimmen müssen. Wenn Sie eine Taste drücken, läuft einer der
     folgenden Vorgänge ab:

     -  Ein ASCII-Wert wird eingegeben.

     -  Die Belegung einer anderen Taste bzw. von anderen Tasten wird geän-
        dert.

     -  An den Rechner wird eine Zeichenkette geschickt.

     -  Eine Funktion wird aktiviert.

     Wenn eine Taste gedrückt wird, schickt die Tastatur einen Scan-Code an
     den Rechner. Dieser Scan-Code wird durch den Tastaturtreiber interpre-
     tiert. Die Code-Folge, die tatsächlich an die Terminal-Eingabefunktion
     [siehe termio(7)] geschickt wird, ist in einer Reihe von treiberinter-
     nen Tabellen festgelegt. Diese Tabellen können durch Programme geän-
     dert werden (siehe Beschreibung der ioctl-Funktionsaufrufe, unten).
     Außerdem kann der Treiber angewiesen werden, keine Umsetzungen durch-
     zuführen, d. h., die Scan-Codes für "Taste nicht gedrückt/gedrückt"
     direkt zu übermitteln.

   Änderung der Tastaturbelegung

     Die durch eine Taste aktivierte Funktion kann geändert werden, indem
     die Taste in Kombination mit ein oder zwei anderen Tasten gedrückt
     wird. So werden beispielsweise durch die Taste SHIFT die ASCII-Werte
     der alphanumerischen Tasten geändert. Wenn die Taste CTRL gedrückt
     gehalten und gleichzeitig eine andere Taste gedrückt wird, wird ein
     Steuer-Code (z. B. CTRL-D, CTRL-S und CTRL-Q) übermittelt. Wenn die
     Taste ALT gedrückt gehalten wird, wird ebenfalls die Belegung einer
     Taste geändert. Die Tasten SHIFT, CTRL und ALT können in beliebiger
     Kombination gedrückt werden.









Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

   Umschalten zwischen Bildschirmen

     Um zu einem anderen virtuellen Bildschirm zu wechseln, rufen Sie
     zunächst das Kommando vtlmgr auf [siehe vtlmgr(1M)]. Eine andere Mög-
     lichkeit ist, die Tasten ALT-SYSREQ (bzw. ALT-PRINTSCRN auf einigen
     Systemen) zu drücken, gefolgt von einer Taste, über die der gewünschte
     Bildschirm angegeben wird. Sie können einen beliebigen aktiven Bild-
     schirm auswählen, indem Sie nach den Tasten ALT-SYSREQ die Taste Fn
     drücken, wobei Fn eine Funktionstaste ist. F1 steht für den ersten
     virtuellen Bildschirm, F2 für den zweiten usw. ALT-SYSREQ "h" steht
     für den Bildschirm der Hauptkonsole (/dev/console). Der nächste aktive
     Bildschirm kann mit ALT-SYSREQ "n" gewählt werden, der vorhergehende
     mit ALT-SYSREQ "p".

     Die Standard-Umschaltsequenz (ALT-SYSREQ) kann von Ihnen beliebig
     festgelegt werden. Der SYSREQ-Tabelleneintrag kann über Programme
     geändert werden (siehe Beschreibung der ioctl-Funktionsaufrufe,
     unten).

   Sondertasten

     Die folgende Tabelle zeigt die Tasten, die auf einer typischen Konsole
     den Tasten des Reliant UNIX Systems entsprechen. Ein Bindestrich zwi-
     schen zwei Tastenbezeichnungen bedeutet in dieser Tabelle, daß Sie die
     erste Taste gedrückt halten und gleichzeitig die zweite drücken müs-
     sen. Die Zuordnungen zwischen den signalgenerierenden Zeichen und den
     tatsächlich generierten Signalen werden mit stty(1) festgelegt und
     können geändert werden.


























Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

     ______________________________________________________________________
    | Name       Beschriftung                    Aktion                   |
    |_____________________________________________________________________|
    | INTR       DEL           Bricht die aktuelle Aktion ab und ruft wie-|
    |                          der eine Shell auf. Diese Taste heißt auch |
    |                          RUB OUT oder INTERRUPT.                    |
    |                                                                     |
    | BACKSPACE  <-            Löscht das Zeichen unmittelbar links vom   |
    |                          Cursor.                                    |
    |                          Hinweis: Obwohl die Taste "Pfeil nach      |
    |                          links" ebenfalls mit einem Pfeil nach links|
    |                          (<-) versehen ist, hat diese Taste eine    |
    |                          andere Funktion als BACKSPACE.             |
    |                                                                     |
    | CTRL-D     CTRL-D        Signalisiert das Ende der Tastatureingabe; |
    |                          beendet auch die aktuelle Shell.           |
    |                                                                     |
    | CTRL-H     CTRL-H        Löscht das Zeichen unmittelbar links vom   |
    |                          Cursor. Diese Taste hat auch die Bezeich-  |
    |                          nung ERASE.                                |
    |                                                                     |
    | CTRL-Q     CTRL-Q        Startet erneut das Ausdrucken, nachdem es  |
    |                          mit CTRL-S gestoppt worden ist.            |
    |                                                                     |
    | CTRL-S     CTRL-S        Hält die Bildschirmausgabe an (das Programm|
    |                          wird nicht abgebrochen).                   |
    |                                                                     |
    | CTRL-U     CTRL-U        Löscht alle Zeichen in der aktuellen Zeile.|
    |                          Diese Taste wird auch als KILL bezeichnet. |
    |                                                                     |
    | CTRL-\     CTRL-\        Beendet das aktuelle Kommando und legt eine|
    |                          core-Datei an (falls zulässig). (Diese     |
    |                          Taste ist nur zur Fehlersuche empfehlens-  |
    |                          wert.)                                     |
    |                                                                     |
    | ESCAPE     ESC           Sonder-Code für bestimmte Programme. Damit |
    |                          wird beispielsweise unter dem Texteditor   |
    |                          vi(1) vom Einfügemodus in den Kommandomodus|
    |                          gewechselt.                                |
    |                                                                     |
    | RETURN     (nach links   Schließt eine Kommandozeile ab und bewirkt |
    |            unten abge-   die Ausführung einer Aktion von einer Shell|
    |            knickter      aus.                                       |
    |            Pfeil oder                                               |
    |            ENTER)                                                   |
    |_____________________________________________________________________|








Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

     ______________________________________________________________________
    | Name    Beschriftung                       Aktion                   |
    |_____________________________________________________________________|
    | Fn      Fn               Funktionstaste n. Für die Funktionstasten  |
    |                          F1-F12 werden die Funktionstasten allein   |
    |                          betätigt, für die Funktionstasten F13-F24  |
    |                          die Funktionstasten F1-F12 in Kombination  |
    |                          mit der SHIFT-Taste, für die Funktionsta-  |
    |                          sten F25-F36 die Tastenkombinationen CTRL- |
    |                          F1 bis F12 und für die Funktionstasten     |
    |                          F37-F48 die Tastenkombinationen CTRL-      |
    |                          SHIFT-F1 bis F12.                          |
    |                                                                     |
    |                          Die nachfolgenden Fn-Tasten (F49-F60)      |
    |                          befinden sich auf dem Nummernblock (ohne   |
    |                          SHIFT-Taste):                              |
    |                                                                     |
    |                              F49 - 7             F55 - 6            |
    |                              F50 - 8             F56 - +            |
    |                              F51 - 9             F57 - 1            |
    |                              F52 - -             F58 - 2            |
    |                              F53 - 4             F59 - 3            |
    |                              F54 - 5             F60 - 0            |
    |_____________________________________________________________________|

   Tastaturabbildungen

     Die Tastaturabbildungen sind in /usr/include/sys/kd.h festgelegt. Für
     jede Taste sind zehn verschiedene Zustände möglich. Die ersten acht
     Zustände sind nachfolgend aufgeführt:

     -  BASE
     -  CTRL-SHIFT
     -  SHIFT
     -  ALT-SHIFT
     -  CTRL
     -  ALT-CTRL
     -  ALT
     -  ALT-CTRL-SHIFT

     Die beiden übrigen Zustände werden durch zwei spezielle Bytes ange-
     zeigt. Beim ersten Byte handelt es sich um ein Sonderstatus-Byte: die
     Bits dieses Bytes zeigen an, ob die Taste in einem oder mehreren der
     ersten acht Zustände eine Sonderfunktion hat. Beim zweiten Byte han-
     delt es sich um einen von vier Codes, die durch eines der vier Zeichen
     C, N, B oder O dargestellt werden; hiermit wird angegeben, wie das
     Drücken einer Feststelltaste sich auf die Belegung der betreffenden
     Taste auswirkt.






Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

     Die folgende Tabelle beschreibt die Standard-Tastaturabbildungen. Mit
     Ausnahme der speziellen Schlüsselwörter (die später beschrieben wer-
     den) sind alle Werte ASCII-Zeichenwerte.

     Überschrift   Beschreibung

     SCAN CODE     Diese Spalte enthält die Scan-Codes, die beim Drücken
                   einer Taste durch die Tastatur-Hardware generiert wer-
                   den. Für die Scan-Codes, die beim Loslassen einer Taste
                   generiert werden, sind keine Tabelleneinträge angegeben.

     BASE          Diese Spalte enthält den normalen Wert, der beim Drücken
                   einer Taste generiert wird.

     SHIFT         Der in dieser Spalte aufgeführte Wert wird generiert,
                   indem die SHIFT-Taste gedrückt gehalten und gleichzeitig
                   eine Taste gedrückt wird.

     LOCK          In dieser Spalte sind die Feststelltasten aufgeführt,
                   die die Belegung der betreffenden Taste ändern:

                   -  C steht für CAPSLOCK

                   -  N steht für NUMLOCK

                   -  B steht für "beide"

                   -  O steht für "keine"

     Die Werte in den übrigen Spalten werden generiert, wenn eine bestimmte
     Taste gedrückt und gleichzeitig bestimmte Kombinationen der Tasten
     CTRL, ALT und SHIFT gedrückt gehalten werden.

     Über den Eintrag in der Spalte SRQTAB kann festgelegt werden, mit wel-
     chen Tasten virtuelle Bildschirme aufgerufen werden können. Die
     SRQTAB-Tabelle ist in Wirklichkeit eine separate Tabelle, die über die
     ioctl-Funktionsaufrufe KDGKBENT und KDSKBENT gelesen und geändert wer-
     den kann.
















Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

_______________________________________________________________________________
|                                                         ALT                 |
|SCAN                        CTRL          ALT     ALT    CTRL                |
|CODE   BASE  SHIFT   CTRL   SHIFT   ALT   SHIFT   CTRL   SHIFT   LOCK  SRQTAB|
|_____________________________________________________________________________|
|  0    nop   nop     nop    nop     nop   nop     nop    nop     O     nop   |
|  1    esc   esc     esc    esc     esc   esc     esc    esc     O     nop   |
|  2    '1'   '!'     '1'    '1'     escn  escn    nop    nop     O     nop   |
|  3    '2'   '@'     nul    nul     escn  escn    nop    nop     O     nop   |
|  4    '3'   '#'     '3'    '3'     escn  escn    nop    nop     O     nop   |
|  5    '4'   '$'     '4'    '4'     escn  escn    nop    nop     O     nop   |
|  6    '5'   '%'     '5'    '5'     escn  escn    nop    nop     O     nop   |
|  7    '6'   '^'     rs     rs      escn  escn    nop    nop     O     nop   |
|  8    '7'   '&'     '7'    '7'     escn  escn    nop    nop     O     nop   |
|  9    '8'   '*'     '8'    '8'     escn  escn    nop    nop     O     nop   |
| 10    '9'   '('     '9'    '9'     escn  escn    nop    nop     O     nop   |
| 11    '0'   ')'     '0'    '0'     escn  escn    nop    nop     O     nop   |
| 12    '-'   '_'     ns     ns      escn  escn    nop    nop     O     nop   |
| 13    '='   '+'     '='    '+'     escn  escn    nop    nop     O     nop   |
| 14    bs    bs      bs     bs      bs    bs      bs     bs      O     nop   |
| 15    ht    gs      ht     gs      ht    gs      ht     gs      O     nop   |
| 16    'q'   'Q'     dc1    dc1     escn  escn    nop    nop     C     nop   |
| 17    'w'   'W'     etb    etb     escn  escn    nop    nop     C     nop   |
| 18    'e'   'E'     enq    enq     escn  escn    nop    nop     C     nop   |
| 19    'r'   'R'     dc2    dc2     escn  escn    nop    nop     C     nop   |
| 20    't'   'T'     dc4    dc4     escn  escn    nop    nop     C     nop   |
| 21    'y'   'Y'     em     em      escn  escn    nop    nop     C     nop   |
| 22    'u'   'U'     nak    nak     escn  escn    nop    nop     C     nop   |
| 23    'i'   'I'     ht     ht      escn  escn    nop    nop     C     nop   |
|_____________________________________________________________________________|
























Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

________________________________________________________________________________
|                                                        ALT                   |
|SCAN                       CTRL           ALT    ALT    CTRL                  |
|CODE BASE    SHIFT  CTRL   SHIFT  ALT     SHIFT  CTRL   SHIFT  LOCK  SRQTAB   |
|______________________________________________________________________________|
| 24  'o'     'O'    si     si     escn    escn   nop    nop    C     K_PREV   |
| 25  'p'     'P'    dle    dle    escn    escn   nop    nop    C     nop      |
| 26  '['     '{'    esc    esc    escn    escn   nop    nop    O     nop      |
| 27  ']'     '}'    gs     gs     escn    escn   nop    nop    O     nop      |
| 28  cr      cr     cr     cr     cr      cr     cr     cr     O     nop      |
| 29  lctrl   lctrl  lctrl  lctrl  lctrl   lctrl  lctrl  lctrl  O     nop      |
| 30  'a'     'A'    soh    soh    escn    escn   nop    nop    C     nop      |
| 31  's'     'S'    dc3    dc3    escn    escn   nop    nop    C     nop      |
| 32  'd'     'D'    eot    eot    escn    escn   nop    nop    C     K_FRCNEXT|
| 33  'f'     'F'    ack    ack    escn    escn   nop    nop    C     nop      |
| 34  'g'     'G'    bel    bel    escn    escn   nop    nop    C     K_VTF    |
| 35  'h'     'H'    bs     bs     escn    escn   nop    nop    C     nop      |
| 36  'j'     'J'    nl     nl     escn    escn   nop    nop    C     nop      |
| 37  'k'     'K'    vt     vt     escn    escn   nop    nop    C     nop      |
| 38  'l'     'L'    np     np     escn    escn   nop    nop    C     nop      |
| 39  ';'     ':'    ';'    ':'    escn    escn   nop    nop    O     nop      |
| 40  '\''    '"'    '\''   '"'    escn    escn   nop    nop    O     nop      |
| 41  '`'     '~'    '`'    '~'    escn    escn   nop    nop    O     nop      |
| 42  lshift  lshift lshift lshift lshift  lshift lshift lshift O     nop      |
| 43  '\\'    '|'    fs     fs     escn    escn   nop    nop    O     nop      |
| 44  'z'     'Z'    sub    sub    escn    escn   nop    nop    C     nop      |
| 45  'x'     'X'    can    can    escn    escn   nop    nop    C     nop      |
| 46  'c'     'C'    etx    etx    escn    escn   nop    nop    C     nop      |
| 47  'v'     'V'    syn    syn    escn    escn   nop    nop    C     nop      |
| 48  'b'     'B'    stx    stx    escn    escn   nop    nop    C     K_NEXT   |
| 49  'n'     'N'    so     so     escn    escn   nop    nop    C     nop      |
| 50  'm'     'M'    cr     cr     escn    escn   nop    nop    C     nop      |
| 51  ','     '<'    ','    '<'    escn    escn   nop    nop    O     nop      |
| 52  '.'     '>'    '.'    '>'    escn    escn   nop    nop    O     nop      |
| 53  '/'     '?'    '/'    '?'    escn    escn   nop    nop    O     nop      |
| 54  rshift  rshift rshift rshift rshift  rshift rshift rshift O     nop      |
| 55  '*'     '*'    '*'    '*'    escn    escn   escn   escn   O     nop      |
| 56  lalt    lalt   lalt   lalt   lalt    lalt   lalt   lalt   O     nop      |
| 57  ' '     ' '    nul    nul    fkey05  fkey05 nop    nop    O     nop      |
| 58  clock   clock  clock  clock  clock   clock  clock  clock  O     K_VTF+1  |
| 59  fkey00  fkey12 fkey24 fkey36 fkey00  fkey12 fkey24 fkey36 O     K_VTF+2  |
| 60  fkey01  fkey13 fkey25 fkey37 fkey01  fkey13 fkey25 fkey37 O     K_VTF+3  |
| 61  fkey02  fkey14 fkey26 fkey38 fkey02  fkey14 fkey26 fkey38 O     K_VTF+4  |
| 62  fkey03  fkey15 fkey27 fkey39 fkey03  fkey15 fkey27 fkey39 O     K_VTF+5  |
| 63  fkey04  fkey16 fkey28 fkey40 fkey04  fkey16 fkey28 fkey40 O     K_VTF+6  |
|______________________________________________________________________________|








Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

________________________________________________________________________________
|                                                         ALT                  |
|SCAN                        CTRL          ALT     ALT    CTRL                 |
|CODE  BASE   SHIFT  CTRL    SHIFT  ALT    SHIFT   CTRL   SHIFT  LOCK  SRQTAB  |
|______________________________________________________________________________|
|  64  fkey05 fkey17 fkey29  fkey41 fkey05 fkey17  fkey29 fkey41 O     K_VTF+7 |
|  65  fkey06 fkey18 fkey30  fkey42 fkey06 fkey18  fkey30 fkey42 O     K_VTF+8 |
|  66  fkey07 fkey19 fkey31  fkey43 fkey07 fkey19  fkey31 fkey43 O     K_VTF+9 |
|  67  fkey08 fkey20 fkey32  fkey44 fkey08 fkey20  fkey32 fkey44 O     K_VTF+10|
|  68  fkey09 fkey21 fkey33  fkey45 fkey09 fkey21  fkey33 fkey45 O             |
|  69  nlock  nlock  nlock   nlock  nlock  nlock   nlock  nlock  O             |
|  70  ack    ack    '|'     '|'    ack    ack     '|'    '|'    O             |
|  71  fkey48 '7'    fkey48  '7'    fkey48 escn    nop    nop    N             |
|  72  fkey49 '8'    fkey49  '8'    fkey49 escn    nop    nop    N             |
|  73  fkey50 '9'    fkey50  '9'    fkey50 escn    nop    udr    N             |
|  74  fkey51 '-'    fkey51  '-'    fkey51 escn    nop    nop    N             |
|  75  fkey52 '4'    fkey52  '4'    fkey52 escn    nop    nop    N             |
|  76  fkey53 '5'    fkey53  '5'    fkey53 escn    nop    nop    N             |
|  77  fkey54 '6'    fkey54  '6'    fkey54 escn    nop    nop    N             |
|  78  fkey55 '+'    fkey55  '+'    fkey55 escn    nop    nop    N             |
|  79  fkey56 '1'    fkey56  '1'    fkey56 escn    nop    nop    N             |
|  80  fkey57 '2'    fkey57  '2'    fkey57 escn    nop    nop    N             |
|  81  fkey58 '3'    fkey58  '3'    fkey58 escn    nop    debug  N             |
|  82  fkey59 '0'    fkey59  '0'    fkey59 escn    nop    nop    N             |
|  83  del    '.'    del     '.'    del    escn    reboot nop    N             |
|  84  fkey59 fkey25 fkey59  nop    sysreq sysreq  sysreq sysreq O             |
|  85  fkey57 fkey57 fkey57  fkey57 fkey57 fkey57  fkey57 fkey57 O     K_NOP   |
|  86  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  87  fkey10 fkey22 fkey34  fkey46 fkey10 fkey22  fkey34 fkey46 O     K_VTF+11|
|  88  fkey11 fkey23 fkey35  fkey47 fkey11 fkey23  fkey35 fkey47 O     K_VTF+12|
|  89  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  90  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  91  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  92  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  93  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  94  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  95  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  96  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  97  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  98  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|  99  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
| 100  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
| 101  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
| 102  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
| 103  nop    nop    nop     nop    nop    nop     nop    nop    O     K_NOP   |
|______________________________________________________________________________|








Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

_______________________________________________________________________________
|                                                           ALT               |
|SCAN                          CTRL          ALT    ALT     CTRL              |
|CODE    BASE   SHIFT  CTRL    SHIFT  ALT    SHIFT  CTRL    SHIFT  LOCK SRQTAB|
|_____________________________________________________________________________|
| 104    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 105    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 106    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 107    fkey52 fkey52 fkey52  fkey52 fkey52 fkey52 fkey52  fkey52 O    K_NOP |
| 108    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 109    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 110    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 111    fkey50 fkey50 nop     nop    nop    nop    nop     nop    O    K_NOP |
| 112    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 113    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 114    agr    agr    agr     agr    agr    agr    agr     agr    O    K_NOP |
| 115    rctrl  rctrl  rctrl   rctrl  rctrl  rctrl  rctrl   rctrl  O    K_NOP |
| 116    cr     cr     cr      cr     cr     cr     cr      cr     O    K_NOP |
| 117    '/'    '/'    nop     nop    escn   escn   nop     nop    O    K_NOP |
| 118    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 119    brk    brk    brk     brk    brk    brk    brk     brk    O    K_NOP |
| 120    fkey49 fkey49 nop     nop    nop    nop    nop     nop    O    K_NOP |
| 121    del    del    del     del    del    del    del     del    O    K_NOP |
| 122    fkey56 fkey56 nop     nop    nop    nop    nop     nop    O    K_NOP |
| 123    fkey59 fkey59 nop     nop    nop    nop    nop     nop    O    K_NOP |
| 124    nop    nop    nop     nop    nop    nop    nop     nop    O    K_NOP |
| 125    fkey54 fkey54 nop     nop    nop    nop    nop     nop    O    K_NOP |
| 126    fkey58 fkey58 nop     nop    nop    nop    nop     nop    O    K_NOP |
| 127    fkey48 fkey48 nop     nop    nop    nop    nop     nop    O    K_NOP |
|_____________________________________________________________________________|
























Seite 9                      Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

     Die folgende Tabelle zeigt die Werte sämtlicher spezieller Schlüssel-
     wörter in den vorhergehenden Tabellen. Die Schlüsselwörter wurden in
     den vorhergehenden Tabellen lediglich zur besseren Verständlichkeit
     benutzt. In der tatsächlichen Tastenabbildungstabelle wird ein spe-
     zielles Schlüsselwort durch seinen Wert dargestellt, wobei das betref-
     fende Sonderstatus-Bit gesetzt ist.

     ______________________________________________________________________
    | Name    Wert  Bedeutung                                             |
    |_____________________________________________________________________|
    | nop       0   Keine Operation - Keine Funktion bei Tastenanschlag   |
    | lshift    2   (Left-hand shift) SHIFT-Taste links                   |
    | rshift    3   (Right-hand shift) SHIFT-Taste rechts                 |
    | clock     4   CAPS LOCK                                             |
    | nlock     5   NUM LOCK                                              |
    | slock     6   SCROLL LOCK                                           |
    | alt       7   Alt-Taste                                             |
    | btab      8   Back Tab-Taste - generiert die feste Sequenz (ESC[ Z) |
    | ctrl      9   Control-Taste                                         |
    | lalt     10   (Left-hand alt key) ALT-Taste links                   |
    | ralt     11   (Right-hand alt key) ALT-Taste rechts                 |
    | lctrl    12   (Left-hand control key) CTRL-Taste links              |
    | rctrl    13   (Right-hand control key) CTRL-Taste rechts            |
    | agr      14   Taste ALT-GR (nur Europa)                             |
    | fkey1    27   Funktionstaste #1                                     |
    | .             .                                                     |
    | .             .                                                     |
    | .             .                                                     |
    | fkey96  122   Funktionstaste #96                                    |
    | sysreq  123   Systemanforderung                                     |
    | brk     124   Break-Taste                                           |
    | escn    125   Generiert die Sequenz ESC N x, wobei x für den Wert   |
    |               eines Scan-Codes ohne Alt-Taste steht                 |
    | esco    126   Generiert die Sequenz ESC O x, wobei x für den Wert   |
    |               eines Scan-Codes ohne Alt-Taste steht                 |
    | escl    127   Generiert die Sequenz ESC L x, wobei x für den Wert   |
    |               eines Scan-Codes ohne Alt-Taste steht                 |
    | rboot   128   System neu starten                                    |
    | debug   129   Debugger des Systemkerns aufrufen                     |
    | NEXT    130   Zum nächsten virtuellen Bildschirm in der Warte-      |
    |               schlange umschalten                                   |
    | PREV    131   Zum vorhergehenden virtuellen Bildschirm in der Warte-|
    |               schlange umschalten                                   |
    | FNEXT   132   Erzwungenes Umschalten zum nächsten virtuellen Bild-  |
    |               schirm in der Warteschlange                           |
    | FPREV   133   Erzwungenes Umschalten zum vorhergehenden virtuellen  |
    |               Bildschirm in der Warteschlange                       |
    |_____________________________________________________________________|






Seite 10                     Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

     ______________________________________________________________________
    | Name    Wert  Bedeutung                                             |
    |_____________________________________________________________________|
    | VTF     134   Erster virtueller Bildschirm (VT00)                   |
    | .             .                                                     |
    | .             .                                                     |
    | .             .                                                     |
    | VTL     148   Letzter virtueller Bildschirm (VT14)                  |
    | MGRF    149   Fensterverwaltung für virtuelle Bildschirme, erste    |
    |               Sondertasten-Belegung. Ermöglicht die spezielle Bele- |
    |               gung einer Tastensequenz zur Durchführung von Funktio-|
    |               nen durch die Fensterverwaltung für virtuelle Bild-   |
    |               schirme. Wird in der Tabelle SRQTAB benutzt.          |
    | .             .                                                     |
    | .             .                                                     |
    | .             .                                                     |
    | MGRL    179   Fensterverwaltung für virtuelle Bildschirme, letzte   |
    |               Sondertasten-Belegung. Wird in der Tabelle SRQTAB     |
    |               benutzt.                                              |
    |_____________________________________________________________________|

     In der folgenden Tabelle sind die Namen und Dezimalwerte für die
     ASCII-Zeichen in der obenstehenden Tabelle aufgeführt. Die Namen wur-
     den anstelle der numerischen Konstanten benutzt, um die Lesbarkeit der
     Scan-Code-Tabelle zu verbessern. In den ioctl-Puffer werden aus-
     schließlich die Dezimalwerte gesetzt. Diese Werte werden ascii(5) ent-
     nommen.

            _______________________________________________________
           | Name   Wert|  Name   Wert|  Name   Wert|  Name   Wert|
           |____________|_____________|_____________|_____________|
           | nul     0  |  ht       9 |  dc2     18 |  esc     27 |
           | soh     1  |  nl      10 |  dc3     19 |  fs      28 |
           | stx     2  |  vt      11 |  dc4     20 |  gs      29 |
           | etx     3  |  np      12 |  nak     21 |  rs      30 |
           | eot     4  |  cr      13 |  syn     22 |  ns      31 |
           | enq     5  |  so      14 |  etb     23 |  del    127 |
           | ack     6  |  si      15 |  can     24 |             |
           | bel     7  |  dle     16 |  em      25 |             |
           | bs      8  |  dc1     17 |  sub     26 |             |
           |____________|_____________|_____________|_____________|













Seite 11                     Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

   Neubelegung der Tasten mit Zeichenketten

     Die Abbildungstabelle für Zeichenketten, ein Array aus 512 Byte
     (typedef strmapt), enthält die durch das Null-Zeichen abgeschlossenen
     Zeichenketten, mit denen die Funktionstasten neu belegt werden. Die
     erste durch das Null-Zeichen abgeschlossene Zeichenkette wird der
     ersten Funktionstaste zugeordnet, die zweite der zweiten Funktiontaste
     usw.

     Die Zeichenketten dürfen beliebig lang sein; allerdings darf die
     Tabelle (einschließlich der Null-Zeichen) maximal 512 Byte enthalten.
     Um eine Zeichenkette Null zu machen, werden ihr zusätzliche Null-
     Zeichen angefügt. Die folgende Tabelle enthält die Standard-Funktions-
     tastenbelegungen.

              ____________________________________________________
             |          Standard-Funktionstastenbelegung         |
             |___________________________________________________|
             | Funktions-             Mit      Mit        Mit    |
             |   taste#     Allein   Shift     Ctrl    Ctrl Shift|
             |___________________________________________________|
             |      1       ESC OP   ESC Op   ESC OP   ESC Op    |
             |      2       ESC OQ   ESC Oq   ESC OQ   ESC Oq    |
             |      3       ESC OR   ESC Or   ESC OR   ESC Or    |
             |      4       ESC OS   ESC Os   ESC OS   ESC Os    |
             |      5       ESC OT   ESC Ot   ESC OT   ESC Ot    |
             |      6       ESC OU   ESC Ou   ESC OU   ESC Ou    |
             |      7       ESC OV   ESC Ov   ESC OV   ESC Ov    |
             |      8       ESC OW   ESC Ow   ESC OW   ESC Ow    |
             |      9       ESC OX   ESC Ox   ESC OX   ESC Ox    |
             |     10       ESC OY   ESC Oy   ESC OY   ESC Oy    |
             |     11       ESC OZ   ESC Oz   ESC OZ   ESC Oz    |
             |     12       ESC OA   ESC Oa   ESC OA   ESC Oa    |
             |___________________________________________________|

   ioctl-Funktionsaufrufe

     KDGKBMODE
          Mit diesem Funktionsaufruf rufen Sie den aktuellen Tastatur-Modus
          ab. Das Ergebnis ist einer der folgenden in /usr/include/sys/kd.h
          definierten Werte:

          #define   KRAW     0x00   /* Zeilen-Scan-Codes übermitteln */
          #define   KXLATE   0x01   /* Nach ASCII umsetzen */

     KDSKBMODE
          Mit diesem Funktionsaufruf wird der Tastatur-Modus eingestellt.
          Als Argument kann bei diesem Funktionsaufruf entweder KRAW oder
          KXLATE angegeben werden. Im Raw-Mode kann das Programm die über
          die Tastatur generierten, unbearbeiteten Scan-Codes für "Taste
          nicht gedrückt/gedrückt" interpretieren. Im Umsetzungs-Modus wird
          der zugehörige Zeichen-Code anhand der Umsetzungstabellen generiert.


Seite 12                     Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

     KDGKBTYTE
          Über diesen Funktionsaufruf wird der Tastatur-Typ abgerufen. Das
          Ergebnis ist einer der folgenden in /usr/include/sys/kd.h defi-
          nierten Werte:

          #define   KB84      0x00   /* 84-Tasten-Tastatur */
          #define   KB101     0x01   /* 101-Tasten-Tastatur */
          #define   KBOTHER   0x03   /* Sonstiger Tastaturtyp */

     KDGKBENT
          Dieser Funktionsaufruf liest einen der Einträge in den Umset-
          zungstabellen. Als Argument kann bei diesem Funktionsaufruf die
          Adresse einer der folgenden, in /usr/include/sys/kd.h definierten
          Strukturen angegeben werden, wobei die ersten beiden Felder fol-
          gendermaßen belegt sind:

             struct kbentry
             {
                 unchar kbtable;  /* Zu benutzende Tabelle             */
                 unchar kbindex;  /* Eintrag in der Tabelle            */
                 ushort kbvalue;  /* Abzurufender/einzustellender Wert */
             };

          In das Feld kbtable dürfen folgende Werte eingetragen werden:

          #define   KNORMTAB      0x00   /* BASE*/
          #define   KSHIFTTAB     0x01   /* SHIFT*/
          #define   KALTTAB       0x02   /* ALT */
          #define   KALTSHIFTTAB  0x03   /* SHIFT+ALT */
          #define   KSRQTAB       0x04   /* SYSREQ-Tabelle auswählen */

          Der ioctl-Funktionsaufruf ermittelt den betreffenden Eintrag
          anhand der angegebenen Tabelle und gibt ihn in das dritte Feld
          zurück.

          Der KSRQTAB-Wert für das Feld kbtable ermöglicht den Zugriff
          auf die indizierte Scan-Code-Tabelle, die die Zuweisung eines
          vorgegebenen Auswahlcodes für einen virtuellen Bildschirm
          (KVTF-KVTL) oder "Sondertasten"-Belegungen für die Fensterver-
          waltung für virtuelle Bildschirme (KMGRF-KMGRL) ermöglicht.

          Dem Auswahlcode für den virtuellen Bildschirm (KVTF) ist norma-
          lerweise /dev/vt00 zugeordnet, in dem sich meist auch die Login-
          Shell des Benutzers befindet. Zur Wahl von virtuellen Bildschir-
          men können außerdem die folgenden Auswahlcodes angegeben werden:









Seite 13                     Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

                KVTF+1 für den ersten virtuellen Bildschirm (/dev/vt01)
                KVTF+2 für den zweiten virtuellen Bildschirm (/dev/vt02)
                . . .
                KVTF+12 für den zwölften virtuellen Bildschirm (/dev/vt12)

     KDSKBENT
          Mit diesem Funktionsaufruf wird ein Eintrag in einer der Umset-
          zungstabellen eingestellt. Er benutzt dieselbe Struktur wie der
          ioctl-Funktionsaufruf KDGKBENT, nur befindet sich im dritten Feld
          der Wert, der in die Umsetzungstabelle eingetragen werden sollte.
          Dadurch kann eine Tastatur teilweise oder vollständig neu belegt
          werden.

          Durch den Treiber kd kann mit virtuellen Bildschirmen gearbeitet
          werden. Das Gerät (minor device) der Konsole, /dev/vtmon, leitet
          Tastaturanforderungen für virtuelle Bildschirme vom kd-Treiber an
          den Prozeß weiter, der /dev/vtmon geöffnet hat. Für die Unter-
          stützung von virtuellen Bildschirmen gibt es drei ioctl-
          Funktionsaufrufe:

          VTGETSTATE
               Der ioctl-Funktionaufruf VTGETSTATE gibt globale Informa-
               tionen über den Status des virtuellen Bildschirms zurück. Er
               setzt den aktiven virtuellen Bildschirm in das Feld vactive
               und die Anzahl der aktiven virtuellen Bildschirme sowie eine
               Bit-Maske mit dem globalen Status in das Feld vtstate,
               wobei Bit x für den Status von vt x steht (1 bedeutet, daß
               der virtuelle Bildschirm geöffnet ist).

          VTSENDSIG
               Der ioctl-Funktionsaufruf VTSENDSIG gibt ein Signal (im
               Feld vtsignal) zurück, das an eine Bit-Maske für virtuelle
               Bildschirme (in vtstate) übermittelt werden soll.

               Für die ioctl-Funktionsaufrufe VTGETSTATE und VTSENDSIG
               wird folgende Datenstruktur benutzt:

               struct vtstat
                {
                 ushort vactive; /* Aktives vt                            */
                 ushort vsignal; /* Zu übermittelndes Signal (VTSENDSIG) */
                 ushort vstate;  /* Bitmaske für virtuellen Bildschirm
                                     (VTSENDSIG und VTGETSTATE)          */
                };

               Diese Datenstruktur wird in /usr/include/sys/vt.h definiert.

          VTOPENQRY
               Mit ioctl-Funktionsaufruf VTOPENQRY wird der nächste ver-
               fügbare virtuelle Bildschirm abgerufen. Dieser Wert wird im
               letzten Argument des ioctl(2)-Funktionsaufrufs eingestellt.



Seite 14                     Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

     GIOKEYMAP
          Mit diesem Funktionsaufruf kann die vollständige Tastenabbil-
          dungs-Tabelle vom Systemkern abgerufen werden. Die Struktur des
          Arguments ist in /usr/include/sys/kd.h definiert.

     PIOKEYMAP
          Dieser Funktionsaufruf stellt die vollständige Tastenabbildungs-
          Tabelle ein. Die Struktur des Arguments wird in
          /usr/include/sys/kd.h definiert.

     GIOSTRMAP
          Dieser Funktionsaufruf ruft die Tabelle ab, in der die Belegungen
          der Funktionstasten mit Zeichenketten enthalten sind. Die Struk-
          tur des Arguments wird in /usr/include/sys/kd.h definiert.

     PIOSTRMAP
          Dieser Funktionsaufruf stellt die Tabelle ein, in der die Bele-
          gungen der Funktionstasten mit Zeichenketten enthalten sind. Die
          Struktur des Arguments wird in /usr/include/sys/kd.h definiert.

     TIOCKBOF
          Deaktivierung der erweiterten Zeichen-Codes (Standard-Modus).

     TIOCKBON
          Ermöglicht die Übermittlung von Zeichen aus dem erweiterten Zei-
          chensatz an das Benutzer-Programm. Die Zeichen werden als Null-
          Byte (0x00) übermittelt, gefolgt von einem zweiten Byte mit dem
          erweiterten Code des Zeichens. Ein echtes Null-Byte wird in Form
          von zwei aufeinanderfolgenden Null-Bytes übermittelt.

          Bei einer vollständig aktivierten Tastatur kann ein 8-Bit-Code
          generiert werden, indem die ALT-Taste gedrückt gehalten und der
          dreistellige Dezimalwert des Zeichens über den Nummernblock ein-
          gegeben wird. Das Zeichen wird übermittelt, sobald die ALT-Taste
          wieder losgelassen wird.

          Einige über die Tastatur generierte Zeichen haben eine Sonderbe-
          deutung. Über die Taste DELETE wird im Normalbetrieb ein Unter-
          brechungssignal generiert, das an alle Prozesse übermittelt wird,
          die dem betreffenden steuernden Bildschirm zugeordnet sind. Wenn
          die ALT-Taste bei einer vollständig aktivierten Tastatur gedrückt
          gehalten und gleichzeitig die Taste 8 auf der Schreibmaschinenta-
          statur (nicht im Nummernblock) gedrückt wird, wird ein Null-Byte
          sowie 0x7F übermittelt. Dadurch wird dieselbe Funktion wie über
          die Taste DELETE (0x7F) ausgelöst, es sei denn, Sie haben das
          Kommando stty(1) mit der Option -isig aufgerufen.








Seite 15                     Reliant UNIX 5.44               Gedruckt 11/98

keyboard(7)                     (Nur RM400)                     keyboard(7)

     KBENABLED
          Wenn die Tastatur vollständig aktiviert ist (TIOCKBON), wird ein
          Wert ungleich Null zurückgegeben, andernfalls (TIOCKBOF) der Wert
          Null.

     GETFKEY
          Hiermit wird die aktuelle Belegung einer Funktionstaste ermit-
          telt. Bei diesem Funktionsaufruf wird als Argument die Adresse
          einer der folgenden in /usr/include/sys/kd.h definierten Struktu-
          ren angegeben:

             struct fkeyarg
             {
                 unsigned int keynum;
                 char keydef [MAXFK];  /* Kommt von ioctl.h über comcrt.h */
                 char flen;
             };

          Die Nummer der Funktionstaste muß in keynum übergeben werden
          (siehe Struktur arg, oben). Die Zeichenkette, mit der die Taste
          aktuell belegt ist, wird beim Funktionsaufruf ioctl in keydef
          zurückgegegeben und hat die Länge der Zeichenkette in flen.

     SETFKEY
          Weist einer Funktionstaste eine bestimmte Zeichenkette zu. Dieser
          Funktionsaufruf benutzt dieselbe Struktur wie der ioctl-Funk-
          tionsaufruf GETFKEY. Die Nummer der Funktionstaste muß in keynum
          übergeben werden, die Zeichenkette in keydef und die Länge der
          Zeichenkette (Anzahl der Zeichen) in flen.

DATEIEN
     /dev/console

     /dev/vt00-n

     /usr/include/sys/kd.h

SIEHE AUCH
     stty(1), vtlmgr(1M), ioctl(2), ascii(5), console(7), display(7),
     termio(7).














Seite 16                     Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026