Spectranet
Spectranet uses WIZnet's W5100 hardwired TCP/IP chip to give the 1982 ZX Spectrum TCP/UDP sockets, network file systems and LAN firmware updates.
0
Project description
Spectranet is an Ethernet interface for the Sinclair ZX Spectrum that uses WIZnet's W5100 hardwired TCP/IP chip, letting a 3.5MHz Z80 home computer from 1982 open TCP and UDP sockets, mount network file systems and update its own firmware over the LAN.
Overview
The ZX Spectrum was one of the best-selling home computers of the 1980s, and it still has an active community of users, game developers and hardware makers. Earlier ways to put a Spectrum online, such as the Prism VTX-5000 modem, the ZX Interface 1 network and RS-232 ports, are of little use on a modern network.
Spectranet was designed by Dylan Smith as an open hardware and software project under the MIT license, with design notes dating back to 2008. The firmware and tools are maintained on GitHub, where the latest commit is from February 2026. Since 2019 the boards have been manufactured by Ben Versteeg's Byte Delight, and the interface is currently sold through retailers such as Sintech Shop UK.
The card plugs into the Spectrum's edge connector and adds a wired Ethernet port, its own flash and RAM, and a firmware layer that exposes networking to assembly, C and BASIC programs.
Key features:
- WIZnet W5100 Ethernet controller with hardwired TCP/IP, used in memory-mapped mode
- BSD-style socket API for Z80 assembly and C (z88dk), plus BASIC channel and stream support for sockets
- Built-in DHCP and DNS clients in the base firmware
- TNFS (Tiny Network Filesystem) client for loading and saving programs from a server, plus an FTP filesystem module
- BASIC extensions such as
%mount,%cat,%load,%saveand%loadsnap - NMI menu for configuration, file browsing and loading data into memory over the network
- Firmware updates over Ethernet using the
ethuputility, or from a TNFS-mounted file
Technical Architecture
| Component | Description |
|---|---|
| Ethernet controller | WIZnet W5100 (hardwired TCP/IP, MAC and PHY), memory-mapped |
| Glue logic | Xilinx XC9572 CPLD: memory paging, execution traps, control and status register |
| Flash | 128KB, holds the base ROM pages and firmware modules |
| SRAM | 128KB, general memory and workspace for ROM programs |
| Host interface | ZX Spectrum edge connector |
How the Spectrum reaches the W5100
The Spectrum's Z80 has a 64KB address space, and the bottom 16KB normally holds the Spectrum ROM. When Spectranet is active, the CPLD maps its own memory into this area in 4KB blocks:
0x0000-0x0FFF Spectranet flash (fixed page: base firmware) 0x1000-0x1FFF Page A ─┐ either page can map any 4KB block of 0x2000-0x2FFF Page B ─┘ Spectranet flash, SRAM or the W5100 0x3000-0x3FFF Spectranet SRAM (fixed page)
The firmware maps the W5100 into Page A and reads and writes its registers and socket buffers as ordinary memory. The CPLD's execution traps let the firmware take over when a program calls a Spectranet function, so the Spectrum's own ROM and existing software keep working.
Data path
BASIC (%load, streams) / C (z88dk socklib) / Z80 assembly
│ Spectranet jump table
▼
Spectranet firmware (socket library, DHCP, DNS, TNFS, FTP module)
│ memory-mapped registers via CPLD paging
▼
WIZnet W5100: TCP / UDP processed in hardware, 4 sockets
│ 10/100 Ethernet
▼
LAN / Internet (TNFS server, web, IRC, Gopher ...)WIZnet Role in This Project
The W5100 is what makes networking practical on the Spectrum. A full TCP/IP stack in Z80 code would take much of the Spectrum's memory and CPU time. Instead, Spectranet leaves TCP and UDP processing to the W5100's hardware sockets.
The firmware source shows this directly. w5100_defs.inc defines the W5100 registers at their Page A addresses, and F_hwopensock in w5100_sockalloc.asm opens a socket by writing the socket type (TCP or UDP) into the socket mode register and issuing the W5100's OPEN command. For TCP sockets the firmware also sets the W5100's "no delayed ACK" option. The Z80 then moves only application data to and from the socket buffers, while the W5100 handles connections, retransmission and checksums.
On top of the hardware sockets, the firmware builds a file-descriptor layer that looks like BSD sockets: socket, bind, listen, accept, connect, send, recv, sendto, recvfrom and gethostbyname are available to C programs through the z88dk library. The W5100 has four hardware sockets, so the firmware adds "virtual sockets" for listening: when a server runs out of hardware sockets, the listening file descriptor is kept open and reconnected to a hardware socket as soon as one is freed. The firmware's own DHCP, DNS and TNFS clients use the same UDP socket API.
Developer Takeaways
- Hardware TCP/IP for very small CPUs: a 3.5MHz Z80 with 48KB or 128KB of RAM runs TCP and UDP applications because the W5100 does the protocol work.
- Memory-mapped W5100: the W5100's parallel bus interface lets an 8-bit CPU treat the chip's registers and buffers as memory, without SPI.
- Familiar API on unusual hardware: a BSD-style socket layer over W5100 sockets means networking code can follow standard patterns, even in Z80 assembly.
- Working around four sockets: the virtual-socket approach shows one way to serve listeners when hardware sockets run out.
- Network as the update path: firmware and programs can be loaded over Ethernet, which removes the need for tape or a separate programmer once the card is installed.
Related Maker Content and Application Value
1. Where Does W5100 Fit in the GR8NET Ethernet and Media Cartridge for MSX?
Another W5100-based network interface for a 1980s Z80 home computer. GR8NET targets the MSX standard and adds media functions, while Spectranet targets the ZX Spectrum and centers on a socket API and network file systems.
https://maker.wiznet.io/Benjamin/resellers/where-does-w5100-fit-in-the-gr8net-ethernet-and-media-cartridge-for-msx/
2. Uthernet II Ethernet card for the Apple II series
A W5100 network card for the 6502-based Apple II. Both cards bring hardware TCP/IP to 8-bit machines; Uthernet II plugs into an Apple II expansion slot, Spectranet into the Spectrum edge connector.
https://maker.wiznet.io/WIZnet/resellers/uthernet-ii-ethernet-card-for-the-apple-ii-series/
3. How Does a 1980s Z80 Retro Computer Get Real TCP/IP Networking? (NedoOS)
A Z80 operating system project that uses the W5300. It shows a later WIZnet chip used for the same goal on Z80 systems.
https://maker.wiznet.io/irina/projects/how-does-a-1980s-z80-retro-computer-get-real-tcp-ip-networking-nedoos/
Together these cases show WIZnet hardwired TCP/IP chips as a common way to give 8-bit retro platforms real network access. Spectranet adds the ZX Spectrum, one of the most widely owned 8-bit machines, to that list.
FAQ
Q1. Does the Spectrum's Z80 run the TCP/IP stack?
No. TCP and UDP are processed by the W5100's hardware sockets. The Spectranet firmware on the Z80 manages sockets and moves application data to and from the W5100's buffers.
Q2. How many connections can be open at once?
The W5100 provides four hardware sockets. The firmware's virtual-socket handling keeps a listening socket available when all hardware sockets are in use, and reassigns a hardware socket once one is closed.
Q3. Can I write my own network programs?
Yes. The GitHub repository includes the z88dk socket library for C, assembler include files for calling ROM functions, an HTTP library and example code. BASIC programs can use socket streams and the % commands.
Q4. Where can it be bought?
As of 2026-10-19, Sintech Shop UK lists the Byte Delight Spectranet at £105.00 as "In stock, immediate delivery".
Verified Scope and Sources
| Source | Link | Checked Date |
|---|---|---|
| Spectranet firmware and tools (GitHub) | github.com spectrumero/spectranet | 2026-10-19 |
| Spectranet design page (Spectranet wiki) | spectrum.alioth.net Spectranet | 2026-10-19 |
| Sinclair Wiki Spectranet article | sinclair.wiki.zxnet.co.uk Spectranet | 2026-10-19 |
| Sintech Shop UK product page | sintech-shop.co.uk Spectranet | 2026-10-19 |
| WIZnet W5100 documentation | docs.wiznet.io W5100 | 2026-10-19 |
The W5100 use and socket handling come from the open-source firmware and the Spectranet wiki. Byte Delight's own website is currently under maintenance, so the retail listing above is used as the purchase reference.
Spectranet shows how a hardwired TCP/IP chip can extend the life of a platform that could never run a modern network stack on its own. By putting the W5100 behind a BSD-style API, it lets Spectrum programmers write network software in assembly, C or BASIC, and it is still on sale more than fifteen years after its design began.
Spectranet: W5100으로 ZX Spectrum에 BSD 방식 Socket API를 제공하는 Ethernet 인터페이스
Spectranet은 Sinclair ZX Spectrum용 Ethernet 인터페이스로, WIZnet W5100 Hardwired TCP/IP 칩을 사용해 1982년에 나온 3.5MHz Z80 홈 컴퓨터가 TCP·UDP socket을 열고, 네트워크 파일 시스템을 마운트하고, LAN으로 자신의 펌웨어를 업데이트할 수 있게 합니다.
Overview
ZX Spectrum은 1980년대에 가장 많이 팔린 홈 컴퓨터 중 하나이며, 지금도 사용자, 게임 개발자, 하드웨어 제작자 커뮤니티가 활발합니다. Prism VTX-5000 모뎀, ZX Interface 1 네트워크, RS-232 포트처럼 예전에 Spectrum을 네트워크에 연결하던 방법은 현재 네트워크 환경에서는 쓰기 어렵습니다.
Spectranet은 Dylan Smith가 MIT 라이선스의 오픈 하드웨어·소프트웨어 프로젝트로 설계했으며, 설계 문서는 2008년부터 남아 있습니다. 펌웨어와 도구는 GitHub에서 관리되고 있고, 마지막 커밋은 2026년 2월입니다. 2019년부터는 Ben Versteeg의 Byte Delight가 보드를 생산하고 있으며, 현재 Sintech Shop UK 같은 판매처에서 구매할 수 있습니다.
카드는 Spectrum의 엣지 커넥터에 꽂으며, 유선 Ethernet 포트, 자체 Flash와 RAM, 그리고 어셈블리·C·BASIC 프로그램에 네트워크 기능을 제공하는 펌웨어 계층을 추가합니다.
주요 특징:
- WIZnet W5100 Ethernet 컨트롤러: Hardwired TCP/IP, 메모리 맵 방식으로 사용
- BSD 방식 socket API: Z80 어셈블리와 C(z88dk)용, BASIC에서는 channel·stream으로 socket 사용
- DHCP·DNS 클라이언트 내장: 기본 펌웨어에 포함
- TNFS(Tiny Network Filesystem) 클라이언트: 서버에서 프로그램을 불러오고 저장, FTP 파일 시스템 모듈도 제공
- BASIC 확장 명령:
%mount,%cat,%load,%save,%loadsnap등 - NMI 메뉴: 설정, 파일 탐색, 네트워크로 메모리에 데이터 적재
- Ethernet 펌웨어 업데이트:
ethup유틸리티 또는 TNFS로 마운트한 파일 사용
Technical Architecture
| Component | Description |
|---|---|
| Ethernet 컨트롤러 | WIZnet W5100 (Hardwired TCP/IP, MAC·PHY 내장), 메모리 맵 방식 |
| Glue logic | Xilinx XC9572 CPLD: 메모리 페이징, 실행 트랩, 제어·상태 레지스터 |
| Flash | 128KB, 기본 ROM 페이지와 펌웨어 모듈 저장 |
| SRAM | 128KB, 일반 메모리 및 ROM 프로그램 작업 공간 |
| 호스트 인터페이스 | ZX Spectrum 엣지 커넥터 |
Spectrum이 W5100에 접근하는 방식
Spectrum의 Z80은 64KB 주소 공간을 가지며, 아래쪽 16KB에는 원래 Spectrum ROM이 있습니다. Spectranet이 동작하면 CPLD가 이 영역에 Spectranet 메모리를 4KB 단위로 매핑합니다.
0x0000-0x0FFF Spectranet Flash (고정 페이지: 기본 펌웨어) 0x1000-0x1FFF Page A ─┐ 두 페이지 모두 Spectranet Flash, SRAM, 0x2000-0x2FFF Page B ─┘ W5100 중 원하는 4KB 블록을 매핑 0x3000-0x3FFF Spectranet SRAM (고정 페이지)
펌웨어는 W5100을 Page A에 매핑하고, W5100의 레지스터와 socket 버퍼를 일반 메모리처럼 읽고 씁니다. CPLD의 실행 트랩 덕분에 프로그램이 Spectranet 기능을 호출하면 펌웨어가 처리를 넘겨받으므로, Spectrum 자체 ROM과 기존 소프트웨어도 그대로 동작합니다.
데이터 경로
BASIC (%load, streams) / C (z88dk socklib) / Z80 어셈블리
│ Spectranet jump table
▼
Spectranet 펌웨어 (socket 라이브러리, DHCP, DNS, TNFS, FTP 모듈)
│ CPLD 페이징을 통한 메모리 맵 레지스터 접근
▼
WIZnet W5100: TCP / UDP 하드웨어 처리, socket 4개
│ 10/100 Ethernet
▼
LAN / 인터넷 (TNFS 서버, 웹, IRC, Gopher ...)WIZnet Role in This Project
W5100은 Spectrum에서 네트워크를 실용적으로 쓸 수 있게 만드는 핵심 부품입니다. TCP/IP 스택 전체를 Z80 코드로 돌리면 Spectrum의 메모리와 CPU 시간을 크게 차지합니다. Spectranet은 대신 TCP와 UDP 처리를 W5100의 하드웨어 socket에 맡깁니다.
펌웨어 소스에서 이 구조를 직접 확인할 수 있습니다. w5100_defs.inc는 W5100 레지스터를 Page A 주소에 맞춰 정의하고, w5100_sockalloc.asm의 F_hwopensock은 socket 모드 레지스터에 socket 종류(TCP 또는 UDP)를 쓰고 W5100의 OPEN 명령을 내려 socket을 엽니다. TCP socket에는 W5100의 "no delayed ACK" 옵션도 설정합니다. Z80은 애플리케이션 데이터만 socket 버퍼로 옮기고, 연결 관리, 재전송, 체크섬은 W5100이 처리합니다.
펌웨어는 하드웨어 socket 위에 BSD socket과 비슷한 파일 디스크립터 계층을 만듭니다. C 프로그램은 z88dk 라이브러리로 socket, bind, listen, accept, connect, send, recv, sendto, recvfrom, gethostbyname을 사용할 수 있습니다. W5100의 하드웨어 socket은 4개이므로, 펌웨어는 listen용 "virtual socket"을 추가했습니다. 서버가 하드웨어 socket을 모두 쓰면 listen 중인 파일 디스크립터를 열어 둔 채로 유지하고, socket 하나가 닫히는 즉시 그 하드웨어 socket을 다시 연결합니다. 펌웨어 자체의 DHCP, DNS, TNFS 클라이언트도 같은 UDP socket API를 사용합니다.
Developer Takeaways
- 아주 작은 CPU에서의 하드웨어 TCP/IP: RAM 48KB 또는 128KB의 3.5MHz Z80이 TCP·UDP 애플리케이션을 실행할 수 있는 것은 프로토콜 처리를 W5100이 맡기 때문입니다.
- 메모리 맵 방식의 W5100: W5100의 병렬 버스 인터페이스 덕분에 8비트 CPU가 SPI 없이 칩의 레지스터와 버퍼를 메모리처럼 다룹니다.
- 낯선 하드웨어 위의 익숙한 API: W5100 socket 위에 BSD 방식 socket 계층을 두어, Z80 어셈블리에서도 표준적인 네트워크 코드 패턴을 쓸 수 있습니다.
- socket 4개의 한계를 다루는 방법: virtual socket 방식은 하드웨어 socket이 부족할 때 listen을 유지하는 한 가지 해법을 보여 줍니다.
- 네트워크를 업데이트 경로로 활용: 펌웨어와 프로그램을 Ethernet으로 불러올 수 있어, 카드를 설치한 뒤에는 테이프나 별도 프로그래머가 필요 없습니다.
Related Maker Content and Application Value
1. Where Does W5100 Fit in the GR8NET Ethernet and Media Cartridge for MSX?
1980년대 Z80 홈 컴퓨터용 W5100 네트워크 인터페이스라는 점이 같습니다. GR8NET은 MSX 규격을 대상으로 미디어 기능을 더했고, Spectranet은 ZX Spectrum을 대상으로 socket API와 네트워크 파일 시스템에 집중합니다.
https://maker.wiznet.io/Benjamin/resellers/where-does-w5100-fit-in-the-gr8net-ethernet-and-media-cartridge-for-msx/
2. Uthernet II Ethernet card for the Apple II series
6502 기반 Apple II용 W5100 네트워크 카드입니다. 두 카드 모두 8비트 컴퓨터에 하드웨어 TCP/IP를 제공하며, Uthernet II는 Apple II 확장 슬롯에, Spectranet은 Spectrum 엣지 커넥터에 꽂는다는 차이가 있습니다.
https://maker.wiznet.io/WIZnet/resellers/uthernet-ii-ethernet-card-for-the-apple-ii-series/
3. How Does a 1980s Z80 Retro Computer Get Real TCP/IP Networking? (NedoOS)
W5300을 사용하는 Z80 운영체제 프로젝트입니다. 같은 목표를 위해 Z80 시스템에 더 나중에 나온 WIZnet 칩을 쓴 사례입니다.
https://maker.wiznet.io/irina/projects/how-does-a-1980s-z80-retro-computer-get-real-tcp-ip-networking-nedoos/
이 사례들을 보면 WIZnet Hardwired TCP/IP 칩이 8비트 레트로 플랫폼에 실제 네트워크 기능을 제공하는 대표적인 방법으로 쓰이고 있음을 알 수 있습니다. Spectranet은 가장 널리 보급된 8비트 컴퓨터 중 하나인 ZX Spectrum을 이 목록에 더합니다.
FAQ
Q1. Spectrum의 Z80이 TCP/IP 스택을 실행하나요?
아닙니다. TCP와 UDP는 W5100의 하드웨어 socket이 처리합니다. Z80에서 동작하는 Spectranet 펌웨어는 socket을 관리하고 애플리케이션 데이터를 W5100 버퍼로 주고받습니다.
Q2. 동시에 몇 개의 연결을 열 수 있나요?
W5100은 하드웨어 socket 4개를 제공합니다. 펌웨어의 virtual socket 처리는 하드웨어 socket을 모두 사용 중일 때도 listen socket을 유지하고, socket 하나가 닫히면 하드웨어 socket을 다시 할당합니다.
Q3. 네트워크 프로그램을 직접 작성할 수 있나요?
네. GitHub 저장소에는 C용 z88dk socket 라이브러리, ROM 함수 호출용 어셈블러 include 파일, HTTP 라이브러리, 예제 코드가 들어 있습니다. BASIC 프로그램은 socket stream과 % 명령을 사용할 수 있습니다.
Q4. 어디서 구매할 수 있나요?
2026-10-19 기준 Sintech Shop UK에 Byte Delight Spectranet이 £105.00, "In stock, immediate delivery"로 등록되어 있습니다.
Verified Scope and Sources
| Source | Link | Checked Date |
|---|---|---|
| Spectranet 펌웨어·도구 (GitHub) | github.com spectrumero/spectranet | 2026-10-19 |
| Spectranet 설계 페이지 (Spectranet wiki) | spectrum.alioth.net Spectranet | 2026-10-19 |
| Sinclair Wiki Spectranet 문서 | sinclair.wiki.zxnet.co.uk Spectranet | 2026-10-19 |
| Sintech Shop UK 제품 페이지 | sintech-shop.co.uk Spectranet | 2026-10-19 |
| WIZnet W5100 문서 | docs.wiznet.io W5100 | 2026-10-19 |
W5100 사용과 socket 처리 방식은 오픈소스 펌웨어와 Spectranet wiki에서 확인했습니다. Byte Delight 자체 웹사이트는 현재 점검 중이어서, 구매 정보는 위 판매처 페이지를 기준으로 했습니다.
Spectranet은 스스로는 현대 네트워크 스택을 돌릴 수 없는 플랫폼의 수명을 Hardwired TCP/IP 칩이 어떻게 늘려 주는지 보여 줍니다. W5100을 BSD 방식 API 뒤에 두어 Spectrum 프로그래머가 어셈블리, C, BASIC으로 네트워크 소프트웨어를 작성할 수 있게 했고, 설계를 시작한 지 15년이 넘은 지금도 판매되고 있습니다.
