From owner-FreeBSD-tech-jp@jp.freebsd.org  Fri Jul  9 12:29:36 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id MAA93220;
	Fri, 9 Jul 1999 12:29:36 +0900 (JST)
	(envelope-from owner-FreeBSD-tech-jp@jp.FreeBSD.org)
Received: from outmail.utsunomiya-u.ac.jp (outmail.utsunomiya-u.ac.jp [160.12.196.3])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id MAA93215
	for <freebsd-tech-jp@jp.freebsd.org>; Fri, 9 Jul 1999 12:29:35 +0900 (JST)
	(envelope-from yokota@zodiac.mech.utsunomiya-u.ac.jp)
Received: from zodiac.mech.utsunomiya-u.ac.jp (IDENT:LWTPIikJz4DBbr65GNFxFBv/G77U/5s8@zodiac.mech.utsunomiya-u.ac.jp [160.12.42.1])
	by outmail.utsunomiya-u.ac.jp (8.9.3/3.7Wpl2) with ESMTP id MAA31565
	for <freebsd-tech-jp@jp.freebsd.org>; Fri, 9 Jul 1999 12:29:34 +0900 (JST)
Received: from zodiac.mech.utsunomiya-u.ac.jp (zodiac.mech.utsunomiya-u.ac.jp [160.12.42.1]) by zodiac.mech.utsunomiya-u.ac.jp (8.7.6+2.6Wbeta7/3.4W/zodiac-May96) with ESMTP
	id MAA24644; Fri, 9 Jul 1999 12:33:49 +0900 (JST)
Message-Id: <199907090333.MAA24644@zodiac.mech.utsunomiya-u.ac.jp>
To: freebsd-tech-jp@jp.FreeBSD.org
cc: yokota@zodiac.mech.utsunomiya-u.ac.jp
Date: Fri, 09 Jul 1999 12:33:48 +0900
From: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990625
X-Sequence: FreeBSD-tech-jp 2383
Subject: [FreeBSD-tech-jp 2383] libvbl
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org
X-Originator: yokota@zodiac.mech.utsunomiya-u.ac.jp

$@2#ED!w1'ET5\$G$9!#(J

$@2a5n(J /usr/lib/libvgl.* $@$K$D$$$F!$F0$+$J$$$H$+!$%P%0$,$"$k$H$+!$3F=j$G(J
$@OCBj$K$J$C$?$3$H$,$"$j$^$9$,!$$H$j$"$($:8=:_H=L@$7$F$$$k%P%0%U%#%C%/%9(J
$@$r$^$H$a$F$_$^$7$?!#$3$l$^$G%a%$%j%s%0%j%9%H$GN.$l$?$j!$K\2H$N(J PR $@$K$"$C(J
$@$?$b$N$G$9!#(J

$@0J2<$N%Q%C%A$r(J /usr/src/lib/libvgl$@$G$"$F$F$/$@$5$$!#(J 3.X, 2.2.5 $@0J9_$N(J 
2.2.X $@$KBP$7$FM-8z(J($@$N$O$:(J)$@$G$9!#(J/usr/share/example/libvgl/demo.c $@$b@5(J
$@>o$K%3%s%Q%$%k!$<B9T$G$-$^$9!#(J

keyboard.c
$@!{%W%m%0%i%`=*N;;~$K%-!<%\!<%I$,8z$+$J$/$J$k!#(J
  $@%Q%C%A(J: PR: misc/9524
$@!{%-!<%\!<%IF~NO$,$*$+$7$$!#(J
  $@%Q%C%A(J: Kurt Olsen <kurto@bootp.sls.usu.edu>

main.c
$@!{(JVESA_800x600 $@%b!<%I$+$i%W%m%0%i%`$r5/F0$7$?$"$H$NI|5"=hM}!#(J
  $@%Q%C%A(J: des@FreeBSD.org

text.c
$@!{%U%)%s%H%G!<%?$N%P%C%U%!!&%"%m%1!<%7%g%s$N:]$N%5%$%:$N7W;;(J
  $@%Q%C%A(J: $@=P=h$r<:G0(J

$@8=:_$N(J libvgl $@$K4X$7$F$O(J VESA $@%b!<%I$KBP1~$7$F$$$J$$$H$+!$FbIt$N%(%i!<(J
$@=hM}$,$$$$$+$2$s!$$H$+!$(JVGA $@$G$"$k$+$I$&$+$r3N$+$a$:$KD>@\%O!<%I$rC!$-(J
$@$^$/$k!$$H$+$$$m$$$mLdBj$,$"$j$^$9!#@=:n<T$N(J sos@FreeBSD.org $@$N$H$3$m(J
$@$K$O!$2~NIHG$,$"$kDxEY$G$-$F$$$k$i$7$$$N$G$9$,!$$^$@8x3+$5$l$F$$$^$;$s!#(J

# $@;d<+?H$b$A$g$C$H$@$1<j$r$D$1$?$N$G$9$,!$$"$^$j;~4V$r$+$1$F$$$i$l$^$;(J
# $@$s!#(J

$@!V$3$3$O$$$C$A$g$&!$D>$7$F$d$m$&$8$c$J$$$+!W$H$$$&J}$$$^$;$s$+(J?

$@$I$J$?$+6=L#$N$*$"$j$K$J$kJ}$,$$$i$C$7$c$l$P!$(Jsos $@$K8=>u$G$N:G?7HG(J
$@$rEG$-=P$5$;$F$_$h$&$+$H;W$$$^$9$,!#(J


Index: keyboard.c
===================================================================
RCS file: /src/CVS/src/lib/libvgl/keyboard.c,v
retrieving revision 1.1
diff -u -r1.1 keyboard.c
--- keyboard.c	1997/10/01 20:53:38	1.1
+++ keyboard.c	1999/07/08 01:02:22
@@ -48,6 +48,7 @@
   tcgetattr(0, &VGLKeyboardTty);
 
   term = VGLKeyboardTty;
+  cfmakeraw(&term);
   term.c_iflag = IGNPAR | IGNBRK;
   term.c_oflag = 0;
   term.c_cflag = CREAD | CS8;
@@ -75,9 +76,10 @@
 void
 VGLKeyboardEnd()
 {
-  if (VGLKeyboardMode != -1)
+  if (VGLKeyboardMode != -1) {
     ioctl(0, KDSKBMODE, VGLKeyboardMode);
-  tcsetattr(0, TCSANOW, &VGLKeyboardTty);
+    tcsetattr(0, TCSANOW, &VGLKeyboardTty);
+  }
 }
 
 int
Index: main.c
===================================================================
RCS file: /src/CVS/src/lib/libvgl/main.c,v
retrieving revision 1.2
diff -u -r1.2 main.c
--- main.c	1997/10/01 20:53:39	1.2
+++ main.c	1999/07/07 23:00:24
@@ -61,7 +61,19 @@
   outb(0x3c4, 0x02);
   outb(0x3c5, 0x0f);
   bzero(VGLMem, 64*1024);
-  ioctl(0, _IO('S', VGLOldMode), 0);
+  if (VGLOldMode >= M_VESA_BASE) {
+    /* ugly, but necessary */
+    ioctl(0, _IO('V', VGLOldMode - M_VESA_BASE), 0);
+    if (VGLOldMode == M_VESA_800x600) {
+      int size[3];
+      size[0] = 80;
+      size[1] = 25;
+      size[2] = 16;
+      ioctl(0, KDRASTER, size);
+    }
+  } else {
+    ioctl(0, _IO('S', VGLOldMode), 0);
+  }
   ioctl(0, KDDISABIO, 0);
   ioctl(0, KDSETMODE, KD_TEXT);
   smode.mode = VT_AUTO;
Index: text.c
===================================================================
RCS file: /src/CVS/src/lib/libvgl/text.c,v
retrieving revision 1.1
diff -u -r1.1 text.c
--- text.c	1997/08/17 21:09:35	1.1
+++ text.c	1999/07/07 22:52:14
@@ -60,7 +60,7 @@
     fread(&VGLTextFont->Width, 1 , 1, fd);
     fread(&VGLTextFont->Height, 1 , 1, fd);
     VGLTextFont->BitmapArray = 
-      (byte*)malloc(256*VGLTextFont->Width*VGLTextFont->Height);
+      (byte*)malloc(256*((VGLTextFont->Width + 7)/8)*VGLTextFont->Height);
     fread(VGLTextFont->BitmapArray, 1, 
       (256*VGLTextFont->Width* VGLTextFont->Height), fd);
     fclose(fd);







