RISC OS Open
A fast and easily customised operating system for ARM devices
ROOL
Home | News | Downloads | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

GraphicsV 6

GraphicsV
» GraphicsV 6

Graphics Vector (42)

Entry  
R0 DAG:
0 = Set start address of current video display
1 = Set start address of total video buffer
2 = Set end address (exclusive) of total video buffer
3 = Set start address of VDU buffer (i.e. as set by OS_Byte 112)
All other values reserved
R1 Physical address for given DAG
R4 Bits 0-23: 6 (reason code)
Bits 24-31: Driver number
Exit  
R4 0
- All other registers preserved

Use

The kernel issues this call when it requires the driver to update the DAG (“DMA address generator”) registers of the display hardware. The appropriate driver should respond by performing the requested action and setting R4 to 0 to claim the call.

The OS has a video buffer which is >= total display size, and may be using bank switching (several display buffers) or hardware scroll within the total video buffer.

  • DAG=1 will be start address of current total video buffer
  • DAG=2 will be end address (exclusive) of current total video buffer
  • DAG=0 will be start address in buffer for current display
  • DAG=3 is the start address of the buffer to be used for GraphicsV Render ops (GraphicsV 13)

Video drivers should respond differently depending on whether hardware scroll is supported or not. (The OS will already know this from GraphicsV 8).

No hardware scroll

Only DAG=0 is significant, and the end address of the current display is implied by the size of the current mode. Calls with DAG=1,2 should be ignored.

Hardware scroll

DAG=0 again defines display start. DAG=2 defines the last address (exclusive) that should be displayed before wrapping back (if reached within display size), and DAG=1 defines the address to which accesses should wrap back.

Notes

Prior to RISC OS 5.19, the kernel had a bug where the DAG addresses sent to the vector would be incorrect if an external framestore was in use. Instead of the addresses pointing to the external framestore, they pointed to the internal framestore that the kernel would be using if the external framestore wasn’t in use. This internal framestore has the same physical base address of the first page of RAM/VRAM in the system; its address can be read by asking OS_Memory 0 to look up the physical address of page number 0.

See also

  • GraphicsV
Revised on January 10, 2014 13:36:16 by Jeffrey Lee (213) (195.72.173.131)
Edit | Back in time (6 revisions) | See changes | History | Views: Print | Source | Linked from: HAL Video API, GraphicsV

Search the Wiki

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
Site design © RISC OS Open Limited 2018 except where indicated
The RISC OS Open Instiki theme is based on Insitki's default layout

Valid XHTML 1.0  |  Valid CSS

Instiki 0.19.1(MML+)
This site runs on Rails

Hosted by Arachsys