MakeModes Application Note
Acorn Computers 1994 Application Note - ModifiedOriginal: 5th September 1994 Support Group Application Note Number: 254 Issue: 1.02 Author: DM Modified: Frank Watkinson - 9th June 2003 Risc PC monitor definition files explainedNotes: The original documents from which the attached modified versions were developed, were produced and copyrighted by Acorn Computers Limited in 1994. Whoever now holds the copyright, there does not appear to be any maintenance of the original documents or the application to which they refer, i.e. !MakeModes. Please note the the changes to these documents were made with good intentions and if anyone is aggrieved at the action taken in making these modifications, they should contact the under-mentioned so that appropriate action can be taken. Frank Watkinson This application note describes in detail Risc PC monitor definition files. It should be read in conjunction with the !MakeModes revised Manual, which should (hopefully) be found in the same location as this document. !MakeModes is an application which assists in the creation and editing of Risc PC monitor definition files. 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. (User BEWARE!) Applicable Hardware: Risc PC range Understood to apply also to the Iyonix PC.
Related Application Files:
Every effort has been made to ensure that the information in this leaflet is
true and correct at the time of printing. However, the products described in
this leaflet are subject to continuous development and improvements and
Acorn Computers Limited reserves the right to change its specifications at
any time. Acorn Computers Limited cannot accept liability for any loss or
damage arising from the use of any information or particulars in this
leaflet. ACORN, ECONET and ARCHIMEDES are trademarks of Acorn Computers
Limited.
The same aims were in view when making the latest modifications ... FW, 8 Jun 03
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 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 should be available from your Acorn Dealer and maybe your local I.T. Centre (if there is one!) The application originally consisted of a disc containing !MakeModes, a ReadMe file and an accompanying manual. Otherwise you may have to seek !MakeModes on a website where such antiquities are stored. (Version 0.26 of !MakeModes is currently available on The Acorn legacy FTP Site in a zip file which also contains the original 1994 version of this Application Note, as Text and Images!) You are advised not to edit monitor definition files directly. One possible exception which should not cause a problem is changing the number alongside "DPMS_state:" which is 2 lines below "file_format:1". Even so, it is recommended to make a backup copy of the original before attempting the change. 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. All lines beginning with "#" are treated as Comments and not acted upon. Below is a summary of all of the commands used in an MDF.
file_format: format monitor_title: title DPMS_state: state # A comment, usually the mode resolution and frame rate (Hz) 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 The spacing shown, immediately above and below, between ":" and the designation or abbreviation is normally absent in real mode definitions. (See the first example nearer the start of this note.) The following explain the abbreviated terms above:
mode_name: is a textual name for the mode that will be used in the Iconbar's 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. x-resolution: 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. 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 the above information.
Video Bandwidth:
Dot Pitch:
Line Rate (Horizontal frequency):
Frame Rate (Vertical frequency): The frame rate has a significant effect on the usability of any given mode formulated for use with a given cathode ray tube (CRT) monitor. If the frequency is too low, the screen will appear to flicker and this can have a profound effect on the person viewing the screen over a period of time. A general guide would be to aim to use not less than 75Hz. The minimum apparently varies from one person to another and also depends on the persistence of the phosphor used in the CRT. Some people claim to be able to work satisfactorily at a frequency as low as 60Hz, whereas some others claim to need at least 80 or 85 Hz. The problem of flicker does not affect LCD/TFT display monitors and modes are usually more constrained by the need to follow the internally programmed modes in respective monitors.
Pixel Depth: Bits per pixel Number of colours 1 bpp 2 2 bpp 4 4 bpp 16 8 bpp 256 16 bpp 32000 32 bpp 16 Million Limiting FactorsBefore 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 inter-relationship of the variable parameters.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. Monitor Limitations Memory Limitations Bandwidth Limitations Monitor LimitationsThe 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.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: Pixel Rate = sum(h_timings) * sum(v_timings) * proposed frame rate
The Frame rate can be calculated from: Frame Rate = pixel_rate / (sum(h_timings) * sum(v_timings)) The Line rate is calculated from: Line Rate = sum(v_timings) * frame_rate Memory / Bandwidth LimitationsThe Risc PC can have up to three different screen memory configurations, no VRAM (DRAM only), 1MB VRAM or 2MB VRAM.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 (and in !MakeModes.Limits) 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.
bpp 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 These calculations will give results in MB/sec.
pixel_total = x_resolution * y_resolutionThis total is then used in conjunction with the number of bits per pixel (bpp) to calculate the amount of memory required. bpp 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 ExamplesThe following table gives an example of how much memory is required for some standard screen modes at various colour depths (bpp).
As can be seen from the table above, not all screen modes can be displayed at every pixel depth, e.g. only machines with 2MB VRAM would be able to display 800 x 600 at 16 Million colours. Machines fitted with only 1MB VRAM could only display those modes that require 1024KB or less.
The horizontal back porch (hbpch) and and horizontal front porch (hfpch) values define the time, in units of pixels, from the end of the hsync pulse to the start of the horizontal left border (hlbdr) and the end of the horizontal right border to the end of the horizontal scan line, respectively. Amongst other things the hsync+hbpch time period is used by the VIDC20 to switch between cursor and video data. If the combined time period is not long enough, the screen display will be corrupted as the VIDC20 will be unable to fetch video data before the screen display starts. The horizontal left border and horizontal right border values define the time period, in units of pixels, for the left and right screen borders. NOTE: The horizontal left border and horizontal back porch values can be altered to position the picture correctly in the horizontal sense. The horizontal display (hdisp) value is the horizontal screen resolution, i.e the number of pixels displayed across the screen. The vertical sync (vsync) value is the width, in units of raster, of the sync width pulse. If this pulse is not wide enough, the monitor will be unable to sync to the signal. The vertical porches (vbpch, vfpch), vertical borders (vtbdr, vbbdr) are the vertical equivalents of the horizontal values but are all measured in units of raster, not pixels. Acorn Computers 1994 |