From: cummings@tiger1.prime.com (Kevin J. Cummings)
Subject: Re: Diamond Product clarification requested
Keywords: Diamond X
Organization: Prime Computer, Inc.
Date: Thu, 10 Sep 1992 16:59:30 GMT

In article <badger.716132754@phylo>, badger@phylo.life.uiuc.edu (Jonathan Badger) writes:
> I am the proud(?) owner of a Diamond Stealth Card. I understand the legal
> problems that could ensue by dissembling the BIOS, etc. However, right now
> can I use my Stealth in any resolution in X (even normal VGA)?

Welcome to the club B^{.  My understanding is that the dot clock selection
process on the Stealth is sufficiently different that it precludes any mode
selection (that doesn't use the BIOS routines or there equivalents) so you can't
guarentee that X will work unless the card is in some pre-determined mode and
X uses the same clock.  Best bet would be a 640x480 mode (since that uses the same
dot clock as the 80x25 text mode).  I haven't tried this yet, it would mean recompiling XFree86 with a different clock select routine.  (Yeah, sounds simple
enough....)

> Secondly, I notice that Microsoft Windows 3.1 has a 800x600 16 color driver
> that claims to be compatible with all SVGA cards -- doesn't this mean all
> cards (including the Stealth) must be the same at this resolution?

At the register level, yes.  I've even run this 800x600x16 mode on my Stealth
Card (before I fixed my COM4 port problem) because it worked "better" than the
Stealth Turbo drivers (in ANY mode).  Now I use the Stealth drivers without any
problems, they are MUCH faster.  If my math is right, 800x600x16 needs less than
64K of addressable screen memory (800x600 needs about 58.59K of memory in 4
overlapping color planes.  640x480 only needs 37.5K.  Both fit within the 64K
of video memory allocated between A0000 and B0000 in the MSDOS 1 meg address space.)

When you start talking about 256 color modes, where each byte in memory corresponds
to one screen pixel, your addressable memory requirements go up by a factor of 8!
(No longer 4 overlapping planes, but 8 bits in memory, so instead of 1 bit per
pixel across 4 planes, you have one byte per pixel in only one plane.)
In this case, 640x480x256 requires 5 (64K) banks of video memory, 800x600x256
requires 8 banks, 1024x768 uses 12 banks, 1152x900 uses 17 banks, 1280x960 uses
19 banks, 1280x1024 uses 20 banks.  Enough video board manufacturers do their
video bank switching differently that there is no longer any compatibility in the
256 color modes (except for 320x200x256, which is a standard mode, but who wants
to run X in a 320x200 virtual screen?????).  

There is even less compatibility in the 32K color modes.  I'm not sure about the
memory mapping techniques for true (24 bit) color modes.

=================================================================
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