EXOS 2.1 Video Driver Specification

1. Introduction

The video driver handles the display of any number of video pages in various different display modes, making use of most of the facilities of the Nick chip.

The display is managed in terms of video pages, with one page corresponding to each EXOS channel which is open to the video driver. Before a channel is opened to the video driver the user must specify various parameters, such as a video mode and page size, by setting EXOS variables. A channel can then be opened to device "VIDEO:". If a filename or unit number is specified then it will be ignored. The video driver will work out how much RAM it needs for this video page and obtain that much RAM from EXOS, including enough for the various variables needed. The only limit on the number of video pages is the amount of available memory. Video pages can only use the internal 64k of video RAM.

Once the channel has been set up in this way, the user can read characters from, or write them to, the video page. The data read or written will have different meaning for pages of different modes, particularly control characters and escape sequence.

At this stage the video page will not be visible on the screen. A special function call is required to cause a video page to be actually displayed on the screen. It is only at this time that the appropriate line­parameter blocks are set up and the text/graphics will appear. It is possible to display any vertical section of a video page at any vertical position on the screen, covering up anything which was displayed on those scan lines before. If the page width is less than the full screen width then the margins will be adjusted to display the page in the middle of the screen.

Text pages provide displaying of characters from a 128 character font which is initialised to a standard ASCII character set, but any characters may be re­defined by the user. Also text pages provide various control functions including cursor positioning, scrolling of any section of the page and automatic scrolling.

There are various different graphics modes providing a choice of resolution, number of colors and memory usage. All of the graphics modes support drawing of lines and ellipses in a variety of plotting modes and line styles (dotted lines, etc.). Characters can be displayed using the same font as text pages. There is a sophisticated flood filling algorithm which will fill any arbitrary shapes, subject to stack limitations.


1.1 Co­ordinate Systems

The co­ordinate system used in specifying graphic positions is standardised so that giving the same commands to two pages of different resolutions or colour modes will produce a pattern of the same size on the screen. A graphics page of full screen size will be 972 logical pixels high ana 1344 pixels wide. This corresponds to twice the maximum horizontal and four times the vertical resolution available. All beam positions are specified in these co­ordinates, and depending on the colour mode the actual position will have to be an approximation. The origin for this co­ordinate system is the bottom left corner of the graphics page.

Text pages do not use this co­ordinate system, they use a system based on character positions so the top left corner is (1, 1) and the top right corner (of a full screen size low resolution text page is (1, 42). Note that the origin for text co­ordinates is the top left of the page.

Attribute graphics mode pages actually keep a beam position in graphics co­ordinates and a separate cursor position in text co­ordinates. The use of these is explained later.


Next Chapter: Basic Control of Video Pages.



David Bouman. (dsbouma@cs.vu.nl)