
                       SVGATextMode
                       ============

This program is designed to greatly improve the normal (EGA-based) textmodes
on your Linux machine. It uses an Xconfig-like configuration file to set up
better looking textmodes. (=higher resolution, larger font size, higher
display refresh...) This is already a big boon on normal 14" displays, and
it is an immense difference on larger and better (15" and up) screens.

It stems from the idea that it is a real waste of hardware to use EGA
textmodes on an SVGA-card, which was designed to do much better than that.

Even the cheapest state-of-the-art VGA cards are capable of running at well
over 60 MHz pixel clocks (at least in graphics mode). But most of the time
they are used in text-only mode, and at 80x25 chars (that looks RIDICULOUS
on a 20" screen!), using a mere 25 MHz clock? At best, they use 132x43
textmode, which is still only a 40 MHz clock.

Even the cheapest SVGA monitors can take at least 35 kHz of line-frequency,
and if you go for a 15" or higher, 56 kHz and up are no longer the
exception. But most of the time they are used only at 32 kHz for either
80x25 or 132x43 modes. ALL VGA textmodes use just the standard VGA 32 kHz
horizontal refresh. If you are the owner of such a monitor, don't you think
it's a shame you only use one fifth of the available resolution in text
mode? Especially if you see what that monitor/SVGA-card combination can do
under Windows or X-Windows.

If you own a VGA card that is NOT detected properly by the kernel (e.g. a
Diamond card), you normally can use only 80x25, 80x28 and 80x50 modes. If
you want to use any other mode (which might or might not be available
through the BIOS) you had only one option: patch the kernel to force
detection of your card. And then you can still only use what your VGA BIOS
manufacturer put into the BIOS. Now you can use this program to get ANY text
mode, independently of BIOSses and detection by the kernel! Only limited by
what your SVGA-card and your monitor can take.

People doing lots of programming, and who don't want to sacrifice speed
(text modes scroll extremely fast) and memory (Xwindows is a real memory
hog) for a nice-looking display will really benefit from this: you get the
graphic detail and high refresh rates of X-windows, with the speed and
ease-of-use of normal text modes. It doesn't take up any more memory than
normal text modes, and it doesn't slow down your machine!

Even if you want to stick with what you had (e.g. 132x43), this program can
help you improve that, too! The so-called "high-res" 132x43 is not that nice
to look at. It uses an 8x8 (sometimes 8x11) pixel font, which shows up as
characters made up of stacked lines. Makes your screen look like in the old
days, when monochrome 80x25 was the standard, and you could actually count
on-screen how many lines your character was made up of. Now you could use
the same text mode, but with a 16-pixel high font, resulting in MUCH crisper
characters, and, if you want, higher refresh (less flicker).


With this program, you could do the following things (providing your video
card is supported, and providing your monitor can handle it, and providing
your video card still works at the higher dot-clock rates):

   50x15 text mode, for those with a visual impairment?
   80x25 text mode with a 32-line character cell (VGA = 16 line)
   80x25 at 100 Hz, or even 150 Hz instead of "just" 70 Hz (= VGA)
   80x25 at 16 kHz interlaced, so you can show your text mode
         on a TV monitor, or tape it on a VCR... (interlacing not supported
         YET. If anyone needs it, let me know)
   100x37 text mode. My favourite for 14" screens. Not available on
          most VGA cards as a standard (some Cirrus Logic cards have it).
          Now everybody can have it. Looks real neat!
   132x43 improved over VGA default: 8x16 character cell instead of 8x8.
          looks MUCH better, especially on 15" (and up) screens.
   110x42 why not? everything is possible...
   160x100 !!! We've tried this on an ET4000 and it's a screamer. On very
           large screens (>17"), this is REAL cool.

And since it uses the same kind of configuration file as the XFree X-server,
it can do everything the X-server can, but in textmode instead of graphics
mode. With a little bit of imagination and clever thinking, you can get
almost any resolution at almost any refresh rate. 

Another possible application: do you have some (old ?) workstation monitor
somewhere, which you would LOVE to use under Linux, but it is a
fixed-frequency one (= only works at ONE, mostly high, horizontal frequency,
say 56 kHz), which does't support standard VGA modes, and thus doesn't
support normal text modes? You would have to start up in X-windows
immediately (xdm) and do all your work from X-windows. But that eats too
much memory, and you have only a Trident card, which is MUCH too slow for X.
Enter "SVGATextMode": now you can be in textmode, at the same 56 kHz
frequency (1024x768 at 70 Hz) as you would in X-windows, on that big 19"
SparcStation monitor you bought for virtually nothing (keep on dreaming ;-)


What does it do?
----------------

SVGATextMode doesn't do a lot! It basically keeps running in native VGA text
mode, as do the "normal" linux consoles. It changes some VGA registers in
order to get different X/Y resolutions, and selects another pixel clock.

SVGATextMode does NOT run in graphics mode, as the name would suggest, and
as the use of an X-Windows-like configuration file would also suggest. The
"SVGA" part of the name refers to the fact that it uses an extra feature
found in all VGA cards: higher available dot clocks.

The advantage: The same blazing text speed as you get from the normal text
consoles. Performance is extremely fast, even on a low-end cheap Trident
card, which is the standard for "slow" _graphics_ performance :-(

The reason: it uses the hardware font-rendering that all VGA cards have.

The Disadvantage: It can only use certain font sizes, and will never support
extended character sets (like UniCode, UTF-8, ISO-10646, ...), unless some
wizzard gets the standard Linux consoles to do that... SVGATextMode can do
everything a standard text console can, but nothing more. SVGATextMode will
not give your text modes features that weren't already available in your
"old" normal text modes.

Of course, proportional fonts are out of the question, as in a normal text
console.


SVGATextMode is a VISUAL enhancement to your Linux text modes, NOT a
functional one!


What is available in this package?
----------------------------------

First, the "user servicable" files: the ones you need to use (change,
execute, read,...) when trying to get SVGATextMode running.

In the main directory:

* SVGATextMode     Of course. This is it. This program uses a config file
                   (/etc/TextConfig) to get some required information, and
                   starts changing your text modes. The main program of the
                   package.
                   
* TextConfig       The config file for SVGATextMode. It must be in the /etc
                   directory, so SVGATextMode can find it. This file
                   contains information about the hardware you are using
                   (VGA card, monitor, ...), and about the text modes you
                   will be able to select. If this file does not reflect
                   YOUR hardware setup, don't expect ANYTHING to work
                   properly.
                   
* HISTORY          Contains the changes from one version to another. When
                   upgrading from an older version of SVGATextMode, READ
                   THIS FIRST. Some things might have changed in a way that
                   would suddenly cause SVGATextMode to fail.
                   
* README.FIRST     A word of warning: SVGATextMode is "dangerous" to use.
                   
* INSTALL          How to install SVGATextMode. And how to recompile it.
                   Amongst other things, it tells you what must be changed
                   to the config file for your setup.
                   
                   
In the doc directory: (which you should REALLY consult BEFORE trying this) 

* PROBLEMS         A VERY IMPORTANT FILE. Read this when you run into
                   trouble. It provides some valuable troubleshooting hints.

* README.ET4000    If you own an ET4000, read this.

* README.ET4000.AltClockSelect    If you have one of those special ET4000's,
                                  that has a problem with the "normal" clock
                                  selection for ET4000's, this is for you.

* REPORT           A list of cards that have been reported to work with
                   SVGATextMode, and how high the clocks could be. and
                   possibly some other remarks. Also lists what cards DON'T
                   work.

* SVGATextMode.lsm   Linux Software Map entry for SVGATextMode. 

* TextConfig.doc   documentation about the contents of the TextConfig file.
                   If you don't read this carefully, and run into trouble,
                   you have yourself to blame. Don't come crying in MY
                   mailbox!

* clockprobe.doc   clockprobe docs

* grabmode.doc     grabmode documentation. What else?

* monitor-timings.howto   An attempt at demystifying the monitor-timing
                          black magic. If you don't feel very comfortable
                          with all those numbers, if you don't know what
                          "kHz", "Mhz", Hz", "Horizontal Sync", "vertical
                          Refresh", and many more of those cryptic secret
                          passwords to a succesfull monitor setup mean, this
                          is for you!

* setVGAreg.doc    docs for the hacher's tools "setVGAreg" and "getVGAreg".
                   Not very usefull, and in fact rather dangerous, if the
                   blood in your head starts avoiding your brain when
                   somebody mentions "VGA registers".

* setpalette.doc   Gues what...

* vgaset.note      A note about strange behaviour of some versions of
                   vgaset.

                 
                 
Utility programs:

* clockprobe       A neat little pixel clock probing program. It is REALLY
                   usefull when trying to find out what's going wrong. It
                   measures the currently used pixel- or dot-clock for the
                   currently visible screen.
                   
* grabmode         An extension to clockprobe: even MORE usefull. It grabs
                   the complete text- or graphics mode you are using, and
                   outputs a TextConfig-compatible (or XF86Config
                   compatible) mode line. Also an EXTREMELY usefull tool to
                   debug a failing text mode.
                   
* grabmode.exe     a DOS version of grabmode. Using this, you can get your
                   favourite DOS text mode, and paste it right into
                   TextConfig, so you can have it from Linux as well.
                   
* setpalette       
  getpalette       Two little tools to change/get the 256 color palette entries.
                   
* reset_prog       an example script of a reset program, which can be
                   executed automatically after SVGATextMode has finished.
                   Anything you want to get done when changing text modes
                   can be put in here (like restarting some screen-size
                   dependent programs)
                   
* text100x37.sh    an example script to change text modes. When put in
                   /etc/rc/d/rc.font, it will run SVGATextMode automatically
                   when Linux boots.
                 
* textmodeselect   A dialog-based script that lets you select a text mode
                   from a menu. 
  

in the "contrib" directory: see the "README" there for more information. It
contains programs from other sources, which could, or could not, be used
together with SVGATextMode.


Other files. Not needed for "using" SVGATextMode.   

The sources, of course: *.c and *.h, and Makefile

in the XFREE directory: some code from the XFREE sources, which is used by
SVGATextMode, and some interface code between theirs and mine...


  
  
Some misc. files. No vitally important information in here.
Behind-the-scenes information, talkshow gossip, and more.
               
* COPYING          Tells you what the conditions are for copying and/or
                   changing SVGATextMode. 
                   
* CREDITS          All those who have contributed to the mess you have in
                   front of you. 
                   
* TODO             Don't try to read this. Compare it to a pile of Post-It
                   notes reminding me what to do when I run out of ideas...
                 
                 
                 


Author:
-------

Koen Gadeyne (kmg@barco.be)

*******************************************************************************
* NOTE: If you use this program succesfully (or not), please let me know, and *
* state your VGA card type as well, so I can make up some list of which cards *
* SHOULD work and which ones not.                                             *
*******************************************************************************
But don't send MegaBytes of debugging data... It's a slow modem link...
