Last
update: 1999-02-26
Using Matrox cards with non-VGA monitors
Click
here to go to MatroX files main page.
This page is currently under construction
and the functionality of BIOSPROG described here is not fully implemented/tested
!!!
Non-VGA monitors
Non-VGA monitors include all the monitors
falling into any of the following categories:
-
fixed sync frequency monitors
-
variable sync frequency monitors of minimum
hsync frequency above 32 kHz
-
monitors with composite sync signals
-
monitors with composite sync signals sent
over green video line
Matrox cards are capable of controlling most
of these monitors (with some limitations) both in DOS text modes and in
high resolution graphics modes. What's more, the support comes mostly from
the card's BIOS. This article explains how to enable / use these BIOS features.
Controlling the sync signal "style"
Standard VGA monitors have separate inputs
for HSYNC and VSYNC signals. When delivered, any MGA board is set to support
this style of synchronization. Some non-VGA monitors require either single
HVSYNC signal line (called composite sync) or common HVSYNC signal sent
over GREEN video line (called sync on green). Monitors with sync on green
may also require green signal voltage range to be different from red and
blue signals. This is contolled by video blank pedestal setting. One of
three non-VGA setting may be needed for non-VGA monitor:
-
composite sync on HVSYNC line
-
composite sync on GREEN line
-
composite sync on GREEN line with modified
blanking pedestal
As I am not an expert when it comes to non-VGA
monitors, I don't know which of the latter two settings is more common.
I suspect the last one...
It is possible to set the sync style permanently
in BIOS using Matrox PROGBIOS. The options are not documented...
New version of BIOSPROG may be used for
setting the sync style on G- series cards. The appropriate options are
described below.
Setting the sync frequency for standard VGA
text/graphics modes
The basic VGA modes (640x400, 640x480 and
720x400) have fixed sync parameters, as they must be handled in the same
way on any VGA-compatible controller. The timings are based on pixel clock
frequency. For basic VGA text mode 3 (80x25 characters), which provides
pixel resolution of 720x400, the standard pixel clock frequency equals
28.322 MHz, which yields VSYNC frequency of 70 Hz and HSYNC frequancy of
approx. 31.5kHz. For modes with 640 pixels in a row (and also 320x200 mode),
pixel clock runs at 25.175 MHz, which translates to HSYNC of 31.5 kHz.
In most of old VGAs these pixel frequencies were fixed. In Matrox MGA family
both pixel clock frequencies come from programmable PLLs which are set
(programmed) during card's initialization. It is possible to change these
two frequencies and adopt the HSYNC and VSYNC frequencies of standard VGA
text and graphics modes to some (not all) non-VGA monitors. Note however,
that VSYNC and HSYNC are based on the same pixel clock frequency, so if
we increase HSYNC frequency, VSYNC grows accordingly.
How Matrox BIOS programs VGA clocks at init
First, the BIOS looks at PINS to determine
if it should use nonstandard frequencies for VGA clocks. There are two
bytes in PINS which store VGA clock information for two clock frequencies.
If the respective field in PINS contains all-ones (0xFF hex or 255 dec.),
standard frequency of 25.175 and 28.322 MHz is used. Otherwise it is assumed
that the field contains the value of pixel clock frequency coded in 250
kHz units. The contents of both fields in ROM can be changed using PROGBIOS
or BIOSPROG. This gives the opprotunity to tune the card's VGA modes to
the capabilities of some non-VGA monitors.
What can we get directly from BIOS
The table below summarizes timing capabilities
of Matrox controllers in standard VGA modes. All frequencies are in kHz
unless noted otherwise.
|
Clk1 (640 pixels) |
Clk2 (720 pixels) |
| Standard CLK freq. |
25175 |
28322 |
| Max CLK freq. |
63500 |
63500 |
| Std HSYNC freq. |
31.5 |
31.5 |
| Std VSYNC freq. |
60 Hz |
70 Hz |
| Max HSYNC freq. |
90 |
70.6 |
| Max VSYNC freq |
152 Hz |
156 Hz |
Formula for CLK freq
based on HSYNC freq |
fc = fh * 800 |
fc = fh * 900 |
| Formula forVSYNC freq |
fv = fh / 525 |
fv = fh / 450 |
|
|
|
|
|
|
|
|
|
Assume we have a monitor with min. HSYNC frequency
of 48 kHz. To use it in standard VGA graphics modes, CLK1 field should
be programmed to get pixel clock of 38400 kHz. Rounded to the nearest multiple
of 250 kHz this gives 38500, and dividing this number by 250 we get PINS
field value of 154. This in turn yields VSYNC frequency of 91 Hz (which
must be checked against monitor's limit) . For text modes, the values are:
pixel clock - 43200 kHz, rounded to 43250, CLK2 field - 173, HSYNC freq
- 96 Hz.
Note that this must comply with monitor
limits, otherwise the monitor may be damaged.
While using nonstandard VGA clock values,
the picture on fixed frq./ high freq. monitor may be slightly distorted
(geometry problems). Anyway it's better to get slightly rounded text screen
on bootup than no screen at all until Windows is loaded...
Setting the sync parms for high resolution
graphics modes
Even if the card cannot be forced in BIOS
to support the monitor in VGA text and graphics modes, PoerDesk allows
the user to run Windows in high resolution graphics modes at any sync frequencies.
To achieve this, one should either edit the MGA.MON file manually or use
any multisync monitor capable of both standards VGA rates and sync
rates required by a given fixed- or high- frequency monitor.
In the secon case, the following steps
are needed:
-
Use the multisync monitor. In PowerDesk Monitor
tab select some VESA monitor capable of all the graphics modes needed but
at frequency not higher than supported by target monitor.
-
Edit sync parameters to match these of non-VGA
monitor. Save the new definition under new name.
-
Change the monitor to non-VGA one. Should
work...
BIOSPROG options related to monitors
(sync and VGA clock options available in v0.32
and above)
-
-sync_comp
-
set sync output mode to composite H&V
sync
-
-sync_green
-
set sync output mode to composite sync on
green
-
-sync_green7
-
as above, but set video blanking pedestal
to 7.5 IRE
-
-sync_sep
-
set sync output mode to default separate H&V
sync (for all VGA and most of other monitors) and reset video blanking
pedestal to 0
-
-vgaclk1 <decimal value>
-
-vgaclk2 <decimal value>
-
set dot clock for VGA1, VGA2 modes to (<value>/4)
MHz: value = 200 means 50 MHz, value = 241 means 60.25 MHz special value
of 255 means default VGA value
-