CHANGES:

1)  the ChipSet field should be the value reported by xinit NOT SuperProbe!!!

----------------------------------------------------------------------------
Here is the final format for the video card and monitor databases. 
Two fields have been added to the Card file. Driver is the text string
for the Xconfig file cooresponding to the driver to be used (i.e. accel,
vga256, vga16 etc.) Server is the actual name of the Server to be run for 
this card (i.e. XF86_Mach8, XF86_SVGA etc).

As they are listed here they are easily parsable within a shell script. 
That is the goal since we can depend on either sh or bash being on every 
system and thus the program will be portable. 

The tuning/testing routines you saw (or should have) in my last 
submission, the program named 'fiddle', has been changed to work against the 
output from these routines. Fiddle has now been integrated into the configuration routine.

The output from these routines should look very much like the existing 
Xconfig files so that anyone manually dinking with them won't get lost. 

FINAL Video Card Descriptor File

Record layout:

One card per line
Fields are pipe delimited

Fields:
Field Name	Data Type (*=Req'd)	Purpose
-----------------------------------------------------------------------------
CardID 		integer, unique*	Reserved for future use <as a pointer 
		Auto assigned		to a record of another file>

CardName	string <= 40 Char*	Manufacturers product name
CardDesc	string <= 40 Char	Furthur description of card

Contributor	string unlimited	Colon separated Contributor list
LastEdit	string			Date of last edit

ChipSet		string <= 20 Char*	Chipset name as reported by xinit
ClockChip	string <= 20 Char	If known
ClockProg	string <= 20 Char	If any
RamDac		string <= 20 Char	RamDac as reported by SuperProbe
ClockRates	string unlimited*	Dot clock list (space separated)
					or programable clock command as 
					described in Xconfig(4) 

The following fields are used to produce a default Xconfig file for the users
graphics card if no monitor is chosen from the menu.

These fields are a 'best match' of the ClockRates field against Dave Wex's 
Vesa Monitor spec. ( see Monitor file specification ). If a Vmode field is 0,
that mode will be left off of the 'Modes' line. At least one mode MUST be 
defined so that there is a fallback for wierd cards.

Vmode64		integer			Vesa compatible 640 x 480 clock rate
Vmode86		integer			Vesa compatible 800 x 600 clock rate
Vmode107i	integer			Vesa compatible 1024 x 768 clock rate
Vmode107	integer			Vesa compatible 1024 x 768 clock rate
Vmode121i	integer			Vesa compatible 1280 x 1024 clock rate
Vmode121	integer			Vesa compatible 1280 x 1024 clock rate

The rest of the fields are optional and may be left blank

Options		string unlimited	COLON SEPARATED option list
VideoRam	integer			In K bytes (0 if unknown)
BiosBase	hex (format=9x99999)	If known
ViewPort	string (format=x y)	Blank=0 0
Virtual		string (format=xdim ydim) Blank=Current Mode
SpeedUp		integer [0|1]		If blank this option is ignored - 
					no entry in Xconfig
Driver		string			(i.e. accel, vga256, vga16, etc)
Server		string			(i.e. XF86_Mach8, XF86_SVGA, etc)

Sample Record: (Mine!)

0|ATI 8514/Ultra|Should also work for ATI graphics Ultra|Steve Zwaska [stz@netcom.com]|12/31/93|ATI Mach-8||||43.00 48.80 0.00 36.00 50.30 56.70 0.00 44.90 30.20 32.00 37.50 39.00 40.00 89.30 75.50 65.00 21.50 24.40 0.00 18.00 25.15 28.35 0.00 22.45 15.10 16.00 18.75 19.50 20.00 44.65 37.75 32.50|25|40|44|65|0|0||1024||0 0|1024 768||accel|XF86_Mach8

Produces a Video Mode Setup section that looks like this:

For the default monitor selection the section will be:
#-------------------------------------------------------------
# Video Card Definition
# Video Card ID 0
# Video Card Name:	ATI 8514/Ultra
#			Should also work for ATI graphics Ultra
# Contributed By:	Steve Zwaska [stz@netcom.com]
# Last Change:		12/31/93
accel
Chipset mach8
Clocks 43.00 48.80 0.00 36.00 50.30 56.70 0.00 44.90 30.20 32.00 37.50 39.00 40.00 89.30 75.50 65.00 21.50 24.40 0.00 18.00 25.15 28.35 0.00 22.45 15.10 16.00 18.75 19.50 20.00 44.65 37.75 32.50
Virtual 1024 768
ViewPort 0 0
Modes "1024x768" "1024x768i" "800x600" "640x480"

If the ViewSonic 7 is selected from the Monitor Menu  the section will be:
#-------------------------------------------------------------
# Video Card Definition
# Video Card ID 0
# Video Card Name:	ATI 8514/Ultra
#			Should also work for ATI graphics Ultra
# Contributed By:	Steve Zwaska [stz@netcom.com]
# Last Change:		12/31/93
accel
Chipset mach8
Clocks 43.00 48.80 0.00 36.00 50.30 56.70 0.00 44.90 30.20 32.00 37.50 39.00 40.00 89.30 75.50 65.00 21.50 24.40 0.00 18.00 25.15 28.35 0.00 22.45 15.10 16.00 18.75 19.50 20.00 44.65 37.75 32.50
Virtual 1024 768
ViewPort 0 0
Modes "1024x768" "1024x768i" "800x600" 

	*------------------------------------------------------*

Proposed Monitor Descriptor File

Record layout:

One card per line
Fields are pipe delimited

Fields:
Field Name	Data Type (*=Req'd)	Purpose
-----------------------------------------------------------------------------
ScrnID 		integer, unique*	Reserved for future use <as a pointer 
		Auto assigned		to a record of another file>

ScrnName	string <= 40 Char*	Manufacturers product name
ScrnDesc	string <= 40 Char	Furthur description of monitor

Contributor	string unlimited	Colon separated Contributor list
LastEdit	string			Date of last edit

ClockRates	string unlimited*	Clock list (space separated)
ModeLine	string unlimited*	Formated as below, you may add as many 
					of these fields as you like
		Format: (single space separates fields)

MODE   CLK HRES HSS  HSE   HFL VRES VSS  VSE  VFL  
1280x1024i 80 1280 1296 1512 1568 1024 1025 1037 1165 :Interlace:[+-hsync]:[+|-]vsync

Note: 	No leading space
	Space after VFL is REQUIRED
	Colon separators are REQUIRED even if fields are blank

Sample record (Mine)

0|ViewSonic 7||Steve Zwaska [stz@netcom.com]|12/30/93|36 40 50 44 65 75|800x600 36 800 824 896 1024 600 601 603 625:::|800x600 40 800 840 968 1056 600 601 605 628:::|800x600 50 800 856 976 1040 600 637 643 666:::|1024x768i 44 1024 1040 1216 1264 768 768 778 819:Interlace::|1024x768 65 1024 1080 1224 1344 768 776 778 808:::|1024x768 75 1024 1048 1184 1328 768 771 777 806:::|

Produces a modedb that looks like this:
#-------------------------------------------------------------
# Monitor Definition
# Monitor ID 0
# Monitor Name:		ViewSonic 7
# Contributed By:	Steve Zwaska [stz@netcom.com]
# Last Change:		12/30/93

ModeDB

"800x600" 36 800 824 896 1024 600 601 603 625   
"800x600" 40 800 840 968 1056 600 601 605 628   
"800x600" 50 800 856 976 1040 600 637 643 666   
"1024x768i" 44 1024 1040 1216 1264 768 768 778 819 Interlace  
"1024x768" 65 1024 1080 1224 1344 768 776 778 808   
"1024x768" 75 1024 1048 1184 1328 768 771 777 806   
