
bcr: This file will not work with xfree86-1.0, xfree86-1.1, or the
bcr: x8514new server.  If you find a file that will, please e-mail
bcr: it to me.

From: fluet@ee.ualberta.ca (Kevin Blaine Fluet)

I figured out the clocks for the Ultra Pro, so I'm reposting.  Thanks to
Bill C. Riemers for pointing out that the clocks in my last post were wrong.

---------------------------------------------------------------------
Kevin Fluet                     Call Wintermute
fluet@ee.ualberta.ca            Unlimited Free Access to Linux Files
Edmonton, Alberta, Canada       (403) 478-1281          38400 bps
---------------------------------------------------------------------

bcr: Thanks to Kevin's work we now know the true clock spetds.  Since the
bcr: only difference left between our Xconfig files is a matter of personal
bcr: preferance, I'm merging both of these Xconfig files.  I now have 
bcr: vgaset working and I was able to make a flicker-free 1152 by 910 mode.
bcr: The vgaset modes are now default.
bcr:
bcr:                              Bill
bcr:
--> CUT HERE <--
# $Header: /home/x_cvs/mit/server/ddx/x386/Xconfig.cpp,v 1.8 1993/01/24 03:47:46 dawes Exp $
# $XConsortium: Xconfig,v 1.2 91/08/26 14:34:55 gildea Exp $
#
# Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of Thomas Roell not be used in
# advertising or publicity pertaining to distribution of the software without
# specific, written prior permission.  Thomas Roell makes no representations
# about the suitability of this software for any purpose.  It is provided
# "as is" without express or implied warranty.
#
# THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
# EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
# Author:  Thomas Roell, roell@informatik.tu-muenchen.de
# modified by obz for easier linux porting
# Modified by Kevin Fluet (fluet@ee.ualberta.ca) for the Local Bus ATI
#	Graphics Ultra Pro connected to a Gateway 2000 (MAG) Crystal Scan
#	1572 FS 	March 22, 1993
# bcr: Modified by Bill C. Riemerss (bcr@physics.purdue.edu) I've merged
# bcr: our Xconfig files.  Both are for the same card and monitor, so
# bcr: which modes you use is just a matter of personal preferance.
#
# some nice paths, to avoid conflicts with other X-servers
#

RGBPath		"/usr/X386/lib/X11/rgb"

#
# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
#

FontPath	"/usr/X386/lib/X11/fonts/misc/"
FontPath	"/usr/X386/lib/X11/fonts/Type1/"
FontPath	"/usr/X386/lib/X11/fonts/Speedo/"
FontPath	"/usr/X386/lib/X11/fonts/75dpi/"
FontPath    "/usr/X386/lib/X11/BitstreamType1"

#
# Keyboard and various keyboard-related parameters
#

Keyboard
  AutoRepeat 500 5
  ServerNumLock
  Xleds      1 2 3

#
# To set the LeftAlt to Meta, RightAlt key to ModeShift, 
# RightCtl key to Compose, and ScrollLock key to ModeLock:
# 

  LeftAlt     Meta
  RightAlt    ModeShift
  RightCtl    Compose
  ScrollLock  ModeLock

#
# Mouse definition and related parameters
#

  Microsoft	"/dev/mouse"
  Emulate3Buttons
  BaudRate 1200

#
# The graphics drivers
# First the 8-bit colour SVGA driver
#

vga256

  Virtual	1152 910
  ViewPort      0 0
#Kevin:  Modes 	"1152x910" "1024x768" "800x600"
#bcr:  Modes 	"1152X910" "1024X768" "800X600" "640X480" 
  Modes 	"1152v910" "1024v768" "800v600"

  Clocks 51 36 126 25 80 65 45 40 135 32 110 80 45 40 75 65

# NB:  These are the actual clocks for the Ultra Pro, not just what X386
# gives you.  They were determined by playing with the ATI install program.

#
# Next the 1-bit mono SVGA driver
#

vga2

  Virtual	640 480
  ViewPort      0 0
  Modes		"640x480"

#
# The Hercules driver.  For Hercules, the only valid configuration option
# is ScreenNo (refer to the manual page).
#

# hga2

#
# And last,  the database of video modes
#
#	These timings are set up for _my_ LB ATI Graphics Ultra Pro with 2MB
# VRAM installed.  You may need to do some fine tuning due to variations from
# card to card and monitor to monitor.  These _should_ work on a 1MB card
# without too much modification.  Here is a quick and dirty description
# of how to fine tune these timings by modifying the numbers below:
#
# bcr:  No modifications are needed for 1MB VRAM at this time.
#
# name	- Not really a number, just a label.
# clock	- Increase to reduce flicker at higher resolutions.
#	  You will have to readjust everything if you change this.
# bcr: Higher clock speeds means less flickering.  However too high
# bcr: of a clock speed means you won't be able to use your full 
# bcr: screen.
#
# horizontal timing -- all numbers are multiples of 8
# 1st	- The width of the display (in pixels) -- don't change this
# 2nd,3rd - Increase (the same amount) to move display left.
#           Decrease (the same amount) to move display right.
# bcr: X3 just seems to have random effects
# 4th	- Increase to make display narrower.
#	- Decrease to make display wider.
#
# vertical timing  -- numbers do _not_ have to be multiples of 8.
# 1st	- The depth of the display (in pixels) -- don't change this.
# 2nd,3rd - Increase (the same amount) to move display up.
#           Decrease (the same amount) to move display down.
# bcr: Y3 just seems to have random effects
# 4th	- Increase to make display deeper (taller).    
#	- Decrease to make display more shallow (shorter).
#
#					-- Kevin  (fluet@ee.ualberta.ca)
# bcr:
# bcr: I strongly recommend using vgaset.  (Found on sunsite.unc.edu.)
# bcr: Any mode with a verticle frequency of about 60Hz or greater should
# bcr: appear completely flicker-free.
# bcr:
# bcr:                                  Bill 
ModeDB

#   name        clock   horizontal timing       vertical timing         flags
# bcr: "sample"	CC      X1   X2   X3   X4       Y1   Y2   Y3   Y4
# bcr: I now use the following flicker-free modes.  (found with vgaset)
 "800v600"      51       800  800 1000 1000      600  600  606  616
 "1024v768"     65      1024 1024 1264 1264      768  770  788  792    
 "1152v910"     80      1152 1176 1424 1424      910  910  924  936
# bcr: These are Kevin's modes.
 "800x600"      65       800  824  944 1032      600  600  606  624
 "1024x768"     75      1024 1048 1184 1288      768  773  777  806
 "1152x910"     80      1152 1176 1272 1432      910  920  930  950
# bcr: These are the modes I used to use. (found by experimentation)
 "640X480"      40       640  664 9999  824      480  480    0  520
 "800X600"      40       800  824 9999  984      600  640    0  737
                51       800  824 9999 1024      600  601    0  655
 "1024X768"     65      1024 1048 9999 1288      768  775    0  843  
                75      1024 1048 9999 1288      768  768    0  830  
 "1152X910"     80      1152 1176 9999 1424      910  925    0 1015
---> Cut here <---
>In article <2012ga$ptq@calvin.nyu.edu> reznick@acf2.nyu.edu ( ) writes:
>>
>>I have XFree86 up and running under Linux, works great, thank you!
>>I have an ATI Graphics Ultra PRO, which uses the Mach 32 chip set.
>>The server works fine, and it even detecs the mach-32 which it never
>>did before.
>>
>>The only problem is that it seems to be unable to restore my SVGA
>>text mode.  It worked fine under 1.2.
>>
>
>I am having the same problem with my ATI VGA Wonder XL (chip version 28800-5).
>My configuration:
>Linux 0.99PL10
>libc 4.4
>XFree86-1.3 from tsx-11.mit.edu, dated June 18 (thus not the corrupted files)
>
>The X server starts up fine, I can even switch back to a text-mode VT and
>switch back to X, but when the server exits, it messes up the text-mode
>display: all I get are white vertical lines a few pixel wide, one per
>character position (I can still see the cursor). My default text mode
>is 80x25 (i.e. NORMAL_VGA in the kernel configuration file), so that
>should not be a problem.
>
>For now, I've just switched back to the 1.2 server, but it would be nice if
>this could be fixed in the 1.3 server.

Attached is a patch for the ATI driver which should fix this problem
(the original poster has tested it).

If you have the full XFree86 source, the patch should be applied in
mit/server/ddx/x386/vga256/drivers/ati/.

The easiest way to make use of this patch is to get the LinkKit, apply
this patch in /usr/X386/lib/Server/drivers/vga256/ati/, then rebuild
the server (there are instructions for using the LinkKit in
/usr/X386/lib/Server/).

[This and other late fixes can be found in the README.late file on
ftp.physics.su.oz.au:/XFree86 and export.lcs.mit.edu:/contrib/XFree86]


-----------------------------------------------------------------------------
*** ati/driver.c-1.3	Tue Jun 22 21:32:03 1993
--- ati/driver.c	Tue Jun 22 21:35:12 1993
***************
*** 191,196 ****
--- 191,198 ----
  #define TRACE(a)		/* Disable TRACE statements */
  #endif
  
+ #define ATI_PATCHLEVEL  1
+ 
  typedef struct {
  	vgaHWRec std;		/* good old IBM VGA */
  	unsigned char ATIExtRegBank[11]; /* ATI Registers B0,B1,B2,B3,B5,B6,B8,B9,BE,A6,A7 */
***************
*** 316,321 ****
--- 318,325 ----
  	/* Load Miscellaneous Output External Register */
  	outb(0x3C2, restore->std.MiscOutReg);
  
+ 	outw(ATIExtReg, 0x00b2);	/* segment select 0 */
+ 
  	/* For text modes, download Character Generator into Plane 2 */
  	if (restore->std.FontInfo1 || restore->std.FontInfo2 ||
              restore->std.TextInfo) {
***************
*** 1112,1117 ****
--- 1116,1124 ----
     close( fd );
  #endif /* MACH386 */
     
+    ErrorF("%s: ATI: driver patchlevel: %d\n", vga256InfoRec.name,
+           ATI_PATCHLEVEL);
+ 
     ErrorF( "ATI BIOS Information Block:\n" );
     ErrorF( "   Signature code:                %c%c = ",
  	   bios_data[ 0x40 ], bios_data[ 0x41 ] );
-----------------------------------------------------------------------------


David







