1999-01-01 08:48:31 +00:00
|
|
|
.\"
|
2000-01-09 08:46:10 +00:00
|
|
|
.\" Copyright (c) 1992, 2000 Hellmuth Michaelis, Brian Dunford-Shore,
|
1999-01-01 08:48:31 +00:00
|
|
|
.\" 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.
|
|
|
|
.\"
|
2000-03-26 12:41:37 +00:00
|
|
|
.\" Last Edit-Date: [Sun Mar 26 14:39:08 2000]
|
2000-01-09 08:46:10 +00:00
|
|
|
.\"
|
1999-08-28 00:22:10 +00:00
|
|
|
.\" $FreeBSD$
|
1999-01-01 08:48:31 +00:00
|
|
|
.\"
|
|
|
|
.\" Man page pcvt(4) created after pcvt_ioctl.h on 13-Jan-93
|
|
|
|
.\" by Joerg Wunsch
|
|
|
|
.\"
|
2000-03-26 12:41:37 +00:00
|
|
|
.Dd March 26, 2000
|
1999-11-15 23:14:32 +00:00
|
|
|
.Dt PCVT 4
|
2000-12-14 13:58:15 +00:00
|
|
|
.Os FreeBSD
|
1999-01-01 08:48:31 +00:00
|
|
|
.Sh NAME
|
|
|
|
.Nm pcvt ,
|
|
|
|
.Nm vt
|
2000-03-26 12:41:37 +00:00
|
|
|
.Nd VT220 virtual screen system console
|
1999-01-01 08:48:31 +00:00
|
|
|
.Sh SYNOPSIS
|
1999-05-20 09:56:18 +00:00
|
|
|
.Cd "device vt0 at isa?"
|
1999-01-01 08:48:31 +00:00
|
|
|
.Sh DESCRIPTION
|
|
|
|
.Ss Overview
|
|
|
|
The
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
2000-03-26 12:41:37 +00:00
|
|
|
driver provides a virtual screen handling system.
|
|
|
|
Probably most important is an emulation of a wide range
|
2000-11-10 17:46:15 +00:00
|
|
|
of DEC
|
|
|
|
.Tn VT-220
|
2000-03-01 14:50:24 +00:00
|
|
|
functionality.
|
|
|
|
See
|
1999-01-01 08:48:31 +00:00
|
|
|
.Sx Features
|
|
|
|
for a detailed description.
|
1999-02-07 05:40:14 +00:00
|
|
|
.Pp
|
|
|
|
The
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
1999-02-07 05:40:14 +00:00
|
|
|
driver requires the keyboard driver
|
|
|
|
.Nm atkbd
|
|
|
|
to be also configured in the kernel.
|
1999-01-01 08:48:31 +00:00
|
|
|
.Ss Features
|
2000-11-10 17:46:15 +00:00
|
|
|
.Bl -bullet -compact
|
1999-01-01 08:48:31 +00:00
|
|
|
.It
|
2000-11-10 17:46:15 +00:00
|
|
|
Almost full DEC
|
|
|
|
.Tn VT220
|
1999-01-01 08:48:31 +00:00
|
|
|
functionality
|
|
|
|
.Po
|
2000-11-10 17:46:15 +00:00
|
|
|
moving towards
|
|
|
|
.Tn VT320
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
\('a la Hewlett-Packard terminals
|
1999-01-01 08:48:31 +00:00
|
|
|
.It
|
|
|
|
Display function codes functionality
|
|
|
|
.It
|
|
|
|
Support for MDA, CGA, EGA and VGA display adaptors
|
|
|
|
.It
|
2000-03-26 12:41:37 +00:00
|
|
|
Support for 132 column operation on some VGA chipsets
|
1999-01-01 08:48:31 +00:00
|
|
|
.It
|
2000-03-26 12:41:37 +00:00
|
|
|
X Window Support for XFree86
|
1999-01-01 08:48:31 +00:00
|
|
|
.Po
|
|
|
|
requires
|
2000-03-26 12:41:37 +00:00
|
|
|
.Em XSERVER
|
|
|
|
to be defined
|
1999-01-01 08:48:31 +00:00
|
|
|
.Pc
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
What it cannot:
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
|
|
|
.Bl -bullet -compact
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
|
|
|
.El
|
2000-01-09 08:46:10 +00:00
|
|
|
.Ss Scrollback
|
|
|
|
Each virtual
|
|
|
|
.Nm
|
2000-03-26 12:41:37 +00:00
|
|
|
virtual terminal has 8 pages of memory attached which are used as a
|
|
|
|
scrollback buffer.
|
2000-01-09 08:46:10 +00:00
|
|
|
By using
|
|
|
|
.Em SHIFT-PageUp
|
|
|
|
and
|
|
|
|
.Em SHIFT-PageDown
|
|
|
|
it is possible to scroll the screen back and forward.
|
1999-01-01 08:48:31 +00:00
|
|
|
.Ss Configuration
|
|
|
|
The
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
2000-11-14 11:20:58 +00:00
|
|
|
console driver is available for the Intel-based
|
|
|
|
.Fx
|
|
|
|
operating system.
|
2000-03-26 12:41:37 +00:00
|
|
|
It has been designed to be highly configurable in order to satisfy
|
2000-03-01 14:50:24 +00:00
|
|
|
everyone's needs.
|
|
|
|
The preferred way for those configurations is to
|
1999-01-01 08:48:31 +00:00
|
|
|
provide appropriate
|
|
|
|
.Em options
|
|
|
|
lines within the config file, possibly overriding the built-in default
|
2000-03-01 14:50:24 +00:00
|
|
|
values.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
The following list gives a short overview of the available configuration
|
2000-03-01 14:50:24 +00:00
|
|
|
options.
|
|
|
|
Refer to the file
|
2000-03-26 12:41:37 +00:00
|
|
|
.Pa i386/isa/pcvt/pcvt_conf.h
|
1999-01-01 08:48:31 +00:00
|
|
|
in the kernel source tree for detailed documentation.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Note: the following conventions apply to all the Boolean options.
|
|
|
|
If an option is given with no value, a value of 1
|
|
|
|
.Pq activated
|
2000-03-01 14:50:24 +00:00
|
|
|
is substituted.
|
|
|
|
If an option value is given as 0, this options is
|
2000-03-02 14:54:02 +00:00
|
|
|
deactivated.
|
|
|
|
Any other value is substituted by 1, too.
|
2000-03-01 14:50:24 +00:00
|
|
|
If an option
|
1999-01-01 08:48:31 +00:00
|
|
|
is omitted, a built-in default is assumed.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Bl -tag -width indent -compact
|
|
|
|
.It Em PCVT_NSCREENS
|
|
|
|
Defines the number of virtual screens.
|
2001-02-13 09:22:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Default: 8
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.It Em PCVT_VT220KEYB
|
|
|
|
If activated, a keyboard layout resembling a DEC VT200 (TM) is generated.
|
2000-03-01 14:50:24 +00:00
|
|
|
If deactivated, a mixture between VT220 and HP is used.
|
|
|
|
See the files
|
1999-01-01 08:48:31 +00:00
|
|
|
.Pa Keyboard.VT
|
|
|
|
and
|
|
|
|
.Pa Keyboard.HP
|
|
|
|
in the
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
1999-01-01 08:48:31 +00:00
|
|
|
documentation directory for a full description.
|
2001-02-13 09:22:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Default: off
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.It Em PCVT_SCREENSAVER
|
|
|
|
Enables the builtin screensaver feature.
|
2001-02-13 09:22:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Default: on
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.It Em PCVT_PRETTYSCRNS
|
2000-03-01 14:50:24 +00:00
|
|
|
If enabled, a blinking-star screensaver is used.
|
|
|
|
If disabled, the screen
|
1999-01-01 08:48:31 +00:00
|
|
|
is simply blanked
|
|
|
|
.Pq which might be useful for energy-saving monitors .
|
2001-02-13 09:22:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Default: on
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.It Em PCVT_CTRL_ALT_DEL
|
|
|
|
If enabled, the key combination
|
|
|
|
.Aq Em Ctrl
|
|
|
|
.Aq Em Alt
|
|
|
|
.Aq Em Del
|
|
|
|
invokes a CPU reset.
|
2001-02-13 09:22:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Default: off
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.It Em PCVT_USEKBDSEC
|
|
|
|
Do NOT override a security lock for the keyboard.
|
2001-02-13 09:22:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Default: on
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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.
|
2001-02-13 09:22:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Default: off
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-03-01 14:50:24 +00:00
|
|
|
key modifier.
|
|
|
|
If disabled, then normal key code with the value
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em 0x80
|
|
|
|
added is sent.
|
2001-02-13 09:22:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Default: off
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Note that there are further options available which are mainly used for
|
2000-03-01 14:50:24 +00:00
|
|
|
debugging purposes or as a workaround for hardware problems.
|
2000-03-26 12:41:37 +00:00
|
|
|
They are found in
|
|
|
|
.Pa i386/isa/pcvt/pcvt_conf.h
|
1999-01-01 08:48:31 +00:00
|
|
|
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
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
1999-01-01 08:48:31 +00:00
|
|
|
driver.
|
|
|
|
To make use of them, a program should contain the following line:
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Dl #include <machine/pcvt_ioctl.h>
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Any parameter definitions cited below can be found in that file.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em Keyboard related functions
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Three functions are related to basic keyboard hardware:
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Symbolic values are available for the appropriate constants.
|
|
|
|
To specify the initial typematic delay time, they are
|
|
|
|
KBD_TPD250 for 250 ms through
|
2000-03-01 14:50:24 +00:00
|
|
|
KBD_TPD1000 for 1000 ms, in steps of 250 ms.
|
|
|
|
The typematic repeat
|
1999-01-01 08:48:31 +00:00
|
|
|
rates are
|
|
|
|
KBD_TPM300, specifying 30.0 characters per second through
|
2000-03-01 14:50:24 +00:00
|
|
|
KBD_TPM20 for 2.0 characters per second.
|
|
|
|
The intermediate values
|
1999-01-01 08:48:31 +00:00
|
|
|
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.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Bl -tag -width 20n -offset indent -compact
|
|
|
|
.It KBDGREPSW
|
|
|
|
get key repetition switch, and
|
|
|
|
.It KBDSREPSW
|
|
|
|
set key repetition switch
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
2000-03-01 14:50:24 +00:00
|
|
|
again take a pointer to int as argument.
|
|
|
|
They manipulate the
|
1999-01-01 08:48:31 +00:00
|
|
|
drivers internal keyboard repetition flag, possible values are:
|
|
|
|
KBD_REPEATOFF or KBD_REPEATON.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
The int where the argument points to
|
|
|
|
may have the values
|
|
|
|
KBD_SCROLLLOCK, KBD_NUMLOCK, KBD_CAPSLOCK, which may be used in any
|
|
|
|
conjunction.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
should be used in a same manner to get/set the drivers internal
|
|
|
|
LED flags.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em Keyboard remapping
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
One important feature of the
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
1999-01-01 08:48:31 +00:00
|
|
|
driver is its ability to overload the built in key definition.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
2000-03-01 14:50:24 +00:00
|
|
|
arrange those functions.
|
|
|
|
The take a pointer to a
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em struct kbd_ovlkey
|
2000-03-01 14:50:24 +00:00
|
|
|
as argument as described below.
|
|
|
|
In addition,
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
The appropriate values for the
|
|
|
|
.Em type
|
|
|
|
field are:
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
The
|
|
|
|
.Em subtype
|
|
|
|
field contains one of the values
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em Downloadable character set interface
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
EGA and VGA video adaptors provide the capability of downloadable
|
2000-03-01 14:50:24 +00:00
|
|
|
software fonts.
|
|
|
|
Since the
|
1999-01-01 08:48:31 +00:00
|
|
|
.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.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Bl -tag -width 20n -offset indent -compact
|
|
|
|
.It VGASETFONTATTR
|
|
|
|
set font attr, and
|
|
|
|
.It VGAGETFONTATTR
|
|
|
|
get font attr
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
are used to manipulate the drivers information about a downloaded
|
2000-03-01 14:50:24 +00:00
|
|
|
font.
|
|
|
|
The take a pointer to a
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Each character of each font is to be downloaded with
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Bl -tag -width 20n -offset indent -compact
|
|
|
|
.It VGALOADCHAR
|
|
|
|
load vga char,
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
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.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em General screen manipulation commands
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Bl -tag -width 20n -offset indent -compact
|
|
|
|
.It VGACURSOR
|
|
|
|
sets cursor shape,
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Bl -tag -width 20n -offset indent -compact
|
|
|
|
.It VGASETSCREEN
|
|
|
|
set screen info, and
|
|
|
|
.It VGAGETSCREEN
|
|
|
|
get screen info,
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
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
|
2000-03-01 14:50:24 +00:00
|
|
|
to one certain screen.
|
|
|
|
Their argument is a pointer to the structure:
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
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.
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Bl -tag -width 20n -offset indent -compact
|
|
|
|
.It VGASETCOLMS
|
|
|
|
sets the number of columns for the current screen,
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
its parameter is a pointer to an integer containing either a value of 80,
|
2000-03-02 14:54:02 +00:00
|
|
|
or a value of 132.
|
2000-03-26 12:41:37 +00:00
|
|
|
Note that setting the number of columns to 132 is only supported on
|
|
|
|
some VGA adaptors.
|
|
|
|
Any unsupported numbers cause the ioctl to fail with
|
2000-11-22 16:11:48 +00:00
|
|
|
.Va errno
|
1999-01-01 08:48:31 +00:00
|
|
|
.Pq see Xr intro 2
|
|
|
|
being set to
|
2000-11-22 16:11:48 +00:00
|
|
|
.Er EINVAL .
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em VGA color palette interface
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
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
|
2000-03-01 14:50:24 +00:00
|
|
|
out of 262144 colors.
|
|
|
|
The commands
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Bl -tag -width 20n -offset indent -compact
|
|
|
|
.It VGAREADPEL
|
|
|
|
read VGA palette entry, and
|
|
|
|
.It VGAWRITEPEL
|
|
|
|
write VGA palette entry
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
2000-03-01 14:50:24 +00:00
|
|
|
establish an interface to these palette registers.
|
|
|
|
Their argument is
|
1999-01-01 08:48:31 +00:00
|
|
|
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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em Driver identification
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em Screen saver
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
Depending on the configuration of a
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
2000-03-01 14:50:24 +00:00
|
|
|
driver, their might be a simple screen saver available.
|
|
|
|
It is controlled
|
1999-01-01 08:48:31 +00:00
|
|
|
by the command
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Bl -tag -width 20n -offset indent -compact
|
|
|
|
.It VGASCREENSAVER
|
|
|
|
set timeout for screen saver in seconds; 0 turns it off,
|
|
|
|
.El
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
2000-03-01 14:50:24 +00:00
|
|
|
taking a pointer to an integer as argument.
|
|
|
|
Despite of its command name,
|
1999-01-01 08:48:31 +00:00
|
|
|
this is available on
|
|
|
|
.Em any
|
|
|
|
kind of adaptor if configured in by the
|
|
|
|
.Xr config 8
|
|
|
|
option
|
|
|
|
.Dq PCVT_SCREENSAVER
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
1999-01-01 08:48:31 +00:00
|
|
|
.Em Compatibility commands for USL-style VT's
|
2000-11-10 17:46:15 +00:00
|
|
|
.Pp
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
2000-03-26 12:41:37 +00:00
|
|
|
supports a subset of the USL-style commands used to control
|
2000-03-01 14:50:24 +00:00
|
|
|
the virtual terminal interface.
|
2000-03-26 12:41:37 +00:00
|
|
|
This feature is mainly intended to allow
|
|
|
|
.Em XFree86
|
|
|
|
to switch between virtual screens even when
|
2000-03-01 14:50:24 +00:00
|
|
|
running an X server.
|
|
|
|
They are ugly with respect to the implied semantics
|
2001-02-01 16:38:02 +00:00
|
|
|
(i.e., they break Berkeley semantics).
|
2000-03-01 14:50:24 +00:00
|
|
|
See the file
|
1999-01-01 08:48:31 +00:00
|
|
|
.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
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
1999-01-01 08:48:31 +00:00
|
|
|
driver
|
2000-03-26 12:41:37 +00:00
|
|
|
.It Pa i386/isa/pcvt/pcvt_conf.h
|
1999-01-01 08:48:31 +00:00
|
|
|
.Pq relative to the kernel source tree
|
|
|
|
Documents the various compile-time options to tailor
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm .
|
2000-12-29 09:18:45 +00:00
|
|
|
.El
|
1999-01-01 08:48:31 +00:00
|
|
|
.Sh HISTORY
|
|
|
|
The
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
2000-03-26 12:41:37 +00:00
|
|
|
driver has been developed for and contributed to 386BSD 0.1.
|
|
|
|
Since then
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
2000-11-14 11:20:58 +00:00
|
|
|
has become a standard part of
|
|
|
|
.Fx ,
|
|
|
|
.Nx
|
|
|
|
and
|
|
|
|
OpenBSD.
|
|
|
|
Since
|
|
|
|
.Fx 5.0 ,
|
2000-11-20 18:41:33 +00:00
|
|
|
.Nm
|
2000-11-14 11:20:58 +00:00
|
|
|
is
|
|
|
|
.Fx
|
|
|
|
specific with support for
|
|
|
|
.Nx
|
|
|
|
and
|
|
|
|
.Ox
|
|
|
|
removed to
|
2000-03-26 12:41:37 +00:00
|
|
|
ease further maintenance.
|
1999-01-01 08:48:31 +00:00
|
|
|
.Sh AUTHORS
|
2000-11-22 09:35:58 +00:00
|
|
|
.An -nosplit
|
1999-01-01 08:48:31 +00:00
|
|
|
Written by
|
2000-10-26 15:30:44 +00:00
|
|
|
.An Hellmuth Michaelis Aq hm@FreeBSD.org
|
1999-01-01 08:48:31 +00:00
|
|
|
with much help from
|
|
|
|
.An Brian Dunford-Shore Aq brian@morpheus.wustl.edu
|
|
|
|
and
|
2000-11-22 09:35:58 +00:00
|
|
|
.An J\(:org Wunsch Aq joerg@FreeBSD.org .
|
2000-03-26 12:41:37 +00:00
|
|
|
.Pp
|
|
|
|
This driver is based on several people's previous work, notably
|
|
|
|
the historic
|
1999-01-01 08:48:31 +00:00
|
|
|
.Xr pccons 4
|
2000-03-26 12:41:37 +00:00
|
|
|
implementation by
|
2000-11-10 17:46:15 +00:00
|
|
|
.An William Jolitz Aq ljolitz@cardio.ucsf.edu
|
|
|
|
and
|
|
|
|
.An Don Ahn ,
|
2000-03-26 12:41:37 +00:00
|
|
|
and the keyboard mapping code from
|
2000-11-22 09:35:58 +00:00
|
|
|
.An Holger Veit Aq veit@first.gmd.de .
|
1999-01-01 08:48:31 +00:00
|
|
|
.Sh SEE ALSO
|
1999-12-30 16:27:05 +00:00
|
|
|
.Xr cursor 1 ,
|
|
|
|
.Xr loadfont 1 ,
|
|
|
|
.Xr scon 1 ,
|
1999-01-01 08:48:31 +00:00
|
|
|
.Xr intro 2 ,
|
|
|
|
.Xr ioctl 2 ,
|
1999-02-07 05:40:14 +00:00
|
|
|
.Xr atkbd 4 ,
|
1999-01-01 08:48:31 +00:00
|
|
|
.Xr keyboard 4 ,
|
|
|
|
.Xr config 8 ,
|
|
|
|
.Xr ispcvt 8
|
|
|
|
.Sh BUGS
|
2000-03-26 12:41:37 +00:00
|
|
|
At least one left.
|