CONFIG I. Release notes II. Syntax of Xconfig III. Videotiming configuration tutorial ******************************************************************************* I. Release notes: ----------------- o before atempting to start X386 run the script: /usr/lib/X11/X386/etc/install.sh !!! (This is ISC's version, but look at it what really happens, and do the same for your OS) o if you start X11 form the console - vt, there MUST be a free /dev/vt?? o VPIX will only run with a version of X11R4 that supports TCP/IP. o You cannot switch to a different virtual terminal using or any other key combination. Use instead. ISC folks use by default . o The hot key combination will kill the server with no questions asked. SCO notes: The SCO version has some minor flaws at present. But then again the OS and development system do too. o The screen may go blank after stopping the server. Hit enter a couple times or run 'clear'. o No shared library support unless you have the newest DevSys, 3.2.2. o The CAPS and NUM lock work but don't light up. o Check /usr/lib/X11/X386/README_SCO for more details. Jim Kelly uunet!microsoft!jimke SVR4 notes: o There may be problems with vt-switching ****************************************************************************** II. Syntax of Xconfig --------------------- Before really explaining what's going on, let's say something about the motivation of the rather strange seeming configuration. There have been many approches to make an X-server configurable, but either the way of doing this was to difficult for any normal person, or it gave you only so rudimentary access to the graphics boards real possibilities that it was ridiculous. In this server there is a completetly different way: o The hardware (Video chipset, etc.) dependent part is integrated into the server. Because writing such a driver requires very soild knownledge of the underlying hardware, not everyone is supposed to write such one. But this design of such an device driver is quite simple for a person, who is an expert in hardware register programming (*smile*). o A somewhat more independent part is configureable by the user. This part allows you to optimize the X-server for your combination of display and graphics board. This is accomplished by giving you the control over the complete video timing. Althought the video timing is not trivial to understand it's worth the time to have a special look at it to get the best out of your equipment. For example you can design your own resolutions, or improve existing ones to match you monitor. The best way to start is to use the already given modes and describtions and then modify them according to your needs. Now here is the full (???) syntax of Xconfig: XCONFIG: PRIMARY [SECONDARY] PARAMETERS GRAPHICS PRIMARY: primary DEVICES* SECONDARY: secondary DEVICES* DEVICES: KEYBOARD | MOUSE | XQUEKEYBOARD | XQUEMOUSE KEYBOARD: keyboard MOUSE: MOUSENAME [BUTTONS] [PACKAGES] [BAUDRATE] [PROTOCOL] DEVICENAME MOUSENAME: microsoft | mousesystems | mmseries | logitech | busmouse BUTTONS: 2 | 3 PACKAGES: 10 | 20 | 35 | 50 | 70 | 100 | 150 BAUDRATE: 600 | 1200 | 2400 | 4800 | 9600 PROTOCOL: ms | msc | mm | re DEVICENAME: STRING XQUEKEYBOARD: xquekeyboard XQUEMOUSE: xquemouse PARAMETERS: [DISPLAY] [WHITE] [BLACK] [OVERSCAN] [VISUAL] [FONT] [RGB] [ZAP] DISPLAY: display NUMBER NUMBER WHITE: whitepixel STRING BLACK: blackpixel STRING OVERSCAN: overscan STRING VISUAL: staticgray | grayscale | staticcolor | pseudocolor | truecolor | directcolor FONT: fontpath PATHNAME RGB: rgbpath PATHNAME PATHNAME: STRING ZAP: dontzap GRAPHICS: graphics VGA VIDEODECLS+ VGA: VIDEOCHIP RAM VIRTUAL CLOCKS+ DEFAULTMODE VGACHIPFLAGS* VIDEOCHIP: et3000 | et4000 | gvga | pvga1a | ati | c&t452 | c&t453 RAM: NUMBER VIRTUAL: NUMBER NUMBER CLOCKS: NUMBER DEFAULTMODE: STRING VGACHIPFLAGS: legend | syncclut VIDEODECLS: VIDEODECL [VIDEODECLS] VIDEODECL: MODENAME DOTCLOCK HTIMING VTIMING VIDEOFLAGS* MODENAME: STRING DOTCLOCK: NUMBER HTIMING: DISPLAYED SYNCSTART SYNCEND TOTAL VTIMING: DISPLAYED SYNCSTART SYNCEND TOTAL VIDEOFLAGS: interlace | +hsync | -hsync | +vsync | -vsync | fastram XCONFIG: This is our Xconfig file, which is usually located under /usr/lib/X11/X386/Xconfig. PRIMARY, SECONADRY: One of the ideas of X-Windows is to have two special devices with which the user interacts with an application: The mouse and the keyboard. But experience has shown that there are needs for more than two input-devices. Thus all devices listed under the item 'primary' are the normal 'x-mouse' and 'x-keyboard', the other (secondary) ones are reserved for special applications (graphics tablet, space-ball ...). Note that this concept is currently not fully supported. KEYBOARD: Just the declaration of a normal PC/AT keyboard. X386 will determine whether you use a 84 or a 101/102 keyboard. X386 will also use any national keyboard that is supported by ttymap(). MOUSE: Ahrg -- somewhat complex here. Normally you only need to specify here a mousename and a devicename. All other things are choosen by default. But since in the world of PC/AT no hardwarevendors products are REALLY compatible to each other it might often be usefull to have here more control. MOUSENAME: Possible values are 'microsoft', 'mousesystems', 'mmseries', 'logitech' & 'busmouse'. These are the ``defaultselectors''. BUTTONS: You can explicitely specify the number of buttons of your mouse. 2 will not only select two buttons, but also 3 button-emulation. But this emulation (LEFT+RIGHT=MIDDLE) is somewhat quirky. Thus the default for 'microsoft' is 3, not 2. PACKAGES: Some few mice are really programmable (i.e. Logitech). There it is possible to state how many motionreports/second should be transmitted. This is very usefull, if you /dev/tty?? tends to loose some input. If you give the mouse a high transmission rate, the repsonse to mouse-movements is MUCH better (i.e. exacter) BAUDRATE: There a mice which have by default a different baudrate apart from their transmission protocol. This is what you can specify here. You CAN NOT select another baudrate than the mouse (hardware) default. PROTOCOL: Althought MOUSENAME selects this normally there might be case when you want to override this. For example the Logitech mice let you SELECT what protocol you want to use. Thus you can provide compatibility with other applications running on a different vt. ms: Microsoft, 7bit, 3bytes, 2buttons, reliable msc: Mouse Systems, 8bit, 5bytes, 3buttons, unreliable mm: SummaGraphics, 8bit, 3bytes, 3buttons, reliable re: Relative Bit Pad, 7bit, 5bytes, 3buttons, reliable 'reliable' means here, that X386 can determine whether such a motion package was transmitted correctly (i.e all bytes). Thus you should not use 'msc' as possible. XQUEKEYBOARD, XQUEMOUSE: On some SVR3 & SVR4 there is a special handling for the core devices (AT&T 3.2.2, EURIX). Thus you can't use MOUSE & KEYBOARD. Instead use these Xque Devices. You MUST specify both !!! Note that there is a /usr/lib/mousetab, which then configurates then mouse. DISPLAY: Write here the measurements of the visble part of screen in millimeters (X Y). Only used internally, not very important. WHITE, BLACK: Only for debugging. You can force X386 to use different colors for black & white. OVERSCAN: If set this enables a special VGA feature. But it don't work on all video chips and resolutions. Whenever no real video infomation is displayed, this color will be used, thus letting the visble image cover the whole physical screen. This is very usefull for low screen refresh rates. VISUAL: X386 allows you to use all visuals (display-classes) that are available in the X-protocol. Althought a VGA (8514a) is normally a 'pseudocolor' display you may want to use 'grayscale' instead if used together with a B&W monitor. All other values are meant for debugging that an application also works well on different display-classes. FONT, RGB: By specifying an own fontpath for X386 you can avoid trouble when using it with another X-server by letting it have it's fonts at a different place. Same applies to the RGB-database. ZAP: Under normal operation, you can exit X386 by typing . This is not always usefull, especiall under xdm(n). By setting this option the hot-keycombination is disabled. GRAPHICS: Under this item you must specify you graphics hardware and one or more video (display) mode. If you did specify more than one mode, you can switch them online by typing and . VIDEOCHIP: Here you must write your CORRECT video chip. If you have a different one from that that are supported you can give up. OTHER CHIPSETS WILL SURELY NOT WORK !!!. Currently supported ones are: et3000 et4000 gvga pvga1a ati, c&t452, c&t453 are just dummies for driver developers!! RAM: Locate here the amout of videoram of you graphics board in KBytes. This may seem not neccessary, but many VGA chipsets have differnt settings for different memory. Normal are 512 and 1024. (Less than 512 is not supported !!!) VIRTUAL: The virtual resolution you want to use. This is because your VGA may have more RAM than it would be neccessary to get the highest possible resolution your monitor is capable of. For ex. you have 512kBytes of RAM, but can display 800x600 dots, so you may want to use a virtual resolution of 864x606. Then only 800x600 are displayed, but 864x606 will be used by the server. If you touch the boarders of the visible part of the screen with the mouse-cursor the screen scrolls. This is also called panning. You have to specify two numbers, x-resolution and y-resolution. CLOCKS: This is a series of numbers (rounded to the nearest integer), which quantisize the dotclocks in frequency and specify the according internal clock selection by the order you enumerate them. The corrcet order may be detected by the MS-DOS program /usr/lib/X11/X386/etc/clock.exe. If an oscillator appears two times, the seconad appearence should be set to zero. Up to 32 oscillators are supported. DEFAULTMODE: The default mode that will be used when starting up the server. This is a memnonic string which has later in the config-file an exact specification. VGACHIPFLAGS: Some VGA board dependend flags. This might be used for VGA's which have a nonstandard clock-selection mechnism, like the Sigma Legend: legend This is an Sigma Legend board syncclut Write to CLUT only in retrace periodes, thus avoiding ``color-flicering'' VIDEODECLS: You MUST specify at least ONE videotiming. How to compute these values in order to get the best out of your graphics board monitor combo is described later in a tutorial. It's worth to have a look at it. MODENAME: This is just a string used at a label (for ex. for DEFAULTMODE). Please get some creative names here from which can be imageined what resolution you meant. DOTCLOCK: Ahhh the real important one! This is the integer specifying the dotclock for you resolution. Be careful that you use only dotclocks that appear also in CLOCKS. HTIMING, VTIMING: The complete horizontal and vertical timing. See below in the tutorial. VIDEOFLAGS: Some videomodes/hardware might require different NONSTANDARD settings. This is provided here by VIDEODECL basis, cause for different modes there are often different requirements. interlace Use interlaced display mode (only ET4000) +hsync -hsync Select polarity of HSYNC signal +vsync -vsync Select polarity of VSYNC signal fastram Use the fastest possible videoram access. This may cause flickering, but is on some chipsets much faster. *************************************************************************** III. Videotiming configuration tutorial --------------------------------------- (written by Chin Fang, fangchin@leland.stanford.edu) Content: 1. Introduction 2. Get'em now 3. Some preliminaries 4. Lets get to work 1. Introduction X386 allows it's users to configure their video subsystem and thus encourages a near optimum use of existing hardware. If you would like to use X386 but do not feel having enough understanding about the configuration process, then this tutorial should provide you with enough background after you go thru it. Since most 386 Unix systems' video subsystems compose of a multi-scanning type monitor and a SVGA, so only setup for this type subsystems is covered. 2. Get'em now Before you start setting up X386 on your system, you need to collect a few data and facts first. They are the following: (1) your monitor's sync frequency ranges for both horizontal and vertical directions (2) your video adapter (SVGA) driving frequency bandwidth Sync frequency ranges are usually tabulated in your monitor's user's manual, under specification. SVGA's spec. in it's user's manual usually provides the driving frequency bandwidth (and/or clock timings available). If not, the best way is to use the TURBO Pascal program clock.exe to detect the available clock timings (driving frequencies). It has to be done eventually to write the X386 configuration file Xconfig, so you may wish to run it as soon as possible. (clock.exe is provided as part of X386 distribution, so is it's src) Note, some analog monitors like NEC 2A and one Parkard Bell 14" model, only provide discrete sync frequencies for both horizontal and vertical directions. They can be configured too, and the procedure is similar. Only difference is that your room for configuration is severely limited by the built-in monitor characteristics. SPECIAL CARE SHOULD BE TAKEN WHEN X386 IS CONFIGURED FOR SUCH MONITORS!! Another fact you may like to know is that your SVGA card may not employ crystals as sources of video driving frequencies. Instead, some newer boards have a chip, most likely voltage controlled, for providing driving frequencies. An example would be like Swan Technology's SVGA uses a VCO (voltage controlled oscillator). Still, clock.exe should be able to reveal how many driving frequencies (clock timings) are available from such a chip oscillator. Finally, it's nice to get to know your monitor's video bandwidth if you intend to use high resolution and to drive such resolution at a high driving frequency, say 65Mhz. This is not a part of X386 config process. But knowing it will enable you make more intellgent choices sometimes. Video bandwidth together with the employed driving frequency may affect your display's quality (like sharpness for fine details). However, most of the time one can ignore this. More explainations will be given below. Video Bandwidth is also tabulated in monitor's spec sheet. 3. Some preliminaries When we talk about display, it's always NECESSARY to consider three things together: (1) your monitor's sync frequency ranges for both horizontal and vertical (2) your video adapter's driving frequency bandwidth (from crystals for ex.) (3) your software's video hardware device driver. and to a lesser extend, your monitor's video bandwidth. But for now lets concentrate on the three mentioned above. The sync frequency ranges of your monitor together with your video adapter's bandwidth determines the ultimate resolution that you can use. But it's up to the driver to untap any potential of your hardware. Superior hardware combination without an equally competent device driver is a waste of money. On the other hand, having a versatile device driver but not so good hardware combo, at least one can explore the limit of them. This is the design philosophy of X386. 4. Lets get to work How to determine a good resolution for your monitor? Please read the following Definition: screen refresh rate => it's the DRIVING clock frequency divided by the product of horizontal frame length and vertical frame length. Q. what is driving clock frequency? A. it's the oscillatory frequency of the crystal(on your video board) employed by your graphics software's video driver. For instance, if your driver uses 36 Mhz out of 25 28 0 40 36 40 45 58 32 36 31 35 50 48 33 65 (all in Mhz, for Sigma Legend) then the driving frequency is 36Mhz. Nothing else. This is the frequency used by the driver to determine how frequent to update (thus refresh) screen image. Q. What's frame length for horizontal and vertical directions? A. It's the number of clock ticks (measured in terms of the driving timing) for your monitor's electron gun to impart a beam of electrons onto the screen and sweep such a beam from left side of the tube to the right side and back. Similarly, for vertical direction, from bottom to top and back to bottom. Q. Why this has anything to do with resolution? A. A desired resolution in fact should be called the portion of frame length during which an electron beam creates visible image to your eyes! Any image is created with your eyes's retention and the fast moving electron beam sweeping across your monitor. At any instant, there is in fact ONLY ONE dot hitting the screen, but due to your eyes retention, you see a block of image. Now it should be helpful to look at two pictures to get better idea: _______________________ | | A horizontal frame |->->->->->->->->->->-> | length is the time | )| required for an |<-<-<-<-<-<-<-<-<-<-<- | electron beam tracing | | a pattern as shown on | | left | | | | |_______________________| _______________________ | ^ | A vertical frame | ^ | | length is the time | | v | required for an | ^ | | electron beam tracing | | v | a pattern as shown on | ^ | | left | | v | | ^ | | |_______|_v_____________| It is always helpful to think that the image on a screen is formed by an electron beam tracing in a zigzag pattern, ie, the beam moves left <-> right and at the same time up <-> down too. Q. So what does this have anything to do with screen refresh rate? A. By definition, one hertz (hz) is one cycle per second. So, if your horizontal frame length takes x ticks, ver. frame length takes y ticks, then to cover the entire screen, a rectangular area, takes x times y ticks. Since your driving frequency provides say N ticks per second by definition, then obviously your monitor's electron gun(s) can impart a dot on the screen and sweep it from left to right and back and from bottom to top and back (which takes total xy ticks) N/xy times/sec. This IS your screen's refresh rate! Because that's how many times your screen can be updated thus REFRESHED per second! Q. Why I have to know this? A. You need to understand this concept to "design" a good resolution which not only provides you a steady image, but also utilizes your hardware in a near optimum manner. Q. So how do I get a desired resolution? A. Simple! Jut look at your monitor's data sheet, normally part of your users' manual. Make sure it's type, ie. fixed frequency or multiscaning. The later is much flexible if not better. THE FOLLOWING DISCUSSION DOES NOT APPLY TO THE FORMER!! Then, use your horizontal max sync frequency, say 55khz try out the clock frequencies listed or detected by clock.exe. As an example, say for Sigma Legend, there is a 65 Mhz clock oscillatory driving frequency available. And from above assumption, your monitor can sync up to 55 Khz in horizontal. To get max REFRESH rate and at the same time get non-interlaceness, do the following: Obviously, if your clock cycles only N times per second, and if your monitor electron beam syncs at x times per second, the using the definition of frame length above, you can only have so many horizontal frames per second: N/x, in our sample, it would be 65Mhz/55khz=1181 times. But due to VGA's hardware restrictions, you can only have multiple of eight number of frames per second in the horizontal direction. So round it off -> 1176. This represent the MINIMUM frame length that you can use. You can, of course, get longer frame length by using lower sync frequencies. In so doing, you may not be able to raise viewing resolution, but you WILL pay the price of lower refresh rate. Following the explainations below you will find out why. Assuming, of course, the same driving frequency is still used. Take 80 percent of this clock ticks, or 944 ticks for your viewing image. This is a rule of thumb! Don't ask why! Take 75% of 944 as your vertical ticks for viewable image, you have 708 ticks. A rule of thumb is 1.05 times of ticks should be the vertical frame length ->743 ticks. Here I implicitly assumed that you like the Golden ratio. Please note that Golden ratio is not a requirement at all. So your screen refresh rate is 65Mhz/1176*743=74.4 hz! THIS IS EXCELLENT! Don't settle on anthing less IF POSSIBLE! The image at this update rate (or screen refresh rate) WILL LOOK STEADY EVEN TO VIDEO CAMERAS! (well... I know in this case it is not likely. Please keep reading to find out why) And you got 944x708 to boot. Not bad at all! You can even improve it further to put it into almost 76 Hz by using the fact that your monitor in horz. direction ofen can sync at higher frequency then 55 khz by about 2khz or so and the fact that in vertical direction, you can lower the frame length somewhat. (ie, take less than 75% of 944 in the example above) All this is simple arithematics and simple facts about oscilloscopes. No black magic at all! But MAKE SURE that your monitor electron guns can sync up to 76 Hz vertical. (NEC 4D CANN'T for instance. It goes only up to 75 Hz in vertical) Q. What else do I need to know? A. You need to know when and where to place sync pluses. Recall the two pictures above? Only part of the time required for tracing such a frame is used for displaying viewable image (ie. your resolution). Lets say for the horizontal direction, it takes H ticks to trace the frame, and h ticks for viewable data. Obviously, h < H by definition. For concretness, lets assume both start at the same instant as shown below: |___ __ __ __ __ __ __ __ __ __ __ __ __ |_ _ _ _ _ _ _ _ _ _ _ _ | |_______________________|_______________|_____ 0 h H unit: ticks ^ ^ | | <-----> s Now, we would like to place a sync plus of length s like shown above, ie, between the end of clock ticks for display data and the end of clock ticks for the entire frame. Why so? because if we can achieve this, then your screen image won't shift to the right or to the left. It will be where it supposed to be on the screen, covering squarely the monitor's viewable area. Q. But I don't know how to get sync plus's length s, what can I do about it? A. Because this is the only tricky part of configuration, I want to get you understand all basics first before I overwhelm you with jargons. Now let's talk. In general, we have to do a little trial and error for this part. But most of the time, we can safely assume that a sync plus is about 3.5 to 4.0 micro second in length, as documented in some monitors user's manual in the spec section. For concretness again, let's take 3.8 micro second to be s, which btw, is not a bad value to start with. Now, using the 65Mhz clock timing above, we know s is equivalent to 247 clock ticks (= 65x10**6 * 3.8 *10**(-6)) [recall M=10**6, micro=10**(-6)] Go back to the picture above, how do we place the 247 clock ticks as shown in the picture? Now it's time for you to get your calculator! Using our example, h is 944 and H is 1176. The difference between the two is 1176-944=232 < 247! Obviously we have to do some adjustment here. What can we do? The first thing is to raise 1176 to 1184, and lower 944 to 936. Now the difference = 1184-936= 248. Hmm, closer. Next, instead using 3.8, we use 3.5 for calculating s; then, we have 65*3.5=227. Looks better. But 248 is not much higher than 227. It's normally necessary to have 30 or so clock ticks between h and the starting value of s and the same for the ending value of s and H. AND they have to be multiple of eight! Are we stuck? NO! let's do this, 936%8==0, (936+32)%8==0 too. But 936+32=968, 968+227=1195, 1195+32=1227. Hmm.. this looks not too bad. But it's not a multiple of 8, so lets round it up to 1232. But now we got ourself in another potential trouble, the sync plus is no longer placed right in the middle between h and H anymore. Happily, using our calculator we find 1232-32=1200 is also multiple of 8 and (1232-32)-968=232 corresponding using a sync plus of 3.57 micro second long, still reasonable. In addition, 936/1232~0.76 or 76%, still not far from 80%, so it should be all right. Furthermore, using the current horizontal frame length, we basically ask our monRPor`4o`sync at 52.7khz(=65Mhz/1232) which is within it's capability. No problems. Using rules of thumb we mentioned before, 936*75%=702, This is our new vertical resolution. 702*1.05=737, our new vertical frame length. Screen refresh rate = 65Mhz/(737*1232)=71.6 Hz. THIS IS STILL EXCELLENT! KEEP IT. Q. But did you forget about how to place sync plus in the vertical direction? A. I intentionlly did so. Let's deal one thing at a time. For vertical direction, we usually would like to place sync plus as shown below: |___ __ __ __ __ __ __ __ __ __ __ __ __ |_ _ _ _ _ _ _ _ _ _ _ _ | |_______________________|_______________|_____ 0 v V unit: ticks ^ ^ | | <-----> sv Note in the picture, we start the sync plus at the end of the vertical display data ticks. Since by the defintion of frame length, a vertical tick is the time for tracing a complete HORIZONTAL frame, therefore in our examlple, it is 1232/65Mhz=18.95us. Experience shows that a vertical sync plus should be in the range of 50us and 300us. As an example let's use 150us, which translates into 8 vertical clock ticks (150us/18.95us~8). Q. Are we done already so far? I am tired! A. YES! we are almost done. All we need to do from now on is to write our result into Xconfig as follows: #name clock horizontal timing vertical timing flag 936x702 65 936 968 1200 1232 702 702 710 737 No special flag necessary. Now we are REALLY done. Q. Then what is the memory requirement for such a resolution? A. Memory requirment: 936x702/1024~642K video RAM. So if you have one meg, you have extra for virtual terminal switching. See, this is good compromise! However, if you only have 512K on board, then you can't use it. Even you have a good monitor, without enough video ram, you can't take advantage of your monitor's potential. On the other hand, if your SVGA has one meg, But your monitor can display at most 800x600, then high resolution is beyond your reach either. But the extra video ram can always be used for useful things like running multiple servers and virtual terminal switching Please read X386.man for details. Q. The example you gave is not a standard, can I use it? A. WHY NOT? There is NO reason whatsover why you have to use 640x480, 800x600, or even 1024x768. X386 driver lets you config your hardware with a lot freedom. It usually takes two to three minutes to come up the right one. The KEY is high refresh rate with reasonable viewing area. NOT Hi Res at the price of flickerness! Q. It this the ONLY resolution given the two 65Mhz and 55Khz timings? A. ABSOLUTELY NOT!! You are encouraged to follow the general procedure and do some trial and error to come up a setting that's really to your liking. Believe me, it's fun. Furthermore, you need to read X386.man to see how to set up different resolutions for the server, and how to use hot key combos to chose them at run time. That way, you can setup different resolutions for different needs. Q. You mentioned video bandwidth earlier, why you have not discussed it yet? A. Because I don't think you can use it for your X386 configuration. Most of the time you simply can ignore this monitor characteristics. With a SVGA and most hi res monitors, you CANN'T even reach the limit of your monitor's ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ video bandwidth. The following are examples Brand Video Bandwidth NEC 4D: 75Mhz Nano 9070 50Mhz Nano 9080i 60Mhz Mitsubishi HL6615 110Mhz Mitsubishi Diamon San 100Mhz IDEK MF-5117 65Mhz IOCOMM Thinksync-17 CM-7126 136Mhz HP D1188A 100Mhz Philips SC-17AS 110Mhz Most well known SVGA cards provide driving frequency ONLY up to 65Mhz. So obviously, judging from above samples, video bandwidth is not a factor you need to worry about. Q. Then why almost all monitor makers are making a big fuss about it? And what it is anyway? A. Simply put, your monitor employes electronic signals to represent data (or image to your eyes). Such signals always come in in wavy form once they are converted into analog form from digitized form. They can be considered as combinations of many simpler wave forms each one of which has a fixed frequency, many of them are in the Mhz range, eg, 20Mhz, 40Mhz, or even 70Mhz. Your monitor video bandwidth is the capability of it's internal circuts to process such high frequency signals without distorting their forms. So, if a monitor has a board bandwidth, like CM-7126 listed above, then clearly any signal containing components having frequencies lower than 136Mhz would come thru it's circuits with their wave form intact. Other models can not claim so. Consequently, fine details of images can be displayed without lossing fidelity. Shapeness is thus maintained. I emphasize that video bandwidth is just one factor in getting high quality image. There are other things to be considered as well. For more info, consult your librarian. Q. But I don't have a pricy hi-res monitor. Mine is only a humble NEC Multisync II, should I care? A. Still NO! NEC Multisync II can't even display 800x600 per it's spec. It can only display 800x560. For such a low resolution, you never need any high clock timing provided by your SVGA, most likely you can only use 32Mhz and 36Mhz, both of them are still not too far from the monitor's rated video bandwidth 30Mhz. At these two driving frequencies, your screen image may not be as shape as it should be, but definitely of tolerable quality. Of course it would be nicer if NEC Multisync II had a video bandwidth higher than, say, 36Mhz. But this is not critical for common tasks like text editing, as long as the difference is not significant so as to cause severe image distortion (if so your eyes would tell you right away). If you only want 640x480, then only 25Mhz or 28Mhz are good choices. Both of which are lower than 30Mhz. So you are even safer in this case. Q. You just mentioned two standard resolutions. In Xconfig, there are many standard resolutions available, can you tell me whether I still need to "tinker" with X386's config? A. Absolutely! Take, for example, the "standard" 640x480 listed in the current Xconfig. It employes 25Mhz driving frequency, frame lengths are 800 and 525 => refresh rate ~ 59.5Hz. Not too bad. But 28Mhz is a commonly available driving frequency from many SVGA boards. If we use it to drive 640x480, following the procedure we discussed above, you would get frame lengths like 812 and 505. Now the refresh rate is raised to 68Hz, a SIGNIFICANT improvement over the standard one! Your eyes will tell you if you don't trust my words. Q. I don't believe your emphasis on refresh rate! Using your definition, I got like 45Hz but I feel fine. A. Owing to the geometry of our pupils, when you face your monitor, and if you are using a dark background, with a good constrast for foreground color, and low to medium intensity, you shouldn't feel too bad even at 45Hz. The acid test is this: open a xterm with pure white back- ground and black foreground using xterm -bg white -fg black and make it so large as to cover the entire viewable area. Now turn your monitor's intensity to 3/4 of it's setting, and turn your face away from the monitor. Try peeking at your monitor sideways. If you don't sense any flicker or if you feel the flickering is tolorable to you. Then that refresh rate is fine with you. Otherwise you better do something about it. Different individuals have different sensitivity/tolerance to flickering. Above 60Hz is HIGHLY recommanded. Remember even florescent lights are refreshed at 60Hz, we still often use them in clusters to reduce flickering? Q. But how about interlace/non-interlace? A. The key word in video watching is NON-FLICKER! The point is that non-interlace is just part of the game! With non interlace alone BUT low screen refresh rate, your eyes will suffer badly!!!! Interlace-ness just worsen the flickering at the same refresh rate. If you can manage to get high enough refresh rate, say 90 Hz for interlace display, you WILL NOT feel any flicker!! (But I doubt this is feasible) So, CONCLUSION => NON-INTERLACENESS != NON-FLICKER! Q. Can you summarize what we have discussed so far? A. Sure! It would be: (1) for any fixed driving frequency, raising max resolution incurs the penalty of lowering refresh rate and thus introducing more flickering. (2) if a high resolution is desirable and your monitor supports such, try to get a SVGA card that provides a matching high driving frequency. The higher, the better!