The !MakeModes application and this application note assume a degree of technical knowledge concerning video display generation and is not intended for use by those unfamiliar with display technology.
Related Application Notes: 63, 226, 262
ARM is a trademark of Advance RISC Machines Limited.
All other trademarks acknowledged.
©1994 Acorn Computers Limited. All rights reserved.
The Acorn Risc PC, unlike any previous Acorn machine, does not have information on screen modes built into the operating system. Screen modes are instead defined in a Monitor Definition File (MDF) which is loaded when the machine boots up. This provides the user of a Risc PC with a much greater degree of flexibility when it comes to choosing a monitor as screen modes can now be individually tailored to suit the facilities offered by the monitor.
A Monitor Definition File which normally resides in the !Boot.Resources.Configure Monitors directory is a plain text file which defines all of the parameters necessary for the Risc PC to generate and display RISC OS screen modes. An example segment of an MDF follows...
You are not advised to edit monitor definition files directly.
The parameters file_format, monitor_title and DPMS_state are set only once at the
beginning of an MDF. The command startmode tells the machine that a mode definition follows.
Below is a summary of all of the commands used in an MDF.
Where:
mode_name:
x-resolution:
Note: VIDC20 imposes restrictions on these parameters. In particular, all the horizontal timing
values must be in multiples of 2, and the horizontal total (hsync + hbpch + hlbdr + hdisp + hrbdr +
hfpch) must be a multiple of 4.
The diagram below gives a graphical representation of this information.
The following describes these interrelationships and offers guidance on the limits for the screen mode
definition. As values are changed, the MakeModes application automatically checks that the mode will
be displayable, if it is not, MakeModes will inform you. However, much time will be saved when
attempting to create new modes if you understand and work within the limits imposed rather than
using a 'trial and error' method.
Listed below are the three main limiting factors which are discussed in this document.
The Pixel rate is one of the principal variables that you will use in the MakeModes application. It can
be used to increase or decrease a modes frame rate. Because a modes Line rate is directly affected by
its Frame rate, altering the Pixel rate will change this value as well.
The Pixel rate is calculated from:
With no VRAM fitted the Risc PC will be forced to use DRAM which has a slower access time than
dedicated Video RAM. This greatly increases the amount of time spent by the processor updating the
screen and therefore limits the amount of memory that can be used as screen RAM. This limitation in
turn limits the maximum resolution and pixel depth that can be used. On a machine with 1MB VRAM,
the maximum amount of screen memory that the system can process is 80MB/sec, with 2MB of
VRAM, this figure doubles giving a maximum video bandwidth of 160MB/sec. Without VRAM the
maximum video bandwidth is 40MB/sec. In order to provide a safety margin, the bandwidth limit file
stored in the !Boot directory on the Risc PC hard disc sets the maximum bandwidths to 38MB/sec,
76MB/sec and 152MB/sec respectively.
Is is important to be aware of both the memory and bandwidth calculations as it is possible to define a
mode that fits within the available video RAM but exceeds the machines maximum video bandwidth.
The MakeModes application will warn you if a proposed screen mode will exceed either of these
limitations.
The following table shows an example of the screen modes and colour combinations (pixel depths)
that can be used with the three different VRAM options.
These calculations will give a result in MB/sec.
This total is then used in conjunction with the number of bits per pixel (bpp) to calculate the amount of
memory required.
Overview
Each screen mode that you wish to use should be defined as above within the monitor definition file.
The application !MakeModes can be used to generate monitor definition files from data supplied by
the user. It is available from your Acorn Dealer or local I.T. Centre. The application consists of a disc
containing !MakeModes, a ReadMe file and an accompanying manual.
file_format:1
monitor_title:Acorn AKF60
DPMS_state:1
# 320 x 250 (70Hz)
startmode
mode_name:320 x 250
x_res:320
y_res:250
pixel_rate:12587
h_timings:36,14,12,320,12,6
v_timings:2,109,0,250,0,88
sync_pol:2
endmode
# 800 x 600 (75Hz)
startmode
mode_name:800 x 600
x_res:800
y_res:600
pixel_rate:49500
h_timings:80,46,42,800,42,46
v_timings:3,21,0,600,0,1
sync_pol:0
endmode
# 1024 x 768 (60Hz)
# High band
startmode
mode_name:1024 x 768
x_res:1024
y_res:768
pixel_rate:65000
h_timings:128,36,60,1024,60,36
# VESA:136,160,0,1024,0,24
v_timings:6,29,0,768,0,3
sync_pol:0
endmode
file_format: format
monitor_title: title
DPMS_state: state
startmode
mode_name: mode_name
x_res: x-resolution
y_res: y-resolution
pixel_rate: pixel_rate
h_timings: hsync, hbpch, hlbdr,hdisp,hrbdr,hfpch
v_timings: vsync, vbpch, vtbdr, vdisp. vbbdr, vfpch
sync_pol: sync_polarities
endmode
is a textual name for the mode that will be used in the display manager's mode menu. It is
possible to prevent defined screen modes from appearing in the modes menu by simply
leaving this field blank. Mode names are limited to 19 characters in length and may contain
space characters.
is the number of pixels displayed across the screen
y-resolution:
is the number of rasters displayed vertically (pixels)
hsync:
is the width of the horizontal sync pulse
hbpch:
is the width of the horizontal back porch
hlbdr:
is the width of the left border
hdisp:
is the number of pixels displayed horizontally (which is normally the same as the x-resolution)
hrbdr:
is the width of the right border
hfpch:
is the width of the horizontal front porch
vsync:
is the width of the vertical sync pulse
vbpch:
is the width of the vertical back porch
vtbdr:
is the width of the top border
vdisp:
is the number of rasters displayed vertically (pixels)
vbbdr:
is the width of the bottom border
vfpch:
is the width of the vertical front porch
pixel_rate:
is the pixel rate in kHz
sync_polarities:
is a number indicating what kind of sync signals are required. The kinds of sync signal are as follows:
0 hsync normal, vsync normal
1 hsync inverted, vsync normal
2 hsync normal, vsync inverted
3 hsync inverted, vsync inverted
All values on the h_timings line are in units of pixels, and all values on the v_timings line are in
units of raster lines.
Glossary of terms
Before describing in detail how these parameters can be used to define a new screen mode, it is necessary to
understand some of the conventions that will be used in this application note.
Video Bandwidth
Video Bandwidth is the term used to describe the amount of video information that a Risc PC can
process over a specified time period. Typically, video bandwidth will be specified as megabytes per
second e.g. a Risc PC fitted with 2MB VRAM has a maximum video bandwidth of 156MB/sec.Dot Pitch
The dot pitch is the physical spacing of the phosphor dots that a monitor uses to generate a screen
display. The smaller the dot pitch, the clearer the picture. Some high resolution screen modes may
appear blurred if the dot pitch is not small enough to cope with the size of the pixels being generated
by the computer.Line Rate (Horizontal frequency)
A monitor's line rate defines the speed at which a monitor can scan one horizontal line. The line rate is
normally specified as a range in kHz i.e. the AKF60 has a line rate range of 30-50kHz.Frame Rate (Vertical frequency)
The frame rate is the speed at which the monitor can refresh the screen. The frame rate is normally
specified as a range in Hz i.e. the AKF60 has a frame rate range of 40-90Hz.Pixel Depth
Pixel depth dictates the number of colours that can be displayed on the screen. Pixel depth is measured
in bits per pixel (bpp). The following table describes how bits per pixel relates to the number of
colours that will be displayed;
Bits per pixel Number of colours
1 bpp 2
2 bpp 4
4 bpp 16
8 bpp 256
16 bpp 32,000
32 bpp 16 Million
Limiting Factors
Before creating a new screen mode or a new monitor definition file using the !MakeModes
application, you should be fully aware of the factors limiting the display of a screen mode and the
interrelationship of the variable paramaters.Monitor Limitations
The screen mode must not exceed the monitor's line rate (horizontal frequency), frame rate (vertical
frequency) or its maximum pixel rate. A monitors line and frame rate ranges can normally be found in
its accompanying documentation. Please see the MakeModes manual for information on how to enter
this information.Memory / Bandwidth Limitations
The Risc PC can have up to three different screen memory configurations, no VRAM (DRAM only),
1MB VRAM or 2MB VRAM.Calculating required bandwidth for a screen mode
The bandwidth used by a screen mode increases according to the number of colours being used. The
calculations necessary to find the bandwidth for each bpp mode are listed below;
Bits per pixel Calculation used
1 bpp Video Bandwidth = (pixel_rate / 1000000) / 8
2 bpp Video Bandwidth = (pixel_rate / 1000000) / 4
4 bpp Video Bandwidth = (pixel_rate / 1000000) / 2
8 bpp Video Bandwidth = (pixel_rate / 1000000)
16 bpp Video Bandwidth = (pixel_rate / 1000000) * 2
32 bpp Video Bandwidth = (pixel_rate / 1000000) * 4
Calculating memory requirements for a screen mode
Besides bandwidth limitations, another factor that one must also consider when creating a new mode is
the amount of screen memory that will be needed. To work out how much memory a screen mode will
need you must first find out how many pixels will be displayed in total. Multiplying the x_resolution
by the y_resolution will give this figure.
Bits per pixel Calculation used
1 bpp VRAM = pixel_total / 8
2 bpp VRAM = pixel_total / 4
4 bpp VRAM = pixel_total / 2
8 bpp VRAM = pixel_total
16 bpp VRAM = pixel_total * 2
32 bpp VRAM = pixel_total * 4
Examples
The following table gives an example of how much memory is required for some standard screen
modes at various pixel depths.