Development Information

Last updated on April the 8th, 2001.


  • VGATV Development:

      For people wishing to download the driver's source, they should click here, for the DOS version, and here for the Windows version (it has folders so unpack with this in mind). If you're going to use any part of the code, please see the restrictions on the next section.

      If you on the other hand, want to directly participate on VGATV, adding code, changing code, etc, you should send your code to me (or your full VGATV source) for me to publish it here and/or make some modifications (code layout, etc).

      This lot applies also to the Windows version, under development. The source in this case is in Borland Delphi, with a lot of common Assembly source with VGATV for DOS, plus a NT device driver used to directly access I/O ports under that OS, which, to be changed needs the NT DDK, SDK and Visual C++. The driver is in C, but you may not have to ever compile it.

      To help you, as you know, there's a FAQ on these pages, which includes a primer on how to build a video mode and how this whole thing works. Should be enough for most people.


  • VGASetup Development:

      Also available is VGASetup, both the Windows version and the DOS, which can now be also downloaded from here, in its various flavours. VGASetup has been around since at least 1996. In any case, the core code is exactly the same, though arranged for Windows.

      For those who don't know, VGASETUP is an utility that, when run, makes a dump of the VGA register set into a file (into a window in the Windows version, where you can then save it to a file or print it directly) for you to check the register contents. However, instead of a "dumb" dump, the program tries to interpret the various significant bits on certain registers; for example, to calculate the Vertical Total value, you have to use at least 4 registers. For Standard VGA alone. The program figures all this by itself and gives the correct result (when the values fit into the standard VGA registers), saving you a lot of trouble.

      It will also try to figure out the video mode geometry and timing on a short summary at the end of the dump. Usually, it is correct, but colours are usually incorrect, because VGA only knows up to 256 colours. Also, horizontal refresh rate is dependent of the Vertical Total value. If this is miscalculated, so will be the refresh rate. The vertical refresh rate however, is highly accurate and not dependent of any external registers or values.

      DOS VGASetup

      Following is a list of the different versions of VGASetup tailored for a specific chipset. Most won't take into account extended bits when calculating resolutions and such. Some do check for extra registers that were of interest to me at some point, like reading the RAMDAC mode of Trident's TKD8001 RAMDAC.

      All ZIPs found here contain both the executable as well as the Borland Pascal source code. Additional parameters can be obtained by calling the EXE with the /? switch.

      Windows WinVGASetup

      The current version posted here displays the standard VGA registers and optionally also some other chipsets' registers (depending on the version, you'll have to check, I keep adding stuff). Many registers not directly related to mode setup, like cursor, 2D/3D acceleration, etc, are not included. Mode geometry and colors do not take into account the extended registers. Interlace mode is detected, however.

      The version posted here before (2k.320) had some nasty bugs that prevented it from working on many chipsets. The new version (2001.0404) fixes this while adding some new specific chipset registers, like NVidia and Trident.

      Version 2001.0405 fixes a small visual bug when displaying the Sequencer registers.

      Downloads: the executable (2001.0405) and the related source in Delphi. VGATVNT.SYS, needed for use under Windows NT/2000, is included in both ZIPs.


  • Restrictions for developers:

      - The use for this code, current and later developments based on this, should NOT go commercial. This has been free since the beggining, and will be into the future. No profit should be made on this.

      - The name(s) of the author(s) that contributed to the development of the driver, will always appear on the code and/or documentation, and that includes me :-)