Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ terminfo(4) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

stty(1)

tput(1)

tty(1)

tic(1M)

curses(3X)

term(4)

curses(5)

term(5)

terminfo(4)                                                     terminfo(4)

NAME
     terminfo - Datenbasis der Terminal-Eigenschaften

SYNTAX
     /usr/share/lib/terminfo/?/*

BESCHREIBUNG
     terminfo ist eine von tic(1M) generierte Datenbasis, in der die Eigen-
     schaften von Geräten wie z. B. Druckern und Terminals beschrieben wer-
     den. Die Gerätebeschreibungen sind in den terminfo-Quelldateien ent-
     halten und bestehen aus einer Reihe von Eigenschaften, aus quantitati-
     ven Angaben über bestimmte Aspekte des Geräts sowie aus Strings, die
     zu bestimmten Ergebnissen führen. Die terminfo-Datenbasis wird häufig
     durch bildschirmorientierte Anwendungen wie die Programme vi(1) und
     curses(3X) genutzt, außerdem durch eine Reihe von Reliant UNIX Komman-
     dos wie z. B. ls(1) und more(1). Diese Datenbasis ermöglicht die
     Benutzung der unterschiedlichsten Geräte, ohne daß dafür die Programme
     geändert werden müssen.

     Die terminfo-Quelldateien enthalten ein oder mehrere Gerätebeschrei-
     bungen. Jede Beschreibung besteht aus einer Kopfzeile (ab Spalte 1)
     und ein oder mehreren Zeilen, in der die Attribute des jeweiligen
     Geräts enthalten sind. Jede Zeile in einer terminfo-Quelldatei muß mit
     einem Komma (,) abgeschlossen werden. Mit Ausnahme der Kopfzeile müs-
     sen alle Zeilen innerhalb einer terminfo-Quelldatei um ein oder meh-
     rere Leerzeichen (Leer- oder Tabulatorzeichen) eingerückt sein.

     Die Einträge in den terminfo-Quelldateien bestehen aus einer Reihe von
     Feldern, die durch Komma voneinander getrennt sind. Die Leerzeichen,
     die auf jedes Komma folgen, werden ignoriert. Kommata innerhalb der
     Felder müssen durch Voranstellen eines Backslash (\) entwertet werden.
     Das folgende Beispiel zeigt das Format einer terminfo-Quelldatei.

          alias1 | alias2 | ... | aliasn | longname,
          <leerzeichen> am, lines #24,
          <leerzeichen> home=\Eeh,

     Die erste Zeile, die im allgemeinen als Kopfzeile bezeichnet wird, muß
     in Spalte 1 beginnen und mindestens zwei durch vertikalen Strich
     voneinander getrennte Alias-Einträge enthalten. Das letzte Feld in der
     Kopfzeile, die ausführliche Gerätebezeichnung ("longname"), kann ein
     beliebiger String sein. Die Alias-Namen dürfen in der terminfo-Daten-
     basis nur einmal vorkommen und müssen nach den Regeln für die Benen-
     nung von Reliant UNIX Dateien gebildet sein (d. h., sie dürfen bei-
     spielsweise keine Leerzeichen oder Schrägstriche enthalten).










Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Jedem Gerät muß ein Name wie z. B. vt100 zugeordnet sein. Alle Geräte-
     namen (mit Ausnahme der longnames) müssen nach den folgenden Regeln
     gebildet sein: Ein Gerätename darf keine Bindestriche enthalten, es
     sei denn, es werden Suffixe angefügt, die für spezielle Betriebsarten
     stehen.

     Bei diesen speziellen Betriebsarten wird zwischen Betriebsarten der
     Hardware und benutzerdefinierten Betriebsarten unterschieden. Um einem
     bestimmten Gerät eine spezielle Betriebsart zuzuordnen, wird dem Gerä-
     tenamen ein Suffix angefügt, das aus einem Bindestrich und dem Code
     für diese Betriebsart besteht. So steht das Suffix -w (wide) bei-
     spielsweise für "Breite Bildschirmanzeige"; ist dem Gerätenamen dieses
     Suffix angefügt worden, bewirkt es eine 132-Spalten-Anzeige statt der
     standardmäßig benutzten 80-Spalten-Anzeige. Um ein Gerät mit der
     Bezeichnung vt100 in die 130-Spalten-Anzeige umzuschalten, teilen Sie
     ihm somit den Namen vt100-w zu. Abhängig von der benutzten Hardware
     werden die folgenden Suffixe unterstützt:

     _____________________________________________________________________
    | Suffix                     Bedeutung                      Beispiel |
    |____________________________________________________________________|
    | -w       Breite Bildschirmanzeige (mehr als 80 Spalten)   5410-w   |
    | -am      Automatischer Zeilenumbruch (i. a. Standard)     vt100-am |
    | -nam     Kein automatischer Zeilenumbruch                 vt100-nam|
    | -n       Anzahl der Zeilen auf dem Bildschirm             2300-40  |
    | -na      Keine Pfeiltasten (nur lokal benutzen)           c100-na  |
    | -np      Anzahl der Seiten im Speicher                    c100-4p  |
    | -rv      Umkehranzeige                                    4415-rv  |
    |____________________________________________________________________|

     Die Beschreibung für terminfo besteht aus den zwei Teilen GERÄTEEIGEN-
     SCHAFTEN und DRUCKEREIGENSCHAFTEN.

TEIL 1: GERÄTEEIGENSCHAFTEN

     In terminfo werden drei verschiedene Typen von Eigenschaften beschrie-
     ben: boolesche Werte (geben an, ob ein Gerät ein bestimmtes Merkmal
     hat oder nicht hat), numerische Werte (machen quantitative Angaben
     über bestimmte Merkmale eines Geräts) sowie Strings (bewirken die
     Durchführung von bestimmten Funktionen für Geräte).

     Die Tabelle der Eigenschaften enthält folgende Spalten:

     Variable
          Der Name, über den in einem C-Programm (auf der terminfo-Ebene)
          auf eine bestimmte Eigenschaft zugegriffen wird.

     Capname (CN)
          Die Kurzbezeichnung für eine Eigenschaft, die in der terminfo-
          Quelldatei aufgeführt ist. Wird bei der Aktualisierung der Quell-
          datei sowie durch das Kommando tput(1) benutzt.



Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Termcap Code (TCC)
          Eine zweistellige Zeichenfolge, die der Eigenschaft in der
          termcap-Datenbasis zugeordnet ist (beachten Sie, daß termcap
          nicht mehr unterstützt wird).

   Boolesche Werte

Variable                  CN       TCC Beschreibung
________________________________________________________________________________
autoleftmargin          bw       bw  Bei cub1 wird ein Zeilenumbruch von
                                       Spalte 0 zur letzten Spalte durchgeführt
autorightmargin         am       am  Terminal mit automatischem Zeilenumbruch
backcolorerase          bce      be  Bildschirmanzeige wird durch Hintergrund-
                                       farbe gelöscht
canchange                ccc      cc  Terminal kann vorhandene Farbe neu
                                       definieren
ceolstandoutglitch      xhp      xs  Hervorhebung wird durch Überschreiben
                                       nicht gelöscht (hp)
coladdrglitch           xhpa     YA  Nur positive Cursor-Bewegung bei den
                                       Eigenschaften hpa/mhpa
cpichangesres           cpix     YF  Bei Änderung des Zeichenabstands wird
                                       gleichzeitig die Auflösung geändert
crcancelsmicromode     crxm     YB  Durch cr wird der Mikro-Modus ausge-
                                       schaltet
desttabsmagicsmso      xt       xt  Nichterhaltende Tabulatorzeichen, spe-
                                       zielles smso-Zeichen (t1061)
eatnewlineglitch        xenl     xn  Zeilenendezeichen wird nach 80 Spalten
                                       ignoriert (Concept)
eraseoverstrike          eo       eo  Überschriebene Zeichen können durch Leer-
                                       zeichen gelöscht werden
generictype              gn       gn  Allgemeiner Leitungstyp (z. B. Wähllei-
                                       tung)
getmouse                 getm     Gm  Maustastenklicks registrieren
hardcopy                 hc       hc  Hardcopy-Terminal
hardcursor               chts     HC  Cursor ist schwer zu erkennen
hasmetakey              km       km  Meta-Taste vorhanden (Taste SHIFT zum
                                       Setzen des Paritätsbits)
hasprintwheel           daisy    YC  Für Zeichensatzwechsel ist Wechsel des
                                       Typenrads im Drucker notwendig
hasstatusline           hs       hs  Zusätzliche "Statuszeile" vorhanden
huelightnesssaturation  hls      hl  Zur Farbdarstellung wird auf dem
                                       Terminal nur das HLS-Farbsystem
                                       (Tektronix) benutzt
insertnullglitch        in       in  Als Leerzeichen werden Null- und keine
                                       Leerzeichen eingefügt
lpichangesres           lpix     YG  Bei einer Änderung des Zeilenabstands
                                       ändert sich gleichzeitig auch die Auflö-
                                       sung






Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

memoryabove              da       da  Die Bildschirmanzeige kann oberhalb des
                                       Bildschirmrands erhalten bleiben
memorybelow              db       db  Die Bildschirmanzeige kann unterhalb des
                                       Bildschirmrands erhalten bleiben
moveinsertmode          mir      mi  Keine Probleme bei Cursor-Bewegungen im
                                       Einfügemodus
movestandoutmode        msgr     ms  Keine Probleme bei Cursor-Bewegungen im
                                       Hervorhebungsmodus
needsxonxoff            nxon     nx  Keine Verzögerung möglich, aber XON/XOFF
                                       muß benutzt werden
nondestscrollregion    ndscr    ND  Scroll-Bereich ist nicht-destruktiv
nonrevrmcup             nrrmc    NR  smcup führt nicht zur Umkehrung von rmcup
noescctlc               xsb      xb  Beehive (f1=escape, f2=CTRL-C)
nopadchar               npc      NP  Keine Füllzeichen vorhanden
overstrike               os       os  Überschreiben von Zeichen auf Hardcopy-
                                       Terminals
prtrsilent               mc5i     5i  Druckermeldungen erscheinen nicht auf dem
                                       Bildschirm
rowaddrglitch           xvpa     YD  Nur positive Cursor-Bewegungen bei den
                                       Eigenschaften vpa/mvpa
semiautorightmargin    sam      YE  Zeichenausgabe in letzter Spalte führt zu
                                       cr
statuslineescok        eslok    es  Benutzung des Escape-Zeichens in der Sta-
                                       tuszeile möglich
tildeglitch              hz       hz  Hazeltine; es können keine Tilden (~)
                                       gedruckt werden
transparentunderline     ul       ul  Überschreiben eines Zeichens durch den
                                       Unterstrich
xonxoff                  xon      xo  Terminal arbeitet mit dem XON/XOFF-
                                       Protokoll
























Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

   Numerische Werte

Variable                  CN       TCC Beschreibung
________________________________________________________________________________
bitimageentwining       bitwin   Yo  Anzahl der Durchläufe für jede Bit-Map-
                                       Reihe
bitimagetype            bitype   Yp  Rasterdaten-Typ
buffercapacity           bufsz    Ya  Anzahl der Bytes, die vor dem Ausdrucken
                                       im Puffer gespeichert werden
buttons                   btns     BT  Anzahl der Maustasten
columns                   cols     co  Anzahl der Spalten pro Zeile
dothorzspacing          spinh    Yc  Punktabstand in horizontaler Richtung
                                       (Punkte pro Zoll)
dotvertspacing          spinv    Yb  Anzahl der Nadeln in vertikaler Richtung
                                       (Nadeln pro Zoll)
inittabs                 it       it  Tabstopps standardmäßig alle # Leer-
                                       zeichen
labelheight              lh       lh  Anzahl der Zeilen pro Label
labelwidth               lw       lw  Anzahl der Spalten pro Label
lines                     lines    li  Anzahl der Zeilen pro (Bildschirm-)Seite
linesofmemory           lm       lm  Anzahl der Zeilen im Speicher falls
                                       > lines; 0 steht für variable Zeilenzahl
magiccookieglitch       xmc      sg  Anzahl der Leerzeichen, die nach smso
                                       oder rmso übrig bleiben
maximumwindows           wnum     MW  Maximale Anzahl definierbarer Fenster
maxattributes            ma       ma  Maximale Anzahl von Video-Attributen, die
                                       der Bildschirm darstellen kann
maxcolors                colors   Co  Maximale Anzahl der Farben auf dem
                                       Bildschirm
maxmicroaddress         maddr    Yd  Maximalwert in micro...address
maxmicrojump            mjump    Ye  Maximalwert in parm...micro
maxpairs                 pairs    pa  Maximale Anzahl der Farbkombinationen
                                       auf dem Bildschirm
microcolsize            mcs      Yf  Schrittweite der Zeichen im Mikro-Modus
microlinesize           mls      Yg  Zeilen-Schrittweite im Mikro-Modus
nocolorvideo            ncv      NC  Bildschirmattribute, die nicht mit Farb-
                                       attributen kombiniert werden können
numberofpins            npins    Yh  Anzahl der Nadeln im Druckkopf
numlabels                nlab     Nl  Anzahl der Labels auf dem Bildschirm
                                       (mindestens 1)
outputreschar           orc      Yi  Horizontale Auflösung in Einheiten pro
                                       Zeichen
outputreshorzinch      orhi     Yk  Horizontale Auflösung in Einheiten pro
                                       Zoll
outputresline           orl      Yj  Vertikale Auflösung in Einheiten pro
                                       Zeile
outputresvertinch      orvi     Yl  Vertikale Auflösung in Einheiten pro Zoll
paddingbaudrate         pb       pb  Niedrigste Baudrate, wenn Füllzeichen
                                       notwendig sind
virtualterminal          vt       vt  Nummer des virtuellen Bildschirms




Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

widecharsize            widcs    Yn  Schrittweite beim Drucken in Breitschrift
widthstatusline         wsl      ws  Anzahl der Spalten in der Statuszeile

   Strings

Variable                  CN       TCC Beschreibung
________________________________________________________________________________
acschars                 acsc     ac  Zeichensatzpaare aAbBcC für Graphik-
                                       darstellung
altscancodeesc          scesa    S8  Alternativ-Escape-Sequenz für Scancode-
                                       Emulation (Standard: für vt100)
backtab                  cbt      bt  Rücktab
bell                      bel      bl  Akustisches Signal (Glocke)
bitimagecarriagereturn bicr     Yv  Sprung an den Anfang derselben Zeile
bitimagenewline         binel    Zz  Wechsel in nächste Zeile des Rasters
bitimagerepeat          birep    Zy  Rasterzelle 1 oder 2 Mal wiederholen
carriagereturn           cr       cr  Carriage return
changecharpitch         cpi      ZA  Anzahl der Zeichen pro Zoll ändern
changelinepitch         lpi      ZB  Anzahl der Zeilen pro Zoll ändern
changereshorz           chr      ZC  Horizontale Auflösung ändern
changeresvert           cvr      ZD  Vertikale Auflösung ändern
changescrollregion      csr      cs  Wechsel zu Zeilen #1 bis #2 (vt100)
charpadding              rmp      rP  Dieselbe Funktion wie ip, aber im
                                       Ersetzungsmodus
charsetnames            csnm     Zy  Zeichensatznamen auflisten
clearalltabs            tbc      ct  Sämtliche Tabstopps löschen
clearmargins             mgc      MC  Sämtliche Ränder löschen (oben, unten,
                                       seitlich)
clearscreen              clear    cl  Bildschirm löschen und Cursor in
                                       Spalte 1 der ersten Zeile
clrbol                   el1      cb  Sämtliche Zeichen bis zum Zeilenanfang
                                       einschließlich des Zeichens auf Spalte 1
                                       löschen
clreol                   el       ce  Sämtliche Zeichen bis zum Zeilenende
                                       löschen
clreos                   ed       cd  Sämtliche Zeichen bis zum Ende der Bild-
                                       schirmanzeige löschen
codesetinit             csin     ci  Init-Folge für Mehrfach-Codesätze
colornames               colornm  Yw  Name für Farbe #1 angeben
columnaddress            hpa      ch  Horizontale Position, absolut
commandcharacter         cmdch    CC  Terminal-spezifisch einstellbares
                                       Kommando-Zeichen
createwindow             cwin     CW  Fenster #1 definieren, um von #2,#3 nach
                                       #4,#5 zu gehen
cursoraddress            cup      cm  Cursor in Spalte #1, Spalte #2
cursordown               cud1     do  Sprung in nächste Zeile
cursorhome               home     ho  Cursor in erste Spalte der ersten Zeile
                                       (falls cup nicht angegeben wurde)
cursorinvisible          civis    vi  Darstellung des Cursors ausblenden
cursorleft               cub1     le  Cursor um ein Leerzeichen zurück




Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

cursormemaddress        mrcup    CM  Speicherbezogene Cursor-Adressierung
cursornormal             cnorm    ve  Normaldarstellung des Cursors
                                       (vs/vi aufheben)
cursorright              cuf1     nd  Cursor um ein Leerzeichen nach rechts,
                                       ohne das jeweilige Zeichen zu löschen
                                       (Cursor bzw. Druckkopf nach rechts)
cursortoll              ll       ll  Cursor in erste Spalte der letzten Zeile
                                       (falls cup nicht angegeben wurde)
cursorup                 cuu1     up  Cursor in darüberliegende Zeile
cursorvisible            cvvis    vs  Cursor sehr gut erkennbar machen
definebitimageregion   defbi    Yx  Rechteckigen Rasterdaten-Bereich
                                       definieren
definechar               defc     ZE  Zeichen in einem Zeichensatz definieren
deletecharacter          dch1     dc  Zeichen löschen
deleteline               dl1      dl  Zeile löschen
devicetype               devt     dv  Unterstützte Landessprache bzw. unter-
                                       stützten Codesatz anzeigen
dialphone                dial     DI  Wähle Telefon-Nummer #1
displaypcchar           dispc    S1  PC-Zeichen anzeigen
disstatusline           dsl      ds  Statuszeile ausblenden
downhalfline            hd       hd  Cursor um eine halbe Zeile nach unten
                                       (Zeilenvorschub um ½ Zeile)
enaacs                   enacs    eA  Alternativ-Zeichensatz aktivieren
endbitimageregion      endbi    Yy  Ende eines Rasterdaten-Bereichs angeben
enteraltcharsetmode    smacs    as  Alternativ-Zeichensatz aufrufen
enterammode             smam     SA  Automatische Randeinstellungen ein-
                                       schalten
enterblinkmode          blink    mb  Blinken einschalten
enterboldmode           bold     md  Fette (extra helle) Zeichendarstellung
                                       einschalten
entercamode             smcup    ti  String für den Anfang von Program-
                                       men, die cup benutzen
enterdeletemode         smdc     dm  Löschmodus (einschalten)
enterdimmode            dim      mh  Halbhell-Modus einschalten
enterdoublewidemode     swidm    ZF  Drucken in Breitschrift einschalten
enterdraftquality       sdrfq    ZG  Drucken in Entwurfsqualität
enterhorizontalhlmode  ehhlm        Horizontalen Hervorhebungsmodus ein-
                                       schalten
enterinsertmode         smir     im  Einfügemodus (einschalten)
enteritalicsmode        sitm     ZH  Kursivschrift einschalten
enterleftwardmode       slm      ZI  Bewegung des Druckkopfs nach links
                                       aktivieren
enterlefthlmode        elhlm        Linken Hervorhebungsmodus einschalten
enterlowhlmode         elohlm       Unteren Hervorhebungsmodus einschalten
entermicromode          smicm    ZJ  Möglichkeit zur Durchführung von Mikro-
                                       Schritten einschalten
enternearletterquality snlq     ZK  Drucken in NLQ-Qualität aktivieren
enternormalquality      snrmq    ZL  Drucken in normaler Druckqualität
                                       aktivieren





Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

enterpccharsetmode     smpch    S2  Modus zur Anzeige von PC-Zeichen
                                       aktivieren
enterprotectedmode      prot     mp  Geschützten Modus aktivieren
enterreversemode        rev      mr  Umkehrdarstellung aktivieren
enterrighthlmode       erhlm        Rechten Hervorhebungsmodus einschalten
enterscancodemode       smsc     S4  PC-Scancode-Modus aktivieren
entersecuremode         invis    mk  Blank-Modus aktivieren (Zeichen un-
                                       sichtbar)
entershadowmode         sshm     ZM  Schattendruck einschalten
enterstandoutmode       smso     so  Hervorhebungsmodus einschalten
entersubscriptmode      ssubm    ZN  Tiefgestelltes Zeichen drucken
entersuperscriptmode    ssupm    ZO  Hochgestelltes Zeichen drucken
entertophlmode         ethlm        Oberen Hervorhebungsmodus einschalten
enterunderlinemode      smul     us  Zeichen unterstreichen
enterupwardmode         sum      ZP  Bewegung des Druckkopfs nach oben
enterverticalhlmode    evhlm        Vertikalen Hervorhebungsmodus einschalten
enterxonmode            smxon    SX  XON/XOFF-Protokoll einschalten
erasechars               ech      ec  #1 Zeichen löschen
exitaltcharsetmode     rmacs    ae  Alternativ-Zeichensatz deaktivieren
exitammode              rmam     RA  Automatische Randeinstellungen
                                       deaktivieren
exitattributemode       sgr0     me  Alle Attribute deaktivieren
exitcamode              rmcup    te  String zur Beendigung von Program-
                                       men, die cup benutzen
exitdeletemode          rmdc     ed  Löschmodus deaktivieren
exitdoublewidemode      rwidm    ZQ  Drucken in Breitschrift deaktivieren
exitinsertmode          rmir     ei  Einfügemodus deaktivieren
exititalicsmode         ritm     ZR  Kursivschrift deaktivieren
exitleftwardmode        rlm      ZS  Druckkopf-Bewegung nach links deakti-
                                       vieren
exitmicromode           rmicm    ZT  Drucken in Mikro-Schritten deaktivieren
exitpccharsetmode      rmpch    S3  Anzeige von PC-Zeichen deaktivieren
exitscancodemode        rmsc     S5  PC-Scancode-Modus deaktivieren
exitshadowmode          rshm     ZU  Schatten-Drucken aktivieren
exitstandoutmode        rmso     se  Hervorhebungsmodus deaktivieren
exitsubscriptmode       rsubm    ZV  Zeichen tiefstellen AUS
exitsuperscriptmode     rsupm    ZW  Zeichen hochstellen AUS
exitunderlinemode       rmul     ue  Unterstreichen AUS
exitupwardmode          rum      ZX  Druckkopf-Bewegung nach oben deaktivieren
exitxonmode             rmxon    RX  XON/XOFF-Protokoll deaktivieren
fixedpause               pause    PA  Pause für 2-3 Sekunden
flashhook                hook     fh  Schalter sichtbar machen
flashscreen              flash    vb  Akustisches Signal (ohne Cursor-Bewe-
                                       gung)
formfeed                 ff       ff  Seitenauswurf auf Hardcopy-Terminal
fromstatusline          fsl      fs  Statuszeile verlassen
gotowindow               wingo    WG  Gehe nach Fenster #1
hangup                    hup      HU  Telefonleitung unterbrechen
initializecolor          initc    Ic  Farbdefinition initialisieren
initializepair           initp    Ip  Farbkombination initialisieren




Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

init1string              is1      i1  Inititialisierungs-String für Drucker
                                       oder Terminal
init2string              is2      is  Inititialisierungs-String für Drucker
                                       oder Terminal
init3string              is3      i3  Inititialisierungs-String für Drucker
                                       oder Terminal
initfile                 if       if  Name der Initialisierungsdatei
initprog                 iprog    iP  Name des Programms zur Initialisierung
insertcharacter          ich1     ic  Zeichen einfügen
insertline               il1      al  Leerzeile einfügen
insertpadding            ip       ip  Füllzeichen hinter eingefügtem Zeichen
                                       einfügen

     Die Strings, die mit key beginnen, werden durch das Drücken bestimm-
     ter Tasten generiert. Die Beschreibungen für key enthalten das in
     curses.h [siehe curses(5)] definierte Makro für den Code, der vom
     curses-Unterprogramm getch() beim Drücken der jeweiligen Taste zurück-
     gegeben wird [siehe getch(3X)].

Variable                  CN       TCC Beschreibung
________________________________________________________________________________
keypadlocal              rmkx     ke  Tastenblock deaktivieren
keypadxmit               smkx     ks  Tastenblock auf dem Terminal aktivieren
keya1                    ka1      K1  KEYA1, obere linke Taste des Tasten-
                                       blocks
keya3                    ka3      K3  KEYA3, obere rechte Taste des Tasten-
                                       felds
keyb2                    kb2      K2  KEYB2, Mitte des Tastenblocks
keybackspace             kbs      kb  KEYBACKSPACE, über Taste BACKSPACE
                                       generiert
keybeg                   kbeg     @1  KEYBEG, über Taste BEG(inning) gene-
                                       riert
keybtab                  kcbt     kB  KEYBTAB, über Taste BACK-TAB generiert
keyc1                    kc1      K4  KEYC1, untere linke Taste des Tasten-
                                       felds
keyc3                    kc3      K5  KEYC3, untere rechte Taste des Tasten-
                                       felds
keycancel                kcan     @2  KEYCANCEL, über Taste CANCEL generiert
keycatab                 ktbc     ka  KEYCATAB, über Taste CLEAR-ALL-TABS
                                       generiert
keyclear                 kclr     kC  KEYCLEAR, über Taste CLEAR-SCREEN oder
                                       Erase generiert
keyclose                 kclo     @3  KEYCLOSE, über Taste CLOSE generiert
keycommand               kcmd     @4  KEYCOMMAND, über Taste CMD generiert
keycopy                  kcpy     @5  KEYCOPY, über Taste COPY generiert
keycreate                kcrt     @6  KEYCREATE, über Taste CREATE generiert
keyctab                  kctab    kt  KEYCTAB, über Taste CLEAR-TAB generiert
keydc                    kdch1    kD  KEYDC, über Taste DELETE-CHARACTER
                                       generiert





Seite 9                      Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

keydl                    kdl1     kL  KEYDL, über Taste DELETE-LINE generiert
keydown                  kcud1    kd  KEYDOWN, über Taste DOWN-ARROW gene-
                                       riert
keyeic                   krmir    kM  KEYEIC, über rmir oder smir im Einfüge-
                                       modus generiert
keyend                   kend     @7  KEYEND, über Taste END generiert
keyenter                 kent     @8  KEYENTER, über Taste ENTER/SEND gene-
                                       riert
keyeol                   kel      kE  KEYEOL, über Taste CLEAR-TO-END-OF-LINE
                                       generiert
keyeos                   ked      kS  KEYEOS, über Taste CLEAR-TO-END-OF-
                                       SCREEN generiert
keyexit                  kext     @9  KEYEXIT, über Taste EXIT generiert
keyf0                    kf0      k0  KEYF(0), über Funk.-taste f0 generiert
keyf1                    kf1      k1  KEYF(1), über Funk.-taste f1 generiert
  .                       .        .   .
  .                       .        .   .
  .                       .        .   .
keyf62                   kf62     Fq  KEYF(62), über Funk.-taste f62 gene-
                                       riert
keyf63                   kf63     Fr  KEYF(63), über Funk.-taste f63 gene-
                                       riert
keyfind                  kfnd     @0  KEYFIND, über Taste FIND generiert
keyhelp                  khlp     %1  KEYHELP, über Taste HELP generiert
keyhome                  khome    kh  KEYHOME, über Taste HOME generiert
keyic                    kich1    kI  KEYIC, über Taste INS-CHAR/ENTER
                                       INS-MODE generiert
keyil                    kil1     kA  KEYIL, über Taste INSERT-LINE generiert
keyleft                  kcub1    kl  KEYLEFT, über Taste LEFT-ARROW gene-
                                       riert
keyll                    kll      kH  KEYLL, über Taste HOME-DOWN generiert
keymark                  kmrk     %2  KEYMARK, über Taste MARK generiert
keymessage               kmsg     %3  KEYMESSAGE, über Taste MESSAGE gene-
                                       riert
keymouse                 kmous    Km  0631, Maustastenklick ist aufgetreten
keymove                  kmov     %4  KEYMOVE, über Taste MOVE generiert
keynext                  knxt     %5  KEYNEXT, über Taste NEXT-OBJECT gene-
                                       riert
keynpage                 knp      kN  KEYNPAGE, über Taste NEXT-PAGE gene-
                                       riert
keyopen                  kopn     %6  KEYOPEN, über Taste OPEN generiert
keyoptions               kopt     %7  KEYOPTIONS, über Taste OPTIONS gene-
                                       riert
keyppage                 kpp      kP  KEYPPAGE, über Taste PREVIOUS-PAGE
                                       generiert
keyprevious              kprv     %8  KEYPREVIOUS, über Taste PREVIOUS-OBJECT
                                       generiert
keyprint                 kprt     %9  KEYPRINT, über Taste PRINT oder COPY
                                       generiert
keyredo                  krdo     %0  KEYREDO, über Taste REDO generiert




Seite 10                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

keyreference             kref     &1  KEYREFERENCE, über Taste REF(erence)
                                       generiert
keyrefresh               krfr     &2  KEYREFRESH, über Taste REFRESH gene-
                                       riert
keyreplace               krpl     &3  KEYREPLACE, über Taste REPLACE gene-
                                       riert
keyrestart               krst     &4  KEYRESTART, über Taste RESTART gene-
                                       riert
keyresume                kres     &5  KEYRESUME, über Taste RESUME generiert
keyright                 kcuf1    kr  KEYRIGHT, über Taste RIGHT-ARROW gene-
                                       riert
keysave                  ksav     &6  KEYSAVE, über Taste SAVE generiert
keysbeg                  kBEG     &9  KEYSBEG, über Tasten SHIFT BEGINNING
                                       generiert
keyscancel               kCAN     &0  KEYSCANCEL, über Tasten SHIFT CANCEL
                                       generiert
keyscommand              kCMD     *1  KEYSCOMMAND, über Tasten SHIFT COMMAND
                                       generiert
keyscopy                 kCPY     *2  KEYSCOPY, über Tasten SHIFT COPY gene-
                                       riert
keyscreate               kCRT     *3  KEYSCREATE, über Tasten SHIFT CREATE
                                       generiert
keysdc                   kDC      *4  KEYSDC, über Tasten SHIFT DELETE-CHAR
                                       generiert
keysdl                   kDL      *5  KEYSDL, über Tasten SHIFT DELETE-LINE
                                       generiert
keyselect                kslt     *6  KEYSELECT, über Taste SELECT gene-
                                       riert
keysend                  kEND     *7  KEYSEND, über Tasten SHIFT END gene-
                                       riert
keyseol                  kEOL     *8  KEYSEOL, über Tasten SHIFT CLEAR-LINE
                                       generiert
keysexit                 kEXT     *9  KEYSEXIT, über Tasten SHIFT EXIT gene-
                                       riert
keysf                    kind     kF  KEYSF, über Taste SCROLL-FORWARD/DOWN
                                       generiert
keysfind                 kFND     *0  KEYSFIND, über Tasten SHIFT FIND gene-
                                       riert
keyshelp                 kHLP     #1  KEYSHELP, über Tasten SHIFT HELP gene-
                                       riert
keyshome                 kHOM     #2  KEYSHOME, über Tasten SHIFT HOME gene-
                                       riert
keysic                   kIC      #3  KEYSIC, über Tasten SHIFT INPUT gene-
                                       riert
keysleft                 kLFT     #4  KEYSLEFT, über Tasten SHIFT LEFT-ARROW
                                       generiert
keysmessage              kMSG     %a  KEYSMESSAGE, über Tasten SHIFT MESSAGE
                                       generiert
keysmove                 kMOV     %b  KEYSMOVE, über Tasten SHIFT MOVE gene-
                                       riert




Seite 11                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

keysnext                 kNXT     %c  KEYSNEXT, über Tasten SHIFT NEXT gene-
                                       riert
keysoptions              kOPT     %d  KEYSOPTIONS, über Tasten SHIFT OPTIONS
                                       generiert
keysprevious             kPRV     %e  KEYSPREVIOUS, über Tasten SHIFT PREV
                                       generiert
keysprint                kPRT     %f  KEYSPRINT, über Tasten SHIFT PRINT
                                       generiert
keysr                    kri      kR  KEYSR, über Taste SCROLL-BACKWARD/UP
                                       generiert
keysredo                 kRDO     %g  KEYSREDO, über Tasten SHIFT REDO gene-
                                       riert
keysreplace              kRPL     %h  KEYSREPLACE, über Tasten SHIFT REPLACE
                                       generiert
keysright                kRIT     %i  KEYSRIGHT, über Tasten SHIFT RIGHT-ARROW
                                       generiert
keysrsume                kRES     %j  KEYSRSUME, über Tasten SHIFT RESUME
                                       generiert
keyssave                 kSAV     !1  KEYSSAVE, über Tasten SHIFT SAVE gene-
                                       riert
keyssuspend              kSPD     !2  KEYSSUSPEND, über Tasten SHIFT SUSPEND
                                       generiert
keystab                  khts     kT  KEYSTAB, über Taste SET-TAB generiert
keysundo                 kUND     !3  KEYSUNDO, über Tasten SHIFT UNDO gene-
                                       riert
keysuspend               kspd     &7  KEYSUSPEND, über Taste SUSPEND generiert
keyundo                  kund     &8  KEYUNDO, über Taste UNDO generiert
keyup                    kcuu1    ku  KEYUP, über Taste UP-ARROW generiert
labelformat              fln      Lf  Label-Format
labeloff                 rmln     LF  "Soft-"Beschriftungen AUS
labelon                  smln     LO  "Soft-"Beschriftungen EIN
labf0                    lf0      l0  Beschriftung der Funktionstaste f0,
                                       falls nicht f0
labf1                    lf1      l1  Beschriftung der Funktionstaste f1,
                                       falls nicht f1
labf10                   lf10     la  Beschriftung der Funktionstaste f10,
                                       falls nicht f10
labf2                    lf2      l2  Beschriftung der Funktionstaste f2,
                                       falls nicht f2
labf3                    lf3      l3  Beschriftung der Funktionstaste f3,
                                       falls nicht f3
labf4                    lf4      l4  Beschriftung der Funktionstaste f4,
                                       falls nicht f4
labf5                    lf5      l5  Beschriftung der Funktionstaste f5,
                                       falls nicht f5
labf6                    lf6      l6  Beschriftung der Funktionstaste f6,
                                       falls nicht f6
labf7                    lf7      l7  Beschriftung der Funktionstaste f7,
                                       falls nicht f7





Seite 12                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

labf8                    lf8      l8  Beschriftung der Funktionstaste f8,
                                       falls nicht f8
labf9                    lf9      l9  Beschriftung der Funktionstaste f9,
                                       falls nicht f9
metaoff                  rmm      mo  "Meta-Modus" AUS
metaon                   smm      mm  "Meta-Modus" EIN (8. Bit)
microcolumnaddress      mhpa     ZY  Wie columnaddress für Mikro-Justierung
microdown                mcud1    ZZ  Wie cursordown für Mikro-Justierung
microleft                mcub1    Za  Wie cursorleft für Mikro-Justierung
microright               mcuf1    Zb  Wie cursorright für Mikro-Justierung
microrowaddress         mvpa     Zc  Wie rowaddress für Mikro-Justierung
microup                  mcuu1    Zd  Wie cursorup für Mikro-Justierung
mouseinfo                minfo    Mi  Maus-Status-Information
newline                   nel      nw  Neue Zeile (dieselbe Funktion wie cr,
                                       gefolgt von lf)
orderofpins             porder   Ze  Bildet Software-Bits auf Nadeln im Druck-
                                       kopf ab
origcolors               oc       oc  Standard-Farb(kombination)en einstellen
origpair                 op       op  Ursprüngliche Standard-Farbkombination
                                       einstellen
padchar                  pad      pc  Füllzeichen (statt Null)
parmdch                  dch      DC  #1 Zeichen löschen
parmdeleteline          dl       DL  #1 Zeile(n) löschen
parmdowncursor          cud      DO  Um #1 Zeile(n) nach unten
parmdownmicro           mcud     Zf  Wie parmdowncursor für Mikro-Justierung
parmich                  ich      IC  #1 Leerzeichen einfügen
parmindex                indn     SF  Scrolling um #1 Zeile(n) nach unten
parminsertline          il       AL  #1 Leerzeile(n) einfügen
parmleftcursor          cub      LE  Cursor um #1 Leerstelle nach links
parmleftmicro           mcub     Zg  Wie parmleftcursor für Mikro-Justierung
parmrightcursor         cuf      RI  Cursor um #1 Leerstelle nach rechts
parmrightmicro          mcuf     Zh  Wie parmrightcursor für Mikro-Justie-
                                       rung
parmrindex               rin      SR  Scrolling um #1 Zeile nach oben
parmupcursor            cuu      UP  Cursor #1 Zeile(n) nach oben
parmupmicro             mcuu     Zi  Wie parmupcursor für Mikro-Justierung
pctermoptions           pctrm    S6  PC-Terminal-Optionen
pkeykey                  pfkey    pk  Funktionstaste #1 für die Ausgabe des
                                       Strings #2 programmieren
pkeylocal                pfloc    pl  Funktionstaste #1 für die Ausführung des
                                       Strings #2 programmieren
pkeyplab                 pfxl     xl  Taste #1 für die Übertragung von String
                                       #2 und für die Anzeige des Strings #3
                                       programmieren
pkeyxmit                 pfx      px  Funktionstaste #1 für die Übertragung des
                                       Strings #2 programmieren
plabnorm                 pln      pn  Label #1 für die Anzeige von String #2
                                       programmieren
printscreen              mc0      ps  Inhalt der Bildschirmanzeige ausdrucken
prtrnon                  mc5p     pO  Drucker für #1 Byte(s) einschalten




Seite 13                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

prtroff                  mc4      pf  Drucker ausschalten
prtron                   mc5      po  Drucker einschalten
pulse                     pulse    PU  Pulswahl auswählen
quickdial                qdial    QD  Wähle Telefon-Nummer #1, ohne Kontrolle
                                       des Wahlfortschritts
removeclock              rmclk    RC  Tageszeit-Uhr entfernen
repeatchar               rep      rp  Zeichen #1 #2mal wiederholen
reqforinput             rfi      RF  Nächstes Eingabezeichen übermitteln
                                       (für ptys)
reqmousepos             reqmp    RQ  Abfrage der Maus-Position
reset1string             rs1      r1  Terminal vollständig in "Sane"-Modi
                                       zurücksetzen
reset2string             rs2      r2  Terminal vollständig in "Sane"-Modi
                                       zurücksetzen
reset3string             rs3      r3  Terminal vollständig in "Sane"-Modi
                                       zurücksetzen
resetfile                rf       rf  Name der Datei mit Reset-String
restorecursor            rc       rc  Cursor auf die in sc abgespeicherte
                                       Position zurücksetzen
rowaddress               vpa      cv  Vertikale Position, absolut
savecursor               sc       sc  Cursor-Position abspeichern
scancodeescape           scesc    S7  Fluchtsymbol für Scancode-Emulation
scrollforward            ind      sf  Text-Scrolling nach oben
scrollreverse            ri       sr  Text-Scrolling nach unten
selectcharset           scs      Zj  Zeichensatz auswählen
set0desseq              s0ds     s0  Wechsel zu Codesatz 0 (EUC-Satz 0,
                                       ASCII)
set1desseq              s1ds     s1  Wechsel zu Codesatz 1
set2desseq              s2ds     s2  Wechsel zu Codesatz 2
set3desseq              s3ds     s3  Wechsel zu Codesatz 3
setattributes            sgr      sa  Anzeige-Attribute #1-#9 definieren
setaattributes          sgr1         Definiere zweiten Satz von Video-Attri-
                                       buten #1-#6
setabackground          setab    AB  Hintergrundtabelle mit ANSI-Escape-
                                       Sequenz einstellen
setaforeground          setaf    AF  Hintergrundfarbe mit ANSI-Escape-Sequenz
                                       einstellen
setbackground            setb     Sb  Hintergrundfarbe einstellen
setbottommargin         smgb     Zk  Unteren Rand auf aktuelle Zeile setzen
setbottommarginparm    smgbp    Zl  Unteren Rand in einem Abstand von #1
                                       oder #2 Zeilen von unten
setclock                 sclk     SC  Uhr auf Stunden (#1), Minuten (#2),
                                       Sekunden (#3) einstellen
setcolorband            setcolor Yz  Wechsel zu Farbband #1
setcolorpair            scp      sp  Aktuelle Farbkombination einstellen
setforeground            setf     Sf  Aktuelle Vordergrundfarbe einstellen
setleftmargin           smgl     ML  Linken Rand in aktueller Zeile
                                       einstellen
setleftmarginparm      smglp    Zm  Linken (rechten) Rand in Spalte #1 (#2)
                                       einstellen




Seite 14                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

setlrmargin             smglr    ML  Rechten und linken Rand einstellen
setpagelength           slines   YZ  Seitenlänge auf #1 Zeilen einstellen
setpgleninch            slength  YI  Seitenlänge auf #1 Hundertstel eines
                                       Inch einstellen
setrightmargin          smgr     MR  Rechten Rand in aktueller Spalte
                                       einstellen
setrightmarginparm     smgrp    Zn  Rechten Rand in Spalte #1 einstellen
settab                   hts      st  Tabulatorstopp für alle Zeilen in
                                       aktueller Spalte setzen
settbmargin             smgtb    MT  Oberen und unteren Rand einstellen
settopmargin            smgt     Zo  Oberen Rand in aktueller Zeile ein-
                                       stellen
settopmarginparm       smgtp    Zp  Oberen (unteren) Rand in Zeile #1 (#2)
                                       einstellen
setwindow                wind     wi  Das aktuelle Fenster enthält die Zeilen
                                       #1-#2 und die Spalten #3-#4
startbitimage           sbim     Zq  Ausdrucken von Rastergrafiken aktivieren
startcharsetdef        scsd     Zr  Definition eines Zeichensatzes starten
stopbitimage            rbim     Zs  Ausdrucken von Rastergrafiken deaktivie-
                                       ren
stopcharsetdef         rcsd     Zt  Definition eines Zeichensatzes beenden
subscriptcharacters      subcs    Zu  Liste der "hochstellbaren" Zeichen
superscriptcharacters    supcs    Zv  Liste der "tieferstellbaren" Zeichen
tab                       ht       ta  Tabulatorsprung zu nächstem hardwaremäßig
                                       eingestellten Tabstopp (alle acht Leer-
                                       zeichen)
thesecausecr            docr     Zw  Das Drucken eines dieser Zeichen führt
                                       zu cr
tone                      tone     TO  Wahltöne auswählen
tostatusline            tsl      ts  Sprung in Statuszeile, Spalte #1
underlinechar            uc       uc  Ein Zeichen unterstreichen und Cursor
                                       hinter dieses Zeichen setzen
uphalfline              hu       hu  Cursor um eine halbe Zeile nach oben
                                       (Umgekehrter Zeilenvorschub um ½ Zeile)
user0                     u0       u0  Benutzer-String 0
user1                     u1       u1  Benutzer-String 1
user2                     u2       u2  Benutzer-String 2
user3                     u3       u3  Benutzer-String 3
user4                     u4       u4  Benutzer-String 4
user5                     u5       u5  Benutzer-String 5
user6                     u6       u6  Benutzer-String 6
user7                     u7       u7  Benutzer-String 7
user8                     u8       u8  Benutzer-String 8
user9                     u9       u9  Benutzer-String 9
waittone                 wait     WA  Auf Wahlton warten
xoffcharacter            xoffc    XF  X-off-Zeichen
xoncharacter             xonc     XN  X-on-Zeichen
zeromotion               zerom    Zx  Keine Bewegung für das nachfolgende
                                       Zeichen





Seite 15                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

   Beispieleintrag
     Der nachfolgende Eintrag, der das Terminal 610 von AT&T beschreibt,
     gehörte zum Zeitpunkt der Erstellung dieses Handbuchs zu den komplexe-
     ren Einträgen der Datei terminfo.

          610|610bct|ATT610|att610|AT&T610;80column;98key keyboard
             am, eslok, hs, mir, msgr, xenl, xon,
             cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
             acsc="aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
             bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
             civis=\E[?25l, clear=\E[H\E[J, cnorm=\E[?25h\E[?12l,
             cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\b,
             cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
             cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
             cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
             dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
             flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=\t,
             ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, .ind=\ED$<9>,
             invis=\E[8m,
             is1=\E[8;0 | \E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
             is2=\E[0m^O, is3=\E(B\E)0, kLFT=\E[\s@, kRIT=\E[\sA,
             kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
             kcuf1=\E[C, kcuu1=\E[A, kf1=\EOc, kf10=\ENp,
             kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf2=\EOd,
             kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi,
             kf8=\EOj, kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T,
             ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
             pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t\s\s\sF%p1%1d\s\s\s\s\s
          \s\s\s\s\s\s%;%p2%s,
             pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
             ri=\EM, rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m,
             rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
             sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;
          %?%p3%p1% | %t;7%;%?%p7%t;8%;m%?%p9%t^N%e^O%;,
             sgr0=\E[m^O, smacs=^N, smir=\E[4h, smln=\E[p,
             smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,

   Beschreibung der Eigenschaften im Beispieleintrag
     Der Beispieleintrag zeigt das Format für alle drei in terminfo
     beschriebenen Eigenschaften: boolesche Werte, numerische Werte und
     Strings. Jeder Eintrag muß in der terminfo-Quelldatei durch ein Komma
     beendet werden; dies gilt auch für den Eintrag mit der letzten Eigen-
     schaft. Auf die Eigenschaften wird in den terminfo-Quelldateien über
     ihre Namen (Spalte CN in den oben aufgeführten Tabellen) Bezug genom-
     men.









Seite 16                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Boolesche Werte

     Boolesche Werte werden einfach über ihre "capnames" (Eigenschaftsna-
     men) angegeben, die durch Komma voneinander getrennt sind.

     Eine boolesche Funktion ist wahr, wenn ihr "capname" im Eintrag vor-
     liegt, und unwahr, wenn ihr "capname" nicht im Eintrag vorliegt.

     Das Zeichen @, gefolgt von einem "capname", wird verwendet, um eine
     boolesche Funktion in den weiter unten im Abschnitt 1-16: "Ähnliche
     Terminals" beschriebenen Situationen explizit als unwahr zu deklarie-
     ren.

     Numerische Werte

     Numerischen Werten wird das Zeichen # sowie eine positive Ganzzahl
     angefügt. So wurde in obigem Beispiel cols (das für die Anzahl der
     Spalten auf einem Gerät steht) der Wert 80 für das Terminal AT&T 610
     zugeordnet (numerische Werte können im Dezimal-, Oktal- oder Hexadezi-
     malformat angegeben werden, wobei die bekannten Regeln der Sprache C
     gelten).

     Strings

     Die Strings schließlich wie z. B. el (clear to end of line) werden
     über einen zwei- bis fünfstelligen Eigenschaftsnamen ("Capname") ange-
     geben, auf den ein Gleichheitszeichen (=) sowie ein String folgt, der
     durch das jeweils nächststehende Komma abgeschlossen wird. Bei einer
     derartigen Eigenschaft kann eine Verzögerung in Millisekunden angege-
     ben werden, der ein Dollar-Zeichen ($) vorangestellt ist und die in
     spitze Klammern eingeschlossen ist; ein Beispiel für eine derartige
     Eigenschaft ist el=\EK$<3>. In der curses-Implementierung werden Ver-
     zögerungen durch die Ausgabe einer geeigneten Anzahl von systemdefi-
     nierten Füllzeichen an das Terminal erreicht. Mit der Funktion tputs()
     erfolgen Verzögerungen beim Senden einer solchen Eigenschaft an das
     Terminal.

     Die Verzögerungszeichen werden durch tput ausgegeben. Verzögerungszei-
     chen können in folgenden Formaten angegeben werden: als Zahl, als Zahl
     mit nachgestelltem Stern (Beispiel: 5*), als Zahl mit nachgestelltem
     Schrägstrich (Beispiel: 5/) oder als Zahl mit nachgestelltem Stern und
     Schrägstrich (Beispiel: 5*/).

     -  Durch den Stern (*) wird angezeigt, daß die erforderliche Verzöge-
        rung proportional zur Anzahl der Zeilen ist, auf die die Operation
        angewandt wird; der angegebene Wert entspricht der erforderlichen
        Verzögerung pro bearbeiteter Einheit (beim Einfügen von Zeichen
        richtet sich der Faktor ebenfalls nach der Anzahl der veränderten
        Zeilen. Der Faktor hat in diesem Fall stets den Wert 1, es sei
        denn, das Gerät hat die Eigenschaft in, die vom Anwendungsprogramm
        benutzt wird). Wird ein Stern (*) angegeben, kann die Angabe einer
        Verzögerung im Format 3.5 von Vorteil sein; damit können


Seite 17                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

        Verzögerungen in Zehntel-Millisekunden pro Einheit angegeben werden
        (dabei ist nur eine einzige Dezimalstelle zulässig).

     -  Ein / gibt an, daß die Verzögerung erforderlich ist, und die Verzö-
        gerungszeichen unabhängig von der Einstellung von xon übertragen
        werden. Wenn / nicht angegeben oder für ein Gerät xon definiert
        ist, sind die Verzögerungsangaben nicht zwingend erforderlich und
        werden nur zu Kalkulationszwecken verwendet, oder wenn sich das
        Gerät im Raw-Modus befindet. Jede für bel oder flash angegebene
        Verzögerung wird allerdings als erforderlich behandelt.

     Die folgende Schreibweise kann in terminfo-Quelldateien zur Angabe von
     Sonderzeichen verwendet werden:

   Schreibweise                     Entsprechendes Zeichen
   _________________________________________________________________________
        ^x        CRTL-x (für jedes geeignete x)
        \a        Alert
        \b        Rückschritt
    \E oder \e    Ein Escape-Zeichen
        \f        Seitenvorschub
        \l        Zeilenvorschub (LF)
        \n        Neue Zeile (NL)
        \r        Carriage Return
        \s        Leerzeichen
        \t        Tabulator
        \^        Caret (^)
        \\        Backslash (\)
        \,        Komma (,)
        \:        Doppelpunkt (:)
        \0        Null *
       \nnn       Jedes Zeichen, das durch drei Oktal-Ziffern angegeben wird

     * \0 ergibt in Wirklichkeit \200, das nicht als Abschlußzeichen eines
     Strings benutzt wird, sondern auf den meisten Geräten die Funktion
     eines Null-Zeichens hat - vorausgesetzt, CS07 wird angegeben [siehe
     stty(1)].

     Auskommentierte Eigenschaften

     In manchen Fällen müssen einzelne Eigenschaften als Kommentar gekenn-
     zeichnet werden. Dafür wird vor den Eigenschaftsnamen ein Punkt
     gesetzt (vgl. zweites ind in obigem Beispiel). Die Eigenschaften wer-
     den von links nach rechts in absteigender Priorität angegeben, d. h.,
     eine weiter links stehende Definition hebt eine weiter rechts stehende
     Definition auf.








Seite 18                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

   Erstellen von Beschreibungen
     Beim Erstellen einer neuen Gerätebeschreibung geht man am besten von
     der bereits vorhandenen Beschreibung eines ähnlichen Geräts in der
     terminfo-Datenbasis aus und entwickelt daraus schrittweise eine neue
     Beschreibung; die Teilschritte sollten mit einem bildschirmorientier-
     ten Editor wie z. B. vi auf Fehler überprüft werden. Beachten Sie
     bitte, daß sich bei einem Gerät mit ungewöhnlichen Eingenschaften her-
     ausstellen kann, daß es in der terminfo-Datei nicht genügend beschrie-
     ben oder von vi nicht benutzt werden kann. Zum Austesten einer neuen
     Gerätebeschreibung setzen Sie die Umgebungsvariable TERMINFO auf den
     Pfadnamen eines Verzeichnisses mit der übersetzten Beschreibung, die
     Sie gerade bearbeiten; dies hat zur Folge, daß die Programme die
     Beschreibung in diesem Verzeichnis suchen und nicht in
     /usr/share/lib/terminfo. Damit beim Einfügen von Zeilen die korrekte
     Anzahl von Füllzeichen benutzt wird, kann der folgende "harte" Test
     durchgeführt werden (falls die entsprechende Angabe nicht in der Gerä-
     tedokumentation enthalten ist): die Eigenschaft xon wird auskommen-
     tiert, eine große Datei wird bei 9600 Baud mit vi editiert, ca. 16
     Zeilen werden in der Mitte des Bildschirms gelöscht, und die Taste u
     wird mehrmals schnell hintereinander gedrückt. Wenn die Bildschirman-
     zeige dadurch zerstört wird, sind in der Regel mehr Füllzeichen not-
     wendig. Ein ähnlicher Test ist für das Einfügen von Zeichen möglich.

   Abschnitt 1-1: Grundlegende Eigenschaften
     Die Anzahl der Zeilen pro Zeile, die vom Gerät unterstützt werden
     soll, wird über den numerischen Wert cols festgelegt. Bei einem Gerät
     mit Bildschirm wird die Anzahl der Zeilen auf dem Bildschirm bei der
     Eigenschaft lines angegeben. Wenn auf dem Gerät am rechten Rand ein
     automatischer Zeilenumbruch durchgeführt wird, sollte ihm die Eigen-
     schaft am zugeordnet werden. Wenn das Terminal die Möglichkeit zum
     Löschen seines Bildschirms hat, wobei der Cursor in der ersten Spalte
     der ersten Zeile verbleibt, wird dies über den String clear angegeben.
     Wenn das Terminal ein Zeichen überschreibt (und nicht löscht, wenn ein
     anderes Zeichen an derselben Position eingegeben wird), sollte ihm die
     Eigenschaft os zugeordnet werden. Wenn es sich bei dem Gerät um ein
     Drucker-Terminal ohne Softcopy-Einheit handelt, muß sowohl hc als auch
     os angegeben werden. Wenn es eine Möglichkeit gibt, um den Cursor zum
     linken Rand der aktuellen Zeile zu bewegen, so wird dies bei der
     Eigenschaft cr angegeben (im Normalfall handelt es sich hierbei um die
     Taste Carriage Return bzw. CTRL-M). Gibt es eine Möglichkeit zur
     Erzeugung eines akustischen Signals (Glocke oder Piepston), wird dafür
     die Eigenschaft bel angegeben. Wenn das Gerät das übliche XON/XOFF-
     Protokoll benutzt, wird dies über die Eigenschaft xon angegeben.

     Wenn der Cursor auf dem Gerät um eine Stelle nach links bewegt werden
     kann (z. B. mit BACKSPACE), so sollte die Eigenschaft cub1 in der
     terminfo-Datenbasis enthalten sein. Ähnlich müssen die Sequenzen zur
     Cursor-Steuerung nach rechts, oben und unten bei den Eigenschaften
     cuf1, cuu1 bzw. cud1 angegeben werden. Diese lokalen Cursor-Bewegungen
     dürfen den Text, über den der Cursor bewegt wird, nicht ändern. So
     wird z. B. cuf1=\s im Normalfall nicht benutzt, da das Zeichen, über
     das der Cursor bewegt wird, durch das Leerzeichen gelöscht wird.


Seite 19                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Es wird darauf hingewiesen, daß die lokalen Cursor-Bewegungen, die in
     terminfo definiert sind, am linken und oberen Rand eines bildschirmo-
     rientierten Terminals keine Auswirkungen haben. In einem Programm darf
     auf keinem Fall ein Rückschritt vom linken Rand aus versucht werden
     (es sei denn, bw ist angegeben); ebenso darf auf keinem Fall versucht
     werden, den Cursor über den oberen Rand der aktuellen Bildschirman-
     zeige hinaus zu bewegen. Für ein Text-Scrolling nach oben muß ein Pro-
     gramm den Cursor zur unteren linken Ecke des Bildschirms bewegen und
     dann den String ind (index) übermitteln.

     Für ein Text-Scrolling nach unten bewegt ein Programm den Cursor zur
     oberen linken Ecke des Bildschirms und übermittelt den String ri
     (reverse index). Die Strings ind und ri werden ignoriert, wenn der
     Cursor sich nicht in der jeweils korrekten Bildschirmecke befindet.

     Für die Scrolling-Sequenzen ind und ri gibt es die Varianten indn und
     rin, bei denen über einen Parameter die Anzahl der zu scrollenden Zei-
     len angegeben werden kann. Auch indn und rin werden ignoriert, wenn
     der Cursor sich nicht am korrekten Bildschirmrand befindet.

     Über die Eigenschaft am wird angegeben, ob der Cursor bei der Ausgabe
     von Text am rechten Bildschirmrand bleiben soll; dies gilt jedoch
     nicht unbedingt für ein cuf1 von der letzten Spalte aus. Ein Rück-
     schritt von der linken Ecke des Bildschirms aus ist nur möglich, wenn
     bw angegeben wird. In diesem Fall wird der Cursor durch cub1 zum rech-
     ten Rand der vorhergehenden Zeile bewegt. Wenn bw nicht angegeben ist,
     ist diese Cursor-Bewegung nicht definiert. Diese Funktion kann benutzt
     werden, um an den Bildschimkanten entlang einen Rahmen zu ziehen. Wenn
     das Gerät über automatische, über Schalter einstellbare Randeinstel-
     lungen verfügt, sollte am in der terminfo-Quelldatei angegeben werden.
     In diesem Fall sollte diese Option nach Möglichkeit über Initialisie-
     rungs-Strings eingeschaltet werden. Wenn das Gerät über ein Kommando
     verfügt, über das der Cursor zur ersten Spalte der darauffolgenden
     Zeile bewegt wird, so kann dieses Kommando als nel (newline) angegeben
     werden. Dabei spielt es keine Rolle, ob das Kommando den Rest der
     aktuellen Zeile löscht; daher kann selbst auf einem Gerät, das nicht
     über die Eigenschaften cr und lf verfügt, aus einer oder beiden der
     Eigenschaften eine funktionsfähige nel-Eigenschaft erstellt werden.
     Diese Eigenschaften reichen zur Beschreibung von Hardcopy- und bild-
     schirmorientierten Terminals vollkommen aus. So wird das Hardcopy-
     Terminal AT&T 5320 folgendermaßen beschrieben:

          5320|att5320|AT&T 5320 hardcopy terminal,
             am, hc, os,
             cols#132,
             bel=^G, cr=\r, cub1=\b, cnd1=\n,
             dch1=\E[P, dl1=\E[M,
             ind=\n,

     Das Terminal Lear Siegler ADM-3 dagegen wird folgendermaßen beschrie-
     ben:



Seite 20                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

          adm3|lsi adm3,
             am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H,
             cud1=^J, ind=^J, lines#24,

   Abschnitt 1-2: Parametrisierte Strings
     Eigenschaften zur Cursor-Adressierung, bei denen Parameter angegeben
     werden müssen, werden durch einen parametrisierten String beschrieben,
     der ähnliche Escape-Sequenzen wie printf (%x) enthält. So gibt es
     z. B. zur Cursor-Adressierung die Eigenschaft cup. Diese Eigenschaft
     hat zwei Parameter, nämlich die Zeilen- und Spaltennummer, aus denen
     sich die Adresse zusammensetzt (die Zeilen und Spalten sind ab Null
     durchnumeriert und beziehen sich auf die für den Benutzer sichtbare
     Bildschirmanzeige und nicht auf den aktuell unsichtbaren Speicherbe-
     reich). Wenn das Terminal die speicherbezogene Cursor-Adressierung
     unterstützt, kann dies über die Eigenschaft mrcup angegeben werden.

     Bei parametrisierten Strings wird mit einem Stack und speziellen, mit
     % beginnenden Sequenzen gearbeitet, mit denen der Stack nach der umge-
     kehrten polnischen Notation (Postfix-Notation) manipuliert wird. Durch
     eine Sequenz wird ein Parameter auf den Stack gelegt und dann in einem
     bestimmten Format ausgegeben. In vielen Fällen sind komplexere Opera-
     tionen notwendig. Die Operationen werden in der Postfix-Notation ange-
     geben, wobei die Operanden in der üblichen Reihenfolge eingegeben wer-
     den. Um somit vom ersten Parameter den Wert 5 zu substrahieren, gibt
     man die Sequenz %p1%{5}%- ein.

     Die %-Sequenzen haben folgende Bedeutung:

     %%          Ausgabe des Zeichens %

     %[[:]flags][width[.precision]][doxXs]
                 dieselbe Bedeutung wie bei printf, es werden die Flags
                 [-+#] sowie Leerzeichen benutzt

     %c          Oberstes Element auf dem Stack als ASCII-Zeichen %c ausge-
                 ben

     %p[1-9]     ites Argument auf den Stack legen

     %P[a-z]     Oberstes Element vom Stack holen und auf dynamische Varia-
                 ble [a-z] setzen

     %g[a-z]     Dynamische Variable [a-z] abfragen und auf den Stack legen

     %P[A-Z]     Oberstes Element vom Stack holen und auf statische Varia-
                 ble [a-z] setzen

     %g[A-Z]     Statische Variable [a-z] abfragen und auf den Stack legen

     %'c'        Zeichenkonstante c auf Stack legen

     %{nn}       Dezimalkonstante nn auf Stack legen


Seite 21                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     %l          Oberstes Element vom Stack holen und Länge des Strings
                 ausgeben

     %+ %- %* %/ %m
                 Arithmetisch (%m ist der Modulo-Operator): push(pop inte-
                 ger2 op pop integer1)

     %& %| %^    Bit-Operationen: push(pop integer2 op pop integer1)

     %= %> %<    Logische Operationen: push(pop integer2 op pop integer1)

     %A %O       Logische Operationen: UND, ODER

     %! %~       Unäre Operationen: push(op pop)

     %i          (Für ANSI-Terminals) Auf ersten Parameter Wert 1 addieren,
                 wenn ein Parameter vorhanden ist, bzw. auf die ersten bei-
                 den Parameter, wenn mehr als ein Parameter vorhanden ist.

     %? expr %t thenpart %e elsepart %;
                 if-then-else, %e elsepart ist optional; else-if-Konstrukte
                 wie bei Algol 68 sind möglich: %? c1 %t b1 %e c2 %t b2 %e
                 c3 %t b3 %e c4 %t b4 %e b5%.

                 ci sind Bedingungen, bi der zugehörige Text.

     Wenn das Flag - mit %[doxXs] benutzt wird, so muß zwischen % und - ein
     Doppelpunkt (:) gesetzt werden, damit das Flag vom binären Operator %-
     unterschieden werden kann (Beispiel: %:-16.16s).

     Um den Cursor z. B. auf dem Terminal Hewlett-Packard 2645 in die 12.
     Spalte der 3. Zeile zu bewegen, muß die Steuerzeichenfolge \E&a12c03Y
     mit einer Verzögerung von 6 Millisekunden an das Terminal übermittelt
     werden. Beachten Sie, daß die Zeilen- und Spaltennummer hier in umge-
     kehrter Reihenfolge angegeben sind und daß die Zeilen- und Spaltennum-
     mer wie zwei Ziffern mit Nullen aufgefüllt sind. Somit sieht die
     Eigenschaft cup für dieses Terminal folgendermaßen aus:

          cup=\E&a%p2%2.2dc%p1%2.2dY$<6>

     An Terminals vom Typ Micro-Term ACT-IV muß vor der aktuellen Zeilen-
     und Spaltennummer die Sequenz ^T übermittelt werden, wobei die Zeilen-
     und Spaltennummer einfach binär codiert sind (cup=^T%p1%c%p2%c).
     Geräte, die mit der Steuerzeichenfolge %c arbeiten, müssen den Cursor
     auf dem Bildschirm nach links (cub1) und um eine Zeile nach oben
     (cuu1) bewegen können. Dies ist aus Sicherheitsgründen notwendig, da
     das System die Sequenzen \n, ^D und \r möglicherweise ändert oder
     ignoriert (die Bibliotheksroutinen für terminfo stellen die tty-Modi
     so ein, daß die Tabulatorzeichen in keinem Fall in Leerzeichen umge-
     wandelt werden; somit kann \t problemlos an das Terminal übermittelt
     werden. Dies ist für Terminals vom Typ Ann Arbor 4080 ein wesentlicher
     Punkt).


Seite 22                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Als letztes Beispiel seien die Terminals vom Typ LSI ADM-3a genannt,
     deren Zeilen- und Spalten-Offsets mit einem Leerzeichen angegeben wer-
     den (also cup=\E=%p1%'\s'%+%c%p2%'\s'%+%c). Dadurch wird nach der
     Übermittlung von \E= zunächst der erste Parameter auf den Stack gelegt
     und dann der ASCII-Wert für ein Leerzeichen (32). Dann werden beide
     Werte addiert (d. h. die Summe wird anstelle der bisherigen Werte auf
     den Stack gelegt); dieser Wert wird dann als ein Zeichen ausgegeben.
     Auf dieselbe Weise wird dann mit dem zweiten Parameter verfahren. Mit
     dem Stack sind auch wesentlich komplexere arithmetische Operationen
     möglich.

   Abschnitt 1-3: Cursor-Steuerung
     Die Möglichkeit, den Cursor schnell in die obere linke Ecke des Bild-
     schirms zu bewegen, kann bei der Eigenschaft home angegeben werden.
     Analog stellt die Eigenschaft ll eine schnelle Möglichkeit dar, um den
     Cursor in die untere linke Ecke des Bildschirms zu bewegen. Obwohl der
     Cursor dabei auch von der oberen linken Ecke aus mit cuu1 nach oben
     bewegt werden kann, sollte dies auf keinen Fall in ein Programm einge-
     baut werden (nur mit ll), da das Ergebnis für das Programm nicht vor-
     hersehbar ist. Statt der Angabe von home wäre auch die Adressierung
     von (0,0) möglich; beachten Sie, daß sich dies stets auf die obere
     linke Ecke des Bildschirms bezieht und nicht auf den Speicher (so kann
     die Sequenz \EH auf Hewlett-Packard-Terminals nicht in derselben Funk-
     tion wie home benutzt werden, da einige andere Funktionen des Termi-
     nals dann nicht mehr zur Verfügung stünden).

     Unterstützt das Gerät die Cursor-Steuerung über die Angabe der absolu-
     ten Zeilen- oder Spaltennummer, so kann dies über die parametrisierten
     Eigenschaften hpa (horizontal position absolute) und vpa (vertical
     position absolute) angegeben werden. Diese parametrisierten Eigen-
     schaften sind in manchen Fällen kürzer als die allgemeineren zweistel-
     ligen Parameter-Sequenzen (wie sie z. B. auf dem Terminal Hewlett-
     Packard 2645 benutzt werden) und können statt cup benutzt werden. Wer-
     den parametrisierte Eigenschaften für lokale Cursor-Bewegungen unter-
     stützt (z. B. Cursor um n Leerzeichen nach rechts bewegen), so kann
     dies bei den Eigenschaften cud, cub, cuf und cuu angegeben werden,
     wobei n für die Anzahl der Leerzeichen steht. Diese Möglichkeit ist
     vor allem für Geräte gedacht, die die Eigenschaft cup nicht unterstüt-
     zen (z. B. Tektronix 4025).

     Auf manchen Geräten können Programme, die diese Eigenschaften nutzen,
     nur in einer speziellen Betriebsart laufen; die Codes zum Aufrufen und
     Beenden dieser Betriebsart können dann über smcup und rmcup angegeben
     werden. Dies ist beispielsweise bei Terminals mit mehr als einer
     Speicher-Seite notwendig (z. B. Concept). Unterstützt das Gerät ledig-
     lich die speicherbezogene und nicht die bildschirmbezogene Cursor-
     Adressierung, so muß ein Fenster mit Bildschirmgröße zur Cursor-Adres-
     sierung fest im Gerät verankert werden. Dies gilt auch für Terminals
     vom Typ Tektronix 4025, auf denen das Kommandozeichen mit smcup auf
     das von terminfo benutzte Kommandozeichen eingestellt werden kann.
     Wenn die Bildschirmanzeige nach der Ausgabe einer rmcup-Sequenz nicht
     durch die Sequenz smcup wiederhergestellt wird (in dem Zustand vor der


Seite 23                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Ausgabe vor rmcup), so geben Sie in der terminfo-Datenbasis die Eigen-
     schaft nrrmc an.

   Abschnitt 1-4: Löschen von Bereichen
     Wenn auf einem Terminal sämtliche Zeichen ab der aktuellen Cursor-
     Position bis zum Zeilenende gelöscht werden können und der Cursor
     dabei an seiner Position bleibt, so sollte dies bei der Eigenschaft el
     angegeben werden. Wenn auf einem Terminal sämtliche Zeichen vom Zei-
     lenanfang bis zur aktuellen Cursor-Position einschließlich gelöscht
     werden können und der Cursor dabei an seiner Position bleibt, so
     sollte dies bei der Eigenschaft el1 angegeben werden. Wenn auf dem
     Terminal sämtliche Zeichen ab der aktuellen Cursor-Position bis zur
     unteren rechten Ecke des Bildschirms gelöscht werden können, so sollte
     dies bei der Eigenschaft ed angegeben werden. ed ist nur für die erste
     Spalte einer Zeile definiert (somit kann es durch eine Anforderung zum
     Löschen einer großen Anzahl von Zeilen simuliert werden, wenn die
     Eigenschaft ed tatsächlich nicht vorhanden ist).

   Abschnitt 1-5: Einfügen/Löschen von Zeichen
     Die Möglichkeit, auf dem Terminal über der aktuellen Zeile eine neue
     Leerzeile einzufügen, sollte bei der Eigenschaft il1 angegeben werden;
     hierzu muß sich der Cursor auf der ersten Spalte befinden. Danach muß
     sich der Cursor in der neu eingefügten Leerzeile befinden. Die Mög-
     lichkeit, auf dem Terminal die Zeile zu löschen, in der sich der Cur-
     sor aktuell befindet, wird bei der Eigenschaft dl1 angegeben; der Cur-
     sor muß sich dazu in der ersten Spalte der zu löschenden Zeile befin-
     den. Von il1 und dl1 gibt es die Varianten il und dl, bei denen mit
     einem Einzelparameter die Anzahl der einzufügenden bzw. zu löschenden
     Zeile angegeben werden kann.

     Auf einigen Terminals (z. B. auf dem VT100) kann ein nichterhaltender
     Scroll-Bereich eingestellt werden; das Kommando für diese Einstellung
     kann bei der Eigenschaft csr definiert werden, bei dem zwei Parameter
     angegeben werden (die erste und letzte Zeile des Scroll-Bereichs). Die
     Cursor-Position nach Durchführung dieses Kommandos ist selbstverständ-
     lich undefiniert. Dieses Kommando läßt sich auch zum Einfügen oder
     Löschen von Zeilen benutzen - dabei sind auch die Kommandos sc und rc
     (save and restore cursor - Cursor-Position speichern und wiederher-
     stellen) von Nutzen. Das Einfügen von Zeilen am oberen bzw. unteren
     Rand der Bildschirmanzeige kann auch auf vielen Terminals ohne direkte
     Möglichkeit zum Einfügen/Löschen von Zeilen mit ri bzw. ind durchge-
     führt werden - dies ist häufig selbst auf Terminals, die diese Funk-
     tionen unterstützen, auch die schnellere Möglichkeit.

     Wenn Sie herausfinden möchten, ob ein Terminal erhaltende oder nicht-
     erhaltende Scroll-Bereiche hat, legen Sie einen Scroll-Bereich in der
     Mitte des Bildschirms an, fügen Daten in der untersten Zeile des
     Scroll-Bereichs ein, bewegen den Cursor in die oberste Zeile des
     Scroll-Bereichs und geben die Eigenschaft ri (Scrolling um eine Zeile
     nach oben) ein, gefolgt von der Eigenschaft dl1 (Zeile löschen) bzw.
     ind (Scrolling um eine Zeile nach unten). Wenn die Daten, die
     ursprünglich in der untersten Zeile des Scroll-Bereichs enthalten


Seite 24                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     waren, sich nach der Eingabe von dl1 oder ind innerhalb des Scroll-
     Bereichs befinden, so sind die Scroll-Bereiche des Terminals erhal-
     tend; andernfalls hat es nichterhaltende Scroll-Bereiche. Für ein Ter-
     minal mit erhaltenden Scroll-Bereichen darf die Eigenschaft csr nicht
     angegeben werden, es sei denn, das Scrolling mit nichterhaltendem
     Scroll-Bereich wird durch sowohl ind als auch durch ri, indn, rin, dl
     und dl1 simuliert.

     Die Möglichkeit, auf dem Terminal ein Fenster als Teil des Speichers
     zu definieren, das durch alle Kommandos manipuliert werden kann,
     sollte über die parametrisierten Strings wind angegeben werden. Über
     die vier Parameter werden die erste und letzte Zeile sowie die erste
     und letzte Spalte im Speicher angegeben (diese Reihenfolge muß einge-
     halten werden)

     Die Möglichkeit, den Inhalt des Bildschirmspeichers auf einem Terminal
     auch nach dem Scrolling nach unten zu erhalten, wird mit der Eigen-
     schaft da angegeben, die Möglichkeit zum Erhalten des Bildschirmspei-
     cherinhalts nach dem Scrolling nach oben mit der Eigenschaft db.
     Dadurch geben Sie an, daß nach dem Löschen einer Zeile bzw. beim
     Scrolling nach unten um eine ganze Bildschirmseite die Zeilen unter-
     halb der aktuellen Bildschirmseite angezeigt werden und beim Scrolling
     nach oben mit ri die Zeilen oberhalb der aktuellen Bildschirmseite (in
     beiden Fällen handelt es sich nicht um Leerzeilen).

   Abschnitt 1-6: Einfügen/Löschen von Zeichen
     In bezug auf das Löschen/Einfügen von Zeichen können intelligente Ter-
     minals zweierlei Typs in der terminfo-Datenbasis beschrieben werden.
     Die gängigsten Operationen zum Einfügen/Löschen von Zeichen wirken
     sich nur auf die Zeichen in der aktuellen Zeile aus und schieben die
     Zeichen unwiderruflich über das Zeilenende hinaus. Auf anderen Termi-
     nals wie z. B. dem Concept 100 und dem Perkin Elmer Owl wird zwischen
     über die Tastatur eingegebenen Leerzeichen (typed blanks), und nicht
     belegten Leerstellen (untyped blanks) unterschieden; das Einfügen oder
     Löschen von Zeichen wirkt sich dann nur auf eine nicht belegte Leer-
     stelle aus (sie wird dann entweder gelöscht oder zu zwei nicht beleg-
     ten Leerstellen erweitert). Um herauszufinden, zu welcher Gruppe Ihr
     Terminal gehört, löschen Sie die Bildschirmanzeige und geben dann Text
     ein, wobei Sie einige Cursor-Bewegungen einbauen. Geben Sie beispiels-
     weise abc   def ein, wobei Sie zwischen der Eingabe von abc und von
     def einige Male eine Cursor-Taste drücken. Dann bewegen Sie den Cursor
     auf die Position vor abc und schalten das Terminal in den Einfügemo-
     dus. Wenn die übrigen Zeichen in der Zeile während der Eingabe einfach
     über den rechten Bildschirmrand hinausgeschoben werden, wird auf Ihrem
     Terminal nicht zwischen über die Tastatur eingegebenen Leerzeichen und
     nicht belegten Leerstellen unterschieden. Wenn abc in Richtung auf def
     verschoben wird und beides dann beim Einfügen der Zeichen in die näch-
     ste Zeile verschoben wird, gehört Ihr Terminal zur zweiten Gruppe;
     dies geben Sie bei der Eigenschaft in (insert null) an. Wenn diese
     beiden Attribute auch logisch überhaupt nichts miteinander zu tun
     haben (einzeiliger- und mehrzeiliger Einfügemodus und spezielle
     Behandlung von nicht belegten Leerstellen), sind uns keine Terminals


Seite 25                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     bekannt, deren Einfügemodus sich nicht mit dem Einzelattribut
     beschreiben läßt.

     In der terminfo-Datenbasis können sowohl Terminals mit einem Einfüge-
     modus beschrieben werden als auch Terminals, die mit einer einfachen
     Sequenz eine Leerstelle in der aktuellen Zeile einfügen können. Mit
     dem Kommando bei der Eigenschaft smir schalten Sie das Terminal in den
     Einfügemodus um, mit dem bei rmir schalten Sie den Einfügemodus wieder
     aus. Geben Sie dann bei ich1 eine beliebige Sequenz an, die unmittel-
     bar vor dem einzufügenden Zeichen übermittelt werden muß. Auf den mei-
     sten Terminals mit echtem Einfügemodus wird die Eigenschaft ich1 nicht
     übermittelt; diese Sequenz sollte jedoch für Terminals angegeben wer-
     den, auf denen zum Einfügen eines Leerzeichens eine Sequenz übermit-
     telt werden muß (wenn auf Ihrem Terminal beide Möglichkeiten vorhanden
     sind, ist der Einfügemodus im Normalfall der Sequenz ich1 vorzuziehen.
     Die Benutzung von beiden Möglichkeiten ist nicht empfehlenswert, es
     sei denn, auf dem Terminal dürfen nur beide Möglichkeiten gemeinsam
     benutzt werden). Wenn eine Verzögerung nach dem Einfügen von Zeichen
     notwendig ist, wird diese bei dem String ip in Millisekunden angege-
     ben. Bei ip kann darüber hinaus jede Sequenz angegeben werden, die
     nach dem Einfügen eines Einzelzeichens übermittelt werden muß. Wenn
     Ihr Terminal sowohl in den Einfügemodus umgeschaltet als auch jedem
     eingefügten Zeichen ein spezieller Code vorangestellt werden muß, so
     kann sowohl smir/rmir als auch ich1 angegeben werden; es werden dann
     beide Eigenschaften benutzt. Bei der Eigenschaft ich kann ein Einzel-
     parameter n angegeben werden; dies bewirkt, daß n Leerzeichen einge-
     fügt werden.

     Selbst wenn das Terminal sich nicht im Einfügemodus befindet, ist eine
     Verzögerung nach jedem eingegebenen Zeichen möglich; diese Verzögerung
     wird bei der Eigenschaft rmp in Millisekunden angegeben.

     Der Cursor muß gelegentlich im Einfügemodus an eine andere Stelle der
     Zeile bewegt werden, um ein oder mehrere Zeichen in derselben Zeile zu
     löschen (Beispiel: hinter der Einfügeposition befindet sich ein Tabu-
     latorzeichen). Wenn Cursor-Bewegungen im Einfügemodus auf Ihrem Termi-
     nal möglich sind, können Sie das Einfügen mit der Eigenschaft mir
     beschleunigen. Das Fehlen von mir hat lediglich Auswirkungen auf die
     Geschwindigkeit. Auf einigen Terminals (z. B. den Datamedia-Terminals)
     ist die Eigenschaft mir wegen der Funktionsweise ihres Einfügemodus
     nicht notwendig.

     Schließlich können Sie bei der Eigenschaft dch1 das/die Kommando(s)
     zum Löschen eines Einzelzeichens, bei dch und einem Einzelparameter n
     das/die Kommando(s) zum Löschen von n Zeichen sowie bei smdc und rmdc
     das/die Kommando(s) zum Ein- und Ausschalten des Löschmodus (bzw. den
     Modus, ohne den dch1 auf dem Terminal nicht unterstützt wird) angeben.

     Bei der Eigenschaft ech mit einem Einzelparameter können Sie das Kom-
     mando zum Löschen von n Zeichen angeben (dies entspricht der Ausgabe
     von n Leerzeichen ohne gleichzeitige Cursor-Bewegung).



Seite 26                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

   Abschnitt 1-7: Hervorheben, Unterstreichen und optische Signale
     Auf Ihrem Gerät gibt es möglicherweise ein oder mehrere Anzeigeattri-
     bute, mit denen Sie bestimmte Zeichen auf dem Bildschirm hervorheben
     können. Dafür stehen die folgenden Anzeigemodi zur Verfügung (über die
     angegebenen Namen können diese Modi ein- und ausgeschaltet werden:
     blinkende Bildschirmanzeige (blink), fette bzw. extra helle Zeichen
     (bold), schwach dargestellte bzw. halbhelle Zeichen (dim), mit Leer-
     zeichen überschriebener bzw. unsichtbarer Text (invis), geschützter
     Text (prot), Umkehranzeige (rev) sowie ein Alternativ-Zeichensatz
     (Einschalten des Modus über smacs, Ausschalten über rmacs) (wenn zum
     Aktivieren des Alternativ-Zeichensatzes ein spezielles Kommando not-
     wendig ist, so geben Sie das Kommando entweder bei enacs an oder akti-
     vieren den betreffenden Modus). Beim Einschalten eines dieser Anzeige-
     modi werden andere Modi teilweise ausgeschaltet.

     Zum Deaktivieren sämtlicher Bildschirmattribute sollte sgr0 benutzt
     werden. Diese Eigenschaft stellt die einzige Möglichkeit zum Ausschal-
     ten bestimmter Eigenschaften wie z. B. dim oder blink dar und sollte
     daher in jedem Fall angegeben werden.

     Einen bestimmten Anzeigemodus sollten Sie als Hervorhebungsmodus defi-
     nieren; diesen Modus können Sie zum Hervorheben von Fehlermeldungen
     und anderem wichtigem Text benutzen. Bei der Definition der Attribute
     für diesen Modus sollten Sie auf einen möglichst starken und gleich-
     zeitig angenehmen Kontrast achten (empfehlenswert ist z. B. Umkehran-
     zeige plus halbhelle Darstellung oder nur Umkehranzeige). Die Komman-
     dofolgen zum Ein- und Ausschalten des Hervorhebungsmodus werden bei
     smso bzw. rmso angegeben. Wenn nach der Kommandofolge zum Ein- bzw.
     Ausschalten ein oder auch zwei Leerzeichen auf dem Bildschirm zurück-
     bleiben (dies ist z. B. auf den Terminals TVI 912 und Teleray 1061 der
     Fall), so sollte bei xmc die Anzahl dieser Leerzeichen angegeben wer-
     den.

     Die Kommandofolgen für Unterstreichen EIN/AUS können bei smul bzw.
     rmul angegeben werden. Wenn das Gerät über eine Kommandofolge verfügt,
     mit dem das aktuelle Zeichen unterstrichen und dann der Cursor um ein
     Leerzeichen nach rechts bewegt werden kann (hierzu gehört z. B. das
     Terminal Micro-Term MIME), kann diese Kommandofolge bei der Eigen-
     schaft uc angegeben werden.

     Terminals mit der Eigenschaft xmc speichern beim Empfang von Steuer-
     zeichenfolgen für bestimmte Darstellungsarten nicht zusätzliche Daten
     für jedes Zeichen ab, sondern legen spezielle Zeichen zur Auswahl des
     Anzeige-Algorithmus (sog. "Magic Cookies") ab. Auf einigen Terminals
     wie z. B. dem HP2621 wird der Hervorhebungsmodus automatisch ausge-
     schaltet, wenn der Cursor in eine neue Zeile bewegt oder eine absolute
     Cursor-Adressierung durchgeführt wird. Programme, die mit dem Hervor-
     hebungsmodus arbeiten, sollten den Hervorhebungsmodus vor der nächsten
     Cursor-Bewegung oder der Übermittlung eines Zeilenendezeichens verlas-
     sen, es sei denn, es ist mit der Eigenschaft msgr sichergestellt, daß
     die Cursor-Bewegung im Hervorhebungsmodus ohne Probleme möglich ist.



Seite 27                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Auf manchen Terminals kann bei einem Fehler statt eines akustischen
     Signals ein optisches Signal in Form einer blinkenden Bildschirman-
     zeige abgegeben werden; dies wird bei der Eigenschaft flash angegeben.
     Der Cursor darf dabei nicht bewegt werden. Eine blinkende Bildschirm-
     anzeige kann realisiert werden, indem der Bildschirm auf Umkehranzeige
     geschaltet und dann nach einer Verzögerung von 200 Millisekunden wie-
     der in die Normalanzeige zurückgeschaltet wird.

     Wenn der Cursor besser erkennbar sein soll, wenn er sich nicht in der
     untersten Zeile befindet, wird die entsprechende Kommandofolge bei der
     Eigenschaft cvvis angegeben (so kann das nicht-blinkende Attribut
     Unterstreichen in ein besser erkennbares Blocksymbol oder in die Kom-
     bination Blinken und Unterstreichen umgewandelt werden). In diesen
     Fällen sollte zusätzlich der boolesche Wert chts angegeben werden. Auf
     einigen Terminals kann der Cursor auch vollkommen unsichtbar gemacht
     werden; die entsprechende Kommandofolge wird bei der Eigenschaft civis
     angegeben. Gleichzeitig sollte die Eigenschaft cnorm angegeben werden,
     durch die alle aufgeführten Anzeigemodi wieder ausgeschaltet und zur
     Normalanzeige zurückgekehrt wird.

     Auf einigen Terminals gibt es die Möglichkeit zum Erzeugen von unter-
     strichenen Zeichen mit Hilfe des Unterstrichs (ohne spezielle Komman-
     dofolge), obwohl sie sonst das Überschreiben von Zeichen (d. h. die
     Bildung von Kombinationszeichen) nicht unterstützen; in einem derarti-
     gen Fall sollte die Eigenschaft ul angegeben werden. Für Geräte, auf
     denen nach dem Überschreiben eines Zeichens beide Zeichen auf dem
     Bildschirm sichtbar bleiben, geben Sie die Eigenschaft os an. Die Mög-
     lichkeit zum Löschen von Kombinationszeichen durch ein Leerzeichen
     wird bei der Eigenschaft eo angegeben.

     Die Kommandofolge zum gleichzeitigen Einschalten von zwei oder mehr
     Modi in beliebiger Kombination wird bei der Eigenschaft sgr angegeben.
     Es gibt neun Modi, die jeweils über einen Parameter angegeben werden.
     Jeder Parameter kann entweder 0 oder ungleich Null sein, je nachdem,
     ob das zugehörige Attribut aus- oder eingeschaltet sein soll. Die neun
     Parameter sind nachfolgend aufgeführt. sgr muß nicht unbedingt alle
     neun Modi unterstützen, sondern nur diejenigen, für die eine spezielle
     Kommandofolge vorhanden ist. Angenommen, auf dem betreffenden Terminal
     werden die verschiedenen Modi über die folgenden Escape-Sequenzen ein-
     geschaltet:

              tparm-
             Argument   Attribut                 Escape-Sequenz
             _____________________________________________________
                        Keine                    \E[0m
                p1      Hervorheben              \E[0;4;7m
                p2      Unterstreichen           \E[0;3m
                p3      Umkehranzeige            \E[0;4m
                p4      Blinken                  \E[0;5m
                p5      Schwach                  \E[0;7m




Seite 28                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

                p6      Fett                     \E[0;3;4m
                p7      Unsichtbar               \E[0;8m
                p8      Geschützt                Nicht unterstützt
                p9      Alternativ-Zeichensatz   ^O (AUS) ^N (EIN)

     Vor jeder Escape-Sequenz muß zunächst der Wert 0 angegeben werden,
     damit andere Modi vor dem Einschalten des gewünschten Modus ausge-
     schaltet werden. Beachten Sie auch, daß das Attribut Hervorheben in
     obiger Tabelle als Kombination aus Umkehranzeige und Schwach definiert
     worden ist. Außerdem wurde Fett als Kombination aus den Modi Umkehran-
     zeige und Unterstreichen definiert, da es auf diesem Terminal keinen
     separaten Fett-Modus gibt. Damit Kombinationen wie
     Unterstreichen+Blinken unterstützt werden, muß die Escape-Sequenz
     \E[0;3;5m benutzt werden. Da das Terminal den Modus Geschützt weder
     unterstützt noch ihn auf irgendeine Weise simulieren kann, wird p8
     ignoriert. Der Modus Alternativ-Zeichensatz ist entweder ^O (ausge-
     schaltet) oder ^N (eingeschaltet). Das Einschalten sämtlicher Modi
     würde mit \E[0;3;4;5;7;8m^N durchgeführt.

     Die verschiedenen Modi können miteinander kombiniert werden. Dazu
     einige Beispiele: Wenn entweder p2 oder p6 (d. h. entweder Unterstrei-
     chen oder Fett) eingeschaltet ist, wird ;3 ausgegeben. Die Umsetzung
     der oben aufgeführten Sequenzen und ihrer Abhängigkeiten ins
     terminfo-Format ergibt folgendes:

      Sequenz        Bedingung für Ausgabe          terminfo-Umsetzung
      ___________________________________________________________________
      \E[0           Immer                          \E[0
      ;3             Wenn p2 oder p6                %?%p2%p6%|%t;3%;
      ;4             Wenn p1 oder p3 oder p6        %?%p1%p3%|%p6%|%t;4%;
      ;5             Wenn p4                        %?%p4%t;5%;
      ;7             Wenn p1 oder p5                %?%p1%p5%|%t;7%;
      ;8             Wenn p7                        %?%p7%t;8%;
      m              Immer                          m
      ^N oder ^O     Wenn p9 ^N, andernfalls ^O     %?%p9%t^N%e^O%;

     Um sämtliche Escape-Sequenzen bei der Eigenschaft sgr anzugeben, wird
     folgendes eingegeben:

          sgr=\E[0%?%p2%p6%|%t;3%;%?%p1%p3%|%p6%
                 |%t;4%;%?%p5%t;5%;%?%p1%p5%
                 |%t;7%;%?%p7%t;8%;m%?%p9%t^N%e^O%;,

     Beachten Sie bitte, daß sgr und sgr0 in jedem Fall angegeben werden müssen.

   Abschnitt 1-8: Tastenblock
     Wenn das Gerät mit einem Tastenblock ausgestattet ist, der Zeichenfol-
     gen übermittelt, wenn der Benutzer eine Taste drückt, so kann auch
     dies über eine Eigenschaft angegeben werden. Geräte, auf denen der
     Tastenblock nur lokal funktioniert, werden nicht unterstützt (dies
     gilt z. B. für die (ohne SHIFT-, ALT- oder CTRL-Taste gedrückten)
     Tasten des Terminals Hewlett-Packard 2621). Die Möglichkeit, den


Seite 29                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Tastenblock zwischen "Senden" und "Nicht Senden" umzuschalten, wird
     bei den Eigenschaften smkx und rmkx angegeben. Andernfalls wird davon
     ausgegangen, daß der Tastenblock aktiviert ist.

     Die Kommandofolgen, die beim Drücken der Tasten LEFT-ARROW RIGHT-
     ARROW, UP-ARROW, DOWN-ARROW und HOME übermittelt werden, können bei
     den Eigenschaften kcub1, kcuf1, kcuu1, kcud1, bzw. khome angegeben
     werden. Die Kommandofolgen, die beim Drücken der Funktionstasten f0,
     f1, ..., f63 (falls vorhanden) generiert werden, können bei den Eigen-
     schaften kf0, kf1, ..., kf63 angegeben werden. Wenn die ersten 11
     Tasten nicht mit den Standard-Beschriftungen f0 bis f10 versehen sind,
     können die betreffenden Beschriftungen bei den Eigenschaften lf0, lf1,
     Eigenschaften die Kommandofolgen angegeben werden, die beim Drücken
     von anderen Sondertasten generiert werden: kll (Cursor in untere linke
     Ecke), kbs (Rückschritt), ktbc (Alle Tabulatorstopps löschen), kctab
     (Tabulatorstopp in aktueller Spalte löschen), kclr (Bildschirm löschen
     bzw. Löschtaste), kdch1 (Zeichen löschen), kdl1 (Zeile löschen), krmir
     (Einfügemodus verlassen), kel (Bis Zeilenende löschen), ked (Bis zur
     letzten Spalte der Bildschirmanzeige löschen), kich1 (Zeichen einfügen
     bzw. Einfügemodus einschalten), kil1 (Zeile einfügen), knp (Nächste
     Seite), kpp (Vorhergehende Seite), kind (Scrolling nach oben/unten),
     kri (Scrolling nach unten/oben), khts (Tabstopp in aktueller Spalte
     einrichten). Wenn auf dem Tastenblock zusätzlich ein Feld mit drei auf
     drei Tasten vorhanden ist, bei denen es sich u. a. um die vier Pfeil-
     tasten handelt, so können die übrigen fünf Tasten bei den Eigenschaf-
     ten ka1, ka3, kb2, kc1 und kc3 angegeben werden. Diese Tasten sind
     immer dann hilfreich, wenn die Funktionen eines Tastenblocks mit 3x3
     Tasten benötigt werden. Weitere Tasten sind in der obenstehenden Liste
     der Eigenschaften aufgeführt.

     Strings zur Programmierung von Funktionstasten können bei den Eigen-
     schaften pfkey, pfloc und pfx angegeben werden. Ein String zur Pro-
     grammierung von Bildschirm-Labeln sollte bei der Eigenschaft pln ange-
     geben werden. Jeder dieser Strings kann mit zwei Parametern angegeben
     werden: Einer Funktionstastenkennung sowie einem String, mit dem die
     Funktionstaste programmiert bzw. belegt werden soll. Der String pfkey
     bewirkt, daß das Drücken der betreffenden Taste dieselben Auswirkungen
     hat, wie wenn der Benutzer den angegebenen String eingeben würde; der
     String wird durch das Terminal dann lokal ausgeführt. Soll der String
     dagegen an den Rechner übermittelt werden, muß er der Eigenschaft pfx
     zugeordnet werden. Bei den Eigenschaften nlab, lw und lh wird die
     Anzahl der programmierbaren Bildschirm-Labels sowie ihre Breite und
     Höhe angegeben. Die Kommandos zum Ein- und Ausblenden der Labels wer-
     den gegebenenfalls den Eigenschaften smln und rmln zugeordnet. smln
     wird im Normalfall nach ein oder mehreren pln-Folgen ausgegeben, um
     sicherzustellen, daß die Änderung sich auf die Bildschirmanzeige aus-
     wirkt.

   Abschnitt 1-9: Tabstopps und ihre Initialisierung
     Wenn Hardware-Tabstopps in das Gerät einprogrammiert sind, kann das
     Kommando für den Sprung zum nächsten Tabulatorstopp bei der Eigen-
     schaft ht angegeben werden (im Normalfall handelt es sich hierbei um


Seite 30                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     CTRL-I). Das Kommando für den Sprung zum unmittelbar vorhergehenden
     Tabstopp kann bei der Eigenschaft cbt angegeben werden. Wenn die Tabu-
     latorzeichen laut tty-Modi vom Rechner durch Leerzeichen ersetzt und
     nicht an das Gerät übermittelt werden, sollten die Programme nicht mit
     den Eigenschaften ht oder cbt arbeiten (selbst wenn es möglich wäre),
     da der Benutzer die Tabstopps möglicherweise nicht ordnungsgemäß
     gesetzt hat. Wenn in das Gerät Hardware-Tabstopps einprogrammiert wur-
     den, die nach dem Starten des Geräts zunächst in einem Abstand von n
     Leerzeichen eingerichtet werden, sollte der Abstand zwischen den Tab-
     stopps (Anzahl der Leerzeichen) beim numerischen Parameter it angege-
     ben werden. Anhand dieses Parameters wird normalerweise von tput init
     [siehe tput(1)] festgestellt, ob die Hardware-Tabstopps in Leerzeichen
     umgewandelt und ob Tabstopps eingerichtet werden sollen. Wenn die Tab-
     stopps eines Gerät im nichtflüchtigen Speicher abgespeichert werden
     können, kann die terminfo-Beschreibung davon ausgehen, daß sie ord-
     nungsgemäß eingerichtet sind. Die Kommandos zum Einrichten und Löschen
     von Tabstopps können gegebenenfalls bei den Eigenschaften tbc (Alle
     Tabstopps löschen) und hts (Tabstopp in der aktuellen Spalte jeder
     Zeile einrichten) angegeben werden.

     Außerdem gibt es die Eigenschaften is1, is2 und is3 (Initialisierung
     des Geräts), iprog (der Pfadname eines Programms zur Initialisierung
     des Geräts) sowie if (der Name einer Datei mit ausführlichen Initiali-
     sierungs-Strings). Es wird davon ausgegangen, daß das Gerät durch
     diese Strings in Modi geschaltet wird, die mit dem übrigen Inhalt der
     terminfo-Beschreibung konsistent sind. Diese Strings müssen bei jeder
     Anmeldung des Benutzers an das Gerät übermittelt und in der folgenden
     Reihenfolge ausgeführt werden: Ausführen des Programms mit iprog; Aus-
     gabe von is1; Ausgabe von is2; Randeinstellungen mit mgc, smgl und
     smgr; Einrichten der Tabulatorstopps mit tbc und hts; Ausgabe der
     Datei mit if; Ausgabe von is3. Hierzu wird im Normalfall tput mit der
     Option init aufgerufen.

     Ein Großteil der Initialisierung wird mit is2 erledigt. Das Einrichten
     von speziellen Gerätemodi ohne das Kopieren von Strings kann durchge-
     führt werden, indem die allgemeinen Kommandofolgen bei is2 und die Son-
     derfälle bei is1 und is3 angegeben werden. Kommandofolgen, mit denen
     aus einem vollkommen unbekannten Zustand heraus ein Reset möglich ist,
     können - analog zu is1, is2, is3 und if - bei rs1, rs2, rf und rs3
     angegeben werden. (Eine andere Möglichkeit besteht darin, die
     Initialisierungs-Folgen in Dateien im Verzeichnis
     /usr/share/lib/tabset/* einzubringen, die bei den Eigenschaften if und
     rf angegeben werden. Diese Möglichkeit wird jedoch nur selten benutzt.
     Im Normalfall sollte das Initialisieren und Zurücksetzen mit Hilfe von
     Strings erfolgen.) Diese Strings werden von der tput-Option reset
     benutzt, die immer dann aufgerufen wird, wenn das Terminal sich im
     Zustand der Verklemmung befindet. Die Kommandos werden rs1, rs2, rs3
     und rf normalerweise nur dann zugeordnet, wenn sie sich störend auf die
     Bildschirmanzeige auswirken und beim Anmelden nicht unbedingt notwendig
     sind. So würde das Kommando zum Einschalten der 80-Spalten-Anzeige auf
     dem Terminal normalerweise bei is2 angegeben. Allerdings führt dies auf
     einigen Terminals zu einem störenden Effekt auf dem Bildschirm;


Seite 31                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     außerdem ist es im Normalfall überhaupt nicht notwendig, da das Termi-
     nal in der Regel bereits für die 80-Spalten-Anzeige konfiguriert ist.

     Komplexere Kommandofolgen zum Einrichten von Tabstopps können mit tbc
     und hts nicht beschrieben werden; in einem derartigen Fall kann die
     Kommandofolge is2 oder if zugeordnet werden.

     Eine Randeinstellung kann mit mgc gelöscht werden (Informationen über
     die Kommandos zum Einstellen und Löschen von Rändern finden Sie im
     Abschnitt DRUCKEREIGENSCHAFTEN).

   Abschnitt 1-10: Verzögerungen
     Bei einigen Eigenschaften können Verzögerungen angegeben werden, die
     der tty-Treiber durchführen soll. Diese Verzögerungen werden in erster
     Linie auf Hardcopy-Terminals benötigt und werden von tput init zur
     Einstellung der tty-Modi benutzt. Mit Verzögerungen, die bei den
     Eigenschaften cr, ind, cub1, ff und tab angegeben werden, können die
     entsprechenden Verzögerungs-Bits im tty-Treiber gesetzt werden. Wenn
     die Eigenschaft pb (padding baud rate - Mindest-Baudrate für Verzöge-
     rungszeichen) angegeben ist, werden die Verzögerungszeichen unterhalb
     der bei pb angegebenen Baudrate ignoriert.

   Abschnitt 1-11: Statuszeile
     Wenn auf dem Terminal eine zusätzliche Statuszeile angezeigt wird, die
     normalerweise nicht von Programmen genutzt wird, kann ein entsprechen-
     der Eintrag in die terminfo-Datei eingefügt werden. Auf einigen Termi-
     nals gibt es unterhalb der untersten Zeile eine Zusatzzeile, in die
     der Cursor immer dann über die Angabe einer normalen Adresse bewegt
     werden kann, wenn in der terminfo-Datei die Eigenschaft hs enthalten
     ist (so haben beispielsweise die Terminals vom Typ Heathkit h19 eine
     25. Zeile und Terminals vom Typ VT100 in ihrem 23-zeiligen Scroll-
     Bereich eine 24. Zeile). Spezielle Strings, mit denen der Cursor in
     eine bestimmte Spalte der Statuszeile und wieder zurück bewegt werden
     kann, können bei den Eigenschaften tsl und fsl angegeben werden (nach
     fsl muß der Cursor sich an derselben Position befinden wie vor tsl.
     Dies kann gegebenenfalls auch erreicht werden, indem die Strings sc
     und rc in tsl und fsl eingefügt werden). Bei der Eigenschaft tsl kann
     mit einem Einzelparameter die Nummer der Spalte in der Statuszeile
     angegeben werden, in die der Cursor bewegt werden soll.

     Auf einer Reihe von Terminals können innerhalb der Statuszeile auch
     Escape-Sequenzen und sonstige spezielle Kommandos (z. B. Tabulator-
     sprung) benutzt werden; dies kann mit der Eigenschaft eslok angegeben
     werden. Der String zum Ausblenden (bzw. sonstigen Unsichtbarmachen)
     der Statuszeile wird bei der Eigenschaft dsl angegeben. Den Eigen-
     schaften sc und rc können die Kommandos zum Speichern und Wiederher-
     stellen der Cursor-Position zugeordnet werden. Die Breite der Status-
     zeile ist im Normalfall auf die Breite der Bildschirmanzeige festge-
     legt (z. B. cols). Auf einigen Terminals gibt es hier jedoch Unter-
     schiede, da z. B. keine vollständige Zeile geladen werden kann; die
     abweichende Breite der Statuszeile kann dann bei dem numerischen Wert
     wsl angegeben werden.


Seite 32                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

   Abschnitt 1-12: Grafikzeichen
     Wenn das Gerät einen Alternativ-Zeichensatz zum Zeichnen von Linien
     unterstützt, wird die Abbildung der grafischen Symbole auf die Zeichen
     bei acsc angegeben. Die Definition dieses Strings basiert auf dem
     Alternativ-Zeichensatz des DEC VT100-Terminals, der um einige Zeichen
     des Terminals AT&T 4410v1 ergänzt wurde.

                                                  vt100+
                      Symbol                      Zeichen
                      ___________________________________
                      Pfeil nach rechts              +
                      Pfeil nach links               ,
                      Pfeil nach unten               .
                      Quadratisches Blocksymbol      0
                      Laternen-Symbol                I
                      Pfeil nach oben                -
                      Raute                          `
                      Schachbrett                    a
                      Grad-Symbol                    f
                      Plus/Minus                     g
                      Feld von Quadraten             h
                      Untere rechte Ecke             j
                      Obere rechte Ecke              k
                      Obere linke Ecke               l
                      Untere linke Ecke              m
                      Plus                           n
                      Scan-Zeile 1                   o
                      Horizontale Linie              q
                      Scan-Zeile 9                   s
                      Linkes T-Stück                 t
                      Rechtes T-Stück                u
                      Unteres T-Stück                v
                      Oberes T-Stück                 w
                      Vertikaler Strich              x
                      Punkt                          ~

     Um den Grafikzeichensatz eines neuen Geräts zu beschreiben, wird in
     die obenstehende Tabelle am besten eine dritte Spalte mit den Zeichen
     für das neue Gerät eingefügt, die auf dem Gerät immer dann das ent-
     sprechende Symbol erzeugen, wenn das Gerät in den Alternativ-Zeichen-
     satz umgeschaltet worden ist. Beispiel:

                                     vt100+
               Symbol                Zeichen   neues tty-Zeichen
               _________________________________________________
               Obere linke Ecke         l              R
               Untere linke Ecke        m              F
               Obere rechte Ecke        k              T
               Untere linke Ecke        j              G
               Horizontaler Strich      q              ,




Seite 33                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

               Vertikaler Strich        x              .

     Schreiben Sie jetzt die Zeichen in ihrer Reihenfolge von links nach
     rechts auf (Beispiel: acsc=lRmFkTjGq\,x.).

     In terminfo können Sie mehrere Zeichensätze definieren. Nähere Infor-
     mationen hierzu finden Sie in Abschnitt 2-5.

   Abschnitt 1-13: Farbmanipulation
     Im folgenden wird auf zwei Systeme zur Farbmanipulation eingegangen:
     das Tektronix- und das HP-System. Beim Tektronix-System wird ein Satz
     aus N vordefinierten Farben (im Normalfall 8) benutzt, aus dem der
     Benutzer die aktuellen Vordergrund- und Hintergrundfarben auswählen
     kann. Somit kann ein Terminal bis zu N Farben unterstützen, die in N*N
     Farbkombinationen gleichzeitig auf dem Bildschirm erscheinen können.
     Beim HP-System kann der Benutzer die Vordergrundfarben nur in Verbin-
     dung mit der Hintergrundfarbe definieren und umgekehrt. Somit muß er
     jede Farbkombination fest definieren. Auf diese Weise können bis zu M
     Farbkombinationen aus 2*M verschiedenen Farben definiert werden. Die
     meisten gängigen Farbterminals arbeiten mit einer der beiden beschrie-
     benen Systeme.

     Bei den numerischen Variablen colors und pairs wird die Anzahl der
     Farben und Farbkombinationen definiert, die gleichzeitig auf dem Bild-
     schirm dargestellt werden können. Die Möglichkeit, eine Farbdefinition
     auf einem Terminal zu ändern (z. B. auf den Terminals Tektronix 4100
     und 4200), sollte mit der Eigenschaft ccc (can change color) angegeben
     werden. Zur Änderung einer Farbdefinition (Tektronix 4200) wird initc
     (initialize color) benutzt. Bei diesen Eigenschaften sind vier Argu-
     mente erforderlich: die Farbnummer (im Bereich 0 bis colors-1) sowie
     drei RGB-Werte (Red, Green, Blue - Rot, Grün, Blau) bzw. drei HLS-
     Farben (Hue, Lightness, Saturation - Farbton, Helligkeit, Sättigung).
     Die unterstützten RGB- und HLS-Werte sind terminalabhängig.

     Wenn das Terminal ANSI-Escape-Sequenzen zum Einstellen von Vorder- und
     Hintergrund unterstützt, sollten diese als setab bzw. setaf codiert
     werden. Wenn das Terminal andere Escape-Sequenzen für Vorder- und Hin-
     tergrund unterstützt, sollten diese als setb bzw. setf codiert werden.
     Die Funktion vidputs() und die Aktualisierungsfunktionen (refresh)
     verwenden setab und setaf, falls diese Eigenschaften definiert sind.
     Für jede dieser Eigenschaften muß ein Argument angegeben werden, und
     zwar die Farbnummer. Standardmäßig werden den ersten acht Farben (0-7)
     die Farben Schwarz, Rot, Grün, Gelb, Blau, Magenta, Cyan, Weiß (in
     dieser Reihenfolge) zugeordnet. Es kann jedoch zu Neuzuordnungen von
     Farben kommen, oder es besteht die Möglichkeit, daß die zugrundelie-
     gende Hardware diese Farben nicht unterstützt. Zuordnungen für weitere
     vom Gerät unterstützte Farben (also Nummern über 7) liegen im Ermessen
     dessen, der den terminfo-Eintrag schreibt.

     Zur Initialisierung eines Farbpaars (HP-Methode) wird initp (initia-
     lise pair) benutzt. Hierzu sind sieben Argumente erforderlich: Die
     Nummer eines Farbpaars (Bereich= 0 bis pairs-1) und sechs RGB-Werte:


Seite 34                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     drei für den Vordergrund und anschließend drei für den Hintergrund.
     (Beide Dreiergruppen sollten die Reihenfolge RGB aufweisen.) Bei initc
     oder initp sollten die RGB- bzw. HLS-Argumente in der Reihenfolge
     "Rot, Grün, Blau" bzw. "Farbton, Helligkeit, Sättigung" angegeben wer-
     den. Benutzen Sie scp (set colour-pair), um das Farbpaar zu aktivie-
     ren. Dabei wird über ein Einzelargument die Nummer des Farbpaars ange-
     geben.

     Die Tektronix-Terminals vom Typ 4100 arbeiten bei der Farbdarstellung
     ausschließlich mit dem HLS-Farbsystem. Für derartige Terminals (bzw.
     umschaltbare Terminals, die auch den HLS-Modus unterstützen) muß der
     boolesche Wert hls definiert werden; dadurch wird die curses-Funktion
     initcolor angewiesen, ihre RGB-Argumente nach HLS umzuwandeln, bevor
     Sie sie an das Terminal übermittelt. Bei den letzten drei Argumenten
     des Strings initc würde es sich dann um HLS-Werte handeln.

     Wenn ein Terminal die Änderung der Farbdefinition unterstützt, aber
     nicht mit dem RGB- oder HLS-Farbsystem arbeitet, müssen die Farben
     entweder auf RGB oder auf HLS abgebildet werden.

     Zur Definition einer bestimmten Vorder- oder Hintergrundfarbe wird
     setaf (set ANSI foreground) bzw. setab (set ANSI background) benutzt.
     Bei diesen Eigenschaften muß über einen Einzelparameter die Nummer der
     Farbe angegeben werden. Mit initp (initialize pair) kann eine Farbkom-
     bination (HP) definiert werden. Dafür müssen fünf Parameter angegeben
     werden: die Nummer einer Farbkombination (Bereich=0 bis pairs-1),
     außerdem sechs RGB-Werte: drei für den Vordergrund sowie drei für den
     Hintergrund. (Die Farben in jeder Gruppe sollten in der RGB-Reihen-
     folge angegeben werden.) Bei initc bzw. initp sollten die RGB- bzw.
     HLS-Argumente in der Reihenfolge Rot, Grün, Blau bzw. Farbton, Hellig-
     keit, Sättigung) angegeben werden. Um eine Farbkombination zur aktuel-
     len Farbkombination zu machen, benutzen Sie scp (set color-pair).
     Dabei wird über einen Einzelparameter die Nummer der Farbkombination
     angegeben.

     Auf einigen Terminals (z. B. den meisten Farbterminal-Emulationen für
     PCs) können Bildschirmbereiche mit der aktuellen Hintergrundfarbe
     gelöscht werden. In derartigen Fällen sollte bce (background color
     erase) definiert werden. Die Variable op (original pair) enthält eine
     Kommandosequenz zum Einrichten der der Vorder- und Hintergrundfarben,
     die auch beim Einschalten des Terminals gültig waren. In ähnlicher
     Weise enthält oc (original color) eine Steuerzeichenfolge zur Einstel-
     lung sämtlicher Farben (Tektronix) bzw. Farbkombinationen (HP) auf
     dieselben Werte, die beim Einschalten des Terminals gültig waren.

     Auf einigen Farbterminals werden Anzeigeattribute durch Farben
     ersetzt. Derartige Anzeigeattribute sollten nicht mit Farben kombi-
     niert werden. Die Informationen über diese Anzeigeattribute sollten
     der Variablen ncv (no color video) zugeordnet werden. Zwischen den
     neun niedrigstwertigen Bits dieser Variablen und den Anzeigeattributen
     besteht eine direkte Entsprechung, die in der folgenden Tabelle
     gezeigt wird.


Seite 35                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

         Attribut      Bit-Position   Dezimalwert   Setzende Eigenschaft
       _________________________________________________________________
       WASTANDOUT           0               1      sgr, Parameter 1
       WAUNDERLINE          1               2      sgr, Parameter 2
       WAREVERSE            2               4      sgr, Parameter 3
       WABLINK              3               8      sgr, Parameter 4
       WADIM                4              16      sgr, Parameter 5
       WABOLD               5              32      sgr, Parameter 6
       WAINVIS              6              64      sgr, Parameter 7
       WAPROTECT            7             128      sgr, Parameter 8
       WAALTCHARSET         8             256      sgr, Parameter 9
       WAHORIZONTAL         9             512      sgr1, Parameter 1
       WALEFT              10            1024      sgr1, Parameter 2
       WALOW               11            2048      sgr1, Parameter 3
       WARIGHT             12            4096      sgr1, Parameter 4
       WATOP               13            8192      sgr1, Parameter 5
       WAVERTICAL          14           16384      sgr1, Parameter 6

     Wenn ein bestimmtes Anzeigeattribut nicht mit Farben kombiniert werden
     soll, muß das zugehörige ncv-Bit auf 1 gesetzt werden, andernfalls auf
     Null. Die Informationen, die der Variablen ncv zugeordnet werden,
     ergeben sich durch die Addition aller Dezimalwerte, die den jeweili-
     gen, nicht mit Farben kombinierbaren Attributen zugeordnet sind. Wenn
     das Terminal die Attribute Umkehranzeige (Bit-Nummer 2 und Dezimalwert
     4) und Fett (Bit-Nummer 5 und Dezimalwert 32) durch Farben simuliert,
     muß ncv der Wert 36 (4 + 32) zugeordnet werden.

   Abschnitt 1-14: Verschiedenes
     Wenn Verzögerungen auf dem Terminal nicht über Füllzeichen realisiert
     werden, kann das betreffende Zeichen bei pad angegeben werden. Es wird
     lediglich das erste Zeichen des Strings bei pad benutzt. Wenn das Ter-
     minal nicht mit Füllzeichen arbeiten, geben Sie npc an.

     Die Möglichkeit, den Cursor auf dem Terminal-Bildschirm um eine halbe
     Zeile nach oben bzw. unten zu bewegen, kann bei den Eigenschaften hu
     (half-line up) und hd (half-line down) angegeben werden. Diese Eigen-
     schaften werden hauptsächlich zum Hoch- und Tiefstellen von Zeichen
     auf Hardcopy-Terminals benutzt. Wenn ein Hardcopy-Terminal einen Vor-
     schub zur nächsten Seite ausführen kann, wird die zugehörige Kommando-
     folge bei der Eigenschaft ff angegeben (im Normalfall CTRL-L).

     Auf manchen Terminals gibt es ein Kommando, mit dem man ein bestimmtes
     Zeichen wiederholen kann, um eine größere Anzahl gleicher Zeichen
     schneller übermitteln zu können; dieses Kommando wird dem parametri-
     sierten String rep zugeordnet, der zwei Parameter hat: der erste Para-
     meter steht für das zu wiederholende Zeichen, der zweite für die
     Anzahl der Wiederholungen. Somit ist tparm(repeatchar, 'x', 10)
     gleichbedeutend mit xxxxxxxxxx.






Seite 36                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Auf einigen Terminals wie z. B. Tektronix 4025 kann ein Kommandozei-
     chen eingestellt werden; dieses Zeichen kann mit der cmdch angegeben
     werden. Damit wird das Standard-Kommandozeichen ausgewählt, das bei
     allen Eigenschaften benutzt wird. Einige UNIX Systeme verfahren fol-
     gendermaßen: Wenn die Umgebungsvariable CC definiert ist, wird das
     Standard-Kommandozeichen bei jedem Vorkommen durch die Zeichen bei CC
     ersetzt.

     In einigen Terminal-Beschreibungen wird kein Terminal eines speziellen
     Typs wie z. B. switch, dialup, patch und network definiert; derartige
     Terminal-Beschreibungen sollten die Eigenschaft gn (generic) enthal-
     ten, so daß das Programm eine entsprechende Meldung ausgeben kann,
     wenn es nicht mit dem Terminal kommunizieren können (diese Eigenschaft
     eignet sich nicht Beschreibungen von Terminals vom Typ virtual, deren
     Escape-Sequenzen bekannt sind). Wenn das Terminal durch das Reliant
     UNIX Protokoll für virtuelle Bildschirme unterstützt wird, kann die
     Terminal-Nummer bei der Eigenschaft vt angegeben werden. Bei der
     Eigenschaft rfi sollte eine Sequenz angegeben werden, die vom System
     zwischen dem Senden und Empfangen von Zeichen übermittelt werden
     sollte.

     Wenn das Gerät bei der Flußsteuerung mit dem XON/XOFF-Protokoll arbei-
     tet, tragen Sie die Eigenschaft xon ein. Sie sollten in diesem Fall
     aber dennoch mit Verzögerungen arbeiten, damit die Programme zwischen
     verschiedenen Eigenschaften vergleichen und die effektivste (kosten-
     günstigste) Möglichkeit zum Beseitigen eines Überlaufs ermitteln kön-
     nen; es werden dann aber keine echten Füllzeichen übermittelt. Die
     Escape-Sequenzen zum Ein- und Ausschalten des XON/XOFF-Protokolls kön-
     nen bei smxon und rmxon angegeben werden. Wenn für das Handshaking
     nicht die Zeichen ^S und ^Q benutzt werden, können die betreffenden
     Zeichen bei den Eigenschaften xonc und xoffc angegeben werden.

     Wenn es auf dem Terminal eine "Meta-Taste" mit der Funktion der
     SHIFT-Taste gibt, durch die das achte Bit jedes übermittelten Zeichens
     gesetzt wird, so kann dies mit der Eigenschaft km angegeben werden.
     Andernfalls geht das Programm davon aus, daß das achte Bit das Pari-
     tätsbit ist und setzt es im Normalfall zurück. Die Strings zum Ein-
     und Ausschalten dieses Meta-Modus können bei den Eigenschaften smm und
     rmm angegeben werden.

     Wenn nicht alle Zeilen im Speicher des Terminals auf eine Bildschirm-
     seite passen, kann die Anzahl der Zeilen im Speicher bei der Eigen-
     schaft lm angegeben werden. Mit lm#0 wird angegeben, daß die Anzahl
     der Zeilen zwar nicht festgelegt ist, der Inhalt des Speichers aber
     nach wie vor nicht auf eine Bildschirmseite paßt.

     Strings zur Steuerung eines an das Terminals angeschlossenen Behelfs-
     druckers können folgendermaßen angegeben werden: mc0 - Aktuellen
     Inhalt des Bildschirms ausdrucken; mc4 - Drucker ausschalten; mc5 -
     Drucker einschalten. Bei eingeschaltetem Drucker wird sämtlicher Text,
     der an das Terminal übermittelt wird, zum Drucker weitergeleitet. Bei
     der speziellen Eigenschaft mc5p kann ein Parameter zur Angabe einer


Seite 37                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Anzahl von Zeichen angegeben werden; der Drucker bleibt dann so lange
     eingeschaltet, bis die beim Parameter angegebene Zeichenzahl ausge-
     druckt worden ist. Danach wird der Drucker ausgeschaltet. Der Parame-
     ter sollte maximal den Wert 255 haben. Wenn der Text bei eingeschalte-
     tem Drucker nicht auf dem Terminal-Bildschirm angezeigt wird, tragen
     Sie die Eigenschaft mc5i (Drucker stillgelegt) ein; dies bewirkt, daß
     sämtlicher Text (auch mc4) unverändert an den Drucker übermittelt
     wird.

   Abschnitt 1-15: Sonderfälle
     Das Schema der terminfo-Datenbasis ist für die meisten Terminals
     geeignet. Allerdings gibt es Terminals, die etwas von diesem Schema
     abweichen und in terminfo gesondert behandelt werden müssen. Dies
     sollte jedoch nicht als Fehler oder Nachteil des Terminals mißverstan-
     den werden; hier liegen lediglich Unterschiede zwischen dem zugrunde-
     liegenden Schema und der tatsächlichen Hardware vor. So gibt es
     Geräte, die weniger verbreitet sind, oder die nicht alle Elemente des
     terminfo-Schemas unterstützen.

     Für Terminals, die kein Tilde-Zeichen (~) anzeigen können, sollte die
     Eigenschaft hz in der terminfo-Beschreibung enthalten sein (dies ist
     z. B. bei einigen Hazeltine-Terminals der Fall).

     Für Terminals, die einen unmittelbar auf einen am-Zeilenumbruch fol-
     genden Zeilenvorschub ignorieren (z. B. das Terminal Concept 100),
     sollte die Eigenschaft xenl enthalten sein. Für Terminals, auf denen
     der Cursor bis zum Empfang eines weiteren Zeichens in der äußerst
     rechten Spalte bleibt und nicht sofort in die nächste Zeile springt,
     sollte ebenfalls die Eigenschaft xenl enthalten sein (dies ist z. B.
     bei VT100-Terminals der Fall).

     Für Terminals, auf denen zum Verlassen des Hervorhebungsmodus die
     Eigenschaft el notwendig ist (d. h. hervorgehobene Zeichen automatisch
     ebenfalls durch hervorgehobene und nicht durch normale Zeichen ersetzt
     werden), sollte die Eigenschaft xhp angegeben werden.

     Für diejenigen Teleray-Terminals, auf denen sämtliche Tabulatorzeichen
     in Leerzeichen umgewandelt werden, sobald der Cursor über sie bewegt
     wird, sollte die Eigenschaft xt (nicht-erhaltende Tabulatorzeichen)
     enthalten sein. Durch diese Eigenschaft wird auch angegeben, daß her-
     vorgehobener Text nicht einfach durch "normalen" Text ersetzt werden
     kann; zum Ausschalten des Hervorhebungsmodus muß daher statt dessen
     mit dem Löschen und Einfügen von Zeilen gearbeitet werden.

     Für diejenigen Beehive Superbee-Terminals, die weder das Escape-Zei-
     chen noch CTRL-C übermitteln, sollte die Eigenschaft xsb angegeben
     werden; dadurch wird die Funktionstaste f1 für das Escape-Zeichen und
     die Funktionstaste f2 für CTRL-C benutzt.






Seite 38                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

   Abschnitt 1-16: Ähnliche Terminals
     Bei zwei Terminals mit sehr großen Ähnlichkeiten kann angegeben wer-
     den, daß das eine mit einigen wenigen Ausnahmen fast vollständig mit
     dem anderen übereinstimmt. Das Terminal mit den ähnlichen Eigenschaf-
     ten kann bei dem parametrisierten String use angegeben werden. Die vor
     use angegebenen Terminal-Eigenschaften heben die Eigenschaften des
     Terminals auf, das durch use aufgerufen wird. Zum Löschen einer Eigen-
     schaft kann der Eigenschaftsdefinition der Parameter xx@ vorangestellt
     werden, wobei xx für die Eigenschaft steht. So wird beispielsweise im
     Eintrag

          att4424-2|Teletype 4424 in display function group ii,
             rev@, sgr@, smul@, use=att4424,

     ein Terminal vom Typ AT&T 4424 definiert, das nicht die Eigenschaften
     rev, sgr und smul unterstützt und somit keinen Text hervorheben kann.
     Auf diese Weise können verschiedene Terminal-Modi oder verschiedene
     Benutzer-Präferenzen angegeben werden. Es können auch zwei oder mehr
     use-Eigenschaften enthalten sein.

TEIL 2: DRUCKEREIGENSCHAFTEN

     In der terminfo-Datenbasis können die Eigenschaften sowohl von Druk-
     kern als auch von Terminals definiert werden. Die Eigenschaften, die
     für Drucker und Terminals zur Verfügung stehen, sind in den beiden
     Listen unter GERÄTEEIGENSCHAFTEN enthalten; hier sind die Eigenschaf-
     ten nach Variablen- und nach Eigenschaftsnamen aufgeführt.

   Abschnitt 2-1: Runden von Werten
     Da bei parametrisierten Strings nur Ganzzahlen angegeben werden kön-
     nen, sollte bei der Erstellung einer terminfo-Datenbasis darauf geach-
     tet werden, daß die eingegebenen Strings nur mit gerundeten numeri-
     schen Werten arbeiten. Dies sollte bei der Entwicklung von Anwendungen
     berücksichtigt werden; ein Wert sollte auf jeden Fall auf die nächste
     Ganzzahl auf- oder abgerundet werden, bevor er einem parametrisierten
     String zugeordnet wird.

   Abschnitt 2-2: Auflösung eines Druckers
     Als Auflösung eines Druckers bezeichnet man den kleinsten Abstand zwi-
     schen den Zeichen, in dem er ausdrucken kann. Ein Drucker hat im all-
     gemeinen unterschiedliche, voneinander unabhängige Auflösungen in ver-
     tikaler und horizontaler Richtung. So kann die vertikale Auflösung
     eines Druckers ermittelt werden, indem der kleinstmögliche Abstand
     zwischen den Grundlinien von aufeinanderfolgenden Druckzeilen ausge-
     messen wird. Die horizontale Auflösung dagegen wird ermittelt, indem
     der kleinstmögliche Abstand zwischen den linken Kanten von aufeinan-
     derfolgenden identischen Zeichen auf der Druckseite ausgemessen wird.

     Ein Drucker ist im Normalfall in der Lage, mit einer gleichmäßigen
     vertikalen und horizontalen Auflösung auszudrucken. Aus der Sicht von
     terminfo findet das Ausdrucken innerhalb einer einheitlichen Matrix
     statt: Alle Zeichen werden relativ zu jeder Zelle der Matrix an


Seite 39                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     vordefinierten Positionen gedruckt. Außerdem hat jede Zelle dieselbe
     Größe, die von der kleinstmöglichen horizontalen und vertikalen
     Schrittweite abhängt (diese hängt wiederum von der Auflösung ab). Die
     Größe einer Zelle kann geändert werden; darauf wird an einer späteren
     Stelle dieses Kapitels eingegangen.

     Auf vielen Druckern können Ausdrucke in Proportionalschrift erstellt
     werden, d. h., der horizontale Zeichenabstand hängt von der tatsächli-
     chen Breite des zuletzt ausgedruckten Zeichens ab. Diese Eigenschaft
     kann in der terminfo-Datenbasis nicht direkt beschrieben werden;
     allerdings unterstützt sie genügend Eigenschaftsdefinitionen, mit der
     eine Anwendung das Ausdrucken in Proportionalschrift simulieren kann.

     Ein Drucker muß nicht nur in der Lage sein, die Zeichen der horizonta-
     len und vertikalen Auflösung entsprechend in einem kleinstmöglichen
     Abstand zu drucken, sondern auch den Druckkopf zu einer Zeichenposi-
     tion zu bewegen, deren Abstand von der aktuellen Zeichenposition aus
     ein ganzzahliges Vielfaches des kleinstmöglichen Zeichenabstands
     beträgt. Der Abstand zwischen der aktuellen und der neuen Zeichenposi-
     tion kann maximal die Länge oder Breite einer Druckseite betragen.

     Einige Drucker können in verschiedene Druck-Modi umgeschaltet werden,
     in denen sie mit unterschiedlicher Auflösung ausdrucken. Im Normal-
     Modus arbeiten die bisherigen terminfo-Eigenschaften, analog zu den
     Bildschirm-Terminals, mit Spalten und Zeilen. Somit würde die bisher-
     ige Eigenschaft lines die Länge der Druckseite in Zeilen und die
     Eigenschaft cols die Breite der Druckseite in Spalten angeben. Im
     Mikro-Modus arbeiten viele terminfo-Eigenschaften mit Zeilen- und
     Spalten-Inkrements. Auf einigen Druckern kann der Mikro-Modus zusätz-
     lich zum Normal-Modus eingestellt werden, so daß mit allen Eigenschaf-
     ten gleichzeitig gearbeitet werden kann.

   Abschnitt 2-3: Angabe des Auflösungsvermögens eines Druckers
     Zur Angabe des Auflösungsvermögens eines Druckers gibt es verschiedene
     Möglichkeiten. Bei jeder dieser Möglichkeiten wird die Auflösung als
     die Anzahl der kleinstmöglichen Schritte pro Abstand angegeben:

             Charakteristische Anzahl der kleinstmöglichen Schritte
             ______________________________________________________
                      orhi   Schritte pro Zoll horizontal
                      orvi   Schritte pro Zoll vertikal
                      orc    Schritte pro Spalte
                      orl

     Beim Drucken im Normal-Modus wird der Druckkopf (außer in einigen noch
     zu beschreibenden Sonderfällen) nach jedem gedruckten Zeichen zur
     nächsten Spalte bewegt; der Abstand, um den der Druckkopf dabei bewegt
     wird, entspricht der Auflösung pro Spalte. Auf einigen Druckern wird
     der Druckkopf automatisch in die nächste Zeile bewegt, wenn ein Zei-
     chen an der äußerst rechten Position gedruckt wird; der Abstand, um
     den der Druckkopf in vertikaler Richtung bewegt wird, entspricht der
     Auflösung pro Zeile. Beim Drucken im Mikro-Modus können die Abstände


Seite 40                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     unabhängig von der Auflösung sein; auf einigen Druckern können sie
     sogar Null sein.

          Automatisches Verschieben des Druckkopfs nach dem Ausdrucken
          ____________________________________________________________
               Normal-Modus:
               orc   Anzahl der Schritte in horizontaler Richtung
               orl   Anzahl der Schritte in vertikaler Richtung

               Mikro-Modus:
               mcs   Anzahl der Schritte in horizontaler Richtung
               mls   Anzahl der Schritte in vertikaler Richtung

     Auf einigen Druckern können Zeichen in Breitschrift ausgedruckt wer-
     den. Beim Ausdrucken eines Breitschrift-Zeichens im Normal-Modus wird
     der Druckkopf in einigen Fällen nicht um denselben Abstand nach rechts
     bewegt wie beim Ausdrucken eines Zeichens normaler Breite. Ebenso wird
     der Druckkopf beim Ausdrucken eines Breitschrift-Zeichens im Mikro-
     Modus in einigen Fällen um eine andere Distanz verschoben als beim
     Ausdrucken eines Zeichens normaler Breite. Zwischen diesen Unterschie-
     den gibt es jedoch einen Zusammenhang: Wenn der Druckkopf beim Aus-
     drucken eines normalen Zeichens sowohl im Normal- als auch im Mikro-
     Modus um denselben Abstand nach rechts bewegt wird (mcs=orc), so gilt
     dies auch für das Ausdrucken eines Breitschrift-Zeichens im Normal-
     und Mikro-Modus. Dies bedeutet aber nicht unbedingt, daß der Abstand
     zwischen Zeichen normaler Breite gleich groß ist wie der zwischen
     Breitschrift-Zeichen, sondern nur, daß die Abstände sich bei einem
     Wechsel vom Normal- in den Mikro-Modus nicht ändern. Wenn jedoch der
     Abstand, um den der Druckkopf beim Ausdrucken von normalen Zeichen
     nach rechts bewegt wird, im Mikro-Modus und mit Normal-Modus unter-
     schiedlich ist (mcs<orc), so wird davon ausgegangen, daß der Druckkopf
     beim Ausdrucken eines Breitschrift-Zeichens im Mikro-Modus um densel-
     ben Abstand nach rechts bewegt wird. Dieser Sachverhalt wird durch die
     nachfolgende Tabelle veranschaulicht.

________________________________________________________________________________
Autom. Verschieben des Druckkopfs nach dem Ausdrucken eines Breitschriftzeichens
             Normal-Modus oder Mikro-Modus (mcs = orc):
             widcs    Anzahl der Schritte in horizontaler Richtung

             Mikro-Modus (mcs < orc):
             mcs      Anzahl der Schritte in horizontaler Richtung

     Für viele Drucker gibt es Steuerzeichenfolgen zur Änderung des Zei-
     chenabstands (Anzahl der Zeilen pro Zoll) und des Zeilenabstands
     (Anzahl der Zeilen pro Zoll). Durch diese Steuer-Sequenzen wird die
     Auflösung des Druckers verändert, wobei die Art der Änderung vom Druk-
     ker abhängt:






Seite 41                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

                      Änderung des Zeichen-/Zeilenabstands
          ____________________________________________________________
          cpi    Zeichenabstand ändern
          cpix   Wenn es gesetzt ist, ändert cpi orhi, andernfalls orc

          lpi    Zeilenabstand ändern
          lpix   Wenn es gesetzt ist, ändert lpi orvi, andernfalls orl

          chr    Anzahl der Schritte pro Spalte ändern
          cvr    Anzahl der Schritte pro Zeile ändern

     Bei den Strings cpi und lpi wird jeweils ein Argument für den Zeichen-
     abstand in Spalten (bzw. Zeichen) und Zeilen pro Zoll angegeben. Bei
     den Strings chr und cvr wird jeweils ein Argument für die Anzahl der
     Schritte pro Spalte bzw. Zeile angegeben.

     Ist in einer dieser Strings eine Steuerzeichenfolge enthalten, so wer-
     den damit die Werte von orc, orhi, orl und orvi geändert. Außerdem
     ändert sich der Abstand, um den der Druckkopf beim Ausdrucken eines
     Breitschrift-Zeichens bewegt wird (widcs), in Relation zu orc. In ähn-
     licher Weise ändert sich auch der Abstand beim Ausdrucken eines Zei-
     chens im Mikro-Modus (mcs) - mit einer Ausnahme: wenn für den Abstand
     der Wert 0 oder 1 angegeben wird, kommt es zu keiner Änderung.

     Programme, die mit cpi, lpi, chr oder cvr arbeiten, sollten die Auflö-
     sung des Druckers neu berechnen (ebenso wie sie andere Werte berechnen
     sollten - siehe unten 2-7: "Auswirkungen einer Änderung der Auflösung"
     und 2-6: "Rastergrafiken").

            Auswirkungen einer Änderung des Zeichen-/Zeilenabstands
        ________________________________________________________________
                          Vorher                            Nachher
        ________________________________________________________________
        Benutzung von cpi bei zurückgesetztem cpix:

        orhi'                                           orhi
                                                            orhi
        orc'                                            orc=Vcpi

        Benutzung von cpi bei gesetztem cpix:

        orhi'                                           orhi=orc.Vcpi
        orc'                                            orc











Seite 42                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

        Benutzung von lpi bei zurückgesetztem lpix:

        orvi'                                           orvi
                                                            orvi
        orl'                                            orl=Vlpi

        Benutzung von lpi bei gesetztem lpix:

        orvi'                                           orvi=orl.Vlpi
        orl'                                            orl

        Benutzung von chr:

        orhi'                                           orhi
        orc'                                            Vchr

        Benutzung von cvr:

        orvi'                                           orvi
        orl'                                            Vcvr

        Benutzung von cpi oder chr:
                                                                     orc
        widcs'                                          widcs=widcs'orc'
                                                                 orc
        mcs'                                            mcs=mcs'orc'

     Vcpi, Vlpi, Vchr und Vcvr sind die Argumente für cpi, lpi, chr bzw.
     cvr. Die alten Werte sind durch Hochkommata (') gekennzeichnet.

   Abschnitt 2-4: Eigenschaften zum Verschieben der aktuellen Position
     In der nachfolgenden Beschreibung bedeutet der Begriff "Verschieben",
     daß die aktuelle Position um einige Zeichen oder oder Zeilen versetzt
     wird. Auf einem Terminal mit Bildschirm ist die aktuelle Position die
     aktuelle Cursor-Position, auf einigen Druckern die Position des Druck-
     kopfs o. ä. (je nach Drucktechnik des Druckers). Die aktuelle Position
     ist also allgemein die Stelle, an der ein Zeichen bei der Ausgabe dar-
     gestellt würde.

     terminfo unterstützt Strings für Steuerzeichenfolgen, durch die die
     aktuelle Position um eine Reihe von ganzen Spalten oder Zeilen ver-
     schoben wird. Analog dazu gibt es Strings für Steuerzeichenfolgen,
     durch die die aktuelle Position um eine bestimmte Anzahl der kleinst-
     möglichen Schritte bewegt wird.










Seite 43                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

                Strings zum Verschieben der aktuellen Position
                _______________________________________________
                mcub1   Um 1 Schritt nach links verschieben
                mcuf1   Um 1 Schritt nach rechts verschieben
                mcuu1   Um 1 Schritt nach oben verschieben
                mcud1   Um 1 Schritt nach unten verschieben

                mcub    Um N Schritte nach links verschieben
                mcuf    Um N Schritte nach rechts verschieben
                mcuu    Um N Schritte nach oben verschieben
                mcud    Um N Schritte nach unten verschieben

                mhpa    Um N Schritte von links aus verschieben
                mvpa    Um N Schritte von oben aus verschieben

     Die letzten sechs Strings werden jeweils mit dem Argument N eingegeben.

     In einigen Fällen kann die aktuelle Position maximal um die Breite
     oder Länge einer Seite verschoben werden. Außerdem ist es auf einigen
     Druckern nicht möglich, eine Position links neben der aktuellen Posi-
     tion anzusteuern. Diese Einschränkungen können in terminfo berücksich-
     tigt werden.

             Verschieben der aktuellen Position - Einschränkungen
   _________________________________________________________________________
   mjump   Eingeschränkte Benutzung von mcub1, mcuf1, mcuu1, mcud1
   maddr   Eingeschränkte Benutzung von mhpa, mvpa

   xhpa    Wenn diese Variable gesetzt ist, kann die aktuelle Position nicht
           mit hpa und mhpa nach links verschoben werden
   xvpa    Wenn diese Variable gesetzt ist, kann die aktuelle Position nicht
           mit vpa und mvpa nach oben verschoben werden

     Einige Drucker unterstützen die oben beschriebenen Eigenschaften zum
     Verschieben der aktuellen Position nur im Mikro-Modus; für diese Fälle
     gibt es Strings, die die Steuerzeichenfolge zum Ein- und Ausschalten
     dieses Modus enthalten. Außerdem gibt es einen booleschen Wert für
     diejenigen Drucker, auf denen zur Rückkehr in den Normal-Modus die
     Übermittlung von Carriage Return genügt.

                          Mikro-Modus ein-/ausschalten
                   __________________________________________
                   smicm   Mikro-Modus EIN
                   rmicm   Mikro-Modus AUS

                   crxm    Ausschalten des Mikro-Modus mit cr

     Die Druckkopfbewegung an der äußerst rechten Zeichenposition unter-
     scheidet sich bei den verschiedenen Druckern. Auf einigen Druckern
     wird der Druckkopf nicht verschoben, auf anderen zum Anfang der näch-
     sten Zeile oder zum Anfang derselben Zeile. In terminfo gibt es boole-
     sche Werte zur Beschreibung aller drei Fälle.


Seite 44                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

   Verfahren nach dem Drucken eines Zeichens in der äußerst rechten Position
   _________________________________________________________________________
       sam   Druckkopf wird automatisch zum Anfang derselben Zeile bewegt

     Einige Drucker können in einen Modus geschaltet werden, in dem die
     normale Verschiebe-Richtung umgekehrt wird. Dieser Modus kann vor
     allem in den Fällen von Nutzen sein, in denen es keine Eigenschaften
     für das Verschieben des Druckkopfs nach links oder oben gibt; in der-
     artigen Fällen können diese Eigenschaften aus der Eigenschaft "Umge-
     kehrte Verschiebe-Richtung" sowie den Eigenschaften "Druckkopf nach
     rechts oder unten bewegen" zusammengesetzt werden. Dennoch sollte es
     besser den Anwendungsporgrammen überlassen werden, die Eigenschaften
     für das Verschieben des Druckkopfs nach links oder oben zusammenzuset-
     zen, anstatt sie in die terminfo-Datenbasis einzubringen. Dadurch kön-
     nen mehrere Eigenschaften für verschiedene Verschiebe-Operationen in
     umgekehrter Richtung miteinander verknüpft werden, ohne daß zusätzli-
     che Zwischenschritte zum Aus- und erneuten Einschalten der umgekehrten
     Verschiebe-Richtung notwendig sind.

                Umgekehrte Verschiebe-Richtung ein-/ausschalten
        ________________________________________________________________
        slm     Umgekehrte horizontale Verschiebe-Richtung
        rlm     Normale horizontale Verschiebe-Richtung wiederherstellen
        sum     Umgekehrte vertikale Verschiebe-Richtung
        rum     Normale vertikale Verschiebe-Richtung wiederherstellen

        Bei umgekehrter horizontaler Verschiebe-Richtung:
        mcub1   Um 1 Schritt nach rechts verschieben
        mcuf1   Um 1 Schritt nach links verschieben
        mcub    Um N Schritte nach rechts verschieben
        mcuf    Um N Schritte nach links verschieben
        cub1    Um 1 Spalte nach rechts verschieben
        cuf1    Um 1 Spalte nach links verschieben
        cub     Um N Spalten nach rechts verschieben
        cuf     Um N Spalten nach links verschieben

        Bei umgekehrter vertikaler Verschiebe-Richtung:

        mcuu1   Um 1 Schritt nach unten verschieben
        mcud1   Um 1 Schritt nach oben verschieben
        mcuu    Um N Schritte nach unten verschieben
        mcud    Um N Schritte nach oben verschieben
        cuu1    Um 1 Zeile nach unten verschieben
        cud1    Um 1 Zeile nach oben verschieben
        cuu     Um N Zeilen nach unten verschieben
        cud     Um N Zeilen nach oben verschieben

     Die Modi zum umgekehrten Verschieben des Druckkopfs sollten sich nicht
     auf die Eigenschaften mvpa und mhpa (motion vertical position
     absolute/motion horizontal position absolute) auswirken. Allerdings
     sollte sich im Modus "Umgekehrtes Verschieben des Druckkopfs" auch die
     Richtung des Zeilenumbruchs von der äußerst rechten Zeichenposition


Seite 45                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     aus umkehren. Somit sollte auf Druckern, für die die Standard-
     terminfo-Eigenschaft am definiert ist, der Druckkopf in jedem Fall zum
     Anfang der vorhergehenden Zeile verschoben werden, wenn ein Zeichen im
     Modus "Umgekehrtes Verschieben des Druckkopfs" an der äußerst rechten
     Zeichenposition gedruckt wird.

     Bei allen anderen Eigenschaften zum Verschieben des Druckkopfs ist die
     Richtung in den Modi zum umgekehrten Verschieben des Druckkopfs nicht
     definiert; daher müssen die Programme zuerst die Modi zum umgekehrten
     Verschieben des Druckkopfs verlassen, bevor sie andere Verschiebe-
     Eigenschaften benutzen können.

     Die neuen Eigenschaften zum Verschieben der aktuellen Position werden
     durch zwei weitere Eigenschaften ergänzt. Die eine wird für Drucker
     benutzt, auf denen die aktuelle Position durch bestimmte Steuerzeichen
     wie z. B. Zeilen- oder Seitenvorschub zum Anfang einer Zeile bewegt
     wird. Mit der zweiten Eigenschaft wird das Verschieben des Druckkopfs
     unterbunden, das normalerweise nach dem Ausdrucken eines Zeichens
     durchgeführt wird.

          Verschiedene Strings zum Verschieben der aktuellen Position
       _________________________________________________________________
       docr    Liste der Steuerzeichen, die zu cr führen
       zerom   Automatisches Verschieben des Druckkopfs nach dem Drucken
               des nächsten Einzelzeichens unterbinden

   Randeinstellungen
     In terminfo gibt es zwei Strings zum Einstellen der Ränder auf Termi-
     nals: einen für den linken und einen für den rechten Rand. Für Drucker
     wird zusätzlich der obere und untere Rand jeder Druckseite festgelegt.
     Außerdem gibt es Drucker, auf denen die Randeinstellungen nicht über
     Strings zum Verschieben der aktuellen Position festgelegt werden son-
     dern über die absolute (d. h. von der aktuellen Position unabhängige)
     Angabe der Randeinstellungen. Daher gibt es in terminfo sechs weitere
     Strings zum Einstellen von Rändern auf Druckern.

                          Randeinstellungen festlegen
                    ________________________________________
                    smgl    Linker Rand in aktueller Spalte
                    smgr    Rechter Rand in aktueller Spalte
                    smgb    Unterer Rand in aktueller Zeile
                    smgt    Oberer Rand in aktueller Zeile

                    smgbp   Unterer Rand in Zeile N
                    smglp   Linker Rand in Spalte N
                    smgrp   Rechter Rand in Spalte N
                    smgtp   Oberer Rand in Zeile N

     Bei den letzten vier Strings wird durch ein oder mehrere Argumente die
     Position des einzustellenden Rands bzw. der einzustellenden Ränder
     angegeben. Wenn sowohl smglp als auch smgrp eingestellt werden, wird
     bei jeweils einem Argument N die Spaltennummer des linken bzw. rechten


Seite 46                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Rands angegeben. Wenn sowohl smgtp als auch smgbp eingestellt werden,
     wird damit der obere bzw. untere Rand eingestellt. Bei smgtp wird mit
     dem Argument N die Zeilennummer des oberen Rands angegeben; bei smgbp
     dagegen wird bei den beiden Argumenten N und M die Zeilennummer für
     den Beginn des unteren Rands angegeben, wobei das erste Argument die
     Zeilennummer relativ zur oberen Blattkante und das zweite die Zeilen-
     nummer relativ zur unteren Blattkante festlegt. Dadurch werden beide
     Methoden zur Angabe des unteren Rands berücksichtigt, die bei den ver-
     schiedenen Drucker-Modellen benutzt werden. In einem terminfo-Eintrag
     für einen Drucker mit einstellbarem unteren Rand sollte, je nach Druk-
     ker, nur der erste oder der zweite Parameter benutzt werden. In einer
     Anwendung, in der smgbp zum Einstellen des unteren Rands benutzt wird,
     müssen beide Argumente angegeben werden.

     Wenn lediglich smglp oder smgrp definiert wird, wird die betreffende
     Eigenschaft mit zwei Argumenten angegeben, die für die Spaltennummern
     des linken und des rechten Rands stehen (in dieser Reihenfolge). Ähn-
     lich wird, wenn lediglich smgtp oder smgbp eingestellt wird, die
     betreffende Eigenschaft mit zwei Argumenten angegeben, die für die
     Zeilennummern des oberen und unteren Rands relativ zur oberen Blatt-
     kante stehen (in dieser Reihenfolge). Wenn für einen Drucker somit
     sowohl der linke als auch der rechte bzw. sowohl der obere als auch
     der untere Rand gleichzeitig eingestellt werden muß, sollte in
     terminfo lediglich entweder smglp oder smgrp bzw. entweder smgtp oder
     smgbp definiert und die übrigen Eigenschaften undefiniert bleiben. Bei
     der Entwicklung einer Anwendung, die mit diesen Strings arbeitet,
     sollte zunächst überprüft werden, ob beide oder nur eine der Eigen-
     schaften in jeder Kombination definiert sind; dann sollte man die
     Eigenschaften entsprechend nutzen.

     Die Zeilen- und Spaltenzählung beginnt oben bei Zeile 0 und links in
     Spalte 0. Wird für das zweite Argument bei smgbp der Wert 0 angegeben,
     so steht dies für die unterste Zeile einer Druckseite.

     Mit mgc können alle Randeinstellungen gelöscht werden.

   Schattendruck, Kursivschrift, Breitschrift, Hochstellen, Tiefstellen
     Mit den folgenden fünf neuen Strings werden Drucker-Funktionen zur
     Druckgestaltung beschrieben.

                                Druckgestaltung
                    ________________________________________
                    sshm    Schatten-Druck EIN
                    rshm    Schatten-Druck AUS

                    sitm    Kursivschrift EIN
                    ritm    Kursivschrift AUS

                    swidm   Breitschrift EIN
                    rwidm   Breitschrift AUS




Seite 47                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

                    ssupm   Hochstellen EIN
                    rsupm   Hochstellen AUS
                    supcs   Liste der hochstellbaren Zeichen

                    ssubm   Tiefstellen EIN
                    rsubm   Tiefstellen AUS
                    subcs   Liste der tiefstellbaren Zeichen

     Wenn an den Drucker vor dem Schatten-Drucken eines Zeichens die Steu-
     erzeichenfolge sshm übermittelt werden muß, bleibt der String rshm
     undefiniert. Daher sollte ein Programm, das eine Steuerzeichenfolge
     nur bei sshm und nicht bei rshm feststellt, vor dem Schatten-Drucken
     eines Zeichens in jedem Fall die Steuerzeichenfolge sshm an den Druk-
     ker übermitteln; andernfalls sollte die Steuerzeichenfolge bei sshm
     vor jeder schattiert auszudruckenden Zeichengruppe an den Drucker
     übermittelt werden, dann die bei rshm. Dasselbe gilt für die Kombina-
     tionen sitm/ritm, swidm/rwidm, ssupm/rsupm und ssubm/rsubm.

     In terminfo gibt es auch eine Eigenschaft zum Ausdrucken in Fettdruck
     (bold). Obwohl sowohl der Schatten- als auch der Fettdruck zu einem
     höheren Druckkontrast des Textes führt, werden diese drucktechnischen
     Effekte auf den verschiedenen Druckern nach geringfügig unterschiedli-
     chen Methoden erzielt. Für Fettdruck wird ein Zeichen im allgemeinen
     ein- oder mehrmals überdruckt, während beim Schatten-Druck in der
     Regel zusätzlich zum gewöhnlich durchgeführten Überdrucken eine
     leichte Bewegung nach oben und/oder zur Seite durchgeführt wird, um
     eine größere Strichbreite des Zeichens zu erzielen.

     Da die Modi zur Druckgestaltung in der Regel separat eingestellt wer-
     den können, kann Text gleichzeitig z. B. in Schattenschrift, kursiv
     und hochgestellt ausgegeben werden.

     Wie bereits erwähnt, sollte der Abstand, um den der Druckkopf nach dem
     Ausdrucken eines Breitschrift-Zeichens nach rechts bewegt wird, bei
     der Eigenschaft widcs angegeben werden.

     In manchen Fällen kann nur ein Teil der druckbaren ASCII-Zeichen hoch-
     oder tiefgestellt werden; diese Zeichen sollten dem String supcs bzw.
     subcs zugeordnet werden. Wenn der String ssupm bzw. ssubm Steuerzei-
     chenfolgen enthält, der zugehörige supcs- bzw. subcs-String jedoch
     undefiniert ist, so wird davon ausgegangen, daß sämtliche druckbaren
     ASCII-Zeichen hoch- oder tiefgestellt werden können.

     Der Abstand, um den der Druckkopf nach dem Drucken eines hoch- oder
     tiefgestellten Zeichens automatisch nach rechts bewegt wird, ent-
     spricht dem Abstand nach dem Ausdrucken eines normalen Zeichens. Somit
     ist der Abstand nach dem Ausdrucken in allen drei nachfolgend aufge-
     führten Beispielen identisch:

          Bi  Bi  Bi




Seite 48                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     In diesem Zusammenhang muß der boolesche Wert msgr erwähnt werden,
     durch den angegeben wird, ob die Steuerzeichenfolgen zum Verschieben
     des Druckkopfs im Hervorhebungsmodus benutzt werden können. Diese
     Eigenschaft wurde erweitert und unterstützt jetzt die neuen Modi zur
     Druckgestaltung. msgr sollte für diejenigen Drucker gesetzt werden,
     bei denen alle Steuerzeichenfolgen zum Verschieben des Druckkopfs kei-
     nerlei Auswirkung auf das Drucken von Schatten-, kursiven, Breit-
     schrift-, hoch- oder tiefgestellten Zeichen hat. Wenn msgr in der
     umgekehrten Richtung nicht gesetzt wird, sollte ein Programm diese
     Modi vor dem Verschieben des Druckkopfs zuerst deaktivieren.

   Abschnitt 2-5: Alternativ-Zeichensätze
     In der terminfo-Datenbasis können Sie nicht nur Grafiksymbole (siehe
     Abschnitt 1-12) definieren, sondern auch Alternativ-Zeichensätze. Die
     folgenden Eigenschaften gelten für Drucker und Terminals mit mehreren
     zur Wahl stehenden bzw. definierbaren Zeichensätzen.

                            Alternativ-Zeichensätze
 ______________________________________________________________________________
 scs     Zeichensatz N auswählen

 scsd    Definition eines Zeichensatzes N mit M Zeichen starten
 defc    Zeichen A mit einer Punktbreite von B Punkten, Unterlänge D definieren
 rcsd    Definition des Zeichensatzes N beenden

 csnm    Zeichensatznamen ausgeben

 daisy   Drucker mit mehreren manuell auszutauschenden Typenrädern

     Die Strings scs, rcsd und csnm haben das Argument N; dabei handelt es
     sich um eine Zahl im Bereich 0 bis 63, mit der der Zeichensatz angege-
     ben wird. Bei dem String scsd wird zusätzlich mit dem Argument N sowie
     M die Anzahl der Zeichen innerhalb des Zeichensatzes angegeben. Der
     String defc wird mit den drei Argumenten A (der ASCII-Dezimalcode des
     Zeichens), B (die Breite der Zeichen in Punkten) sowie D (0 bei einem
     Zeichen mit Unterlänge, 1 bei Zeichen ohne Unterlänge) angegeben. Auf
     den String defc folgt zusätzlich ein String mit Pixeldatenbytes, die
     die Form des Zeichens festlegen (siehe unten).

     Zeichensatz 0 ist der Standard-Zeichensatz, der nach der Initialisie-
     rung des Druckers benutzt wird. Selbstverständlich unterstützt nicht
     jeder Drucker 64 Zeichensätze; wird scs mit einem Argument eingegeben,
     das einen nicht verfügbaren Zeichensatz angibt, so sollte tparm als
     Ergebnis den Wert Null ausgeben.

     Wenn ein Zeichensatz vor seiner Benutzung erst noch definiert werden
     muß, muß vor der Definition des Zeichensatzes die Steuerzeichenfolge
     scsd und nach der Definition die Steuerzeichenfolge rcsd benutzt wer-
     den. Auch hier sollte die Angabe eines nicht unterstützten Zeichensat-
     zes N bei tparm zum Ergebnis Null führen. Wenn ein Zeichensatz nach
     seiner Definition noch gewählt werden muß, sollte die Steuerzeichen-
     folge scs auf die Steuerzeichenfolge rcsd folgen. Ein Programm


Seite 49                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     überprüft die Ergebnisse, zu denen das Aufrufen von tparm mit den
     Strings scs, scsd und rcsd mit einer Zeichensatz-Nummer führt, und
     ermittelt den benötigten String.

     Zwischen den Eigenschaften scsd und rcsd sollte jedes Zeichen mit dem
     String defc definiert werden. Zum Ausdrucken eines Zeichens auf einem
     in der terminfo-Datenbasis beschriebenen Drucker wird der zugehörige
     ASCII-Code an den Drucker übermittelt. Dies gilt für die Zeichen
     sowohl in einem Alternativ-Zeichensatz als auch im normalen Zeichen-
     satz. Somit muß die Definition eines Zeichens den ASCII-Code enthal-
     ten, der ihm zugeordnet ist. Außerdem enthält die Definition die
     Breite des Zeichens in Punkten sowie die Angabe, ob es sich um ein
     Zeichen mit Unterlänge handelt (wie es z. B. beim Kleinbuchstabe g in
     den meisten Zeichensätzen der Fall ist). Aus der Breite des Zeichens
     in Punkten ergibt sich auch die Anzahl der Pixeldatenbytes, die auf
     den String defc folgen. Diese Pixeldatenbytes geben an, an welcher
     Stelle innerhalb einer Punktmatrix beim Drucken eines Zeichens
     Schwärze aufgetragen werden muß; Anzahl und Form dieser Bytes sind
     nachfolgend unter 2-6: "Rastergrafiken" definiert.

     Beim Erstellen der terminfo-Einträge geben Sie die Zeichensätze am
     besten über ihre Nummer an. Da für den Entwickler damit jedoch keine
     Zuordnung zum jeweiligen Zeichensatz möglich ist, kann bei dem String
     csnm jeder Nummer ein Name zugeordnet werden.

     Wenn der String csnm mit einer Zeichensatz-Nummer in einem tparm-
     Aufruf enthalten ist, erzeugt der String den zugehörigen Namen. Diese
     Namen sollten nur zur Information verwendet werden. Wenn es auch keine
     festen Regeln für die Bildung der Namen gibt, sollte beim Erstellen
     eines terminfo-Eintrags für einen Drucker darauf geachtet werden, daß
     die benutzten Namen mit den im jeweiligen Drucker-Benutzerhandbuch
     aufgeführten Namen konsistent sind. Beim Arbeiten mit einem Anwen-
     dungsprogramm sollte ein Benutzer den Zeichensatz sowohl über seine
     Nummer angeben können (ob er die korrekte Nummer anhand des Strings
     csnm ermitteln möchte, sollte dabei dem Benutzer überlassen werden)
     als auch über seinen Namen; im letzteren Fall ermittelt das Anwen-
     dungsprogramm die zugehörige Zeichensatz-Nummer anhand des Strings
     csnm.

     Diese Eigenschaften eignen sich im allgemeinen nur für Matrix- bzw.
     Nadeldrucker. Für andere Drucker sollten diese Strings undefiniert
     bleiben. Für Drucker mit manuell auszutauschenden Typenrädern oder
     Schriftkassetten wird der boolesche Wert daisy gesetzt.

   Abschnitt 2-6: Rastergrafiken
     Mit Matrixdruckern können Rastergrafiken erzeugt werden. Zur einfach-
     reren Erstellung von Rastergrafiken gibt es jetzt drei neue numerische
     Werte und drei neue Strings - unabhängig vom Typ des Matrixdruckers
     oder der Anzahl der Nadeln bzw. Punkte, die der Drucker gleichzeitig
     verarbeiten kann.




Seite 50                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

                                Rastergrafiken
 _____________________________________________________________________________
 npins    Anzahl N der Nadeln im Druckkopf
 spinv    Abstand der Nadeln in vertikaler Richtung in Nadeln pro Zoll
 spinh    Anzahl der Punkte in horizontaler Richtung in Punkten pro Zoll
 porder   Bildet Software-Bits auf Nadeln im Druckkopf ab
 sbim     Startet das Ausdrucken einer Rastergrafik mit einer Breite von B Bit
 rbim     Beendet das Ausdrucken einer Rastergrafik

     Der String sbim wird mit dem Argument B eingegeben, der Breite des
     Druckbilds in Punkten.

     Das System zur Beschreibung von Rastergrafiken in terminfo ist dem
     Druckverfahren der meisten Matrixdrucker angeglichen: bei jedem Durch-
     gang des Druckkopfs wird ein Punktraster mit einer Höhe von N Punkten
     und einer Breite von B Punkten generiert. Dabei handelt es sich in der
     Regel um ein Quadrat oder Rechteck von Punkten. Die Höhe dieses
     Punkte-Rechtecks variiert zwischen den einzelnen Druckern und wird bei
     der numerischen Eigenschaft npins angegeben. Die Größe des Rechtecks,
     das in 1/n Zoll angegeben wird, variiert ebenfalls zwischen den ein-
     zelnen Druckern und kann aus den numerischen Eigenschaften spinv und
     spinh abgeleitet werden. Aufgrund dieser drei Werte kann ein Anwen-
     dungsprogramm eine vollständige Rastergrafik in mehrere horizontale
     Streifen aufteilen, wobei gegebenenfalls durch Interpolation den
     unterschiedlichen Punktabständen in vertikaler und horizontaler Rich-
     tung Rechnung getragen wird.

     Mit den Eigenschaften sbim und rbim wird das Drucken einer Rastergra-
     fik gestartet bzw. beendet. Der String sbim hat ein einzelnes Argu-
     ment, mit dem die Breite der Rastergrafik in Punkten angegeben wird.
     Zwischen den Eigenschaften sbim und rbim wird eine Folge von Pixelda-
     tenbytes an den Drucker übermittelt. Die Anzahl der Bytes entspricht
     dem ganzzahligen Vielfachen der Breite der Rastergrafik; das Vielfache
     sowie die Form jedes Bytes wird, wie im nächsten Abschnitt beschrieben
     wird, anhand des Strings porder beschrieben.

     Der String porder ist eine durch ein Komma getrennte Liste von Nadel-
     Nummern, auf die ein numerischer Offset folgen kann. Der Offset wird
     von der Liste gegebenenfalls durch ein Semikolon getrennt. Die Posi-
     tion jeder Nadel-Nummer innerhalb der Liste ist einem Bit innerhalb
     eines 8-Bit-Datenbytes zugeordnet. Die Nadeln sind entsprechend ihrer
     Reihenfolge von 1 bis npins durchnumeriert, wobei die oberste Nadel
     die Nummer 1 hat. An dieser Stelle sei darauf hingewiesen, daß der
     Begriff Nadel (pin) hier sehr allgemein benutzt wird; so haben Tinten-
     strahldrucker zwar keine Nadeln, benutzen zum Auftragen eines einzel-
     nen Punkts auf die Druckseite aber ein ähnliches Verfahren wie Matrix-
     drucker. Die Bit-Positionen beim String porder sind in Gruppen zu je
     acht Positionen zusammengefaßt, wobei die erste Position innerhalb
     jeder Gruppe das höchstwertige Bit und die letzte Position das nie-
     drigstwertige Bit ist. Ein Anwendungsprogramm erzeugt die 8-Bit-Bytes
     entsprechend der Reihenfolge der Gruppen in porder.



Seite 51                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Ein Anwendungsprogramm errechnet die Pixeldatenbytes aus dem internen
     Rasterbild, wobei die vertikalen Punkt-Positionen bei jedem Durchgang
     des Druckkopfs auf 8-Bit-Bytes abgebildet werden; ist das Bit gesetzt
     (1), wird Druckerschwärze auf die Druckseite aufgetragen, ist es nicht
     gesetzt (0), wird keine Druckerschwärze aufgetragen. Dies kann durch
     die Angabe einer negativen Nadel-Nummer umgekehrt werden (Drucker-
     schwärze auftragen bei 0, keine Druckerschwärze auftragen bei 1). Wenn
     eine Position bei porder ausgelassen wird, wird ein zurückgesetztes
     Bit (0) benutzt. Wenn an einer Position innerhalb des porder-Strings
     statt einer Nadel-Nummer der Kleinbuchstabe x steht, wird an der nicht
     belegten Position ein gesetztes Bit (1) benutzt. Aus Konsistenzgründen
     kann zur Darstellung eines zurückgesetzten, nicht belegten Bits der
     Kleinbuchstabe o benutzt werden. Die Anzahl der bei porder angegebenen
     belegten bzw. nicht belegten Bit-Positionen muß ein Vielfaches von 8
     sein; andernfalls wird das letzte Byte in den niedrigstwertigen Bits
     mit zurückgesetzten Bits (0) gefüllt. Der Offset wird gegebenenfalls
     auf jedes Datenbyte aufaddiert; der Offset kann auch negativ sein.

     Die Benutzung des Strings porder wird nachfolgend anhand einiger Bei-
     spiele verdeutlicht. Auf den Druckern AT&T 470, AT&T 475 und C.Itoh
     8510 gibt es acht Nadeln für Grafikausdrucke. Die Nadeln sind von oben
     nach unten den acht Bits innerhalb eines Bytes (niedrigstwertiges bis
     höchstwertiges Bit) zugeordnet. Den porder-Zeicbenketten für diese
     Ausdrucke würden die Werte 8,7,6,5,4,3,2,1 zugeordnet. Auf den Druk-
     kern AT&T 478 und AT&T 479 gibt es ebenfalls acht Nadeln für Grafi-
     kausdrucke. Allerdings sind die Nadeln in umgekehrter Reihenfolge
     numeriert, d. h., den porder-Strings für diese Drucker würden die
     Werte 1,2,3,4,5,6,7,8 zugeordnet. Auf den Druckern AT&T 5310, AT&T
     5320, DEC LA100 und DEC LN03 gibt es sechs Nadeln für Grafikausdrucke.
     Den Nadeln sind von oben nach unten die Dezimalwerte 1, 2, 4, 8, 16
     und 32 zugeordnet. Diese Werte entsprechen den sechs niedrigstwertigen
     Bits innerhalb eines 8-Bit-Bytes, wenn auch auf die Dezimalwerte der
     Offset 63 addiert wird. Der porder-String für diese Drucker wäre
     ,,6,5,4,3,2,1;63 oder o,o,6,5,4,3,2,1;63.

   Abschnitt 2-7: Auswirkungen einer Änderung der Auflösung
     Durch die Steuerzeichenfolgen zum Ändern des Zeilen- oder Zeichenab-
     stands kann es auch zu einem veränderten Nadel- oder Punktabstand kom-
     men:

             Rastergrafiken - Änderung des Zeichen-/Zeilenabstands
________________________________________________________________________________
cpi    Zeichenabstand ändern
cpix   Wenn diese Variable gesetzt ist, wird spinh gleichzeitig mit cpi geändert

lpi    Zeilenabstand ändern
lpix   Wenn diese Variable gesetzt ist, wird spinv gleichzeitig mit lpi geändert







Seite 52                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Programme, die mit cpi oder lpi arbeiten, sollten den Punktabstand neu
     berechnen:

    Rastergrafiken - Auswirkungen einer Änderung des Zeichen-Zeilenabstands
    _______________________________________________________________________
                      Vorher                                Nachher
    _______________________________________________________________________
    Benutzung von cpi bei zurückgesetztem cpix:

    spinh'                                          spinh

    Benutzung von cpi bei gesetztem cpix:
                                                                  orhi
    spinh'                                          spinh=spinh'.orhi'

    Benutzung von lpi bei zurückgesetztem lpix:

    spinv'                                          spinv

    Benutzung von lpi bei gesetztem lpix:
                                                                  orhi
    spinv'                                          spinv=spinv'.orhi'

    Benutzung von chr:

    spinh'                                          spinh

    Benutzung von cvr:

    spinv'                                          spinv

     orhi' und orhi sind die Werte für die horizontale Auflösung in Schrit-
     ten pro Zoll vor der Benutzung von cpi bzw. nach der Benutzung von
     cpi. Ebenso sind orvi' und orvi die Werte für die vertikale Auflösung
     in Schritten pro Zoll vor der Benutzung von lpi bzw. nach der Benut-
     zung von lpi. Somit ziehen die Änderungen in der Anzahl der Punkte pro
     Zoll für Rastergrafiken Änderungen in der Anzahl der Schritte pro Zoll
     für die Auflösung nach sich.

   Abschnitt 2-8: Druckqualität
     Viele Nadeldrucker unterstützen einen Punktabstand, der das Ausdrucken
     in NLQ- (Near Letter Quality)- oder Entwurfsqualität ermöglicht. Nor-
     malerweise sollte auf jeden Fall eine dieser Druckqualitäten einge-
     stellt werden, da die Druckgeschwindigkeit bei einer höheren Druckqua-
     lität im allgemeinen zurückgeht. Zur Beschreibung dieser Eigenschaften
     gibt es drei neue Strings.

                                 Druckqualität






Seite 53                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

                 ______________________________________________
                 snlq    Drucken in NLQ (Korrespondenzqualität)
                 snrmq   Drucken in normaler Druckqualität
                 sdrfq   Drucken in Entwurfsqualität

     Die Eigenschaften sind in absteigender Folge nach der Druckqualität
     aufgeführt. Wenn eine der Druckqualitäten von einem Drucker nicht
     unterstützt wird, sollte(n) der/die entsprechende(n) String(s) undefi-
     niert bleiben.

   Abschnitt 2-9: Druckgeschwindigkeit und Puffergröße
     Da es kein Standardprotokoll gibt, das ein Programm ständig mit einem
     Drucker synchronisiert, und da moderne Drucker die Druckdaten vor dem
     Ausdrucken zwischenspeichern können, kann ein Programm im allgemeinen
     nicht zu jeder Zeit feststellen, was bereits ausgedruckt worden ist.
     Dafür gibt es jetzt zwei neue numerische Werte.

                       Druckgeschwindigkeit/Puffergröße
          ___________________________________________________________
          cps     Nominale Druckgeschwindigkeit (Zeichen pro Sekunde)
          bufsz   Puffergröße (Anzahl der Zeichen)

     cps ist die nominale bzw. durchschnittliche Druckgeschwindigkeit des
     Druckers. Wenn dieser Wert nicht angegeben wird, sollte die Druckge-
     schwindigkeit auf 1/10 der benutzten Baudrate angesetzt werden. bufsz
     ist die maximale Anzahl der Zeichen, die nacheinander im Puffer zwi-
     schengespeichert werden können, bevor ein früher übermitteltes Zeichen
     garantiert ausgedruckt wird (eine geeignete Flußsteuerung vorausge-
     setzt). Wenn dieser Wert nicht angegeben wird, wird davon ausgegangen,
     daß der Drucker keine Zeichen zwischenspeichert, sondern sie sofort
     bei Empfang ausdruckt.

     Angenommen, ein Drucker hat beispielsweise einen 1000-Zeichen-Puffer;
     werden in einem derartigen Fall der Kleinbuchstabe "a" sowie 1000
     zusätzliche Zeichen an den Drucker übermittelt, so wird der Buchstabe
     "a" auf jeden Fall ausgedruckt. Wenn derselbe Drucker mit einer
     Geschwindigkeit von 100 Seiten pro Sekunde druckt, sollte das Drucken
     sämtlicher Zeichen im Puffer 10 Sekunden in Anspruch nehmen, und weni-
     ger als 10 Sekunden, wenn der Puffer nicht voll ist. Ein Programm kann
     sich mit dem Drucker synchronisieren, indem es die an den Drucker
     übermittelten Zeichen protokolliert und die Druckgeschwindigkeit und
     die Puffergröße kennt.

     Es wird darauf hingewiesen, daß die meisten Druckerhersteller die
     maximale und nicht die nominalen Druckgeschwindigkeit angeben. Um den
     für cps geeigneten Wert zu ermitteln, drucken Sie am besten einige
     Seiten aus, zählen die Anzahl der druckbaren Zeichen und ermitteln
     dann die zum Ausdrucken benötigte Zeit.






Seite 54                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     Anwendungen, die mit diesen Werten arbeiten, sollten auf die variable
     Druckgeschwindigkeit eingestellt sein. Bei reinem Text ohne Steuerzei-
     chenfolgen, der in kurzen Zeilen enthalten ist, wird die Druckge-
     schwindigkeit wahrscheinlich fast bei dem vom Hersteller angegebenen
     Wert und wahrscheinlich über dem Wert bei cps liegen. Bei Grafikdaten
     dagegen mit vielen Steuerzeichenfolgen oder sehr langen Textzeilen
     wird die Druckgeschwindigkeit wahrscheinlich unter dem vom Hersteller
     angegebenen Wert und unter dem Wert bei cps liegen. Wenn das Anwen-
     dungsprogramm den Zeitbedarf für einen Textblock anhand von cps ermit-
     telt, sollte es den Schätzwert etwas hochsetzen. Wenn das Anwendungs-
     programm anhand von cps die bereits ausgedruckte Textmenge ermittelt,
     sollte es den Schätzwert etwas reduzieren. Das Anwendungsprogramm
     "verschätzt" sich damit zum Vorteil des Benutzers, dem vor allem an
     einer exakt formatierten Druckseite liegt.

   Abschnitt 2-10: Auswählen eines Terminals
     Wenn die Umgebungsvariable TERMINFO definiert ist, sucht jedes Pro-
     gramm, das curses verwendet, zunächst nach einer lokalen Terminal-
     Definition, bevor an der Standardstelle gesucht wird. Wenn TERM bei-
     spielsweise auf att4424 gesetzt ist, befindet sich die kompilierte
     Terminal-Definition standardmäßig im Pfad:

          a/att4424

     innerhalb eines implementierungsspezifischen Verzeichnisses.

     (Das a wird aus dem ersten Buchstaben von att4424 kopiert, um die
     Erstellung riesiger Verzeichnisse zu vermeiden.) Wird TERMINFO aber
     auf $HOME/myterms gesetzt, überprüft curses zunächst folgende Datei:

          $HOME/myterms/a/att4424

     Wird die Definition hier nicht gefunden, überprüft curses den Stan-
     dardpfad.

     Dies ist zum Beispiel bei der Entwicklung von Testdefinitionen nütz-
     lich, oder wenn für die durch die Implementierung definierte Standard-
     datenbank kein Schreibzugriff besteht.

     Wenn die Umgebungsvariablen LINES und COLUMNS gesetzt sind, oder wenn
     das Programm in einer Fensterumgebung ausgeführt wird, überschreiben
     Zeilen- und Spaltendaten in der Umgebung die von terminfo gelesenen
     Daten.

HINWEISE
     Beim Erstellen einer neuen Terminal-Beschreibung geht man am besten
     von der bereits vorhandenen Beschreibung eines ähnlichen Terminals in
     terminfo aus und entwickelt daraus schrittweise eine neue Beschrei-
     bung; die Teilschritte werden am besten mit einem bildschirmorientier-
     ten Editor wie z. B. vi auf Fehler überprüft. Besonders einfach kann
     eine neue Terminal-Beschreibung ausgetestet werden, indem die Umge-
     bungsvariable TERMINFO auf den Pfadnamen eines Verzeichnisses mit der


Seite 55                     Reliant UNIX 5.44               Gedruckt 11/98

terminfo(4)                                                     terminfo(4)

     übersetzten Beschreibung gesetzt wird (die Programme suchen dann in
     diesem Verzeichnis nach der neuen Beschreibung und nicht in
     /usr/share/lib/terminfo).

     Wie die Einträge in terminfo erstellt werden, wird durch die Implemen-
     tierung definiert.

     Es gibt mehrere Arten, einen terminfo-Eintrag zu schreiben. Ein Mini-
     maleintrag würde zum Beispiel den von curses verwendeten Anwendungen
     erlauben, das Terminal einzusetzen. Wird der Eintrag erweitert, so daß
     er einen größeren Teil der Terminal-Funktionen beschreibt, können
     Anwendungen, die curses verwenden, diese Funktionen aufrufen und die
     Optimierungsvorteile innerhalb von curses nutzen und somit effizienter
     arbeiten. Für die meisten Terminals liegt bereits ein optimaler
     terminfo-Eintrag vor.

DATEIEN
     /usr/share/lib/terminfo/?/*
          Übersetzte Terminalbeschreibungs-Datenbasis

     /usr/share/lib/tabset/*
          Die Tabulatoreinstellungen für einige Terminals, wobei das Format
          sich für eine Ausgabe auf das Terminal eignet (Escape-Sequenzen
          zum Einstellen von Rändern und Tabstopps)

SIEHE AUCH
     stty(1), tput(1), tty(1), tic(1M), curses(3X), term(4), curses(5),
     term(5), termnames(5).


























Seite 56                     Reliant UNIX 5.44               Gedruckt 11/98

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