mda -- Kernel loadable module to drive a secondary MDA monitor

This is my first attempt at hacking the Linux kernel and is necessarily
rather primitive. 

Todd J Derr (tjd@cs.pitt.edu) originally had a dual monitor kernel patch but
this became unusable about 1.1.47 because of fundamental changes in the Linux
console code. AFAIK he has been strapped for time recently and not had chance
to update it. If he ever does get the time to revise his code for 1.2.x then 
my module will probably become redundant.

Advantages of this patch over Todd's:
-------------------------------------
It works with Linux 1.2.x and higher
(Tested on 1.2.5 -> 1.3.11)
The MDA is still visible (and usable) when X-Windows is active
Loadable module rather than kernel patch

Disadvantages:
--------------
No console (keyboard switching) support
Needs more VT100 escape sequence support
Uses "illegal" major device number 
Only supports MDA cards (to my knowledge), that's all I have
and probably many more...

Installation & Use
------------------

Compile the module for your kernel version:

    make

The Makefile and source should be able to figure out whether you are using
CONFIG_MODVERSIONS on your kernel or not. If it gets it wrong then just add
-DCONFIG_MODVERSIONS to CFLAGS. 

Create the file in /dev for the monitor and copy the module to its live 
directory. This must be run as root.

    make install

Insert the module into the kernel (at boot time or whenever you want it)

   insmod mda

Any output sent to /dev/mono will appear on the attached monitor.

( My favourite is making the kernel:
  make zImage >/dev/mono 2>/dev/mono
  Then you can watch progress while getting on with other things. )

If you find that major device 31 conflicts with something else you have then
simply change the number in the Makefile and recompile/install.

Using with modprobe and kerneld
-------------------------------

The mda driver works well with the kerneld package dstributed in the
modules-1.2.8 package. Simply add the line:

alias char-major-31 mda

to the file /etc/conf.modules, and the module will automatically load
when required.


Old versions of this software
-----------------------------

The first version of this software that I sent out used major number 30.
I have since found out that this conflicts with the iBCS2 emulator and
moved it to 31. If you make install with this version and have an old
mda.o file lying around for other kernel versions then the old one will
not work, this is because `make install' creates a new /dev/mono every time.

You will either have to rebuild your old version for major number 31 or
change the major number for this version to 30 (if you are not using
iBCS2). The only place you need to change this is in the Makefile.

---
Please mail any comments to me at patrick@pandh.demon.co.uk
I welcome constructive criticism, patches, suggestions and beer.
