From: hedrick@dumas.rutgers.edu (Charles Hedrick)
Newsgroups: comp.os.linux
Subject: Re: X11 and et4000 cfg.
Date: 27 Jul 92 06:05:35 GMT
Organization: Rutgers Univ., New Brunswick, N.J.

tree@midget.towson.edu (Denise Tree) writes:


>I'm confused because I seem to be abble to call the
>65 anything

Yup.  X386 doesn't know or care what the actual clock speeds are.
It simply says "enable clock number N".  Suppose you have

   mode "123x456"
   clocks 10 20 30 40 50
   
   "123x456"  30 ....

X386 compares this 30 with the list of clocks, and knows to enable the
third clock.  Doesn't matter whether you call it 30 or 65.  Just so
the numbers match.  Of course knowing what the actual speed is helps
in doing various calculations that you need to do if you're going to
get good results.

>The manual
>for this reports that the horizontal scanning frequency is 15.70 to 35khz. 
>and the vertical is 50 to 80 Hz. How do I use this info... the tutorials 
>talk about needing a figure in Mhz? 

Mhz is the main clock on the controller card.  It's the speed at which
pixels are displayed.  Suppose you've got a 1000x1000 screen and a 100
MHz clock.  The beam goes along a horizontal path.  It does 1000 dots
along that path at a speed of 100 MHz.  Thus it does rows at a rate of
100M/1000 = 100KHz.  In one refresh cycle it does 1000 rows.  Thus it
displays images at a rate of 100KHz / 1000 = 100 Hz.  This is the
vertical refresh figure.  To use real numbers, I'm using a NEC
Multisync II, at 640x480, with a clock of 31 MHz.

  "640x480"      31     640  646  680  816    480  480  485  498

Thus each horizontal row involves 816 dots (more or less -- only
640 are real pixels.  The rest is time spent waiting for the beam
to get back to the left for the next row).  Thus the rate at which
rows are being displayed is 

  31000000 / 816 = 37990

There ar 498 rows (again, only 480 real ones), meaning that a whole
vertical cycle is being done at a rate of

  37990 / 498 = 76

That's the "refresh rate" -- 76 images per second.  At least with my
monitor, the limiting factor turns out to be the monitor's horizontal
scanning frequency.  I don't know the official specs, but I can tell
you that if I go over 38KHz, I lose horizontal sync and the image
turns into hash.  I'd like to get as high a refresh rate as possible,
since my eyes are quite sensitive to flicker.  That's why I'm using
640x480, rather than the 800x600 which the monitor can theoretically
do.  The problem is that 38KHz.  Suppose I tried to use 800x600.  What
would the refresh rate be?  Well, whatever I do horizontally, the
final horizontal rate can't be larger than 38000.  (Note that I've
chosen numbers that come out to 37990.)  So with 800x600 I'd end up
with

  38000 / 620 = 61

(I use 620 rather than 600 because of the need for extra time to get
the beam back.  How much you need depends upon the monitor.)  61 Hz is
just too slow for my eyes.  Generally what I suggest you do is work
backwards from the refresh rate you want to get.  Suppose you are
willing to accept 66 Hz.  This is what Sun uses for their "low price
color".  It's fine for most people, though I don't like it.  Your
monitor will go to 35KHz horizontally.  So the most lines you will
want is

   35000 / 66 = 530

(That's the previous calculation done the other way.)  That's about
510 lines, though exactly what you can get depends upon the monitor.
Generally people use a ratio of 1.333 horizontal to vertical, so
unless you want your circles turning into ellipses, you'll end up with
680 dots per row, i.e. 680 x 510.  You'll need some time for the beam
to return, so the actual number of dot times horizontally will be
something 850.  That means you'll need 35000 x 850 = 30 MHz clock.

1024x768 is going to look absurd on your monitor.  The refresh rate
is going to be around

   35000 / 790 = 44

i.e. 44 Hz.  Some people are willing to accept a 60 Hz, though I don't
see how.  But 44 is going to be too much flicker to be acceptable.
Even 800x600 is questionable in my view:

   35000 / 620 = 56

Anything under 60 is a disaster.

>Should I have gotten a more recent et4000 card? A two year old bios seems a 
>little old but I'm not really sure my monitor would support any faster clocks.

Right.  Clock speed is not your problem.  Your monitor simply isn't
fast enough horizontally.  This is something the monitor ads often
don't make clear.  Your monitor is probably advertised as 800x600.
What they don't say is at what refresh rate.  In fact you can probably
get it at 60 Hz.  I'll bet despite the spec of 35KHz, you can probably
push it to 38KHz.  (My monitor is also speced at 35 I think.)  But
even so, 60 Hz refresh is really marginal.

>Uh, Oh I'm really rambling. One more: HOW do I make my windows a different 
>clor other than black on eyeball searing glacial WHITE?

The white is searing because your refresh rate is so slow.  Actually I
prefer another color myself.  But when the monitor seems to be
attacking your eyes, there's a good chance it's because of slow
refresh.  Also, make sure you have a reasonable level of background
lighting.  If you have your monitor in a dark room, your pupils will
open up because of the room darkness, and your monitor will attack
your eyes.

The backgrounds are not set in .twmrc.  .twmrc sets only the colors
used for twm's own menus and decorations.  The applications set their
own colors.  Those are set in .Xdefaults.  E.g. for xterm,

  XTerm*Foreground: black
  XTerm*Background: antiquewhite2

is a combination I like.  I suspect you can just say

  *Foreground: black
  *Background: antiquewhite2

and get all applications that you don't specify otherwise, though what
I actually use is explicit lines for XTerm and emacs.

Emacs is a good tool for experimentation.  Try the following:

  emacs /usr/lib/X11/rbg.txt

That's a file with all the color names in it.  Then try

  ESC X x-set-background
  ESC X x-set-foreground

to see various combinations.  Similar, for fonts, try

  emacs /usr/libX11/fonts/misc/fonts.dir

That will give you a list of all the fonts.  You can then try fonts using

  ESC X x-set-font

Actually, you may prefer fonts.alias, since the full font names in
fonts.dir are a bit long to type.  However I'm not sure whether there
are short aliases for all the fonts or not.
Newsgroups: comp.os.linux