home *** CD-ROM | disk | FTP | other *** search
- (sort of) VESA-Compliant TSR for the IBM XGA Adapter
- version 1.3
-
- Another freeware utility by Bert Tyler
- Compuserve ID: 73477,433
- BIX ID: btyler
-
-
- WHAT'S NEW IN THIS RELEASE?
-
- Release 1.3 adds the VESA 640x400x256 mode to the list of supported
- VESA modes. LINKS386, for example, uses this mode if it is available
- (and 640x480x256 mode and the top 5.6ths of the screen otherwise).
- Note that LINKS386 version 1.03 or later displays its colors correctly
- with this VESA driver if the "/p" option is used to force its palette
- updates to use the BIOS.
-
- I've recently purchased a 15" CrystalScan monitor from Gateway, and the
- various 800x600 modes have also been adjusted so as to look reasonably
- good with it. This is the first "real" 800x600-capable monitor I've owned.
-
- Release 1.2 added support for the VESA 1.2 spec and its "true-color"
- modes - in particular, mode 111h (640x480x65536-color) that seems to
- have been designed especially for XGA-like adapters.
-
-
- WHAT DOES THIS PROGRAM DO?
-
-
- XGAVESA is a TSR that (sort of) makes your XGA adapter VESA-compliant
- (the "sort of" clause is explained in detail below, and is related
- to the fact that the XGA adapter has some basic incompatibilities with
- the VGA Video DAC and vertical retrace signals when it is in its
- XGA-specific video modes).
-
- The reason for this TSR's existence is simple: many software packages
- out there in the MS-DOS world currently have drivers for VESA-compliant
- video adapters but not for IBM's XGA adapter. This TSR is an attempt
- to address that situation, by translating standard VESA calls into
- routines that IBM's XGA adapter understands.
-
-
- WHAT VIDEO MODES AND VESA CALLS DOES THIS PROGRAM SUPPORT?
-
-
- This TSR supports the following standard VESA modes:
-
- VESA mode Description
-
- 109h 132-column by 25-rows text mode
- 100h 640x400x256 graphics mode
- 101h 640x480x256 graphics mode
- 103h * 800x600x256 graphics mode (requires a multisynching
- video monitor)
- 105h ** 1024x768x256 graphics mode (requires a high-resolution
- video monitor and 1024K of memory on the adapter)
- 111h ** 640x480x65536 graphics mode (requires 1024K of
- memory on the adapter)
-
- * (The program reports support for this video mode only if you
- have fired it up with the '800' option. Note that this is
- different from earlier versions, which supported this mode unless
- you specifically told it not to using the '-800' option. There
- is no way for the program to auto-detect the presence of a
- multisynching monitor.)
-
- ** (The program reports support for this video mode only if it detects
- that the appropriate hardware exists for it.)
-
- XGAVESA supports all of the VESA calls defined in version 1.2 of that
- spec. Given that VESA versions are downward-compatible, that means
- that XGAVESA also supports all of the VESA calls defined by earlier
- versions of the VESA specs.
-
- This TSR does not currently support any of the XGA adapter's 16-color
- SuperVGA modes. Adding support for the XGA's 800x600x16 and 1024x768x16
- modes would have been trivial, but the XGA does *not* use the standard
- EGA/VGA style of pixel addressing when it is in those modes (the XGA's
- "packed pixel" method of handling 16-color modes is better, IMHO, but in
- this case the word "different" has more impact than the word "better").
- Furthur, the responses to a query I posted on various VESA forums indicated
- that there is no general consensus as to how most VESA drivers would
- attempt to handle a "16-color packed-pixel" VESA mode, so I simply
- left those modes out of this release.
-
- When it is first fired up, XGAVESA attempts to detect the presence of
- your XGA adapter and determine the amount of memory on your adapter and
- the type of monitor to which it is connected. If it can't locate any
- XGA adapter, the program errors out - otherwise, it displays a sign-on
- banner, sets itself up to support the VESA modes supported by your
- particular hardware and goes TSR.
-
-
- WAIT A MINUTE - THE XGA SUPPORTS 800x600?
-
-
- Yup - piece of cake. Maybe your IBM manuals don't mention it, but
- that's probably only because IBM doesn't make a monitor that supports
- that particular resolution. This particular resolution *does* require
- the presence of a monitor that supports 800x600 resolution, though, such
- as a multisynching monitor like the NEC 2A/3A/4A/5A.
-
- One limitation that the program currently has is that there is no way
- to automatically detect the presence or absence of a multisynching
- monitor attached to an XGA adapter. For now, the program just assumes
- that you do not have a multisynching monitor that supports the 800x600x256
- mode unless you fire it up with the '800' option ("xgavesa 800").
- Earlier versions of this program supported that mode unless you specifically
- disabled it with the '-800' option, and in retrospect that was not a good
- approach - A few of the VESA programs I tried this program out on
- automatically use the highest resolution the VESA driver supports, and
- if your hardware can't handle 1024x768x256 mode, that's going to be
- 800x600 unless that particular mode is disabled. The current version
- cheerfully ignores any '-800' option, as that's what it was going to
- do anyway.
-
-
- WADDYA MEAN "SORT OF" VESA-COMPLIANT?
-
-
- Well, actually, the XGA adapter with this TSR is totally VESA-compliant.
- The problem is that the current version of the XGA adapter in its
- XGA-specific video modes isn't totally VGA-compliant, and many programs
- make assumptions about VGA-compliance that don't work with the XGA
- adapter. (The XGA adapter is totally VGA-compatible when it is in
- VGA mode, but not even close to it when in its XGA-specific modes.)
- The worst-case scenario is total lockup and Big Red Switch time.
-
- The two problems I have run into are both related to programs which
- attempt to update the VGA's Video DAC via direct hardware writes
- (and yes, my own Fractint program is one of them).
-
- 1) The XGA video DAC is completely different from the VGA video DAC,
- and any attempt to update the "VGA's" Video DAC via direct hardware
- while the XGA is in an XGA-specific mode has no effect. If a
- program goes through the BIOS to update the Video DAC, all is well
- (the XGAVESA program traps the INT 10H, AH=10h interrupts and either
- translates those BIOS calls and data into information that the XGA
- adapter can understand or "eats" them).
-
- 2) The XGA does not support the VGA's vertical retrace hardware
- signals when it is in its XGA-specific modes, and any program that
- attempts to wait for a VGA-style vertical retrace ends up locking
- up the system.
-
- Here is a short list of VESA-compliant programs that have been tested
- with XGAVESA, and the results:
-
- LINKS386 works (but colors are only displayed correctly if
- you're using version 1.03 or later and are using
- its "/P" option to force it to use the BIOS to
- update its palettes.
- VPIC works (version 4.5 of VPIC added VESA drivers)
- MVGAVU works
- VUIMG works
- PV 0.5 works ("Persistence of Vision" is the successor to the
- DKB raytracer program)
- CSHOW works *if* invoked with the "+V" option that forces it
- to avoid the vertical retrace wait and go through the BIOS
- (if you have a registered copy, the CONFIG program supplied
- with CSHOW lets you hard-wire this option into the program)
- ((On the other hand, CSHOW 8.3 offers direct XGA support
- that is far better than using this XGAVESA driver))
- VGAKIT works (once I fixed the VESA driver in release 3.5 <grin>.
- Uncomment out the 'jmp fini' statement just prior to
- the 'novesa:' label in BANKS.ASM)
- FRACTINT fails (looks for the vertical retrace)
- ((On the other hand, Fractint offers direct XGA support
- that is far better than using this XGAVESA driver))
-