Pre 3.0 branch cleanup casualty #4: pcvt
This commit is contained in:
parent
2225f39db3
commit
eb15c87aad
@ -1,11 +1,11 @@
|
||||
# $Id: Makefile,v 1.89 1998/12/22 09:36:29 joerg Exp $
|
||||
# $Id: Makefile,v 1.90 1998/12/27 12:44:49 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 nca.4 ncr.4 npx.4 \
|
||||
pcf.4 pcm.4 pcvt.4 perfmon.4 pn.4 pnp.4 ppc.4 psm.4 \
|
||||
pcf.4 pcm.4 perfmon.4 pn.4 pnp.4 ppc.4 psm.4 \
|
||||
rdp.4 rl.4 sb.4 scd.4 screen.4 sea.4 si.4 sio.4 \
|
||||
spkr.4 sr.4 sysmouse.4 tl.4 tw.4 tx.4 uha.4 vr.4 vx.4 \
|
||||
wb.4 wd.4 wfd.4 wl.4 wt.4 xl.4 ze.4 zp.4
|
||||
@ -59,7 +59,6 @@ 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
|
||||
|
@ -1,910 +0,0 @@
|
||||
.\"
|
||||
.\" 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.11 1998/08/26 02:46:24 jkoshy 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.
|
@ -1,910 +0,0 @@
|
||||
.\"
|
||||
.\" 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.11 1998/08/26 02:46:24 jkoshy 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.
|
@ -11,7 +11,7 @@
|
||||
# device lines is present in the ./LINT configuration file. If you are
|
||||
# in doubt as to the purpose or necessity of a line, check first in LINT.
|
||||
#
|
||||
# $Id: GENERIC,v 1.134 1998/12/09 23:28:43 n_hibma Exp $
|
||||
# $Id: GENERIC,v 1.135 1998/12/13 23:04:35 n_hibma Exp $
|
||||
|
||||
machine "i386"
|
||||
cpu "I386_CPU"
|
||||
@ -104,14 +104,7 @@ controller matcd0 at isa? port 0x230 bio
|
||||
|
||||
device scd0 at isa? port 0x230 bio
|
||||
|
||||
# syscons is the default console driver, resembling an SCO console
|
||||
device sc0 at isa? port IO_KBD conflicts tty irq 1
|
||||
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
|
||||
#device vt0 at isa? port IO_KBD conflicts tty irq 1
|
||||
#options XSERVER # support for X server
|
||||
#options FAT_CURSOR # start with block cursor
|
||||
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
|
||||
#options PCVT_SCANSET=2 # IBM keyboards are non-std
|
||||
|
||||
device npx0 at isa? port IO_NPX irq 13
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
# LINT -- config file for checking all the sources, tries to pull in
|
||||
# as much of the source tree as it can.
|
||||
#
|
||||
# $Id: LINT,v 1.513 1998/12/27 12:40:07 phk Exp $
|
||||
# $Id: LINT,v 1.514 1998/12/27 12:44:54 phk Exp $
|
||||
#
|
||||
# NB: You probably don't want to try running a kernel built from this
|
||||
# file. Instead, you should start from GENERIC, and add options from
|
||||
@ -818,13 +818,6 @@ options "NTIMECOUNTER=20"
|
||||
# configure cards from USERCONFIG. See pnp(4) for more info.
|
||||
controller pnp0
|
||||
|
||||
# The pcvt console driver (vt220 compatible).
|
||||
device vt0 at isa? port IO_KBD conflicts tty irq 1
|
||||
options XSERVER # support for running an X server.
|
||||
options FAT_CURSOR # start with block cursor
|
||||
# This PCVT option is for keyboards such as those used on IBM ThinkPad laptops
|
||||
options PCVT_SCANSET=2 # IBM keyboards are non-std
|
||||
|
||||
# The syscons console driver (sco color console compatible).
|
||||
device sc0 at isa? port IO_KBD conflicts tty irq 1
|
||||
options MAXCONS=16 # number of virtual consoles
|
||||
|
@ -1,7 +1,7 @@
|
||||
# This file tells config what files go into building a kernel,
|
||||
# files marked standard are always included.
|
||||
#
|
||||
# $Id: files.i386,v 1.208 1998/12/27 12:40:07 phk Exp $
|
||||
# $Id: files.i386,v 1.209 1998/12/27 12:44:55 phk Exp $
|
||||
#
|
||||
# The long compile-with and dependency lines are required because of
|
||||
# limitations in config: backslash-newline doesn't work in strings, and
|
||||
@ -149,12 +149,6 @@ i386/isa/matcd/matcd.c optional matcd device-driver
|
||||
i386/isa/pcibus.c optional pci device-driver
|
||||
i386/isa/pcicx.c optional ze device-driver
|
||||
i386/isa/pcicx.c optional zp device-driver
|
||||
i386/isa/pcvt/pcvt_drv.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_ext.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_kbd.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_out.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_sup.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_vtf.c optional vt device-driver
|
||||
i386/isa/pnp.c optional pnp device-driver
|
||||
i386/isa/prof_machdep.c optional profiling-routine
|
||||
i386/isa/ppc.c optional ppc device-driver
|
||||
|
@ -11,7 +11,7 @@
|
||||
# device lines is present in the ./LINT configuration file. If you are
|
||||
# in doubt as to the purpose or necessity of a line, check first in LINT.
|
||||
#
|
||||
# $Id: GENERIC,v 1.134 1998/12/09 23:28:43 n_hibma Exp $
|
||||
# $Id: GENERIC,v 1.135 1998/12/13 23:04:35 n_hibma Exp $
|
||||
|
||||
machine "i386"
|
||||
cpu "I386_CPU"
|
||||
@ -104,14 +104,7 @@ controller matcd0 at isa? port 0x230 bio
|
||||
|
||||
device scd0 at isa? port 0x230 bio
|
||||
|
||||
# syscons is the default console driver, resembling an SCO console
|
||||
device sc0 at isa? port IO_KBD conflicts tty irq 1
|
||||
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
|
||||
#device vt0 at isa? port IO_KBD conflicts tty irq 1
|
||||
#options XSERVER # support for X server
|
||||
#options FAT_CURSOR # start with block cursor
|
||||
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
|
||||
#options PCVT_SCANSET=2 # IBM keyboards are non-std
|
||||
|
||||
device npx0 at isa? port IO_NPX irq 13
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
# LINT -- config file for checking all the sources, tries to pull in
|
||||
# as much of the source tree as it can.
|
||||
#
|
||||
# $Id: LINT,v 1.513 1998/12/27 12:40:07 phk Exp $
|
||||
# $Id: LINT,v 1.514 1998/12/27 12:44:54 phk Exp $
|
||||
#
|
||||
# NB: You probably don't want to try running a kernel built from this
|
||||
# file. Instead, you should start from GENERIC, and add options from
|
||||
@ -818,13 +818,6 @@ options "NTIMECOUNTER=20"
|
||||
# configure cards from USERCONFIG. See pnp(4) for more info.
|
||||
controller pnp0
|
||||
|
||||
# The pcvt console driver (vt220 compatible).
|
||||
device vt0 at isa? port IO_KBD conflicts tty irq 1
|
||||
options XSERVER # support for running an X server.
|
||||
options FAT_CURSOR # start with block cursor
|
||||
# This PCVT option is for keyboards such as those used on IBM ThinkPad laptops
|
||||
options PCVT_SCANSET=2 # IBM keyboards are non-std
|
||||
|
||||
# The syscons console driver (sco color console compatible).
|
||||
device sc0 at isa? port IO_KBD conflicts tty irq 1
|
||||
options MAXCONS=16 # number of virtual consoles
|
||||
|
@ -2,7 +2,7 @@
|
||||
# LINT -- config file for checking all the sources, tries to pull in
|
||||
# as much of the source tree as it can.
|
||||
#
|
||||
# $Id: LINT,v 1.513 1998/12/27 12:40:07 phk Exp $
|
||||
# $Id: LINT,v 1.514 1998/12/27 12:44:54 phk Exp $
|
||||
#
|
||||
# NB: You probably don't want to try running a kernel built from this
|
||||
# file. Instead, you should start from GENERIC, and add options from
|
||||
@ -818,13 +818,6 @@ options "NTIMECOUNTER=20"
|
||||
# configure cards from USERCONFIG. See pnp(4) for more info.
|
||||
controller pnp0
|
||||
|
||||
# The pcvt console driver (vt220 compatible).
|
||||
device vt0 at isa? port IO_KBD conflicts tty irq 1
|
||||
options XSERVER # support for running an X server.
|
||||
options FAT_CURSOR # start with block cursor
|
||||
# This PCVT option is for keyboards such as those used on IBM ThinkPad laptops
|
||||
options PCVT_SCANSET=2 # IBM keyboards are non-std
|
||||
|
||||
# The syscons console driver (sco color console compatible).
|
||||
device sc0 at isa? port IO_KBD conflicts tty irq 1
|
||||
options MAXCONS=16 # number of virtual consoles
|
||||
|
@ -1,7 +1,7 @@
|
||||
# This file tells config what files go into building a kernel,
|
||||
# files marked standard are always included.
|
||||
#
|
||||
# $Id: files.i386,v 1.208 1998/12/27 12:40:07 phk Exp $
|
||||
# $Id: files.i386,v 1.209 1998/12/27 12:44:55 phk Exp $
|
||||
#
|
||||
# The long compile-with and dependency lines are required because of
|
||||
# limitations in config: backslash-newline doesn't work in strings, and
|
||||
@ -149,12 +149,6 @@ i386/isa/matcd/matcd.c optional matcd device-driver
|
||||
i386/isa/pcibus.c optional pci device-driver
|
||||
i386/isa/pcicx.c optional ze device-driver
|
||||
i386/isa/pcicx.c optional zp device-driver
|
||||
i386/isa/pcvt/pcvt_drv.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_ext.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_kbd.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_out.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_sup.c optional vt device-driver
|
||||
i386/isa/pcvt/pcvt_vtf.c optional vt device-driver
|
||||
i386/isa/pnp.c optional pnp device-driver
|
||||
i386/isa/prof_machdep.c optional profiling-routine
|
||||
i386/isa/ppc.c optional ppc device-driver
|
||||
|
@ -1,477 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch.
|
||||
*
|
||||
* Copyright (c) 1992, 1994 Brian Dunford-Shore.
|
||||
*
|
||||
* 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 and Joerg Wunsch.
|
||||
* 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_conf.h, 3.20, Last Edit-Date: [Sun Apr 2 18:57:45 1995]
|
||||
*
|
||||
*/
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
*
|
||||
* pcvt_conf.h VT220 driver global configuration file
|
||||
* ------------------------------------------------------
|
||||
* -hm introduced pcvt_conf.h
|
||||
* -hm re-integrated selfconfiguration for NetBSD from Onno
|
||||
* -hm patch from Onno for NetBSD-current
|
||||
* -hm removed PCVT_FAKE_SYSCONS10
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
*
|
||||
* from: Onno van der Linden c/o frank@fwi.uva.nl
|
||||
*
|
||||
* Here's an idea how to automatically detect the version of NetBSD pcvt is
|
||||
* being compiled on:
|
||||
*
|
||||
* NetBSD 0.8 : NetBSD0_8 defined in <sys/param.h>
|
||||
* NetBSD 0.9 : NetBSD0_9 defined in <sys/param.h>
|
||||
* NetBSD 1.0 : NetBSD1_0 defined as 1 in <sys/param.h>
|
||||
* NetBSD 1.0A: NetBSD1_0 defined as 2 in <sys/param.h>
|
||||
*
|
||||
* The NetBSDx_y defines are mutual exclusive.
|
||||
*
|
||||
* This leads to something like this in pcvt_hdr.h (#elif is possible too):
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef NetBSD0_8
|
||||
#define PCVT_NETBSD 8
|
||||
#endif
|
||||
|
||||
#ifdef NetBSD0_9
|
||||
#define PCVT_NETBSD 9
|
||||
#endif
|
||||
|
||||
#ifdef NetBSD1_0
|
||||
#if NetBSD1_0 > 1
|
||||
#define PCVT_NETBSD 199
|
||||
#else
|
||||
#define PCVT_NETBSD 100
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
* Note that each of the options below should rather be overriden by the
|
||||
* kernel config file instead of this .h file - this allows for different
|
||||
* definitions in different kernels compiled at the same machine
|
||||
*
|
||||
* The convention is as follows:
|
||||
*
|
||||
* options "PCVT_FOO=1" - enables the option
|
||||
* options "PCVT_FOO" - is a synonym for the above
|
||||
* options "PCVT_FOO=0" - disables the option
|
||||
*
|
||||
* omitting an option defaults to what is shown below
|
||||
*
|
||||
* exceptions from this rule are i.e.:
|
||||
*
|
||||
* options "PCVT_NSCREENS=x"
|
||||
* options "PCVT_SCANSET=x"
|
||||
* options "PCVT_UPDATEFAST=x"
|
||||
* options "PCVT_UPDATESLOW=x"
|
||||
* options "PCVT_SYSBEEPF=x"
|
||||
*
|
||||
* which are always numeric!
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* -------------------- OPERATING SYSTEM ------------------------------ */
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* one of the following options must be set in the kernel config file:
|
||||
*
|
||||
*======================================================================*
|
||||
* N e t B S D *
|
||||
*======================================================================*
|
||||
*
|
||||
* options "PCVT_NETBSD=xxx" enables support for NetBSD
|
||||
*
|
||||
* select:
|
||||
* PCVT_NETBSD = 9 for NetBSD 0.9
|
||||
* PCVT_NETBSD = 99 for PRE-1.0 NetBSD-current
|
||||
* PCVT_NETBSD = 100 for NetBSD 1.0
|
||||
* PCVT_NETBSD = 199 for PRE-2.0 NetBSD-current
|
||||
*
|
||||
*
|
||||
*======================================================================*
|
||||
* F r e e B S D *
|
||||
*======================================================================*
|
||||
*
|
||||
* options "PCVT_FREEBSD=xxx" enables support for FreeBSD
|
||||
*
|
||||
* select:
|
||||
* PCVT_FREEBSD = 102 for 1.0 release (actually 1.0.2)
|
||||
* PCVT_FREEBSD = 110 for FreeBSD 1.1-Release
|
||||
* PCVT_FREEBSD = 115 for FreeBSD 1.1.5.1-Release
|
||||
* PCVT_FREEBSD = 200 for FreeBSD 2.0-Release
|
||||
* PCVT_FREEBSD = 210 for FreeBSD 2.1-Release
|
||||
*
|
||||
*/
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* ---------------- USER PREFERENCE DRIVER OPTIONS -------------------- */
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* NOTE: if FAT_CURSOR is defined, a block cursor is used instead of */
|
||||
/* the cursor shape we got from the BIOS, see pcvt_out.c */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#if !defined PCVT_NSCREENS /* ---------- DEFAULT: 8 -------------- */
|
||||
# define PCVT_NSCREENS 8 /* this option defines how many virtual */
|
||||
#endif /* screens you want to have in your */
|
||||
/* system. each screen allocates memory,*/
|
||||
/* so you can't have an unlimited num- */
|
||||
/* ber...; the value is intented to be */
|
||||
/* compile-time overridable by a config */
|
||||
/* options "PCVT_NSCREENS=x" line */
|
||||
|
||||
#if !defined PCVT_VT220KEYB /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_VT220KEYB 0 /* this compiles a more vt220-like */
|
||||
#elif PCVT_VT220KEYB != 0 /* keyboardlayout as described in the */
|
||||
# undef PCVT_VT220KEYB /* file Keyboard.VT220. */
|
||||
# define PCVT_VT220KEYB 1 /* if undefined, a more HP-like */
|
||||
#endif /* keyboardlayout is compiled */
|
||||
/* try to find out what YOU like ! */
|
||||
|
||||
#if !defined PCVT_SCREENSAVER /* ---------- DEFAULT: ON ------------- */
|
||||
# define PCVT_SCREENSAVER 1 /* enable screen saver feature - this */
|
||||
#elif PCVT_SCREENSAVER != 0 /* just blanks the display screen. */
|
||||
# undef PCVT_SCREENSAVER /* see PCVT_PRETTYSCRNS below ... */
|
||||
# define PCVT_SCREENSAVER 1
|
||||
#endif
|
||||
|
||||
#if !defined PCVT_PRETTYSCRNS /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_PRETTYSCRNS 0 /* for the cost of some microseconds of */
|
||||
#elif PCVT_PRETTYSCRNS != 0 /* cpu time this adds a more "pretty" */
|
||||
# undef PCVT_PRETTYSCRNS /* version to the screensaver, an "*" */
|
||||
# define PCVT_PRETTYSCRNS 1 /* in random locations of the display. */
|
||||
#endif /* NOTE: this should not be defined if */
|
||||
/* you have an energy-saving monitor */
|
||||
/* which turns off the display if its */
|
||||
/* black !!!!!! */
|
||||
|
||||
#if !defined PCVT_CTRL_ALT_DEL /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_CTRL_ALT_DEL 0 /* this enables the execution of a cpu */
|
||||
#elif PCVT_CTRL_ALT_DEL != 0 /* reset by pressing the CTRL, ALT and */
|
||||
# undef PCVT_CTRL_ALT_DEL /* DEL keys simultanously. Because this */
|
||||
# define PCVT_CTRL_ALT_DEL 1 /* is a feature of an ancient simple */
|
||||
#endif /* bootstrap loader, it does not belong */
|
||||
/* into modern operating systems and */
|
||||
/* was commented out by default ... */
|
||||
|
||||
#if !defined PCVT_KBD_FIFO /* ---------- DEFAULT: ON ------------- */
|
||||
# define PCVT_KBD_FIFO 1 /* this enables Keyboad fifo so that we */
|
||||
#elif PCVT_KBD_FIFO != 0 /* are not any longer forced to switch */
|
||||
# undef PCVT_KBD_FIFO /* off tty interrupts while switching */
|
||||
# define PCVT_KBD_FIFO 1 /* virtual screens - AND loosing chars */
|
||||
#endif /* on the serial lines is gone :-) */
|
||||
|
||||
#if PCVT_KBD_FIFO
|
||||
|
||||
# if !defined PCVT_KBD_FIFO_SZ /* ---------- DEFAULT: 256 ------------ */
|
||||
# define PCVT_KBD_FIFO_SZ 256 /* this specifies the size of the above */
|
||||
# elif PCVT_KBD_FIFO_SZ < 16 /* mentioned keyboard buffer. buffer */
|
||||
# undef PCVT_KBD_FIFO_SZ /* overflows are logged via syslog, so */
|
||||
# define PCVT_KBD_FIFO_SZ 256 /* have a look at /var/log/messages */
|
||||
# endif
|
||||
|
||||
#endif /* PCVT_KBD_FIFO */
|
||||
|
||||
#if !defined PCVT_USEKBDSEC /* ---------- DEFAULT: ON ------------- */
|
||||
# define PCVT_USEKBDSEC 1 /* do not set the COMMAND_INHOVR bit */
|
||||
#elif PCVT_USEKBDSEC != 0 /* (1 = override security lock inhibit) */
|
||||
# undef PCVT_USEKBDSEC /* when initializing the keyboard, so */
|
||||
# define PCVT_USEKBDSEC 1 /* that security locking should work */
|
||||
#endif /* now. I guess this has to be done also*/
|
||||
/* in the boot code to prevent single */
|
||||
/* user startup .... */
|
||||
|
||||
#if !defined PCVT_24LINESDEF /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_24LINESDEF 0 /* use 24 lines in VT 25 lines mode and */
|
||||
#elif PCVT_24LINESDEF != 0 /* HP 28 lines mode by default to have */
|
||||
# undef PCVT_24LINESDEF /* the the better compatibility to the */
|
||||
# define PCVT_24LINESDEF 1 /* real VT220 - you can switch between */
|
||||
#endif /* the maximum possible screensizes in */
|
||||
/* those two modes (25 lines) and true */
|
||||
/* compatibility (24 lines) by using */
|
||||
/* the scon utility at runtime */
|
||||
|
||||
#if !defined PCVT_EMU_MOUSE /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_EMU_MOUSE 0 /* emulate a mouse systems mouse via */
|
||||
#elif PCVT_EMU_MOUSE != 0 /* the keypad; this is experimental */
|
||||
# undef PCVT_EMU_MOUSE /* code intented to be used on note- */
|
||||
# define PCVT_EMU_MOUSE 1 /* books in conjunction with XFree86; */
|
||||
#endif /* look at the comments in pcvt_kbd.c */
|
||||
/* if you are interested in testing it. */
|
||||
|
||||
#if !defined PCVT_META_ESC /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_META_ESC 0 /* if ON, send the sequence "ESC key" */
|
||||
#elif PCVT_META_ESC != 0 /* for a meta-shifted key; if OFF, */
|
||||
# undef PCVT_META_ESC /* send the normal key code with 0x80 */
|
||||
# define PCVT_META_ESC 1 /* added. */
|
||||
#endif
|
||||
|
||||
#if !defined PCVT_SW0CNOUTP /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_SW0CNOUTP 0 /* if ON, on console/kernel output the */
|
||||
#elif PCVT_SW0CNOUTP != 0 /* current screen is switched to screen */
|
||||
# undef PCVT_SW0CNOUTP /* 0 if not already at screen 0. */
|
||||
# define PCVT_SW0CNOUTP 1 /* CAUTION: CURRENTLY THIS CAUSES AN X- */
|
||||
#endif /* SESSION TO CLUTTER VIDEO MEMORY !!!! */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* -------------------- DRIVER DEBUGGING ------------------------------ */
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
#if !defined PCVT_SHOWKEYS /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_SHOWKEYS 0 /* this replaces the system load line */
|
||||
#elif PCVT_SHOWKEYS != 0 /* on the vt 0 in hp mode with a display*/
|
||||
# undef PCVT_SHOWKEYS /* of the most recent keyboard scan- */
|
||||
# define PCVT_SHOWKEYS 1 /* and status codes received from the */
|
||||
#endif /* keyboard controller chip. */
|
||||
/* this is just for some hardcore */
|
||||
/* keyboarders .... */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* -------------------- DRIVER OPTIONS -------------------------------- */
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* it is unlikely that anybody wants to change anything below */
|
||||
|
||||
#if !defined PCVT_NO_LED_UPDATE /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_NO_LED_UPDATE 0 /* On some (Notebook?) keyboards it is */
|
||||
#elif PCVT_NO_LED_UPDATE != 0 /* not possible to update the LED's */
|
||||
# undef PCVT_NO_LED_UPDATE /* without hanging the keyboard after- */
|
||||
# define PCVT_NO_LED_UPDATE 1 /* wards. If you experience Problems */
|
||||
#endif /* like this, try to enable this option */
|
||||
|
||||
#if !defined PCVT_PORTIO_DELAY /* ---------- DEFAULT: ON ------------- */
|
||||
# define PCVT_PORTIO_DELAY 1 /* Defining PCVT_PORTIO_DELAY lets pcvt */
|
||||
#elif PCVT_PORTIO_DELAY != 0 /* use multiple accesses to port 0x84 */
|
||||
# undef PCVT_PORTIO_DELAY /* to produce a delay of 7 us needed for*/
|
||||
# define PCVT_PORTIO_DELAY 1 /* accessing the keyboard controller, */
|
||||
#endif /* otherwise the system delay functions */
|
||||
/* are used. */
|
||||
|
||||
#if !defined PCVT_PCBURST /* ---------- DEFAULT: 256 ------------ */
|
||||
# define PCVT_PCBURST 256 /* NETBSD and FreeBSD >= 2.0 only: this */
|
||||
#endif /* is the number of output characters */
|
||||
/* handled together as a burst in */
|
||||
/* routine pcstart(), file pcvt_drv.c */
|
||||
|
||||
#if !defined PCVT_SCANSET /* ---------- DEFAULT: 1 -------------- */
|
||||
# define PCVT_SCANSET 1 /* define the keyboard scancode set you */
|
||||
#endif /* want to use: */
|
||||
/* 1 - code set 1 (supported) */
|
||||
/* 2 - code set 2 (supported) */
|
||||
/* 3 - code set 3 (UNsupported) */
|
||||
|
||||
#if !defined PCVT_KEYBDID /* ---------- DEFAULT: ON ------------- */
|
||||
# define PCVT_KEYBDID 1 /* check type of keyboard connected. at */
|
||||
#elif PCVT_KEYBDID != 0 /* least HP-keyboards send an id other */
|
||||
# undef PCVT_KEYBDID /* than the industry standard, so it */
|
||||
# define PCVT_KEYBDID 1 /* CAN lead to problems. if you have */
|
||||
#endif /* problems with this, TELL ME PLEASE ! */
|
||||
|
||||
#if !defined PCVT_SIGWINCH /* ---------- DEFAULT: ON ------------- */
|
||||
# define PCVT_SIGWINCH 1 /* this sends a SIGWINCH signal in case */
|
||||
#elif PCVT_SIGWINCH != 0 /* the window size is changed. to try, */
|
||||
# undef PCVT_SIGWINCH /* issue "scons -s<size>" while in elvis*/
|
||||
# define PCVT_SIGWINCH 1 /* and you'll see the effect. */
|
||||
#endif /* i'm not sure, whether this feature */
|
||||
/* has to be in the driver or has to */
|
||||
/* move as an ioctl call to scon .... */
|
||||
|
||||
#if !defined PCVT_NULLCHARS /* ---------- DEFAULT: ON ------------- */
|
||||
# define PCVT_NULLCHARS 1 /* allow the keyboard to send null */
|
||||
#elif PCVT_NULLCHARS != 0 /* (0x00) characters to the calling */
|
||||
# undef PCVT_NULLCHARS /* program. this has the side effect */
|
||||
# define PCVT_NULLCHARS 1 /* that every undefined key also sends */
|
||||
#endif /* out nulls. take it as experimental */
|
||||
/* code, this behaviour will change in */
|
||||
/* a future release */
|
||||
|
||||
#if !defined PCVT_BACKUP_FONTS /* ---------- DEFAULT: ON ------------- */
|
||||
# define PCVT_BACKUP_FONTS 1 /* fonts are always kept memory-backed; */
|
||||
#elif PCVT_BACKUP_FONTS != 0 /* otherwise copies are only made if */
|
||||
# undef PCVT_BACKUP_FONTS /* they are needed. */
|
||||
# define PCVT_BACKUP_FONTS 1
|
||||
#endif
|
||||
|
||||
#ifndef PCVT_UPDATEFAST /* this is the rate at which the cursor */
|
||||
# define PCVT_UPDATEFAST (hz/10) /* gets updated with its new position */
|
||||
#endif /* see: async_update() in pcvt_sup.c */
|
||||
|
||||
#ifndef PCVT_UPDATESLOW /* this is the rate at which the cursor */
|
||||
# define PCVT_UPDATESLOW 3 /* position display and the system load */
|
||||
#endif /* (or the keyboard scancode display) */
|
||||
/* is updated. the relation is: */
|
||||
/* PCVT_UPDATEFAST/PCVT_UPDATESLOW */
|
||||
|
||||
#ifndef PCVT_SYSBEEPF /* timer chip value to be used for the */
|
||||
# define PCVT_SYSBEEPF 1193182 /* sysbeep frequency value. */
|
||||
#endif /* this should really go somewhere else,*/
|
||||
/* e.g. in isa.h; but it used to be in */
|
||||
/* each driver, sometimes even with */
|
||||
/* different values (:-) */
|
||||
|
||||
#if !defined PCVT_SETCOLOR /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_SETCOLOR 0 /* enable making colors settable. this */
|
||||
#elif PCVT_SETCOLOR != 0 /* introduces a new escape sequence */
|
||||
# undef PCVT_SETCOLOR /* <ESC d> which is (i think) not */
|
||||
# define PCVT_SETCOLOR 1 /* standardized, so this is an option */
|
||||
#endif /* (Birthday present for Bruce ! :-) */
|
||||
|
||||
#if !defined PCVT_132GENERIC /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_132GENERIC 0 /* if you #define this, you enable */
|
||||
#elif PCVT_132GENERIC != 0 /* EXPERIMENTAL (!!!!!!!!!!!!) */
|
||||
# undef PCVT_132GENERIC /* USE-AT-YOUR-OWN-RISK, */
|
||||
# define PCVT_132GENERIC 1 /* MAY-DAMAGE-YOUR-MONITOR */
|
||||
#endif /* code to switch generic VGA boards/ */
|
||||
/* chipsets to 132 column mode. Since */
|
||||
/* i could not verify this option, i */
|
||||
/* prefer to NOT generally enable this, */
|
||||
/* if you want to play, look at the */
|
||||
/* hints and the code in pcvt_sup.c and */
|
||||
/* get in contact with Joerg Wunsch, who*/
|
||||
/* submitted this code. Be careful !!! */
|
||||
|
||||
#if !defined PCVT_PALFLICKER /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_PALFLICKER 0 /* this option turns off the screen */
|
||||
#elif PCVT_PALFLICKER != 0 /* during accesses to the VGA DAC */
|
||||
# undef PCVT_PALFLICKER /* registers. why: on one fo the tested */
|
||||
# define PCVT_PALFLICKER 1 /* pc's (WD-chipset), accesses to the */
|
||||
#endif /* vga dac registers caused distortions */
|
||||
/* on the screen. Ferraro says, one has */
|
||||
/* to blank the screen. the method used */
|
||||
/* to accomplish this stopped the noise */
|
||||
/* but introduced another flicker, so */
|
||||
/* this is for you to experiment ..... */
|
||||
/* - see also PCVT_WAITRETRACE below -- */
|
||||
|
||||
#if !defined PCVT_WAITRETRACE /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_WAITRETRACE 0 /* this option waits for being in a */
|
||||
#elif PCVT_WAITRETRACE != 0 /* retrace window prior to accessing */
|
||||
# undef PCVT_WAITRETRACE /* the VGA DAC registers. */
|
||||
# define PCVT_WAITRETRACE 1 /* this is the other method Ferraro */
|
||||
#endif /* mentioned in his book. this option */
|
||||
/* did eleminate the flicker noticably */
|
||||
/* but not completely. besides that, it */
|
||||
/* is implemented as a busy-wait loop */
|
||||
/* which is a no-no-no in environments */
|
||||
/* like this - VERY BAD PRACTICE !!!!! */
|
||||
/* the other method implementing it is */
|
||||
/* using the vertical retrace irq, but */
|
||||
/* we get short of irq-lines on pc's. */
|
||||
/* this is for you to experiment ..... */
|
||||
/* -- see also PCVT_PALFLICKER above -- */
|
||||
|
||||
#if !defined PCVT_INHIBIT_NUMLOCK /* --------- DEFAULT: OFF ----------- */
|
||||
# define PCVT_INHIBIT_NUMLOCK 0 /* A notebook hack: since i am getting */
|
||||
#elif PCVT_INHIBIT_NUMLOCK != 0 /* tired of the numlock LED always */
|
||||
# undef PCVT_INHIBIT_NUMLOCK /* being turned on - which causes the */
|
||||
# define PCVT_INHIBIT_NUMLOCK 1 /* right half of my keyboard being */
|
||||
#endif /* interpreted as a numeric keypad and */
|
||||
/* thus going unusable - i want to */
|
||||
/* have a better control over it. If */
|
||||
/* this option is enabled, only the */
|
||||
/* numlock key itself and the related */
|
||||
/* ioctls will modify the numlock */
|
||||
/* LED. (The ioctl is needed for the */
|
||||
/* ServerNumLock feature of XFree86.) */
|
||||
/* The default state is changed to */
|
||||
/* numlock off, and the escape */
|
||||
/* sequences to switch between numeric */
|
||||
/* and application mode keypad are */
|
||||
/* silently ignored. */
|
||||
|
||||
#if !defined PCVT_NOFASTSCROLL /* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_NOFASTSCROLL 0 /* If off, enables code for fast scroll.*/
|
||||
#elif PCVT_NOFASTSCROLL != 0 /* This is done by changing the CRTC */
|
||||
# undef PCVT_NOFASTSCROLL /* screen start address for scrolling */
|
||||
# define PCVT_NOFASTSCROLL 1 /* and using 2 times the screen size as */
|
||||
#endif /* buffer. The fastscroll code works */
|
||||
/* ONLY for VGA/EGA/CGA because it uses */
|
||||
/* the crtc for hardware scrolling and */
|
||||
/* therefore needs more than the one */
|
||||
/* page video memory MDA and most */
|
||||
/* Hercules boards support. */
|
||||
/* If you run pcvt ONLY on MDA/Hercules */
|
||||
/* you should disable fastscroll to save*/
|
||||
/* the time to decide which board you */
|
||||
/* are running pcvt on at runtime. */
|
||||
/* [see roll_up() and roll_down().] */
|
||||
|
||||
#if !defined PCVT_SLOW_INTERRUPT/* ---------- DEFAULT: OFF ------------ */
|
||||
# define PCVT_SLOW_INTERRUPT 0 /* If off, protecting critical regions */
|
||||
#elif PCVT_SLOW_INTERRUPT != 0 /* in the keyboard fifo code is done by */
|
||||
# undef PCVT_SLOW_INTERRUPT /* disabling the processor irq's, if on */
|
||||
# define PCVT_SLOW_INTERRUPT 1 /* this is done by spl()/splx() calls. */
|
||||
#endif
|
||||
|
||||
#ifdef XSERVER
|
||||
|
||||
#if !defined PCVT_USL_VT_COMPAT /* ---------- DEFAULT: ON ------------- */
|
||||
# define PCVT_USL_VT_COMPAT 1 /* this option enables multiple virtual */
|
||||
#elif PCVT_USL_VT_COMPAT != 0 /* screen support for XFree86. If set */
|
||||
# undef PCVT_USL_VT_COMPAT /* to off, support for a "classic" */
|
||||
# define PCVT_USL_VT_COMPAT 1 /* single screen only X server is */
|
||||
#endif /* compiled in. If enabled, most of the */
|
||||
/* ioctl's from SYSV/USL are supported */
|
||||
/* to run multiple X servers and/or */
|
||||
/* character terminal sessions. */
|
||||
|
||||
#endif /* XSERVER */
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* Kernel messages attribute definitions
|
||||
* These define the foreground and background attributes used to
|
||||
* emphasize messages from the kernel on color and mono displays.
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#if !defined COLOR_KERNEL_FG /* color displays */
|
||||
#define COLOR_KERNEL_FG FG_LIGHTGREY /* kernel messages, foreground */
|
||||
#endif
|
||||
#if !defined COLOR_KERNEL_BG
|
||||
#define COLOR_KERNEL_BG BG_RED /* kernel messages, background */
|
||||
#endif
|
||||
|
||||
#if !defined MONO_KERNEL_FG /* monochrome displays */
|
||||
#define MONO_KERNEL_FG FG_UNDERLINE /* kernel messages, foreground */
|
||||
#endif
|
||||
#if !defined MONO_KERNEL_BG
|
||||
#define MONO_KERNEL_BG BG_BLACK /* kernel messages, background */
|
||||
#endif
|
||||
|
||||
/*---------------------------------- E O F ----------------------------------*/
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,567 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch.
|
||||
*
|
||||
* Copyright (c) 1992, 1993 Brian Dunford-Shore and Holger Veit.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* William Jolitz and Don Ahn.
|
||||
*
|
||||
* This code is derived from software contributed to 386BSD by
|
||||
* Holger Veit.
|
||||
*
|
||||
* 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 and Joerg Wunsch.
|
||||
* 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_kbd.h, 3.20, Last Edit-Date: [Sun Apr 2 18:59:08 1995]
|
||||
*
|
||||
*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
*
|
||||
* pcvt_kbd.h VT220 Driver Keyboard Interface Header
|
||||
* ------------------------------------------------------
|
||||
* -hm split off from pcvt_kbd.c
|
||||
* -hm patch from Lon Willett to fix mapping of Control-R scancode
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* this is one sub-entry for the table. the type can be either
|
||||
* "pointer to a string" or "pointer to a function"
|
||||
*---------------------------------------------------------------------------*/
|
||||
typedef struct
|
||||
{
|
||||
u_char subtype; /* subtype, string or function */
|
||||
#ifdef PCVT_ALT_ENH
|
||||
u_short str_leng; /* if string, stringlength */
|
||||
#endif
|
||||
union what
|
||||
{
|
||||
u_char *string; /* ptr to string, null terminated */
|
||||
void (*func)(void); /* ptr to function */
|
||||
} what;
|
||||
} entry;
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* this is the "outer" table
|
||||
*---------------------------------------------------------------------------*/
|
||||
typedef struct
|
||||
{
|
||||
u_short type; /* type of key */
|
||||
u_short ovlindex; /* -hv- index into overload table */
|
||||
entry unshift; /* normal default codes/funcs */
|
||||
entry shift; /* shifted default codes/funcs */
|
||||
entry ctrl; /* control default codes/funcs */
|
||||
#ifdef PCVT_ALT_ENH
|
||||
entry alt; /* normal default codes/funcs */
|
||||
entry alt_shift; /* shifted default codes/funcs */
|
||||
entry alt_ctrl; /* control default codes/funcs */
|
||||
entry alt_ctrl_shift; /* normal default codes/funcs */
|
||||
#endif
|
||||
} Keycap_def;
|
||||
|
||||
#define IDX0 0 /* default indexvalue into ovl table */
|
||||
|
||||
#define STR KBD_SUBT_STR /* subtype = ptr to string */
|
||||
#define FNC KBD_SUBT_FNC /* subtype = ptr to function */
|
||||
|
||||
#define CODE_SIZE 5
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* the overlaytable table is a static fixed size scratchpad where all the
|
||||
* overloaded definitions are stored.
|
||||
* an entry consists of a short (holding the new type attribute) and
|
||||
* four entries for a new keydefinition.
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#define OVLTBL_SIZE 64 /* 64 keys can be overloaded */
|
||||
|
||||
#define Ovl_tbl struct kbd_ovlkey
|
||||
|
||||
static Ovl_tbl *ovltbl; /* the table itself */
|
||||
|
||||
static ovlinitflag = 0; /* the init flag for the table */
|
||||
|
||||
/*
|
||||
* key codes >= 128 denote "virtual" shift/control
|
||||
* They are resolved before any keymapping is handled
|
||||
*/
|
||||
|
||||
#if PCVT_SCANSET == 2
|
||||
static u_char scantokey[] = {
|
||||
/* -0- -1- -2- -3- -4- -5- -6- -7- This layout is valid for US only */
|
||||
/*00*/ 0,120, 0,116,114,112,113,123, /* ?? F9 ?? F5 F3 F1 F2 F12 */
|
||||
/*08*/ 0,121,119,117,115, 16, 1, 0, /* ?? F10 F8 F6 F4 TAB ` ?? */
|
||||
/*10*/ 0, 60, 44, 0, 58, 17, 2, 0, /* ?? ALl SHl ?? CTl Q 1 ?? */
|
||||
/*18*/ 0, 0, 46, 32, 31, 18, 3, 0, /* ?? Z S A W 2 ?? ?? */
|
||||
/*20*/ 0, 48, 47, 33, 19, 5, 4, 0, /* ?? C X D E 4 3 ?? */
|
||||
/*28*/ 0, 61, 49, 34, 21, 20, 6, 0, /* ?? SP V F T R 5 ?? */
|
||||
/*30*/ 0, 51, 50, 36, 35, 22, 7, 0, /* ?? N B H G Y 6 ?? */
|
||||
/*38*/ 0, 0, 52, 37, 23, 8, 9, 0, /* ?? ?? M J U 7 8 ?? */
|
||||
/*40*/ 0, 53, 38, 24, 25, 11, 10, 0, /* ?? , K I O 0 9 ?? */
|
||||
/*48*/ 0, 54, 55, 39, 40, 26, 12, 0, /* ?? . / L ; P - ?? */
|
||||
/*50*/ 0, 0, 41, 0, 27, 13, 0, 0, /* ?? ?? " ?? [ = ?? ?? */
|
||||
/*58*/ 30, 57, 43, 28, 0, 29, 0, 0, /* CAP SHr ENT ] ?? \ ?? ?? */
|
||||
/*60*/ 0, 45, 0, 0, 0, 0, 15, 0, /* ?? NL1 ?? ?? ?? ?? BS ?? */
|
||||
/*68*/ 0, 93, 0, 92, 91, 0, 0, 0, /* ?? KP1 ?? KP4 KP7 ?? ?? ?? */
|
||||
/*70*/ 99,104, 98, 97,102, 96,110, 90, /* KP0 KP. KP2 KP5 KP6 KP8 ESC NUM */
|
||||
/*78*/ 122,106,103,105,100,101,125, 0, /* F11 KP+ KP3 KP- KP* KP9 LOC ?? */
|
||||
/*80*/ 0, 0, 0,118,127 /* ?? ?? ?? F7 SyRQ */
|
||||
};
|
||||
|
||||
static u_char extscantokey[] = {
|
||||
/* -0- -1- -2- -3- -4- -5- -6- -7- This layout is valid for US only */
|
||||
/*00*/ 0,120, 0,116,114,112,113,123, /* ?? F9 ?? F5 F3 F1 F2 F12 */
|
||||
/*08*/ 0,121,119,117,115, 16, 1, 0, /* ?? F10 F8 F6 F4 TAB ` ?? */
|
||||
/*10*/ 0, 62,128, 0, 64, 17, 2, 0, /* ?? ALr vSh ?? CTr Q 1 ?? */
|
||||
/*18*/ 0, 0, 46, 32, 31, 18, 3, 0, /* ?? Z S A W 2 ?? ?? */
|
||||
/*20*/ 0, 48, 47, 33, 19, 5, 4, 0, /* ?? C X D E 4 3 ?? */
|
||||
/*28*/ 0, 61, 49, 34, 21, 20, 6, 0, /* ?? SP V F T R 5 ?? */
|
||||
/*30*/ 0, 51, 50, 36, 35, 22, 7, 0, /* ?? N B H G Y 6 ?? */
|
||||
/*38*/ 0, 0, 52, 37, 23, 8, 9, 0, /* ?? ?? M J U 7 8 ?? */
|
||||
/*40*/ 0, 53, 38, 24, 25, 11, 10, 0, /* ?? , K I O 0 9 ?? */
|
||||
/*48*/ 0, 54, 95, 39, 40, 26, 12, 0, /* ?? . KP/ L ; P - ?? */
|
||||
/*50*/ 0, 0, 41, 0, 27, 13, 0, 0, /* ?? ?? " ?? [ = ?? ?? */
|
||||
/*58*/ 30, 57,108, 28, 0, 29, 0, 0, /* CAP SHr KPE ] ?? \ ?? ?? */
|
||||
/*60*/ 0, 45, 0, 0, 0, 0, 15, 0, /* ?? NL1 ?? ?? ?? ?? BS ?? */
|
||||
/*68*/ 0, 81, 0, 79, 80, 0, 0, 0, /* ?? END ?? LA HOM ?? ?? ?? */
|
||||
/*70*/ 75, 76, 84, 97, 89, 83,110, 90, /* INS DEL DA KP5 RA UA ESC NUM */
|
||||
/*78*/ 122,106, 86,105,124, 85,126, 0, /* F11 KP+ PD KP- PSc PU Brk ?? */
|
||||
/*80*/ 0, 0, 0,118,127 /* ?? ?? ?? F7 SysRq */
|
||||
};
|
||||
|
||||
#else /* PCVT_SCANSET != 2 */
|
||||
|
||||
static u_char scantokey[] = {
|
||||
/* -0- -1- -2- -3- -4- -5- -6- -7- This layout is valid for US only */
|
||||
/*00*/ 0,110, 2, 3, 4, 5, 6, 7, /* ?? ESC 1 2 3 4 5 6 */
|
||||
/*08*/ 8, 9, 10, 11, 12, 13, 15, 16, /* 7 8 9 0 - = BS TAB */
|
||||
/*10*/ 17, 18, 19, 20, 21, 22, 23, 24, /* Q W E R T Y U I */
|
||||
/*18*/ 25, 26, 27, 28, 43, 58, 31, 32, /* O P [ ] ENT CTl A S */
|
||||
/*20*/ 33, 34, 35, 36, 37, 38, 39, 40, /* D F G H J K L ; */
|
||||
/*28*/ 41, 1, 44, 29, 46, 47, 48, 49, /* ' ` SHl \ Z X C V */
|
||||
/*30*/ 50, 51, 52, 53, 54, 55, 57,100, /* B N M , . / SHr KP* */
|
||||
/*38*/ 60, 61, 30,112,113,114,115,116, /* ALl SP CAP F1 F2 F3 F4 F5 */
|
||||
/*40*/ 117,118,119,120,121, 90,125, 91, /* F6 F7 F8 F9 F10 NUM LOC KP7 */
|
||||
/*48*/ 96,101,105, 92, 97,102,106, 93, /* KP8 KP9 KP- KP4 KP5 KP6 KP+ KP1 */
|
||||
/*50*/ 98,103, 99,104,127, 0, 45,122, /* KP2 KP3 KP0 KP. SyRq?? NL1 F11 */
|
||||
/*58*/ 123 /* F12 */
|
||||
};
|
||||
|
||||
static u_char extscantokey[] = {
|
||||
/* -0- -1- -2- -3- -4- -5- -6- -7- This layout is valid for US only */
|
||||
/*00*/ 0,110, 2, 3, 4, 5, 6, 7, /* ?? ESC 1 2 3 4 5 6 */
|
||||
/*08*/ 8, 9, 10, 11, 12, 13, 15, 16, /* 7 8 9 0 - = BS TAB */
|
||||
/*10*/ 17, 18, 19, 20, 21, 22, 23, 24, /* Q W E R T Y U I */
|
||||
/*18*/ 25, 26, 27, 28,108, 64, 31, 32, /* O P [ ] KPE CTr A S */
|
||||
/*20*/ 33, 34, 35, 36, 37, 38, 39, 40, /* D F G H J K L ; */
|
||||
/*28*/ 41, 1,128, 29, 46, 47, 48, 49, /* ' ` vSh \ Z X C V */
|
||||
/*30*/ 50, 51, 52, 53, 54, 95, 57,124, /* B N M , . KP/ SHr KP* */
|
||||
/*38*/ 62, 61, 30,112,113,114,115,116, /* ALr SP CAP F1 F2 F3 F4 F5 */
|
||||
/*40*/ 117,118,119,120,121, 90,126, 80, /* F6 F7 F8 F9 F10 NUM Brk HOM */
|
||||
/*48*/ 83, 85,105, 79, 97, 89,106, 81, /* UA PU KP- LA KP5 RA KP+ END */
|
||||
/*50*/ 84, 86, 75, 76, 0, 0, 45,122, /* DA PD INS DEL ?? ?? NL1 F11 */
|
||||
/*58*/ 123, /* F12 */
|
||||
};
|
||||
#endif /* PCVT_SCANSET == 2 */
|
||||
|
||||
static Keycap_def key2ascii[] =
|
||||
{
|
||||
|
||||
#ifdef PCVT_ALT_ENH
|
||||
|
||||
#define C (u_char *)
|
||||
#define U (u_short)
|
||||
#define V (void *)
|
||||
#define S STR
|
||||
#define F FNC
|
||||
#define I IDX0
|
||||
|
||||
#define DFAULT {S, 0, C ""}
|
||||
|
||||
/* DONT EVER OVERLOAD KEY 0, THIS IS A KEY THAT MUSTN'T EXIST */
|
||||
|
||||
/* type index unshift shift ctrl alt alt_shift alt_ctrl alt_ctrl_shift */
|
||||
/* -------------------------------------------------------------------------------------------------------------------------------------------------- */
|
||||
/* 0*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 1*/ KBD_ASCII, I, {S,1,C "`"}, {S,1,C "~"}, {S,1,C "`"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 2*/ KBD_ASCII, I, {S,1,C "1"}, {S,1,C "!"}, {S,1,C "1"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 3*/ KBD_ASCII, I, {S,1,C "2"}, {S,1,C "@"}, {S,1,C "\000"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 4*/ KBD_ASCII, I, {S,1,C "3"}, {S,1,C "#"}, {S,1,C "3"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 5*/ KBD_ASCII, I, {S,1,C "4"}, {S,1,C "$"}, {S,1,C "4"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 6*/ KBD_ASCII, I, {S,1,C "5"}, {S,1,C "%"}, {S,1,C "5"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 7*/ KBD_ASCII, I, {S,1,C "6"}, {S,1,C "^"}, {S,1,C "\036"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 8*/ KBD_ASCII, I, {S,1,C "7"}, {S,1,C "&"}, {S,1,C "7"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 9*/ KBD_ASCII, I, {S,1,C "8"}, {S,1,C "*"}, {S,1,C "9"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 10*/ KBD_ASCII, I, {S,1,C "9"}, {S,1,C "("}, {S,1,C "9"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 11*/ KBD_ASCII, I, {S,1,C "0"}, {S,1,C ")"}, {S,1,C "0"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 12*/ KBD_ASCII, I, {S,1,C "-"}, {S,1,C "_"}, {S,1,C "\037"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 13*/ KBD_ASCII, I, {S,1,C "="}, {S,1,C "+"}, {S,1,C "="}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 14*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 15*/ KBD_ASCII, I, {S,1,C "\177"}, {S,1,C "\010"}, {S,1,C "\177"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 16*/ KBD_ASCII, I, {S,1,C "\t"}, {S,1,C "\t"}, {S,1,C "\t"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 17*/ KBD_ASCII, I, {S,1,C "q"}, {S,1,C "Q"}, {S,1,C "\021"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 18*/ KBD_ASCII, I, {S,1,C "w"}, {S,1,C "W"}, {S,1,C "\027"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 19*/ KBD_ASCII, I, {S,1,C "e"}, {S,1,C "E"}, {S,1,C "\005"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 20*/ KBD_ASCII, I, {S,1,C "r"}, {S,1,C "R"}, {S,1,C "\022"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 21*/ KBD_ASCII, I, {S,1,C "t"}, {S,1,C "T"}, {S,1,C "\024"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 22*/ KBD_ASCII, I, {S,1,C "y"}, {S,1,C "Y"}, {S,1,C "\031"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 23*/ KBD_ASCII, I, {S,1,C "u"}, {S,1,C "U"}, {S,1,C "\025"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 24*/ KBD_ASCII, I, {S,1,C "i"}, {S,1,C "I"}, {S,1,C "\011"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 25*/ KBD_ASCII, I, {S,1,C "o"}, {S,1,C "O"}, {S,1,C "\017"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 26*/ KBD_ASCII, I, {S,1,C "p"}, {S,1,C "P"}, {S,1,C "\020"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 27*/ KBD_ASCII, I, {S,1,C "["}, {S,1,C "{"}, {S,1,C "\033"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 28*/ KBD_ASCII, I, {S,1,C "]"}, {S,1,C "}"}, {S,1,C "\035"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 29*/ KBD_ASCII, I, {S,1,C "\\"}, {S,1,C "|"}, {S,1,C "\034"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 30*/ KBD_CAPS, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 31*/ KBD_ASCII, I, {S,1,C "a"}, {S,1,C "A"}, {S,1,C "\001"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 32*/ KBD_ASCII, I, {S,1,C "s"}, {S,1,C "S"}, {S,1,C "\023"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 33*/ KBD_ASCII, I, {S,1,C "d"}, {S,1,C "D"}, {S,1,C "\004"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 34*/ KBD_ASCII, I, {S,1,C "f"}, {S,1,C "F"}, {S,1,C "\006"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 35*/ KBD_ASCII, I, {S,1,C "g"}, {S,1,C "G"}, {S,1,C "\007"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 36*/ KBD_ASCII, I, {S,1,C "h"}, {S,1,C "H"}, {S,1,C "\010"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 37*/ KBD_ASCII, I, {S,1,C "j"}, {S,1,C "J"}, {S,1,C "\n"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 38*/ KBD_ASCII, I, {S,1,C "k"}, {S,1,C "K"}, {S,1,C "\013"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 39*/ KBD_ASCII, I, {S,1,C "l"}, {S,1,C "L"}, {S,1,C "\014"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 40*/ KBD_ASCII, I, {S,1,C ";"}, {S,1,C ":"}, {S,1,C ";"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 41*/ KBD_ASCII, I, {S,1,C "'"}, {S,1,C "\""}, {S,1,C "'"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 42*/ KBD_ASCII, I, {S,1,C "\\"}, {S,1,C "|"}, {S,1,C "\034"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 43*/ KBD_RETURN,I, {S,1,C "\r"}, {S,1,C "\r"}, {S,1,C "\r"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 44*/ KBD_SHIFT, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 45*/ KBD_ASCII, I, {S,1,C "<"}, {S,1,C ">"}, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 46*/ KBD_ASCII, I, {S,1,C "z"}, {S,1,C "Z"}, {S,1,C "\032"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 47*/ KBD_ASCII, I, {S,1,C "x"}, {S,1,C "X"}, {S,1,C "\030"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 48*/ KBD_ASCII, I, {S,1,C "c"}, {S,1,C "C"}, {S,1,C "\003"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 49*/ KBD_ASCII, I, {S,1,C "v"}, {S,1,C "V"}, {S,1,C "\026"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 50*/ KBD_ASCII, I, {S,1,C "b"}, {S,1,C "B"}, {S,1,C "\002"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 51*/ KBD_ASCII, I, {S,1,C "n"}, {S,1,C "N"}, {S,1,C "\016"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 52*/ KBD_ASCII, I, {S,1,C "m"}, {S,1,C "M"}, {S,1,C "\r"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 53*/ KBD_ASCII, I, {S,1,C ","}, {S,1,C "<"}, {S,1,C ","}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 54*/ KBD_ASCII, I, {S,1,C "."}, {S,1,C ">"}, {S,1,C "."}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 55*/ KBD_ASCII, I, {S,1,C "/"}, {S,1,C "?"}, {S,1,C "/"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 56*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 57*/ KBD_SHIFT, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 58*/ KBD_CTL, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 59*/ KBD_ASCII, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 60*/ KBD_META, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
#if !PCVT_NULLCHARS
|
||||
/* 61*/ KBD_ASCII, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
#else
|
||||
/* 61*/ KBD_ASCII, I, DFAULT, DFAULT, {S,1,C "\000"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
#endif /* PCVT_NULLCHARS */
|
||||
/* 62*/ KBD_META, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 63*/ KBD_ASCII, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 64*/ KBD_CTL, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 65*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 66*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 67*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 68*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 69*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 70*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 71*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 72*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 73*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 74*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 75*/ KBD_FUNC, I, {S,4,C "\033[2~"}, {S,4,C "\033[2~"}, {S,4,C "\033[2~"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 76*/ KBD_FUNC, I, {S,4,C "\033[3~"}, {S,4,C "\033[3~"}, {S,4,C "\033[3~"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 77*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 78*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 79*/ KBD_CURSOR,I, {S,4,C "\033[D"}, {S,4,C "\033OD"}, {S,4,C "\033[D"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 80*/ KBD_FUNC, I, {S,4,C "\033[1~"}, {S,4,C "\033[1~"}, {S,4,C "\033[1~"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 81*/ KBD_FUNC, I, {S,4,C "\033[4~"}, {S,4,C "\033[4~"}, {S,4,C "\033[4~"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 82*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 83*/ KBD_CURSOR,I, {S,4,C "\033[A"}, {S,4,C "\033OA"}, {S,4,C "\033[A"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 84*/ KBD_CURSOR,I, {S,4,C "\033[B"}, {S,4,C "\033OB"}, {S,4,C "\033[B"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 85*/ KBD_FUNC, I, {S,4,C "\033[5~"}, {S,4,C "\033[5~"}, {S,4,C "\033[5~"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 86*/ KBD_FUNC, I, {S,4,C "\033[6~"}, {S,4,C "\033[6~"}, {S,4,C "\033[6~"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 87*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 88*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 89*/ KBD_CURSOR,I, {S,3,C "\033[C"}, {S,3,C "\033OC"}, {S,3,C "\033[C"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 90*/ KBD_NUM, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 91*/ KBD_KP, I, {S,1,C "7"}, {S,2,C "\033Ow"}, {S,1,C "7"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 92*/ KBD_KP, I, {S,1,C "4"}, {S,2,C "\033Ot"}, {S,1,C "4"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 93*/ KBD_KP, I, {S,1,C "1"}, {S,2,C "\033Oq"}, {S,1,C "1"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 94*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 95*/ KBD_KP, I, {S,1,C "/"}, {S,1,C "/"}, {S,1,C "/"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 96*/ KBD_KP, I, {S,1,C "8"}, {S,2,C "\033Ox"}, {S,1,C "8"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 97*/ KBD_KP, I, {S,1,C "5"}, {S,2,C "\033Ou"}, {S,1,C "5"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 98*/ KBD_KP, I, {S,1,C "2"}, {S,2,C "\033Or"}, {S,1,C "2"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/* 99*/ KBD_KP, I, {S,1,C "0"}, {S,2,C "\033Op"}, {S,1,C "0"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*100*/ KBD_KP, I, {S,1,C "*"}, {S,1,C "*"}, {S,1,C "*"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*101*/ KBD_KP, I, {S,1,C "9"}, {S,2,C "\033Oy"}, {S,1,C "9"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*102*/ KBD_KP, I, {S,1,C "6"}, {S,2,C "\033Ov"}, {S,1,C "6"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*103*/ KBD_KP, I, {S,1,C "3"}, {S,2,C "\033Os"}, {S,1,C "3"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*104*/ KBD_KP, I, {S,1,C "."}, {S,2,C "\033On"}, {S,1,C "."}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*105*/ KBD_KP, I, {S,1,C "-"}, {S,2,C "\033Om"}, {S,1,C "-"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*106*/ KBD_KP, I, {S,1,C "+"}, {S,1,C "+"}, {S,1,C "+"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*107*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*108*/ KBD_RETURN,I, {S,1,C "\r"}, {S,2,C "\033OM"}, {S,1,C "\r"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*109*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*110*/ KBD_ASCII, I, {S,1,C "\033"}, {S,2,C "\033"}, {S,1,C "\033"}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*111*/ KBD_NONE, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*112*/ KBD_FUNC, I, {F,0,V fkey1}, {F,0,V sfkey1}, {F,0,V cfkey1}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*113*/ KBD_FUNC, I, {F,0,V fkey2}, {F,0,V sfkey2}, {F,0,V cfkey2}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*114*/ KBD_FUNC, I, {F,0,V fkey3}, {F,0,V sfkey3}, {F,0,V cfkey3}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*115*/ KBD_FUNC, I, {F,0,V fkey4}, {F,0,V sfkey4}, {F,0,V cfkey4}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*116*/ KBD_FUNC, I, {F,0,V fkey5}, {F,0,V sfkey5}, {F,0,V cfkey5}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*117*/ KBD_FUNC, I, {F,0,V fkey6}, {F,0,V sfkey6}, {F,0,V cfkey6}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*118*/ KBD_FUNC, I, {F,0,V fkey7}, {F,0,V sfkey7}, {F,0,V cfkey7}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*119*/ KBD_FUNC, I, {F,0,V fkey8}, {F,0,V sfkey8}, {F,0,V cfkey8}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*120*/ KBD_FUNC, I, {F,0,V fkey9}, {F,0,V sfkey9}, {F,0,V cfkey9}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*121*/ KBD_FUNC, I, {F,0,V fkey10}, {F,0,V sfkey10}, {F,0,V cfkey10}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*122*/ KBD_FUNC, I, {F,0,V fkey11}, {F,0,V sfkey11}, {F,0,V cfkey11}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*123*/ KBD_FUNC, I, {F,0,V fkey12}, {F,0,V sfkey12}, {F,0,V cfkey12}, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*124*/ KBD_KP, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*125*/ KBD_SCROLL,I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*126*/ KBD_BREAK, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
/*127*/ KBD_FUNC, I, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT, DFAULT,
|
||||
|
||||
#undef C
|
||||
#undef U
|
||||
#undef V
|
||||
#undef S
|
||||
#undef F
|
||||
#undef I
|
||||
#undef DFLT
|
||||
};
|
||||
|
||||
#else /* PCVT_ALT_ENH */
|
||||
|
||||
/* define some shorthands to make the table (almost) fit into 80 columns */
|
||||
#define C (u_char *)
|
||||
#define V (void *)
|
||||
#define S STR
|
||||
#define F FNC
|
||||
#define I IDX0
|
||||
|
||||
/* DONT EVER OVERLOAD KEY 0, THIS IS A KEY THAT MUSTN'T EXIST */
|
||||
|
||||
/* type index unshift shift ctrl */
|
||||
/* ---------------------------------------------------------- */
|
||||
/* 0*/ KBD_NONE, I, {S,C "df"}, {S,C ""}, {S,C ""},
|
||||
/* 1*/ KBD_ASCII, I, {S,C "`"}, {S,C "~"}, {S,C "`"},
|
||||
/* 2*/ KBD_ASCII, I, {S,C "1"}, {S,C "!"}, {S,C "1"},
|
||||
/* 3*/ KBD_ASCII, I, {S,C "2"}, {S,C "@"}, {S,C "\000"},
|
||||
/* 4*/ KBD_ASCII, I, {S,C "3"}, {S,C "#"}, {S,C "3"},
|
||||
/* 5*/ KBD_ASCII, I, {S,C "4"}, {S,C "$"}, {S,C "4"},
|
||||
/* 6*/ KBD_ASCII, I, {S,C "5"}, {S,C "%"}, {S,C "5"},
|
||||
/* 7*/ KBD_ASCII, I, {S,C "6"}, {S,C "^"}, {S,C "\036"},
|
||||
/* 8*/ KBD_ASCII, I, {S,C "7"}, {S,C "&"}, {S,C "7"},
|
||||
/* 9*/ KBD_ASCII, I, {S,C "8"}, {S,C "*"}, {S,C "8"},
|
||||
/* 10*/ KBD_ASCII, I, {S,C "9"}, {S,C "("}, {S,C "9"},
|
||||
/* 11*/ KBD_ASCII, I, {S,C "0"}, {S,C ")"}, {S,C "0"},
|
||||
/* 12*/ KBD_ASCII, I, {S,C "-"}, {S,C "_"}, {S,C "\037"},
|
||||
/* 13*/ KBD_ASCII, I, {S,C "="}, {S,C "+"}, {S,C "="},
|
||||
/* 14*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 15*/ KBD_ASCII, I, {S,C "\177"}, {S,C "\010"}, {S,C "\177"}, /* BS */
|
||||
/* 16*/ KBD_ASCII, I, {S,C "\t"}, {S,C "\t"}, {S,C "\t"}, /* TAB */
|
||||
/* 17*/ KBD_ASCII, I, {S,C "q"}, {S,C "Q"}, {S,C "\021"},
|
||||
/* 18*/ KBD_ASCII, I, {S,C "w"}, {S,C "W"}, {S,C "\027"},
|
||||
/* 19*/ KBD_ASCII, I, {S,C "e"}, {S,C "E"}, {S,C "\005"},
|
||||
/* 20*/ KBD_ASCII, I, {S,C "r"}, {S,C "R"}, {S,C "\022"},
|
||||
/* 21*/ KBD_ASCII, I, {S,C "t"}, {S,C "T"}, {S,C "\024"},
|
||||
/* 22*/ KBD_ASCII, I, {S,C "y"}, {S,C "Y"}, {S,C "\031"},
|
||||
/* 23*/ KBD_ASCII, I, {S,C "u"}, {S,C "U"}, {S,C "\025"},
|
||||
/* 24*/ KBD_ASCII, I, {S,C "i"}, {S,C "I"}, {S,C "\011"},
|
||||
/* 25*/ KBD_ASCII, I, {S,C "o"}, {S,C "O"}, {S,C "\017"},
|
||||
/* 26*/ KBD_ASCII, I, {S,C "p"}, {S,C "P"}, {S,C "\020"},
|
||||
/* 27*/ KBD_ASCII, I, {S,C "["}, {S,C "{"}, {S,C "\033"},
|
||||
/* 28*/ KBD_ASCII, I, {S,C "]"}, {S,C "}"}, {S,C "\035"},
|
||||
/* 29*/ KBD_ASCII, I, {S,C "\\"}, {S,C "|"}, {S,C "\034"},
|
||||
/* 30*/ KBD_CAPS, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 31*/ KBD_ASCII, I, {S,C "a"}, {S,C "A"}, {S,C "\001"},
|
||||
/* 32*/ KBD_ASCII, I, {S,C "s"}, {S,C "S"}, {S,C "\023"},
|
||||
/* 33*/ KBD_ASCII, I, {S,C "d"}, {S,C "D"}, {S,C "\004"},
|
||||
/* 34*/ KBD_ASCII, I, {S,C "f"}, {S,C "F"}, {S,C "\006"},
|
||||
/* 35*/ KBD_ASCII, I, {S,C "g"}, {S,C "G"}, {S,C "\007"},
|
||||
/* 36*/ KBD_ASCII, I, {S,C "h"}, {S,C "H"}, {S,C "\010"},
|
||||
/* 37*/ KBD_ASCII, I, {S,C "j"}, {S,C "J"}, {S,C "\n"},
|
||||
/* 38*/ KBD_ASCII, I, {S,C "k"}, {S,C "K"}, {S,C "\013"},
|
||||
/* 39*/ KBD_ASCII, I, {S,C "l"}, {S,C "L"}, {S,C "\014"},
|
||||
/* 40*/ KBD_ASCII, I, {S,C ";"}, {S,C ":"}, {S,C ";"},
|
||||
/* 41*/ KBD_ASCII, I, {S,C "'"}, {S,C "\""}, {S,C "'"},
|
||||
/* 42*/ KBD_ASCII, I, {S,C "\\"}, {S,C "|"}, {S,C "\034"}, /* special */
|
||||
/* 43*/ KBD_RETURN,I, {S,C "\r"}, {S,C "\r"}, {S,C "\r"}, /* RETURN */
|
||||
/* 44*/ KBD_SHIFT, I, {S,C ""}, {S,C ""}, {S,C ""}, /* SHIFT left */
|
||||
/* 45*/ KBD_ASCII, I, {S,C "<"}, {S,C ">"}, {S,C ""},
|
||||
/* 46*/ KBD_ASCII, I, {S,C "z"}, {S,C "Z"}, {S,C "\032"},
|
||||
/* 47*/ KBD_ASCII, I, {S,C "x"}, {S,C "X"}, {S,C "\030"},
|
||||
/* 48*/ KBD_ASCII, I, {S,C "c"}, {S,C "C"}, {S,C "\003"},
|
||||
/* 49*/ KBD_ASCII, I, {S,C "v"}, {S,C "V"}, {S,C "\026"},
|
||||
/* 50*/ KBD_ASCII, I, {S,C "b"}, {S,C "B"}, {S,C "\002"},
|
||||
/* 51*/ KBD_ASCII, I, {S,C "n"}, {S,C "N"}, {S,C "\016"},
|
||||
/* 52*/ KBD_ASCII, I, {S,C "m"}, {S,C "M"}, {S,C "\r"},
|
||||
/* 53*/ KBD_ASCII, I, {S,C ","}, {S,C "<"}, {S,C ","},
|
||||
/* 54*/ KBD_ASCII, I, {S,C "."}, {S,C ">"}, {S,C "."},
|
||||
/* 55*/ KBD_ASCII, I, {S,C "/"}, {S,C "?"}, {S,C "/"},
|
||||
/* 56*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 57*/ KBD_SHIFT, I, {S,C ""}, {S,C ""}, {S,C ""}, /* SHIFT right */
|
||||
/* 58*/ KBD_CTL, I, {S,C ""}, {S,C ""}, {S,C ""}, /* CTL left */
|
||||
/* 59*/ KBD_ASCII, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 60*/ KBD_META, I, {S,C ""}, {S,C ""}, {S,C ""}, /* ALT left */
|
||||
#if !PCVT_NULLCHARS
|
||||
/* 61*/ KBD_ASCII, I, {S,C " "}, {S,C " "}, {S,C " "}, /* SPACE */
|
||||
#else
|
||||
/* 61*/ KBD_ASCII, I, {S,C " "}, {S,C " "}, {S,C "\000"}, /* SPACE */
|
||||
#endif /* PCVT_NULLCHARS */
|
||||
/* 62*/ KBD_META, I, {S,C ""}, {S,C ""}, {S,C ""}, /* ALT right */
|
||||
/* 63*/ KBD_ASCII, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 64*/ KBD_CTL, I, {S,C ""}, {S,C ""}, {S,C ""}, /* CTL right */
|
||||
/* 65*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 66*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 67*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 68*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 69*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 70*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 71*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 72*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 73*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 74*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 75*/ KBD_FUNC, I, {S,C "\033[2~"},{S,C "\033[2~"},{S,C "\033[2~"},/* INS */
|
||||
/* 76*/ KBD_FUNC, I, {S,C "\033[3~"},{S,C "\033[3~"},{S,C "\033[3~"},/* DEL */
|
||||
/* 77*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 78*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 79*/ KBD_CURSOR,I, {S,C "\033[D"},{S,C "\033OD"},{S,C "\033[D"}, /* CU <- */
|
||||
/* 80*/ KBD_FUNC, I, {S,C "\033[1~"},{S,C "\033[1~"},{S,C "\033[1~"},/* HOME = FIND*/
|
||||
/* 81*/ KBD_FUNC, I, {S,C "\033[4~"},{S,C "\033[4~"},{S,C "\033[4~"},/* END = SELECT */
|
||||
/* 82*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 83*/ KBD_CURSOR,I, {S,C "\033[A"},{S,C "\033OA"},{S,C "\033[A"}, /* CU ^ */
|
||||
/* 84*/ KBD_CURSOR,I, {S,C "\033[B"},{S,C "\033OB"},{S,C "\033[B"}, /* CU v */
|
||||
/* 85*/ KBD_FUNC, I, {S,C "\033[5~"},{S,C "\033[5~"},{S,C "\033[5~"},/*PG UP*/
|
||||
/* 86*/ KBD_FUNC, I, {S,C "\033[6~"},{S,C "\033[6~"},{S,C "\033[6~"},/*PG DN*/
|
||||
/* 87*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 88*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 89*/ KBD_CURSOR,I, {S,C "\033[C"},{S,C "\033OC"},{S,C "\033[C"}, /* CU -> */
|
||||
/* 90*/ KBD_NUM, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 91*/ KBD_KP, I, {S,C "7"}, {S,C "\033Ow"},{S,C "7"},
|
||||
/* 92*/ KBD_KP, I, {S,C "4"}, {S,C "\033Ot"},{S,C "4"},
|
||||
/* 93*/ KBD_KP, I, {S,C "1"}, {S,C "\033Oq"},{S,C "1"},
|
||||
/* 94*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/* 95*/ KBD_KP, I, {S,C "/"}, {S,C "/"}, {S,C "/"},
|
||||
/* 96*/ KBD_KP, I, {S,C "8"}, {S,C "\033Ox"},{S,C "8"},
|
||||
/* 97*/ KBD_KP, I, {S,C "5"}, {S,C "\033Ou"},{S,C "5"},
|
||||
/* 98*/ KBD_KP, I, {S,C "2"}, {S,C "\033Or"},{S,C "2"},
|
||||
/* 99*/ KBD_KP, I, {S,C "0"}, {S,C "\033Op"},{S,C "0"},
|
||||
/*100*/ KBD_KP, I, {S,C "*"}, {S,C "*"}, {S,C "*"},
|
||||
/*101*/ KBD_KP, I, {S,C "9"}, {S,C "\033Oy"},{S,C "9"},
|
||||
/*102*/ KBD_KP, I, {S,C "6"}, {S,C "\033Ov"},{S,C "6"},
|
||||
/*103*/ KBD_KP, I, {S,C "3"}, {S,C "\033Os"},{S,C "3"},
|
||||
/*104*/ KBD_KP, I, {S,C "."}, {S,C "\033On"},{S,C "."},
|
||||
/*105*/ KBD_KP, I, {S,C "-"}, {S,C "\033Om"},{S,C "-"},
|
||||
/*106*/ KBD_KP, I, {S,C "+"}, {S,C "+"}, {S,C "+"},
|
||||
/*107*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/*108*/ KBD_RETURN,I, {S,C "\r"}, {S,C "\033OM"},{S,C "\r"}, /* KP ENTER */
|
||||
/*109*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/*110*/ KBD_ASCII, I, {S,C "\033"}, {S,C "\033"}, {S,C "\033"},
|
||||
/*111*/ KBD_NONE, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/*112*/ KBD_FUNC, I, {F,V fkey1}, {F,V sfkey1}, {F,V cfkey1}, /* F1 */
|
||||
/*113*/ KBD_FUNC, I, {F,V fkey2}, {F,V sfkey2}, {F,V cfkey2}, /* F2 */
|
||||
/*114*/ KBD_FUNC, I, {F,V fkey3}, {F,V sfkey3}, {F,V cfkey3}, /* F3 */
|
||||
/*115*/ KBD_FUNC, I, {F,V fkey4}, {F,V sfkey4}, {F,V cfkey4}, /* F4 */
|
||||
/*116*/ KBD_FUNC, I, {F,V fkey5}, {F,V sfkey5}, {F,V cfkey5}, /* F5 */
|
||||
/*117*/ KBD_FUNC, I, {F,V fkey6}, {F,V sfkey6}, {F,V cfkey6}, /* F6 */
|
||||
/*118*/ KBD_FUNC, I, {F,V fkey7}, {F,V sfkey7}, {F,V cfkey7}, /* F7 */
|
||||
/*119*/ KBD_FUNC, I, {F,V fkey8}, {F,V sfkey8}, {F,V cfkey8}, /* F8 */
|
||||
/*120*/ KBD_FUNC, I, {F,V fkey9}, {F,V sfkey9}, {F,V cfkey9}, /* F9 */
|
||||
/*121*/ KBD_FUNC, I, {F,V fkey10}, {F,V sfkey10}, {F,V cfkey10}, /* F10 */
|
||||
/*122*/ KBD_FUNC, I, {F,V fkey11}, {F,V sfkey11}, {F,V cfkey11}, /* F11 */
|
||||
/*123*/ KBD_FUNC, I, {F,V fkey12}, {F,V sfkey12}, {F,V cfkey12}, /* F12 */
|
||||
/*124*/ KBD_KP, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/*125*/ KBD_SCROLL,I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/*126*/ KBD_BREAK, I, {S,C ""}, {S,C ""}, {S,C ""},
|
||||
/*127*/ KBD_FUNC, I, {S,C ""}, {S,C ""}, {S,C ""}, /* SysRq */
|
||||
|
||||
#undef C
|
||||
#undef V
|
||||
#undef S
|
||||
#undef F
|
||||
#undef I
|
||||
};
|
||||
|
||||
#endif /* PCVT_ALT_ENH */
|
||||
|
||||
static short keypad2num[] = {
|
||||
7, 4, 1, -1, -1, 8, 5, 2, 0, -1, 9, 6, 3, -1, -1, -1, -1
|
||||
};
|
||||
|
||||
#if PCVT_USL_VT_COMPAT
|
||||
|
||||
#define N_KEYNUMS 128
|
||||
|
||||
/*
|
||||
* this is the reverse mapping from keynumbers to scanset 1 codes
|
||||
* it is used to emulate the SysV-style GIO_KEYMAP ioctl cmd
|
||||
*/
|
||||
|
||||
static u_char key2scan1[N_KEYNUMS] = {
|
||||
0,0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, /* 0 */
|
||||
0x0a,0x0b,0x0c,0x0d, 0,0x0e,0x0f,0x10,0x11,0x12, /* 10 */
|
||||
0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x2b, /* 20 */
|
||||
0x3a,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26, /* 30 */
|
||||
0x27,0x28, 0,0x1c,0x2a,0x56,0x2c,0x2d,0x2e,0x2f, /* 40 */
|
||||
0x30,0x31,0x32,0x33,0x34,0x35,0x56,0x36,0x1d, 0, /* 50 */
|
||||
0x38,0x39, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */
|
||||
0x45,0x47,0x4b,0x4f, 0, 0,0x48,0x4c,0x50,0x52, /* 90 */
|
||||
0x37,0x49,0x4d,0x51,0x53,0x4a,0x4e, 0, 0, 0, /* 100 */
|
||||
0x01, 0,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42, /* 110 */
|
||||
0x43,0x44,0x57,0x58, 0,0x46, 0,0x54 /* 120 */
|
||||
};
|
||||
|
||||
/*
|
||||
* SysV is brain-dead enough to stick on the IBM code page 437. So we
|
||||
* have to translate our keymapping into IBM 437 (possibly losing keys),
|
||||
* in order to have the X server convert it back into ISO8859.1
|
||||
*/
|
||||
|
||||
/* NB: this table only contains the mapping for codes >= 128 */
|
||||
|
||||
static u_char iso2ibm437[] =
|
||||
{
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0xff, 0xad, 0x9b, 0x9c, 0, 0x9d, 0, 0x40,
|
||||
0x6f, 0x63, 0x61, 0xae, 0, 0, 0, 0,
|
||||
0xf8, 0xf1, 0xfd, 0x33, 0, 0xe6, 0, 0xfa,
|
||||
0, 0x31, 0x6f, 0xaf, 0xac, 0xab, 0, 0xa8,
|
||||
0x41, 0x41, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x80,
|
||||
0x45, 0x90, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49,
|
||||
0x81, 0xa5, 0x4f, 0x4f, 0x4f, 0x4f, 0x99, 0x4f,
|
||||
0x4f, 0x55, 0x55, 0x55, 0x9a, 0x59, 0, 0xe1,
|
||||
0x85, 0xa0, 0x83, 0x61, 0x84, 0x86, 0x91, 0x87,
|
||||
0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b,
|
||||
0, 0xa4, 0x95, 0xa2, 0x93, 0x6f, 0x94, 0x6f,
|
||||
0x6f, 0x97, 0xa3, 0x96, 0x81, 0x98, 0, 0
|
||||
};
|
||||
|
||||
#endif /* PCVT_USL_VT_COMPAT */
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,475 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1992, 1995 Hellmuth Michaelis.
|
||||
*
|
||||
* 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
|
||||
* 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_tbl.h, 3.20, Last Edit-Date: [Sun Apr 2 18:59:19 1995]
|
||||
*
|
||||
*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
*
|
||||
* pcvt_tbl.h VT220 Driver Character Set Conversion Tables
|
||||
* ------------------------------------------------------------
|
||||
* -hm splitting off pccons_out.c
|
||||
* -hm default tables for pure mda/hcg/cga
|
||||
*
|
||||
* in pcvt_out.c, hooks are provided for the following charactersets:
|
||||
*
|
||||
* HAVECS_BRITISH
|
||||
* HAVECS_ASCII
|
||||
* HAVECS_FINNISH
|
||||
* HAVECS_NORWEGIANDANISH
|
||||
* HAVECS_SWEDISH
|
||||
* HAVECS_GERMAN
|
||||
* HAVECS_FRENCHCANADA
|
||||
* HAVECS_FRENCH
|
||||
* HAVECS_ITALIAN
|
||||
* HAVECS_SPANISH
|
||||
* HAVECS_SPECIAL
|
||||
* HAVECS_ALTERNATEROM1
|
||||
* HAVECS_ALTERNATEROM2
|
||||
* HAVECS_ROMAN8
|
||||
* HAVECS_DUTCH
|
||||
* HAVECS_SUPPLEMENTAL
|
||||
* HAVECS_SWISS
|
||||
* HAVECS_TECHNICAL
|
||||
* HAVECS_ISOLATIN
|
||||
*
|
||||
* to add support for a new charcterset, you have to provide the
|
||||
* table named "cs_<charset>",define the according "HAVECS_<CHARSET>"
|
||||
* and recompile everything. ref: pcvt_out.c, vt_designate()
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
/*===========================================================================*
|
||||
* DEFAULT TABLES FOR MDA/HCG/CGA
|
||||
*===========================================================================*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* ASCII Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSD_ASCII
|
||||
u_short csd_ascii[CSSIZE] = {
|
||||
/* 20 */ 0x20 | CSL, 0x21 | CSL, 0x22 | CSL, 0x23 | CSL,
|
||||
/* 24 */ 0x24 | CSL, 0x25 | CSL, 0x26 | CSL, 0x27 | CSL,
|
||||
/* 28 */ 0x28 | CSL, 0x29 | CSL, 0x2A | CSL, 0x2B | CSL,
|
||||
/* 2C */ 0x2C | CSL, 0x2D | CSL, 0x2E | CSL, 0x2F | CSL,
|
||||
|
||||
/* 30 */ 0x30 | CSL, 0x31 | CSL, 0x32 | CSL, 0x33 | CSL,
|
||||
/* 34 */ 0x34 | CSL, 0x35 | CSL, 0x36 | CSL, 0x37 | CSL,
|
||||
/* 38 */ 0x38 | CSL, 0x39 | CSL, 0x3A | CSL, 0x3B | CSL,
|
||||
/* 3C */ 0x3C | CSL, 0x3D | CSL, 0x3E | CSL, 0x3F | CSL,
|
||||
|
||||
/* 40 */ 0x40 | CSL, 0x41 | CSL, 0x42 | CSL, 0x43 | CSL,
|
||||
/* 44 */ 0x44 | CSL, 0x45 | CSL, 0x46 | CSL, 0x47 | CSL,
|
||||
/* 48 */ 0x48 | CSL, 0x49 | CSL, 0x4A | CSL, 0x4B | CSL,
|
||||
/* 4C */ 0x4C | CSL, 0x4D | CSL, 0x4E | CSL, 0x4F | CSL,
|
||||
|
||||
/* 50 */ 0x50 | CSL, 0x51 | CSL, 0x52 | CSL, 0x53 | CSL,
|
||||
/* 54 */ 0x54 | CSL, 0x55 | CSL, 0x56 | CSL, 0x57 | CSL,
|
||||
/* 58 */ 0x58 | CSL, 0x59 | CSL, 0x5A | CSL, 0x5B | CSL,
|
||||
/* 5C */ 0x5C | CSL, 0x5D | CSL, 0x5E | CSL, 0x5F | CSL,
|
||||
|
||||
/* 60 */ 0x60 | CSL, 0x61 | CSL, 0x62 | CSL, 0x63 | CSL,
|
||||
/* 64 */ 0x64 | CSL, 0x65 | CSL, 0x66 | CSL, 0x67 | CSL,
|
||||
/* 68 */ 0x68 | CSL, 0x69 | CSL, 0x6A | CSL, 0x6B | CSL,
|
||||
/* 6C */ 0x6C | CSL, 0x6D | CSL, 0x6E | CSL, 0x6F | CSL,
|
||||
|
||||
/* 70 */ 0x70 | CSL, 0x71 | CSL, 0x72 | CSL, 0x73 | CSL,
|
||||
/* 74 */ 0x74 | CSL, 0x75 | CSL, 0x76 | CSL, 0x77 | CSL,
|
||||
/* 78 */ 0x78 | CSL, 0x79 | CSL, 0x7A | CSL, 0x7B | CSL,
|
||||
/* 7C */ 0x7C | CSL, 0x7D | CSL, 0x7E | CSL, 0x7F | CSL,
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* DEC Supplemental Graphic Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSD_SUPPLEMENTAL
|
||||
u_short csd_supplemental[CSSIZE] = {
|
||||
/* 20 */ 0x20 | CSL, 0xAD | CSL, 0x9B | CSL, 0x9C | CSL,
|
||||
/* 24 */ 0x20 | CSL, 0x9D | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 28 */ 0x20 | CSL, 0x20 | CSL, 0xA6 | CSL, 0xAE | CSL,
|
||||
/* 2C */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
|
||||
/* 30 */ 0xF8 | CSL, 0xF1 | CSL, 0xFD | CSL, 0x20 | CSL,
|
||||
/* 34 */ 0x20 | CSL, 0xE6 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 38 */ 0x20 | CSL, 0x20 | CSL, 0xA7 | CSL, 0xAF | CSL,
|
||||
/* 3C */ 0xAC | CSL, 0xAB | CSL, 0x20 | CSL, 0xA8 | CSL,
|
||||
|
||||
/* 40 */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 44 */ 0x8E | CSL, 0x8F | CSL, 0x92 | CSL, 0x80 | CSL,
|
||||
/* 48 */ 0x20 | CSL, 0x90 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 4C */ 0x8D | CSL, 0xA1 | CSL, 0x8C | CSL, 0x8B | CSL,
|
||||
|
||||
/* 50 */ 0x20 | CSL, 0xA5 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 54 */ 0x20 | CSL, 0x20 | CSL, 0x99 | CSL, 0x20 | CSL,
|
||||
/* 58 */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 5C */ 0x9A | CSL, 0x20 | CSL, 0x20 | CSL, 0xE1 | CSL,
|
||||
|
||||
/* 60 */ 0x85 | CSL, 0xA0 | CSL, 0x83 | CSL, 0x20 | CSL,
|
||||
/* 64 */ 0x84 | CSL, 0x86 | CSL, 0x91 | CSL, 0x87 | CSL,
|
||||
/* 68 */ 0x8A | CSL, 0x82 | CSL, 0x88 | CSL, 0x89 | CSL,
|
||||
/* 6C */ 0x8D | CSL, 0xA1 | CSL, 0x8C | CSL, 0x8B | CSL,
|
||||
|
||||
/* 70 */ 0x20 | CSL, 0xA4 | CSL, 0x95 | CSL, 0xA2 | CSL,
|
||||
/* 74 */ 0x93 | CSL, 0x20 | CSL, 0x94 | CSL, 0x20 | CSL,
|
||||
/* 78 */ 0x20 | CSL, 0x97 | CSL, 0xA3 | CSL, 0x96 | CSL,
|
||||
/* 7C */ 0x81 | CSL, 0x98 | CSL, 0x20 | CSL, 0x20 | CSL
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* DEC Special Graphic Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSD_SPECIAL
|
||||
u_short csd_special[CSSIZE] = {
|
||||
/* 20 */ 0x20 | CSL, 0x21 | CSL, 0x22 | CSL, 0x23 | CSL,
|
||||
/* 24 */ 0x24 | CSL, 0x25 | CSL, 0x26 | CSL, 0x27 | CSL,
|
||||
/* 28 */ 0x28 | CSL, 0x29 | CSL, 0x2A | CSL, 0x2B | CSL,
|
||||
/* 2C */ 0x2C | CSL, 0x2D | CSL, 0x2E | CSL, 0x2F | CSL,
|
||||
|
||||
/* 30 */ 0x30 | CSL, 0x31 | CSL, 0x32 | CSL, 0x33 | CSL,
|
||||
/* 34 */ 0x34 | CSL, 0x35 | CSL, 0x36 | CSL, 0x37 | CSL,
|
||||
/* 38 */ 0x38 | CSL, 0x39 | CSL, 0x3A | CSL, 0x3B | CSL,
|
||||
/* 3C */ 0x3C | CSL, 0x3D | CSL, 0x3E | CSL, 0x3F | CSL,
|
||||
|
||||
/* 40 */ 0x40 | CSL, 0x41 | CSL, 0x42 | CSL, 0x43 | CSL,
|
||||
/* 44 */ 0x44 | CSL, 0x45 | CSL, 0x46 | CSL, 0x47 | CSL,
|
||||
/* 48 */ 0x48 | CSL, 0x49 | CSL, 0x4A | CSL, 0x4B | CSL,
|
||||
/* 4C */ 0x4C | CSL, 0x4D | CSL, 0x4E | CSL, 0x4F | CSL,
|
||||
|
||||
/* 50 */ 0x50 | CSL, 0x51 | CSL, 0x52 | CSL, 0x53 | CSL,
|
||||
/* 54 */ 0x54 | CSL, 0x55 | CSL, 0x56 | CSL, 0x57 | CSL,
|
||||
/* 58 */ 0x58 | CSL, 0x59 | CSL, 0x5A | CSL, 0x5B | CSL,
|
||||
/* 5C */ 0x5C | CSL, 0x5D | CSL, 0x5E | CSL, 0x20 | CSL,
|
||||
|
||||
/* 60 */ 0x20 | CSL, 0xB0 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 64 */ 0x20 | CSL, 0x20 | CSL, 0xF8 | CSL, 0xF1 | CSL,
|
||||
/* 68 */ 0x20 | CSL, 0x20 | CSL, 0xD9 | CSL, 0xBF | CSL,
|
||||
/* 6C */ 0xDA | CSL, 0xC0 | CSL, 0xC5 | CSL, 0x20 | CSL,
|
||||
|
||||
/* 70 */ 0x20 | CSL, 0xC4 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 74 */ 0xC3 | CSL, 0xB4 | CSL, 0xC1 | CSL, 0xC2 | CSL,
|
||||
/* 78 */ 0xB3 | CSL, 0xF3 | CSL, 0xF2 | CSL, 0xE3 | CSL,
|
||||
/* 7C */ 0x20 | CSL, 0x9C | CSL, 0x20 | CSL, 0x20 | CSL
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* DEC Technical Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSD_TECHNICAL
|
||||
u_short csd_technical[CSSIZE] = {
|
||||
/* 20 */ 0xFE | CSH, 0xFB | CSL, 0xDA | CSL, 0xC4 | CSL,
|
||||
/* 24 */ 0xF4 | CSL, 0xF5 | CSL, 0xB3 | CSL, 0xDA | CSL,
|
||||
/* 28 */ 0xC0 | CSL, 0xBF | CSL, 0xD9 | CSL, 0x20 | CSL,
|
||||
/* 2C */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
|
||||
/* 30 */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 34 */ 0x20 | CSL, 0xAA | CSL, 0xA9 | CSL, 0x3E | CSL,
|
||||
/* 38 */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 3C */ 0xF3 | CSL, 0x20 | CSL, 0xF2 | CSL, 0x20 | CSL,
|
||||
|
||||
/* 40 */ 0x20 | CSL, 0x20 | CSL, 0xEC | CSL, 0xF6 | CSL,
|
||||
/* 44 */ 0x20 | CSL, 0x20 | CSL, 0xE8 | CSL, 0xE2 | CSL,
|
||||
/* 48 */ 0x20 | CSL, 0xF7 | CSL, 0xE9 | CSL, 0x78 | CSL,
|
||||
/* 4C */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0xF0 | CSL,
|
||||
|
||||
/* 50 */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0xE4 | CSL,
|
||||
/* 54 */ 0x20 | CSL, 0x20 | CSL, 0xFB | CSL, 0xEA | CSL,
|
||||
/* 58 */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 5C */ 0xEF | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
|
||||
/* 60 */ 0xAA | CSL, 0xE0 | CSL, 0xE1 | CSL, 0x20 | CSL,
|
||||
/* 64 */ 0xEB | CSL, 0x20 | CSL, 0xED | CSL, 0x59 | CSL,
|
||||
/* 68 */ 0x20 | CSL, 0x20 | CSL, 0xE9 | CSL, 0x20 | CSL,
|
||||
/* 6C */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
|
||||
/* 70 */ 0xE3 | CSL, 0x20 | CSL, 0x20 | CSL, 0xE5 | CSL,
|
||||
/* 74 */ 0xE7 | CSL, 0x20 | CSL, 0x9F | CSL, 0x20 | CSL,
|
||||
/* 78 */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 7C */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* ISO Latin-1 Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSD_ISOLATIN
|
||||
u_short csd_isolatin[CSSIZE] = {
|
||||
/* 20 */ 0x20 | CSL, 0xAD | CSL, 0x9B | CSL, 0x9C | CSL,
|
||||
/* 24 */ 0x20 | CSL, 0x9D | CSL, 0x7C | CSL, 0x20 | CSL,
|
||||
/* 28 */ 0x22 | CSL, 0x20 | CSL, 0xA6 | CSL, 0xAE | CSL,
|
||||
/* 2C */ 0xAA | CSL, 0x2D | CSL, 0x20 | CSL, 0x2D | CSL,
|
||||
|
||||
/* 30 */ 0xF8 | CSL, 0xF1 | CSL, 0xFD | CSL, 0x20 | CSL,
|
||||
/* 34 */ 0x27 | CSL, 0xE6 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 38 */ 0x20 | CSL, 0x20 | CSL, 0xA7 | CSL, 0xAF | CSL,
|
||||
/* 3C */ 0xAC | CSL, 0xAB | CSL, 0x20 | CSL, 0xA8 | CSL,
|
||||
|
||||
/* 40 */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 44 */ 0x8E | CSL, 0x8F | CSL, 0x92 | CSL, 0x80 | CSL,
|
||||
/* 48 */ 0x20 | CSL, 0x90 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 4C */ 0x8D | CSL, 0xA1 | CSL, 0x8C | CSL, 0x8B | CSL,
|
||||
|
||||
/* 50 */ 0x20 | CSL, 0xA5 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 54 */ 0x20 | CSL, 0x20 | CSL, 0x99 | CSL, 0x78 | CSL,
|
||||
/* 58 */ 0x20 | CSL, 0x20 | CSL, 0x20 | CSL, 0x20 | CSL,
|
||||
/* 5C */ 0x9A | CSL, 0x20 | CSL, 0x20 | CSL, 0xE1 | CSL,
|
||||
|
||||
/* 60 */ 0x85 | CSL, 0xA0 | CSL, 0x83 | CSL, 0x20 | CSL,
|
||||
/* 64 */ 0x84 | CSL, 0x86 | CSL, 0x91 | CSL, 0x87 | CSL,
|
||||
/* 68 */ 0x8A | CSL, 0x82 | CSL, 0x88 | CSL, 0x89 | CSL,
|
||||
/* 6C */ 0x8D | CSL, 0xA1 | CSL, 0x8C | CSL, 0x8B | CSL,
|
||||
|
||||
/* 70 */ 0x20 | CSL, 0xA4 | CSL, 0x95 | CSL, 0xA2 | CSL,
|
||||
/* 74 */ 0x93 | CSL, 0x20 | CSL, 0x94 | CSL, 0xF6 | CSL,
|
||||
/* 78 */ 0x20 | CSL, 0x97 | CSL, 0xA3 | CSL, 0x96 | CSL,
|
||||
/* 7C */ 0x81 | CSL, 0x20 | CSL, 0x20 | CSL, 0x98 | CSL
|
||||
};
|
||||
|
||||
/*===========================================================================*
|
||||
* EXTENDED TABLES FOR EGA/VGA
|
||||
*===========================================================================*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* ASCII Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSE_ASCII
|
||||
u_short cse_ascii[CSSIZE] = {
|
||||
/* 20 */ 0x20 | CSL, 0x21 | CSL, 0x22 | CSL, 0x23 | CSL,
|
||||
/* 24 */ 0x24 | CSL, 0x25 | CSL, 0x26 | CSL, 0x27 | CSL,
|
||||
/* 28 */ 0x28 | CSL, 0x29 | CSL, 0x2A | CSL, 0x2B | CSL,
|
||||
/* 2C */ 0x2C | CSL, 0x2D | CSL, 0x2E | CSL, 0x2F | CSL,
|
||||
|
||||
/* 30 */ 0x30 | CSL, 0x31 | CSL, 0x32 | CSL, 0x33 | CSL,
|
||||
/* 34 */ 0x34 | CSL, 0x35 | CSL, 0x36 | CSL, 0x37 | CSL,
|
||||
/* 38 */ 0x38 | CSL, 0x39 | CSL, 0x3A | CSL, 0x3B | CSL,
|
||||
/* 3C */ 0x3C | CSL, 0x3D | CSL, 0x3E | CSL, 0x3F | CSL,
|
||||
|
||||
/* 40 */ 0x40 | CSL, 0x41 | CSL, 0x42 | CSL, 0x43 | CSL,
|
||||
/* 44 */ 0x44 | CSL, 0x45 | CSL, 0x46 | CSL, 0x47 | CSL,
|
||||
/* 48 */ 0x48 | CSL, 0x49 | CSL, 0x4A | CSL, 0x4B | CSL,
|
||||
/* 4C */ 0x4C | CSL, 0x4D | CSL, 0x4E | CSL, 0x4F | CSL,
|
||||
|
||||
/* 50 */ 0x50 | CSL, 0x51 | CSL, 0x52 | CSL, 0x53 | CSL,
|
||||
/* 54 */ 0x54 | CSL, 0x55 | CSL, 0x56 | CSL, 0x57 | CSL,
|
||||
/* 58 */ 0x58 | CSL, 0x59 | CSL, 0x5A | CSL, 0x5B | CSL,
|
||||
/* 5C */ 0x5C | CSL, 0x5D | CSL, 0x5E | CSL, 0x5F | CSL,
|
||||
|
||||
/* 60 */ 0x60 | CSL, 0x61 | CSL, 0x62 | CSL, 0x63 | CSL,
|
||||
/* 64 */ 0x64 | CSL, 0x65 | CSL, 0x66 | CSL, 0x67 | CSL,
|
||||
/* 68 */ 0x68 | CSL, 0x69 | CSL, 0x6A | CSL, 0x6B | CSL,
|
||||
/* 6C */ 0x6C | CSL, 0x6D | CSL, 0x6E | CSL, 0x6F | CSL,
|
||||
|
||||
/* 70 */ 0x70 | CSL, 0x71 | CSL, 0x72 | CSL, 0x73 | CSL,
|
||||
/* 74 */ 0x74 | CSL, 0x75 | CSL, 0x76 | CSL, 0x77 | CSL,
|
||||
/* 78 */ 0x78 | CSL, 0x79 | CSL, 0x7A | CSL, 0x7B | CSL,
|
||||
/* 7C */ 0x7C | CSL, 0x7D | CSL, 0x7E | CSL, 0xB0 | CSL,
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* DEC Supplemental Graphic Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSE_SUPPLEMENTAL
|
||||
u_short cse_supplemental[CSSIZE] = {
|
||||
/* 20 */ 0x20 | CSL, 0xAD | CSL, 0x9B | CSL, 0x9C | CSL,
|
||||
/* 24 */ 0x9F | CSH, 0x67 | CSH, 0x9F | CSH, 0x15 | CSL,
|
||||
/* 28 */ 0x9D | CSH, 0x9C | CSH, 0xA6 | CSL, 0xAE | CSL,
|
||||
/* 2C */ 0x9F | CSH, 0x9F | CSH, 0x9F | CSH, 0x9F | CSH,
|
||||
|
||||
/* 30 */ 0xF8 | CSL, 0xF1 | CSL, 0xFD | CSL, 0x9B | CSH,
|
||||
/* 34 */ 0x9F | CSH, 0xE6 | CSL, 0x14 | CSL, 0x99 | CSH,
|
||||
/* 38 */ 0x9F | CSH, 0x98 | CSH, 0xA7 | CSL, 0xAF | CSL,
|
||||
/* 3C */ 0xAC | CSL, 0xAB | CSL, 0x9F | CSH, 0xA8 | CSL,
|
||||
|
||||
/* 40 */ 0x97 | CSH, 0x96 | CSH, 0x95 | CSH, 0x94 | CSH,
|
||||
/* 44 */ 0x8E | CSL, 0x8F | CSL, 0x92 | CSL, 0x80 | CSL,
|
||||
/* 48 */ 0x93 | CSH, 0x90 | CSL, 0x92 | CSH, 0x91 | CSH,
|
||||
/* 4C */ 0x90 | CSH, 0x8F | CSH, 0x8E | CSH, 0x8D | CSH,
|
||||
|
||||
/* 50 */ 0x9F | CSH, 0xA5 | CSL, 0x8C | CSH, 0x8B | CSH,
|
||||
/* 54 */ 0x8A | CSH, 0x89 | CSH, 0x99 | CSL, 0x88 | CSH,
|
||||
/* 58 */ 0x87 | CSH, 0x86 | CSH, 0x85 | CSH, 0x84 | CSH,
|
||||
/* 5C */ 0x9A | CSL, 0x83 | CSH, 0x9F | CSH, 0xE1 | CSL,
|
||||
|
||||
/* 60 */ 0x85 | CSL, 0xA0 | CSL, 0x83 | CSL, 0x82 | CSH,
|
||||
/* 64 */ 0x84 | CSL, 0x86 | CSL, 0x91 | CSL, 0x87 | CSL,
|
||||
/* 68 */ 0x8A | CSL, 0x82 | CSL, 0x88 | CSL, 0x89 | CSL,
|
||||
/* 6C */ 0x8D | CSL, 0xA1 | CSL, 0x8C | CSL, 0x8B | CSL,
|
||||
|
||||
/* 70 */ 0x9F | CSH, 0xA4 | CSL, 0x95 | CSL, 0xA2 | CSL,
|
||||
/* 74 */ 0x93 | CSL, 0x81 | CSH, 0x94 | CSL, 0x80 | CSH,
|
||||
/* 78 */ 0x7F | CSH, 0x97 | CSL, 0xA3 | CSL, 0x96 | CSL,
|
||||
/* 7C */ 0x81 | CSL, 0x98 | CSL, 0x9F | CSH, 0x20 | CSL
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* DEC Special Graphic Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSE_SPECIAL
|
||||
u_short cse_special[CSSIZE] = {
|
||||
/* 20 */ 0x20 | CSL, 0x21 | CSL, 0x22 | CSL, 0x23 | CSL,
|
||||
/* 24 */ 0x24 | CSL, 0x25 | CSL, 0x26 | CSL, 0x27 | CSL,
|
||||
/* 28 */ 0x28 | CSL, 0x29 | CSL, 0x2A | CSL, 0x2B | CSL,
|
||||
/* 2C */ 0x2C | CSL, 0x2D | CSL, 0x2E | CSL, 0x2F | CSL,
|
||||
|
||||
/* 30 */ 0x30 | CSL, 0x31 | CSL, 0x32 | CSL, 0x33 | CSL,
|
||||
/* 34 */ 0x34 | CSL, 0x35 | CSL, 0x36 | CSL, 0x37 | CSL,
|
||||
/* 38 */ 0x38 | CSL, 0x39 | CSL, 0x3A | CSL, 0x3B | CSL,
|
||||
/* 3C */ 0x3C | CSL, 0x3D | CSL, 0x3E | CSL, 0x3F | CSL,
|
||||
|
||||
/* 40 */ 0x40 | CSL, 0x41 | CSL, 0x42 | CSL, 0x43 | CSL,
|
||||
/* 44 */ 0x44 | CSL, 0x45 | CSL, 0x46 | CSL, 0x47 | CSL,
|
||||
/* 48 */ 0x48 | CSL, 0x49 | CSL, 0x4A | CSL, 0x4B | CSL,
|
||||
/* 4C */ 0x4C | CSL, 0x4D | CSL, 0x4E | CSL, 0x4F | CSL,
|
||||
|
||||
/* 50 */ 0x50 | CSL, 0x51 | CSL, 0x52 | CSL, 0x53 | CSL,
|
||||
/* 54 */ 0x54 | CSL, 0x55 | CSL, 0x56 | CSL, 0x57 | CSL,
|
||||
/* 58 */ 0x58 | CSL, 0x59 | CSL, 0x5A | CSL, 0x5B | CSL,
|
||||
/* 5C */ 0x5C | CSL, 0x5D | CSL, 0x5E | CSL, 0x20 | CSL,
|
||||
|
||||
/* 60 */ 0x04 | CSL, 0xB0 | CSL, 0x09 | CSH, 0x0C | CSH,
|
||||
/* 64 */ 0x0D | CSH, 0x0A | CSH, 0xF8 | CSL, 0xF1 | CSL,
|
||||
/* 68 */ 0x00 | CSH, 0x0B | CSH, 0xD9 | CSL, 0xBF | CSL,
|
||||
/* 6C */ 0xDA | CSL, 0xC0 | CSL, 0xC5 | CSL, 0x7D | CSH,
|
||||
|
||||
/* 70 */ 0x7C | CSH, 0x7B | CSH, 0x7A | CSH, 0x79 | CSH,
|
||||
/* 74 */ 0xC3 | CSL, 0xB4 | CSL, 0xC1 | CSL, 0xC2 | CSL,
|
||||
/* 78 */ 0xB3 | CSL, 0xF3 | CSL, 0xF2 | CSL, 0xE3 | CSL,
|
||||
/* 7C */ 0x78 | CSH, 0x9C | CSL, 0x99 | CSH, 0x20 | CSL
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* DEC Technical Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSE_TECHNICAL
|
||||
u_short cse_technical[CSSIZE] = {
|
||||
/* 20 */ 0x20 | CSL, 0x65 | CSH, 0xDA | CSL, 0xC4 | CSL,
|
||||
/* 24 */ 0xF4 | CSL, 0xF5 | CSL, 0xB3 | CSL, 0xDA | CSL,
|
||||
/* 28 */ 0xC0 | CSL, 0xBF | CSL, 0xD9 | CSL, 0x61 | CSH,
|
||||
/* 2C */ 0x62 | CSH, 0x63 | CSH, 0x64 | CSH, 0x5F | CSH,
|
||||
|
||||
/* 30 */ 0x60 | CSH, 0x5E | CSH, 0x5D | CSH, 0x5C | CSH,
|
||||
/* 34 */ 0x5B | CSH, 0xAA | CSL, 0xA9 | CSL, 0x3E | CSL,
|
||||
/* 38 */ 0x9F | CSH, 0x9F | CSH, 0x9F | CSH, 0x9F | CSH,
|
||||
/* 3C */ 0xF3 | CSL, 0x78 | CSH, 0xF2 | CSL, 0x5A | CSH,
|
||||
|
||||
/* 40 */ 0x59 | CSH, 0x58 | CSH, 0xEC | CSL, 0xF6 | CSL,
|
||||
/* 44 */ 0x57 | CSH, 0x56 | CSH, 0xE8 | CSL, 0xE2 | CSL,
|
||||
/* 48 */ 0x77 | CSH, 0x55 | CSH, 0x54 | CSH, 0x6E | CSH,
|
||||
/* 4C */ 0x53 | CSH, 0x52 | CSH, 0x51 | CSH, 0xF0 | CSL,
|
||||
|
||||
/* 50 */ 0x50 | CSH, 0x4F | CSH, 0x9F | CSH, 0xE4 | CSL,
|
||||
/* 54 */ 0x9F | CSH, 0x9F | CSH, 0xFB | CSL, 0xEA | CSL,
|
||||
/* 58 */ 0x4E | CSH, 0x4D | CSH, 0x4C | CSH, 0x4B | CSH,
|
||||
/* 5C */ 0xEF | CSL, 0x4A | CSH, 0x49 | CSH, 0x48 | CSH,
|
||||
|
||||
/* 60 */ 0xAA | CSL, 0xE0 | CSL, 0xE1 | CSL, 0x47 | CSH,
|
||||
/* 64 */ 0xEB | CSL, 0x46 | CSH, 0xED | CSL, 0x59 | CSL,
|
||||
/* 68 */ 0x45 | CSH, 0x44 | CSH, 0xE9 | CSL, 0x9E | CSH,
|
||||
/* 6C */ 0x43 | CSH, 0x9F | CSH, 0x76 | CSL, 0x42 | CSH,
|
||||
|
||||
/* 70 */ 0xE3 | CSL, 0x41 | CSH, 0x40 | CSH, 0xE5 | CSL,
|
||||
/* 74 */ 0xE7 | CSL, 0x9F | CSH, 0x9F | CSL, 0x66 | CSH,
|
||||
/* 78 */ 0x68 | CSH, 0x7E | CSH, 0x9A | CSH, 0x1B | CSL,
|
||||
/* 7C */ 0x18 | CSL, 0x1A | CSL, 0x19 | CSL, 0x20 | CSL
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* ISO Latin-1 Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSE_ISOLATIN
|
||||
u_short cse_isolatin[CSSIZE] = {
|
||||
/* 20 */ 0x20 | CSL, 0xAD | CSL, 0x9B | CSL, 0x9C | CSL,
|
||||
/* 24 */ 0x9D | CSH, 0x9D | CSL, 0x7C | CSL, 0x15 | CSL,
|
||||
/* 28 */ 0x77 | CSH, 0x9C | CSH, 0xA6 | CSL, 0xAE | CSL,
|
||||
/* 2C */ 0x76 | CSH, 0x75 | CSH, 0x74 | CSH, 0x73 | CSH,
|
||||
|
||||
/* 30 */ 0xF8 | CSL, 0xF1 | CSL, 0xFD | CSL, 0x9B | CSH,
|
||||
/* 34 */ 0x72 | CSH, 0xE6 | CSL, 0x14 | CSL, 0x99 | CSH,
|
||||
/* 38 */ 0x71 | CSH, 0x98 | CSH, 0xA7 | CSL, 0xAF | CSL,
|
||||
/* 3C */ 0xAC | CSL, 0xAB | CSL, 0x70 | CSH, 0xA8 | CSL,
|
||||
|
||||
/* 40 */ 0x97 | CSH, 0x96 | CSH, 0x95 | CSH, 0x94 | CSH,
|
||||
/* 44 */ 0x8E | CSL, 0x8F | CSL, 0x92 | CSL, 0x80 | CSL,
|
||||
/* 48 */ 0x93 | CSH, 0x90 | CSL, 0x92 | CSH, 0x91 | CSH,
|
||||
/* 4C */ 0x90 | CSH, 0x8F | CSH, 0x8E | CSH, 0x8D | CSH,
|
||||
|
||||
/* 50 */ 0x6F | CSH, 0xA5 | CSL, 0x8C | CSH, 0x8B | CSH,
|
||||
/* 54 */ 0x8A | CSH, 0x89 | CSH, 0x99 | CSL, 0x6E | CSH,
|
||||
/* 58 */ 0x87 | CSH, 0x86 | CSH, 0x85 | CSH, 0x84 | CSH,
|
||||
/* 5C */ 0x9A | CSL, 0x6D | CSH, 0x6C | CSH, 0xE1 | CSL,
|
||||
|
||||
/* 60 */ 0x85 | CSL, 0xA0 | CSL, 0x83 | CSL, 0x82 | CSH,
|
||||
/* 64 */ 0x84 | CSL, 0x86 | CSL, 0x91 | CSL, 0x87 | CSL,
|
||||
/* 68 */ 0x8A | CSL, 0x82 | CSL, 0x88 | CSL, 0x89 | CSL,
|
||||
/* 6C */ 0x8D | CSL, 0xA1 | CSL, 0x8C | CSL, 0x8B | CSL,
|
||||
|
||||
/* 70 */ 0x6B | CSH, 0xA4 | CSL, 0x95 | CSL, 0xA2 | CSL,
|
||||
/* 74 */ 0x93 | CSL, 0x81 | CSH, 0x94 | CSL, 0xF6 | CSL,
|
||||
/* 78 */ 0x7F | CSH, 0x97 | CSL, 0xA3 | CSL, 0x96 | CSL,
|
||||
/* 7C */ 0x81 | CSL, 0x69 | CSH, 0x6A | CSH, 0x98 | CSL
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
* Downloadable Characterset
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define HAVECSE_DOWNLOADABLE
|
||||
u_short cse_downloadable[CSSIZE] = {
|
||||
/* 20 */ 0xA0 | CSH, 0xA1 | CSH, 0xA2 | CSH, 0xA3 | CSH,
|
||||
/* 24 */ 0xA4 | CSH, 0xA5 | CSH, 0xA6 | CSH, 0xA7 | CSH,
|
||||
/* 28 */ 0xA8 | CSH, 0xA9 | CSH, 0xAA | CSH, 0xAB | CSH,
|
||||
/* 2C */ 0xAC | CSH, 0xAD | CSH, 0xAE | CSH, 0xAF | CSH,
|
||||
|
||||
/* 30 */ 0xB0 | CSH, 0xB1 | CSH, 0xB2 | CSH, 0xB3 | CSH,
|
||||
/* 34 */ 0xB4 | CSH, 0xB5 | CSH, 0xB6 | CSH, 0xB7 | CSH,
|
||||
/* 38 */ 0xB8 | CSH, 0xB9 | CSH, 0xBA | CSH, 0xBB | CSH,
|
||||
/* 3C */ 0xBC | CSH, 0xBD | CSH, 0xBE | CSH, 0xBF | CSH,
|
||||
|
||||
/* 40 */ 0xC0 | CSH, 0xC1 | CSH, 0xC2 | CSH, 0xC3 | CSH,
|
||||
/* 44 */ 0xC4 | CSH, 0xC5 | CSH, 0xC6 | CSH, 0xC7 | CSH,
|
||||
/* 48 */ 0xC8 | CSH, 0xC9 | CSH, 0xCA | CSH, 0xCB | CSH,
|
||||
/* 4C */ 0xCC | CSH, 0xCD | CSH, 0xCE | CSH, 0xCF | CSH,
|
||||
|
||||
/* 50 */ 0xD0 | CSH, 0xD1 | CSH, 0xD2 | CSH, 0xD3 | CSH,
|
||||
/* 54 */ 0xD4 | CSH, 0xD5 | CSH, 0xD6 | CSH, 0xD7 | CSH,
|
||||
/* 58 */ 0xD8 | CSH, 0xD9 | CSH, 0xDA | CSH, 0xDB | CSH,
|
||||
/* 5C */ 0xDC | CSH, 0xDD | CSH, 0xDE | CSH, 0xDF | CSH,
|
||||
|
||||
/* 60 */ 0xE0 | CSH, 0xE1 | CSH, 0xE2 | CSH, 0xE3 | CSH,
|
||||
/* 64 */ 0xE4 | CSH, 0xE5 | CSH, 0xE6 | CSH, 0xE7 | CSH,
|
||||
/* 68 */ 0xE8 | CSH, 0xE9 | CSH, 0xEA | CSH, 0xEB | CSH,
|
||||
/* 6C */ 0xEC | CSH, 0xED | CSH, 0xEE | CSH, 0xEF | CSH,
|
||||
|
||||
/* 70 */ 0xF0 | CSH, 0xF1 | CSH, 0xF2 | CSH, 0xF3 | CSH,
|
||||
/* 74 */ 0xF4 | CSH, 0xF5 | CSH, 0xF6 | CSH, 0xF7 | CSH,
|
||||
/* 78 */ 0xF8 | CSH, 0xF9 | CSH, 0xFA | CSH, 0xFB | CSH,
|
||||
/* 7C */ 0xFC | CSH, 0xFD | CSH, 0xFE | CSH, 0xFF | CSH,
|
||||
};
|
||||
|
||||
/* ------------------------- E O F ------------------------------------------*/
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user