+.\" Copyright (c) 1980 Regents of the University of California.
+.\" All rights reserved. The Berkeley software License Agreement
+.\" specifies the terms and conditions for redistribution.
+.\"
+.\" @(#)appen.A 4.1 (Berkeley) %G%
+.\"
+.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
+c s s s
+l l l l.
+variables set by \fIsetterm()\fR
+
+Type Name Pad Description
+_
+.TH
+char * AL P* Add new blank Line
+bool AM Automatic Margins
+char * BC Back Cursor movement
+bool BS BackSpace works
+char * BT P Back Tab
+bool CA Cursor Addressable
+char * CD P* Clear to end of Display
+char * CE P Clear to End of line
+char * CL P* CLear screen
+char * CM P Cursor Motion
+char * DC P* Delete Character
+char * DL P* Delete Line sequence
+char * DM Delete Mode (enter)
+char * DO DOwn line sequence
+char * ED End Delete mode
+bool EO can Erase Overstrikes with \' \'
+char * EI End Insert mode
+char * HO HOme cursor
+bool HZ HaZeltine ~ braindamage
+char * IC P Insert Character
+bool IN Insert-Null blessing
+char * IM enter Insert Mode (IC usually set, too)
+char * IP P* Pad after char Inserted using IM+IE
+char * LL quick to Last Line, column 0
+char * MA ctrl character MAp for cmd mode
+bool MI can Move in Insert mode
+bool NC No Cr: \er sends \er\en then eats \en
+char * ND Non-Destructive space
+bool OS OverStrike works
+char PC Pad Character
+char * SE Standout End (may leave space)
+char * SF P Scroll Forwards
+char * SO Stand Out begin (may leave space)
+char * SR P Scroll in Reverse
+char * TA P TAb (not ^I or with padding)
+char * TE Terminal address enable Ending sequence
+char * TI Terminal address enable Initialization
+char * UC Underline a single Character
+char * UE Underline Ending sequence
+bool UL UnderLining works even though !OS
+char * UP UPline
+char * US Underline Starting sequence\**
+char * VB Visible Bell
+char * VE Visual End sequence
+char * VS Visual Start sequence
+bool XN a Newline gets eaten after wrap
+.TE
+.(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
+c s s
+l l l.
+variables set by \fIgettmode()\fR
+
+type name description
+_
+.TH
+bool NONL Term can't hack linefeeds doing a CR
+bool GT Gtty indicates Tabs
+bool UPPERCASE Terminal generates only uppercase letters
+.TE