Skip to content

Repository files navigation

VGATEST
================================================================================
Simple DOS program used to test VGA functionality in both text and graphics
modes.

It can be compiled using Open Watcom for:
 * 32-bit DOS/4G (80386+ CPU and DOS/4GW extender required)
 * 16-bit DOS (8086+ CPU required)

Precompiled binaries:
 * VGATEST.EXE is the 32-bit DOS/4G version
 * VGATEST0.EXE is the 16-bit DOS version

Source code at https://github.com/barotto/VGATEST


!!! Disclaimer !!!
--------------------------------------------------------------------------------
This program can and will damage the computer that you'll use it on and all of
its attached peripherals. The author(s) cannot be held responsible for any
damage occurred by the use of this program.
Use at your own risk!



Alphanumeric (A/N) tests
--------------------------------------------------------------------------------

Font Maps demo
--------------
This demo shows the double font map capability of the VGA that can be used to 
display 512 different characters on screen.
Font map 0 is the default BIOS map.
Font map 1 is a 8 pixels wide BIOS map loaded with INT 10/AX=11--h
Font maps 2-7 are custom maps.

Keys:
0 to 7 = change Map A's font.
ESC    = exit


Split & Pan demo
----------------
This demo shows the split screen and panning features.

Keys:
+           = increase start address value
-           = decrease start address value
ARROW UP    = increase vertical panning value
ARROW DOWN  = decrease vertical panning value
ARROW LEFT  = decrease horizontal panning value
ARROW RIGHT = increase horizontal panning value
PAGE UP     = decrease split screen scanline value
PAGE DOWN   = increase split screen scanline value
ESC         = exit


Benchmark
---------
Performs a series of video memory access speed tests. Two values are given:
MB/s = the memory bandwidth of the video subsystem in megabytes per second;
fps = how many times per second a single video page can be filled with a fixed
character / attributes pair. This is an ideal condition and represents the
maximum fill rate.
Both values depend not only on the video card and bus speeds but also on the
CPU performance.

Keys:
ESC = exit
r   = repeat tests


Video modes available
---------------------
Name    Format   Box    Resolution
0,1     40x25    8x8    320x200
0*,1*   40x25    8x14   320x350
0m,1m   40x25    8x16   320x400
0+,1+   40x25    9x16   360x400
2,3     80x25    8x8    640x200
2*,3*   80x25    8x14   640x350
2m,3m   80x25    8x16   640x400
2+,3+   80x25    9x16   720x400
7       80x25    9x14   720x350
7+      80x25    9x16   720x400
        40x30    8x8    320x240
        80x43    8x8    640x350
        80x50    9x8    720x400
        80x28    9x14   720x400
        80x30    8x16   640x480 (multisync monitor only)
        80x34    8x14   640x480 (multisync monitor only)
        80x60    8x8    640x480 (multisync monitor only)

* = EGA enhanced modes
m = MCGA enhanced modes
+ = VGA enhanced modes

Modes 0, 2, are identical to modes 1, 3, respectively. On the CGA
there is a difference in these modes. In modes 0 and 2 the color burst was
turned off (giving only shades of gray) but color burst is not provided by the
VGA.
Mode hex 3+ is the default mode with an analog color display attached to a VGA
system. Mode 7+ is the default mode with an analog monochrome display.
Modes 0*, 1*, 2*, and 3* emulate the support provided by the EGA.
Modes 0m, 1m, 2m, and 3m emulates the support provided by the MCGA.

BEWARE: modes 80x30, 80x34, and 80x60 require a multisync monitor and they may
        damage very old VGA only 31.5 kHz monitors.



All Points Addressable (APA) tests
--------------------------------------------------------------------------------

Test card demo
--------------
Shows a test card made by a full screen grid with equally spaced lines, a
centered circle, a palette, and line patterns. Useful to check the screen aspect
ratio.

Keys:
ESC = exit


Circles demo
------------
Shows a bunch of concentric circles that rapidly change their color.
FPS indicator also shown.

Keys:
ESC = exit


Lines demo
----------
Shows two lines (green and red) that rotates in opposite directions. In video
modes with only one available page the lines could be only partially drawn (it
depends on how fast the CPU, bus, and VGA are).
FPS indicator also shown.

Keys:
ESC = exit


Palette demo
------------
Fills the screen with the color palette.

Keys:
ESC = exit


Worms demo
----------
Draws a bunch of worms that crawl on the screen.
FPS indicator also shown.

Keys:
ESC = exit


Split & Pan demo
----------------
This demo shows the split screen and panning features.

Keys:
+           = increase start address value
-           = decrease start address value
ARROW UP    = increase Preset Row Scan value
ARROW DOWN  = decrease Preset Row Scan value
ARROW LEFT  = decrease Horizontal Pel Panning value
ARROW RIGHT = increase Horizontal Pel Panning value
PAGE UP     = decrease split screen scanline value
PAGE DOWN   = increase split screen scanline value
M           = change Pixel Panning Mode value
ESC         = exit


Scrolling demo
--------------
This demo smoothly scrolls two vertical bars horizontally using the AC
horizontal pel panning register and the CRTC start address.

Keys:
+           = increase scrolling amount
-           = decrease scrolling amount / pause
ESC         = exit


Benchmark
---------
Performs a series of video memory access speed tests. Two values are given:
MB/s = the memory bandwidth of the video subsystem in megabytes per second;
fps = how many times per second a single video page can be filled with a fixed
color value. This is an ideal condition and represents the maximum fill rate.
Both values depend not only on the video card and bus speeds but also on the
CPU performance.

Keys:
ESC = exit
r   = repeat tests


Video modes available
---------------------
Name  Col.  Resolut.  Pages Mode  
04    4     320x200   1     CGA comp.
06    2     640x200   1     CGA comp.
Dh    16    320x200   8     planar
Eh    16    640x200   4     planar
Fh    mono  640x350   2     planar
10h   16    640x350   2     planar
12h   16    640x480   1     planar
13h   256   320x200   1     chain4
      256   160x120   13    planar (multisync monitor only)
Q     256   256x256   1     chain4
      256   296x220   4     planar
Y     256   320x200   4     planar
X     256   320x240   3     planar
      256   320x400   2     planar
      256   360x270   2     planar
      256   360x360   2     planar
      256   360x480   1     planar
      256   400x300   2     planar (multisync monitor only)
      
BEWARE: modes 160x120 and 400x300 require a multisync monitor and they can
        damage very old VGA only 31.5 kHz monitors.



LICENSE
--------------------------------------------------------------------------------
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.



Authors
--------------------------------------------------------------------------------
Copyright (C) 2019-2026  Marco Bortolin
Portions of code by Robert C. Pendleton and released in the public domain.

About

VGA functionality tester for DOS

Topics

Resources

Stars

33 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages