Sideways address space

Last updated

The sideways address space on the Acorn BBC Microcomputer, Electron 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.

Contents

The BBC Micro Advanced User Guide [1] 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 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 address space (0x8000 to 0xBFFF) and 16 KB 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 KB 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. The Electron's sideways address space was exposed only by the addition of a Plus 1 add-on or a third-party equivalent; the Plus 1 also introduced cartridge slots that were carried over into the BBC Master design as an alternative way to package ROMs.

Sideways ROMs 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 (if delivered as language or service ROMs), 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.

The ROM filing system also allowed software to reside in ROMs as files that would be loaded in a similar way to cassette programs. [2] Such loading was not instantaneous since it involved transferring the files into RAM, but was nevertheless used by Acorn to deliver some cartridge-based software such as games and utilities, ostensibly due to the ability to redeploy cassette-based software in another medium without needing to make significant changes to the software. [3]

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 and Electron require 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.

Sideways RAM

In addition to ROM, banks of RAM could be added to the computer via the sideways address space. These could either be used to load and use ROM images from disk or as extra workspace for machine code programs.

The BBC Model B is hard-wired to prevent 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 64 KB model B+ had 12 KB of "special" sideways RAM. This used the sideways address but was selected by the high bit of the ROM select register and could not be used to load ROM images. The 128 KB model B+ had an expansion board with 64 KB of "regular" sideways RAM in addition to the 12 KB of "special" sideways RAM on the main board.

The BBC Master came with 64 KB of regular sideways RAM, and could be configured with motherboard links as to which banks were ROM and which were RAM. In addition it had 4 KB of "special" sideways RAM and 8 KB of RAM paged over the operating system. Unlike on the B+ where the "special" sideways RAM had been available for user applications these memory areas on the Master were used as operating system and filing system workspace.

The cartridge port wiring differs between the Electron and Master 128 with regard to certain RAM-related signals. The Master's slots replace the READY signal with a more general R/W signal, preserving the CSRW (chip select, read/write) signal only for certain addresses in pages FC, FD and FE, whereas CSRW corresponds to the CPU read/write line in the Electron Plus 1 cartridge interface. Both systems support RAM cartridges, however. [4]

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 burning an EPROM for each attempt. A write-protect switch could be used to prevent the contents of sideways RAM from being modified.

Related Research Articles

Acorn Electron

The Acorn Electron is a budget version of the BBC Micro educational/home computer introduced by Acorn Computers Ltd on 25 August 1983. It has 32 kilobytes of RAM, and its ROM includes BBC BASIC v2 along with its operating system.

BBC BASIC Version of the BASIC programming language

BBC BASIC is a version of the BASIC programming language released in 1981 as the native programming language for the BBC Micro home/personal computer, providing a standardized language for a UK computer literacy project of the BBC. It was written mainly by Sophie Wilson.

Commodore PET

The Commodore PET is a line of home/personal computers produced starting in 1977 by Commodore International. The system combined a MOS 6502 microprocessor, Commodore BASIC in read only memory (ROM), a keyboard, a computer monitor and a cassette deck for data and program storage in a single all-in-one case.

Acornsoft was the software arm of Acorn Computers, and a major publisher of software for the BBC Micro and Acorn Electron. As well as games, it also produced a large number of educational titles, extra computer languages and business and utility packages – these included word processor VIEW and the spreadsheet ViewSheet supplied on ROM and cartridge for the BBC Micro/Acorn Electron and included as standard in the BBC Master and Acorn Business Computer.

Enterprise (computer)

The Enterprise is a Zilog Z80-based home computer announced in 1983, but through a series of delays, not commercially available until 1985. The specification as released was powerful and one of the higher end in its class. This was due to the use of ASICs for graphics and sound which took workload away from the CPU, an extensive implementation of ANSII BASIC and a bank switching system to allow for larger amounts of RAM than the Z80 natively supported. It also featured a distinctive and colourful case design, and promise of multiple expansion options. Ultimately it was not commercially successful, after multiple renames, delays and a changing market place. Its manufacturer calling in the receivers in 1986 with significant debt. It was developed by British company Intelligent Software and marketed by Enterprise Computers. Its two variants are the Enterprise 64, with 64 kilobytes of Random Access Memory (RAM), and the Enterprise 128, with 128 KB of RAM.

Econet

Econet was Acorn Computers's low-cost local area network system, intended for use by schools and small businesses.

BBC Master

The BBC Master is a home computer released by Acorn Computers in early 1986. It was designed and built for the British Broadcasting Corporation (BBC) and was the successor to the BBC Micro Model B. The Master 128 remained in production until 1993.

The Disc Filing System (DFS) is a computer file system developed by Acorn Computers, initially as an add-on to the Eurocard-based Acorn System 2.

The Acorn Business Computer (ABC) was a series of microcomputers announced at the end of 1983 by the British company Acorn Computers. The series of eight computers was aimed at the business, research and further education markets. Launched at the Personal Computer World Show in September 1984, having been under development for "about a year" and having been undergoing field trials from May 1984, the range "understandably attracted a great deal of attention" and was favourably received by some commentators. However, the ABC range was cancelled before any of the models were shipped to customers. The ABC 210 was subsequently relaunched as the Acorn Cambridge Workstation, sold in modest numbers to academic and scientific users.

Unified Emulator Format (UEF) is a container format for the compressed storage of audio tapes, ROMs, floppy discs and machine state snapshots for the 8-bit range of computers manufactured by Acorn Computers. First implemented by Thomas Harte's ElectrEm emulator and related tools, it is now supported by major emulators of Acorn machines and carried by two online archives of Acorn software numbering thousands of titles.

Tangerine Microtan 65

The Tangerine Microtan 65 is a 6502 based single board microcomputer, first sold in 1979, which could be expanded into, what was for its day, a comprehensive and powerful system. The design became the basis for what later became the ORIC ATMOS and later computers, which has similar keyboard addressing and tape I/O as in the Microtan 65. The Microtan 65 has a single step function that can be used for debugging at the hardware level. The computer was available as ready-built boards or as kits consisting of board and components requiring soldering together.

Acorn MOS Computer operating system

The Machine Operating System (MOS) or OS is a discontinued computer operating system (OS) used in Acorn Computers BBC computer range. It included support for four-channel sound and graphics, file system abstraction, and digital and analogue input/output (I/O) including a daisy-chained expansion bus. The system was single-tasking, monolithic and non-reentrant.

Memotech MTX

The Memotech MTX500, MTX512 and RS128 are a series of Zilog Z80A processor-based home computers released by Memotech in 1983 and 1984. They were technically similar to MSX computers, but were not compatible.

BBC Micro expansion unit

A BBC Micro expansion unit, for the BBC Micro is one of a number of peripherals in a box with the same profile and styling as the main computer.

Shadow RAM, on the Acorn BBC Micro, Master-series and Acorn Electron microcomputers is the name given to a special framebuffer implementation to free up main memory for use by program code and data. Some implementations of shadow RAM also permit double-buffered graphics.

In computing, the Tube was the expansion interface and architecture of the BBC Microcomputer System which allowed the BBC Micro to communicate with a second processor, or coprocessor.

BBC Micro Series of microcomputers by Acorn

The British Broadcasting Corporation Microcomputer System, or BBC Micro, is a series of microcomputers and associated peripherals designed and built by the Acorn Computer company in the 1980s for the BBC Computer Literacy Project, operated by the British Broadcasting Corporation. Designed with an emphasis on education, it was notable for its ruggedness, expandability, and the quality of its operating system. An accompanying 1982 television series, The Computer Programme, featuring Chris Serle learning to use the machine, was broadcast on BBC2.

Each time Intel launched a new microprocessor, they simultaneously provided a System Development Kit (SDK) allowing engineers, university students, and others to familiarise themselves with the new processor's concepts and features. The SDK single-board computers allowed the user to enter object code from a keyboard or upload it through a communication port, and then test run the code. The SDK boards provided a system monitor ROM to operate the keyboard and other interfaces. Kits varied in their specific features but generally offered optional memory and interface configurations, a serial terminal link, audio cassette storage, and EPROM program memory. Intel's Intellec development system could download code to the SDK boards.

Acornsoft LISP

Acornsoft LISP is a dialect and commercial implementation of the Lisp programming language, released in the early 1980s for the 8-bit Acorn Atom, BBC Micro and Acorn Electron computers.

The Advanced Disc Filing System (ADFS) is a computing file system unique to the Acorn computer range and RISC OS-based successors. Initially based on the rare Acorn Winchester Filing System, it was renamed to the Advanced Disc Filing System when support for floppy discs was added and on later 32-bit systems a variant of a PC-style floppy controller.

References

  1. 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.
  2. Rawlings, Mike (September 1986). "File It Sideways". Acorn User. pp. 102–104. Retrieved 24 October 2020. The ROM Filing System is a close relative of the cassette filing system with a few commands borrowed from the disc filing system.
  3. Smith, Bruce (July 1984). "Expansion Factor". Acorn User. p. 18. Retrieved 24 October 2020. The filing system used by the ROM cartridge system is in fact the *ROM filing system (RFS) as used on the Beeb, making it a simple task for commercial establishments to blow their own cartridge ROMs. *CAT, LOAD and CHAIN are all available with the RFS.
  4. Acorn Support Group (6 July 1992). Acorn Electron Cartridge Interface Specification (Application Note 14) (PDF) (Technical report). Acorn Computers Limited. Retrieved 24 October 2020.