From 9d6fbd1091067a322e16f0d3ba3b4299055308e9 Mon Sep 17 00:00:00 2001 From: phk Date: Sun, 27 Dec 1998 16:44:24 +0000 Subject: follow up to: Pre 3.0 branch cleanup casualty #4: pcvt --- usr.sbin/pcvt/vgaio/CAUTION | 28 ----- usr.sbin/pcvt/vgaio/Makefile | 38 ------- usr.sbin/pcvt/vgaio/lex.l | 82 -------------- usr.sbin/pcvt/vgaio/vgaio.8 | 143 ------------------------ usr.sbin/pcvt/vgaio/vgaio.h | 60 ----------- usr.sbin/pcvt/vgaio/vgaio.y | 251 ------------------------------------------- 6 files changed, 602 deletions(-) delete mode 100644 usr.sbin/pcvt/vgaio/CAUTION delete mode 100644 usr.sbin/pcvt/vgaio/Makefile delete mode 100644 usr.sbin/pcvt/vgaio/lex.l delete mode 100644 usr.sbin/pcvt/vgaio/vgaio.8 delete mode 100644 usr.sbin/pcvt/vgaio/vgaio.h delete mode 100644 usr.sbin/pcvt/vgaio/vgaio.y (limited to 'usr.sbin/pcvt/vgaio') diff --git a/usr.sbin/pcvt/vgaio/CAUTION b/usr.sbin/pcvt/vgaio/CAUTION deleted file mode 100644 index e1eba06..0000000 --- a/usr.sbin/pcvt/vgaio/CAUTION +++ /dev/null @@ -1,28 +0,0 @@ -CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION -CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION -CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION - - THE USE OF THIS PROGRAM MAY DESTROY YOUR MONITOR !!! - ==================================================== - - IF YOU DON'T KNOW WHAT YOU ARE DOING, STAY AWAY FROM IT !!! - =========================================================== - - 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. - -CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION -CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION -CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION - diff --git a/usr.sbin/pcvt/vgaio/Makefile b/usr.sbin/pcvt/vgaio/Makefile deleted file mode 100644 index b49b7e8..0000000 --- a/usr.sbin/pcvt/vgaio/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -# $Id$ - -.if !exists(${.CURDIR}/../Makefile.inc) -error: - @echo - @echo " You MUST link/copy" - @echo - @echo " ../Makefile.inc.NetBSD or ../Makefile.inc.FreeBSD" - @echo - @echo " to ../Makefile.inc before you can proceed !" - @echo -.else - -PROG= vgaio -MAN8= vgaio.${MAN8EXT} - -SRCS= vgaio.y lex.l y.tab.h -YACC= yacc - -#YFLAGS+= -yd # Bison -#YFLAGS+= -v # verbose - -LFLAGS+= -I - -DPADD= ${LIBM} ${LIBY} ${LIBL} -LDADD= -lm -ly -ll - -CFLAGS= -O2 # due to a gcc bug, it compiles only with -O2! -CFLAGS+= -I${.OBJDIR} -I${.CURDIR} - -CLEANFILES+= y.output # comment file from bison - -install: - @${ECHO} "vgaio is not installed automatically ...." - -.include - -.endif diff --git a/usr.sbin/pcvt/vgaio/lex.l b/usr.sbin/pcvt/vgaio/lex.l deleted file mode 100644 index 5ff8622..0000000 --- a/usr.sbin/pcvt/vgaio/lex.l +++ /dev/null @@ -1,82 +0,0 @@ -%{ -/* - * Copyright (c) 1994 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: /b/source/CVS/src/sys/arch/i386/isa/pcvt/Util/vgaio/lex.l,v 1.1 1994/03/29 02:47:20 mycroft Exp $" - -/* - * $Log: lex.l,v $ - * Revision 1.1 1994/03/29 02:47:20 mycroft - * pcvt 3.0, with some performance enhancements by Joerg Wunsch and me. - * - * Revision 1.2 1994/01/08 17:42:58 j - * cleanup - * made multiple commands per line work - * wrote man page - * - * Revision 1.3 21.12.1994 -hm - * Added mi command for accessing the misc out register - */ - -#include -#include - -#include "vgaio.h" -#include "y.tab.h" - -extern YYSTYPE yylval; - -%} - -D [0-9a-fA-F] - -%% - -cr|CR { return CR; } - -ar|AR { return AR; } - -gr|GR { return GR; } - -sr|SR { return SR; } - -mi|MI { return MI; } - -{D}({D}*) { sscanf(yytext, "%x", &yylval.num); return NUM; } - -[ \t] { /* ignore */ } - -\n { return NEWLINE; } - -. { return yytext[0]; } diff --git a/usr.sbin/pcvt/vgaio/vgaio.8 b/usr.sbin/pcvt/vgaio/vgaio.8 deleted file mode 100644 index 1b350a6..0000000 --- a/usr.sbin/pcvt/vgaio/vgaio.8 +++ /dev/null @@ -1,143 +0,0 @@ -.\" -.\" Copyright (c) 1994 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. -.\" -.\" $Id$ -.\" -hm updated 31.12.94 -.\" -.Dd December 31, 1994 -.Dt VGAIO 8 -.Sh NAME -.Nm vgaio -.Nd perform input/output on a Video Graphics Array -.Sh SYNOPSIS -.Nm vgaio -.Op Fl d -.Sh DESCRIPTION -.Ss Purpose -.Nm Vgaio -is used to perform register-level input/output on a Video Graphics Array. -Since some of the sequences required to access those registers are very -silly, -.Nm vgaio -cares of all the things necessary and allows the user to access the -registers of several register groups with their symbolic names. - -.Ss Options -.Bl -tag -width 10n -offset indent -.It Fl d -Turn on the grammar parser debugger. - -.El -.Ss Command language -The command language of -.Nm -constitutes of some very simple tokens and rules. Commands are executed -line by line as they are entered. Each line may contain any number of -semicolon-separated input/output commands. - -Symbolic register names look like: - -.D1 Ao Em reggroup Ac Ao Em regnumber Ac - -with -.Aq Em regnumber -being any hexadecimal number -.Pq without a leading Em 0x , -and -.Aq Em reggroup -one of the strings -.Dq Em ar , -.Dq Em cr , -.Dq Em gr , -.Dq Em mi , -or -.Dq Em sr , -standing for the -.Em Attribute controller , -.Em CRT controller , -.Em Graphics controller , -.Em Miscellaneous Output Register , -or -.Em Timing sequencer , -respectively. - -An input instruction has the form - -.D1 Ao Em regname Ac ? - -and will cause -.Nm -to output a line like - -.Bd -ragged -offset indent -.Ao Em regname Ac \& = 0x Ns -.Aq Em number -.Ed - -An output instruction looks like - -.Bd -ragged -offset indent -.Ao Em regname Ac = -.Aq Em number -.Ed - -Spaces or Tabs between the -.Aq Em reggroup , -the -.Aq Em regnumber , -or any of the other tokens are ignored. They are not required anyway. - -The -.Dq Em mi -needs a single unused argument to satisfy the syntax :-) (-hm). - - -.Ss Access control -The caller must have uid 0 in order to gain the required access to -the IO registers. - -.Sh HISTORY -This program is considered -.Dq hackware . -It has been developed in order to simplify the process of developing other -software that needs to program the Video Graphics Array. - -Remember, to use this program, your kernel has to be compiled with XSERVER -being defined ! - -.Sh AUTHORS -The program has been contributed by -.if n Joerg Wunsch, -.if t J\(:org Wunsch, -Dresden -.Aq joerg_wunsch@uriah.sax.de . diff --git a/usr.sbin/pcvt/vgaio/vgaio.h b/usr.sbin/pcvt/vgaio/vgaio.h deleted file mode 100644 index e313f86..0000000 --- a/usr.sbin/pcvt/vgaio/vgaio.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 1994 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. - */ - -/* - * $Header - * The author may be reached unter - * - * $Log: vgaio.h,v $ - * Revision 1.1 1994/03/29 02:47:25 mycroft - * pcvt 3.0, with some performance enhancements by Joerg Wunsch and me. - * - * Revision 1.2 1994/01/08 17:42:58 j - * cleanup - * made multiple commands per line work - * wrote man page - * - * - */ - -/* common structure to hold the definition for a VGA register */ - -#ifndef VGAIO_H -#define VGAIO_H - -struct reg { - int group, num; -}; - -#endif /* VGAIO_H */ diff --git a/usr.sbin/pcvt/vgaio/vgaio.y b/usr.sbin/pcvt/vgaio/vgaio.y deleted file mode 100644 index 0e7dd79..0000000 --- a/usr.sbin/pcvt/vgaio/vgaio.y +++ /dev/null @@ -1,251 +0,0 @@ -%{ -/* - * Copyright (c) 1994 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: /b/source/CVS/src/sys/arch/i386/isa/pcvt/Util/vgaio/vgaio.y,v 1.1 1994/03/29 02:47:27 mycroft Exp $" - -/* - * $Log: vgaio.y,v $ - * Revision 1.1 1994/03/29 02:47:27 mycroft - * pcvt 3.0, with some performance enhancements by Joerg Wunsch and me. - * - * Revision 1.2 1994/01/08 17:42:58 j - * cleanup - * made multiple commands per line work - * wrote man page - * - * Revision 1.3 21.12.1994 -hm - * Added mi command for accessing the misc out register - * hex values shown as 2 fixed chars, added binary output - */ - -#include -#include -#include -#include -#include - -#ifdef __NetBSD__ -#include -#endif - -#include "vgaio.h" - -void setreg(struct reg r, int val); -void getreg(struct reg r); -void yyerror(const char *msg); - -#define YYDEBUG 1 - -unsigned short vgabase; - -%} - -%union { - int num; - struct reg reg; -} - -%token MI GR CR SR AR NEWLINE -%token NUM - -%type reggroup -%type register - -%% - -interpret: lines ; - -lines: line - | lines line - ; - -line: statements NEWLINE - | NEWLINE - | error NEWLINE { fprintf(stderr, "bing!\n"); } - ; - -statements: statement - | statements ';' statement - ; - -statement: register '?' { getreg($1); } - | register '=' NUM { setreg($1, $3); } - | /* lambda */ - ; - -register: reggroup NUM { $$.num = $2; $$.group = $1; } - ; - -reggroup: GR { $$ = GR; } - | CR { $$ = CR; } - | SR { $$ = SR; } - | AR { $$ = AR; } - | MI { $$ = MI; } - ; - -%% - -static struct { - int id; - const char *name; -} regnames[] = { - {GR, "gr"}, {CR, "cr"}, {SR, "sr"}, {AR, "ar"}, {MI, "mi"}, - {0, 0} -}; - -const char *getname(struct reg r) { - int idx; - for(idx = 0; regnames[idx].id; idx++) - if(regnames[idx].id == r.group) - return regnames[idx].name; - return "??"; -} - -/*---------------------------------------------------------------------------* - * return ptr to string of 1's and 0's for value - *---------------------------------------------------------------------------*/ -char * -bin_str(unsigned long val, int length) -{ - static char buffer[80]; - int i = 0; - - if (length > 32) - length = 32; - - val = val << (32 - length); - - while (length--) - { - if (val & 0x80000000) - buffer[i++] = '1'; - else - buffer[i++] = '0'; - if ((length % 4) == 0 && length) - buffer[i++] = '.'; - val = val << 1; - } - return (buffer); -} - -void getreg(struct reg r) { - int val; /* FreeBSD gcc ONLY accepts an int !! */ - - switch(r.group) { - case GR: - outb(0x3ce, r.num); - val = inb(0x3cf); - break; - - case AR: - r.num &= 0x1f; - (void)inb(vgabase + 0x0a); - outb(0x3c0, r.num + 0x20); - val = inb(0x3c1); - break; - - case CR: - outb(vgabase + 4, r.num); - val = inb(vgabase + 5); - break; - - case SR: - outb(0x3c4, r.num); - val = inb(0x3c5); - break; - - case MI: - val = inb(0x3cc); - break; - } - - printf("%s%02x = 0x%02x = %s (bin)\n", getname(r), r.num, val, bin_str(val,8)); -} - -void setreg(struct reg r, int val) { - switch(r.group) { - case GR: - outb(0x3ce, r.num); - outb(0x3cf, val); - break; - - case AR: - r.num &= 0x1f; - (void)inb(vgabase + 0x0a); - outb(0x3c0, r.num); - outb(0x3c0, val); - outb(0x3c0, r.num + 0x20); - break; - - case CR: - outb(vgabase + 4, r.num); - outb(vgabase + 5, val); - break; - - case SR: - outb(0x3c4, r.num); - outb(0x3c5, val); - break; - - case MI: - outb(0x3c2, val); - break; - } - - printf("%s%02x set to 0x%02x = %s (bin) now\n", getname(r), r.num, val, bin_str(val,8)); -} - -void yyerror(const char *msg) { - fprintf(stderr, "yyerror: %s\n", msg); -} - -int main(int argc, char **argv) { - int fd; - - if(argc > 1) yydebug = 1; - - if((fd = open("/dev/console", O_RDONLY)) < 0) - fd = 0; - - if(ioctl(fd, KDENABIO, 0) < 0) { - perror("ioctl(KDENABIO)"); - return 1; - } - vgabase = (inb(0x3cc) & 1)? 0x3d0: 0x3b0; - yyparse(); - - (void)ioctl(fd, KDDISABIO, 0); - return 0; -} -- cgit v1.1