summaryrefslogtreecommitdiff
path: root/sys/arch/i386/isa/pcvt/pcvt_conf.h
blob: f63b751ef0f80b92c96dd5da87500e51e304659d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
/*	$OpenBSD: pcvt_conf.h,v 1.13 1998/06/30 20:51:07 millert Exp $	*/

/*
 * 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 keyboard controllers 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 1 /* 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_BLUE		/* 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 ----------------------------------*/