OK, This is mildly on topic. My monitor is an HP 1097C, making
it at least 10 years old. However, I am using it with a modern PC, so
that's where the 'on topic' issue gets a little iffy. I'm sure there
are plenty of people here who can answer this question. A pointer to
a FAQ would be most welcome.
These old monitors are Fixed frequency, unlike our modern
monitors which multisync. The 1097C supports only a 78.125 khz
Horizontal Scan Rate and a 72hz Vertical Refresh Rate. Now a couple
of years ago I foolishly bought one of those cards by Mirage
(
www.mirage-mmc.com) which is supposed to be a 'fixed freq video
card'. Actually, it's an OEM Diamond card, basically an S3/968 video
processor with an IBM 52x RAMDAC - ala Diamond Stealth VRAM. The
fixed Freq hacks are basically a resistor (and a jumper selection) to
drive sync over green, and a homebrew PROM to skew the VESA
frequencies for several video and text modes.
It works, but Mirage hasn't been too helpful with getting a
variety of XFree86 modelines, even though they claim to support Linux
and XFree86. They give out _one_ modeline for 1280 x 1024, which they
swiped from the XFree86 distribution in 'Monitors.txt'. For Windows
and Dos, they give out a video driver which seems to work just fine.
It will even display 320x200 full screen (Quake works great in DOS!),
and boots to a functional 80x24 col text mode. How the hell do they
do this?
Here is how I'm calculating my video modes based in the
XFree86VideoModes HOWTO (found in every Redhat 5 distribution):
Dot Clock Per Second
Total Horizontal Pixels Per Line = --------------------------
Horizontal Scanning Rate
Since my refresh rate must be at 72hz to sync with the HP1097C:
Dot Clock
Refresh Rate = -------------------------------------------------
Horizontal Frame Length * Vertical Frame Length
So, it's really more constructive to think of this as how many
pixels _total_ do I need to display in order to get a 72 hz vertical
scan rate with any arbitrary dot clock? In this case I need
Dot Clock
Total Pixels Per Frame (HFLxVFL) = -------------
Refresh Rate
Since I know my Horizontal Pixels Per Line, I can use this to
determine the number of vertical lines which will support a 72 hz
refresh rate.... hmmm, this is where things get sticky. We'll start
with a DCL of 10Mhz...
10Mhz Dot Clock
128 Horizontal Pixels = -----------------------------
78125 hz Vertical Scan Rate
10 Mhz Dot Clock
138888 Total Pixels = ---------------------------
72 hz Refresh Rate
138888.88 Pixels
1085 Vertical Lines Per Frame = -----------------------
128 Horizontal Pixels
Sheesh! A (total) screen resolution of 128H x 1085V? What about
a 20 Mhz dot clock? Well, after graphing the results I quickly
observed this:
S |
T C |
o R R | 128H 256H 384H 512H 640H 1728H **
T E E | x x x x x x
A E S | 1085V 1085V 1085V 1085V 1085V 1085V
L N |
|
DCL ----+------+-------+-------+-------+------- [...] ----+-----
10 20 30 40 50 135
(** Perfect for a usful screen resolution of 1280x1024)
So, based on this, I cannot get small or talored screen
resolutions unless I am willing to accept wide borders and strange
resolutions. Yet my card works....It does _not_ display this
behavior... so I suspect my thinking is to blame. Will someone please
correct me?
Apologies if you consider this post off topic...
J. Maynard Gelinas