Subject: Re: Working 80x50 patch (was Re: wscons fonts)
To: Bang Jun-Young <bjy@mogua.org>
From: David Brownlee <abs@netbsd.org>
List: port-i386
Date: 12/13/2000 09:55:30
On Wed, 13 Dec 2000, Bang Jun-Young wrote:

> > > It seems that my ATI 3D Rage doesn't allow charmap select register to
> > > change in some case. As a result, it could access only a font in slot 0.
> >
> > That was my impression too, as I wrote in a previous mail.
> > Would be good to get it confirmed by some documentation...
> >
> > > A better solution would be to swap out the font currently in use to memory
> > > and load a new one into slot 0 before the console is switched to a
> > > different mode.
> >
> > Yes, this would work. Unfortunately, this is quite expensive and
> > needs to be done with interrupts blocked. So it should be limited
> > to cases where there is no other choice - ie strange hardware.
>
> Right. It's sometimes quite expensive for a slow machine to copy 16-32kB
> of font data back and forth at a time, althouth such an operation occurs
> only when switching between different text modes (80x25 -> 80x50, or
> vice versa).
>
> I have some more idea on it:
>
> a) Add 'options BUGGY_FONTSEL' to config(8) for buggy graphics cards like
> ATI Rage. This needs recompiling the kernel. :-(
>
	Is it possible to detect a broken card - by loading a font into
	slot1, then trying to read it back? If so, then it could all
	be handled 'automatically'.

> b) Add 'options WSCONS_DEFAULTMODE=80x50'. I'm not sure if this already
> exists, and if not, it shouldn't be hard to implement.
>
	I would think this is a good feature to have anyway.

> c) Write a framebuffer-based graphical console driver capable of arbitrary
> video mode. As a result, you can make console do 128x48 mode in 1024x768
> resolution, view text other than English, display images without help of X
> server, and do more interesting things with it. All of these are possible
> at the cost of speed and simplicity (we don't live in 80's, anyway :-)
>
> Now I'm thinking about how to do c) with wscons. Any idea?

	wscons supports bitmapped displays, but not with virtual consoles
	(all on non i386 ports). You might want to start with getting the
	display into a simple mode such as 640x480 16 colours and then
	get the existing bitmapped support to work, then expand it from
	there :)
		David/absolute		-- www.netbsd.org: No hype required --