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: 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: 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:

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