diff options
Diffstat (limited to 'chinese/big5con/files/patch-src::vga.c')
-rw-r--r-- | chinese/big5con/files/patch-src::vga.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/chinese/big5con/files/patch-src::vga.c b/chinese/big5con/files/patch-src::vga.c new file mode 100644 index 000000000000..84fa767ecd30 --- /dev/null +++ b/chinese/big5con/files/patch-src::vga.c @@ -0,0 +1,76 @@ +--- src/vga.c.orig Sun Apr 14 16:40:40 1996 ++++ src/vga.c Tue Nov 26 11:38:34 2002 +@@ -1,6 +1,7 @@ + /* + KON - Kanji ON Linux Console - +- Copyright (C) 1992, 1993, 1994 Takashi MANABE (manabe@tut.ac.jp) ++ Copyright (C) 1992, 1993, 1994 Takashi MANABE (manabe ++tut.ac.jp) + + KON is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by +@@ -20,7 +21,8 @@ + /* + This code is based on vgalib. + +- Thanks to frandsen@diku.dk (Tommy Frandsen). ++ Thanks to frandsen ++diku.dk (Tommy Frandsen). + */ + + #include <stdio.h> +@@ -35,7 +37,14 @@ + #elif defined(__FreeBSD__) + #include <vm/vm_param.h> + #include <sys/ioctl.h> ++#include <osreldate.h> ++#if __FreeBSD_version > 410000 ++#include <sys/consio.h> ++#include <sys/kbio.h> ++#else + #include <machine/console.h> ++#endif ++ + vm_size_t page_size; + #endif + #undef free +@@ -205,7 +214,8 @@ + regText.seq[i] = PortInb(VGASEQ_DATA); + } + regText.mis = PortInb(VGAMISC_IN); +- ++ ++ PortOutb(PortInb(VGAMISC_IN)|0x01, VGAMISC_OUT); + VgaSetRegisters(®Graph); + + /* save font data in plane 2 */ +@@ -369,7 +379,7 @@ + /* if (!code) return;*/ + VgaSetColor(fc); + if (bc & 0x8) *(vcls - dInfo.glineByte) = 0; +- for (x = 0;x < sbFReg->high;x ++, code ++, fm >>= 1) { ++ if (code) for (x = 0;x < sbFReg->high;x ++, code ++, fm >>= 1) { + if (*code) { + VgaOutByte(*code); + *gram = *gram; +@@ -437,7 +447,7 @@ + + void VgaCursor(struct cursorInfo *ci) + { +- char *gram; ++ volatile char *gram; + u_char x; + int bottom = cursorBtm + 1 <= dInfo.glineChar ? + cursorBtm + 1 : dInfo.glineChar; +@@ -607,7 +617,11 @@ + Perror("ioctl CONSOLE_IO_ENABLE"); + return FAILURE; + } ++#if (__FreeBSD__ <= 3) + if ((devMem = open("/dev/vga", O_RDWR|O_NDELAY) ) < 0) { ++#else ++ if ((devMem = open("/dev/mem", O_RDWR|O_NDELAY) ) < 0) { ++#endif + Perror("/dev/mem"); + return FAILURE; + } |