home *** CD-ROM | disk | FTP | other *** search
/ Classic Fond 1 / ClassicFond01.iso / logic / links386.zip / VESALIB.EXE / VESA / IBM / XGAVESA.DOC < prev    next >
Text File  |  1992-08-13  |  8KB  |  170 lines

  1.            (sort of) VESA-Compliant TSR for the IBM XGA Adapter
  2.                             version 1.3
  3.  
  4.                 Another freeware utility by Bert Tyler
  5.                        Compuserve ID:  73477,433
  6.                            BIX ID:  btyler
  7.  
  8.  
  9. WHAT'S NEW IN THIS RELEASE?
  10.  
  11. Release 1.3 adds the VESA 640x400x256 mode to the list of supported
  12. VESA modes.  LINKS386, for example, uses this mode if it is available
  13. (and 640x480x256 mode and the top 5.6ths of the screen otherwise).
  14. Note that LINKS386 version 1.03 or later displays its colors correctly
  15. with this VESA driver if the "/p" option is used to force its palette
  16. updates to use the BIOS.
  17.  
  18. I've recently purchased a 15" CrystalScan monitor from Gateway, and the
  19. various 800x600 modes have also been adjusted so as to look reasonably
  20. good with it.  This is the first "real" 800x600-capable monitor I've owned.
  21.  
  22. Release 1.2 added support for the VESA 1.2 spec and its "true-color"
  23. modes - in particular, mode 111h (640x480x65536-color) that seems to
  24. have been designed especially for XGA-like adapters.
  25.  
  26.  
  27. WHAT DOES THIS PROGRAM DO?
  28.  
  29.  
  30. XGAVESA is a TSR that (sort of) makes your XGA adapter VESA-compliant
  31. (the "sort of" clause is explained in detail below, and is related
  32. to the fact that the XGA adapter has some basic incompatibilities with
  33. the VGA Video DAC and vertical retrace signals when it is in its
  34. XGA-specific video modes).
  35.  
  36. The reason for this TSR's existence is simple:  many software packages
  37. out there in the MS-DOS world currently have drivers for VESA-compliant
  38. video adapters but not for IBM's XGA adapter.  This TSR is an attempt
  39. to address that situation, by translating standard VESA calls into
  40. routines that IBM's XGA adapter understands.
  41.  
  42.  
  43. WHAT VIDEO MODES AND VESA CALLS DOES THIS PROGRAM SUPPORT?
  44.  
  45.  
  46. This TSR supports the following standard VESA modes:
  47.  
  48.    VESA mode           Description
  49.  
  50.    109h                132-column by 25-rows text mode
  51.    100h                640x400x256 graphics mode
  52.    101h                640x480x256 graphics mode
  53.    103h *              800x600x256 graphics mode (requires a multisynching
  54.                        video monitor)
  55.    105h **             1024x768x256 graphics mode (requires a high-resolution
  56.                        video monitor and 1024K of memory on the adapter)
  57.    111h **             640x480x65536 graphics mode (requires 1024K of
  58.                        memory on the adapter)
  59.  
  60.    *  (The program reports support for this video mode only if you
  61.       have fired it up with the '800' option.  Note that this is
  62.       different from earlier versions, which supported this mode unless
  63.       you specifically told it not to using the '-800' option.  There
  64.       is no way for the program to auto-detect the presence of a 
  65.       multisynching monitor.)
  66.  
  67.    ** (The program reports support for this video mode only if it detects
  68.       that the appropriate hardware exists for it.)
  69.  
  70. XGAVESA supports all of the VESA calls defined in version 1.2 of that
  71. spec.  Given that VESA versions are downward-compatible, that means
  72. that XGAVESA also supports all of the VESA calls defined by earlier
  73. versions of the VESA specs.
  74.  
  75. This TSR does not currently support any of the XGA adapter's 16-color
  76. SuperVGA modes.  Adding support for the XGA's 800x600x16 and 1024x768x16
  77. modes would have been trivial, but the XGA does *not* use the standard
  78. EGA/VGA style of pixel addressing when it is in those modes (the XGA's
  79. "packed pixel" method of handling 16-color modes is better, IMHO, but in
  80. this case the word "different" has more impact than the word "better").
  81. Furthur, the responses to a query I posted on various VESA forums indicated
  82. that there is no general consensus as to how most VESA drivers would
  83. attempt to handle a "16-color packed-pixel" VESA mode, so I simply
  84. left those modes out of this release.
  85.  
  86. When it is first fired up, XGAVESA attempts to detect the presence of
  87. your XGA adapter and determine the amount of memory on your adapter and
  88. the type of monitor to which it is connected.  If it can't locate any
  89. XGA adapter, the program errors out - otherwise, it displays a sign-on
  90. banner, sets itself up to support the VESA modes supported by your
  91. particular hardware and goes TSR.
  92.  
  93.  
  94. WAIT A MINUTE - THE XGA SUPPORTS 800x600?
  95.  
  96.  
  97. Yup - piece of cake.  Maybe your IBM manuals don't mention it, but
  98. that's probably only because IBM doesn't make a monitor that supports
  99. that particular resolution.  This particular resolution *does* require
  100. the presence of a monitor that supports 800x600 resolution, though, such
  101. as a multisynching monitor like the NEC 2A/3A/4A/5A.
  102.  
  103. One limitation that the program currently has is that there is no way
  104. to automatically detect the presence or absence of a multisynching 
  105. monitor attached to an XGA adapter.  For now, the program just assumes
  106. that you do not have a multisynching monitor that supports the 800x600x256
  107. mode unless you fire it up with the '800' option ("xgavesa 800").
  108. Earlier versions of this program supported that mode unless you specifically
  109. disabled it with the '-800' option, and in retrospect that was not a good
  110. approach - A few of the VESA programs I tried this program out on
  111. automatically use the highest resolution the VESA driver supports, and
  112. if your hardware can't handle 1024x768x256 mode, that's going to be
  113. 800x600 unless that particular mode is disabled.  The current version
  114. cheerfully ignores any '-800' option, as that's what it was going to
  115. do anyway.
  116.  
  117.  
  118. WADDYA MEAN "SORT OF" VESA-COMPLIANT?
  119.  
  120.  
  121. Well, actually, the XGA adapter with this TSR is totally VESA-compliant.
  122. The problem is that the current version of the XGA adapter in its
  123. XGA-specific video modes isn't totally VGA-compliant, and many programs
  124. make assumptions about VGA-compliance that don't work with the XGA
  125. adapter.  (The XGA adapter is totally VGA-compatible when it is in
  126. VGA mode, but not even close to it when in its XGA-specific modes.)
  127. The worst-case scenario is total lockup and Big Red Switch time.
  128.  
  129. The two problems I have run into are both related to programs which
  130. attempt to update the VGA's Video DAC via direct hardware writes
  131. (and yes, my own Fractint program is one of them).
  132.  
  133. 1) The XGA video DAC is completely different from the VGA video DAC,
  134. and any attempt to update the "VGA's" Video DAC via direct hardware
  135. while the XGA is in an XGA-specific mode has no effect.  If a 
  136. program goes through the BIOS to update the Video DAC, all is well
  137. (the XGAVESA program traps the INT 10H, AH=10h interrupts and either
  138. translates those BIOS calls and data into information that the XGA
  139. adapter can understand or "eats" them).
  140.  
  141. 2) The XGA does not support the VGA's vertical retrace hardware
  142. signals when it is in its XGA-specific modes, and any program that
  143. attempts to wait for a VGA-style vertical retrace ends up locking
  144. up the system.
  145.  
  146. Here is a short list of VESA-compliant programs that have been tested
  147. with XGAVESA, and the results:
  148.  
  149.    LINKS386        works (but colors are only displayed correctly if
  150.                    you're using version 1.03 or later and are using
  151.                    its "/P" option to force it to use the BIOS to
  152.                    update its palettes.
  153.    VPIC            works (version 4.5 of VPIC added VESA drivers)
  154.    MVGAVU          works
  155.    VUIMG           works
  156.    PV 0.5          works ("Persistence of Vision" is the successor to the
  157.                    DKB raytracer program)
  158.    CSHOW           works *if* invoked with the "+V" option that forces it
  159.                    to avoid the vertical retrace wait and go through the BIOS
  160.                    (if you have a registered copy, the CONFIG program supplied
  161.                    with CSHOW lets you hard-wire this option into the program)
  162.                    ((On the other hand, CSHOW 8.3 offers direct XGA support
  163.                    that is far better than using this XGAVESA driver))
  164.    VGAKIT          works (once I fixed the VESA driver in release 3.5 <grin>.
  165.                    Uncomment out the 'jmp fini' statement just prior to
  166.                    the 'novesa:' label in BANKS.ASM)
  167.    FRACTINT        fails  (looks for the vertical retrace)
  168.                    ((On the other hand, Fractint offers direct XGA support
  169.                    that is far better than using this XGAVESA driver))
  170.