Sideways address space

From Wikipedia, the free encyclopedia

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.

Contents

[edit] 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.

[edit] Sideways 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 changes must be made to the motherboard to permit this. These vary from the trivial (removing chips from the board and placing them into an expansion board that occupies the chips' original sockets) to drastic (attaching flying leads to CPU pins). The BBC Master was re-engineered to support Sideways RAM, and could be soft configured as to which banks were ROM and which were RAM. Banks configured as RAM would map to Sideways RAM supplied on the motherboard as standard.

[edit] Sideways expansion

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.

[edit] Sideways model

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.

[edit] References

  • Bray, Andrew C., Dickens, Adrian C. and Holmes BA, Mark A. (1983 - third edition). The Advanced User Guide for the BBC Microcomputer. The Cambridge Microcomputer Centre. ISBN 0-946827-00-1

[edit] External links