/ppp_tcpip_zxspectrum

1998 implementation of PPP + TCP/IP + various network apps for ZX Spectrum 48k

Primary LanguageAssemblyGNU General Public License v2.0GPL-2.0

TCP/IP networking routines for ZX Spectrum, version 1.00

(c) 1998 Juraj Rehak, Glip glip@cyber-wizard.com (c) 1998 Lubos Janica, Lubko janica@fornax.elf.stuba.sk (c) 1998 Milan Pikula, WWW milan.pikula@ipsec.info

Historic side note

This is an old project from 1998, which resulted in a fully working TCP/IP for our beloved ZX Spectrum, using only a single bit on the parallel port for output and a single bit for input. The serial port was emulated on top of that, bit by bit, in software. On top of the serial line, there is a fully working implementation of PPP, IP, ICMP, UDP, TCP, and some sample applications including a web server.

If you succeed with building and running the code with modern tools, please do let me know! Pull requests very welcome.

Used to be compiled with grand-grand-grandmother of [https://github.com/darconeous/sdcc/tree/master/sdas/asz80]

PREAMBLE

These are the release notes for our implementation of TCP/IP networking.

Warning: This software is NOT free. It's distributed under the terms of the GNU General Public License (see the COPYING file for more details).

WHAT IS IT?

This software allows you to use your ZX Spectrum computer as a workstation of your TCP/IP network. It's not fully RFC-compliant, but many of incompatibilities, made for efficiency, can be turned off by configuring and re-compiling. Low-level part of the implementation includes:

PPP support	(rfc 1661, rfc 1171, rfc 1331)
  NCP, LCP	(rfc 1172, rfc 1332)
IP layer	(rfc 1122)
ICMP subsystem	(rfc 794, rfc 1122)
UDP subsystem	(rfc 1122)
TCP subsystem	(rfc 1122)

There can be minor support of rfc 791(ip), 792, 794(icmp) and 793(tcp).

HARDWARE REQUIREMENTS

Runs on 3.5MHz 48/128k spectrum. Supports just few serial interfaces, but other ones can be easily included by re-writting low-level IO routines.

CONFIGURING

  • Look at 'src/app' directory. choose one application. make link to it from 'src/' by cd src ; ln -s app/my_app.asm application.asm

  • Look at 'src/arch/' directory, find your favourite routines and make symlinks to them from 'src/' (at this time only serial routines are configurable via arch directory)

  • Edit 'src/config.h' and follow instructions and comments.

COMPILING

  • make clean
  • make Result will be named tcpip.tap

optionally, you may wish to do

  • make install which will send output to your sound-card, hopefully connected to the tape-in of your spectrum. Before it, you probably would like to write LOAD "" on your spectrum ;).

RUNNING

After loading to your speccy, just break that dumb endless basic loader and enter command RUN.