diff --git a/sys/conf/NOTES b/sys/conf/NOTES index d234b5d864bb..72304de47103 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -2,7 +2,7 @@ # LINT -- config file for checking all the sources, tries to pull in # as much of the source tree as it can. # -# $Id: LINT,v 1.163 1995/04/06 14:01:20 ache Exp $ +# $Id: LINT,v 1.164 1995/04/08 09:36:02 phk Exp $ # # NB: You probably don't want to try running a kernel built from this # file. Instead, you should start from GENERIC, and add options from @@ -385,6 +385,7 @@ options BOUNCE_BUFFERS #device vt0 at isa? port "IO_KBD" tty irq 1 vector pcrint #options "PCVT_FREEBSD=210" # pcvt running on FreeBSD 2.1 #options XSERVER # include code for XFree86 +#options FAT_CURSOR # start with block cursor # The syscons console driver (sco color console compatible) - default. device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr diff --git a/sys/i386/conf/LINT b/sys/i386/conf/LINT index d234b5d864bb..72304de47103 100644 --- a/sys/i386/conf/LINT +++ b/sys/i386/conf/LINT @@ -2,7 +2,7 @@ # LINT -- config file for checking all the sources, tries to pull in # as much of the source tree as it can. # -# $Id: LINT,v 1.163 1995/04/06 14:01:20 ache Exp $ +# $Id: LINT,v 1.164 1995/04/08 09:36:02 phk Exp $ # # NB: You probably don't want to try running a kernel built from this # file. Instead, you should start from GENERIC, and add options from @@ -385,6 +385,7 @@ options BOUNCE_BUFFERS #device vt0 at isa? port "IO_KBD" tty irq 1 vector pcrint #options "PCVT_FREEBSD=210" # pcvt running on FreeBSD 2.1 #options XSERVER # include code for XFree86 +#options FAT_CURSOR # start with block cursor # The syscons console driver (sco color console compatible) - default. device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES index d234b5d864bb..72304de47103 100644 --- a/sys/i386/conf/NOTES +++ b/sys/i386/conf/NOTES @@ -2,7 +2,7 @@ # LINT -- config file for checking all the sources, tries to pull in # as much of the source tree as it can. # -# $Id: LINT,v 1.163 1995/04/06 14:01:20 ache Exp $ +# $Id: LINT,v 1.164 1995/04/08 09:36:02 phk Exp $ # # NB: You probably don't want to try running a kernel built from this # file. Instead, you should start from GENERIC, and add options from @@ -385,6 +385,7 @@ options BOUNCE_BUFFERS #device vt0 at isa? port "IO_KBD" tty irq 1 vector pcrint #options "PCVT_FREEBSD=210" # pcvt running on FreeBSD 2.1 #options XSERVER # include code for XFree86 +#options FAT_CURSOR # start with block cursor # The syscons console driver (sco color console compatible) - default. device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr diff --git a/sys/i386/include/pcvt_ioctl.h b/sys/i386/include/pcvt_ioctl.h index b6e4ca69f4f3..c4dbe4430c27 100644 --- a/sys/i386/include/pcvt_ioctl.h +++ b/sys/i386/include/pcvt_ioctl.h @@ -44,7 +44,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)ioctl_pcvt.h, 3.20, Last Edit-Date: [Thu Mar 30 10:38:23 1995] + * @(#)ioctl_pcvt.h, 3.20, Last Edit-Date: [Fri Apr 7 10:17:13 1995] * */ @@ -57,15 +57,16 @@ * -hm version definitions moved to begin of file * -hm removed PCVT_FAKE_SYSCONS10 * -hm accept KERNEL or _KERNEL + * -hm changed _IOCTL_PCVT_H_ to _MACHINE_PCVT_IOCTL_H_ (bde) * *---------------------------------------------------------------------------*/ -#ifndef _IOCTL_PCVT_H_ -#define _IOCTL_PCVT_H_ +#ifndef _MACHINE_PCVT_IOCTL_H_ +#define _MACHINE_PCVT_IOCTL_H_ /* pcvt version information for VGAPCVTID ioctl */ -#define PCVTIDNAME "pcvt-b23" /* driver id - string */ +#define PCVTIDNAME "pcvt-b24" /* driver id - string */ #define PCVTIDMAJOR 3 /* driver id - major release */ #define PCVTIDMINOR 20 /* driver id - minor release */ @@ -413,7 +414,7 @@ struct pcvtid { /* THIS STRUCTURE IS NOW FROZEN !!! */ struct pcvtinfo { /* compile time option values */ u_int opsys; /* PCVT_xxx(x)BSD */ #define CONF_UNKNOWNOPSYS 0 -#define CONF_386BSD 1 +#define CONF_386BSD 1 /* unsupported */ #define CONF_NETBSD 2 #define CONF_FREEBSD 3 u_int opsysrel; /* Release */ @@ -442,14 +443,14 @@ struct pcvtinfo { /* compile time option values */ #define CONF_NULLCHARS 0x00000400 #define CONF_BACKUP_FONTS 0x00000800 #define CONF_SW0CNOUTP 0x00001000 /* was FORCE8BIT */ -#define CONF_NEEDPG 0x00002000 + /* 0x00002000 was NEEDPG */ #define CONF_SETCOLOR 0x00004000 #define CONF_132GENERIC 0x00008000 #define CONF_PALFLICKER 0x00010000 #define CONF_WAITRETRACE 0x00020000 #define CONF_XSERVER 0x00040000 #define CONF_USL_VT_COMPAT 0x00080000 - /* 0x00100000 was FAKE_SYSCONS10 */ +#define CONF_PORTIO_DELAY 0x00100000 /* was FAKE_SYSCONS10 */ #define CONF_INHIBIT_NUMLOCK 0x00200000 #define CONF_META_ESC 0x00400000 #define CONF_NOFASTSCROLL 0x00800000 @@ -579,4 +580,4 @@ typedef struct keymap keymap_t; /* end of USL VT compatibility stuff */ -#endif /* _IOCTL_PC_H_ */ +#endif /* ! _MACHINE_PCVT_IOCTL_H_ */ diff --git a/sys/i386/isa/pcvt/pcvt_conf.h b/sys/i386/isa/pcvt/pcvt_conf.h index da3440ade68a..3ddc3a2316ee 100644 --- a/sys/i386/isa/pcvt/pcvt_conf.h +++ b/sys/i386/isa/pcvt/pcvt_conf.h @@ -32,7 +32,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_conf.h, 3.20, Last Edit-Date: [Sun Feb 26 12:48:45 1995] + * @(#)pcvt_conf.h, 3.20, Last Edit-Date: [Sun Apr 2 18:57:45 1995] * */ @@ -138,14 +138,6 @@ * PCVT_FREEBSD = 200 for FreeBSD 2.0-Release * PCVT_FREEBSD = 210 for FreeBSD 2.1-Release * - *======================================================================* - * 3 8 6 B S D * - *======================================================================* - * - * options "PCVT_386BSD" enables support for 386BSD + pk 0.2.4 - * NOTE: the 386BSD pcvt is unsupported and - * will be removed in a future release - * */ /* -------------------------------------------------------------------- */ @@ -284,6 +276,14 @@ # 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 */ @@ -346,13 +346,6 @@ /* each driver, sometimes even with */ /* different values (:-) */ -#if !defined PCVT_NEEDPG /* ---------- DEFAULT: OFF ------------ */ -# define PCVT_NEEDPG 0 /* pg moved out to cons.c with pk 0.2.2 */ -#elif PCVT_NEEDPG != 0 /* if you run a system with patchkit */ -# undef PCVT_NEEDPG /* 0.2.1 or earlier you must define this*/ -# define PCVT_NEEDPG 1 /* OBSOLETE, just for 386BSD 0.1 !! */ -#endif /* will be removed in a future release */ - #if !defined PCVT_SETCOLOR /* ---------- DEFAULT: OFF ------------ */ # define PCVT_SETCOLOR 0 /* enable making colors settable. this */ #elif PCVT_SETCOLOR != 0 /* introduces a new escape sequence */ diff --git a/sys/i386/isa/pcvt/pcvt_drv.c b/sys/i386/isa/pcvt/pcvt_drv.c index 569f1ad4d69c..057c4ac36ae7 100644 --- a/sys/i386/isa/pcvt/pcvt_drv.c +++ b/sys/i386/isa/pcvt/pcvt_drv.c @@ -41,7 +41,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_drv.c, 3.20, Last Edit-Date: [Thu Mar 23 20:37:05 1995] + * @(#)pcvt_drv.c, 3.20, Last Edit-Date: [Sun Apr 2 19:09:19 1995] * */ @@ -72,6 +72,7 @@ * -hm multiple X server bugfixes from Lon Willett * -hm patch from joerg - pcdevtotty for FreeBSD pre-2.1 * -hm delay patch from Martin Husemann after port-i386 ml-discussion + * -jw add some code to provide more FreeBSD pre-2.1 support * *---------------------------------------------------------------------------*/ @@ -104,13 +105,15 @@ static char vt_description[]; #define VT_DESCR_LEN 40 #endif /* PCVT_FREEBSD > 205 */ -int #if PCVT_NETBSD > 100 /* NetBSD-current Feb 20 1995 */ +int pcprobe(struct device *parent, void *match, void *aux) #else #if PCVT_NETBSD > 9 +int pcprobe(struct device *parent, struct device *self, void *aux) #else +int pcprobe(struct isa_device *dev) #endif /* PCVT_NETBSD > 9 */ #endif /* PCVT_NETBSD > 100 */ @@ -468,8 +471,10 @@ pcopen(Dev_t dev, int flag, int mode, struct proc *p) #if PCVT_FREEBSD > 205 if(retval == 0) + { /* XXX currently, only one vt device is supported */ kdc_vt[0].kdc_state = DC_BUSY; + } #endif return(retval); @@ -518,10 +523,12 @@ pcclose(Dev_t dev, int flag, int mode, struct proc *p) #if PCVT_FREEBSD > 205 if(!pcvt_is_console) + { /* XXX currently, only one vt device is supported */ kdc_vt[0].kdc_state = DC_IDLE; + } #endif - + return(0); } @@ -751,12 +758,15 @@ vt_registerdev(struct isa_device *id, const char *name) { if(id->id_unit) kdc_vt[id->id_unit] = kdc_vt[0]; + kdc_vt[id->id_unit].kdc_unit = id->id_unit; kdc_vt[id->id_unit].kdc_isa = id; + /* XXX only vt0 currently allowed */ strncpy(vt_descr + sizeof("Graphics console: ") - 1, name, VT_DESCR_LEN - sizeof("Graphics console: ")); + dev_attach(&kdc_vt[id->id_unit]); } @@ -859,11 +869,7 @@ pcrint(void) { ret = 1; /* got something */ -#if PCVT_NETBSD > 9 - delay(6); /* Gateway 2000 fix */ -#elif PCVT_FREEBSD || (PCVT_NETBSD <= 9) - DELAY(6); /* Gateway 2000 fix */ -#endif + PCVT_KBD_DELAY(); /* 7 us delay */ dt = inb(CONTROLLER_DATA); /* get it 8042 data */ @@ -1087,9 +1093,12 @@ pccnprobe(struct consdev *cp) if ((u_int)cdevsw[maj].d_open == (u_int)pcopen) break; } + if (maj == nchrdev) + { /* we are not in cdevsw[], give up */ panic("pcvt is not in cdevsw[]"); + } /* initialize required fields */ @@ -1221,27 +1230,6 @@ pcparam(struct tty *tp, struct termios *t) return(0); } -#if PCVT_NEEDPG /* this is moved to cons.c in patchkit 0.2.2 and higher */ - -int -pg (char *p, - int q, int r, int s, int t, int u, - int v, int w, int x, int y, int z) -{ - -#if !PCVT_USL_VT_COMPAT - vgapage(0); -#else - switch_screen(0, 0); -#endif /* !PCVT_USL_VT_COMPAT */ - - printf(p,q,r,s,t,u,v,w,x,y,z); - printf("\n"); - return(getchar()); -} - -#endif /* PCVT_NEEDPG */ - /* special characters */ #define bs 8 #define lf 10 @@ -1536,11 +1524,6 @@ pcvt_xmode_set(int on, struct proc *p) } #endif /* XSERVER && !PCVT_USL_VT_COMPAT */ -#if PCVT_386BSD /* dummies required to work with patchkit 0.2.4 */ -void cons_highlight (void) {} -void cons_normal (void) {} -#endif /* PCVT_386BSD */ - #endif /* NVT > 0 */ /*-------------------------- E O F -------------------------------------*/ diff --git a/sys/i386/isa/pcvt/pcvt_ext.c b/sys/i386/isa/pcvt/pcvt_ext.c index d0555843d0ec..32a89a0718df 100644 --- a/sys/i386/isa/pcvt/pcvt_ext.c +++ b/sys/i386/isa/pcvt/pcvt_ext.c @@ -35,7 +35,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_ext.c, 3.20, Last Edit-Date: [Fri Mar 24 20:58:28 1995] + * @(#)pcvt_ext.c, 3.20, Last Edit-Date: [Thu Apr 6 10:07:45 1995] * */ @@ -61,6 +61,9 @@ * -hm multiple X server bugfixes from Lon Willett * -hm patch from John Kohl fixing tsleep bug in usl_vt_ioctl() * -hm bugfix: clear 25th line when switching to a force 24 lines vt + * -jw add some forward declarations + * -hm fixing MDA re-init when leaving X + * -hm patch from John Kohl fixing potential divide by 0 problem * *---------------------------------------------------------------------------*/ @@ -70,7 +73,6 @@ #include "pcvt_hdr.h" /* global include */ static int s3testwritable( void ); - static int et4000_col( int ); static int wd90c11_col( int ); static int tri9000_col( int ); @@ -2187,19 +2189,25 @@ switch_screen(int n, int oldgrafx, int newgrafx) /* re-initialize lost MDA information */ if(adaptor_type == MDA_ADAPTOR) { - /* - * Due to the fact that HGC registers are - * write-only, the Xserver can only make - * guesses about the state the HGC adaptor - * has been before turning on X mode. Thus, - * the display must be re-enabled now, and - * the cursor shape and location restored. - */ - /* enable display, text mode */ - outb(GN_DMCNTLM, 0x28); - -/* XXX - something missing here ? Joerg ??? */ + /* + * Due to the fact that HGC registers are write-only, + * the Xserver can only make guesses about the state + * the HGC adaptor has been before turning on X mode. + * Thus, the display must be re-enabled now, and the + * cursor shape and location restored. + */ + outb(GN_DMCNTLM, 0x28); /* enable display, text mode */ + outb(addr_6845, CRTC_CURSORH); /* select high register */ + outb(addr_6845+1, + ((vsp->Crtat + vsp->cur_offset) - Crtat) >> 8); + outb(addr_6845, CRTC_CURSORL); /* select low register */ + outb(addr_6845+1, + ((vsp->Crtat + vsp->cur_offset) - Crtat)); + outb(addr_6845, CRTC_CURSTART); /* select high register */ + outb(addr_6845+1, vsp->cursor_start); + outb(addr_6845, CRTC_CUREND); /* select low register */ + outb(addr_6845+1, vsp->cursor_end); } /* make status display happy */ @@ -2743,7 +2751,11 @@ usl_vt_ioctl(Dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) int pitch = *(int *)data & 0xffff; #if PCVT_NETBSD - sysbeep(PCVT_SYSBEEPF / pitch, duration * hz / 1000); + if(pitch != 0) + { + sysbeep(PCVT_SYSBEEPF / pitch, + duration * hz / 1000); + } #else /* PCVT_NETBSD */ sysbeep(pitch, duration * hz / 3000); #endif /* PCVT_NETBSD */ diff --git a/sys/i386/isa/pcvt/pcvt_hdr.h b/sys/i386/isa/pcvt/pcvt_hdr.h index 5e0503630085..517969a7b3b1 100644 --- a/sys/i386/isa/pcvt/pcvt_hdr.h +++ b/sys/i386/isa/pcvt/pcvt_hdr.h @@ -32,7 +32,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_hdr.h, 3.20, Last Edit-Date: [Wed Mar 8 21:00:00 1995] + * @(#)pcvt_hdr.h, 3.20, Last Edit-Date: [Fri Apr 7 10:16:58 1995] * */ @@ -59,13 +59,15 @@ * -hm added pcstop (patch from Onno) * -hm multiple X server bugfixes from Lon Willett * -hm patch from Joerg for FreeBSD pre-2.1 + * -jw adding more support for FreeBSD pre-2.1 * *---------------------------------------------------------------------------*/ -#define PCVT_REL "3.20-b23" /* driver attach announcement */ +#define PCVT_REL "3.20-b24" /* driver attach announcement */ /* see also: pcvt_ioctl.h */ #if PCVT_FREEBSD >= 200 + #include #include #include @@ -79,7 +81,9 @@ #include #include #include + #else /* ! PCVT_FREEBSD >= 200 */ + #include "param.h" #include "conf.h" #include "ioctl.h" @@ -93,6 +97,7 @@ #include "syslog.h" #include "malloc.h" #include "time.h" + #endif /* PCVT_FREEBSD >= 200 */ #include "pcvt_conf.h" @@ -158,15 +163,15 @@ #if PCVT_FREEBSD >= 200 #include +#if PCVT_FREEBSD > 200 #include #include - -#include -#else -#include "machine/pc/display.h" - -#include "vm/vm_kern.h" #endif +#include +#else /* PCVT_FREEBSD >= 200 */ +#include "machine/pc/display.h" +#include "vm/vm_kern.h" +#endif /* PCVT_FREEBSD >= 200 */ #if PCVT_FREEBSD > 205 #include @@ -187,11 +192,6 @@ /* perform option consistency checks */ -#if defined PCVT_386BSD && PCVT_386BSD != 0 -#undef PCVT_386BSD -#define PCVT_386BSD 1 -#endif - #if defined PCVT_FREEBSD && PCVT_FREEBSD == 1 # undef PCVT_FREEBSD # define PCVT_FREEBSD 102 /* assume 1.0 release */ @@ -202,13 +202,11 @@ #define PCVT_NETBSD 9 /* assume 0.9 release for now */ #endif -#if PCVT_386BSD + PCVT_FREEBSD + PCVT_NETBSD == 0 -# error "pcvt_hdr.h: You MUST define one of PCVT_{386,NET,FREE}BSD \ +#if PCVT_FREEBSD + PCVT_NETBSD == 0 +# error "pcvt_hdr.h: You MUST define one of PCVT_{NET,FREE}BSD \ in the config file" -#elif (PCVT_386BSD && (PCVT_FREEBSD || PCVT_NETBSD)) || \ - (PCVT_NETBSD && (PCVT_FREEBSD || PCVT_386BSD)) || \ - (PCVT_FREEBSD && (PCVT_386BSD || PCVT_NETBSD)) -# error "pcvt_hdr.h: You should only define *one* of PCVT_{386,NET,FREE}BSD \ +#elif (PCVT_FREEBSD && PCVT_NETBSD) +# error "pcvt_hdr.h: You CAN only define *one* of PCVT_{NET,FREE}BSD \ in the config file" #endif @@ -236,12 +234,6 @@ in the config file" #endif /* XSERVER */ -/* #undef PCVT_NEEDPG is mandatory for PCVT_NETBSD and PCVT_FREEBSD */ -#if (PCVT_NETBSD || PCVT_FREEBSD) && PCVT_NEEDPG -#undef PCVT_NEEDPG -#define PCVT_NEEDPG 0 -#endif - /* PCVT_SCREENSAVER is mandatory for PCVT_PRETTYSCRNS */ #if PCVT_PRETTYSCRNS && !PCVT_SCREENSAVER #undef PCVT_SCREENSAVER @@ -1281,11 +1273,6 @@ int kbdioctl ( Dev_t dev, int cmd, caddr_t data, int flag ); void loadchar ( int fontset, int character, int char_scanlines, u_char *char_table ); void mda2egaorvga ( void ); - -#if PCVT_NEEDPG -int pg ( char *p, int q, int r, int s, int t, int u, int v, - int w, int x, int y, int z ); -#endif void roll_up ( struct video_state *svsp, int n ); void select_vga_charset ( int vga_charset ); void set_2ndcharset ( void ); @@ -1390,4 +1377,32 @@ static __inline void vt_selattr(struct video_state *svsp) #endif /* PCVT_INCLUDE_VT_SELATTR */ + +/*---------------------------------------------------------------------------* + * produce 7 us delay accessing the keyboard controller + *---------------------------------------------------------------------------*/ + +#if PCVT_PORTIO_DELAY + /* use multiple dummy accesses to port */ + /* 0x84 to produce keyboard controller */ + /* access delays */ +#define PCVT_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); } + +#else /* PCVT_PORTIO_DELAY */ + /* use system supplied delay function for */ + /* producing delays for accesssing the */ + /* keyboard controller */ +#if PCVT_NETBSD > 9 +#define PCVT_KBD_DELAY() delay(7) +#elif PCVT_FREEBSD || (PCVT_NETBSD <= 9) +#define PCVT_KBD_DELAY() DELAY(7) +#endif +#endif /* PCVT_PORTIO_DELAY */ + /*---------------------------------- E O F ----------------------------------*/ diff --git a/sys/i386/isa/pcvt/pcvt_kbd.c b/sys/i386/isa/pcvt/pcvt_kbd.c index bd6984aa7950..6fc53c4016dd 100644 --- a/sys/i386/isa/pcvt/pcvt_kbd.c +++ b/sys/i386/isa/pcvt/pcvt_kbd.c @@ -38,7 +38,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_kbd.c, 3.20, Last Edit-Date: [Fri Mar 24 18:38:16 1995] + * @(#)pcvt_kbd.c, 3.20, Last Edit-Date: [Sun Apr 2 18:59:04 1995] * */ @@ -308,12 +308,7 @@ kbd_response(void) if (--timeo == 0) return (-1); -#if PCVT_NETBSD > 9 - delay(6); /* Gateway 2000 fix - ziff */ -#elif PCVT_FREEBSD || (PCVT_NETBSD <= 9) - DELAY(6); /* Gateway 2000 fix - ziff */ -#endif - + PCVT_KBD_DELAY(); /* 7 us delay */ ch = inb(CONTROLLER_DATA); #if PCVT_SHOWKEYS @@ -941,13 +936,7 @@ sgetc(int noblock) { if (!noblock) /* source = 8042 */ { - -#if PCVT_NETBSD > 9 - delay(6); /* Gateway 2000 fix - ziff */ -#elif PCVT_FREEBSD || (PCVT_NETBSD <= 9) - DELAY(6); /* Gateway 2000 fix - ziff */ -#endif - + PCVT_KBD_DELAY(); /* 7 us delay */ dt = inb(CONTROLLER_DATA); /* get from obuf */ } else /* source = keyboard fifo */ @@ -966,14 +955,8 @@ sgetc(int noblock) if (inb(CONTROLLER_CTRL) & STATUS_OUTPBF) { - -#if PCVT_NETBSD > 9 - delay(6); /* Gateway 2000 fix - ziff */ -#elif PCVT_FREEBSD || (PCVT_NETBSD <= 9) - DELAY(6); /* Gateway 2000 fix - ziff */ -#endif - - dt = inb(CONTROLLER_DATA); /* yes, get it ! */ + PCVT_KBD_DELAY(); /* 7 us delay */ + dt = inb(CONTROLLER_DATA); /* yes, get data */ #endif /* !PCVT_KBD_FIFO */ @@ -1261,13 +1244,7 @@ sgetc(int noblock) { if (!noblock) /* source = 8042 */ { - -#if PCVT_NETBSD > 9 - delay(6); /* Gateway 2000 fix - ziff */ -#elif PCVT_FREEBSD || (PCVT_NETBSD <= 9) - DELAY(6); /* Gateway 2000 fix - ziff */ -#endif - + PCVT_KBD_DELAY(); /* 7 us delay */ dt = inb(CONTROLLER_DATA); } else /* source = keyboard fifo */ @@ -1287,14 +1264,8 @@ sgetc(int noblock) if(inb(CONTROLLER_CTRL) & STATUS_OUTPBF) { - -#if PCVT_NETBSD > 9 - delay(6); /* Gateway 2000 fix - ziff */ -#elif PCVT_FREEBSD || (PCVT_NETBSD <= 9) - DELAY(6); /* Gateway 2000 fix - ziff */ -#endif - - dt = inb(CONTROLLER_DATA); /* yes, get it ! */ + PCVT_KBD_DELAY(); /* 7 us delay */ + dt = inb(CONTROLLER_DATA); /* yes, get data ! */ } #endif /* !PCVT_KBD_FIFO */ diff --git a/sys/i386/isa/pcvt/pcvt_kbd.h b/sys/i386/isa/pcvt/pcvt_kbd.h index 33f84d463574..f488d53f9269 100644 --- a/sys/i386/isa/pcvt/pcvt_kbd.h +++ b/sys/i386/isa/pcvt/pcvt_kbd.h @@ -38,7 +38,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_kbd.h, 3.20, Last Edit-Date: [Wed Feb 22 12:53:51 1995] + * @(#)pcvt_kbd.h, 3.20, Last Edit-Date: [Sun Apr 2 18:59:08 1995] * */ diff --git a/sys/i386/isa/pcvt/pcvt_out.c b/sys/i386/isa/pcvt/pcvt_out.c index d56483893aeb..df6aeaaa221c 100644 --- a/sys/i386/isa/pcvt/pcvt_out.c +++ b/sys/i386/isa/pcvt/pcvt_out.c @@ -35,7 +35,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_out.c, 3.20, Last Edit-Date: [Sun Feb 26 16:43:58 1995] + * @(#)pcvt_out.c, 3.20, Last Edit-Date: [Sun Apr 2 18:59:11 1995] * */ diff --git a/sys/i386/isa/pcvt/pcvt_sup.c b/sys/i386/isa/pcvt/pcvt_sup.c index a8044c7968bf..728a9ab126df 100644 --- a/sys/i386/isa/pcvt/pcvt_sup.c +++ b/sys/i386/isa/pcvt/pcvt_sup.c @@ -37,7 +37,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_sup.c, 3.20, Last Edit-Date: [Sun Feb 19 19:59:38 1995] + * @(#)pcvt_sup.c, 3.20, Last Edit-Date: [Thu Apr 6 10:49:44 1995] * */ @@ -57,6 +57,7 @@ * -hm getting PCVT_BURST reported correctly for FreeBSD 2.0 * -hm applying patch from Joerg fixing Crtat bug * -hm moving ega/vga coldinit support code to mda2egaorvga() + * -hm patch from Thomas Eberhardt fixing force 24 lines fkey update * *---------------------------------------------------------------------------*/ @@ -262,10 +263,7 @@ vgapcvtid(struct pcvtid *data) static void vgapcvtinfo(struct pcvtinfo *data) { -#if PCVT_386BSD - data->opsys = CONF_386BSD; - data->opsysrel = PCVT_386BSD; -#elif PCVT_NETBSD +#if PCVT_NETBSD data->opsys = CONF_NETBSD; data->opsysrel = PCVT_NETBSD; #elif PCVT_FREEBSD @@ -335,9 +333,6 @@ vgapcvtinfo(struct pcvtinfo *data) #if PCVT_SW0CNOUTP /* was FORCE8BIT */ | CONF_SW0CNOUTP #endif -#if PCVT_NEEDPG - | CONF_NEEDPG -#endif #if PCVT_SETCOLOR | CONF_SETCOLOR #endif @@ -356,6 +351,9 @@ vgapcvtinfo(struct pcvtinfo *data) #if PCVT_USL_VT_COMPAT | CONF_USL_VT_COMPAT #endif +#if PCVT_PORTIO_DELAY + | CONF_PORTIO_DELAY +#endif #if PCVT_INHIBIT_NUMLOCK | CONF_INHIBIT_NUMLOCK #endif @@ -677,7 +675,20 @@ vid_setscreen(struct screeninfo *data, Dev_t dev) vgacs[(vs[screen].vga_charset)].screen_size; if(data->force_24lines != -1) + { vs[screen].force24 = data->force_24lines; + + if(vs[screen].force24) + { + swritefkl(2,(u_char *)"FORCE24 ENABLE *", + &vs[screen]); + } + else + { + swritefkl(2,(u_char *)"FORCE24 ENABLE ", + &vs[screen]); + } + } if((data->screen_size == SIZ_25ROWS) || (data->screen_size == SIZ_28ROWS) || diff --git a/sys/i386/isa/pcvt/pcvt_tbl.h b/sys/i386/isa/pcvt/pcvt_tbl.h index c1b3ce226b8b..193d37942483 100644 --- a/sys/i386/isa/pcvt/pcvt_tbl.h +++ b/sys/i386/isa/pcvt/pcvt_tbl.h @@ -29,7 +29,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_tbl.h, 3.20, Last Edit-Date: [Thu Jan 5 15:56:17 1995] + * @(#)pcvt_tbl.h, 3.20, Last Edit-Date: [Sun Apr 2 18:59:19 1995] * */ diff --git a/sys/i386/isa/pcvt/pcvt_vtf.c b/sys/i386/isa/pcvt/pcvt_vtf.c index 6269700feb38..4f7317fee933 100644 --- a/sys/i386/isa/pcvt/pcvt_vtf.c +++ b/sys/i386/isa/pcvt/pcvt_vtf.c @@ -35,7 +35,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * @(#)pcvt_vtf.c, 3.20, Last Edit-Date: [Wed Mar 29 20:45:48 1995] + * @(#)pcvt_vtf.c, 3.20, Last Edit-Date: [Wed Apr 5 18:08:50 1995] */ /*---------------------------------------------------------------------------* @@ -53,6 +53,7 @@ * -jw/hm fixing bug in roll_up() and roll_down() * -hm fastscroll/Crtat bugfix from Lon Willett * -hm patch for non-XSERVER/UCONSOLE compiles from Rafal Boni + * -hm bugfix: PCVT_USL_COMPAT renamed to PCVT_USL_VT_COMPAT ... * *---------------------------------------------------------------------------*/ @@ -1947,7 +1948,7 @@ roll_up(struct video_state *svsp, int n) { u_short *Memory = -#if defined(PCVT_USL_COMPAT) +#if PCVT_USL_VT_COMPAT (vsp != svsp || (vsp->vt_status & VT_GRAFX)) ? #else (vsp != svsp) ? @@ -1968,7 +1969,7 @@ roll_up(struct video_state *svsp, int n) svsp->Crtat += n * svsp->maxcol; } -#if defined(PCVT_USL_COMPAT) +#if PCVT_USL_VT_COMPAT if(vsp == svsp && !(vsp->vt_status & VT_GRAFX)) #else if(vsp == svsp) @@ -2014,7 +2015,7 @@ roll_down(struct video_state *svsp, int n) { u_short *Memory = -#if defined(PCVT_USL_COMPAT) +#if PCVT_USL_VT_COMPAT (vsp != svsp || (vsp->vt_status & VT_GRAFX)) ? #else (vsp != svsp) ? @@ -2034,7 +2035,7 @@ roll_down(struct video_state *svsp, int n) svsp->Crtat -= n * svsp->maxcol; } -#if defined(PCVT_USL_COMPAT) +#if PCVT_USL_VT_COMPAT if(vsp == svsp && !(vsp->vt_status & VT_GRAFX)) #else if(vsp == svsp)