Tube (BBC Micro)
From Wikipedia, the free encyclopedia
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.
[edit] Implementation
Inside the coprocessor unit a proprietary chip (the Tube ULA, initially developed by Ferranti) interfaced between, and logically isolated, the host and coprocessor buses allowing the system to cope with a number of different coprocessor architectures. 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. Each duplex pair was allocated to console I/O, error messages, data transfers and system calls. 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 Ltd[1] and amounted to interprocess communication by message passing.
[edit] Application
Numerous coprocessors were developed for the Tube; most commonly seen was a MOS Technology 6502 processor to allow more memory and faster processing for properly written BBC Micro programs.[1] 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).[2]
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.[3] 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 routines in the coprocessor's ROM, a corresponding message was passed 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 had no choice but to use the API, which was typically an orthogonal translation of the 6502 API into a native format.
[edit] References
- ^ a b Acorn Application Note 004, "Tube Application Note"
- ^ Watford Electronics,"Advanced Reference Manual for the BBC Master Series",1988
- ^ Acorn Computers Ltd, BBC Microcomputer System User Guide, chapters 43, 46.

