import pcvt 3.32
This commit is contained in:
parent
a9f17da5a4
commit
652374b8ca
53
sys/arch/i386/isa/pcvt/Util/demo/chardemo.vt.gz.uu
Normal file
53
sys/arch/i386/isa/pcvt/Util/demo/chardemo.vt.gz.uu
Normal file
@ -0,0 +1,53 @@
|
||||
begin 664 chardemo.vt.gz
|
||||
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
|
||||
64(2@"$$1?CT_'&^W^B\8)0@*\AL``,4&
|
||||
`
|
||||
end
|
15
sys/arch/i386/isa/pcvt/Util/demo/colors.vt.gz.uu
Normal file
15
sys/arch/i386/isa/pcvt/Util/demo/colors.vt.gz.uu
Normal file
@ -0,0 +1,15 @@
|
||||
begin 664 colors.vt.gz
|
||||
M'XL("):V^BX"`V-O;&]R<RYV=`#MU+UNG$`4!>!^I7T"FGD`Q^+^S)TB2N-8
|
||||
M;B(GA=UMM;*1C;(8":\E/W[,G(.SX0E2+,WE(#%\@N$T._.O7H;MYO;NR_6O
|
||||
MN_2CFX;^F.RR3??=^S'=CH]=^CX>QNGU(ME[^I9NQJE[FL:WE\>+Y/.%J_W#
|
||||
M;US8;K:;A*/963LO_'&+MVF^TP5#,0S#,3)&8)24MIMEA63MLEP[I#EYBRB,
|
||||
M@JB,BFB,ANB,CI@9,V(PQN=3:RRG#*D,(4/`$#($#"%#P!`R!`PA0\`0,@0,
|
||||
M(4/`$#*DOH_T<YR&_>'4H]6C]"@\2H_"H_0H/$J/PJ/T*#Q*C\*C]"@\2H_"
|
||||
M\W<;G)JLFHPF@\EH,IB,)H/):#*8C":#R6@RF(PF@\EHLM6G\LIP,AP,)\/!
|
||||
M<#(<#"?#P7`R'`PGP\%P,AP,)\-7C%P9F8P,1B8C@Y')R&!D,C(8F8P,1B8C
|
||||
M@Y')R&!D,O**$9419`0804:`$60$&$%&@!%D!!A!1H`19`0804:L&*4R"AD%
|
||||
MC$)&`:.04<`H9!0P"AD%C$)&`:.04<`H9)1_&/?/_6M:_BZ<UHV]3\MV&MX.
|
||||
MQW[YJ`]S\Z7EW1[ZEVY9Z++YK,YF)\.YKU9]=37U3\_'<U^=^^K<5_]57S6[
|
||||
-]J.M_@#AP6KE^0D``&Y9
|
||||
`
|
||||
end
|
90
sys/arch/i386/isa/pcvt/Util/demo/cowscene.vt.gz.uu
Normal file
90
sys/arch/i386/isa/pcvt/Util/demo/cowscene.vt.gz.uu
Normal file
@ -0,0 +1,90 @@
|
||||
begin 644 cowscene.vt.gz
|
||||
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
|
||||
>.?"2C#BW34UWQQ.;K+_C\C-JOWWU+THZ&OFDJ0``
|
||||
`
|
||||
end
|
193
sys/arch/i386/isa/pcvt/Util/demo/outerlimit.vt.gz.uu
Normal file
193
sys/arch/i386/isa/pcvt/Util/demo/outerlimit.vt.gz.uu
Normal file
@ -0,0 +1,193 @@
|
||||
begin 644 outerlimit.vt.gz
|
||||
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
|
||||
#^0``
|
||||
`
|
||||
end
|
111
sys/arch/i386/isa/pcvt/Util/demo/playvt.c
Normal file
111
sys/arch/i386/isa/pcvt/Util/demo/playvt.c
Normal file
@ -0,0 +1,111 @@
|
||||
/*
|
||||
* Copyright (c) 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 AUTHOR ``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 AUTHOR 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.
|
||||
*
|
||||
*/
|
||||
|
||||
static char *id =
|
||||
"@(#)playvt.c, 1.00, Last Edit-Date: [Sun Jan 1 18:32:22 1995]";
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
*
|
||||
* history:
|
||||
*
|
||||
* -hm want to see my xmas greeting ... :-)
|
||||
*
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
main(argc,argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
extern int optind;
|
||||
extern int opterr;
|
||||
extern char *optarg;
|
||||
|
||||
int c;
|
||||
FILE *fp = stdin;
|
||||
volatile int i;
|
||||
int delay = 0;
|
||||
int fflag = -1;
|
||||
char *filename;
|
||||
|
||||
while( (c = getopt(argc, argv, "d:f:")) != EOF)
|
||||
{
|
||||
switch(c)
|
||||
{
|
||||
case 'd':
|
||||
delay = atoi(optarg);
|
||||
break;
|
||||
|
||||
case 'f':
|
||||
filename = optarg;
|
||||
fflag = 1;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(fflag == 1)
|
||||
{
|
||||
if((fp = fopen(filename, "r")) == NULL)
|
||||
{
|
||||
char buffer[80];
|
||||
strcpy(buffer,"ERROR opening file ");
|
||||
strcat(buffer,filename);
|
||||
perror(buffer);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
while((c = getc(fp)) != EOF)
|
||||
{
|
||||
putchar(c);
|
||||
for(i = delay; i > 0; i--)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
usage()
|
||||
{
|
||||
fprintf(stderr,"\nplayvt - play a VT animation with programmable delay\n");
|
||||
fprintf(stderr,"usage: playvt -f [filename] -d [delay]\n");
|
||||
fprintf(stderr," -f <filename> file containing the animation\n");
|
||||
fprintf(stderr," -d <delay> delay between characters\n");
|
||||
exit(1);
|
||||
}
|
||||
|
11
sys/arch/i386/isa/pcvt/Util/demo/sgr.vt.gz.uu
Normal file
11
sys/arch/i386/isa/pcvt/Util/demo/sgr.vt.gz.uu
Normal file
@ -0,0 +1,11 @@
|
||||
begin 664 sgr.vt.gz
|
||||
M'XL("):V^BX"`W-G<BYV=`"%44U/@T`0/2]_H9<Y:AH;MMT5#?&`L*D8^Q&H
|
||||
MIYYJNU0BA0:HO]]AV18L&"=D=LE[,^\]&*Q-VXP&ZU=CL#8/)!1OPEW!-'"6
|
||||
M+[X+@9A[_LI?S,$3L\4\7`6.>KOQA!M.`W@"$;JP+&Q\1B/L<+@U#"**[>8H
|
||||
M"0ED<4K*.-W#/M\</^,MY#+=Q66<I0:Y4T7TV5NU)Y3`0UV)DR3@E&4>?YQ*
|
||||
M64`610V'(H<BAP(\9\FN`1@"#($QP'NZDWD2I[)!.:(<T0F.(?*%=AO00M!"
|
||||
MD`$$\EOF16N0VM7BJA->2PY[UE.;*Q9*W&M65X;:EB*AE*5)'3FF%E6=/+2"
|
||||
M]&QC:EO5R6.;V5G)%;'JA)J7],.^I#J%DJ?T*FUO(J8S*1]T?#W2(\+U1&UH
|
||||
F\OMC=0<L[<K2KMCY%_UKC%^LU5+\KSQGT6K:P/H!L`MLDRX#``#2
|
||||
`
|
||||
end
|
350
sys/arch/i386/isa/pcvt/Util/demo/twzone.vt.gz.uu
Normal file
350
sys/arch/i386/isa/pcvt/Util/demo/twzone.vt.gz.uu
Normal file
@ -0,0 +1,350 @@
|
||||
begin 644 twzone.vt.gz
|
||||
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
|
||||
M8AH$_$J#8]9^WS(EJQ,&8[G0-:^)=<"T"7C)NLQ2�@(*`AB1&JTL1,S`$Z
|
||||
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
|
||||
MF]0D'Ɖ-4U8F*-5[#.5>#26.NE`YDA)"5J_+[`%-B@*.@!RA4A2BK*AF'
|
||||
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
|
||||
0]]ZO?G=^^'_[0&'EA?,``'E+
|
||||
`
|
||||
end
|
110
sys/arch/i386/isa/pcvt/Util/demo/xmas.vt.gz.uu
Normal file
110
sys/arch/i386/isa/pcvt/Util/demo/xmas.vt.gz.uu
Normal file
@ -0,0 +1,110 @@
|
||||
begin 644 xmas.vt.gz
|
||||
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
|
||||
LK:O,4Y_?D[\>]SORP^WQS>WV]N?PK-K59<Q^3M6?Q'9Q/?LG-?=D49*R``"?
|
||||
`
|
||||
end
|
22
sys/arch/i386/isa/pcvt/Util/kbdio/Makefile
Normal file
22
sys/arch/i386/isa/pcvt/Util/kbdio/Makefile
Normal file
@ -0,0 +1,22 @@
|
||||
PROG= kbdio
|
||||
SRCS= kbdio.y lex.l
|
||||
|
||||
#YACC= bison
|
||||
#YFLAGS+= -yd # Bison only
|
||||
|
||||
YFLAGS+= -v # verbose
|
||||
LFLAGS+= -I
|
||||
|
||||
LDADD= -lm -ly -ll
|
||||
|
||||
NOMAN=
|
||||
NOSHARED= no shared linkage
|
||||
|
||||
CFLAGS+= -I ${.CURDIR}/obj -I ${.CURDIR} #-g
|
||||
|
||||
CLEANFILES+= y.tab.h
|
||||
CLEANFILES+= y.output # comment file from bison
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
||||
lex.o: y.tab.h lex.l
|
344
sys/arch/i386/isa/pcvt/Util/kbdio/kbdio.y
Normal file
344
sys/arch/i386/isa/pcvt/Util/kbdio/kbdio.y
Normal file
@ -0,0 +1,344 @@
|
||||
/* Hello emacs, this should be edited in -*- Fundamental -*- mode */
|
||||
%{
|
||||
/*
|
||||
* Copyright (c) 1994,1995 Joerg Wunsch
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* This program is free software.
|
||||
*
|
||||
* 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 Joerg Wunsch
|
||||
* 4. The name of the developer may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``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 DEVELOPERS 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.
|
||||
*/
|
||||
|
||||
#ident "$Header: /cvsroot/src/sys/arch/i386/isa/pcvt/Util/kbdio/Attic/kbdio.y,v 1.1.1.1 1995/10/07 21:11:26 jtc Exp $"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <machine/cpufunc.h>
|
||||
#include <machine/pcvt_ioctl.h>
|
||||
|
||||
#ifdef __NetBSD__
|
||||
#include <machine/pio.h>
|
||||
#endif
|
||||
|
||||
#define KBD_DELAY \
|
||||
{ u_char x = inb(0x84); } \
|
||||
{ u_char x = inb(0x84); } \
|
||||
{ u_char x = inb(0x84); } \
|
||||
{ u_char x = inb(0x84); } \
|
||||
{ u_char x = inb(0x84); } \
|
||||
{ u_char x = inb(0x84); }
|
||||
|
||||
#define YYDEBUG 1
|
||||
|
||||
void yyerror(const char *msg);
|
||||
|
||||
static void help(int), status(void), data(int), kbd(int), cmdbyte(int),
|
||||
kbc(int), whatMCA(void);
|
||||
static int kbget(void);
|
||||
%}
|
||||
|
||||
%union {
|
||||
int num;
|
||||
}
|
||||
|
||||
%token NEWLINE
|
||||
%token ALL CMD DATA DEFAULTS ECHOC ENABLE EXPR HELP ID LED
|
||||
%token MAKE ONLY RELEASE RESEND RESET SCAN STATUS TYPEMATIC
|
||||
%token WHAT
|
||||
%token <num> NUM
|
||||
|
||||
%type <num> expr opr
|
||||
|
||||
%%
|
||||
|
||||
interpret: lines ;
|
||||
|
||||
lines: line
|
||||
| lines line
|
||||
;
|
||||
|
||||
line: statements NEWLINE
|
||||
| NEWLINE
|
||||
| error NEWLINE { fprintf(stderr, "bing!\n"); }
|
||||
;
|
||||
|
||||
statements: statement
|
||||
| statements ';' statement
|
||||
;
|
||||
|
||||
statement: '?' { help(0); }
|
||||
| HELP { help(0); }
|
||||
| HELP EXPR { help(1); }
|
||||
| STATUS '?' { status(); }
|
||||
| WHAT '?' { whatMCA(); }
|
||||
| DATA '?' { data(kbget()); }
|
||||
| LED '=' NUM { kbd(0xed); kbd($3); }
|
||||
| ECHOC { kbd(0xee); kbget(); }
|
||||
| SCAN '=' NUM { kbd(0xf0); kbd($3);
|
||||
if($3 == 0) data(kbget()); }
|
||||
| SCAN '?' { kbd(0xf0); kbd(0); data(kbget()); }
|
||||
| ID '?' { kbd(0xf2); data(kbget());
|
||||
data(kbget()); }
|
||||
| TYPEMATIC '=' NUM ',' NUM
|
||||
{ kbd(0xf3);
|
||||
if($3 > 1000) $3 = 1000;
|
||||
if($5 > 30) $5 = 30;
|
||||
if($5 < 2) $5 = 2;
|
||||
kbd(
|
||||
(int)
|
||||
(8.0 * log(30.0 / (double)$5)
|
||||
/ log(2))
|
||||
| ((($3 / 250) - 1) * 32)
|
||||
);
|
||||
}
|
||||
| ENABLE { kbd(0xf4); }
|
||||
| DEFAULTS { kbd(0xf6); }
|
||||
| ALL TYPEMATIC { kbd(0xf7); }
|
||||
| ALL MAKE RELEASE { kbd(0xf8); }
|
||||
| ALL MAKE ONLY { kbd(0xf9); }
|
||||
| ALL TYPEMATIC MAKE RELEASE
|
||||
{ kbd(0xfa); }
|
||||
| NUM TYPEMATIC { kbd(0xfb); kbd($1); }
|
||||
| NUM MAKE RELEASE { kbd(0xfc); kbd($1); }
|
||||
| NUM MAKE ONLY { kbd(0xfd); kbd($1); }
|
||||
| RESEND { kbd(0xfe); }
|
||||
| RESET { kbd(0xff); }
|
||||
| CMD '?' { kbc(0x20); cmdbyte(kbget()); }
|
||||
| CMD '=' expr { kbc(0x60); kbd($3); }
|
||||
| /* lambda */
|
||||
;
|
||||
|
||||
expr: opr { $$ = $1; }
|
||||
| expr '+' opr { $$ = $1 | $3; }
|
||||
| expr '-' opr { $$ = $1 & ~($3); }
|
||||
;
|
||||
|
||||
opr: NUM { $$ = $1; }
|
||||
| CMD { kbc(0x20); $$ = kbget(); }
|
||||
;
|
||||
|
||||
%%
|
||||
|
||||
static void
|
||||
help(int topic) {
|
||||
switch(topic) {
|
||||
case 0:
|
||||
printf(
|
||||
"Input consists of lines, containing one or more semicolon-separated\n"
|
||||
"statements. Numbers are implicitly hexadecimal, append a dot for\n"
|
||||
"decimal numbers. Valid statements include:\n"
|
||||
"help [expr]; give help [to expression syntax]\n"
|
||||
"status ? interpret kbd ctrl status byte\n"
|
||||
"what ? check for MCA type 1 or 2 motherboard controller\n"
|
||||
"data ? get one byte of data\n"
|
||||
"led = NUM set kbd LEDs\n"
|
||||
"echo send kbd ECHO command\n"
|
||||
"scan = NUM; scan ? set scan code set; return current set\n"
|
||||
"id ? get two id bytes\n"
|
||||
"typematic=delay,rate set typematic delay(ms)&rate(1/s)\n"
|
||||
"enable; defaults enable kbd; back to defaults\n"
|
||||
"all typematic make all keys typematic\n"
|
||||
"all make release make all keys sending make/release\n"
|
||||
"all make only make all keys sending make only\n"
|
||||
"all typematic make release make all keys typematic & make/release\n"
|
||||
"NUM typematic make specific key typematic\n"
|
||||
"NUM make release make specific key sending make/release\n"
|
||||
"NUM make only make specific key sending make only\n"
|
||||
"resend; reset resend last byte from kbd; reset kbd\n"
|
||||
"cmd ? fetch kbd ctrl command byte\n"
|
||||
"cmd = expr set kbd ctrl command byte\n");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
printf(
|
||||
"Expressions can either consist of a number, possibly followed\n"
|
||||
"by a + or - sign and bit values in numeric or symbolic form.\n"
|
||||
"Symbolic bit values are:\n"
|
||||
"scconv ignpar clklow ovrinh test irq\n"
|
||||
"\n");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
fprintf(stderr, "usage: kbdio [-d] [-f devname]\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
status(void) {
|
||||
int c = inb(0x64);
|
||||
if(c&0x80) printf("parity error | ");
|
||||
if(c&0x40) printf("rx timeout | ");
|
||||
if(c&0x20) printf("tx timeout | ");
|
||||
if(c&0x10) printf("kbd released ");
|
||||
else printf("kbd locked ");
|
||||
if(c&0x08) printf("| cmd last sent ");
|
||||
else printf("| data last sent ");
|
||||
if(c&0x04) printf("| power-on ");
|
||||
else printf("| test ok ");
|
||||
if(c&0x02) printf("| ctrl write busy ");
|
||||
else printf("| ctrl write ok ");
|
||||
if(c&0x01) printf("| ctrl read ok\n");
|
||||
else printf("| ctrl read empty\n");
|
||||
}
|
||||
|
||||
/* see: Frank van Gilluwe, "The Undocumented PC", Addison Wesley 1994, pp 273*/
|
||||
|
||||
static void
|
||||
whatMCA(void) {
|
||||
int new, sav;
|
||||
kbc(0x20); /* get command byte */
|
||||
sav = kbget(); /* sav = command byte */
|
||||
kbc(0x60); /* set command byte */
|
||||
kbd(sav | 0x40); /* set keyboard xlate bit */
|
||||
kbc(0x20); /* get keyboard command */
|
||||
new = kbget(); /* new = command byte */
|
||||
kbc(0x60); /* set command byte */
|
||||
kbd(sav); /* restore command byte */
|
||||
if(new & 0x40)
|
||||
printf("Hmm - looks like MCA type 1 motherboard controller\n");
|
||||
else
|
||||
printf("Hmm - looks like MCA type 2 motherboard controller\n");
|
||||
}
|
||||
|
||||
static void
|
||||
kbd(int d) {
|
||||
int i = 100000;
|
||||
while(i && (inb(0x64) & 2)) i--;
|
||||
if(i == 0) { printf("kbd write: timed out\n"); return; }
|
||||
outb(0x60, d);
|
||||
}
|
||||
|
||||
static void
|
||||
kbc(int d) {
|
||||
int i = 100000;
|
||||
while(i && (inb(0x64) & 2)) i--;
|
||||
if(i == 0) { printf("ctrl write: timed out\n"); return; }
|
||||
outb(0x64, d);
|
||||
}
|
||||
|
||||
static int
|
||||
kbget(void) {
|
||||
int i, c;
|
||||
for(;;) {
|
||||
i = 10000;
|
||||
while(i && (inb(0x64) & 1) == 0) i--;
|
||||
if(i == 0) { printf("data read: timed out\n"); return -1; }
|
||||
KBD_DELAY
|
||||
c = (unsigned char)inb(0x60);
|
||||
switch(c) {
|
||||
case 0: case 0xff:
|
||||
printf("got kbd overrun\n"); break;
|
||||
case 0xaa:
|
||||
printf("got self-test OK\n"); break;
|
||||
case 0xee:
|
||||
printf("got ECHO byte\n"); break;
|
||||
case 0xfa:
|
||||
printf("got ACK\n"); break;
|
||||
case 0xfc:
|
||||
printf("got self-test FAIL\n"); break;
|
||||
case 0xfd:
|
||||
printf("got internal failure\n"); break;
|
||||
case 0xfe:
|
||||
printf("got RESEND request\n"); break;
|
||||
default:
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
done:
|
||||
return c;
|
||||
}
|
||||
|
||||
static void
|
||||
cmdbyte(int d) {
|
||||
if(d&0x40) printf("scan conv ");
|
||||
else printf("pass thru ");
|
||||
if(d&0x20) printf("| ign parity ");
|
||||
else printf("| check parity ");
|
||||
if(d&0x10) printf("| kbd clk low ");
|
||||
else printf("| enable kbd ");
|
||||
if(d&0x08) printf("| override kbd inh ");
|
||||
if(d&0x04) printf("| test ok ");
|
||||
else printf("| power-on ");
|
||||
if(d&0x01) printf("| irq 1 enable\n");
|
||||
else printf("| no irq\n");
|
||||
}
|
||||
|
||||
static void
|
||||
data(int d) {
|
||||
if(d < 0) return;
|
||||
printf("data: 0x%02x\n", d);
|
||||
}
|
||||
|
||||
void yyerror(const char *msg) {
|
||||
fprintf(stderr, "yyerror: %s\n", msg);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
int fd, c;
|
||||
const char *devname = "/dev/console";
|
||||
|
||||
while((c = getopt(argc, argv, "df:")) != EOF)
|
||||
switch(c) {
|
||||
case 'd':
|
||||
yydebug = 1;
|
||||
break;
|
||||
|
||||
case 'f':
|
||||
devname = optarg;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
default:
|
||||
help(2);
|
||||
return 2;
|
||||
}
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
if(argc > 0) {
|
||||
help(2);
|
||||
return 2;
|
||||
}
|
||||
|
||||
if((fd = open(devname, O_RDONLY)) < 0) {
|
||||
perror("open(kbd)");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(ioctl(fd, KDENABIO, 0) < 0) {
|
||||
perror("ioctl(KDENABIO)");
|
||||
return 1;
|
||||
}
|
||||
yyparse();
|
||||
|
||||
(void)ioctl(fd, KDDISABIO, 0);
|
||||
return 0;
|
||||
}
|
||||
|
87
sys/arch/i386/isa/pcvt/Util/kbdio/lex.l
Normal file
87
sys/arch/i386/isa/pcvt/Util/kbdio/lex.l
Normal file
@ -0,0 +1,87 @@
|
||||
%{
|
||||
/*
|
||||
* Copyright (c) 1994,1995 Joerg Wunsch
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* This program is free software.
|
||||
*
|
||||
* 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 Joerg Wunsch
|
||||
* 4. The name of the developer may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``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 DEVELOPERS 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.
|
||||
*/
|
||||
|
||||
#ident "$Header: /cvsroot/src/sys/arch/i386/isa/pcvt/Util/kbdio/Attic/lex.l,v 1.1.1.1 1995/10/07 21:11:26 jtc Exp $"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "y.tab.h"
|
||||
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
%}
|
||||
|
||||
D [0-9a-fA-F]
|
||||
|
||||
%%
|
||||
|
||||
all { return ALL; }
|
||||
cmd { return CMD; }
|
||||
data { return DATA; }
|
||||
defaults { return DEFAULTS; }
|
||||
echo { return ECHOC; }
|
||||
enable { return ENABLE; }
|
||||
expr { return EXPR; }
|
||||
help { return HELP; }
|
||||
id { return ID; }
|
||||
led { return LED; }
|
||||
make { return MAKE; }
|
||||
only { return ONLY; }
|
||||
release { return RELEASE; }
|
||||
resend { return RESEND; }
|
||||
reset { return RESET; }
|
||||
scan { return SCAN; }
|
||||
status { return STATUS; }
|
||||
typematic { return TYPEMATIC; }
|
||||
what { return WHAT; }
|
||||
|
||||
/* numeric values */
|
||||
clklow { yylval.num = 0x10; return NUM; }
|
||||
ignpar { yylval.num = 0x20; return NUM; }
|
||||
irq { yylval.num = 0x01; return NUM; }
|
||||
ovrinh { yylval.num = 0x08; return NUM; }
|
||||
scconv { yylval.num = 0x40; return NUM; }
|
||||
test { yylval.num = 0x04; return NUM; }
|
||||
|
||||
{D}({D}*)\. { sscanf(yytext, "%d", &yylval.num); return NUM; }
|
||||
|
||||
{D}({D}*) { sscanf(yytext, "%x", &yylval.num); return NUM; }
|
||||
|
||||
[ \t] { /* ignore */ }
|
||||
|
||||
\n { return NEWLINE; }
|
||||
|
||||
. { return yytext[0]; }
|
4
sys/arch/i386/isa/pcvt/Util/pcvtdoc/Makefile
Normal file
4
sys/arch/i386/isa/pcvt/Util/pcvtdoc/Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
MAN4= pcvt.${MAN4EXT}
|
||||
MANSUBDIR= /i386
|
||||
|
||||
.include <bsd.prog.mk>
|
906
sys/arch/i386/isa/pcvt/Util/pcvtdoc/pcvt.4
Normal file
906
sys/arch/i386/isa/pcvt/Util/pcvtdoc/pcvt.4
Normal file
@ -0,0 +1,906 @@
|
||||
.\"
|
||||
.\" 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.30, Last Edit-Date: [Fri Jun 30 20:15:30 1995]
|
||||
.\"
|
||||
.\" 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
|
||||
.Sh NAME
|
||||
.Nm pcvt
|
||||
.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
|
||||
device
|
||||
.Em vt0
|
||||
at
|
||||
.Em isa?
|
||||
port
|
||||
.Dq Em IO_KBD
|
||||
.Em tty
|
||||
irq
|
||||
.Em 1
|
||||
vector
|
||||
.Em pcrint
|
||||
.Sh DESCRIPTION
|
||||
.Ss Overview
|
||||
The
|
||||
.Nm pcvt
|
||||
driver provides a virtual screen system with several additional
|
||||
features not available in
|
||||
.Xr pc 4
|
||||
standard console device driver. 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
|
||||
.Em NetBSD/i386 Pq release 0.9 or higher,
|
||||
and
|
||||
.Em FreeBSD Pq 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
|
||||
.Em FreeBSD
|
||||
and
|
||||
.Em NetBSD
|
||||
operating systems, it is necessary to set this option to the operating
|
||||
system's version number.
|
||||
For
|
||||
.Em 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 FreeBSD) 100 for NetBSD 1.0 and 999 for NetBSD-current.
|
||||
E.\& g., if you are running the NetBSD 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 */
|
||||
|
||||
/* 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
|
||||
.Bl -tag -width 30n -offset indent
|
||||
.It Written by :
|
||||
Hellmuth Michaelis
|
||||
.Pq hm@hcshh.hcs.de
|
||||
.It With much help from :
|
||||
Brian Dunford-Shore
|
||||
.Pq brian@morpheus.wustl.edu
|
||||
.br
|
||||
.if n Joerg Wunsch
|
||||
.if t J\(:org Wunsch
|
||||
.Pq joerg_wunsch@uriah.sax.de
|
||||
.br
|
||||
.It This driver is based on several people's previous
|
||||
.It work, notably by :
|
||||
William Jolitz' and Don Ahn's
|
||||
.Xr pc 4
|
||||
implementation
|
||||
.Pq ljolitz@cardio.ucsf.edu
|
||||
.br
|
||||
Holger Veit
|
||||
.Pq veit@du9ds3.uni-duisburg.de, now veit@first.gmd.de
|
||||
.Sh SEE ALSO
|
||||
.Xr pc 4 ,
|
||||
.Xr config 8 ,
|
||||
.Xr intro 2 ,
|
||||
.Xr ioctl 2 .
|
||||
.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.
|
Loading…
Reference in New Issue
Block a user