Subject: VideoModes 101
To: None <amiga-x@NetBSD.ORG>
From: David Hopper <bard@tiamat.chaldea.com>
List: amiga-dev
Date: 11/20/1995 10:54:00
All right; I've wrestled with VideoModes.doc at 
ftp:/ftp.cdrom.com/pub/XFree86/doc and I've got some questions
if you folks could lend an ear for a moment:

My current resolution of choice is -MODE 9, which is undocumented
in any /etc/grfmodes that I've seen.  It is hard-coded as an 1152x900,
8-bit, 56 kHz Horizontal and 60.5 Hz Vertical mode.  It's beautiful,
but I'd like to get this in 16 bits.  Possible with 2 megs, because
(1152 x 900 x 2) / 1024 = 2025.

First question:  using the methods described in VideoModes.doc, I
calculate that the mode I'm _currently using_ is impossible.  Xcl-alpha
is being driven at -memclock 65MHz (the default); thus we get the
following:

65MHz / 56kHz = 1160.7.  Rounded to the nearest multiple of 8, that's
1160.  This is the *maximum* Horizontal Frame Length, not including
border space.  The _visible_ resolution at this HFL is around 80%, 
according to VideoModes.doc, or ~928 pixels.  That's a _long_ way from 
1152.

But let's say that the visible resolution is 99.3% of HFL, or 1152
pixels.  Working backwards, we have an XFree86 modeline that looks like 
this:

1152 x x 1160  900 x x x   

Where 'x' is some random trial-and-error number that fits between
those numbers given.  Discouraging, to say the least; but this
situation is at least workable, given a large database of videomodes
to cull from, like XFree86 has.

So about /etc/grfmodes, then:  mucking with the source, I see that
HBE = Horizontal Blank End, HBS = Horizontal Blank Start, VSS =
Vertical Sync Start, and so on.  How do these compare with the
XFree86 modes?  There are only eight gun-clock fields in xf86config,
whereas there are 10 in /etc/grfmodes:

xf86config:       HR  SH1 SH2     HFL  VR  SV1 SV2     VFL
/etc/grfmodes:    HBS HSS HSE HBE HT   VBS VSS VSE VBE VT

They hardly correspond.

What I'd like to do is work backwards; get the sync timings for this
particular mode, define it in /etc/grfmodes (it isn't defined anywhere
right now--it's an internal mode), and bump the depth up to 16.  Does 
anyone have these?  

I can clock at least 70MHz on my Picasso, and my monitor will take 57kHz.  
I'm sure there's a mode out there that's perfect; but the level of 
trial-and-error here is frustrating.  Unless I'm a fundamental dunce and
I'm really missing something here, I'd love to help assemble a FAQ 
on this.

Thanks for listening.  I hope I'm not farting in the wind...

David Hopper (bard@tiamat.chaldea.com)
Anthropology Department, Stanford University
Senior Technical Consultant, Technical Support Group @ Microsoft Corp.
NetBSD 1.1 (tiamat.chaldea.com) : NEXTSTEP 3.3 (marduk.chaldea.com)