Table of Contents

Name

SuperProbe - probe for and identify installed video hardware.

Synopsis

SuperProbe [-verbose] [-no16] [-excl list] [-mask10]
   [-order list] [-noprobe list] [-bios base]

   [-no_bios] [-no_dac] [-no_mem] [-info]

Description

SuperProbe is a a program that will attempt to determine the type of video hardware installed in an EISA/ISA/VLB-bus system by checking for known registers in various combinations at various locations (MicroChannel and PCI machines may not be fully supported; many work with the use of the -no_bios option). This is an error-prone process, especially on Unix (which usually has a lot more esoteric hardware installed than MS-DOS system do), so SuperProbe may likely need help from the user.

SuperProbe runs on SVR3, SVR4, Linux, 386BSD/FreeBSD/NetBSD, Minix-386, and Mach. It should be trivial to extend it to work on any other Unix-like operating system, and even non-Unix operating systems. All of the OS dependencies are isolated to a single file for each OS.

At this time, SuperProbe can identify MDA, Hercules, CGA, MCGA, EGA, VGA, and an entire horde of SVGA chipsets (see the -info option, below). It can also identify several HiColor/True-color RAMDACs in use on SVGA boards, and the amount of video memory installed (for many chipsets). It can identify 8514/A and some derivatives, but not XGA, or PGC (although the author intends to add those capabilities). Nor can it identify other esoteric video hardware (like Targa, TIGA, or Microfield boards).

Options

-verbose
SuperProbe will be verbose and provide lots of information as it does its work.
-no16
SuperProbe will not attempt to use any ports that require 16-bit I/O address decoding. The original ISA bus only specified that I/O ports be decoded to 10 bits. Therefore some old cards (including many 8-bit cards) will mis-decode references to ports that use the upper 6 bits, and may get into funny states because they think that they are being addressed when they are not. It is recommended that this option be used initially if any 8-bit cards are present in the system.
-excl list
SuperProbe will not attempt to access any I/O ports on the specified exclusion list. Some video cards use rather non-standard I/O ports that may conflict with other cards installed in your system. By specifying to SuperProbe a list of ports already in use, it will know that there cannot be any video cards that use those ports, and hence will not probe them (which could otherwise confuse your hardware). The exclusion list is specified as a comma-separated list of I/O ports or port ranges. A range is specified as "low-high", and is inclusive. The ports can be specified in decimal, in octal (numbers begin with '0'), or hexadecimal (numbers begin with '0x').
-mask10
This option is used in combination with -excl. It tells SuperProbe that when comparing an I/O port under test against the exclusion list, the port address should be masked to 10 bits. This is important with older 8-bit cards that only do 10 bit decoding, and for some cheap 16-bit cards as well. This option is simply a less-drastic form of the -no16 option.
-order list
This option specifies which chipsets SuperProbe should test, and in which order. The list parameter is a comma-separated list of chipset names. This list overrides the built-in default testing order. To find the list of acceptable names, use the -info option described below. Note that items displayed as "Standard video hardware" are not usable with the -order option.
-noprobe list
This options specifies which chipsets SuperProbe should not test. The order of testing will either be the default order, or that specified with the -order option described above. The list parameter is a comma-separated list of chipset names. To find the list of acceptable names, use the -info option described below. Note that items displayed as "Standard video hardware" are not usable with the -noprobe option.
-bios base
This option specifies the base address for the graphics-hardware BIOS. By default, SuperProbe will attempt to locate the BIOS base on its own (the normal address is 0xC0000). If it fails to correctly locate the BIOS (an error message will be printed if this occurs), the -bios option can be used to specify the base.
-no_bios
Disallow reading of the video BIOS and assume that an EGA or later (VGA, SVGA) board is present as the primary video hardware.
-no_dac
Skip probing for the RAMDAC type when an (S)VGA is identified.
-no_mem
Skip probing for the amount of installed video memory.
-info
SuperProbe will print out a listing of all the video hardware that it knows how to identify.

Examples

To run SuperProbe in its most basic and automated form, simply enter:

SuperProbe

Note - you may want to redirect stdout to a file when you run SuperProbe (especially if your OS does not support Virtual Terminals on the console).

However, if you have any 8-bit cards installed, you should initially run SuperProbe as:

SuperProbe -verbose -no16

(the -verbose option is included so you can see what SuperProbe is skipping).

Finer granularity can be obtained with an exclusion list, for example:

SuperProbe -verbose -excl 0x200,0x220-0x230,0x250

which will not test for any device that use port 0x200, ports 0x220 through 0x230, inclusive, or port 0x250. If you have any 8-bit cards installed, you should add -mask10 to the list of options.

To restrict the search to Western Digital, Tseng, and Cirrus chipset, run SuperProbe as follows:

SuperProbe -order WD,Tseng,Cirrus

Bugs

Probably a lot at this point. Please report any bugs or incorrect identifications to the author.

It is possible that SuperProbe can lock up your machine. Be sure to narrow the search by using the -no16, -excl, and -mask10 options provided to keep SuperProbe from conflicting with other installed hardware.

See Also

The vgadoc3.zip documentation package by Finn Thoegersen, available in the MS-DOS archives of many FTP repositories.

Programmer's Guide to the EGA and VGA Cards, 2nd Ed, by Richard Ferraro.

Author

David E. Wexelblat <dwex@xfree86.org>
with help from David Dawes <dawes@xfree86.org> and the XFree86 development team.