From: Kevin Cummings (cummings@hammer.Prime.COM)
Date: 07/21/92


From: cummings@hammer.Prime.COM (Kevin Cummings)
Subject: Re: X386:  Plain VGA 16-color mode
Date: Tue, 21 Jul 1992 18:48:16 GMT

In article <1992Jul20.193052.20753@crd.ge.com>, davidsen@ariel.crd.GE.COM (william E Davidsen) writes:
> In article <1992Jul18.212200.14727@CSD-NewsHost.Stanford.EDU>, bothner@Xenon.Stanford.EDU (Per M. Bothner) writes:
> |>
> |> Is anyone working on enhancing X386 to support vanilla
> |> VGA systems (640*480, 16 colors)? (I have a laptop, so
> |> I want to make X work using the existing VGA controller.)
> |>
> |> If no-one else is working on it, I might give it a try.
> |> (In an earlier life, I backed X servers for a while.)
>
> If you do this, you could do the world a real favor and be sure the 16
> color mode works in the general case. The ET4000 will support
> 1280x1024x16 on almost every card (I tried some MS-windows drivers on
> 4-5 cards I had around, and all worked. Many time resolution would be
> more useful than colors when opening a lot of text windows.

Yes, yes, yes! Just a small point to remember here, video cards with up to 256K
of memory (yes, this includes EGA!) should all be somewhat compatible with
regards to video memory access up though 800x600x16! (I still own, but no longer
use, an EGA card that was 800x600x16 compatible.) The video graphics library I
used under DOS uses the same routines (after video selection is done) for 16 color
EGA graphics as for 16 color VGA graphics. After 800x600, you require 512K of
video memory (OK, really 384K), but the bitmap for 1024x768x16 requires 96K of
addressable memory which will require some bank switching since all of the
addressable memory can't be fit between A0000 and AFFFF. 1280x1024 requires 160K
of addressable memory (3 banks) and 1M of real video memory (well, 640K, OK?).

> Someday I hope to hear that someone has hacked a hicolor 800x600 X for
> all the checp hicolor cards around.

Hopefully compatible with 640x480x32K as well!

For those who prefer to look at tables:

Board Required Bitmap Numer of Total Video Memory
Types Resolution: memory: 64K Banks: Required On Board
EGA 640x200x16 16000 1 63K 64K
EGA 640x350x16 28000 1 110K 128K
VGA 640x400x16 32000 1 125K 128K
SEGA/VGA 640x480x16 37.5K 1 150K 256K
SEGA/SVGA 800x600x16 58.6K 1 234K 256K
SVGA 1024x768x16 96K 2 384K 512K
SVGA 1152x900x16 126K 2 506K 512K
SVGA 1280x1024x16 160K 3 640K 1M

XGA 640x480x32K 600K? 10? 600K 1M
??? 800x600x32K 937.5K? 15? 937.5K 1M

Please note that none of the above entries takes into account anything about
sync rates required to attain those resolutions, just the memory required to
support them. And certain video chip sets may not support all of the resoltuions
listed above (like the S3 chip doesn't support 1152x900x16 or 800x600x32K).

The table for 256 color modes is left as an exercise to the reader. Remember
that most 256 color modes are byte mapped, not planear! and require 8 times the
addressable memory in the byte map as the corresponding 16 color mode! And the
32K color modes require twice as much memory as the 256 color modes. I also
think I read that the 32K color modes require that each two byte color pixel value
be written to memory as two seperate bytes in different memory banks. I beleive
that is how the S3 chip works. Does the ET4000 work the same way?

=================================================================
Kevin J. Cummings PrimeService
20 Briarwood Road A Computervision Company
Framingham, Mass. 500 Old Connecticut Path
                                        Framingham, Mass.
Work: cummings@primerd.Prime.COM
Home: cummings@kjc386.framingham.ma.us

Std. Disclaimer: "Mr. McKittrick, after careful consideration,
                  I've come to the conclusion that your new
                  defense system SUCKS..." -- War Games
=================================================================