ZX Interface 1
A peripheral from Sinclair Research for its ZX Spectrum home computer, the ZX Interface 1 was launched in 1983. Originally intended as a local area network interface for use in school classrooms, it was revised before launch to also act as the controller for up to eight ZX Microdrive high-speed tape-loop cartridge drives. It also included a DE-9 RS-232 interface capable of operating at up to 19.2 kbit/s — a rare instance of Sinclair using an industry-standard connector. At hardware level it was mainly a voltage adapter, the serial protocol being implemented in software by bit-banging. This led to problems when receiving data, but not when transmitting.
A wedge-shaped device fitting underneath the ZX Spectrum, ZX Interface 1 contained 8 kB of ROM comprising the control software for the Microdrives, RS-232 port and network interface. This extended the error handler in the Sinclair BASIC to allow extra keywords to be used. As this became an official standard, other developers quickly used this mechanism to create language extensions to Sinclair BASIC.
Two further revisions of the device's firmware were made following launch. These aimed to improve ZX Microdrive cartridge formatting and access time, printing functions via the RS-232 interface, and other bugs in the firmware held in device's internal 8K ROM. Machine code software which used the officially documented entry points ('hook codes') would experience few incompatibility issues, however programs using non-standard entry points risked incompatibility due to presence of revised entry points.
The same protocol, renamed QLAN, was later used on the Sinclair QL. This was intended to be interoperable with ZX Net, but due to timing differences interoperability was found to be problematic.
The ZX Interface 1 was incompatible with some of later ZX Spectrum models such as the +2 and +3, due to differences in ROM and expansion connector, therefore wasn't possible to connect and use the Microdrive units.
The device offered two network ports, allowing up to 64 ZX Spectrums to be daisy-chained using network leads up to 3 m long. The network, called ZX Net, used a bidirectional wire with a proprietary CSMA-like protocol. Data could be sent or received at 100 kbit/s either to or from a numbered workstation, or broadcast to all nodes, allowing one machine to act as a server.
Station number 0 is used to indicate broadcast and data is broken up to a maximum 255 byte length packets. The packet and the header have a checksum. The transmission uses 1-startbit, 8-databits, 1-stopbit (8-N-1).
- FORMAT "n";<station number>
- SAVE * "n";<station number>
- LOAD * "n";<station number>
Select for example 1 as the address of the first computer (station number):
- FORMAT "n";1
- SAVE * "n";2
Select 2 for the second computer address:
- FORMAT "n";2
- LOAD * "n";1
Which will then transfer the program from "1" to "2".
- CAT 1 # Lists the contents on unit 1 (type presumption?)
- LOAD * "m";1;"name" # Loads the program "name" from "microdrive" unit 1
- The ZX Interface 2 – An interface providing joystick and ROM cartridge ports
- ZX8302, ULA integrated circuit designed for the Sinclair QL