WHATVGA version 2.00 29/Sep/95 Copyright 1991-95 Finn Th›gersen All Rights Reserved Command line switches: whatvga [+acumos] [-ncr] [=1024] [/a] where +chipset forces WHATVGA to proceed as if this chipset was found. The test for this chip set will be executed in order to check for memory and revision. No other chipsets will be tested. -chipset ensures that the tests for this chipset will NOT be executed. Useful if a chipset is misidentified or some earlier test gives problems. =kbytes Forces the number of Kbytes of video RAM on the adapter to the specified value. /a Run automatic test and write results to a file. The user responds with Y or N to each test and can enter comments to the individual tests. On startup you may be asked to select the video system to test (say if you have a VESA driver loaded). If the program seems to halt for more than a few seconds try to press the enter key. The recommanded way to use the program is to start it with no command line parameters and play with it a bit. See that the chipset, memory and DAC are ID'd properly and that you can display at least some super VGA modes. Then run the program with /a to do the full test. For the /a test, the system should be as "clean" as possible, as TSRs (including mouse and keyboard drivers) and memory managers can sometimes affect the results. Try booting from a floppy. Comments should only be entered when something is wrong or needs clarification. Ie. there is no need to enter "Fine" or "All ok" thats what the yes/no queries are for. When something is wrong try to be as descriptive as possible (remember, I can't see the screen). /c Disabled clock detection. Clock detection can lock up some systems. For instance S3 systems will lock up if a 0Hz clock is selected. /d Debug option. display the name of each chipset before it is tested. /i Ignore the configuration file (WHATVGA.CFG) /p PCI test. Disables the test for PCI devices. Note that WHATVGA has not been tested with with PCI type 2 busses. Note that if you use the + - or = commandline options the program should pause, displaying: Forced to ..... Press a key to continue If this does NOT happen the option(s) probably were not recognised. The options can also be set from a configuration file. On startup WHATVGA checks for the file WHATVGA.CFG in the current directory. The file consists of the general options at the top and then the chipset specific options in one section for each chipset started by a [chipset] header. Most options are of the keyword=value type. The keyword is not case-sensitive. For Yes/No options a value of YES, Y, ON or 1 (all not case-sensitive) will be takes as YES, all other values as NO. Leading and trailing spaces are ignored. The command line switches will win out if there is a conflict. General Options above the first chipset header: AutoTest =Yes/No ;Enables the Auto Test feature if set to YES ClockTest=Yes/No ;Disables Clock testing if set to NO Debug =Yes/No ;Enables debug output if set to YES PCItest =Yes/No ;Disables the PCI test if set to NO (same as /p). Memory =number ;Forces the amount of video memory (in Kbytes) Ignore =chipset ;Causes WHATVGA to skip the tests for this chipset. Any number of IGNORE= lines can be added. Chipset =chipset ;Forces WHATVGA to assume the chipset was found Sample file: Debug=Off ;No DEBUG option AutoTest=0 ;No AutoTest ClockTest=N ;Disable clock test Memory=1024 ;Force video Memory to 1Mb [S3] ;S3 chipset section -103 ;Disable mode 103h +4322 732 498 P8 1000 ;Adds mode 4322h, a 732x498 P8 mode with 1000 ; bytes per scanline (use 0 bytes/scanline for ; default width) If you have problems with the identification/startup: - The screen goes blank or all white... Try to run: WHATVGA /d This will display the name of each chipset and waits for you to press the Enter key BEFORE the chipset is tested. When you have found the offending chipsets, try to run: WHATVGA -Chips&Tech (assuming Chips&Tech is the culprit) Report the problem. - The chipset is misidentified. Try to run: WHATVGA -chipset where chipset is one of the following: Chips&Tech Chips & Technologies Paradise Paradise/Western Digital Video7 Video7 Tseng Tseng Et3000, ET4000, ET4000/W32 Trident Trident 8800/8900/9000... Everex Everex ATI ATI VGA Wonder/Graphics Ultra +/Pro Genoa Genoa 6x00 (not 5x00, 7x00 or 8x00) Oak Oak 37/67/77/87 Cirrus Cirrus 5x0/6x0 Ahead Ahead A&B NCR NCR 77c2x Yamaha Yamaha 6388 S3 S3 86c series ALG Avance Logic ALG series MXIC MXIC 860x0 Realtek Realtek PRIMUS Primus P2000 Cirrus54 Cirrus CL-GD54xx Cirrus64 Cirrus CL-GD64xx Weitek Weitek W5x86 COMPAQ Compaq IVGA/AVGA/QVision UMC UMC 85c408, 85c418 HMC HMC HM86304 WeitekP9 Weitek P9x00 series XGA XGA compatibles AGX IIT AGX series Mach32 ATI Mach32 Mach64 ATI Mach64 Matrox Matrox VGA ARK ARK Logic Acer Acer M31x5 Sierra Sierra SC15064 (Falcon/64) MediaVision Media Vision Pro Graphics MGA Matrox MGA Accelerator Alliance Alliance ProMotion - Memory Size is identified wrong. Run WHATVGA =2048 (or how many Kbytes you have) Report the problem. Whatvga has several options in the main menu: 1 Test standard VGA Allows you to test the standard VGA video modes. Draws a test pattern, including a color palette and writes basic information as text on the display. This option is not shown for non-VGA devices. See 2) for the details. 2 Test extended modes Allows you to test the extended video modes of the adapter. Draws a test pattern, including a color palette and writes basic information as text on the display. On the upper and left edge every hundred pixels is marked. when you press a key the testpattern is drawn again, this time in the largest size the available video memory will support ("Virtual Screen"), allowing you to scroll around in the display using the arrow keys. You should be able to move in the entire pattern, but not to move so far right or down that the display wraps. If you can move past the right edge (or can't reach it) then the scroll function probably needs a factor 2 (divide or multiply) in the SetVStart function. When you press the Enter key a textscreen is shown with the statistics for the mode, this screen also shown if the rutine to analyse the mode from the register values (AnalyseMode) reaches the same result. If not the values are shown as "Calculated". By pressing "d" or "D" you can see a dump of all the VGA (and extended) registers. The registers can be saved (appended) to the file REGISTER.VGA by pressing "f" or "F". 3 Search for modes Sequentially attempts to set modes 14h to 7Fh, each time testing if the mode was succesfully set. If so the testpattern is drawn and the mode is analysed. 5 Hardware Cursor test This item attempts to place a 32x32 hardware Cursor in the selected mode. The cursor can be moved around on the screen with the arrow keys. 6 BitBLT test This item first draws the testpattern, then draws the color palette with BitBLT operations at the centre of the display, then makes four blockcopies via BitBLT of the central palette, 90 degrees apart, each slightly overlapping the original. As the edges of the source is modified during the copying these changes will (in part) be copied to the new images. 7 Line Draw test This item attempts to draw lines from the center of the screen in a "wheel" using different colors. 8 Read/Write bank test This item copies the left half of the screen to the right half, reversing the line order, thus copying from "low" to "high" banks using seperate read/write banks. 0 Exit Items 5-8 are only present if WHATVGA believes the adapter supports the function, though you can always try the test by pressing the key. Special functions for test purposes (may hang your PC or worse): B Register Bit test. You are asked for the base register (such as 3C0h, 3C4h, 3CEh or 3d4h), starting index and starting bit number (0-7). Then you select the mode for the test. Now the test pattern is drawn in the desired mode, but using the entire video memory (like the "virtual screen"). The selected bit will be changed for ~0.5 sec, then restored for another 0.5 sec. This repeats until another bit is selected by -, + or * or the test is stopped by the Esc key. - steps one bit back, + one forward - both changing the index if necessary. * advances to bit 0 of the next index. This can be used to figure out the function of individual bits, the Display Start extension bits being the obvious example (and the intended target), but also clock bits etc. !!NOTE!! this may hang your PC or expose your video card or monitor to conditions beoynd their intended operational specifications. While damage to your monitor or video card is extremely unlikely (I haven't heard of a confirmed case since the old IBM MDA monitor), it is theoretically possible and my insurence company refuses to recognize any responsibility what so ever :-). Hanging your PC is however a very real possibility. Note the bit you were testing, reboot (power off may be required) and restart from the NEXT bit. D DAC test submenu Tests various special DAC functions: 2 - Test 24bit (16Mcolor) mode 3 - Test 32bit (16Mcolor RGBa) mode 5 - Test 15bit (32Kcolor) mode 6 - Test 16bit (64Kcolor) mode Tests the switching between 256color mode and 15/16/24/32bit mode. Besides the normal 256color test pattern a RGB color scale in the selected mode is also shown (this will look weird in 256color mode) Pressing + toggles between the two modes. Esc or Enter terminates the test. 8 - Test 6/8bit mode A test pattern is drawn in the selected 256color mode. The palette is set up to use the full 256 of 16m palette (256 shades of each basic color). When the DAC is in 6bit mode there are only 64 shades, thus the color bars will "break". The + key switches between 6bit and 8bit DAC mode. Esc or Enter terminates the test. A - DAC Cmd register Analysis This test examines the DAC command register which is accessed by reading 3C6h several times. Note that only some DACs have this register! The PEL register (3C6h) is set to 4 different patterns (55h, AAh, 5Ah and A5h) and for each pattern 3C6h is read 8 times. If the DAC has a command register it will show after 4 or 5 reads. Some DACs have more than one "hidden" register at 3C6h and some DACs revert to the PEL register after the first read of the command register, while others allow multiple reads of the command register. Then the command register is tested for read/writability, first bit by bit (0 to 7) this is reported as: "Dac Single Bit Mask: EF" where EF indicates that all but bit 4 is Read/Writable, then all values (0 to 255) are tested and reported as: "DAC mask: AA R/W: BB Change: CC Set: DD Clear: EE" where AA shows the bits actually tested - FFh = all (Some DACs have problems with some bits combinations), BB are the Read/Writable bits, CC the ones that changed but aren't R/W, DD the bits that are always set and EE the ones that are always clear. If any patterns causes unexpected results they are shown as: " AA = BB" where AA is the value written and BB the one read back. All fields above are in hex. C - Test Command register Allows you to test the behaviour of the DAC command register. Apart from the usual 256color test pattern a number of color scales are drawn in (from top to bottom) 15, 16, 24 and 32 bit color format. These will of course look hopeless in 256color mode, but allows you to detect if you switch to one of these modes. The F1 - F8 keys will toggle bits 0 - 7 of the command register. The value you are currently trying to program, is shown at the top. G - Gamma Test Allows you to test if your DAC can handle gamma correction in Hi- and True color modes. You are asked to select a Hi- or Truecolor mode, the test pattern is drawn and now one of the basic colors (Red, Green and Blue) will be inverted every time + is pressed. M - Select base mode Selects the mode to use for the DAC tests from the available 256 color modes. By default the 640x480 mode is used. A test pattern is drawn in the selected 256color mode. The palette is set up to use the full 256 of 16m palette (256 shades of each basic color). When the DAC is in 6bit mode there are only 64 shades, thus the color bars will "break". The keys 6 and 8 switches between 6bit and 8bit DAC mode (if the 8bit DAC mode works :-) ). Esc or Enter terminater the test. Currently this only works for the AT&T (20c490/491), Sierra 24bit (SC15021/25), Trident TDK8001 and Brooktree (Bt477,Bt484/5) DACs. R Register Read/Write test. You are asked for the base register (such as 3C0h, 3C4h, 3CEh or 3d4h), the mask used for the index register. The mask is entered as an 8 character string where each character controls one bit of the index (bit 0 first) and can be 'x' (don't care), '0' (always 0), '1' (always 1) or ' ' (don't care if the bit is Read/Writable in the index register, 0 or 1 if it is always 0 or 1). Any other characters are interpreted as ' '. Finally you are asked for the mode to use for the test. After the test a table showing the status of each bit tested is output starting from index 0 bit 0. Each bit is shown as: '.' (Masked), '0' (Always 0), '1' (Always 1), 'A' (Automatically changing), 'C' (Read/Writable, but changed by some other bit) or 'W' (Read/Writable). The tests: ID: Is the Chip Set, DAC and video memory identified correctly? Xres: Are the modes (standard and extended) displayed correctly? Display type, Switch settings and BIOS versions can cause some modes to be unavailable or out of sync. Scrl: Can you display and scroll in the Virtual Screen ? You should be able to move in the entire virtual screen, but not to move so far right or down that the display wraps. If you can move past the right edge (or can't reach it) we probably miss a factor of two in the SetVStart function. Also can you scroll horizontally in 1 pixel steps ? If the display wraps when the start crosses the middle (or 1/4) of memory we have a problem with the high bits (the Y variable) in the SetVStart function or with an enable bit. Also part of video memory can be inaccessible in modes that normally only use