Shadow RAM (Acorn)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

"Shadow RAM", on the Acorn BBC Microcomputer and Master-series microcomputer is a special framebuffer implementation to free up main memory and permit double-buffered graphics.

The BBC Micro and Master-series machines used the 8-bit 6502 and 65C102 processors with a 16-bit address space. The address space was split into 32 KB RAM (0x0000 to 0x7FFF), 16 KB Sideways "paged" address space (0x8000 to 0xBFFF) and 16 KB operating system space (0xC000 to 0xFFFF).

Video memory was allocated from 0x7FFF downwards as necessary, from 1 KB (Teletext mode 7) to 20 KB (modes 0-2). With only 32 KB RAM available, the video memory could eat a very sizable amount of memory. Shadow RAM is a 20 KB block of RAM that sits outside of the real address space, accessed via operating system calls. When the framebuffer is running from Shadow RAM, the memory normally used for video is free for program use. Shadow RAM is activated by setting the most-significant bit of the memory mode number. For example, to use mode 1 with shadow RAM enabled, request mode 129 (128 + 1).

By switching between main and shadow memory on alternate frames, double-buffered video could be used. Acorn provided a demonstration program in BASIC showing scrolling cloud animation with and without double buffering. The video game Firetrack would also use double buffering if shadow RAM was present.

Shadow RAM was fitted as standard on the "Model B+" BBC Micro and on the BBC Master series, but was an optional, third-party extra feature on the "Model A" and "Model B" BBC Micro systems.