From: cummings@hammer.Prime.COM (Kevin Cummings)
Subject: Re: X386:  Plain VGA 16-color mode
Organization: Prime Computer R&D
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
=================================================================
Newsgroups: comp.os.linux