Daniel Borca's new DOS/DJGPP driver.
diff --git a/docs/README.DJ b/docs/README.DJ
new file mode 100644
index 0000000..c4a274c
--- /dev/null
+++ b/docs/README.DJ
@@ -0,0 +1,130 @@
+		    Mesa 4.0.1 DOS/DJGPP Port version 0.1

+		    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+

+

+

+First of all...

+~~~~~~~~~~~~~~~

+

+This is a DOS port for MESA 4.0.1. I didn't bother to consider any DOS C

+compiler other than gcc, so this port was written using DJGPP v2. To be more

+precise:

+	djdev 2.03

+	gcc v3.0.3

+	make v3.79

+

+Almost all demos were compiled and ran succesfully on my system:

+	CPU:		Intel Pentium w/ MMX @166 MHz

+	Mainboard:	ViA Apollo VP2 w/ 128 MB SDRAM

+	Video card:	Matrox Millenium I w/ 4096 kB WRAM, Matrox BIOS v3.0

+

+Since I don't have access to any accelerated video hardware, this port is

+entirely based on VESA/SuperVGA. My little attempt to use FreeBE/AF ended in

+a failure, but that's another story: it seemed to work fine with my older

+Matrox Millenium w/ 2MB, and then I got another Matrox Millenium w/ 4MB. The

+problem with latter was it had a dead BIOS; I hot-flashed it and made it work

+in all environments (Windows 95, VESA, etc) but FreeBE/AF.

+

+

+

+Legal:

+~~~~~~

+

+This software is distributed under the terms of the GNU Lesser General Public

+License.

+

+Source code written by others is subject to its respective copyright.

+

+

+

+libGL (the core):

+~~~~~~~~~~~~~~~~~

+

+Of course, MESA 4.0.1 core sources are required. It will probably work with

+MESA 3.5, but not a chance with earlier versions due to major changes to the

+MESA driver interface and the directory tree. All should compile succesfully.

+

+The driver has its origins in ddsample.c, written by Brian Paul and found by

+me in MESA 3.4.2. I touched almost all the functions, changing the coding

+style ;-( Sorry!

+

+Pitfalls:

+1. The current version supports only RGB[A] modes, for it made no sense to me

+   to endorse color-index (aka palette) modes.

+2. Only double-buffered is allowed because it was simpler to implement at

+   that moment. Single-buffered will appear soon, especially if I can find a

+   way to use hardware acceleration.

+3. Another weird "feature" is that buffer width & height must be multiple of

+   4 (I'm a lazy programmer and I found that the easiest way to keep buffer

+   handling at peak performance ;-).

+4. The video mode selector is tricky: it searches for the smallest mode which

+   will entirely contain the buffer at its current position. If you want a

+   small buffer in a high-res mode, try to position it very far to the right

+   (or down). I'd really use some ideas here!!!

+

+

+

+libGLU:

+~~~~~~~

+

+Mesa GLU sources are required. Everything should run smooth.

+

+

+

+libGLUT (the toolkit):

+~~~~~~~~~~~~~~~~~~~~~~

+

+Well, this "skeletal" GLUT implementation is not mine. Thanks should go to

+Bernhard Tschirren, Mark Kilgard, Brian Paul and probably others (or probably

+not ;-). I only changed it to be self-standing (Allegro-free). The keyboard,

+mouse and timer drivers were inspired from an old project of mine (D3Xl) and

+fixed with some Allegro "infusions"; my deeply thanks to Shawn Hargreaves and

+co.

+

+My keyboard driver used only scancodes, but since GLUT requires ASCII values

+for keys, I borrowed the translation tables (and maybe more) from Allegro.

+Ctrl-Alt-Del (plus Ctrl-Alt-End, for Windows users) will shut down the GLUT

+engine unconditionally: it will raise SIGINT, which in turn will call the

+destructors (let's hope), thus cleaning up your/my mess ;-)

+

+The mouse driver is far from complete (lack of positioning, drawing, etc),

+but is enough to make almost all the demos work.

+

+The timer is pretty versatile for it supports multiple timers with different

+frequencies. It may not be the most accurate timer in the known universe, but

+I think it's OK. Take this example: you have timer A with a very high rate,

+and then you have timer B with very low rate compared to A; now, A ticks OK,

+but timer B will probably loose precision!

+

+As an addition, stdout and stderr are redirected and dumped upon exit. This

+means that printf can be safely called during graphics, but all messages come

+in bulk! A bit of a hack, I know, but I think it's better than to miss them

+at all.

+

+Window creating defaults: 640x480x16 at (0,0), 8-bit stencil, 16-bit accum.

+

+

+

+Installation:

+~~~~~~~~~~~~~

+

+Unzip into the MESA directory, and type "make -f Makefile.DJ" to compile all

+libraries. Long filename support is required during compilation. The examples

+are not built automagically (see Pitfalls above).

+

+

+

+History:

+~~~~~~~~

+

+v0.1	feb-2002	initial release

+v0.2	..soon..

+

+

+

+Contact:

+~~~~~~~~

+

+Name:   Borca Daniel

+E-mail: dborca@yahoo.com

+WWW:    http://www.geocities.com/dborca/