In 1990 Windows 3.1 was just released and at that moment it was not a real alternative for if you wanted to do some serious graphics. Writing graphic software was not easy. You had to write code for multiple graphic card vendors. One or two years later the VESA standard became popular. At this moment (2010) still most graphic cards support VESA. Actually all graphic cards already worked verry simmilar. In general there were 2 methods thad were implemented by all cards but unfortunately they had to be called in different ways. There was one method for setting the screen in the required resolution and one method for selecting a 64 KB region from the card. This was in the days that 640 KB was more than enough (quote from Bill Gates) and memmory beyond 1MB was hard to use. Since a 1280 * 1024 resolution in 24 bit color requires about 4MB of memory, graphic cards mapped a 64 KB region to the PC’s memory at location C000.
In 1990 i started to write a driver (a TSR written in ASM) that could recognice the graphics card and implemented those 2 methods in a generic way. By the end of 1992 the driver supported 10 different graphic card vendors for a total of 35 card types (including VESA).
Of course a driver without software is useless. In the same period i created a library (in C and ASM) with graphic funtions such as get and set pixel, line, rectangle, elipse, floodfill, gif and mouse support. These functions could be called from ASM, C, QuickBasic and Clipper.
Even today the two demo’s still work on most PC’s. You can download all sourcecode and the demo’s from here first load the svgadrv in a DOS box and then start a demo.