Description

ListVESA is a utility to report which VESA video modes are supported by the system's hardware. You can use command line options to tailor information listed to one specific mode, modes supporting a specific color bit depth, modes supporting linear frame buffer, or simply general information on the video adapter itself with no detailed screen mode data.





Building from source

Building ListVESA requires Watcom C; versions 1.9 and 2.0 were both tested. For convenience, the source code is contained in a single source file. If building under DOS, you can run the ListVESA.bat script or, if building under Linux, run the ListVESA.sh script instead.





Options

/A		Shows adapter info only, no data on specific modes.

/D n	Shows only modes with a color depth of n.

/L		Shows only modes which support a linear frame buffer.

/M n	Shows info only for the specified mode n. Implies /V.

/S		Shows a summary of modes instead of detailed mode information.

/V		Lists all screen modes, no matter how illogical they may seem.

Numbers for all options may be entered in decimal, hexadecimal, or octal.

Options may be combined. For example, LISTVESA /D 8 /L would list only all screen modes with 8-bit color depth and which support a linear frame buffer.





Version History

1.10 - 2023-04-29
- Fixed a minor bug involving the mode count when using the /A switch.
- Improved (once again) the layout of trailing blank lines after the various sections of information which ListVESA dumps.
- Optimized a tiny bit of assembly code.
- Removed a bit of leftover debug code.

1.09 - 2023-04-29
- A summary is no longer displayed when using /M. Why do you need to summarize a single mode? :)
- Added message for modes which don't exist on the system.
- Slightly updated the description for the /D switch.
- Using /M now implies /V.

1.08 - 2023-04-29
- Added warnings for the user if the BIOS has returned illogical information for a given mode; a message in the detailed list, and an exclamation point beside the entry in the summary table.
- Updated the application description to include the summary table feature.

1.07 - 2023-04-29
- Fixed a bug resulting from some inconsistent previous optimizations which broke functionality of the /M switch.

1.06 - 2023-04-28
- Fixed a bug in the previous version which prevented the detailed list from being generated. The source code included with that version is fine, but the binary must've ended up with some debug code in it which I had in place to help narrow down a separate issue. Oops!
- Fixed a typo in this readme file. Spoiler alert: "scren" isn't a word. At least not in English! ^_^
- Fixed the two compiler warnings. It's amazing what properly typecasting a pointer can do!
- Improved switch handling logic.
- Improved the layout of trailing blank lines after the various sections of information which ListVESA dumps.
- Optimized code; redundant bits were moved to a separate function, VESAModeInfoGet().
- Tweaked the "incompetent VBIOS manufacturer" message a bit to flow better and take up less space in the binary.

1.05 - 2023-04-27
- Increased scrutiny of video modes reported by the video BIOS so that illogical modes can be skipped, and added /V switch to print all screen modes, no matter how illogical they may seem.

1.04 - 2023-04-26
- Added the "divide by zero" bug fix back in because... crazy video hardware manufacturers. *sigh*

1.03 - 2023-04-25
- Added a "summary" mode - with accompanying /S switch - to be a bit more terse if desired.
- Added dates to the changelog. Woot woot!
- Added more detailed output for the Memory Model field instead of simply printing the type code.
- Changed Frame Size calculation to "charsWide x charsHigh" for text modes. If someone out there encounters a text mode in the wild, I'd love to know how ListVESA does in reporting it!
- Fixed a bug where AX was not checked to be 0x004F after a mode info call. This fixes the spurious output of modes with all null values as found in the (somewhat crazy) data tables of some video hardware. This allows the previous "divide by zero" bug fix to be rolled back, as this fix supersedes it. Thanks Jerome!
- Fixed a bug where program help was included in the binary but no command line option would show it. Wow lol
- Hexadecimal numbers are now uppercase

1.02 - 2023-04-24
- Fixed "divide by zero" bug which could occur with certain VESA chipset manufacturers who leave certain mandatory fields blank. Thanks to Jerome Shidel for the bug report!

1.01 - 2021-07-11
- Added column and row figures for character widths and heights.
- Added email address to application banner.

1.00 - 2021-07-10
Initial release.
