# You can actually use this file as a config file for svgalib by copying
# it to /usr/local/lib/libvga.config. However this is not recommended
# because of the size of this file. So better remove any unneeded lines
# from this file before using it as config file.

# As you have probably guessed already, everything between '#' and the
# end of the line is ignored. Empty lines are also ignored. Since
# the driver you will use may not know all config options here, unknown
# commands are silently ignored. Please think of that when something
# does not work as you expect. Multiple commands are allowed in one line

# Newstyle options are in general case insensitive wheras the oldstyle
# options are case sensitive. The oldstyle options are included to
# allow for old config files being used.

# However there is one difference: The newstyle config expects a blank
# between each command. That is m2M4 won't work anymore. It would be
# parsed as a single config command. You have to specify m2 M4 in this
# situation.

# The environment variable SVGALIB_CONFIG is parsed like a line in this
# file after the real config file is parsed. Note that some config
# commands are disabled in SVGALIB_CONFIG for safety by default.

# Note that you will have to delete the # before the example config commands
# to activate them.

# General options (handled by libvga):

# Mouse setting:
# mouse mousetype where mousetype is one of:
# Microsoft, MouseSystems, MMSeries, Logitech, Busmouse, or none.

# That is for example:

# mouse Microsoft
# mouse MouseSystems
# mouse MMSeries
# mouse Logitech
# mouse Busmouse
# mouse none

# You can although specify the type by numbers:

# mouse 0 # Microsoft
# mouse 1 # MouseSystems
# mouse 2 # MMSeries
# mouse 3 # Logitech
# mouse 4 # Busmouse
# mouse 9 # none

# Or in oldstyle:

# m0 # Microsoft
# m1 # MouseSystems
# m2 # MMSeries
# m3 # Logitech
# m4 # Busmouse
# m9 # none

# Whitespace between m and the digit is allowed.

# Monitor setting:
# monitor monitorclass where monitorclass is a digit from 0 to 6 or the
# horz freq in KHz. Examples:

# monitor 0 # Max horz sync is 31.5 KHz
# monitor 1 # Max horz sync is 35.1 KHz
# monitor 2 # Max horz sync is 35.5 KHz
# monitor 3 # Max horz sync is 37.9 KHz
# monitor 4 # Max horz sync is 48.3 KHz
# monitor 5 # Max horz sync is 56.0 KHz
# monitor 6 # No restrictions.

# For your convenience you may specify the max horz sync explicitely. The
# correct class will the be choosen. You may use floats consisting of digits
# and a decimal point for this too:

# monitor 40.0 # equivalent to monitor 3
# Everything about 59 is considered for monitor 6.
# For compatibility the following are also supported:

# M0 # Max horz sync is 31.5 KHz
# M1 # Max horz sync is 35.1 KHz
# M2 # Max horz sync is 35.5 KHz
# M3 # Max horz sync is 37.9 KHz
# M4 # Max horz sync is 48.3 KHz
# M5 # Max horz sync is 56.0 KHz
# M6 # No restrictions.

# Whitespace between M and the digit is allowed.
# This command is not allowed in SVGALIB_CONFIG by default.

# Chipset enforcement: If autodetection fails you may force detection of
# you chipset with "chipset type" where type is (currently ;) ) one of
# VGA, ET4000, Cirrus, TVGA, Oak, EGA, S3, ET3000, or Mach32
# Examples:

# chipset VGA
# chipset ET4000
# chipset Cirrus
# chipset TVGA
# chipset Oak
# chipset EGA
# chipset S3
# chipset ET3000
# chipset Mach32

# There is also an oldstyle way for this:

# C1 # chipset VGA
# C2 # chipset ET4000
# C3 # chipset Cirrus
# C4 # chipset TVGA
# C5 # chipset Oak
# C6 # chipset EGA
# C7 # chipset S3
# C8 # chipset ET3000
# C9 # chipset Mach32

# C0 # Autodetect.

# Warning, incorrect settings may damage your hardware.
# No whitespace is allowed between the C and the digit.
# This command is not allowed in SVGALIB_CONFIG by default.

# If the size of memory or additional info is misdetected use this form:

# chipset Mach32 0 2048

# Note that always two integers have to be specified. Usually (mach32)
# the second parameter is the memory amount. Look at the *_init function
# of the specific device driver. Values you have to specify to force dactype
# and type of memory-aperture for mach32 can be found in mach32.h

# This form is also not allowed in SVGALIB_CONFIG by default.

# Specific options are required for the EGA-driver:

# monotext  # Card is in monochrome emulation mode
# colortext # Card is in color emulation mode

# Oldstyle form:

# c0 # Card is in monochrome emulation mode
# c1 # Card is in color emulation mode
# No whitespace is allowed between the c and the digit.
# This command is not allowed in SVGALIB_CONFIG by default.

# Miscanellous options:

# nolinear # Inhibit use of a linear mmaped framebuffer.
# linear   # Allow (not enforce!) use of a linear mmaped framebuffer.

# overrideenable # Allow "dangerous" commands in SVGALIB_CONFIG.

# Options that may be useful for all drivers, but currently are only supported
# by Mach32:

# dacwidth bits # set dac into bits bitswide mode (6 and 8 are possible for
# Mach32). Note: The application has to specify palette settings with the
# correct size! Also the default palette values used by svgalib are always
# 6 bit wide. That means this feature is not very useful in this form!

# dacwidth 6 # color lookup table palette values are 6 bit wide (default)
# dacwidth 8 # color lookup table palette values are 8 bit wide

# maxclock16 maxclk # The maximal clock to use for 16bpp modes. This is
# used by mach32 to find out which settings may be used for 16bpp modes.
# the mach32 default for this is 2000, thus it is effectively switched off.

# maxclock16 2000

# maxclock24 maxclk # The maximal clock to use for 24pp modes. (see above)
# Experience showed that the mach32 default 49 is good for my 2MB VRAM card.

# maxclock24 49

# clocks list of clocks # Sets the frequencies of the clocks the chips can
# generate. Exactly 16 values have to be specified for mach32. By default
# mach32 uses values that are valid for both known clockchips
# 18811-0 and 18811-1. Use 0 to effectively disable a specific clock.
# Note that the mach32 can divide clocks by 2. Thus there are actually 32 clocks
# And you can also use the divided clocks in a define command.

# Mach32 values:

# defaults: clock chip 18811-X:
# clocks 0 0 92 36 50 56 0 45 0 32 110 80 40 45 75 65

# clock chip 18811-0:
# clocks 43 49 92 36 50 56 0 45 30 32 110 80 40 45 75 65

# clock chip 18811-1:
# due to Xfree86 info valid for: Ultra pro ISA, Ultra pro EISA, Ultra pro VLB(68800-3)
# clocks 100 126 92 36 50 56 0 45 135 32 110 80 40 45 75 65

# clock chip 1881 (ICS2494):
# due to Xfree86 info valid for: Ultra pro VLB (6880006)
# clocks 18 22 25 28 36 44 50 56 30 32 37 39 40 0 75 65

# Sometimes a mode cannot be realised with the logical linelength = pixels in
# a row * bytes per pixel. (true for Mach32 800x600). The default behavior
# of mach32 is to adjust xbytes in the infotable appropriate, but you can
# select:

# variablelinelength # Adjust xbytes appropriate, thus overriding the standard
# svgalib mode. This may yield to problems with ..umm.. not well designed
# applications. This is the mach32 default.

# duplicatelinelength # Don't touch the standard mode but create an exact
# copy, an dynamic mode, with the adjusted xbytes value.  Expect noise at some
# pixels in 800x600 for more than 256 colors on mach32 when not using the dynamic
# mode.

# strictlinelength # Same as above but delete the standard mode thus creating
# the non conforming xbytes modes only as dynamic modes.

# To enforce the standard behavior for non-conforming modes use setlinelength below

# In the following commands a mode is specified with horzXvertXcolors.
# Valid settings for colors in the mach32 driver are: 256, 32K, 64K, 16M.
# Examples: 640x480x256, 1024x768x64K, etc..

# Inhibit mode1 [mode2 mode3...] # Switch the specified SVGA-Modes of:

# Inhibit 800x600x32K 800x600x64K 800x600x16M # Disallow the maybe toasted
# mach32 800x600 modes.

# setlinelength length mode1 [mode2 mode3...] # Force the logical linelength
# (xbytes) in the given modes to length pixels (not bytes!)
# see also variablelinelength, strictlinelength, duplicatelinelength above.

# setlinelength 800 800x600x32K 800x600x64K 800x600x16M

# define mode1 [mode2 mode3 .... ] clock horz_timing vert_timing flags
# where clock is a clock in MHz (in integer! Has be known by the driver.
# (one of the set/default clocks, or the exact half of them) you may use :n
# to specify the n-th clock (n=0..31 for mach32). horz_timing are four
# ints: hdisp h_sync_strt h_sync_wid h_total. vert_timing has the same
# format but for vertical. You may specify one or more flags out of:
# Interlace, +vsync, -vsync, +hsync, -hsync, to select interlace mode and
# polarity of sync signals. This format is almost the same Xfree uses, s.t.
# you may use their mode table and the modegen spreadsheat package for
# mode creation. Here is a 1024x768x256 mode as example:

#define 1024x768x256 80 1024 1024 1184 1312 768 768 772 791 +vsync -hsync

# or

#define 1024x768x256 1024x768x32K 1024x768x64K
#		:11 1024 1024 1184 1312 768 768 772 791

# (yes any whitespace in a command is allowed, even \n !)

# There is one additional option that makes only sense for mach32:

# mach32eeprom filename

# The mach32 has an eeprom that is filled with predefined modes that can be
# set very convenient with a config utility from ATI. These settings will
# be used by svgalib. Unfortunately reading the mach32eeprom causes noise
# on the videosignal. If the resulting flicker annoys you or screws your
# monitor up, specify a filename from which to read the contents of the
# eeprom. If the file cannot be read, the eeprom is read out and the file
# is created. There is a very simple checksum put into this file. Although
# it can easily fooled, don't change the file except you know very very
# well what you are doing. Also as long as the file exists changes in the
# mach32 eeprom have no effect.. delete the file to recreate an updated
# version on next use of svgalib. You should ensure that the permissions of
# the file don't allow usual users to change it. (This may happen if umask
# has a bad value when svgalib creates the file)

# Example:

# mach32eeprom /etc/mach32.eeprom

