BSD 4_2 development
[unix-history] / usr / doc / curses / appen.A.tbl
.ds f. appen.A
.ie t .he ''\fBAppendix A\fR''
.el .he ''\fIAppendix A\fR''
.bp
.(x
.sp 2
.in 0
.bi Appendixes
.sp
.b "Appendix A"
.)x
.nr * 1
.sh 1 "Capabilities from termcap" 1
.sh 2 Disclaimer
.pp
The description of terminals is a difficult business,
and we only attempt to summarize the capabilities here:
for a full description see the paper describing termcap.
.sh 2 Overview
.pp
Capabilities from termcap are of three kinds:
string valued options,
numeric valued options,
and boolean options.
The string valued options are the most complicated,
since they may include padding information,
which we describe now.
.pp
Intelligent terminals often require padding on intelligent operations
at high (and sometimes even low) speed.
This is specified by a number before the string in the capability,
and has meaning for the capabilities which have a
.b P
at the front of their comment.
This normally is a number of milliseconds to pad the operation.
In the current system which has no true programmable delays,
we do this by sending a sequence of pad characters
(normally nulls, but can be changed
(specified by
.i PC )).
In some cases, the pad is better computed as some number of milliseconds
times the number of affected lines
(to the bottom of the screen usually,
except when terminals have insert modes which will shift several lines.)
This is specified as, e.g.,
.b 12* .
before the capability,
to say 12 milliseconds per affected whatever
(currently always line).
Capabilities where this makes sense say
.b P* .
.sp
.sh 2 "Variables Set By setterm()"
.TS H
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 80 81 82 83
.nr 80 0
.nr 38 \w\ 2Type\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2char *\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.80
.rm 80
.nr 81 0
.nr 38 \w\ 2Name\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2AL\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2AM\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2BC\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2BS\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2BT\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2CA\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2CD\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2CE\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2CL\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2CM\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2DC\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2DL\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2DM\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2DO\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2ED\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2EO\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2EI\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2HO\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2HZ\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2IC\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2IN\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2IM\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2IP\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2LL\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2MA\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2MI\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2NC\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2ND\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2OS\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2PC\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2SE\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2SF\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2SO\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2SR\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2TA\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2TE\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2TI\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2UC\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2UE\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2UL\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2UP\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2US\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2VB\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2VE\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2VS\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2XN\ 2
.if \n(81<\n(38 .nr 81 \n(38
.81
.rm 81
.nr 82 0
.nr 38 \w\ 2Pad\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P*\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P*\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P*\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P*\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P*\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P*\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2P\ 2
.if \n(82<\n(38 .nr 82 \n(38
.82
.rm 82
.nr 83 0
.nr 38 \w\ 2Description\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Add new blank Line\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Automatic Margins\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Back Cursor movement\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2BackSpace works\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Back Tab\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Cursor Addressable\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Clear to end of Display\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Clear to End of line\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2CLear screen\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Cursor Motion\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Delete Character\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Delete Line sequence\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Delete Mode (enter)\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2DOwn line sequence\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2End Delete mode\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2can Erase Overstrikes with \' \'\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2End Insert mode\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2HOme cursor\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2HaZeltine ~ braindamage\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Insert Character\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Insert-Null blessing\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2enter Insert Mode (IC usually set, too)\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Pad after char Inserted using IM+IE\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2quick to Last Line, column 0\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2ctrl character MAp for cmd mode\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2can Move in Insert mode\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2No Cr: \er sends \er\en then eats \en\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Non-Destructive space\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2OverStrike works\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Pad Character\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Standout End (may leave space)\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Scroll Forwards\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Stand Out begin (may leave space)\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Scroll in Reverse\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2TAb (not ^I or with padding)\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Terminal address enable Ending sequence\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Terminal address enable Initialization\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Underline a single Character\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Underline Ending sequence\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2UnderLining works even though !OS\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2UPline\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Underline Starting sequence\**\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Visible Bell\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Visual End sequence\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2Visual Start sequence\ 2
.if \n(83<\n(38 .nr 83 \n(38
.nr 38 \w\ 2a Newline gets eaten after wrap\ 2
.if \n(83<\n(38 .nr 83 \n(38
.83
.rm 83
.nr 38 \w\ 2variables set by \fIsetterm()\fR\ 2-\n(80-3n-\n(81-3n-\n(82-3n-\n(83
.if \n(38>0 .nr 38 \n(38/3
.if \n(38<0 .nr 38 0
.nr 81 +\n(38
.nr 82 +\n(38
.nr 83 +\n(38
.nr 38 1n
.nr 79 0
.nr 40 \n(79+(0*\n(38)
.nr 80 +\n(40
.nr 41 \n(80+(3*\n(38)
.nr 81 +\n(41
.nr 42 \n(81+(3*\n(38)
.nr 82 +\n(42
.nr 43 \n(82+(3*\n(38)
.nr 83 +\n(43
.nr TW \n(83
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 107 file appen.A is too wide - \n(TW units
.fc \ 2 \ 3
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2\ 3variables set by \fIsetterm()\fR\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2\ 3\ 2\h'|\n(41u'\ 2\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2Type\ 3\ 2\h'|\n(41u'\ 2Name\ 3\ 2\h'|\n(42u'\ 2Pad\ 3\ 2\h'|\n(43u'\ 2Description\ 3\ 2
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.TH
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2AL\ 3\ 2\h'|\n(42u'\ 2P*\ 3\ 2\h'|\n(43u'\ 2Add new blank Line\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2AM\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Automatic Margins\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2BC\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Back Cursor movement\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2BS\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2BackSpace works\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2BT\ 3\ 2\h'|\n(42u'\ 2P\ 3\ 2\h'|\n(43u'\ 2Back Tab\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2CA\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Cursor Addressable\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2CD\ 3\ 2\h'|\n(42u'\ 2P*\ 3\ 2\h'|\n(43u'\ 2Clear to end of Display\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2CE\ 3\ 2\h'|\n(42u'\ 2P\ 3\ 2\h'|\n(43u'\ 2Clear to End of line\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2CL\ 3\ 2\h'|\n(42u'\ 2P*\ 3\ 2\h'|\n(43u'\ 2CLear screen\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2CM\ 3\ 2\h'|\n(42u'\ 2P\ 3\ 2\h'|\n(43u'\ 2Cursor Motion\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2DC\ 3\ 2\h'|\n(42u'\ 2P*\ 3\ 2\h'|\n(43u'\ 2Delete Character\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2DL\ 3\ 2\h'|\n(42u'\ 2P*\ 3\ 2\h'|\n(43u'\ 2Delete Line sequence\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2DM\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Delete Mode (enter)\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2DO\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2DOwn line sequence\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2ED\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2End Delete mode\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2EO\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2can Erase Overstrikes with \' \'\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2EI\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2End Insert mode\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2HO\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2HOme cursor\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2HZ\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2HaZeltine ~ braindamage\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2IC\ 3\ 2\h'|\n(42u'\ 2P\ 3\ 2\h'|\n(43u'\ 2Insert Character\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2IN\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Insert-Null blessing\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2IM\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2enter Insert Mode (IC usually set, too)\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2IP\ 3\ 2\h'|\n(42u'\ 2P*\ 3\ 2\h'|\n(43u'\ 2Pad after char Inserted using IM+IE\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2LL\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2quick to Last Line, column 0\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2MA\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2ctrl character MAp for cmd mode\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2MI\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2can Move in Insert mode\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2NC\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2No Cr: \er sends \er\en then eats \en\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2ND\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Non-Destructive space\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2OS\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2OverStrike works\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char\ 3\ 2\h'|\n(41u'\ 2PC\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Pad Character\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2SE\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Standout End (may leave space)\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2SF\ 3\ 2\h'|\n(42u'\ 2P\ 3\ 2\h'|\n(43u'\ 2Scroll Forwards\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2SO\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Stand Out begin (may leave space)\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2SR\ 3\ 2\h'|\n(42u'\ 2P\ 3\ 2\h'|\n(43u'\ 2Scroll in Reverse\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2TA\ 3\ 2\h'|\n(42u'\ 2P\ 3\ 2\h'|\n(43u'\ 2TAb (not ^I or with padding)\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2TE\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Terminal address enable Ending sequence\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2TI\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Terminal address enable Initialization\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2UC\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Underline a single Character\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2UE\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Underline Ending sequence\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2UL\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2UnderLining works even though !OS\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2UP\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2UPline\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2US\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Underline Starting sequence\**\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2VB\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Visible Bell\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2VE\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Visual End sequence\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2VS\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2Visual Start sequence\ 3\ 2
.ta \n(80u \n(81u \n(82u \n(83u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2XN\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2\h'|\n(43u'\ 2a Newline gets eaten after wrap\ 3\ 2
.fc
.nr T. 1
.T# 1
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-54
.(f
\**
US and UE,
if they do not exist in the termcap entry,
are copied from SO and SE
in
.Fn setterm
.)f
Names starting with
.bi X
are reserved for severely nauseous glitches
.sh 2 "Variables Set By gettmode()"
.TS H
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 80 81 82
.nr 80 0
.nr 38 \w\ 2type\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\ 2bool\ 2
.if \n(80<\n(38 .nr 80 \n(38
.80
.rm 80
.nr 81 0
.nr 38 \w\ 2name\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2NONL\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2GT\ 2
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \w\ 2UPPERCASE\ 2
.if \n(81<\n(38 .nr 81 \n(38
.81
.rm 81
.nr 82 0
.nr 38 \w\ 2description\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2Term can't hack linefeeds doing a CR\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2Gtty indicates Tabs\ 2
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\ 2Terminal generates only uppercase letters\ 2
.if \n(82<\n(38 .nr 82 \n(38
.82
.rm 82
.nr 38 \w\ 2variables set by \fIgettmode()\fR\ 2-\n(80-3n-\n(81-3n-\n(82
.if \n(38>0 .nr 38 \n(38/2
.if \n(38<0 .nr 38 0
.nr 81 +\n(38
.nr 82 +\n(38
.nr 38 1n
.nr 79 0
.nr 40 \n(79+(0*\n(38)
.nr 80 +\n(40
.nr 41 \n(80+(3*\n(38)
.nr 81 +\n(41
.nr 42 \n(81+(3*\n(38)
.nr 82 +\n(42
.nr TW \n(82
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 131 file appen.A is too wide - \n(TW units
.fc \ 2 \ 3
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(82u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2\ 3variables set by \fIgettmode()\fR\ 3\ 2
.ta \n(80u \n(81u \n(82u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2\ 3\ 2\h'|\n(41u'\ 2\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2
.ta \n(80u \n(81u \n(82u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2type\ 3\ 2\h'|\n(41u'\ 2name\ 3\ 2\h'|\n(42u'\ 2description\ 3\ 2
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.TH
.ta \n(80u \n(81u \n(82u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2NONL\ 3\ 2\h'|\n(42u'\ 2Term can't hack linefeeds doing a CR\ 3\ 2
.ta \n(80u \n(81u \n(82u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2GT\ 3\ 2\h'|\n(42u'\ 2Gtty indicates Tabs\ 3\ 2
.ta \n(80u \n(81u \n(82u
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2UPPERCASE\ 3\ 2\h'|\n(42u'\ 2Terminal generates only uppercase letters\ 3\ 2
.fc
.nr T. 1
.T# 1
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-11