Annotation of researchv10dc/man/adm/man5/termcap.5, revision 1.1.1.1

1.1       root        1: .TH TERMCAP 5
                      2: .CT 2 comm_term
                      3: .SH NAME
                      4: termcap \- terminal capability file
                      5: .SH DESCRIPTION
                      6: .I Termcap
                      7: describes terminals as used, for example, by
                      8: .IR vi (1)
                      9: and
                     10: .IR curses (3)
                     11: or in the
                     12: .B TERMCAP
                     13: environment variable.
                     14: A
                     15: .I termcap
                     16: entry is a line containing fields separated by
                     17: .LR : .
                     18: Lines may be broken;
                     19: .L \e
                     20: at the end of a line signifies continuation.
                     21: Empty fields are ignored.
                     22: .PP
                     23: The first field for each entry gives names
                     24: for a terminal separated by
                     25: .LR | .
                     26: The first name is conventionally two characters long
                     27: for the benefit of older systems; the
                     28: second name is the customary abbreviation; and
                     29: the last name fully identifies
                     30: the terminal.
                     31: .PP
                     32: There are three types of capability: Boolean for the presence of
                     33: a feature, numeric for sizes and time delays, and
                     34: strings for performing operations.
                     35: Some string fields may be preceded by a number, which
                     36: specifies padding, a time delay required with the operation.
                     37: These capabilities are marked
                     38: `P' or `P*' below.
                     39: Padding is measured in milliseconds;
                     40: P* signifies that the padding is proportional to the
                     41: number of lines (or characters) affected,
                     42: for example,
                     43: .L 3.5*
                     44: specifies 3.5 milliseconds per unit.
                     45: .de fq
                     46: \f5\\$1\fR     \\$2    \\$3    \\$4
                     47: ..
                     48: .ft B
                     49: .ta \w'Name 'u +\w'Type 'u     +\w'Pad 'u
                     50: .nf
                     51: .PP
                     52: Name   Type    Pad     Description
                     53: .ftR
                     54: .fq ae str  P  "End alternate character set
                     55: .fq al str  P* "Add new blank line
                     56: .fq am bool "" "Automatic margin
                     57: .fq as str  P  "Start alternate character set
                     58: .fq bc str  "" "Backspace char if not \f5^H\fP
                     59: .fq bs bool "" "Terminal can backspace
                     60: .fq bt str  P  "Back tab
                     61: .fq bw bool "" "Backspace wraps from column 0 to last column
                     62: .fq CC str  "" "Command character in prototype if terminal settable
                     63: .fq cd str  P* "Clear to end of display
                     64: .fq ce str  P  "Clear to end of line
                     65: .fq ch str  P  "Like \f5cm\fP but horizontal motion only
                     66: .fq cl str  P* "Clear screen
                     67: .fq cm str  P  "Cursor motion
                     68: .fq co num  "" "Number of columns
                     69: .fq cr str  P* "Carriage return, default \f5^M\fR
                     70: .fq cs str  P  "Change scrolling region (vt100), like cm
                     71: .fq cv str  P  "Like ch, but vertical only
                     72: .fq da bool "" "Display may be retained above
                     73: .fq dB num  "" "Backspace delay
                     74: .fq db bool "" "Display may be retained below
                     75: .fq dC num  "" "Carriage return delay
                     76: .fq dc str  P* "Delete character
                     77: .fq dF num  "" "Form feed delay
                     78: .fq dl str  P* "Delete line
                     79: .fq dm str  "" "Enter delete mode
                     80: .fq dN num  "" "Newline delay
                     81: .fq do str  "" "Down one line
                     82: .fq dT num  "" "tab delay
                     83: .fq ed str  "" "End delete mode
                     84: .fq ei str  "" "End insert mode; give \f5:ei=:\fR if \f5ic\fR
                     85: .fq eo str  "" "Can erase overstrikes with blank
                     86: .fq ff str  P* "Hard copy page eject, default \f5^L\fR
                     87: .fq hc bool "" "Hardcopy terminal
                     88: .fq hd str  "" "Half line down
                     89: .fq ho str  "" "Home cursor if no \f5cm\fR
                     90: .fq hu str  "" "Half line up
                     91: .fq hz str  "" "Hazeltine, can't print \f5~\fR
                     92: .fq ic str  P  "Insert character
                     93: .fq if str  "" "Name of file containing initialization\f5is\fR
                     94: .fq im bool "" "Enter insert mode; give \f5:im=:\fR if \f5ic\fR
                     95: .fq in bool "" "Insert mode distinguishes nulls on display
                     96: .fq ip str  P* "Insert pad after character insert
                     97: .fq is str  "" "Terminal initialization string
                     98: .fq k0\fR-\fPk9 str  "" "Other function key codes
                     99: .fq kb str  "" "Backspace key code
                    100: .fq kd str  "" "Down arrow key code
                    101: .fq ke str  "" "Leave keypad transmit mode
                    102: .fq kh str  "" "Home key code
                    103: .fq kl str  "" "Left arrow key code
                    104: .fq kn num  "" "Number of function keys
                    105: .fq ko str  "" "Termcap entries for other non-function keys
                    106: .fq kr str  "" "Right arrow key code
                    107: .fq ks str  "" "Enter keypad transmit mode
                    108: .fq ku str  "" "Up arrow key code
                    109: .fq l0\fR-\fP9 str "" "Labels on other function keys
                    110: .fq li num  "" "Number of lines on screen or page
                    111: .fq ll str  "" "Last line, first column, if no \f5cm\fR
                    112: .fq ma str  "" "Arrow key map
                    113: .fq mi bool "" "Safe to move in insert mode
                    114: .fq ml str  "" "Memory lock above cursor
                    115: .fq ms bool "" "Safe to move in standout or underline mode
                    116: .fq mu str  "" "Turn off memory lock
                    117: .fq nc bool "" "No correctly working CR (DM2500, H2000)
                    118: .fq nd str  "" "Nondestructive space (cursor right)
                    119: .fq nl str  P* "Newline character, default \f5\en\fR
                    120: .fq ns bool "" "Nonscrolling CRT
                    121: .fq os bool "" "Terminal overstrikes
                    122: .fq pc str  "" "Pad character, default NUL
                    123: .fq pt bool "" "Has hardware tabs (possibly set by \f5is\fR)
                    124: .fq se str  "" "Leave standout mode
                    125: .fq sf str  P  "Scroll forward
                    126: .fq sg num  "" "Number of blanks left by \f5so\fR, \f5se\fR
                    127: .fq so str  "" "Enter standout mode
                    128: .fq sr str  P  "Scroll reverse (backward)
                    129: .fq ta str  P  "Tab, if not \f5^I\fR or if padded
                    130: .fq tc str  "" "Entry of similar terminal, must be last
                    131: .fq te str  "" "String to end programs that use \f5cm\fR
                    132: .fq ti str  "" "String to begin programs that use \f5cm\fR
                    133: .fq uc str  "" "Underscore one char and move past it
                    134: .fq ue str  ""  "Leave underscore mode
                    135: .fq ug num  "" "Number of blanks left by \f5us\fR, \f5ue\fR
                    136: .fq ul bool "" "Terminal underlines but doesn't overstrike
                    137: .fq up str  "" "Cursor up one line
                    138: .fq us str  "" "Enter underscore mode
                    139: .fq vb str  "" "Visible bell, (may not move cursor)
                    140: .fq ve str  "" "Leave open/visual mode
                    141: .fq vs str  "" "Enter open/visual mode
                    142: .fq xb bool "" "Beehive (\f5f1\fR=escape, \f5f2\fR=\f5^C\fR)
                    143: .fq xn bool "" "Newline ignored after wrap (Concept)
                    144: .fq xr bool "" "Return acts like \f5ce \er \en\fR (Delta Data)
                    145: .fq xs bool "" "Standout not erased by writing over (HP264?)
                    146: .fq xt bool "" "Tabs are destructive, magic \f5so\fR (Teleray 1061)
                    147: .fi
                    148: .PP
                    149: The following example is one of the
                    150: more elaborate 
                    151: .I termcap
                    152: entries.
                    153: (Do not believe it; see the file for current facts.)
                    154: .HP
                    155: .EX
                    156: co|c100|concept 100:is=\eEU\eEf\eE7\eE5\eE8\eEl\eENH\eEK\eE\e200\eEo&\e200\eEo\e47\eE:\e
                    157: :al=3*\eE^R:am:bs:cd=16*\eE^C:ce=16\eE^S:cl=2*^L:cm=\eEa%+ %+ :co#80:\e
                    158: :dc=16\eE^A:dl=3*\eE^B:ei=\eE\e200:eo:im=\eE^P:in:ip=16*:li#24:mi:\e
                    159: :nd=\eE=:se=\eEd\eE:so=\eED\eEE:ta=8\et:ul:up=\eE;vb=\eEk\eEk:xn:
                    160: .EE
                    161: .PP
                    162: Among the Boolean capabilities shown for the Concept are
                    163: automatic margins
                    164: .LR am :
                    165: automatic return and linefeed at the end of a line.
                    166: Numeric capabilities are indicated by
                    167: .LR # ;
                    168: .L co#80
                    169: means the Concept has 80 columns.
                    170: String capabilities are indicated by
                    171: .LR = ;
                    172: to clear to end of line
                    173: .RL ( ce )
                    174: on the Concept, issue <escape> <control-C> and pad
                    175: with 16 milliseconds delay.
                    176: .PP
                    177: In strings the
                    178: .SM ASCII ESC
                    179: character is represented by
                    180: .LR \eE 
                    181: and control characters are represented by 
                    182: .BI ^ c,
                    183: where character 
                    184: .I c
                    185: has
                    186: .SM ASCII
                    187: code 0100 greater than the desired control character.
                    188: Newline, return, tab, backspace, form feed,
                    189: .B \e
                    190: and
                    191: .B ^
                    192: are represented by
                    193: .BR "\en \er \et \eb \ef \e\e \e^" .
                    194: Backslash
                    195: .L \e
                    196: followed by 3 digits specifies a byte in octal.
                    197: A null character is encoded
                    198: .LR \e200 :
                    199: the routines that use
                    200: .I termcap
                    201: information mask out the high bit of all bytes.
                    202: .PP
                    203: Local cursor motions are undefined if they run off the
                    204: left or top of the screen; the
                    205: .I curses
                    206: routines refrain from issuing such motions.
                    207: It is assumed that the screen will scroll up upon running
                    208: off the bottom; this assumption is negated by
                    209: .LR ns .
                    210: Capability
                    211: .L am
                    212: (automatic margin) describes the handling of the right margin.
                    213: .PP
                    214: Cursor addressing is described by capability
                    215: .LR cm ,
                    216: which contains 
                    217: .IR printf (3)-like
                    218: format codes for line and column positions.
                    219: The leftmost column is column 0.
                    220: .IP
                    221: .nf
                    222: .fq %d "as in \fIprintf\fR
                    223: .fq %2 "like \f5%2d\fR
                    224: .fq %3 "like \f5%3d\fR
                    225: .fq %. "like \f5%c\fR
                    226: .fq %+\fIx\fR "adds \fIx\fR before converting
                    227: .fq %>\fIxy\fR "if value exceeds \fIx\fR, add \fIy\fR, no output
                    228: .fq %r "reverse order of line and column, no output
                    229: .fq %i "increment line/column (1-origin)
                    230: .fq %% "single \f5%\fR
                    231: .fq %n "exclusive or row and column with 0140 (DM2500)
                    232: .fq %B "BCD: 16\(**(\fIx/10) + (\fIx\fR%10), no output
                    233: .fq %D "Reverse coding: \fIx\fR\-2\(**(\fIx\fR%16), no output
                    234: .fi
                    235: .PP
                    236: For example, to go to line 3 column 12, a HP2645 terminal
                    237: must get
                    238: .B \eE&a12c03Y
                    239: padded for 6 milliseconds:
                    240: .L :cm=6\eE&%r%2c%2Y: .
                    241: .PP
                    242: Capability
                    243: .L al
                    244: adds an empty line before the line where the cursor is
                    245: and leaves the cursor on the new line.
                    246: This will always be done with the cursor at column 0.
                    247: Capability
                    248: .L dl
                    249: deletes the line where the cursor is and is also done
                    250: with the cursor at column 0.
                    251: Capabilities
                    252: .L da
                    253: and
                    254: .L db
                    255: warn that off-screen lines may appear at the top or bottom of
                    256: the screen upon scrolling or deleting lines.
                    257: The
                    258: .I curses
                    259: routines do not use this feature, but do guard against
                    260: its effects.
                    261: .PP
                    262: Insert-character operations usually affect only
                    263: the current line and shift
                    264: characters off the end of the line rigidly.
                    265: Some terminals, such as the Concept 100, distinguish
                    266: typed from untyped blanks on the screen, shifting upon insertion
                    267: only up to an untyped blank, i.e. a space caused by cursor motion;
                    268: these terminals have capability
                    269: .L in
                    270: (insert null).
                    271: .PP
                    272: Some terminals have an insertion mode; others require a special
                    273: sequence to open up a blank position on the current line.
                    274: Insertion mode is entered and left by
                    275: .L im
                    276: and
                    277: .LR ie ,
                    278: which should be null strings if there is no insertion mode.
                    279: String
                    280: .L ic
                    281: is sent just before each character to be inserted, and
                    282: padding
                    283: .L ip
                    284: is sent after.
                    285: Capability
                    286: .L mi
                    287: says it is possible to move around without leaving insertion
                    288: mode.
                    289: Delete mode works similarly: enter with
                    290: .LR dm ,
                    291: leave with
                    292: .LR de ,
                    293: and issue
                    294: .L dc
                    295: before each character.
                    296: .PP
                    297: Highlighting, or `standout' mode is entered by
                    298: .L so
                    299: and left by
                    300: .LR se .
                    301: Underline mode is entered by
                    302: .L us
                    303: and left by
                    304: .LR ue .
                    305: Terminals that underline characters individually have capability
                    306: .LR uc .
                    307: The visual bell capability
                    308: .L vb
                    309: flashes the screen without moving the cursor.
                    310: .PP
                    311: A terminal with a keypad that transmits cursor motions
                    312: may be described by capabilities
                    313: .L
                    314: kl kr ku kd kh
                    315: that give the codes for left, right, up, down, and home.
                    316: Up to ten function keys may be described by
                    317: .L k0
                    318: through
                    319: .LR k9 .
                    320: Special labels for the function keys may be given as
                    321: .L l0
                    322: through
                    323: .LR l9 .
                    324: .PP
                    325: The initialization string
                    326: .L is
                    327: is expected to set tabs if that is necessary.
                    328: That string may come from a file
                    329: .RL ( if );
                    330: if both are present 
                    331: .L is
                    332: is done first.
                    333: .PP
                    334: The entry for a terminal may be continued by jumping
                    335: to another entry given by
                    336: .LR tc .
                    337: Duplicate capabilities are resolved in favor of the first.
                    338: .SH FILES
                    339: .F /etc/termcap
                    340: .SH SEE ALSO
                    341: .IR curses (3),
                    342: .IR termcap (3),
                    343: .IR vi (1),
                    344: .IR ul (1)
                    345: .SH BUGS
                    346: .I Termcap
                    347: entries, including 
                    348: .L tc
                    349: continuations, are limited to 1024 characters.
                    350: .br

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.