control and status register

Tube (BBC Micro)

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

Under the architecture the coprocessor would run user code, whilst the Micro (acting as a host) provided certain I/O functions such as screen and storage device management. A coprocessor unit could be cold-plugged into any BBC Micro with a disk interface (whose ROM contained the necessary host code) and used immediately.


Inside the coprocessor unit a proprietary chip (the Tube ULA, initially developed by Ferranti) interfaced between, and logically isolated, the host and coprocessor buses. This allowed the Tube to adapt to different bus architectures in the coprocessor unit. The only other components needed were a microprocessor, some RAM, a small ROM containing processor specific client code, an address decoder and a power supply.

The two processors communicated through four pairs of FIFO buffers in the Tube ULA. Console input/output, error messages, data transfers and system calls each had their own pair, one buffer for each direction. To reduce latency, the queue capacity varied between 1 and 24 bytes, depending on the buffer. Each buffer had a control and status register to monitor its state and configure the raising of interrupts.

The protocol for the use of these buffers was rigorously specified by Acorn Computers and amounts to interprocess communication by message passing. Most interaction was asynchronous but fast block transfers were synchronous and consisted of the host blindly running a simple fetch-store loop, which defined the transfer rate. The coprocessor, which had its own clock, was synchronised by passing a dummy byte and then regulated by the relevant buffer semaphore.


Numerous coprocessors were developed for the Tube; most commonly seen was a MOS Technology 6502 processor which allowed properly written BBC Micro programs to run faster and with more memory. There was also a Zilog Z80 processor to run CP/M and a National Semiconductor 32016 processor running Panos (and unofficially a UNIX variant).

These coprocessors formed the basis of the Acorn Business Computer series, the higher end machines being repackaged BBC Micros with a coprocessor attached via the Tube. The Master Series modified the Tube, allowing one coprocessor to be fitted inside the case and another to be connected externally, though the two never ran simultaneously. An internal 6502 processor could be fitted, or an Intel 80186 based system for DOS compatibility (although in practice this was limited).

The Tube was also used during the initial development of the ARM processor, an evaluation board being developed that again used the BBC Micro as a host system for I/O operations.

Acorn had strongly discouraged BBC Micro programmers from directly accessing system memory and hardware, favouring official API calls. This was ostensibly to ensure applications could be seamlessly moved to the Tube 6502 coprocessor, since direct access from there was impossible. When a program called one of the MOS entry points, a replacement subroutine in the coprocessor's ROM passed a corresponding message to the host which carried out the operation and passed back the result. In this way an application could run identically on the host or the coprocessor. Other CPU models used a custom API, which was typically an orthogonal translation of the 6502 API into a native format.


Search another word or see control and status registeron Dictionary | Thesaurus |Spanish
Copyright © 2015, LLC. All rights reserved.
  • Please Login or Sign Up to use the Recent Searches feature