phat code Is the glass half empty, half full, or twice as large as it needs to be?
Main

Projects

Downloads

Articles

Links

Downloads

Utilities

search for in   Audio / Graphics / Other
 

Videoport driver patch for VESA in NTVDM

AuthorMartin Sulak
EmailNone
Websitehttps://web.archive.org/web/20070817233552/http://www.volny.cz/martin.sulak/
ReleasedJun 12 2004
PlatformDOS Windows
SupportsWindows 2K/XP
LanguageVisual C++
SourceYes
BinariesYes
Summary

Many NT users complain that NTVDM doesn't "support" VESA. Actually, VESA "support" is not NT's business. The video adapter's ROM BIOS is used in fullscreen mode. Many adapters support VESA in BIOS.

But there is another problem with NT: The video driver must inform NT which ports DOS needs. Most, if not all, drivers are marked as not "VGA compatible", so vendors can save coding time by not supporting fullscreen DOS. In this case, the "VGA Safe" driver is used instead of the hardware-specific driver, and this universal driver doesn't know all the adapter's ports.

Here is the solution: Replace the port driver with a "proxy" dll and hook calls to the VideoPortSetTrappedEmulatorPorts function. Usually VGASafe miniport calls this function with subset of standard VGA ports. The proxy dll will call the real function with the modified set of ports, which it obtains from registry.

 

Download

Click here to download videoprt.zip (47 kb)