GEM driver sources
==================

  This file contains source code for 8 FreeGEM video drivers - part 
original, part disassembled. See the readme.txt file for the list of 
drivers and which ones I've been able to test.

  To build these drivers from source, you will need GNU Make, RASM-86 version 
1.4a and LINK-86 version 2.02. If you want to build VIDPATCH.EXE, you'll
also need Pacific C.

  The build system is rather simpler than the original. Rather than build
each driver in its own subdirectory, it just builds the whole lot in one
place, and no files get copied around. The original was also partly written
in C, but all the C bits have been replaced with disassembled 8086 assembly
because the compiler doesn't seem to work on my machine.

  The way files are included has also been turned inside-out. In the 
original common files such as eopttxt1.a86 would include files containing
driver data. This doesn't work if you're building more than one driver 
in the same directory, so instead there are minimal driver-specific files
that do all the including. Taking eopttxt1.a86 as an example again, the
EGA version reads:

        include externs.a86	;Driver-independent
        include egaregs.a86	;Driver-specific
        include copttxt1.a86	;Driver-independent

and the VGA version reads:

        include externs.a86	;Driver-independent
        include vgaregs.a86	;Driver-specific
        include copttxt1.a86	;Driver-independent

Change History
==============

2013-03-02  John Elliott

	* FreeGEM 5.00.3 driver release.

	* Bug fix in SDUNI11 when doing a screen-to-screen aligned blit.

2008-01-20  John Elliott

	* FreeGEM 5.00.2 driver release.

	* Fixed a long-standing bug in SDUNI11 that prevented bit blits
	 working properly in monochrome modes.

2008-01-19  John Elliott

	* FreeGEM 5.00.1 driver release.

	* Merged the FreeGEM 4.0 driver source tree with the disassembled 
	 GEM/5.0 VGA driver to produce a FreeGEM 5.0 driver source tree 
	 containing eight drivers.

	* Merged more drivers, including the CGA and 3270PC 2bpp drivers.

2008-01-18  John Elliott

	* Merged many more drivers from FreeGEM 3.1, including VESA 1024x768, 
	 the Universal EGA/VGA driver, and anything else that could be done 
	 without much effort.

	* Fixed text rendering in the 256-colour driver.

2008-01-05  John Elliott

	* Merged FreeGEM 3.1 driver source tree with the disassembled GEM/4.0
	 driver source tree to produce FreeGEM 4.0 driver source tree.

	* Fixed (hopefully) support for colour user-defined patterns in the
	 256-colour drivers.

2007-07-28  John Elliott

	* Added a DOS version check to the CPI loader. Calling CPI functions
	 in MS-DOS 2 has unpredictable consequences.

2007-03-14  John Elliott

	* FreeGEM 3.14.4 driver release.

	* Improved the 800x600 mode autoprobe. It can now support the 
	 Amstrad PC5086 without use of VIDPATCH.

	* Created a 720x540 driver (SDU759.VGA) for the Amstrad PC5086.

	* Merged changes to support GSX (listed below).
	* Conditional directives to omit GEM-only code and to swap black
         and white.
	* Fixed a bug in the calculation of Y-coordinate ranges for a 
	 polygon, which could cause a noticeable delay on a slow machine
	 under rare circumstances.
	* Reintroduced conditional code for what happens when pixels are
	 wider than they are high (used by the 3270PC low-res driver, and
	 no other). This fixed a divide error when SDKLF9 tried to draw
	 wide lines.

2007-02-02  John Elliott

	* FreeGEM 3.14.3 driver release.

2007-01-31  John Elliott

	* Merged the 256-colour drivers (SD2569 and SDVLF9) into the 
	 FreeGEM driver source tree with everything else.

	* Added code to support 2bpp packed-pixel modes (such as CGA modes 4
	 and 5). This code is used in three new drivers - CGA 320x200, 
	 CGA reverse-video 320x200, and 3270PC 360x350. Since the new drivers
	 don't use the standard font size, they don't support loadable 
         codepages.

	* Added a 640x200x4 Plantronics driver.

2007-01-12  John Elliott

	* Added an 800x600 VESA driver, based on Heinz Rath's documentation
	 of his.

2006-12-31  John Elliott

	* Added forward-ported drivers from earlier versions: Amstrad PC1512, 
	IBM 3270PC, AT&T DEB, EGA 8-colour, EGA low-resolution.
	* Added a reverse-video CGA driver, inspired by Jaroslaw Binczaowski's
	similar driver for GEM/3.0.
	* Binaries split into four separate zipfiles.
	* FreeGEM 3.14.2 driver release.

2006-12-20  John Elliott

	* Split the FreeGEM and GEM/3.1 driver source trees.
	* Moved copyright message and build date to separate include files
	 (copyrt.a86 and date.a86)
	* FreeGEM 3.14.1 driver release.

2006-12-19  John Elliott

	* The combined build tree now compiles all ten GEM/3.1 drivers.

2006-12-17  John Elliott

	* Combined the GEM/3.0 source tree with the disassembled driver 
	 source to produce an ASM-only build system targeting GEM/3.1 and
	 FreeGEM drivers. 

2006-06-22  John Elliott

	* (Still based on disassembly) backported the ViewMAX/2 codepage
	 loader to the VGA driver.

2005-08-27  John Elliott

	* (Based on a disassembled version of the VGA driver rather than the 
	 GEM/3.0 source tree) Added support for the BIOS high-res timer.

1999-01-31  Chris Barnes

	* Reconstructed the driver build system sufficiently to build the VGA
	 driver.

1998-06-23  Digital Research

	* Last known GEM/3 driver build.

1998-02-03  Digital Research

	* GEM/3.0 drivers released. Last known GEM driver source tree.
