# LINK 480Z

The LINK 480Z was an 8-bit microcomputer produced by Research Machines Limited in Oxford, England, during the early 1980s.
The 480Z used a Z80 microprocessor with up to 256 KB of bank-switched RAM. The system could be used as a stand-alone unit with cassette-based storage and the BASIC programming language run from ROM, or it could boot CP/NOS (a network version of CP/M) over a local area network from a file server. When fitted with an optional external floppy disk drive the system could boot the CP/M operating system directly.
The 480Z was sold mainly to the UK educational market as cassette-based system or as a diskless node which could be connected, via the proprietary CHAIN Network, to a Research Machines 380Z acting as a file server.

## Hardware
### Main unit and processor

The LINK 480Z was packaged as an integrated keyboard and system unit. Early systems were supplied with a black sheet-metal case, however this was quickly replaced by a cream-coloured plastic housing. The optional 5¼-inch floppy disk drive unit was external.
The only microprocessor offered was a 4 MHz Z80A.

### Memory

Although some early systems had only 32 KB (32 × 1024 bytes) of RAM, most 480Zs were fitted with at least 64 KB of memory. Bank switching allowed memory to be extended to 128 KB on the main board, and up to 256 KB by using the option board (which also included the high resolution graphics hardware). As the Z80 processor could directly address only 64 KB without software support the additional memory was typically used as a RAM disk, specifically the Silicon Disk System. The silicon disk could be automatically loaded with software and data when the 480Z booted to the network. This saved considerable time in a classroom setting, where software could be loaded in advance of the children arriving. The silicon disc retained its contents if the system underwent a soft reset.
The 480Z was also fitted with up to 32 KB of firmware that could also be bank-switched out of the normal address space when not in use, leaving a total of 58 KB of RAM directly available to the user, with 2 KB of RAM reserved for system use and 4 KB inaccessible because of the firmware ROM.

### Video

All 480Zs, with the exception of some very early units, were fitted with software-switchable 40×24 or 80×24 character text-only monochrome video hardware. Composite video output was provided for an external monitor, and an internal RF modulator provided a separate output to drive a television set. The text-mode display had its own dedicated memory.
In addition to the text-mode video interface the system could be enhanced with an option board providing a high-resolution graphics capability and an additional TTL RGB interface for a colour monitor. The board was fitted with a dedicated bank of 16 KB of video memory and supported three graphics modes:
* Extra high resolution: 640×192 pixels, 1 bit per pixel, 1 page.
* High resolution: 320×192 pixels, 2 bits per pixel, 1 page.
* Medium resolution: 160×96 pixels, 4 bits per pixel, 2 pages.
A programmable lookup table with an 8-bit output mapped the pixel value to one of 256 different intensities (composite video) or one of 8 colours (TTL RGB output).
Output from the graphics board was mixed with output from the text-only video interface, allowing text and graphics to be easily overlaid. The graphics output covered only the top 20 lines of the text display and therefore text output could be set to use only the bottom 4 lines if overlap was not desired.
Memory in both the text and graphics video interfaces was accessed by the processor using port-mapped I/O and therefore did not consume memory address space.

### Storage

Mass storage was either via cassette tape, floppy disk, or an external file server. The cassette interface operated at either 300 bit/s or 1200 bit/s.
ROS 1.2 (see below) and later systems could be connected via a serial interface to an external single or dual 5¼-inch disk drive unit with a built-in double density Intelligent Disc Controller (IDC). Disk capacity was 180 KB (48 TPI drives) or 360 KB (96 TPI drives) per side.
Research Machines also offered plug-in ROM Packs, containing up to 64 KB of ROM. These connected via the parallel interface allowing applications to be quickly loaded into RAM.

### Networking

The LINK 480Z supported a proprietary 800 kbit/s CHAIN local area network that ran over a coaxial cable in a similar manner to 10BASE2 Ethernet. Each station on the network required a unique, 8-bit network address that was set by means of a DIP switch on the rear of the unit. Using the built-in Z-Net firmware a diskless 480Z could be directly booted from a network file server (typically a Research Machines 380Z).

### Interfaces and options

The 480Z motherboard contained the processor and up to 128 KB of RAM as well as most of the external interfaces:
* Two serial interfaces (SIO-4 and SIO-2) – providing full and cut-down RS-232 interfaces, respectively.
* Parallel I/O – used either as a high-speed link for the external disk drives or ROM Packs, or as a Centronics printer port.
* Cassette interface.
* Accessory input – two channel analogue joystick interface.
* Composite video and audio.
* RF TV output.
* Network connection (optional).
The high resolution graphics and memory option board allowed an extra 128 KB of RAM to be added and included a TTL RGB monitor output. The option board could also be fitted with an IEEE-488 interface and an AMD 9511 or 9512 floating point coprocessor.

## Firmware

The 480Z was fitted with up to 32 KB of firmware:
* ROM monitor (ROS) – 8 KB.
* Z-Net network firmware – 4 KB.
* BASIC in ROM – 20 KB.

### ROM monitor

ROS (standing for Resident Operating System) provided a monitor program and a set of basic system services. The monitor could be used to start BASIC from ROM, load application programs from cassette, or boot the operating system. ROS also provided a software front panel allowing a display of registers and memory, and supporting breakpoints and single-stepping of machine code.

### ROS services

ROS provided a number of basic hardware control functions, such as keyboard input, writing text to the video memory and disk input/output. ROS functions were called by means of the Emulator Trap (EMT) pseudo-opcode, which used the Z80 RST 30H instruction to call the EMT handler function. The EMT handler read the first byte following the RST 30H instruction to determine which EMT function was being requested; all parameters were passed in registers. A call-relative pseudo-opcode was also implemented using RST 28H.
ROS services were largely compatible with the COS services provided on the earlier Research Machines 380Z.

### Z-Net

The Z-Net firmware was used to allow the system to network boot from a file server over the local area network. It was switched out of the main address space once the system had booted.

### BASIC in ROM

Research Machines provided a full version of their BASIC interpreter as part of the standard firmware. This was mainly for use on cassette-based systems and was switched out of the address space if the system was booted from disk or the network.

### Main ROS versions

ROS versions were:
* ROS 1.0
* ROS 1.1
* ROS 1.2 – added floppy disk support.
* ROS 2.2

## Software
### Operating systems

The main operating systems were CP/M 2.2 if booted from disk or CP/NOS (a network-only version of CP/M) if booted from a file server. Systems running CP/M could access network services using CP/NET. There was also a version of MP/M which allowed multi-user access to a single disc unit shared among a small number of computers. Because of the serial interface to the disk drive, access could be slow if multiple users tried to save at the same time. But it was a cheap stepping-stone on the way to the 380Z server and an entry level network.

### Application software

Many standard CP/M applications were available, such as WordStar. Research Machines also produced their own assembler (ZASM), text editor (TXED) and BASIC interpreter.
Programs for the earlier Research Machines 380Z written in high-level languages, such as BASIC, or using only basic CP/M and standard firmware functions, could be run directly on the 480Z. Programs that wrote directly to hardware such as the high-resolution graphics cards were generally incompatible.