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. Filing systems, application and utility software and drivers were made available as Sideways ROMs, and extra RAM could be fitted via the Sideways address space.
The Advanced User Guide to the BBC Micro only refers to the Sideways address space as "Paged ROMs" because it predated the use of this address space for RAM expansion. The BBC B+, B+ 128 and BBC Master all featured Sideways RAM as standard.
Sideways address space
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 KiB RAM (0x0000 to 0x7FFF), 16 KiB Sideways address space (0x8000 to 0xBFFF) and 16 KiB operating system space (0xC000 to 0xFFFF).
The Sideways address space is a bank-switched (referred to by Acorn as "paged") address space that allows access to one 16 KiB bank at a time. Each bank can be ROM or RAM. On both the BBC Micro and the BBC Master, there are ROM sockets on the motherboard (four on the BBC Micro) which take "Sideways ROMs". The BBC Micro shipped with a single ROM, containing BBC BASIC. Further ROMs can be added to the computer to add software that will remain available at all times; this permitted the addition of new filing systems to the OS (such as the Disc Filing System) and application and utility software. Software supplied as ROMs has two main benefits: it loads instantaneously, and it requires very little RAM to operate (and may use the dedicated paged ROM area of RAM that normal software keeps clear of). This allowed for application software to have more working space than would normally be possible, and for utility software such as debuggers to operate on software held in RAM.
In addition to ROM, banks of RAM could be added to the computer via the Sideways address space. The BBC Micro is hardwired to deny writing to the Sideways area, so a write signal needs to be collected from somewhere. The methods vary, but the two most common methods are: removing chips from the board and placing them into an expansion board that occupies the chips' original sockets, and: fitting a RAM module in a ROM socket with a flying lead connected to a write signal elsewhere on the motherboard. The BBC Master was re-engineered to support Sideways RAM, and could be configured with motherboard links as to which banks were ROM and which were RAM. RAM could also be plugged into the external cartridge ports.
Acorn MOS supports up to 16 Sideways banks. Due to limited motherboard space, extra Sideways sockets were made available by third-party expansion boards. Certain boards, such as the Watford Electronics Sidewise board, also provided the option of permanent, battery backed-up RAM. This allows for developer testing of new Sideways ROM software without blowing an EPROM for each attempt. A write-protect switch could be used to prevent the contents of Sideways RAM from being modified.
The first few bytes of Sideways ROMs contain details that inform the OS how to handle them. These include language and service entry points, ROM type code, version number and a pointer to the copyright information. On reset the OS validates each sideways bank by checking for a copyright string. During operation the OS talks to valid ROMs by jumping to the two entry points with a specific value of the accumulator set. This provides a clean API for expanding the operating system and negotiating bank switching and RAM sharing.
ROMs have two entry points: the service entry point provides the API access to the ROM, and the language entry point is the starting point for application software contained in the ROM. "Service" ROMs need not have a language entry point, and only exist to extend the OS. "Language" ROMs are ROMs that provide application software, and gain their name from the fact that the BBC BASIC language is supplied as the default ROM in bank 15. ROMs often contain both entry points, as all user software must have a service entry point to allow the OS to call into it. Pure service ROMs typically only extend the features of the OS itself, without providing any application software.
The BBC Micro requires one language ROM be present at POST to provide the computer with a user interface, else the OS will report "Language?" and halt. The version of Acorn MOS on the BBC Master has a built-in command line and will present this if no default language ROM is configured.
- Bray, Andrew C.; Dickens, Adrian C.; Holmes, Mark A., BA (1983). The advanced user guide for the BBC Microcomputer (zipped PDF) (3rd ed.). Cambridge: The Cambridge Microcomputer Centre. p. 347. ISBN 0-946827-00-1. Retrieved 19 April 2012.