ZSock - The Z88 TCP/IP stack

What is Zsock?  ZSock is a work-in-progress TCP/IP stack for the Cambridge z88 portable. The stack itself is written almost entirely in C and was developed using z88dk  - the z88 Development Kit.

Zsock is supplied in the form of an application which is also a package (A package is the z88 equivalent of shared libraries or dlls) which permits you to be able to write network aware applications with the minimum of hassle. Included within the ZSock archive is an example user application and also a daemon allowing file transfer.

The Features Zsock has the following features:
  • Connection to the 'net via the SLIP protocol
  • Implementation of IP/ICMP/UDP/TCP network layer
  • Resolving (forward and backward) of hostnames
  • Ping client
  • "Plugin" Network Driver Devices
  • Easily configurable
  • Extensive API to allow the writing of network applications
If ZSock is built on Linux then a simple http server is compiled into the library/executable.

The example application/daemon supplies:
  • A simple telnet program with a VT52 screen
  • A tftp daemon allowing file transfer to and from the z88
Additionally there are z88 shell programs for:
  • Telnet client
  • FTP client

History   I started the ZSock project back in June 1998 with a version implementing ICMP,UDP,TCP and a simple telnet application in assembler. However is soon became clear that a hand written assembler TCP stack is no fun, and so a decision was made to write it in C. But where's the compiler? And so started the story of  z88dk  but we'll leave that for now. Zsock has been a long time in development (most of it spent sat on my harddrive not doing much!) but since March 2000 it has been in a usable state, exporting an API for other applications. With release 12 (Febuary 2001), the tftp daemon returns allowing automated file transfer to and from the z88 from across a network.
  •  zsock_2.31.tar.gz  is the latest version including a chat client, ftp client, tftpd server, telnet client  
  •  ppp_dev.zip  A completely untested PPP device for ZSock

News 8.6.2002

ZSock v2.31 is released. This contains a brand new ftp client to be run from the Z88 shell. The ZSock kernel itself can be made into a library on Linux and compiled into an application. This facilitates easy development and testing of ZSock compatible programs.


ZSock v2.3 is released.


It's been a long time, but it's not dead yet! I've been working on ZSock recently, cleaning up the code, reducing the
footprint and removing the intertwining of Z80/Z88 machine code and C with the aim of making it cross platform and easily retargettable to other Z80 machines. The kernel code compiles (almost) cleanly under Linux, timer & checksum routines have been written and it can now ping itself. As soon as I find out how to make a SLIP connection without a loopback terminal connection I'll get TCP working. Doing it this way will allow development to progress more rapidly since I won't have to transfer files across to the Z88 everytime I make a change.

  • Release 13 available for download
  • Zsock home page moves to  www.rst38.org.uk 
  • Release 12 available for download

Configuration  When run the z88 automatically assumes an IP number of - this fits in very well with my LAN, however possibly not with yours,it is possible to config ZSock to use a different IP number by use of the config screen (Selectable from the menu.) From that screen you can also configure nameservers and the default DNS search domain.

ZSock will also make use of the files :RAM.0/hostname (first line hostname, second line IP address) and :RAM.0/resolv.cfg (first line domain, second/third line nameserver) to save your fingers.
To make the terminal work in an almost sane way you probably want to issue the following commands to your UNIX box:

% setenv TERM vt52
% stty ocrnl
% stty rows 8

  •  z88dk  Only this makes it all possible
  •  z88 Forever  For all your z88 needs
  •  CPC/IP  a work in progress TCP stack for the CPC
  •  Uzix  I love this! A unix for the MSX (complete with TCP/IP stack)


Last update: 8/6/2002 Contact:  Dominic Morris