Shadow RAM (Acorn)
Encyclopedia
"Shadow RAM", on the Acorn
BBC Micro
computer 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.
Acorn Computers
Acorn Computers Ltd. was a British computer company established in Cambridge, England, in 1978. The company produced a number of computers which were especially popular in the UK. These included the Acorn Electron, the BBC Micro, and the Acorn Archimedes...
BBC Micro
BBC Micro
The BBC Microcomputer System, or BBC Micro, was a series of microcomputers and associated peripherals designed and built by Acorn Computers for the BBC Computer Literacy Project, operated by the British Broadcasting Corporation...
computer and Master-series microcomputer
BBC Master
The BBC Master was a home computer released by Acorn Computers in early 1986. It was designed and built for the British Broadcasting Corporation and was the successor to the BBC Micro Model B. The Master 128 remained in production until 1993....
is a special framebuffer
Framebuffer
A framebuffer is a video output device that drives a video display from a memory buffer containing a complete frame of data.The information in the memory buffer typically consists of color values for every pixel on the screen...
implementation to free up main memory and permit double-buffered
Double buffering
In computer science, multiple buffering is the use of more than one buffer to hold a block of data, so that a "reader" will see a complete version of the data, rather than a partially-updated version of the data being created by a "writer"...
graphics.
The BBC Micro and Master-series machines used the 8-bit 6502
MOS Technology 6502
The MOS Technology 6502 is an 8-bit microprocessor that was designed by Chuck Peddle and Bill Mensch for MOS Technology in 1975. When it was introduced, it was the least expensive full-featured microprocessor on the market by a considerable margin, costing less than one-sixth the price of...
and 65C102 processors with a 16-bit address space. The address space was split into 32 KB
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
RAM (0x0000 to 0x7FFF), 16 KB Sideways
Sideways address space
The "Sideways" address space on the Acorn BBC Microcomputer and Master-series microcomputer was Acorn's bank switching implementation, providing for permanent system expansion in the days before hard disk drives or even floppy disk drives were commonplace...
"paged
Bank switching
Bank switching is a technique to increase the amount of usable memory beyond the amount directly addressable by the processor. It can be used to configure a system differently at different times; for example, a ROM required to start a system from diskette could be switched out when no longer...
" address space (0x8000 to 0xBFFF) and 16 KB operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
space (0xC000 to 0xFFFF).
Video memory was allocated from 0x7FFF downwards as necessary, from 1 KB (Teletext
Teletext
Teletext is a television information retrieval service developed in the United Kingdom in the early 1970s. It offers a range of text-based information, typically including national, international and sporting news, weather and TV schedules...
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
BBC BASIC
BBC BASIC is a programming language, developed in 1981 as a native programming language for the MOS Technology 6502 based Acorn BBC Micro home/personal computer, mainly by Sophie Wilson. It is a version of the BASIC programming language adapted for a U.K...
showing scrolling cloud animation with and without double buffering. The video game Firetrack
Firetrack
Firetrack is a vertically-scrolling shoot 'em up computer game programmed by Nick "Orlando" Pelling and released for the BBC Micro and Commodore 64 platforms in 1987 by Electric Dreams Software. It was also ported to the Acorn Electron by Superior Software in 1989 as part of the Play It Again Sam 7...
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.