# VGA database.
#
# ctlr:
# These entries are used to identify a particular controller.
# 'numeric offset'="string" identifies the controller by searching
# the BIOS for "string" at 'offset'. There may be multiple identifier
# attributes per ctlr.
# Strings can be found in the BIOS ROM by using the DOS 'debug'
# command and typing 'd c000:0' to obtain a dump of the first part of
# the ROM. Note that some machines (e.g. AT&T/NCR laptops) have the
# ROM mapped at 0xE0000, not 0xC0000.
# The "clock", "ctlr", "link" and "ramdac" entries give a chain in order
# of functions to be called for this controller for initialisation, etc.
# The "clock", "ctlr", "link" and "ramdac" values can all take an extension following
# a '-'. This can be used as a speed-grade or subtype; matching is done without
# the extension.
#
ctlr
0xC006F="8C801" # STB PowerGraph X-24
link=vga
ramdac=att20c491-100
hwgc=s3hwgc
link=s3clock clock=icd2061a
ctlr=s3801 link=ibm8514
ctlr
0xC004F="86C805" # Orchid Fahrenheit 1280
0XC004F="86C801" # Quadtel S3 86C801/805
link=vga
hwgc=s3hwgc
ramdac=sc15025-80
link=s3clock clock=ch9294-g
ctlr=s3805 link=ibm8514
ctlr
0xC0067="#9GXE" # #9GXE Level-1[12]
link=vga
ramdac=bt485-135
hwgc=bt485hwgc
ctlr=s3928 link=ibm8514
clock=icd2061a link=s3clock
ctlr
0xC0064="#9GXE" # #9GXE Level-16
link=vga
hwgc=tvp3020hwgc
ctlr=s3928 link=ibm8514
ramdac=tvp3020-200
clock=icd2061a link=s3clock
ctlr
0xC0094="#9-864" # #9GXE64
0xC0044="Phoenix S3 Vision864 (16Bit DAC)" # GIS Globalyst 550
link=vga
hwgc=s3hwgc
ctlr=vision864 link=ibm8514
ramdac=att21c498-135
clock=icd2061a link=s3clock
ctlr
0xC0076="Tseng Laboratories, Inc. 01/30/92 V8.00X" # Cardinal VGA765
link=vga
ramdac=att20c492-80
clock=ics2494a-237
ctlr=et4000
ctlr
0xC0076="Tseng Laboratories, Inc. 03/04/94 V8.00N" # Hercules Dynamite Power
link=vga
clock=ics2494a-324
ramdac=stg1702-135
ctlr=et4000-w32p
hwgc=et4000hwgc
ctlr # CL-GD542x
0xC0039="CL-GD540" # Cirrus Logic BIOS
0xC0039="CL-GD5422"
0xC0039="CL-GD542X VGA BIOS" # NCR 3230
0xE0039="CL-GD540x/542x VGA BIOS" # NCR 3230
0xC003B="SpeedStar PRO" # Diamond SpeedStar Pro
0xC00F4="KELVIN 64" # Orchid Kelvin 64
link=vga
ctlr=clgd542x
ctlr
0xC008F="ATI ULTRA PRO" # ATI ULtra Pro
link=vga
ctlr=mach32
ctlr
0xC0085="ATI MACH64, PCI BIOS" # AT&T Globalyst 600
link=vga
ctlr=mach64
#
# Don't know enough to do anything other than 640x480 on these.
# Time someone else did some programming...
#
ctlr
0xE002D="PARADISE003245-520" # AT&T 3416
0xE0030="PhoenixVIEW(tm) VGA-Compatible BIOS" # AT&T Safari NSX20
0xC008D="Chips 65540 VGA 32KB BIOS" # ARM TS30
ctlr=vga
#
# mode:
# These entries specify a monitor operating mode.
# Attributes are:
# clock the dot clock in MHz
# shb start horizontal blanking
# ehb end horizontal blanking
# ht horizontal total
# vrs vertical refresh start
# vre vertical refresh end
# vt vertical total
# hsync horizontal sync polarity
# vsync vertical sync polarity
# interlace interlace
# The shb, ehb, ht, vrs, vre and vt attributes specify the horizontal and
# vertical timing. The x (hde, horizontal display end), y (vde, vertical
# display end) and z (depth) values are derived from the value of the main
# attribute (e.g. 640x480x8 -> x=640, y=480, z=8).
#
# The clock value 25.175 is known internally as the baseline VGA clock rate.
#
# The defaults for hsync, vsync and interlace are 0. Both hsync and vsync
# must be non-zero if either is to take effect, - and + are valid choices.
#
# An attribute 'include=val' means continue using another entry. In this
# case any non-zero attributes already set will not be overwritten by the
# jumped-to mode. The x, y and z values are fixed by the first mode.
#
# An attribute 'alias=val' means continue using another monitor type. It can
# be used to chain classes together. (bad explanation, i know).
#
include = 640x480@60Hz # 60Hz, 31.5KHz
clock=25.175
shb=664 ehb=760 ht=800
vrs=491 vre=493 vt=525
#
# Multisync monitors with video bandwidth up to 135MHz.
#
multisync135 = 1280x1024x1 # 74Hz, 79.6KHz
include=1280x1024@74Hz
multisync135 = 1280x1024x8 # 74Hz, 79.6KHz
include=1280x1024@74Hz
multisync135 = 1376x1024x8 # 70Hz, 75.3KHz
include=1376x1024@70Hz
multisync135
alias=multisync75
#
# Viewsonic 17 (model no. 1782)
# Horizontal timing:
# Allowable frequency range: 30.0-82.0KHz
# Blanking time: 3.0µs min.
# Back porch time: 1.25µs min.
# Front porch time: length of back porch time or less
# Sync width time: 1.2µs min.
# Vertical timing:
# Allowable frequency range: 50.0-90.0Hz
# Blanking time: 0.5ms min.
# Back porch time: 0.5ms min.
# Sync width time: 0.045ms min.
#
vs1782
alias=multisync135
#
# Nokia Multigraph 445X
# Horizontal timing:
# Allowable frequency range: 30-102KHz
# Blanking time: <= 20% of line period min.
# Back porch time: 0.6->1.0µs
# Vertical timing:
# Allowable frequency range: 50-120Hz
# Sync width time: 0.045ms min. between start of sync
# and start of video
# Video bandwidth:
# 200MHz
#
445x = 1600x1200x8 # 72Hz, 90.4KHz
clock=200
shb=1664 ehb=2088 ht=2208
vrs=1202 vre=1208 vt=1256
445x
alias=multisync135
#
# Sony CPD-1304
# Horizontal timing:
# Allowable frequency range: 28-50KHz
# Vertical timing:
# Allowable frequency range: 50-87Hz
#
cpd-1304
alias=multisync65
#
# NEC 4FG
# Horizontal timing:
# Allowable frequency range: 27-57KHz
# Vertical timing:
# Allowable frequency range: 55-90Hz
# Video bandwidth:
# 75MHz
#
nec4fg
alias=multisync75
#
# NEC 5FG
# Horizontal timing:
# Allowable frequency range: 27-79KHz
# Vertical timing:
# Allowable frequency range: 55-90Hz
# Video bandwidth:
# 135MHz monitor
# 75MHz cable
#
nec5fg
alias=multisync135