-.I termcap
-consist of a number of `:' separated fields.
-The first entry for each terminal gives the names which are known for the
-terminal, separated by `|' characters. The first name is always 2 characters
-long and is used by older version 6 systems which store the terminal type
-in a 16 bit word in a systemwide data base.
-The second name given is the most common abbreviation for the terminal, and the
-last name given should be a long name fully identifying the terminal.
-The second name should contain no blanks; the last name may well contain
-blanks for readability.
-.SH CAPABILITIES
-.nf
-(P) indicates padding may be specified
-(P*) indicates that padding may be based on no. lines affected
-
-.ta \w'k0-k9 'u +\w'Type 'u +\w'Pad? 'u
-\fBName Type Pad? Description\fR
-ae str (P) End alternate character set
-al str (P*) Add new blank line
-am bool Terminal has automatic margins
-as str (P) Start alternate character set
-bc str Backspace if not \fB^H\fR
-bl str Bell if not \fB^G\fR
-bs bool Terminal can backspace with \fB^H\fR
-bt str (P) Back tab
-bw bool Backspace wraps from column 0 to last column
-CC str Command character in prototype if terminal settable
-cd str (P*) Clear to end of display
-ce str (P) Clear to end of line
-ch str (P) Like cm but horizontal motion only, line stays same
-cl str (P*) Clear screen
-cm str (P) Cursor motion
-co num Number of columns in a line
-cr str (P*) Carriage return, (default \fB^M\fR)
-cs str (P) Change scrolling region (vt100), like cm
-cv str (P) Like ch but vertical only.
-da bool Display may be retained above
-dB num Number of millisec of bs delay needed
-db bool Display may be retained below
-dC num Number of millisec of cr delay needed
-dc str (P*) Delete character
-dF num Number of millisec of ff delay needed
-dl str (P*) Delete line
-dm str Delete mode (enter)
-dN num Number of millisec of nl delay needed
-do str Down one line
-dT num Number of millisec of tab delay needed
-ed str End delete mode
-ei str End insert mode; give \*(lq:ei=:\*(rq if \fBic\fR
-eo str Can erase overstrikes with a blank
-ff str (P*) Hardcopy terminal page eject (default \fB^L\fR)
-hc bool Hardcopy terminal
-hd str Half-line down (forward 1/2 linefeed)
-ho str Home cursor (if no \fBcm\fR)
-hu str Half-line up (reverse 1/2 linefeed)
-hz str Hazeltine; can't print ~'s
-ic str (P) Insert character
-if str Name of file containing \fBis\fR
-im bool Insert mode (enter); give \*(lq:im=:\*(rq if \fBic\fR
-in bool Insert mode distinguishes nulls on display
-ip str (P*) Insert pad after character inserted
-is str Terminal initialization string
-k0-k9 str Sent by \*(lqother\*(rq function keys 0-9
-kb str Sent by backspace key
-kd str Sent by terminal down arrow key
-ke str Out of \*(lqkeypad transmit\*(rq mode
-kh str Sent by home key
-kl str Sent by terminal left arrow key
-kn num Number of \*(lqother\*(rq keys
-ko str Termcap entries for other non-function keys
-kr str Sent by terminal right arrow key
-ks str Put terminal in \*(lqkeypad transmit\*(rq mode
-ku str Sent by terminal up arrow key
-l0-l9 str Labels on \*(lqother\*(rq function keys
-li num Number of lines on screen or page
-ll str Last line, first column (if no \fBcm\fR)
-ma str Arrow key map, used by vi version 2 only
-mi bool Safe to move while in insert mode
-ml str Memory lock on above cursor.
-ms bool Safe to move while in standout and underline mode
-mu str Memory unlock (turn off memory lock).
-nc bool No correctly working carriage return (DM2500,H2000)
-nd str Non-destructive space (cursor right)
-nl str (P*) Newline character (default \fB\en\fR)
-ns bool Terminal is a \s-2CRT\s+2 but doesn't scroll.
-os bool Terminal overstrikes
-pc str Pad character (rather than null)
-pt bool Has hardware tabs (may need to be set with \fBis\fR)
-se str End stand out mode
-sf str (P) Scroll forwards
-sg num Number of blank chars left by so or se
-so str Begin stand out mode
-sr str (P) Scroll reverse (backwards)
-ta str (P) Tab (other than \fB^I\fR or with padding)
-tc str Entry of similar terminal - must be last
-te str String to end programs that use \fBcm\fP
-ti str String to begin programs that use \fBcm\fR
-uc str Underscore one char and move past it
-ue str End underscore mode
-ug num Number of blank chars left by us or ue
-ul bool Terminal underlines even though it doesn't overstrike
-up str Upline (cursor up)
-us str Start underscore mode
-vb str Visible bell (may not move cursor)
-ve str Sequence to end open/visual mode
-vs str Sequence to start open/visual mode
-xb bool Beehive (f1=escape, f2=ctrl C)
-xn bool A newline is ignored after a wrap (Concept)
-xr bool Return acts like \fBce\fP \er \en (Delta Data)
-xs bool Standout not erased by writing over it (HP 264?)
-xt bool Tabs are destructive, magic so char (Teleray 1061)
-.fi
-.PP
-.B A Sample Entry
-.PP
+.Nm termcap
+consist of a number of `:'-separated fields.
+The first entry for each terminal gives the names that are known for the
+terminal, separated by `|' characters.
+The first name given is the most common abbreviation for the terminal.
+The last name given should be a long name fully identifying the terminal,
+and all others are understood as synonyms for the terminal name.
+All names but the last should be in lower case and contain no blanks;
+the last name may well contain upper case characters and blanks for
+readability.
+.Pp
+Terminal names (except for the last, verbose entry)
+should be chosen using the following conventions.
+The particular piece of hardware making up the terminal
+should have a root name chosen, thus
+.Dq hp2621
+This name should not contain hyphens.
+Modes that the hardware can be in
+or user preferences
+should be indicated by appending a hyphen and an indicator of the mode.
+Therefore, a
+.Dq vt100
+in 132-column mode would be
+.Dq vt100-w .
+The following suffixes should be used where possible:
+.Pp
+.Bd -filled -offset indent
+.Bl -column indent "With automatic margins (usually default)xx"
+.Sy Suffix Meaning Example
+-w Wide mode (more than 80 columns) vt100-w
+-am With automatic margins (usually default) vt100-am
+-nam Without automatic margins vt100-nam
+.Pf \- Ar n Ta No "Number of lines on the screen aaa-60"
+-na No arrow keys (leave them in local) concept100-na
+.Pf \- Ar \&np Ta No "Number of pages of memory concept100-4p"
+-rv Reverse video concept100-rv
+.El
+.Ed
+.Sh CAPABILITIES
+The characters in the
+The
+.Em Notes
+function
+field in the table have the following meanings
+(more than one may apply to a capability):
+.Pp
+.Bd -unfilled -offset indent
+N indicates numeric parameter(s)
+P indicates that padding may be specified
+* indicates that padding may be based on the number of lines affected
+o indicates capability is obsolete
+.Ed
+.Pp
+.Dq Obsolete
+capabilities have no
+.Em terminfo
+equivalents,
+since they were considered useless,
+or are subsumed by other capabilities.
+New software should not rely on them at all.
+.Pp
+.Bl -column indent indent indent
+.Sy Name Type Notes Description
+functions
+.It "ae str (P) End alternate character set."
+.It AL str (NP*) Add"
+.Em n
+new blank lines
+.It "al str (P*) Add new blank line."
+.It "am bool Terminal has automatic margins."
+.It "as str (P) Start alternate character set."
+.It "bc str (o) Backspace if not."
+.Sy \&^H .
+.It "bl str (P) Audible signal (bell)."
+.It "bs bool (o) Terminal can backspace with"
+.Sy \&^H .
+.It "bt str (P) Back tab."
+.It "bw bool " Ta Sy \&le
+(backspace) wraps from column 0 to last column.
+.It "CC str Terminal settable command character in prototype."
+.It "cd str (P*) Clear to end of display."
+.It "ce str (P) Clear to end of line."
+.It "ch str (NP) Set cursor column (horizontal position)."
+.It "cl str (P*) Clear screen and home cursor."
+.It "CM str (NP) Memory-relative cursor addressing."
+.It "cm str (NP) Screen-relative cursor motion."
+.It "co num Number of columns in a line (See"
+.Sx BUGS
+section below).
+.It "cr str (P) Carriage return."
+.It "cs str (NP) Change scrolling region (VT100)."
+.It "ct str (P) Clear all tab stops."
+.It "cv str (NP) Set cursor row (vertical position)."
+.It "da bool Display may be retained above the screen."
+.It "dB num (o) Milliseconds of"
+.Sy \&bs
+delay needed (default 0).
+.It "db bool Display may be retained below the screen."
+.It "DC str (NP*) Delete"
+.Em n
+characters.
+.It "dC num (o) Milliseconds of"
+.Sy \&cr
+delay needed (default 0).
+.It "dc str (P*) Delete character."
+.It "dF num (o) Milliseconds of"
+.Sy \&ff
+delay needed (default 0).
+.It "DL str (NP*) Delete"
+.Ar n
+lines.
+.It "dl str (P*) Delete line."
+.It "dm str Enter delete mode."
+.It "dN num (o) Milliseconds of
+.Sy \&nl
+delay needed (default 0).
+.It "DO str (NP*) Move cursor down:
+.Ar n
+lines.
+.It "do str Down one line."
+.It "ds str Disable status line."
+.It "dT num (o) Milliseconds of horizontal tab delay needed (default 0)."
+.It "dV num (o) Milliseconds of vertical tab delay needed (default 0)."
+.It "ec str (NP) Erase"
+.Ar n
+characters.
+.It "ed str End delete mode."
+.It "ei str End insert mode."
+.It "eo bool Can erase overstrikes with a blank."
+.It "EP bool (o) Even parity."
+.It "es bool Escape can be used on the status line."
+.It "ff str (P*) Hardcopy terminal page eject."
+.It "fs str Return from status line."
+.It "gn bool Generic line type, for example dialup, switch)."
+.It "hc bool Hardcopy terminal."
+.It "HD bool (o) Half-duplex."
+.It "hd str Half-line down (forward 1/2 linefeed)."
+.It "ho str (P) Home cursor."
+.It "hs bool Has extra"
+.Dq status line .
+.It "hu str Half-line up (reverse 1/2 linefeed)."
+.It "hz bool Cannot print ``~'' (Hazeltine)."
+.It "i1-i3 str Terminal initialization strings"
+.Pf ( Xr terminfo
+only)
+.It "IC str (NP*) Insert"
+.Ar n
+blank characters.
+.It "ic str (P*) Insert character."
+.It "if str Name of file containing initialization string."
+.It "im str Enter insert mode."
+.It "in bool Insert mode distinguishes nulls."
+.It "iP str Pathname of program for initialization"
+.Pf ( Xr terminfo
+only).
+.It "ip str (P*) Insert pad after character inserted."
+.It "is str Terminal initialization string"
+.Pf ( Nm termcap
+only).
+.It "it num Tabs initially every"
+.Ar n
+positions.
+.It "K1 str Sent by keypad upper left."
+.It "K2 str Sent by keypad upper right."
+.It "K3 str Sent by keypad center."
+.It "K4 str Sent by keypad lower left."
+.It "K5 str Sent by keypad lower right."
+.It "k0-k9 str Sent by function keys 0-9."
+.It "kA str Sent by insert-line key."
+.It "ka str Sent by clear-all-tabs key."
+.It "kb str Sent by backspace key."
+.It "kC str Sent by clear-screen or erase key."
+.It "kD str Sent by delete-character key."
+.It "kd str Sent by down-arrow key."
+.It "kE str Sent by clear-to-end-of-line key."
+.It "ke str Out of"
+.Dq keypad transmit
+mode.
+.It "kF str Sent by scroll-forward/down key."
+.It "kH str Sent by home-down key."
+.It "kh str Sent by home key."
+.It "kI str Sent by insert-character or enter-insert-mode key."
+.It "kL str Sent by delete-line key."
+.It "kl str Sent by left-arrow key."
+.It "kM str Sent by insert key while in insert mode."
+.It "km bool Has a"
+.Dq meta
+key (shift, sets parity bit).
+.It "kN str Sent by next-page key."
+.It "kn num (o) Number of function"
+.Pq Sy \&k\&0 Ns \- Sy \&k\&9
+keys (default 0).
+.It "ko str (o) Termcap entries for other non-function keys."
+.It "kP str Sent by previous-page key."
+.It "kR str Sent by scroll-backward/up key."
+.It "kr str Sent by right-arrow key."
+.It "kS str Sent by clear-to-end-of-screen key."
+.It "ks str Put terminal in"
+.Dq keypad transmit
+mode.
+.It "kT str Sent by set-tab key."
+.It "kt str Sent by clear-tab key."
+.It "ku str Sent by up-arrow key."
+.It "l0-l9 str Labels on function keys if not"
+.Dq \&f Ns Em n .
+.It "LC bool (o) Lower-case only."
+.It "LE str (NP) Move cursor left"
+.Ar n
+positions.
+.It "le str (P) Move cursor left one position."
+.It "li num Number of lines on screen or page (See"
+.Sx BUGS
+section below)
+.It "ll str Last line, first column
+.It "lm num Lines of memory if >" Sy \&li
+(0 means varies).
+.It "ma str (o) Arrow key map (used by"
+.Xr \&vi
+version 2 only).
+.It "mb str Turn on blinking attribute."
+.It "md str Turn on bold (extra bright) attribute."
+.It "me str Turn off all attributes."
+.It "mh str Turn on half-bright attribute."
+.It "mi bool Safe to move while in insert mode."
+.It "mk str Turn on blank attribute (characters invisible)."
+.It "ml str (o) Memory lock on above cursor."
+.It "mm str Turn on"
+.Dq meta mode
+(8th bit).
+.It "mo str Turn off"
+.Dq meta mode .
+.It "mp str Turn on protected attribute."
+.It "mr str Turn on reverse-video attibute."
+.It "ms bool Safe to move in standout modes."
+.It "mu str (o) Memory unlock (turn off memory lock)."
+.It "nc bool (o) No correctly-working"
+.Sy \&cr
+(Datamedia 2500, Hazeltine 2000).
+.It "nd str Non-destructive space (cursor right)."
+.It "NL bool (o)" Ta Sy \&\en No "is newline, not line feed."
+.It "nl str (o) Newline character if not" Sy \en .
+.It "ns bool (o) Terminal is a" Tn CRT No "but doesn't scroll."
+.It "nw str (P) Newline (behaves like"
+.Sy \&cr
+followed by
+.Sy \&do ).
+.It "OP bool (o) Odd parity."
+.It "os bool Terminal overstrikes."
+.It "pb num Lowest baud where delays are required."
+.It "pc str Pad character (default" Tn NUL ).
+.It "pf str Turn off the printer."
+.It "pk str Program function key"
+.Em n
+to type string
+.Em s
+.Pf ( Xr terminfo
+only).
+.It "pl str Program function key"
+.Em n
+to execute string
+.Em s
+.Pf ( Xr terminfo
+only).
+.It "pO str (N) Turn on the printer for"
+.Em n
+bytes.
+.It "po str Turn on the printer."
+.It "ps str Print contents of the screen."
+.It "pt bool (o) Has hardware tabs (may need to be set with"
+.Sy \&is ).
+.It "px str Program function key"
+.Em n
+to transmit string
+.Em s
+.Pf ( Xr terminfo
+only).
+.It "r1-r3 str Reset terminal completely to sane modes"
+.Pf ( Xr terminfo
+only).
+.It "rc str (P) Restore cursor to position of last"
+.Sy \&sc .
+.It "rf str Name of file containing reset codes."
+.It "RI str (NP) Move cursor right"
+.Em n
+positions.
+.It "rp str (NP*) Repeat character"
+.Em c n
+times.
+.It "rs str Reset terminal completely to sane modes"
+.Pf ( Nm termcap
+only).
+.It "sa str (NP) Define the video attributes."
+.It "sc str (P) Save cursor position."
+.It "se str End standout mode."
+.It "SF str (NP*) Scroll forward"
+.Em n
+lines.
+.It "sf str (P) Scroll text up."
+.It "sg num Number of garbage chars left by"
+.Sy \&so
+or
+.Sy \&se
+(default 0).
+.It "so str Begin standout mode."
+.It "SR str (NP*) Scroll backward"
+.Em n
+lines.
+.It "sr str (P) Scroll text down."
+.It "st str Set a tab in all rows, current column."
+.It "ta str (P) Tab to next 8-position hardware tab stop."
+.It "tc str Entry of similar terminal \- must be last."
+.It "te str String to end programs that use"
+.Nm termcap .
+.It "ti str String to begin programs that use"
+.Nm termcap .
+.It "ts str (N) Go to status line, column"
+.Em n .
+.It "UC bool (o) Upper-case only."
+.It "uc str Underscore one character and move past it."
+.It "ue str End underscore mode."
+.It "ug num Number of garbage chars left by"
+.Sy \&us
+or
+.Sy \&ue
+(default 0).
+.It "ul bool Underline character overstrikes."
+.It "UP str (NP*) Move cursor up"
+.Em n
+lines.
+.It "up str Upline (cursor up)."
+.It "us str Start underscore mode."
+.It "vb str Visible bell (must not move cursor)."
+.It "ve str Make cursor appear normal (undo"
+.Sy \&vs Ns / Sy \&vi ) .
+.It "vi str Make cursor invisible."
+.It "vs str Make cursor very visible."
+.It "vt num Virtual terminal number (not supported on all systems)."
+.It "wi str (N) Set current window."
+.It "ws num Number of columns in status line."
+.It "xb bool Beehive"
+.Pf ( "f1=" Dv ESC ,
+.Pf "f2=" Sy \&^C ) .
+.It "xn bool Newline ignored after 80 cols (Concept)."
+.It "xo bool Terminal uses xoff/xon"
+.Pq Dv DC3 Ns / Ns Dv DC1
+handshaking.
+.It "xr bool (o) Return acts like"
+.Sy "ce cr nl"
+(Delta Data).
+.It "xs bool Standout not erased by overwriting (Hewlett-Packard)."
+.It "xt bool Tabs ruin, magic"
+.SY \&so
+char (Teleray 1061).
+.It "xx bool (o) Tektronix 4025 insert-line."
+.El
+.Ss A Sample Entry