386 lines
18 KiB
C
386 lines
18 KiB
C
/*
|
|
* 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.32, Last Edit-Date: [Tue Oct 3 11:19:47 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
|
|
* -hm ---------------- Release 3.30 -----------------------
|
|
* -hm patch from Ulf Kieber to support changeable kernel msg colors
|
|
* -hm ---------------- Release 3.32 -----------------------
|
|
*
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
/*---------------------------------------------------------------------------
|
|
* 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_SYSBEEPF=x"
|
|
*
|
|
* which are always numeric!
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
/* ---------------- 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_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_MDAFASTSCROLL /* ---------- DEFAULT: OFF ------------ */
|
|
# define PCVT_MDAFASTSCROLL 0 /* If on, enables code for fast scroll */
|
|
#elif PCVT_MDAFASTSCROLL != 0 /* on MDA/Hercules (see notes for */
|
|
# undef PCVT_MDAFASTSCROLL /* PCVT_NOFASTSCROLL). Works only on */
|
|
# define PCVT_MDAFASTSCROLL 1 /* MDA/Hercules which do support more */
|
|
#endif /* than one page of video memory. */
|
|
|
|
/*---------------------------------------------------------------------------*
|
|
* 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 ----------------------------------*/
|