Subject: Re: Working 80x50 patch (was Re: wscons fonts)
To: None <M.Drochner@fz-juelich.de>
From: Bang Jun-Young <bjy@mogua.org>
List: port-i386
Date: 12/13/2000 12:10:18
Matthias Drochner wrote:
> 
> bjy@mogua.org said:
> > Well, I managed to make wscons do 80x50 mode. Here is the patch
> > against 1.5 source:
> 
> Hmm - this simply overloads the builtin font, so you always get
> 8x8 chars, even in 25-line mode.

That's the most important bug I forgot to mention. :-) However, the 
patch may help somebody. You should configure /etc/wscons.conf so that all
consoles except for the first one can use 80x50 mode (or 80x40, etc., 
depending on what font you have loaded). 

> > 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. :-(

b) Add 'options WSCONS_DEFAULTMODE=80x50'. I'm not sure if this already 
exists, and if not, it shouldn't be hard to implement.

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?

Jun-Young

--
Bang Jun-Young <bjy@mogua.org>