home *** CD-ROM | disk | FTP | other *** search
/ Enter 1999 April - Disc 1 / enter_04_1999_1.iso / OS2 / XFREE86 / XDOC.ZIP / XFree86 / lib / X11 / doc / VideoModes.doc < prev    next >
Encoding:
Text File  |  1999-01-09  |  68.6 KB  |  1,849 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                           XFree86 Video Timings HOWTO
  11.  
  12.                        Eric S. Raymond <esr@thyrsus.com>
  13.  
  14.                             Version 3.0, 8 Aug 1997
  15.  
  16.  
  17.  
  18.                                    Abstract
  19.  
  20.      How to compose a mode line for your card/monitor combination under
  21.      XFree86.  The XFree86 distribution now includes good facilities for
  22.      configuring most standard combinations; this document is mainly use-
  23.      ful if you are tuning a custom mode line for a high-performance moni-
  24.      tor or very unusual hardware.  It may also help you in using xvidtune
  25.      to tweak a standard mode that is not quite right for your monitor.
  26.  
  27.  
  28.  
  29. 1.  Disclaimer
  30.  
  31. You use the material herein SOLELY AT YOUR OWN RISK.  It is possible to harm
  32. both your monitor and yourself when driving it outside the manufacturer's
  33. specs. Read Overdriving Your Monitor (section 11., page 18) for detailed cau-
  34. tions. Any damages to you or your monitor caused by overdriving it are your
  35. problem.
  36.  
  37. The most up-to-date version of this HOWTO can be found at the Linux Documenta-
  38. tion Project <URL:http://sunsite.unc.edu/LDP> web page.
  39.  
  40. Please direct comments, criticism, and suggestions for improvement to
  41. esr@snark.thyrsus.com. Please do not send email pleading for a magic solution
  42. to your special monitor problem, as doing so will only burn up my time and
  43. frustrate you -- everything I know about the subject is already in here.
  44.  
  45.  
  46. 2.  Introduction
  47.  
  48. The XFree86 server allows users to configure their video subsystem and thus
  49. encourages best use of existing hardware.  This tutorial is intended to help
  50. you learn how to generate your own timing numbers to make optimum use of your
  51. video card and monitor.
  52.  
  53. We'll present a method for getting something that works, and then show you how
  54. you can experiment starting from that base to develop settings that optimize
  55. for your taste.
  56.  
  57. Starting with XFree86 3.2, XFree86 provides an XF86Setup(1) program that makes
  58. it easy to generate a working monitor mode interactively, without messing with
  59. video timing number directly.  So you shouldn't actually need to calculate a
  60. base monitor mode in most cases.  Unfortunately, XF86Setup(1) has some limita-
  61. tions; it only knows about standard video modes up to 1280x1024.  If you have a
  62.  
  63.  
  64. XFree86 Video Timings HOWTO                                                   1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. XFree86 Video Timings HOWTO                                                   2
  71.  
  72.  
  73.  
  74. very high-performance monitor capable of 1600x1200 or more you will still have
  75. to compute your base monitor mode yourself.
  76.  
  77. Recent versions of XFree86 provide a tool called xvidtune(1) which you will
  78. probably find quite useful for testing and tuning monitor modes.  It begins
  79. with a gruesome warning about the possible consequences of mistakes with it.
  80. If you pay careful attention to this document and learn what is behind the
  81. pretty numbers in xvidtune's boxes, you will become able to use xvidtune effec-
  82. tively and with confidence.
  83.  
  84. If you already have a mode that almost works (in particular, if one of prede-
  85. fined VESA modes gives you a stable display but one that's displaced right or
  86. left, or too small, or too large) you can go straight to the section on Fixing
  87. Problems with the Image (section 14., page 21).  This will enlighten you on
  88. ways to tweak the timing numbers to achieve particular effects.
  89.  
  90. If you have xvidtune(1), you'll be able to test new modes on the fly, without
  91. modifying your X configuration files or even rebooting your X server.  Other-
  92. wise, XFree86 allows you to hot-key between different modes defined in Xconfig
  93. (see XFree86.man for details).  Use this capability to save yourself hassles!
  94. When you want to test a new mode, give it a unique mode label and add it to the
  95. end of your hot-key list.  Leave a known-good mode as the default to fall back
  96. on if the test mode doesn't work.
  97.  
  98.  
  99. 3.  How Video Displays Work
  100.  
  101. Knowing how the display works is essential to understanding what numbers to put
  102. in the various fields in the file Xconfig.  Those values are used in the lowest
  103. levels of controlling the display by the XFree86 server.
  104.  
  105. The display generates a picture from a series of dots.  The dots are arranged
  106. from left to right to form lines.  The lines are arranged from top to bottom to
  107. form the picture.  The dots emit light when they are struck by the electron
  108. beam inside the display.  To make the beam strike each dot for an equal amount
  109. of time, the beam is swept across the display in a constant pattern.
  110.  
  111. The pattern starts at the top left of the screen, goes across the screen to the
  112. right in a straight line, and stops temporarily on the right side of the
  113. screen.  Then the beam is swept back to the left side of the display, but down
  114. one line.  The new line is swept from left to right just as the first line was.
  115. This pattern is repeated until the bottom line on the display has been swept.
  116. Then the beam is moved from the bottom right corner of the display to the top
  117. left corner, and the pattern is started over again.
  118.  
  119. There is one variation of this scheme known as interlacing: here only every
  120. second line is swept during one half-frame and the others are filled in in dur-
  121. ing a second half-frame.
  122.  
  123. Starting the beam at the top left of the display is called the beginning of a
  124. frame.  The frame ends when the beam reaches the the top left corner again as
  125. it comes from the bottom right corner of the display.  A frame is made up of
  126. all of the lines the beam traced from the top of the display to the bottom.
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. XFree86 Video Timings HOWTO                                                   3
  137.  
  138.  
  139.  
  140. If the electron beam were on all of the time it was sweeping through the frame,
  141. all of the dots on the display would be illuminated.  There would be no black
  142. border around the edges of the display.  At the edges of the display the pic-
  143. ture would become distorted because the beam is hard to control there.  To
  144. reduce the distortion, the dots around the edges of the display are not illumi-
  145. nated by the beam even though the beam may be pointing at them.  The viewable
  146. area of the display is reduced this way.
  147.  
  148. Another important thing to understand is what becomes of the beam when no spot
  149. is being painted on the visible area.  The time the beam would have been illu-
  150. minating the side borders of the display is used for sweeping the beam back
  151. from the right edge to the left and moving the beam down to the next line.  The
  152. time the beam would have been illuminating the top and bottom borders of the
  153. display is used for moving the beam from the bottom-right corner of the display
  154. to the top-left corner.
  155.  
  156. The adapter card generates the signals which cause the display to turn on the
  157. electron beam at each dot to generate a picture.  The card also controls when
  158. the display moves the beam from the right side to the left and down a line by
  159. generating a signal called the horizontal sync (for synchronization) pulse.
  160. One horizontal sync pulse occurs at the end of every line.  The adapter also
  161. generates a vertical sync pulse which signals the display to move the beam to
  162. the top-left corner of the display.  A vertical sync pulse is generated near
  163. the end of every frame.
  164.  
  165. The display requires that there be short time periods both before and after the
  166. horizontal and vertical sync pulses so that the position of the electron beam
  167. can stabilize.  If the beam can't stabilize, the picture will not be steady.
  168.  
  169. In a later section, we'll come back to these basics with definitions, formulas
  170. and examples to help you use them.
  171.  
  172.  
  173. 4.  Basic Things to Know about your Display and Adapter
  174.  
  175. There are some fundamental things you need to know before hacking an Xconfig
  176. entry.  These are:
  177.  
  178.    o your monitor's horizontal and vertical sync frequency options
  179.  
  180.    o your video adapter's driving clock frequency, or "dot clock"
  181.  
  182.    o your monitor's bandwidth
  183.  
  184. The monitor sync frequencies:
  185.  
  186. The horizontal sync frequency is just the number of times per second the moni-
  187. tor can write a horizontal scan line; it is the single most important statistic
  188. about your monitor.  The vertical sync frequency is the number of times per
  189. second the monitor can traverse its beam vertically.
  190.  
  191. Sync frequencies are usually listed on the specifications page of your monitor
  192. manual.  The vertical sync frequency number is typically calibrated in Hz
  193. (cycles per second), the horizontal one in KHz (kilocycles per second).  The
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. XFree86 Video Timings HOWTO                                                   4
  203.  
  204.  
  205.  
  206. usual ranges are between 50 and 150Hz vertical, and between 31 and 135KHz hori-
  207. zontal.
  208.  
  209. If you have a multisync monitor, these frequencies will be given as ranges.
  210. Some monitors, especially lower-end ones, have multiple fixed frequencies.
  211. These can be configured too, but your options will be severely limited by the
  212. built-in monitor characteristics.  Choose the highest frequency pair for best
  213. resolution.  And be careful --- trying to clock a fixed-frequency monitor at a
  214. higher speed than it's designed for can easily damage it.
  215.  
  216. Earlier versions of this guide were pretty cavalier about overdriving multisync
  217. monitors, pushing them past their nominal highest vertical sync frequency in
  218. order to get better performance.  We have since had more reasons pointed out to
  219. us for caution on this score; we'll cover those under Overdriving Your Monitor
  220. (section 11., page 18) below.
  221.  
  222. The card driving clock frequency:
  223.  
  224. Your video adapter manual's spec page will usually give you the card's dot
  225. clock (that is, the total number of pixels per second it can write to the
  226. screen).  If you don't have this information, the X server will get it for you.
  227. Even if your X locks up your monitor, it will emit a line of clock and other
  228. info to standard output.  If you redirect this to a file, it should be saved
  229. even if you have to reboot to get your console back.  (Recent versions of the X
  230. servers all support a --probeonly option that prints out this information and
  231. exits without actually starting up X or changing the video mode.)
  232.  
  233. Your X startup message should look something like one of the following exam-
  234. ples:
  235.  
  236. If you're using XFree86:
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. XFree86 Video Timings HOWTO                                                   5
  269.  
  270.  
  271.  
  272.      Xconfig: /usr/X11R6/lib/X11/Xconfig
  273.      (**) stands for supplied, (--) stands for probed/default values
  274.      (**) Mouse: type: MouseMan, device: /dev/ttyS1, baudrate: 9600
  275.      Warning: The directory "/usr/andrew/X11fonts" does not exist.
  276.               Entry deleted from font path.
  277.      (**) FontPath set to "/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/"
  278.      (--) S3: card type: 386/486 localbus
  279.      (--) S3: chipset:   924
  280.                          ---
  281.          Chipset -- this is the exact chip type; an early mask of the 86C911
  282.  
  283.      (--) S3: chipset driver: s3_generic
  284.      (--) S3: videoram:  1024k
  285.                          -----
  286.               Size of on-board frame-buffer RAM
  287.  
  288.      (**) S3: clocks:  25.00  28.00  40.00   3.00  50.00  77.00  36.00  45.00
  289.      (**) S3: clocks:   0.00   0.00  79.00  31.00  94.00  65.00  75.00  71.00
  290.                        ------------------------------------------------------
  291.                                    Possible driving frequencies in MHz
  292.  
  293.      (--) S3: Maximum allowed dot-clock: 110MHz
  294.                                          ------
  295.                                         Bandwidth
  296.      (**) S3: Mode "1024x768": mode clock =  79.000, clock used =  79.000
  297.      (--) S3: Virtual resolution set to 1024x768
  298.      (--) S3: Using a banksize of 64k, line width of 1024
  299.      (--) S3: Pixmap cache:
  300.      (--) S3: Using 2 128-pixel 4 64-pixel and 8 32-pixel slots
  301.      (--) S3: Using 8 pages of 768x255 for font caching
  302.  
  303. If you're using SGCS or X/Inside X:
  304.  
  305.      WGA: 86C911 (mem: 1024k clocks: 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71)
  306.      ---  ------       -----         --------------------------------------------
  307.       |     |            |                 Possible driving frequencies in MHz
  308.       |     |            +-- Size of on-board frame-buffer RAM
  309.       |     +-- Chip type
  310.       +-- Server type
  311.  
  312. Note: do this with your machine unloaded (if at all possible).  Because X is an
  313. application, its timing loops can collide with disk activity, rendering the
  314. numbers above inaccurate.  Do it several times and watch for the numbers to
  315. stabilize; if they don't, start killing processes until they do.  SVr4 users:
  316. the mousemgr process is particularly likely to mess you up.
  317.  
  318. In order to avoid the clock-probe inaccuracy, you should clip out the clock
  319. timings and put them in your Xconfig as the value of the Clocks property ---
  320. this suppresses the timing loop and gives X an exact list of the clock values
  321. it can try.  Using the data from the example above:
  322.  
  323.      wga
  324.           Clocks    25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. XFree86 Video Timings HOWTO                                                   6
  335.  
  336.  
  337.  
  338. On systems with a highly variable load, this may help you avoid mysterious X
  339. startup failures.  It's possible for X to come up, get its timings wrong due to
  340. system load, and then not be able to find a matching dot clock in its config
  341. database --- or find the wrong one!
  342.  
  343. 4.1  The monitor's video bandwidth:
  344.  
  345. If you're running XFree86, your server will probe your card and tell you what
  346. your highest-available dot clock is.
  347.  
  348. Otherwise, your highest available dot clock is approximately the monitor's
  349. video bandwidth.  There's a lot of give here, though --- some monitors can run
  350. as much as 30% over their nominal bandwidth.  The risks here have to do with
  351. exceeding the monitor's rated vertical-sync frequency; we'll discuss them in
  352. detail below.
  353.  
  354. Knowing the bandwidth will enable you to make more intelligent choices between
  355. possible configurations.  It may affect your display's visual quality (espe-
  356. cially sharpness for fine details).
  357.  
  358. Your monitor's video bandwidth should be included on the manual's spec page.
  359. If it's not, look at the monitor's highest rated resolution.  As a rule of
  360. thumb, here's how to translate these into bandwidth estimates (and thus into
  361. rough upper bounds for the dot clock you can use):
  362.  
  363.           640x480             25
  364.           800x600             36
  365.           1024x768       65
  366.           1024x768 interlaced 45
  367.           1280x1024      110
  368.           1600x1200      185
  369.  
  370. BTW, there's nothing magic about this table; these numbers are just the lowest
  371. dot clocks per resolution in the standard XFree86 Modes database (except for
  372. the last, which I interpolated).  The bandwidth of your monitor may actually be
  373. higher than the minimum needed for its top resolution, so don't be afraid to
  374. try a dot clock a few MHz higher.
  375.  
  376. Also note that bandwidth is seldom an issue for dot clocks under 65MHz or so.
  377. With an SVGA card and most hi-res monitors, you can't get anywhere near the
  378. limit of your monitor's video bandwidth.  The following are examples:
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. XFree86 Video Timings HOWTO                                                   7
  401.  
  402.  
  403.  
  404.           Brand                    Video Bandwidth
  405.           ----------               ---------------
  406.           NEC 4D                   75Mhz
  407.           Nano 907a           50Mhz
  408.           Nano 9080i               60Mhz
  409.           Mitsubishi HL6615        110Mhz
  410.           Mitsubishi Diamond Scan       100Mhz
  411.           IDEK MF-5117             65Mhz
  412.           IOCOMM Thinksync-17 CM-7126   136Mhz
  413.           HP D1188A           100Mhz
  414.           Philips SC-17AS               110Mhz
  415.           Swan SW617               85Mhz
  416.           Viewsonic 21PS           185Mhz
  417.  
  418.  
  419. Even low-end monitors usually aren't terribly bandwidth-constrained for their
  420. rated resolutions.  The NEC Multisync II makes a good example --- it can't even
  421. display 800x600 per its spec.  It can only display 800x560.  For such low reso-
  422. lutions you don't need high dot clocks or a lot of bandwidth; probably the best
  423. you can do is 32Mhz or 36Mhz, both of them are still not too far from the moni-
  424. tor's rated video bandwidth of 30Mhz.
  425.  
  426. At these two driving frequencies, your screen image may not be as sharp as it
  427. should be, but definitely of tolerable quality. Of course it would be nicer if
  428. NEC Multisync II had a video bandwidth higher than, say, 36Mhz.  But this is
  429. not critical for common tasks like text editing, as long as the difference is
  430. not so significant as to cause severe image distortion (your eyes would tell
  431. you right away if this were so).
  432.  
  433. 4.2  What these control:
  434.  
  435. The sync frequency ranges of your monitor, together with your video adapter's
  436. dot clock, determine the ultimate resolution that you can use.  But it's up to
  437. the driver to tap the potential of your hardware.  A superior hardware combina-
  438. tion without an equally competent device driver is a waste of money.  On the
  439. other hand, with a versatile device driver but less capable hardware, you can
  440. push the hardware's envelope a little.  This is the design philosophy of
  441. XFree86.
  442.  
  443.  
  444. 5.  Interpreting the Basic Specifications
  445.  
  446. This section explains what the specifications above mean, and some other things
  447. you'll need to know.  First, some definitions.  Next to each in parens is the
  448. variable name we'll use for it when doing calculations
  449.  
  450.       horizontal sync frequency (HSF)
  451.             Horizontal scans per second (see above).
  452.  
  453.       vertical sync frequency (VSF)
  454.             Vertical scans per second (see above).  Mainly important as the
  455.             upper limit on your refresh rate.
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. XFree86 Video Timings HOWTO                                                   8
  467.  
  468.  
  469.  
  470.       dot clock (DCF)
  471.             More formally, `driving clock frequency'; The frequency of the
  472.             crystal or VCO on your adaptor --- the maximum dots-per-second it
  473.             can emit.
  474.  
  475.       video bandwidth (VB)
  476.             The highest frequency you can feed into your monitor's video input
  477.             and still expect to see anything discernible. If your adaptor pro-
  478.             duces an alternating on/off pattern, its lowest frequency is half
  479.             the DCF, so in theory bandwidth starts making sense at DCF/2. For
  480.             tolerably crisp display of fine details in the video image, how-
  481.             ever, you don't want it much below your highest DCF, and preferably
  482.             higher.
  483.  
  484.       frame length (HFL, VFL)
  485.             Horizontal frame length (HFL) is the number of dot-clock ticks
  486.             needed for your monitor's electron gun to scan one horizontal line,
  487.             including the inactive left and right borders.  Vertical frame
  488.             length (VFL) is the number of scan lines in the entire image,
  489.             including the inactive top and bottom borders.
  490.  
  491.       screen refresh rate (RR)
  492.             The number of times per second your screen is repainted (this is
  493.             also called "frame rate").  Higher frequencies are better, as they
  494.             reduce flicker.  60Hz is good, VESA-standard 72Hz is better.  Com-
  495.             pute it as
  496.  
  497.                       RR = DCF / (HFL * VFL)
  498.  
  499.             Note that the product in the denominator is not the same as the
  500.             monitor's visible resolution, but typically somewhat larger.  We'll
  501.             get to the details of this below.
  502.  
  503.             The rates for which interlaced modes are usually specified (like
  504.             87Hz interlaced) are actually the half-frame rates: an entire
  505.             screen seems to have about that flicker frequency for typical dis-
  506.             plays, but every single line is refreshed only half as often.
  507.  
  508.             For calculation purposes we reckon an interlaced display at its
  509.             full-frame (refresh) rate, i.e. 43.5Hz. The quality of an inter-
  510.             laced mode is better than that of a non-interlaced mode with the
  511.             same full-frame rate, but definitely worse then the non-interlaced
  512.             one corresponding to the half-frame rate.
  513.  
  514. 5.1  About Bandwidth:
  515.  
  516. Monitor makers like to advertise high bandwidth because it constrains the
  517. sharpness of intensity and color changes on the screen.  A high bandwidth means
  518. smaller visible details.
  519.  
  520. Your monitor uses electronic signals to present an image to your eyes.  Such
  521. signals always come in in wave form once they are converted into analog form
  522. from digitized form.  They can be considered as combinations of many simpler
  523. wave forms each one of which has a fixed frequency, many of them are in the Mhz
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. XFree86 Video Timings HOWTO                                                   9
  533.  
  534.  
  535.  
  536. range, eg, 20Mhz, 40Mhz, or even 70Mhz.  Your monitor video bandwidth is,
  537. effectively, the highest-frequency analog signal it can handle without distor-
  538. tion.
  539.  
  540. For our purposes, bandwidth is mainly important as an approximate cutoff point
  541. for the highest dot clock you can use.
  542.  
  543. 5.2  Sync Frequencies and the Refresh Rate:
  544.  
  545. Each horizontal scan line on the display is just the visible portion of a
  546. frame-length scan.  At any instant there is actually only one dot active on the
  547. screen, but with a fast enough refresh rate your eye's persistence of vision
  548. enables you to "see" the whole image.
  549.  
  550. Here are some pictures to help:
  551.  
  552.           _______________________
  553.          |                       |     The horizontal sync frequency
  554.          |->->->->->->->->->->-> |     is the number of times per
  555.          |                      )|     second that the monitor's
  556.          |<-----<-----<-----<--- |     electron beam can trace
  557.          |                       |     a pattern like this
  558.          |                       |
  559.          |                       |
  560.          |                       |
  561.          |_______________________|
  562.           _______________________
  563.          |        ^              |     The vertical sync frequency
  564.          |       ^ |             |     is the number of times per
  565.          |       | v             |     second that the monitor's
  566.          |       ^ |             |     electron beam can trace
  567.          |       | |             |     a pattern like this
  568.          |       ^ |             |
  569.          |       | v             |
  570.          |       ^ |             |
  571.          |_______|_v_____________|
  572.  
  573. Remember that the actual raster scan is a very tight zigzag pattern; that is,
  574. the beam moves left-right and at the same time up-down.
  575.  
  576. Now we can see how the dot clock and frame size relates to refresh rate.  By
  577. definition, one hertz (hz) is one cycle per second.  So, if your horizontal
  578. frame length is HFL and your vertical frame length is VFL, then to cover the
  579. entire screen takes (HFL * VFL) ticks.  Since your card emits DCF ticks per
  580. second by definition, then obviously your monitor's electron gun(s) can sweep
  581. the screen from left to right and back and from bottom to top and back DCF /
  582. (HFL * VFL) times/sec.  This is your screen's refresh rate, because it's how
  583. many times your screen can be updated (thus refreshed) per second!
  584.  
  585. You need to understand this concept to design a configuration which trades off
  586. resolution against flicker in whatever way suits your needs.
  587.  
  588. For those of you who handle visuals better than text, here is one:
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. XFree86 Video Timings HOWTO                                                  10
  599.  
  600.  
  601.  
  602.              RR                                      VB
  603.               |   min HSF                     max HSF |
  604.               |    |             R1        R2  |      |
  605.      max VSF -+----|------------/----------/---|------+----- max VSF
  606.               |    |:::::::::::/::::::::::/:::::\     |
  607.               |    \::::::::::/::::::::::/:::::::\    |
  608.               |     |::::::::/::::::::::/:::::::::|   |
  609.               |     |:::::::/::::::::::/::::::::::\   |
  610.               |     \::::::/::::::::::/::::::::::::\  |
  611.               |      \::::/::::::::::/::::::::::::::| |
  612.               |       |::/::::::::::/:::::::::::::::| |
  613.               |        \/::::::::::/:::::::::::::::::\|
  614.               |        /\:::::::::/:::::::::::::::::::|
  615.               |       /  \:::::::/::::::::::::::::::::|\
  616.               |      /    |:::::/:::::::::::::::::::::| |
  617.               |     /     \::::/::::::::::::::::::::::| \
  618.      min VSF -+----/-------\--/-----------------------|--\--- min VSF
  619.               |   /         \/                        |   \
  620.               +--/----------/\------------------------+----\- DCF
  621.                 R1        R2  \                       |     \
  622.                                min HSF                |    max HSF
  623.                                                       VB
  624.  
  625. This is a generic monitor mode diagram.  The x axis of the diagram shows the
  626. clock rate (DCF), the y axis represents the refresh rate (RR). The filled
  627. region of the diagram describes the monitor's capabilities: every point within
  628. this region is a possible video mode.
  629.  
  630. The lines labeled `R1' and `R2' represent a fixed resolutions (such as
  631. 640x480); they are meant to illustrate how one resolution can be realized by
  632. many different combinations of dot clock and refresh rate. The R2 line would
  633. represent a higher resolution than R1.
  634.  
  635. The top and bottom boundaries of the permitted region are simply horizontal
  636. lines representing the limiting values for the vertical sync frequency. The
  637. video bandwidth is an upper limit to the clock rate and hence is represented by
  638. a vertical line bounding the capability region on the right.
  639.  
  640. Under Plotting Monitor Capabilities (section 15., page 22)) you'll find a pro-
  641. gram that will help you plot a diagram like this (but much nicer, with X graph-
  642. ics) for your individual monitor.  That section also discusses the interesting
  643. part; the derivation of the boundaries resulting from the limits on the hori-
  644. zontal sync frequency.
  645.  
  646.  
  647. 6.  Tradeoffs in Configuring your System
  648.  
  649. Another way to look at the formula we derived above is
  650.  
  651.           DCF = RR * HFL * VFL
  652.  
  653.  
  654. That is, your dot clock is fixed.  You can use those dots per second to buy
  655. either refresh rate, horizontal resolution, or vertical resolution.  If one of
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. XFree86 Video Timings HOWTO                                                  11
  665.  
  666.  
  667.  
  668. those increases, one or both of the others must decrease.
  669.  
  670. Note, though, that your refresh rate cannot be greater than the maximum verti-
  671. cal sync frequency of your monitor.  Thus, for any given monitor at a given dot
  672. clock, there is a minimum product of frame lengths below which you can't force
  673. it.
  674.  
  675. In choosing your settings, remember: if you set RR too low, you will get mugged
  676. by screen flicker.
  677.  
  678. You probably do not want to pull your refresh rate below 60Hz.  This is the
  679. flicker rate of fluorescent lights; if you're sensitive to those, you need to
  680. hang with 72Hz, the VESA ergonomic standard.
  681.  
  682. Flicker is very eye-fatiguing, though human eyes are adaptable and peoples'
  683. tolerance for it varies widely.  If you face your monitor at a 90% viewing
  684. angle, are using a dark background and a good contrasting color for foreground,
  685. and stick with low to medium intensity, you *may* be comfortable at as little
  686. as 45Hz.
  687.  
  688. The acid test is this: open a xterm with pure white back-ground and black fore-
  689. ground using xterm -bg white -fg black and make it so large as to cover the
  690. entire viewable area.  Now turn your monitor's intensity to 3/4 of its maximum
  691. setting, and turn your face away from the monitor.  Try peeking at your monitor
  692. sideways (bringing the more sensitive peripheral-vision cells into play).  If
  693. you don't sense any flicker or if you feel the flickering is tolerable, then
  694. that refresh rate is fine with you.  Otherwise you better configure a higher
  695. refresh rate, because that semi-invisible flicker is going to fatigue your eyes
  696. like crazy and give you headaches, even if the screen looks OK to normal
  697. vision.
  698.  
  699. For interlaced modes, the amount of flicker depends on more factors such as the
  700. current vertical resolution and the actual screen contents.  So just experi-
  701. ment.  You won't want to go much below about 85Hz half frame rate, though.
  702.  
  703. So let's say you've picked a minimum acceptable refresh rate.  In choosing your
  704. HFL and VFL, you'll have some room for maneuver.
  705.  
  706.  
  707. 7.  Memory Requirements
  708.  
  709. Available frame-buffer RAM may limit the resolution you can achieve on color or
  710. gray-scale displays.  It probably isn't a factor on displays that have only two
  711. colors, white and black with no shades of gray in between.
  712.  
  713. For 256-color displays, a byte of video memory is required for each visible dot
  714. to be shown.  This byte contains the information that determines what mix of
  715. red, green, and blue is generated for its dot.  To get the amount of memory
  716. required, multiply the number of visible dots per line by the number of visible
  717. lines.  For a display with a resolution of 800x600, this would be 800 x 600 =
  718. 480,000, which is the number of visible dots on the display.  This is also, at
  719. one byte per dot, the number of bytes of video memory that are necessary on
  720. your adapter card.
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. XFree86 Video Timings HOWTO                                                  12
  731.  
  732.  
  733.  
  734. Thus, your memory requirement will typically be (HR * VR)/1024 Kbytes of VRAM,
  735. rounded up.  If you have more memory than strictly required, you'll have extra
  736. for virtual-screen panning.
  737.  
  738. However, if you only have 512K on board, then you can't use this resolution.
  739. Even if you have a good monitor, without enough video RAM, you can't take
  740. advantage of your monitor's potential.  On the other hand, if your SVGA has one
  741. meg, but your monitor can display at most 800x600, then high resolution is
  742. beyond your reach anyway (see Using Interlaced Modes (section 12., page 19) for
  743. a possible remedy).
  744.  
  745. Don't worry if you have more memory than required; XFree86 will make use of it
  746. by allowing you to scroll your viewable area (see the Xconfig file documenta-
  747. tion on the virtual screen size parameter).  Remember also that a card with
  748. 512K bytes of memory really doesn't have 512,000 bytes installed, it has 512 x
  749. 1024 = 524,288 bytes.
  750.  
  751. If you're running SGCS X (now called X/Inside) using an S3 card, and are will-
  752. ing to live with 16 colors (4 bits per pixel), you can set depth 4 in Xconfig
  753. and effectively double the resolution your card can handle.  S3 cards, for
  754. example, normally do 1024x768x256.  You can make them do 1280x1024x16 with
  755. depth 4.
  756.  
  757.  
  758. 8.  Computing Frame Sizes
  759.  
  760. Warning: this method was developed for multisync monitors.  It will probably
  761. work with fixed-frequency monitors as well, but no guarantees!
  762.  
  763. Start by dividing DCF by your highest available HSF to get a horizontal frame
  764. length.
  765.  
  766. For example; suppose you have a Sigma Legend SVGA with a 65MHz dot clock, and
  767. your monitor has a 55KHz horizontal scan frequency.  The quantity (DCF / HSF)
  768. is then 1181 (65MHz = 65000KHz; 65000/55 = 1181).
  769.  
  770. Now for our first bit of black magic.  You need to round this figure to the
  771. nearest multiple of 8.  This has to do with the VGA hardware controller used by
  772. SVGA and S3 cards; it uses an 8-bit register, left-shifted 3 bits, for what's
  773. really an 11-bit quantity.  Other card types such as ATI 8514/A may not have
  774. this requirement, but we don't know and the correction can't hurt.  So round
  775. the usable horizontal frame length figure down to 1176.
  776.  
  777. This figure (DCF / HSF rounded to a multiple of 8) is the minimum HFL you can
  778. use.  You can get longer HFLs (and thus, possibly, more horizontal dots on the
  779. screen) by setting the sync pulse to produce a lower HSF.  But you'll pay with
  780. a slower and more visible flicker rate.
  781.  
  782. As a rule of thumb, 80% of the horizontal frame length is available for hori-
  783. zontal resolution, the visible part of the horizontal scan line (this allows,
  784. roughly, for borders and sweepback time -- that is, the time required for the
  785. beam to move from the right screen edge to the left edge of the next raster
  786. line).  In this example, that's 944 ticks.
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. XFree86 Video Timings HOWTO                                                  13
  797.  
  798.  
  799.  
  800. Now, to get the normal 4:3 screen aspect ratio, set your vertical resolution to
  801. 3/4ths of the horizontal resolution you just calculated.   For this example,
  802. that's 708 ticks.  To get your actual VFL, multiply that by 1.05 to get 743
  803. ticks.
  804.  
  805. The 4:3 is not technically magic; nothing prevents you from using a non-Golden-
  806. Section ratio if that will get the best use out of your screen real estate.  It
  807. does make figuring frame height and frame width from the diagonal size conve-
  808. nient, you just multiply the diagonal by by 0.8 to get width and 0.6 to get
  809. height.
  810.  
  811. So, HFL=1176 and VFL=743.  Dividing 65MHz by the product of the two gives us a
  812. nice, healthy 74.4Hz refresh rate.  Excellent!  Better than VESA standard!  And
  813. you got 944x708 to boot, more than the 800 by 600 you were probably expecting.
  814. Not bad at all!
  815.  
  816. You can even improve the refresh rate further, to almost 76 Hz, by using the
  817. fact that monitors can often sync horizontally at 2khz or so higher than rated,
  818. and by lowering VFL somewhat (that is, taking less than 75% of 944 in the exam-
  819. ple above).  But before you try this "overdriving" maneuver, if you do, make
  820. sure that your monitor electron guns can sync up to 76 Hz vertical.  (the popu-
  821. lar NEC 4D, for instance, cannot.  It goes only up to 75 Hz VSF).  (See Over-
  822. driving Your Monitor (section 11., page 18) for more general discussion of this
  823. issue. )
  824.  
  825. So far, most of this is simple arithmetic and basic facts about raster dis-
  826. plays.  Hardly any black magic at all!
  827.  
  828.  
  829. 9.  Black Magic and Sync Pulses
  830.  
  831. OK, now you've computed HFL/VFL numbers for your chosen dot clock, found the
  832. refresh rate acceptable, and checked that you have enough VRAM.  Now for the
  833. real black magic -- you need to know when and where to place synchronization
  834. pulses.
  835.  
  836. The sync pulses actually control the horizontal and vertical scan frequencies
  837. of the monitor.  The HSF and VSF you've pulled off the spec sheet are nominal,
  838. approximate maximum sync frequencies.  The sync pulse in the signal from the
  839. adapter card tells the monitor how fast to actually run.
  840.  
  841. Recall the two pictures above?  Only part of the time required for raster-scan-
  842. ning a frame is used for displaying viewable image (ie. your resolution).
  843.  
  844. 9.1  Horizontal Sync:
  845.  
  846. By previous definition, it takes HFL ticks to trace the a horizontal scan line.
  847. Let's call the visible tick count (your horizontal screen resolution) HR.  Then
  848. Obviously, HR < HFL by definition.  For concreteness, let's assume both start
  849. at the same instant as shown below:
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. XFree86 Video Timings HOWTO                                                  14
  863.  
  864.  
  865.  
  866.        |___ __ __ __ __ __ __ __ __ __ __ __ __
  867.        |_ _ _ _ _ _ _ _ _ _ _ _                |
  868.        |_______________________|_______________|_____
  869.        0                       ^               ^     unit: ticks
  870.                                |   ^       ^   |
  871.                                HR  |       |  HFL
  872.                                |   |<----->|   |
  873.                                |<->|  HSP  |<->|
  874.                                HGT1         HGT2
  875.  
  876. Now, we would like to place a sync pulse of length HSP as shown above, ie,
  877. between the end of clock ticks for display data and the end of clock ticks for
  878. the entire frame.  Why so?  because if we can achieve this, then your screen
  879. image won't shift to the right or to the left.  It will be where it supposed to
  880. be on the screen, covering squarely the monitor's viewable area.
  881.  
  882. Furthermore, we want about 30 ticks of "guard time" on either side of the sync
  883. pulse.  This is represented by HGT1 and HGT2.  In a typical configuration HGT1
  884. != HGT2, but if you're building a configuration from scratch, you want to start
  885. your experimentation with them equal (that is, with the sync pulse centered).
  886.  
  887. The symptom of a misplaced sync pulse is that the image is displaced on the
  888. screen, with one border excessively wide and the other side of the image
  889. wrapped around the screen edge, producing a white edge line and a band of
  890. "ghost image" on that side.  A way-out-of-place vertical sync pulse can actu-
  891. ally cause the image to roll like a TV with a mis-adjusted vertical hold (in
  892. fact, it's the same phenomenon at work).
  893.  
  894. If you're lucky, your monitor's sync pulse widths will be documented on its
  895. specification page.  If not, here's where the real black magic starts...
  896.  
  897. You'll have to do a little trial and error for this part.  But most of the
  898. time, we can safely assume that a sync pulse is about 3.5 to 4.0 microsecond in
  899. length.
  900.  
  901. For concreteness again, let's take HSP to be 3.8 microseconds (which btw, is
  902. not a bad value to start with when experimenting).
  903.  
  904. Now, using the 65Mhz clock timing above, we know HSP is equivalent to 247 clock
  905. ticks (= 65 * 10**6 * 3.8 * 10^-6) [recall M=10^6, micro=10^-6]
  906.  
  907. Some makers like to quote their horizontal framing parameters as timings rather
  908. than dot widths.  You may see the following terms:
  909.  
  910.       active time (HAT)
  911.             Corresponds to HR, but in milliseconds.  HAT * DCF = HR.
  912.  
  913.       blanking time (HBT)
  914.             Corresponds to (HFL - HR), but in milliseconds.  HBT * DCF = (HFL -
  915.             HR).
  916.  
  917.       front porch (HFP)
  918.             This is just HGT1.
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. XFree86 Video Timings HOWTO                                                  15
  929.  
  930.  
  931.  
  932.       sync time
  933.             This is just HSP.
  934.  
  935.       back porch (HBP)
  936.             This is just HGT2.
  937.  
  938. 9.2  Vertical Sync:
  939.  
  940. Going back to the picture above, how do we place the 247 clock ticks as shown
  941. in the picture?
  942.  
  943. Using our example, HR is 944 and HFL is 1176.  The difference between the two
  944. is 1176 - 944=232 < 247!  Obviously we have to do some adjustment here.  What
  945. can we do?
  946.  
  947. The first thing is to raise 1176 to 1184, and lower 944 to 936.  Now the dif-
  948. ference = 1184-936= 248. Hmm, closer.
  949.  
  950. Next, instead using 3.8, we use 3.5 for calculating HSP; then, we have
  951. 65*3.5=227.  Looks better.  But 248 is not much higher than 227.  It's normally
  952. necessary to have 30 or so clock ticks between HR and the start of SP, and the
  953. same for the end of SP and HFL.  AND they have to be multiple of eight!  Are we
  954. stuck?
  955.  
  956. No.  Let's do this, 936 % 8 = 0, (936 + 32) % 8 = 0 too.  But 936 + 32 = 968,
  957. 968 + 227 = 1195, 1195 + 32 = 1227.  Hmm.. this looks not too bad.  But it's
  958. not a multiple of 8, so let's round it up to 1232.
  959.  
  960. But now we have potential trouble, the sync pulse is no longer placed right in
  961. the middle between h and H any more.  Happily, using our calculator we find
  962. 1232 - 32 = 1200 is also a multiple of 8 and (1232 - 32) - 968 = 232 corre-
  963. sponding using a sync pulse of 3.57 micro second long, still reasonable.
  964.  
  965. In addition, 936/1232 ~ 0.76 or 76%, still not far from 80%, so it should be
  966. all right.
  967.  
  968. Furthermore, using the current horizontal frame length, we basically ask our
  969. monitor to sync at 52.7khz (= 65Mhz/1232) which is within its capability.  No
  970. problems.
  971.  
  972. Using rules of thumb we mentioned before, 936*75%=702, This is our new vertical
  973. resolution.  702 * 1.05 = 737, our new vertical frame length.
  974.  
  975. Screen refresh rate = 65Mhz/(737*1232)=71.6 Hz.  This is still excellent.
  976.  
  977. Figuring the vertical sync pulse layout is similar:
  978.  
  979.         |___ __ __ __ __ __ __ __ __ __ __ __ __
  980.         |_ _ _ _ _ _ _ _ _ _ _ _                |
  981.         |_______________________|_______________|_____
  982.         0                      VR              VFL     unit: ticks
  983.                                 ^   ^       ^
  984.                                 |   |       |
  985.                                 |<->|<----->|
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. XFree86 Video Timings HOWTO                                                  16
  995.  
  996.  
  997.  
  998.                                  VGT    VSP
  999.  
  1000. We start the sync pulse just past the end of the vertical display data ticks.
  1001. VGT is the vertical guard time required for the sync pulse.  Most monitors are
  1002. comfortable with a VGT of 0 (no guard time) and we'll use that in this example.
  1003. A few need two or three ticks of guard time, and it usually doesn't hurt to add
  1004. that.
  1005.  
  1006. Returning to the example: since by the definition of frame length, a vertical
  1007. tick is the time for tracing a complete HORIZONTAL frame, therefore in our
  1008. example, it is 1232/65Mhz=18.95us.
  1009.  
  1010. Experience shows that a vertical sync pulse should be in the range of 50us and
  1011. 300us.  As an example let's use 150us, which translates into 8 vertical clock
  1012. ticks (150us/18.95us~8).
  1013.  
  1014. Some makers like to quote their vertical framing parameters as timings rather
  1015. than dot widths.  You may see the following terms:
  1016.  
  1017.       active time (VAT)
  1018.             Corresponds to VR, but in milliseconds.  VAT * VSF = VR.
  1019.  
  1020.       blanking time (VBT)
  1021.             Corresponds to (VFL - VR), but in milliseconds.  VBT * VSF = (VFL -
  1022.             VR).
  1023.  
  1024.       front porch (VFP)
  1025.             This is just VGT.
  1026.  
  1027.       sync time
  1028.             This is just VSP.
  1029.  
  1030.       back porch (VBP)
  1031.             This is like a second guard time after the vertical sync pulse.  It
  1032.             is often zero.
  1033.  
  1034.  
  1035. 10.  Putting it All Together
  1036.  
  1037. The Xconfig file Table of Video Modes contains lines of numbers, with each line
  1038. being a complete specification for one mode of X-server operation.  The fields
  1039. are grouped into four sections, the name section, the clock frequency section,
  1040. the horizontal section, and the vertical section.
  1041.  
  1042. The name section contains one field, the name of the video mode specified by
  1043. the rest of the line.  This name is referred to on the "Modes" line of the
  1044. Graphics Driver Setup section of the Xconfig file.  The name field may be omit-
  1045. ted if the name of a previous line is the same as the current line.
  1046.  
  1047. The dot clock section contains only the dot clock (what we've called DCF) field
  1048. of the video mode line.  The number in this field specifies what dot clock was
  1049. used to generate the numbers in the following sections.
  1050.  
  1051. The horizontal section consists of four fields which specify how each
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. XFree86 Video Timings HOWTO                                                  17
  1061.  
  1062.  
  1063.  
  1064. horizontal line on the display is to be generated.  The first field of the sec-
  1065. tion contains the number of dots per line which will be illuminated to form the
  1066. picture (what we've called HR).  The second field of the section indicates at
  1067. which dot the horizontal sync pulse will begin.  The third field indicates at
  1068. which dot the horizontal sync pulse will end.  The fourth field specifies the
  1069. total horizontal frame length (HFL).
  1070.  
  1071. The vertical section also contains four fields.  The first field contains the
  1072. number of visible lines which will appear on the display (VR).  The second
  1073. field indicates the line number at which the vertical sync pulse will begin.
  1074. The third field specifies the line number at which the vertical sync pulse will
  1075. end.  The fourth field contains the total vertical frame length (VFL).
  1076.  
  1077. Example:
  1078.  
  1079.           #Modename    clock  horizontal timing  vertical timing
  1080.  
  1081.           "752x564"     40    752 784  944 1088  564 567 569 611
  1082.                      44.5  752 792  976 1240  564 567 570 600
  1083.  
  1084.  
  1085. (Note: stock X11R5 doesn't support fractional dot clocks.)
  1086.  
  1087. For Xconfig, all of the numbers just mentioned - the number of illuminated dots
  1088. on the line, the number of dots separating the illuminated dots from the begin-
  1089. ning of the sync pulse, the number of dots representing the duration of the
  1090. pulse, and the number of dots after the end of the sync pulse - are added to
  1091. produce the number of dots per line.  The number of horizontal dots must be
  1092. evenly divisible by eight.
  1093.  
  1094. Example horizontal numbers: 800 864 1024 1088
  1095.  
  1096. This sample line has the number of illuminated dots (800) followed by the num-
  1097. ber of the dot when the sync pulse starts (864), followed by the number of the
  1098. dot when the sync pulse ends (1024), followed by the number of the last dot on
  1099. the horizontal line (1088).
  1100.  
  1101. Note again that all of the horizontal numbers (800, 864, 1024, and 1088) are
  1102. divisible by eight!  This is not required of the vertical numbers.
  1103.  
  1104. The number of lines from the top of the display to the bottom form the frame.
  1105. The basic timing signal for a frame is the line.  A number of lines will con-
  1106. tain the picture.  After the last illuminated line has been displayed, a delay
  1107. of a number of lines will occur before the vertical sync pulse is generated.
  1108. Then the sync pulse will last for a few lines, and finally the last lines in
  1109. the frame, the delay required after the pulse, will be generated.  The numbers
  1110. that specify this mode of operation are entered in a manner similar to the fol-
  1111. lowing example.
  1112.  
  1113. Example vertical numbers: 600 603 609 630
  1114.  
  1115. This example indicates that there are 600 visible lines on the display, that
  1116. the vertical sync pulse starts with the 603rd line and ends with the 609th, and
  1117. that there are 630 total lines being used.
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. XFree86 Video Timings HOWTO                                                  18
  1127.  
  1128.  
  1129.  
  1130. Note that the vertical numbers don't have to be divisible by eight!
  1131.  
  1132. Let's return to the example we've been working.  According to the above, all we
  1133. need to do from now on is to write our result into Xconfig as follows:
  1134.  
  1135.      <name>   DCF     HR  SH1 SH2   HFL   VR  SV1 SV2 VFL
  1136.  
  1137.  
  1138. where SH1 is the start tick of the horizontal sync pulse and SH2 is its end
  1139. tick; similarly, SV1 is the start tick of the vertical sync pulse and SV2 is
  1140. its end tick.
  1141.  
  1142.      #name    clock   horizontal timing   vertical timing    flag
  1143.      936x702  65      936 968 1200 1232   702 702 710 737
  1144.  
  1145.  
  1146. No special flag necessary; this is a non-interlaced mode.  Now we are really
  1147. done.
  1148.  
  1149.  
  1150. 11.  Overdriving Your Monitor
  1151.  
  1152. You should absolutely not try exceeding your monitor's scan rates if it's a
  1153. fixed-frequency type.  You can smoke your hardware doing this!  There are
  1154. potentially subtler problems with overdriving a multisync monitor which you
  1155. should be aware of.
  1156.  
  1157. Having a pixel clock higher than the monitor's maximum bandwidth is rather
  1158. harmless, in contrast.  (Note: the theoretical limit of discernible features is
  1159. reached when the pixel clock reaches double the monitor's bandwidth.  This is a
  1160. straightforward application of Nyquist's Theorem: consider the pixels as a spa-
  1161. tially distributed series of samples of the drive signals and you'll see why.)
  1162.  
  1163. It's exceeding the rated maximum sync frequencies that's problematic.  Some
  1164. modern monitors might have protection circuitry that shuts the monitor down at
  1165. dangerous scan rates, but don't rely on it.  In particular there are older mul-
  1166. tisync monitors (like the Multisync II) which use just one horizontal trans-
  1167. former. These monitors will not have much protection against overdriving them.
  1168. While you necessarily have high voltage regulation circuitry (which can be
  1169. absent in fixed frequency monitors), it will not necessarily cover every con-
  1170. ceivable frequency range, especially in cheaper models. This not only implies
  1171. more wear on the circuitry, it can also cause the screen phosphors to age
  1172. faster, and cause more than the specified radiation (including X-rays) to be
  1173. emitted from the monitor.
  1174.  
  1175. Another importance of the bandwidth is that the monitor's input impedance is
  1176. specified only for that range, and using higher frequencies can cause reflec-
  1177. tions probably causing minor screen interferences, and radio disturbance.
  1178.  
  1179. However, the basic problematic magnitude in question here is the slew rate (the
  1180. steepness of the video signals) of the video output drivers, and that is usu-
  1181. ally independent of the actual pixel frequency, but (if your board manufacturer
  1182. cares about such problems) related to the maximum pixel frequency of the board.
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. XFree86 Video Timings HOWTO                                                  19
  1193.  
  1194.  
  1195.  
  1196. So be careful out there...
  1197.  
  1198.  
  1199. 12.  Using Interlaced Modes
  1200.  
  1201. (This section is largely due to David Kastrup <dak@pool.informatik.rwth-
  1202. aachen.de>)
  1203.  
  1204. At a fixed dot clock, an interlaced display is going to have considerably less
  1205. noticeable flicker than a non-interlaced display, if the vertical circuitry of
  1206. your monitor is able to support it stably.  It is because of this that inter-
  1207. laced modes were invented in the first place.
  1208.  
  1209. Interlaced modes got their bad repute because they are inferior to their non-
  1210. interlaced companions at the same vertical scan frequency, VSF (which is what
  1211. is usually given in advertisements). But they are definitely superior at the
  1212. same horizontal scan rate, and that's where the decisive limits of your moni-
  1213. tor/graphics card usually lie.
  1214.  
  1215. At a fixed refresh rate (or half frame rate, or VSF) the interlaced display
  1216. will flicker more: a 90Hz interlaced display will be inferior to a 90Hz non-
  1217. interlaced display. It will, however, need only half the video bandwidth and
  1218. half the horizontal scan rate. If you compared it to a non-interlaced mode with
  1219. the same dot clock and the same scan rates, it would be vastly superior: 45Hz
  1220. non-interlaced is intolerable. With 90Hz interlaced, I have worked for years
  1221. with my Multisync 3D (at 1024x768) and am very satisfied. I'd guess you'd need
  1222. at least a 70Hz non-interlaced display for similar comfort.
  1223.  
  1224. You have to watch a few points, though: use interlaced modes only at high reso-
  1225. lutions, so that the alternately lighted lines are close together. You might
  1226. want to play with sync pulse widths and positions to get the most stable line
  1227. positions. If alternating lines are bright and dark, interlace will jump at
  1228. you. I have one application that chooses such a dot pattern for a menu back-
  1229. ground (XCept, no other application I know does that, fortunately). I switch to
  1230. 800x600 for using XCept because it really hurts my eyes otherwise.
  1231.  
  1232. For the same reason, use at least 100dpi fonts, or other fonts where horizontal
  1233. beams are at least two lines thick (for high resolutions, nothing else will
  1234. make sense anyhow).
  1235.  
  1236. And of course, never use an interlaced mode when your hardware would support a
  1237. non-interlaced one with similar refresh rate.
  1238.  
  1239. If, however, you find that for some resolution you are pushing either monitor
  1240. or graphics card to their upper limits, and getting unsatisfactory flickery or
  1241. washed out (bandwidth exceeded) display, you might want to try tackling the
  1242. same resolution using an interlaced mode. Of course this is useless if the VSF
  1243. of your monitor is already close to its limits.
  1244.  
  1245. Design of interlaced modes is easy: do it like a non-interlaced mode. Just two
  1246. more considerations are necessary: you need an odd total number of vertical
  1247. lines (the last number in your mode line), and when you specify the "interlace"
  1248. flag, the actual vertical frame rate for your monitor doubles. Your monitor
  1249. needs to support a 90Hz frame rate if the mode you specified looks like a 45Hz
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. XFree86 Video Timings HOWTO                                                  20
  1259.  
  1260.  
  1261.  
  1262. mode apart from the "Interlace" flag.
  1263.  
  1264. As an example, here is my modeline for 1024x768 interlaced: my Multisync 3D
  1265. will support up to 90Hz vertical and 38kHz horizontal.
  1266.  
  1267.      ModeLine "1024x768" 45 1024 1048 1208 1248 768 768 776 807 Interlace
  1268.  
  1269. Both limits are pretty much exhausted with this mode. Specifying the same mode,
  1270. just without the "Interlace" flag, still is almost at the limit of the moni-
  1271. tor's horizontal capacity (and strictly speaking, a bit under the lower limit
  1272. of vertical scan rate), but produces an intolerably flickery display.
  1273.  
  1274. Basic design rules: if you have designed a mode at less than half of your moni-
  1275. tor's vertical capacity, make the vertical total of lines odd and add the
  1276. "Interlace" flag. The display's quality should vastly improve in most cases.
  1277.  
  1278. If you have a non-interlaced mode otherwise exhausting your monitor's specs
  1279. where the vertical scan rate lies about 30% or more under the maximum of your
  1280. monitor, hand-designing an interlaced mode (probably with somewhat higher reso-
  1281. lution) could deliver superior results, but I won't promise it.
  1282.  
  1283.  
  1284. 13.  Questions and Answers
  1285.  
  1286. Q. The example you gave is not a standard screen size, can I use it?
  1287.  
  1288. A. Why not?  There is NO reason whatsoever why you have to use 640x480,
  1289. 800x600, or even 1024x768.  The XFree86 servers let you configure your hardware
  1290. with a lot of freedom.  It usually takes two to three tries to come up the
  1291. right one.  The important thing to shoot for is high refresh rate with reason-
  1292. able viewing area. not high resolution at the price of eye-tearing flicker!
  1293.  
  1294. Q. It this the only resolution given the 65Mhz dot clock and 55Khz HSF?
  1295.  
  1296. A. Absolutely not!  You are encouraged to follow the general procedure and do
  1297. some trial-and-error to come up a setting that's really to your liking.  Exper-
  1298. imenting with this can be lots of fun.  Most settings may just give you nasty
  1299. video hash, but in practice a modern multi-sync monitor is usually not damaged
  1300. easily. Be sure though, that your monitor can support the frame rates of your
  1301. mode before using it for longer times.
  1302.  
  1303. Beware fixed-frequency monitors!  This kind of hacking around can damage them
  1304. rather quickly. Be sure you use valid refresh rates for every experiment on
  1305. them.
  1306.  
  1307. Q. You just mentioned two standard resolutions. In Xconfig, there are many
  1308. standard resolutions available, can you tell me whether there's any point in
  1309. tinkering with timings?
  1310.  
  1311. A. Absolutely!  Take, for example, the "standard" 640x480 listed in the current
  1312. Xconfig.  It employs 25Mhz driving frequency, frame lengths are 800 and 525 =>
  1313. refresh rate ~ 59.5Hz. Not too bad.  But 28Mhz is a commonly available driving
  1314. frequency from many SVGA boards.  If we use it to drive 640x480, following the
  1315. procedure we discussed above, you would get frame lengths like 812 and 505.
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. XFree86 Video Timings HOWTO                                                  21
  1325.  
  1326.  
  1327.  
  1328. Now the refresh rate is raised to 68Hz, a quite significant improvement over
  1329. the standard one.
  1330.  
  1331. Q. Can you summarize what we have discussed so far?
  1332.  
  1333. A. In a nutshell:
  1334.  
  1335.   1.  for any fixed driving frequency, raising max resolution incurs the
  1336.       penalty of lowering refresh rate and thus introducing more flicker.
  1337.  
  1338.   2.  if high resolution is desirable and your monitor supports it, try to get
  1339.       a SVGA card that provides a matching dot clock or DCF. The higher, the
  1340.       better!
  1341.  
  1342.  
  1343. 14.  Fixing Problems with the Image.
  1344.  
  1345. OK, so you've got your X configuration numbers.  You put them in Xconfig with a
  1346. test mode label.  You fire up X, hot-key to the new mode, ... and the image
  1347. doesn't look right.  What do you do?  Here's a list of common problems and how
  1348. to fix them.
  1349.  
  1350. (Fixing these minor distortions is where xvidtune(1) really shines.)
  1351.  
  1352. You move the image by changing the sync pulse timing.  You scale it by changing
  1353. the frame length (you need to move the sync pulse to keep it in the same rela-
  1354. tive position, otherwise scaling will move the image as well).  Here are some
  1355. more specific recipes:
  1356.  
  1357. The horizontal and vertical positions are independent.  That is, moving the
  1358. image horizontally doesn't affect placement vertically, or vice-versa.  How-
  1359. ever, the same is not quite true of scaling.  While changing the horizontal
  1360. size does nothing to the vertical size or vice versa, the total change in both
  1361. may be limited.  In particular, if your image is too large in both dimensions
  1362. you will probably have to go to a higher dot clock to fix it.  Since this
  1363. raises the usable resolution, it is seldom a problem!
  1364.  
  1365. 14.1  The image is displaced to the left or right
  1366.  
  1367. To fix this, move the horizontal sync pulse.  That is, increment or decrement
  1368. (by a multiple of 8) the middle two numbers of the horizontal timing section
  1369. that define the leading and trailing edge of the horizontal sync pulse.
  1370.  
  1371. If the image is shifted left (right border too large, you want to move the
  1372. image to the right) decrement the numbers.  If the image is shifted right (left
  1373. border too large, you want it to move left) increment the sync pulse.
  1374.  
  1375. 14.2  The image is displaced up or down
  1376.  
  1377. To fix this, move the vertical sync pulse.  That is, increment or decrement the
  1378. middle two numbers of the vertical timing section that define the leading and
  1379. trailing edge of the vertical sync pulse.
  1380.  
  1381. If the image is shifted up (lower border too large, you want to move the image
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390. XFree86 Video Timings HOWTO                                                  22
  1391.  
  1392.  
  1393.  
  1394. down) decrement the numbers.  If the image is shifted down (top border too
  1395. large, you want it to move up) increment the numbers.
  1396.  
  1397. 14.3  The image is too large both horizontally and vertically
  1398.  
  1399. Switch to a higher card clock speed. If you have multiple modes in your clock
  1400. file, possibly a lower-speed one is being activated by mistake.
  1401.  
  1402. 14.4  The image is too wide (too narrow) horizontally
  1403.  
  1404. To fix this, increase (decrease) the horizontal frame length.  That is, change
  1405. the fourth number in the first timing section.  To avoid moving the image, also
  1406. move the sync pulse (second and third numbers) half as far, to keep it in the
  1407. same relative position.
  1408.  
  1409. 14.5  The image is too deep (too shallow) vertically
  1410.  
  1411. To fix this, increase (decrease) the vertical frame length.  That is, change
  1412. the fourth number in the second timing section.  To avoid moving the image,
  1413. also move the sync pulse (second and third numbers) half as far, to keep it in
  1414. the same relative position.
  1415.  
  1416. Any distortion that can't be handled by combining these techniques is probably
  1417. evidence of something more basically wrong, like a calculation mistake or a
  1418. faster dot clock than the monitor can handle.
  1419.  
  1420. Finally, remember that increasing either frame length will decrease your
  1421. refresh rate, and vice-versa.
  1422.  
  1423.  
  1424. 15.  Plotting Monitor Capabilities
  1425.  
  1426. To plot a monitor mode diagram, you'll need the gnuplot package (a freeware
  1427. plotting language for UNIX-like operating systems) and the tool modeplot, a
  1428. shell/gnuplot script to plot the diagram from your monitor characteristics,
  1429. entered as command-line options.
  1430.  
  1431. Here is a copy of modeplot:
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456. XFree86 Video Timings HOWTO                                                  23
  1457.  
  1458.  
  1459.  
  1460.      #!/bin/sh
  1461.      #
  1462.      # modeplot -- generate X mode plot of available monitor modes
  1463.      #
  1464.      # Do `modeplot -?' to see the control options.
  1465.      #
  1466.      # ($Id: video-modes.sgml,v 1.2 1997/08/08 15:07:24 esr Exp $)
  1467.  
  1468.      # Monitor description. Bandwidth in MHz, horizontal frequencies in kHz
  1469.      # and vertical frequencies in Hz.
  1470.      TITLE="Viewsonic 21PS"
  1471.      BANDWIDTH=185
  1472.      MINHSF=31
  1473.      MAXHSF=85
  1474.      MINVSF=50
  1475.      MAXVSF=160
  1476.      ASPECT="4/3"
  1477.      vesa=72.5 # VESA-recommended minimum refresh rate
  1478.  
  1479.      while [ "$1" != "" ]
  1480.      do
  1481.           case $1 in
  1482.           -t) TITLE="$2"; shift;;
  1483.           -b) BANDWIDTH="$2"; shift;;
  1484.           -h) MINHSF="$2" MAXHSF="$3"; shift; shift;;
  1485.           -v) MINVSF="$2" MAXVSF="$3"; shift; shift;;
  1486.           -a) ASPECT="$2"; shift;;
  1487.           -g) GNUOPTS="$2"; shift;;
  1488.           -?) cat <<EOF
  1489.      modeplot control switches:
  1490.  
  1491.      -t "<description>"  name of monitor            defaults to "Viewsonic 21PS"
  1492.      -b <nn>             bandwidth in MHz           defaults to 185
  1493.      -h <min> <max>      min & max HSF (kHz)        defaults to 31 85
  1494.      -v <min> <max>      min & max VSF (Hz)         defaults to 50 160
  1495.      -a <aspect ratio>   aspect ratio               defaults to 4/3
  1496.      -g "<options>"      pass options to gnuplot
  1497.  
  1498.      The -b, -h and -v options are required, -a, -t, -g optional.  You can
  1499.      use -g to pass a device type to gnuplot so that (for example) modeplot's
  1500.      output can be redirected to a printer.  See gnuplot(1) for  details.
  1501.  
  1502.      The modeplot tool was created by Eric S. Raymond <esr@thyrsus.com> based on
  1503.      analysis and scratch code by Martin Lottermoser <Martin.Lottermoser@mch.sni.de>
  1504.  
  1505.      This is modeplot $Revision: 1.2 $
  1506.      EOF
  1507.                exit;;
  1508.           esac
  1509.           shift
  1510.      done
  1511.  
  1512.      gnuplot $GNUOPTS <<EOF
  1513.      set title "$TITLE Mode Plot"
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. XFree86 Video Timings HOWTO                                                  24
  1523.  
  1524.  
  1525.  
  1526.      # Magic numbers.  Unfortunately, the plot is quite sensitive to changes in
  1527.      # these, and they may fail to represent reality on some monitors.  We need
  1528.      # to fix values to get even an approximation of the mode diagram.  These come
  1529.      # from looking at lots of values in the ModeDB database.
  1530.      F1 = 1.30 # multiplier to convert horizontal resolution to frame width
  1531.      F2 = 1.05 # multiplier to convert vertical resolution to frame height
  1532.  
  1533.      # Function definitions (multiplication by 1.0 forces real-number arithmetic)
  1534.      ac = (1.0*$ASPECT)*F1/F2
  1535.      refresh(hsync, dcf) = ac * (hsync**2)/(1.0*dcf)
  1536.      dotclock(hsync, rr) = ac * (hsync**2)/(1.0*rr)
  1537.      resolution(hv, dcf) = dcf * (10**6)/(hv * F1 * F2)
  1538.  
  1539.      # Put labels on the axes
  1540.      set xlabel 'DCF (MHz)'
  1541.      set ylabel 'RR (Hz)' 6   # Put it right over the Y axis
  1542.  
  1543.      # Generate diagram
  1544.      set grid
  1545.      set label "VB" at $BANDWIDTH+1, ($MAXVSF + $MINVSF) / 2 left
  1546.      set arrow from $BANDWIDTH, $MINVSF to $BANDWIDTH, $MAXVSF nohead
  1547.      set label "max VSF" at 1, $MAXVSF-1.5
  1548.      set arrow from 0, $MAXVSF to $BANDWIDTH, $MAXVSF nohead
  1549.      set label "min VSF" at 1, $MINVSF-1.5
  1550.      set arrow from 0, $MINVSF to $BANDWIDTH, $MINVSF nohead
  1551.      set label "min HSF" at dotclock($MINHSF, $MAXVSF+17), $MAXVSF + 17 right
  1552.      set label "max HSF" at dotclock($MAXHSF, $MAXVSF+17), $MAXVSF + 17 right
  1553.      set label "VESA $vesa" at 1, $vesa-1.5
  1554.      set arrow from 0, $vesa to $BANDWIDTH, $vesa nohead # style -1
  1555.      plot [dcf=0:1.1*$BANDWIDTH] [$MINVSF-10:$MAXVSF+20] \
  1556.        refresh($MINHSF, dcf) notitle with lines 1, \
  1557.        refresh($MAXHSF, dcf) notitle with lines 1, \
  1558.        resolution(640*480,   dcf) title "640x480  " with points 2, \
  1559.        resolution(800*600,   dcf) title "800x600  " with points 3, \
  1560.        resolution(1024*768,  dcf) title "1024x768 " with points 4, \
  1561.        resolution(1280*1024, dcf) title "1280x1024" with points 5, \
  1562.        resolution(1600*1280, dcf) title "1600x1200" with points 6
  1563.  
  1564.      pause 9999
  1565.      EOF
  1566.  
  1567. Once you know you have modeplot and the gnuplot package in place, you'll need
  1568. the following monitor characteristics:
  1569.  
  1570.    o  video bandwidth (VB)
  1571.  
  1572.    o  range of horizontal sync frequency (HSF)
  1573.  
  1574.    o  range of vertical sync frequency (VSF)
  1575.  
  1576. The plot program needs to make some simplifying assumptions which are not nec-
  1577. essarily correct.  This is the reason why the resulting diagram is only a rough
  1578. description. These assumptions are:
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588. XFree86 Video Timings HOWTO                                                  25
  1589.  
  1590.  
  1591.  
  1592.   1.   All resolutions have a single fixed aspect ratio AR = HR/VR.  Standard
  1593.       resolutions have AR = 4/3 or AR = 5/4.  The modeplot programs assumes 4/3
  1594.       by default, but you can override this.
  1595.  
  1596.   2.   For the modes considered, horizontal and vertical frame lengths are
  1597.       fixed multiples of horizontal and vertical resolutions, respectively:
  1598.  
  1599.  
  1600.                 HFL = F1 * HR
  1601.                 VFL = F2 * VR
  1602.  
  1603. As a rough guide, take F1 = 1.30 and F2 = 1.05 (see frame (section 8., page 12)
  1604. "Computing Frame Sizes").
  1605.  
  1606. Now take a particular sync frequency, HSF.  Given the assumptions just pre-
  1607. sented, every value for the clock rate DCF already determines the refresh rate
  1608. RR, i.e. for every value of HSF there is a function RR(DCF).  This can be
  1609. derived as follows.
  1610.  
  1611. The refresh rate is equal to the clock rate divided by the product of the frame
  1612. sizes:
  1613.  
  1614.           RR = DCF / (HFL * VFL)        (*)
  1615.  
  1616. On the other hand, the horizontal frame length is equal to the clock rate
  1617. divided by the horizontal sync frequency:
  1618.  
  1619.           HFL = DCF / HSF               (**)
  1620.  
  1621. VFL can be reduced to HFL be means of the two assumptions above:
  1622.  
  1623.           VFL = F2 * VR
  1624.               = F2 * (HR / AR)
  1625.               = (F2/F1) * HFL / AR (***)
  1626.  
  1627. Inserting (**) and (***) into (*) we obtain:
  1628.  
  1629.           RR = DCF / ((F2/F1) * HFL**2 / AR)
  1630.              = (F1/F2) * AR * DCF * (HSF/DCF)**2
  1631.              = (F1/F2) * AR * HSF**2 / DCF
  1632.  
  1633. For fixed HSF, F1, F2 and AR, this is a hyperbola in our diagram.  Drawing two
  1634. such curves for minimum and maximum horizontal sync frequencies we have
  1635. obtained the two remaining boundaries of the permitted region.
  1636.  
  1637. The straight lines crossing the capability region represent particular resolu-
  1638. tions. This is based on (*) and the second assumption:
  1639.  
  1640.           RR = DCF / (HFL * VFL) = DCF / (F1 * HR * F2 * VR)
  1641.  
  1642. By drawing such lines for all resolutions one is interested in, one can immedi-
  1643. ately read off the possible relations between resolution, clock rate and
  1644. refresh rate of which the monitor is capable. Note that these lines do not
  1645. depend on monitor properties, but they do depend on the second assumption.
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. XFree86 Video Timings HOWTO                                                  26
  1655.  
  1656.  
  1657.  
  1658. The modeplot tool provides you with an easy way to do this.  Do modeplot -? to
  1659. see its control options. A typical invocation looks like this:
  1660.  
  1661.           modeplot -t "Swan SW617" -b 85 -v 50 90 -h 31 58
  1662.  
  1663. The -b option specifies video bandwidth; -v and -h set horizontal and vertical
  1664. sync frequency ranges.
  1665.  
  1666. When reading the output of modeplot, always bear in mind that it gives only an
  1667. approximate description. For example, it disregards limitations on HFL result-
  1668. ing from a minimum required sync pulse width, and it can only be accurate as
  1669. far as the assumptions are.  It is therefore no substitute for a detailed cal-
  1670. culation (involving some black magic) as presented in Putting it All Together
  1671. (section 10., page 16). However, it should give you a better feeling for what
  1672. is possible and which tradeoffs are involved.
  1673.  
  1674.  
  1675. 16.  Credits
  1676.  
  1677. The original ancestor of this document was by Chin Fang <fangchin@leland.stan-
  1678. ford.edu>.
  1679.  
  1680. Eric S. Raymond <esr@snark.thyrsus.com> reworked, reorganized, and massively
  1681. rewrote Chin Fang's original in an attempt to understand it.  In the process,
  1682. he merged in most of a different how-to by Bob Crosson <crosson@cam.nist.gov>.
  1683.  
  1684. The material on interlaced modes is largely by David Kastrup <dak@pool.infor-
  1685. matik.rwth-aachen.de>
  1686.  
  1687. Martin Lottermoser <Martin.Lottermoser@mch.sni.de> contributed the idea of
  1688. using gnuplot to make mode diagrams and did the mathematical analysis behind
  1689. modeplot.  The distributed modeplot was redesigned and generalized by ESR from
  1690. Martin's original gnuplot code for one case.
  1691.  
  1692.      Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml,v 3.11.2.2 1998/02/20 23:10:30 dawes Exp $
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.      $XConsortium: VidModes.sgml /main/7 1996/02/21 17:46:17 kaleb $
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. XFree86 Video Timings HOWTO                                                  27
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.                                    CONTENTS
  1791.  
  1792.  
  1793.  
  1794. 1.  Disclaimer .............................................................. 1
  1795.  
  1796. 2.  Introduction ............................................................ 1
  1797.  
  1798. 3.  How Video Displays Work ................................................. 2
  1799.  
  1800. 4.  Basic Things to Know about your Display and Adapter ..................... 3
  1801.     4.1  The monitor's video bandwidth: ..................................... 6
  1802.     4.2  What these control: ................................................ 7
  1803.  
  1804. 5.  Interpreting the Basic Specifications ................................... 7
  1805.     5.1  About Bandwidth: ................................................... 8
  1806.     5.2  Sync Frequencies and the Refresh Rate: ............................. 9
  1807.  
  1808. 6.  Tradeoffs in Configuring your System ................................... 10
  1809.  
  1810. 7.  Memory Requirements .................................................... 11
  1811.  
  1812. 8.  Computing Frame Sizes .................................................. 12
  1813.  
  1814. 9.  Black Magic and Sync Pulses ............................................ 13
  1815.     9.1  Horizontal Sync: .................................................. 13
  1816.     9.2  Vertical Sync: .................................................... 15
  1817.  
  1818. 10. Putting it All Together ................................................ 16
  1819.  
  1820. 11. Overdriving Your Monitor ............................................... 18
  1821.  
  1822. 12. Using Interlaced Modes ................................................. 19
  1823.  
  1824. 13. Questions and Answers .................................................. 20
  1825.  
  1826. 14. Fixing Problems with the Image. ........................................ 21
  1827.     14.1 The image is displaced to the left or right ....................... 21
  1828.     14.2 The image is displaced up or down ................................. 21
  1829.     14.3 The image is too large both horizontally and vertically ........... 22
  1830.     14.4 The image is too wide (too narrow) horizontally ................... 22
  1831.     14.5 The image is too deep (too shallow) vertically .................... 22
  1832.  
  1833. 15. Plotting Monitor Capabilities .......................................... 22
  1834.  
  1835. 16. Credits ................................................................ 26
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.                                        i
  1847.  
  1848.  
  1849.