summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1999-01-01 08:48:31 +0000
committerpeter <peter@FreeBSD.org>1999-01-01 08:48:31 +0000
commit93627b2d8230dae92042c4e49e1d0ef5c7f2d083 (patch)
tree73d3c11005c15bafd60dc3173c50209bf562f07a /share
parent7766c8cbe4ca6e8d78a3f6e26f59a6a47ace4038 (diff)
downloadFreeBSD-src-93627b2d8230dae92042c4e49e1d0ef5c7f2d083.zip
FreeBSD-src-93627b2d8230dae92042c4e49e1d0ef5c7f2d083.tar.gz
restore pcvt(4) man page
Reviewed by: core
Diffstat (limited to 'share')
-rw-r--r--share/man/man4/man4.i386/Makefile5
-rw-r--r--share/man/man4/man4.i386/pcvt.4910
-rw-r--r--share/man/man4/pcvt.4910
3 files changed, 1823 insertions, 2 deletions
diff --git a/share/man/man4/man4.i386/Makefile b/share/man/man4/man4.i386/Makefile
index e29a2a2..79bf029 100644
--- a/share/man/man4/man4.i386/Makefile
+++ b/share/man/man4/man4.i386/Makefile
@@ -1,11 +1,11 @@
-# $Id: Makefile,v 1.91 1998/12/27 12:52:39 phk Exp $
+# $Id: Makefile,v 1.92 1998/12/27 13:06:36 phk Exp $
MAN4= adv.4 adw.4 aha.4 ahb.4 ahc.4 aic.4 alog.4 apm.4 ar.4 asc.4 bktr.4 \
bt.4 cs.4 cx.4 cy.4 de.4 \
dgb.4 dpt.4 ed.4 el.4 en.4 ep.4 ex.4 fdc.4 fe.4 fxp.4 gsc.4 ie.4 \
io.4 joy.4 keyboard.4 labpc.4 le.4 lnc.4 lp.4 lpt.4 matcd.4 mcd.4 \
mem.4 meteor.4 mouse.4 mse.4 mtio.4 mx.4 ncr.4 npx.4 \
- pcf.4 pcm.4 perfmon.4 pn.4 pnp.4 ppc.4 psm.4 \
+ pcf.4 pcm.4 pcvt.4 perfmon.4 pn.4 pnp.4 ppc.4 psm.4 \
rdp.4 rl.4 sb.4 scd.4 screen.4 si.4 sio.4 \
spkr.4 sr.4 sysmouse.4 tl.4 tw.4 tx.4 vr.4 vx.4 \
wb.4 wd.4 wfd.4 wl.4 wt.4 xl.4 ze.4 zp.4
@@ -58,6 +58,7 @@ MLINKS+= ncr.4 ../ncr.4
MLINKS+= npx.4 ../npx.4
MLINKS+= pcf.4 ../pcf.4
MLINKS+= pcm.4 ../pcm.4
+MLINKS+= pcvt.4 vt.4 pcvt.4 ../pcvt.4 pcvt.4 ../vt.4
MLINKS+= perfmon.4 ../perfmon.4
MLINKS+= pn.4 ../pn.4
MLINKS+= pnp.4 ../pnp.4
diff --git a/share/man/man4/man4.i386/pcvt.4 b/share/man/man4/man4.i386/pcvt.4
new file mode 100644
index 0000000..96ef474
--- /dev/null
+++ b/share/man/man4/man4.i386/pcvt.4
@@ -0,0 +1,910 @@
+.\"
+.\" Copyright (c) 1992, 1995 Hellmuth Michaelis, Brian Dunford-Shore,
+.\" Joerg Wunsch and Holger Veit.
+.\"
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Hellmuth Michaelis,
+.\" Brian Dunford-Shore, Joerg Wunsch and Holger Veit.
+.\" 4. The name authors may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" @(#)pcvt.4, 3.20, Last Edit-Date: [Sun Apr 2 18:23:39 1995]
+.\" $Id: pcvt.4,v 1.12 1998/10/22 14:29:03 bde Exp $
+.\"
+.\" Man page pcvt(4) created after pcvt_ioctl.h on 13-Jan-93
+.\" by Joerg Wunsch
+.\"
+.\" updated for rel 2.10 (-hm)
+.\" updated for rel 2.20 (-hm)
+.\" updated for rel 3.00 (-jw)
+.\" updated for final rel 3.00 (-hm)
+.\" removed references to 386BSD (-hm)
+.\"
+.Dd February 27, 1994
+.Dt PCVT 4 i386
+.Sh NAME
+.Nm pcvt ,
+.Nm vt
+.Nd PC console virtual screen system
+.Sh SYNOPSIS
+options
+.Do
+.Em PCVT_FREEBSD = version
+|
+.Em PCVT_NETBSD = version
+.Dc
+.br
+.Op options Dq Em PCVT_NSCREENS = number
+.br
+.Op options Dq Em PCVT_XXXX
+.Po
+see
+.Sx Configuration
+below
+.Pc
+.Pp
+.Cd "device vt0 at isa? port IO_KBD tty irq 1"
+.Sh DESCRIPTION
+.Ss Overview
+The
+.Nm pcvt
+driver provides a virtual screen system with several additional
+features not available in historic console drivers.
+Besides the ability of handling
+multiple virtual screens,
+the probably most important is an emulation of a wide range
+of DEC VT-220
+.if t \(tm
+.if n (TM)
+functionality. See
+.Sx Features
+for a detailed description.
+
+.Ss Features
+.Bl -bullet
+.It
+Almost full DEC VT220
+.if t \(tm
+.if n (TM)
+functionality
+.Po
+moving towards VT320
+.if t \(tm
+.if n (TM)
+.Pc
+.It
+Completely independent virtual terminals for MDA/HGC/CGA/EGA and VGA
+.It
+25, 28, 35, 40, 43 or 50x80 screen resolution for each virtual screen
+.It
+Fully remappable keyboard to support national keyboards
+.It
+All VT220 character sets plus ISO Latin-1 and DEC technical supported
+.It
+VT220 downloadable character set supported when run on EGA/VGA
+.It
+VT220 user defined keys for each virtual terminal
+.It
+Optional function key label support
+.if t \('a
+.if n 'a
+la Hewlett-Packard
+.It
+Display function codes functionality
+.It
+Support for MDA, CGA, EGA and VGA display adaptors
+.It
+Support for 132 column operation on VGA chipsets
+.It
+X Window Support for XFree86 >= 1.2 using the pccons model, or
+for XFree86 >= 2.0 using the syscons model
+.Po
+requires
+.Em PCVT_USL_VT_COMPAT
+to be configured
+.Pc
+.El
+
+What it cannot:
+.Bl -bullet
+.It
+No double wide/high characters
+.It
+No softscroll
+.It
+No inverse background
+.It
+No VT220 printer output support
+.It
+No VT52 support at all
+.It
+No 8-bit controls
+.It
+Only limited AT-keyboard
+.Pq 84 keys
+support
+.Pq yet
+.It
+Help you to make money...
+.El
+
+.Ss Configuration
+The
+.Nm pcvt
+console driver is currently available for the Intel-based BSD operating
+systems
+.Tn NetBSD/i386
+(release 0.9 or higher),
+and
+.Tn FreeBSD
+(release 1.0-GAMMA or higher) .
+In order to get the appropriate system support, one of the options
+.Em PCVT_NETBSD ,
+or
+.Em PCVT_FREEBSD
+must be defined in the system's config file
+.Pq see Xr config 8 .
+In addition, for the
+.Tn FreeBSD
+and
+.Tn NetBSD
+operating systems, it is necessary to set this option to the operating
+system's version number.
+For
+.Tn FreeBSD
+this version number must be expressed as a 3-digit number.
+E.\& g., if you are running the 1.0 release
+.Pq which is actually version 1.0.2 ,
+you should define
+
+.Em PCVT_FREEBSD = 102
+
+For
+.Em NetBSD
+this version number must be expressed as 9 if you are running NetBSD 0.9
+and anything greater than 9 for NetBSD-current (pre 1.0). It is recommended
+to use (as with
+.Tn FreeBSD )
+100 for
+.Nx 1.0
+and 999 for
+.Tn NetBSD-current.
+E.g., if you are running the
+.Nx 1.0
+release, you should define
+
+.Em PCVT_NETBSD = 100
+
+The
+.Nm pcvt
+driver has been designed to be highly configurable in order to satisfy
+everyone's needs. The preferred way for those configurations is to
+provide appropriate
+.Em options
+lines within the config file, possibly overriding the built-in default
+values. Therefore it is possible to compile several distinct kernels
+with different driver behaviour on a single machine.
+
+The following list gives a short overview of the available configuration
+options. Refer to the file
+.Pa i386/isa/pcvt/pcvt_hdr.h
+in the kernel source tree for detailed documentation.
+
+Note: the following conventions apply to all the Boolean options.
+If an option is given with no value, a value of 1
+.Pq activated
+is substituted. If an option value is given as 0, this options is
+deactivated. Any other value is substituted by 1, too. If an option
+is omitted, a built-in default is assumed.
+
+.Bl -tag -width indent -compact
+
+.It Em PCVT_NSCREENS
+Defines the number of virtual screens.
+.br
+Default: 8
+
+.It Em PCVT_VT220KEYB
+If activated, a keyboard layout resembling a DEC VT200 (TM) is generated.
+If deactivated, a mixture between VT220 and HP is used. See the files
+.Pa Keyboard.VT
+and
+.Pa Keyboard.HP
+in the
+.Nm pcvt
+documentation directory for a full description.
+.br
+Default: off
+
+.It Em PCVT_SCREENSAVER
+Enables the builtin screensaver feature.
+.br
+Default: on
+
+.It Em PCVT_PRETTYSCRNS
+If enabled, a blinking-star screensaver is used. If disabled, the screen
+is simply blanked
+.Pq which might be useful for energy-saving monitors .
+.br
+Default: on
+
+.It Em PCVT_CTRL_ALT_DEL
+If enabled, the key combination
+.Aq Em Ctrl
+.Aq Em Alt
+.Aq Em Del
+invokes a CPU reset.
+.br
+Default: off
+
+.It Em PCVT_USEKBDSEC
+Do NOT override a security lock for the keyboard.
+.br
+Default: on
+
+.It Em PCVT_24LINESDEF
+If enabled, the 25-line modi
+.Po
+VT emulation with 25 lines, and HP emulation with 28 lines
+.Pc
+default to 24 lines only to provide a better compatibility to the
+original DEV VT220 (TM). Thus it should be possible to use the
+terminal information for those terminals without further changes.
+Note that this is a startup option; it is possible to toggle between
+the 24- and 25-lines' display by the
+.Xr scon 1
+utility.
+.br
+Default: off
+
+.It Em PCVT_EMU_MOUSE
+Emulate a three-button mouse via the keypad. Useful for notebooks when
+running XFree86. See
+.Sx Mouse emulation
+below.
+.br
+Default: off
+
+.It Em PCVT_META_ESC
+If enabled, a sequence composed of
+.Aq Em esc ,
+followed by the normal key code is emitted if a key is pressed with the
+.Aq Em Alt
+key modifier. If disabled, then normal key code with the value
+.Em 0x80
+added is sent.
+.br
+Default: off
+
+.El
+
+Note that there are further options available which are mainly used for
+debugging purposes or as a workaround for hardware problems. They are
+found in
+.Pa i386/isa/pcvt/pcvt_hdr.h
+along with their documentation.
+
+.Ss Internal Functions
+The functionality described below may be accessed via
+.Xr ioctl 2
+system calls with a file descriptor opened on a device node
+related to the
+.Nm pcvt
+driver.
+To make use of them, a program should contain the following line:
+
+
+.Dl #include <machine/pcvt_ioctl.h>
+
+Any parameter definitions cited below can be found in that file.
+
+
+.Em Keyboard related functions
+
+Three functions are related to basic keyboard hardware:
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDRESET
+reset keyboard, set defaults;
+.It KBDGTPMAT
+get current typematic value, parameter is a pointer to int where
+the values is stored to;
+.It KBDSTPMAT
+set current typematic value, similar to above command.
+.El
+
+Symbolic values are available for the appropriate constants.
+To specify the initial typematic delay time, they are
+KBD_TPD250 for 250 ms through
+KBD_TPD1000 for 1000 ms, in steps of 250 ms. The typematic repeat
+rates are
+KBD_TPM300, specifying 30.0 characters per second through
+KBD_TPM20 for 2.0 characters per second. The intermediate values
+are: 30.0, 26.7, 24.0, 21.8, 20.0, 18.5, 17.1, 16.0, 15.0, 13.3,
+12.0, 10.9, 10.0, 9.2, 8.6, 8.0, 7.5, 6.7, 6.0, 5.5, 5.0, 4.6, 4.3,
+4.0, 3.7, 3.3, 3.0, 2.7, 2.5, 2.3, 2.1, 2.0 characters per second.
+
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDGREPSW
+get key repetition switch, and
+.It KBDSREPSW
+set key repetition switch
+.El
+
+again take a pointer to int as argument. They manipulate the
+drivers internal keyboard repetition flag, possible values are:
+KBD_REPEATOFF or KBD_REPEATON.
+
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDGLEDS
+get LED state, and
+.It KBDSLEDS
+set LED state manipulate the keyboard indicators, but do not influence
+the drivers idea of lock key state.
+.El
+
+The int where the argument points to
+may have the values
+KBD_SCROLLLOCK, KBD_NUMLOCK, KBD_CAPSLOCK, which may be used in any
+conjunction.
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDGLOCK
+gets state of SCROLL,NUM,CAPS, and
+.It KBDSLOCK
+sets state of SCROLL,NUM,CAPS + LEDs
+.El
+
+should be used in a same manner to get/set the drivers internal
+LED flags.
+
+
+.Em Keyboard remapping
+
+One important feature of the
+.Nm pcvt
+driver is its ability to overload the built in key definition.
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDGCKEY
+get current key values,
+.It KBDSCKEY
+set new key assignment values, and
+.It KBDGOKEY
+get original key assignment values
+.El
+
+arrange those functions. The take a pointer to a
+.Em struct kbd_ovlkey
+as argument as described below. In addition,
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDRMKEY
+removes a key assignment, taking a pointer to an int as argument which
+contains the affected key number;
+.It KBDDEFAULT
+removes all key assignments.
+.El
+.Bd -literal
+struct kbd_ovlkey /* complete definition of a key */
+{
+ u_short keynum; /* the key itself */
+ u_short type; /* type of key, see below */
+ u_char subu; /* subtype, ignored on write */
+ char unshift[KBDMAXOVLKEYSIZE+1]; /* emitted string, unshifted */
+ u_char subs; /* subtype, ignored on write */
+ char shift[KBDMAXOVLKEYSIZE+1]; /* emitted string, shifted */
+ u_char subc; /* subtype, ignored on write */
+ char ctrl[KBDMAXOVLKEYSIZE+1]; /* emitted string, control */
+ u_char suba; /* subtype, ignored on write */
+ char altgr[KBDMAXOVLKEYSIZE+1]; /* emitted string, altgr */
+};
+.Ed
+
+The appropriate values for the
+.Em type
+field are:
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBD_NONE
+no function, key is disabled,
+.It KBD_SHIFT
+keyboard shift,
+.It KBD_META
+alternate shift, sets bit8 to ASCII code,
+.It KBD_NUM
+numeric shift, keypad numeric / application mode,
+.It KBD_CTL
+control code generation,
+.It KBD_CAPS
+caps shift - swaps case of letter,
+.It KBD_ASCII
+ASCII code generating key,
+.It KBD_SCROLL
+stop output,
+.It KBD_FUNC
+function key,
+.It KBD_KP
+keypad keys,
+.It KBD_BREAK
+ignored,
+.It KBD_ALTGR
+AltGr translation feature,
+.It KBD_SHFTLOCK
+shift lock,
+.It KBD_CURSOR
+cursor keys, and
+.It KBD_RETURN
+.Dq Return
+or
+.Dq Enter
+keys.
+.El
+
+The
+.Em subtype
+field contains one of the values
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBD_SUBT_STR
+key is bound to a string, or
+.It KBD_SUBT_FNC
+key is bound to a function.
+.El
+
+.Em Mouse emulation
+
+The mouse emulator
+.Pq if configured in
+fakes a three-button mouse using the Mouse Systems protocol. The first
+.Nm pcvt
+device node not used by a virtual screen is the mouse device. I.\& e.,
+for the default value of 8 virtual screens,
+.Pa /dev/ttyv0
+through
+.Pa /dev/ttyv7
+would refer to the virtual screens, and
+.Pa /dev/ttyv8
+were the mouse emulator device. The mouse emulation is turned on by
+pressing the
+.Aq Em NumLock
+key. The pointer is moved by the numerical keypad keys, into the
+obvious directions. The pointer is initially moved in single steps,
+and is accelerated after an adjustable time
+.Pq default: 500 ms
+by about 6 times. The mouse buttons are emulated by three normal
+keys, by default the function keys
+.Aq Em \&F1 ,
+.Aq Em \&F2 ,
+and
+.Aq Em \&F3 .
+There are two selectable flavors available: normal and
+.Dq sticky
+buttons. Normal buttons behave as expected.
+.Dq Sticky
+buttons are notified as button-press on the first keypress. They
+.Dq stick
+until the key is pressed again
+.Pq or another button-emulating key instead .
+Button presses and releases are notified to the user by a simple
+.Dq pling ,
+or
+.Dq plong ,
+respectively, generated from the PC's built-in speaker.
+
+The following commands control the emulation.
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDMOUSEGET
+get the current definitions, and
+.It KBDMOUSESET
+set new definitions.
+.El
+
+Both accept a
+.Li struct mousedefs *
+as the third argument to the ioctl call:
+.Bd -literal
+struct mousedefs {
+ int leftbutton; /* (PC) scan code for "left button" key */
+ int middlebutton; /* (PC) scan code for "mid button" key */
+ int rightbutton; /* (PC) scan code for "right button" key */
+ int stickybuttons; /* if true, the buttons are "sticky" */
+ int acceltime; /* timeout in microseconds to start pointer */
+ /* movement acceleration */
+ /* defaults to: scan(F1), scan(F2), scan(F3), false, 500000 */
+};
+.Ed
+
+
+.Em Downloadable character set interface
+
+EGA and VGA video adaptors provide the capability of downloadable
+software fonts. Since the
+.Sq native character set
+of any IBM-compatible PC video board does not allow the full interpretation
+of DEC multinational character set or ISO Latin-1
+.Pq ISO 8859-1 ,
+this might be very useful for a U**X environment.
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGASETFONTATTR
+set font attr, and
+.It VGAGETFONTATTR
+get font attr
+.El
+
+are used to manipulate the drivers information about a downloaded
+font. The take a pointer to a
+.Em struct vgafontattr
+as argument:
+.Bd -literal
+struct vgafontattr {
+ int character_set; /* VGA character set */
+ int font_loaded; /* Mark font loaded or unloaded */
+ int screen_size; /* Character rows per screen */
+ int character_scanlines; /* Scanlines per character - 1 */
+ int screen_scanlines; /* Scanlines per screen - 1 byte */
+};
+.Ed
+
+Each character of each font is to be downloaded with
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGALOADCHAR
+load vga char,
+.El
+
+taking a pointer to
+.Em struct vgaloadchar
+as its argument:
+.Bd -literal
+struct vgaloadchar {
+ int character_set; /* VGA character set to load into */
+ int character; /* Character to load */
+ int character_scanlines; /* Scanlines per character */
+ u_char char_table[32]; /* VGA character shape table */
+};
+.Ed
+
+The field
+.Em character_set
+takes the values
+CH_SET0, CH_SET1, CH_SET2, CH_SET3 on EGA's or VGA's. Since VGA's
+might have up to eight simultaneously loaded fonts, they can take
+CH_SET4, CH_SET5, CH_SET6, or CH_SET7, too.
+
+Note that there's a dependence between the font size
+and a possible screen height
+.Pq in character rows ,
+depending on the video adaptor used:
+.Bd -literal
+Screen size (rows) on: EGA VGA
+Font size
+
+8 x 8 43 50
+8 x 10 35 40
+8 x 14 25 28
+8 x 16 not 25
+ applicable
+.Ed
+
+
+.Em General screen manipulation commands
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGACURSOR
+sets cursor shape,
+.El
+
+taking a pointer to the following structure as argument:
+.Bd -literal
+struct cursorshape {
+ int screen_no; /* screen number for which to set, */
+ /* or -1 to set on current active screen */
+ int start; /* top scanline, range 0... Character Height - 1 */
+ int end; /* end scanline, range 0... Character Height - 1 */
+};
+.Ed
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGASETSCREEN
+set screen info, and
+.It VGAGETSCREEN
+get screen info,
+.El
+
+provide an interface to some general driver internal variables
+which might modify the behaviour of the screens,
+or which might simply be used to force the driver to switch
+to one certain screen. Their argument is a pointer to the structure:
+.Bd -literal
+struct screeninfo {
+ int adaptor_type; /* type of video adaptor installed */
+ /* read only, ignored on write (yet!) */
+ int totalfonts; /* no of downloadable fonts */
+ /* read only, ignored on write */
+ int totalscreens; /* no of virtual screens */
+ /* read only, ignored on write */
+ int screen_no; /* screen number, this was got from */
+ /* on write, if -1, apply pure_vt_mode */
+ /* and/or screen_size to current screen*/
+ /* else to screen_no supplied */
+ int current_screen; /* screen number, which is displayed. */
+ /* on write, if -1, make this screen */
+ /* the current screen, else set current*/
+ /* displayed screen to parameter */
+ int pure_vt_mode; /* flag, pure VT mode or HP/VT mode */
+ /* on write, if -1, no change */
+ int screen_size; /* screen size */
+ /* on write, if -1, no change */
+ int force_24lines; /* force 24 lines if 25 lines VT mode */
+ /* or 28 lines HP mode to get pure */
+ /* VT220 screen size */
+ /* on write, if -1, no change */
+ int vga_family; /* if adaptor_type = VGA, this reflects*/
+ /* the chipset family after a read */
+ /* nothing happenes on write ... */
+ int vga_type; /* if adaptor_type = VGA, this reflects*/
+ /* the chipset after a read */
+ /* nothing happenes on write ... */
+ int vga_132; /* set to 1 if driver has support for */
+ /* 132 column operation for chipset */
+ /* currently ignored on write */
+};
+.Ed
+
+Its field
+.Em pure_vt_mode
+may take the values M_HPVT for a mixed VTxxx and HP Mode, with function
+key labels and a status line, or M_PUREVT for only VTxxx sequences
+recognized, with no labels.
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGASETCOLMS
+sets the number of columns for the current screen,
+.El
+
+its parameter is a pointer to an integer containing either a value of 80,
+or a value of 132. Note that setting the number of columns to 132 is
+only supported on VGA adaptors. Any unsupported numbers cause the ioctl
+to fail with
+.Em errno
+.Pq see Xr intro 2
+being set to
+.Em EINVAL .
+
+.Em VGA color palette interface
+
+Only on VGA adaptors, there's a color palette register at the output.
+It is responsible for the red, green and blue output voltage provided
+for each of the 256 internal color codes, each lying in the range of
+0 through 63 (with 63 representing the brightest value for a base color).
+Thus, these adaptors map each color code to a color of a
+.Dq palette
+out of 262144 colors. The commands
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGAREADPEL
+read VGA palette entry, and
+.It VGAWRITEPEL
+write VGA palette entry
+.El
+
+establish an interface to these palette registers. Their argument is
+a pointer to:
+.Bd -literal
+struct vgapel {
+ unsigned idx; /* index into palette, 0 .. 255 valid */
+ unsigned r, g, b; /* RGB values, masked by VGA_PMASK (63) */
+};
+.Ed
+
+
+.Em Driver identification
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGAPCVTID
+returns information if the current compiled in driver is pcvt and it's
+major and minor revision numbers. the call is taking a pointer to the
+following structure as argument:
+.El
+
+.Bd -literal
+struct pcvtid {
+#define PCVTIDNAMELN 16 /* driver id - string length */
+ char name[PCVTIDNAMELN]; /* driver name, == PCVTIDSTR */
+#define PCVTIDNAME "pcvt" /* driver id - string */
+ int rmajor; /* revision number, major */
+#define PCVTIDMAJOR 3
+ int rminor; /* revision number, minor */
+#define PCVTIDMINOR 00
+};
+.Ed
+
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGAPCVTINFO
+returns information if the current compiled in driver is pcvt and it's
+compile time options. the call is taking a pointer to the following
+structure as argument:
+.El
+
+.Bd -literal
+struct pcvtinfo {
+ u_int opsys; /* PCVT_xxx(x)BSD */
+#define CONF_UNKNOWNOPSYS 0
+#define CONF_386BSD 1 /* unsupported !!! */
+#define CONF_NETBSD 2
+#define CONF_FREEBSD 3
+ u_int opsysrel; /* Release for NetBSD/FreeBSD */
+ u_int nscreens; /* PCVT_NSCREENS */
+ u_int scanset; /* PCVT_SCANSET */
+ u_int updatefast; /* PCVT_UPDATEFAST */
+ u_int updateslow; /* PCVT_UPDATESLOW */
+ u_int sysbeepf; /* PCVT_SYSBEEPF */
+ u_int pcburst; /* PCVT_PCBURST */
+ u_int kbd_fifo_sz; /* PCVT_KBD_FIFO_SZ */
+
+/* config booleans */
+
+ u_long compile_opts; /* PCVT_xxxxxxxxxxxxxxx */
+};
+.Ed
+
+
+.Em Screen saver
+
+Depending on the configuration of a
+.Nm pcvt
+driver, their might be a simple screen saver available. It is controlled
+by the command
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGASCREENSAVER
+set timeout for screen saver in seconds; 0 turns it off,
+.El
+
+taking a pointer to an integer as argument. Despite of its command name,
+this is available on
+.Em any
+kind of adaptor if configured in by the
+.Xr config 8
+option
+.Dq PCVT_SCREENSAVER
+
+.Em Compatibility commands for USL-style VT's
+
+Release 3.00 of this
+.Nm pcvt
+driver supports a subset of the USL-style commands used to control
+the virtual terminal interface. This feature is mainly intended to
+allow
+.Em XFree86 ,
+release 2.0 or higher, to switch between virtual screens even when
+running an X server. They are ugly with respect to the implied semantics
+.Pq i.\& e., they break Berkeley semantics
+and are therefore not recommended for common use. See the file
+.Pa i386/include/pcvt_ioctl.h
+for their documentation.
+
+.Sh FILES
+.Bl -tag -width /usr/include/machine/pcvt_ioctl.h
+.It Pa /usr/include/machine/pcvt_ioctl.h
+Definitions for
+.Xr ioctl 2
+function calls
+.It Pa /dev/ttyv?
+.It Pa /dev/console
+Device nodes to access the
+.Nm pcvt
+driver
+.It Pa i386/isa/pcvt/pcvt_hdr.h
+.Pq relative to the kernel source tree
+Documents the various compile-time options to tailor
+.Nm pcvt .
+.Sh HISTORY
+The
+.Nm pcvt
+driver has been developed for and contributed to 386BSD release 0.1. Since
+release 3.00 explicit support is provided for NetBSD 0.9. It is expected
+that no further development on pcvt is done for 386BSD 0.1 after release 3.00,
+in fact, 386BSD support was dropped with release 3.20.
+.Sh AUTHORS
+Written by
+.An Hellmuth Michaelis Aq hm@hcshh.hcs.de
+with much help from
+.An Brian Dunford-Shore Aq brian@morpheus.wustl.edu
+.br
+.if n Joerg Wunsch
+.if t J\(:org Wunsch
+.Aq joerg_wunsch@uriah.sax.de
+.br
+This driver is based on several people's previous
+work, notably by
+.An William Jolitz'
+and
+.An Don Ahn's
+historic
+.Xr pccons 4
+implementation
+.br
+.Aq ljolitz@cardio.ucsf.edu
+.br
+.An Holger Veit Aq veit@first.gmd.de
+.Sh SEE ALSO
+.Xr intro 2 ,
+.Xr ioctl 2 ,
+.Xr keyboard 4 ,
+.Xr screen 4 ,
+.Xr config 8 ,
+.Xr ispcvt 8
+.Sh BUGS
+Certainly existent. See the file
+.Pa BugList
+in the Documentation directory for an up-to-date list.
+
+.Ss Tested Video Boards
+.Bd -literal
+Manufacturer Chipset Monitor
+
+2theMax (?) ET4000 VGA Color
+Video7 Inc. Video 7 VGA Color
+Diamond Stealth VRAM S3 NEC 3FGx
+Trident TVGA 8800CS NEC 3D
+Data General C&T P82C604 VGA Color
+NoName Hercules W86855AF Mono
+Kyocera (Mainboard) WD90C11 Sony Color
+unknown ET3000 NEC 3D
+.Ed
+
+.Ss Tested Keyboards
+.Bd -literal
+Manufacturer Type Layout
+
+Cherry MF II US
+Cherry/Tandon MF II German
+Hewlett-Packard MF II US
+Hewlett-Packard MF II German
+Tatung AT German
+.Ed
+
+There is absolutely NO support for the ancient PC-keyboards
+.Pq they had 83 keys .
+
+There is only limited support for AT-keyboards
+.Bo
+they have 84 keys, and a separate numeric keypad,
+they don't have F11/F12 keys
+.Bc
+because the emulator needs F9 through F12 for control functions, and due to
+the current design of the keyboard driver there is no
+.Pq full
+support for national keyboards because
+of the lack of an ALtGr key.
+
+MF-keyboards are fully supported, 101- and 102-key versions.
diff --git a/share/man/man4/pcvt.4 b/share/man/man4/pcvt.4
new file mode 100644
index 0000000..96ef474
--- /dev/null
+++ b/share/man/man4/pcvt.4
@@ -0,0 +1,910 @@
+.\"
+.\" Copyright (c) 1992, 1995 Hellmuth Michaelis, Brian Dunford-Shore,
+.\" Joerg Wunsch and Holger Veit.
+.\"
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Hellmuth Michaelis,
+.\" Brian Dunford-Shore, Joerg Wunsch and Holger Veit.
+.\" 4. The name authors may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" @(#)pcvt.4, 3.20, Last Edit-Date: [Sun Apr 2 18:23:39 1995]
+.\" $Id: pcvt.4,v 1.12 1998/10/22 14:29:03 bde Exp $
+.\"
+.\" Man page pcvt(4) created after pcvt_ioctl.h on 13-Jan-93
+.\" by Joerg Wunsch
+.\"
+.\" updated for rel 2.10 (-hm)
+.\" updated for rel 2.20 (-hm)
+.\" updated for rel 3.00 (-jw)
+.\" updated for final rel 3.00 (-hm)
+.\" removed references to 386BSD (-hm)
+.\"
+.Dd February 27, 1994
+.Dt PCVT 4 i386
+.Sh NAME
+.Nm pcvt ,
+.Nm vt
+.Nd PC console virtual screen system
+.Sh SYNOPSIS
+options
+.Do
+.Em PCVT_FREEBSD = version
+|
+.Em PCVT_NETBSD = version
+.Dc
+.br
+.Op options Dq Em PCVT_NSCREENS = number
+.br
+.Op options Dq Em PCVT_XXXX
+.Po
+see
+.Sx Configuration
+below
+.Pc
+.Pp
+.Cd "device vt0 at isa? port IO_KBD tty irq 1"
+.Sh DESCRIPTION
+.Ss Overview
+The
+.Nm pcvt
+driver provides a virtual screen system with several additional
+features not available in historic console drivers.
+Besides the ability of handling
+multiple virtual screens,
+the probably most important is an emulation of a wide range
+of DEC VT-220
+.if t \(tm
+.if n (TM)
+functionality. See
+.Sx Features
+for a detailed description.
+
+.Ss Features
+.Bl -bullet
+.It
+Almost full DEC VT220
+.if t \(tm
+.if n (TM)
+functionality
+.Po
+moving towards VT320
+.if t \(tm
+.if n (TM)
+.Pc
+.It
+Completely independent virtual terminals for MDA/HGC/CGA/EGA and VGA
+.It
+25, 28, 35, 40, 43 or 50x80 screen resolution for each virtual screen
+.It
+Fully remappable keyboard to support national keyboards
+.It
+All VT220 character sets plus ISO Latin-1 and DEC technical supported
+.It
+VT220 downloadable character set supported when run on EGA/VGA
+.It
+VT220 user defined keys for each virtual terminal
+.It
+Optional function key label support
+.if t \('a
+.if n 'a
+la Hewlett-Packard
+.It
+Display function codes functionality
+.It
+Support for MDA, CGA, EGA and VGA display adaptors
+.It
+Support for 132 column operation on VGA chipsets
+.It
+X Window Support for XFree86 >= 1.2 using the pccons model, or
+for XFree86 >= 2.0 using the syscons model
+.Po
+requires
+.Em PCVT_USL_VT_COMPAT
+to be configured
+.Pc
+.El
+
+What it cannot:
+.Bl -bullet
+.It
+No double wide/high characters
+.It
+No softscroll
+.It
+No inverse background
+.It
+No VT220 printer output support
+.It
+No VT52 support at all
+.It
+No 8-bit controls
+.It
+Only limited AT-keyboard
+.Pq 84 keys
+support
+.Pq yet
+.It
+Help you to make money...
+.El
+
+.Ss Configuration
+The
+.Nm pcvt
+console driver is currently available for the Intel-based BSD operating
+systems
+.Tn NetBSD/i386
+(release 0.9 or higher),
+and
+.Tn FreeBSD
+(release 1.0-GAMMA or higher) .
+In order to get the appropriate system support, one of the options
+.Em PCVT_NETBSD ,
+or
+.Em PCVT_FREEBSD
+must be defined in the system's config file
+.Pq see Xr config 8 .
+In addition, for the
+.Tn FreeBSD
+and
+.Tn NetBSD
+operating systems, it is necessary to set this option to the operating
+system's version number.
+For
+.Tn FreeBSD
+this version number must be expressed as a 3-digit number.
+E.\& g., if you are running the 1.0 release
+.Pq which is actually version 1.0.2 ,
+you should define
+
+.Em PCVT_FREEBSD = 102
+
+For
+.Em NetBSD
+this version number must be expressed as 9 if you are running NetBSD 0.9
+and anything greater than 9 for NetBSD-current (pre 1.0). It is recommended
+to use (as with
+.Tn FreeBSD )
+100 for
+.Nx 1.0
+and 999 for
+.Tn NetBSD-current.
+E.g., if you are running the
+.Nx 1.0
+release, you should define
+
+.Em PCVT_NETBSD = 100
+
+The
+.Nm pcvt
+driver has been designed to be highly configurable in order to satisfy
+everyone's needs. The preferred way for those configurations is to
+provide appropriate
+.Em options
+lines within the config file, possibly overriding the built-in default
+values. Therefore it is possible to compile several distinct kernels
+with different driver behaviour on a single machine.
+
+The following list gives a short overview of the available configuration
+options. Refer to the file
+.Pa i386/isa/pcvt/pcvt_hdr.h
+in the kernel source tree for detailed documentation.
+
+Note: the following conventions apply to all the Boolean options.
+If an option is given with no value, a value of 1
+.Pq activated
+is substituted. If an option value is given as 0, this options is
+deactivated. Any other value is substituted by 1, too. If an option
+is omitted, a built-in default is assumed.
+
+.Bl -tag -width indent -compact
+
+.It Em PCVT_NSCREENS
+Defines the number of virtual screens.
+.br
+Default: 8
+
+.It Em PCVT_VT220KEYB
+If activated, a keyboard layout resembling a DEC VT200 (TM) is generated.
+If deactivated, a mixture between VT220 and HP is used. See the files
+.Pa Keyboard.VT
+and
+.Pa Keyboard.HP
+in the
+.Nm pcvt
+documentation directory for a full description.
+.br
+Default: off
+
+.It Em PCVT_SCREENSAVER
+Enables the builtin screensaver feature.
+.br
+Default: on
+
+.It Em PCVT_PRETTYSCRNS
+If enabled, a blinking-star screensaver is used. If disabled, the screen
+is simply blanked
+.Pq which might be useful for energy-saving monitors .
+.br
+Default: on
+
+.It Em PCVT_CTRL_ALT_DEL
+If enabled, the key combination
+.Aq Em Ctrl
+.Aq Em Alt
+.Aq Em Del
+invokes a CPU reset.
+.br
+Default: off
+
+.It Em PCVT_USEKBDSEC
+Do NOT override a security lock for the keyboard.
+.br
+Default: on
+
+.It Em PCVT_24LINESDEF
+If enabled, the 25-line modi
+.Po
+VT emulation with 25 lines, and HP emulation with 28 lines
+.Pc
+default to 24 lines only to provide a better compatibility to the
+original DEV VT220 (TM). Thus it should be possible to use the
+terminal information for those terminals without further changes.
+Note that this is a startup option; it is possible to toggle between
+the 24- and 25-lines' display by the
+.Xr scon 1
+utility.
+.br
+Default: off
+
+.It Em PCVT_EMU_MOUSE
+Emulate a three-button mouse via the keypad. Useful for notebooks when
+running XFree86. See
+.Sx Mouse emulation
+below.
+.br
+Default: off
+
+.It Em PCVT_META_ESC
+If enabled, a sequence composed of
+.Aq Em esc ,
+followed by the normal key code is emitted if a key is pressed with the
+.Aq Em Alt
+key modifier. If disabled, then normal key code with the value
+.Em 0x80
+added is sent.
+.br
+Default: off
+
+.El
+
+Note that there are further options available which are mainly used for
+debugging purposes or as a workaround for hardware problems. They are
+found in
+.Pa i386/isa/pcvt/pcvt_hdr.h
+along with their documentation.
+
+.Ss Internal Functions
+The functionality described below may be accessed via
+.Xr ioctl 2
+system calls with a file descriptor opened on a device node
+related to the
+.Nm pcvt
+driver.
+To make use of them, a program should contain the following line:
+
+
+.Dl #include <machine/pcvt_ioctl.h>
+
+Any parameter definitions cited below can be found in that file.
+
+
+.Em Keyboard related functions
+
+Three functions are related to basic keyboard hardware:
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDRESET
+reset keyboard, set defaults;
+.It KBDGTPMAT
+get current typematic value, parameter is a pointer to int where
+the values is stored to;
+.It KBDSTPMAT
+set current typematic value, similar to above command.
+.El
+
+Symbolic values are available for the appropriate constants.
+To specify the initial typematic delay time, they are
+KBD_TPD250 for 250 ms through
+KBD_TPD1000 for 1000 ms, in steps of 250 ms. The typematic repeat
+rates are
+KBD_TPM300, specifying 30.0 characters per second through
+KBD_TPM20 for 2.0 characters per second. The intermediate values
+are: 30.0, 26.7, 24.0, 21.8, 20.0, 18.5, 17.1, 16.0, 15.0, 13.3,
+12.0, 10.9, 10.0, 9.2, 8.6, 8.0, 7.5, 6.7, 6.0, 5.5, 5.0, 4.6, 4.3,
+4.0, 3.7, 3.3, 3.0, 2.7, 2.5, 2.3, 2.1, 2.0 characters per second.
+
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDGREPSW
+get key repetition switch, and
+.It KBDSREPSW
+set key repetition switch
+.El
+
+again take a pointer to int as argument. They manipulate the
+drivers internal keyboard repetition flag, possible values are:
+KBD_REPEATOFF or KBD_REPEATON.
+
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDGLEDS
+get LED state, and
+.It KBDSLEDS
+set LED state manipulate the keyboard indicators, but do not influence
+the drivers idea of lock key state.
+.El
+
+The int where the argument points to
+may have the values
+KBD_SCROLLLOCK, KBD_NUMLOCK, KBD_CAPSLOCK, which may be used in any
+conjunction.
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDGLOCK
+gets state of SCROLL,NUM,CAPS, and
+.It KBDSLOCK
+sets state of SCROLL,NUM,CAPS + LEDs
+.El
+
+should be used in a same manner to get/set the drivers internal
+LED flags.
+
+
+.Em Keyboard remapping
+
+One important feature of the
+.Nm pcvt
+driver is its ability to overload the built in key definition.
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDGCKEY
+get current key values,
+.It KBDSCKEY
+set new key assignment values, and
+.It KBDGOKEY
+get original key assignment values
+.El
+
+arrange those functions. The take a pointer to a
+.Em struct kbd_ovlkey
+as argument as described below. In addition,
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDRMKEY
+removes a key assignment, taking a pointer to an int as argument which
+contains the affected key number;
+.It KBDDEFAULT
+removes all key assignments.
+.El
+.Bd -literal
+struct kbd_ovlkey /* complete definition of a key */
+{
+ u_short keynum; /* the key itself */
+ u_short type; /* type of key, see below */
+ u_char subu; /* subtype, ignored on write */
+ char unshift[KBDMAXOVLKEYSIZE+1]; /* emitted string, unshifted */
+ u_char subs; /* subtype, ignored on write */
+ char shift[KBDMAXOVLKEYSIZE+1]; /* emitted string, shifted */
+ u_char subc; /* subtype, ignored on write */
+ char ctrl[KBDMAXOVLKEYSIZE+1]; /* emitted string, control */
+ u_char suba; /* subtype, ignored on write */
+ char altgr[KBDMAXOVLKEYSIZE+1]; /* emitted string, altgr */
+};
+.Ed
+
+The appropriate values for the
+.Em type
+field are:
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBD_NONE
+no function, key is disabled,
+.It KBD_SHIFT
+keyboard shift,
+.It KBD_META
+alternate shift, sets bit8 to ASCII code,
+.It KBD_NUM
+numeric shift, keypad numeric / application mode,
+.It KBD_CTL
+control code generation,
+.It KBD_CAPS
+caps shift - swaps case of letter,
+.It KBD_ASCII
+ASCII code generating key,
+.It KBD_SCROLL
+stop output,
+.It KBD_FUNC
+function key,
+.It KBD_KP
+keypad keys,
+.It KBD_BREAK
+ignored,
+.It KBD_ALTGR
+AltGr translation feature,
+.It KBD_SHFTLOCK
+shift lock,
+.It KBD_CURSOR
+cursor keys, and
+.It KBD_RETURN
+.Dq Return
+or
+.Dq Enter
+keys.
+.El
+
+The
+.Em subtype
+field contains one of the values
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBD_SUBT_STR
+key is bound to a string, or
+.It KBD_SUBT_FNC
+key is bound to a function.
+.El
+
+.Em Mouse emulation
+
+The mouse emulator
+.Pq if configured in
+fakes a three-button mouse using the Mouse Systems protocol. The first
+.Nm pcvt
+device node not used by a virtual screen is the mouse device. I.\& e.,
+for the default value of 8 virtual screens,
+.Pa /dev/ttyv0
+through
+.Pa /dev/ttyv7
+would refer to the virtual screens, and
+.Pa /dev/ttyv8
+were the mouse emulator device. The mouse emulation is turned on by
+pressing the
+.Aq Em NumLock
+key. The pointer is moved by the numerical keypad keys, into the
+obvious directions. The pointer is initially moved in single steps,
+and is accelerated after an adjustable time
+.Pq default: 500 ms
+by about 6 times. The mouse buttons are emulated by three normal
+keys, by default the function keys
+.Aq Em \&F1 ,
+.Aq Em \&F2 ,
+and
+.Aq Em \&F3 .
+There are two selectable flavors available: normal and
+.Dq sticky
+buttons. Normal buttons behave as expected.
+.Dq Sticky
+buttons are notified as button-press on the first keypress. They
+.Dq stick
+until the key is pressed again
+.Pq or another button-emulating key instead .
+Button presses and releases are notified to the user by a simple
+.Dq pling ,
+or
+.Dq plong ,
+respectively, generated from the PC's built-in speaker.
+
+The following commands control the emulation.
+
+.Bl -tag -width 20n -offset indent -compact
+.It KBDMOUSEGET
+get the current definitions, and
+.It KBDMOUSESET
+set new definitions.
+.El
+
+Both accept a
+.Li struct mousedefs *
+as the third argument to the ioctl call:
+.Bd -literal
+struct mousedefs {
+ int leftbutton; /* (PC) scan code for "left button" key */
+ int middlebutton; /* (PC) scan code for "mid button" key */
+ int rightbutton; /* (PC) scan code for "right button" key */
+ int stickybuttons; /* if true, the buttons are "sticky" */
+ int acceltime; /* timeout in microseconds to start pointer */
+ /* movement acceleration */
+ /* defaults to: scan(F1), scan(F2), scan(F3), false, 500000 */
+};
+.Ed
+
+
+.Em Downloadable character set interface
+
+EGA and VGA video adaptors provide the capability of downloadable
+software fonts. Since the
+.Sq native character set
+of any IBM-compatible PC video board does not allow the full interpretation
+of DEC multinational character set or ISO Latin-1
+.Pq ISO 8859-1 ,
+this might be very useful for a U**X environment.
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGASETFONTATTR
+set font attr, and
+.It VGAGETFONTATTR
+get font attr
+.El
+
+are used to manipulate the drivers information about a downloaded
+font. The take a pointer to a
+.Em struct vgafontattr
+as argument:
+.Bd -literal
+struct vgafontattr {
+ int character_set; /* VGA character set */
+ int font_loaded; /* Mark font loaded or unloaded */
+ int screen_size; /* Character rows per screen */
+ int character_scanlines; /* Scanlines per character - 1 */
+ int screen_scanlines; /* Scanlines per screen - 1 byte */
+};
+.Ed
+
+Each character of each font is to be downloaded with
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGALOADCHAR
+load vga char,
+.El
+
+taking a pointer to
+.Em struct vgaloadchar
+as its argument:
+.Bd -literal
+struct vgaloadchar {
+ int character_set; /* VGA character set to load into */
+ int character; /* Character to load */
+ int character_scanlines; /* Scanlines per character */
+ u_char char_table[32]; /* VGA character shape table */
+};
+.Ed
+
+The field
+.Em character_set
+takes the values
+CH_SET0, CH_SET1, CH_SET2, CH_SET3 on EGA's or VGA's. Since VGA's
+might have up to eight simultaneously loaded fonts, they can take
+CH_SET4, CH_SET5, CH_SET6, or CH_SET7, too.
+
+Note that there's a dependence between the font size
+and a possible screen height
+.Pq in character rows ,
+depending on the video adaptor used:
+.Bd -literal
+Screen size (rows) on: EGA VGA
+Font size
+
+8 x 8 43 50
+8 x 10 35 40
+8 x 14 25 28
+8 x 16 not 25
+ applicable
+.Ed
+
+
+.Em General screen manipulation commands
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGACURSOR
+sets cursor shape,
+.El
+
+taking a pointer to the following structure as argument:
+.Bd -literal
+struct cursorshape {
+ int screen_no; /* screen number for which to set, */
+ /* or -1 to set on current active screen */
+ int start; /* top scanline, range 0... Character Height - 1 */
+ int end; /* end scanline, range 0... Character Height - 1 */
+};
+.Ed
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGASETSCREEN
+set screen info, and
+.It VGAGETSCREEN
+get screen info,
+.El
+
+provide an interface to some general driver internal variables
+which might modify the behaviour of the screens,
+or which might simply be used to force the driver to switch
+to one certain screen. Their argument is a pointer to the structure:
+.Bd -literal
+struct screeninfo {
+ int adaptor_type; /* type of video adaptor installed */
+ /* read only, ignored on write (yet!) */
+ int totalfonts; /* no of downloadable fonts */
+ /* read only, ignored on write */
+ int totalscreens; /* no of virtual screens */
+ /* read only, ignored on write */
+ int screen_no; /* screen number, this was got from */
+ /* on write, if -1, apply pure_vt_mode */
+ /* and/or screen_size to current screen*/
+ /* else to screen_no supplied */
+ int current_screen; /* screen number, which is displayed. */
+ /* on write, if -1, make this screen */
+ /* the current screen, else set current*/
+ /* displayed screen to parameter */
+ int pure_vt_mode; /* flag, pure VT mode or HP/VT mode */
+ /* on write, if -1, no change */
+ int screen_size; /* screen size */
+ /* on write, if -1, no change */
+ int force_24lines; /* force 24 lines if 25 lines VT mode */
+ /* or 28 lines HP mode to get pure */
+ /* VT220 screen size */
+ /* on write, if -1, no change */
+ int vga_family; /* if adaptor_type = VGA, this reflects*/
+ /* the chipset family after a read */
+ /* nothing happenes on write ... */
+ int vga_type; /* if adaptor_type = VGA, this reflects*/
+ /* the chipset after a read */
+ /* nothing happenes on write ... */
+ int vga_132; /* set to 1 if driver has support for */
+ /* 132 column operation for chipset */
+ /* currently ignored on write */
+};
+.Ed
+
+Its field
+.Em pure_vt_mode
+may take the values M_HPVT for a mixed VTxxx and HP Mode, with function
+key labels and a status line, or M_PUREVT for only VTxxx sequences
+recognized, with no labels.
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGASETCOLMS
+sets the number of columns for the current screen,
+.El
+
+its parameter is a pointer to an integer containing either a value of 80,
+or a value of 132. Note that setting the number of columns to 132 is
+only supported on VGA adaptors. Any unsupported numbers cause the ioctl
+to fail with
+.Em errno
+.Pq see Xr intro 2
+being set to
+.Em EINVAL .
+
+.Em VGA color palette interface
+
+Only on VGA adaptors, there's a color palette register at the output.
+It is responsible for the red, green and blue output voltage provided
+for each of the 256 internal color codes, each lying in the range of
+0 through 63 (with 63 representing the brightest value for a base color).
+Thus, these adaptors map each color code to a color of a
+.Dq palette
+out of 262144 colors. The commands
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGAREADPEL
+read VGA palette entry, and
+.It VGAWRITEPEL
+write VGA palette entry
+.El
+
+establish an interface to these palette registers. Their argument is
+a pointer to:
+.Bd -literal
+struct vgapel {
+ unsigned idx; /* index into palette, 0 .. 255 valid */
+ unsigned r, g, b; /* RGB values, masked by VGA_PMASK (63) */
+};
+.Ed
+
+
+.Em Driver identification
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGAPCVTID
+returns information if the current compiled in driver is pcvt and it's
+major and minor revision numbers. the call is taking a pointer to the
+following structure as argument:
+.El
+
+.Bd -literal
+struct pcvtid {
+#define PCVTIDNAMELN 16 /* driver id - string length */
+ char name[PCVTIDNAMELN]; /* driver name, == PCVTIDSTR */
+#define PCVTIDNAME "pcvt" /* driver id - string */
+ int rmajor; /* revision number, major */
+#define PCVTIDMAJOR 3
+ int rminor; /* revision number, minor */
+#define PCVTIDMINOR 00
+};
+.Ed
+
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGAPCVTINFO
+returns information if the current compiled in driver is pcvt and it's
+compile time options. the call is taking a pointer to the following
+structure as argument:
+.El
+
+.Bd -literal
+struct pcvtinfo {
+ u_int opsys; /* PCVT_xxx(x)BSD */
+#define CONF_UNKNOWNOPSYS 0
+#define CONF_386BSD 1 /* unsupported !!! */
+#define CONF_NETBSD 2
+#define CONF_FREEBSD 3
+ u_int opsysrel; /* Release for NetBSD/FreeBSD */
+ u_int nscreens; /* PCVT_NSCREENS */
+ u_int scanset; /* PCVT_SCANSET */
+ u_int updatefast; /* PCVT_UPDATEFAST */
+ u_int updateslow; /* PCVT_UPDATESLOW */
+ u_int sysbeepf; /* PCVT_SYSBEEPF */
+ u_int pcburst; /* PCVT_PCBURST */
+ u_int kbd_fifo_sz; /* PCVT_KBD_FIFO_SZ */
+
+/* config booleans */
+
+ u_long compile_opts; /* PCVT_xxxxxxxxxxxxxxx */
+};
+.Ed
+
+
+.Em Screen saver
+
+Depending on the configuration of a
+.Nm pcvt
+driver, their might be a simple screen saver available. It is controlled
+by the command
+
+.Bl -tag -width 20n -offset indent -compact
+.It VGASCREENSAVER
+set timeout for screen saver in seconds; 0 turns it off,
+.El
+
+taking a pointer to an integer as argument. Despite of its command name,
+this is available on
+.Em any
+kind of adaptor if configured in by the
+.Xr config 8
+option
+.Dq PCVT_SCREENSAVER
+
+.Em Compatibility commands for USL-style VT's
+
+Release 3.00 of this
+.Nm pcvt
+driver supports a subset of the USL-style commands used to control
+the virtual terminal interface. This feature is mainly intended to
+allow
+.Em XFree86 ,
+release 2.0 or higher, to switch between virtual screens even when
+running an X server. They are ugly with respect to the implied semantics
+.Pq i.\& e., they break Berkeley semantics
+and are therefore not recommended for common use. See the file
+.Pa i386/include/pcvt_ioctl.h
+for their documentation.
+
+.Sh FILES
+.Bl -tag -width /usr/include/machine/pcvt_ioctl.h
+.It Pa /usr/include/machine/pcvt_ioctl.h
+Definitions for
+.Xr ioctl 2
+function calls
+.It Pa /dev/ttyv?
+.It Pa /dev/console
+Device nodes to access the
+.Nm pcvt
+driver
+.It Pa i386/isa/pcvt/pcvt_hdr.h
+.Pq relative to the kernel source tree
+Documents the various compile-time options to tailor
+.Nm pcvt .
+.Sh HISTORY
+The
+.Nm pcvt
+driver has been developed for and contributed to 386BSD release 0.1. Since
+release 3.00 explicit support is provided for NetBSD 0.9. It is expected
+that no further development on pcvt is done for 386BSD 0.1 after release 3.00,
+in fact, 386BSD support was dropped with release 3.20.
+.Sh AUTHORS
+Written by
+.An Hellmuth Michaelis Aq hm@hcshh.hcs.de
+with much help from
+.An Brian Dunford-Shore Aq brian@morpheus.wustl.edu
+.br
+.if n Joerg Wunsch
+.if t J\(:org Wunsch
+.Aq joerg_wunsch@uriah.sax.de
+.br
+This driver is based on several people's previous
+work, notably by
+.An William Jolitz'
+and
+.An Don Ahn's
+historic
+.Xr pccons 4
+implementation
+.br
+.Aq ljolitz@cardio.ucsf.edu
+.br
+.An Holger Veit Aq veit@first.gmd.de
+.Sh SEE ALSO
+.Xr intro 2 ,
+.Xr ioctl 2 ,
+.Xr keyboard 4 ,
+.Xr screen 4 ,
+.Xr config 8 ,
+.Xr ispcvt 8
+.Sh BUGS
+Certainly existent. See the file
+.Pa BugList
+in the Documentation directory for an up-to-date list.
+
+.Ss Tested Video Boards
+.Bd -literal
+Manufacturer Chipset Monitor
+
+2theMax (?) ET4000 VGA Color
+Video7 Inc. Video 7 VGA Color
+Diamond Stealth VRAM S3 NEC 3FGx
+Trident TVGA 8800CS NEC 3D
+Data General C&T P82C604 VGA Color
+NoName Hercules W86855AF Mono
+Kyocera (Mainboard) WD90C11 Sony Color
+unknown ET3000 NEC 3D
+.Ed
+
+.Ss Tested Keyboards
+.Bd -literal
+Manufacturer Type Layout
+
+Cherry MF II US
+Cherry/Tandon MF II German
+Hewlett-Packard MF II US
+Hewlett-Packard MF II German
+Tatung AT German
+.Ed
+
+There is absolutely NO support for the ancient PC-keyboards
+.Pq they had 83 keys .
+
+There is only limited support for AT-keyboards
+.Bo
+they have 84 keys, and a separate numeric keypad,
+they don't have F11/F12 keys
+.Bc
+because the emulator needs F9 through F12 for control functions, and due to
+the current design of the keyboard driver there is no
+.Pq full
+support for national keyboards because
+of the lack of an ALtGr key.
+
+MF-keyboards are fully supported, 101- and 102-key versions.
OpenPOWER on IntegriCloud