*BSD News Article 10909


Return to BSD News archive

Received: by minnie.vk1xwt.ampr.org with NNTP
	id AA910 ; Tue, 09 Feb 93 15:54:43 EST
Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!uwm.edu!cs.utexas.edu!sun-barr!news2me.EBay.Sun.COM!seven-up.East.Sun.COM!sungy!news.Sweden.Sun.COM!swippy!seunet!sunic!news.funet.fi!fuug!kiae!relcom!newsserv
From: ache@astral.msk.su (Andrew A. Chernov, Black Mage)
Newsgroups: comp.unix.bsd
Subject: [386bsd] Codrvr and national fonts, 9bit conflict with fix
Message-ID: <yJZMTThq70@astral.msk.su>
Date: 8 Feb 93 03:38:11 GMT
Sender: news-service@newcom.kiae.su
Reply-To: ache@astral.msk.su
Organization: Ha-oh-lahm Yetzirah
Lines: 28

Hi.
I found this problem using my russian screen fonts.
VGA controller extend 8th bit to 9th bit of character bitmap in range
0xC0 - 0xDF, making it the same as the 8th bit.
This is normally for smart pseudo-graphics placed in this codes by
default, but when I load my own font, here is russian letters,
witch looking ugly with 9th bit extension.

Here is small addition to function set_fontmap() in co_vga.c to disable this
unusable feature:

	/* enable SB/SBH when font 1 is loaded */
	if (pg==1 && data->encoding != NOFONT) outw(0x3c4,0x0403);	/* SA=1,SB=0 */

>       /* Clear 8bit --> 9bit char bitmap extention for national fonts */
>       if (data->encoding != NOFONT) {
>               inb(iobase+10);
>               outb(0x3C0,0x20|0x10); i = inb(0x3C1);
>               inb(iobase+10); /* use this instead of 250ns delay */
>               outb(0x3C0,0x20|0x10); outb(0x3C0, i & ~0x4);
>       }

	return 0;
-- 
In-This-Life:  Andrew A. Chernov    |  "Hay mas dicha, mas contento
Internet:      ache@astral.msk.su   |  "Que adorar una hermosura
FIDOnet:       2:5020/23.34         |  "Brujuleada entre los lejos
Organization:  The RELCOM Corp.     |  "De lo imposible?!"  (Calderon)