Matt J. Gumbley | Website:
Blog: On The Edge of Occam's Razor

Main Page
This page updated Fri Nov 4 13:44:06 2005
Latest release is 0.07a, released on 25th August 1998

Table Of Contents

1 Introduction

This project or information is dead. I cannot release any code or further information on it, other than what you'll find on this page. All communication regarding it will be silently deleted. Apologies.

This page documents ongoing work on PsiStack - the freeware TCP/IP stack for Psion's EPOC 16 range of palmtop computers. (The Series 3, 3a, 3c, Siena and Workabout)

1.1 Frequently Asked Questions

This page is primarily a developer's resource, and as such, contains technical information. This may not be what you're looking for - may we suggest that you read the list of Frequently Asked Questions before proceeding with this page!

1.2 What PsiStack Does

PsiStack will allow Psion owners to connect to other computers via cable or dial-up modem connections, and exchange information using the standard TCP/IP internetworking protocols.

1.3 What PsiStack Does Not Do

Please note: this part of the project deals only with the TCP/IP stack itself, from the physical layer to the application programming interface. The applications which use this stack are documented here. (A few sample applications are shipped though...)

1.4 PsiStack and other freeware Psion developments

This software is being developed as part of the Psion-Java project. For more information on this, visit our official home page, at, maintained by Dan Ramage. Full release information will be found on Dan's pages; these pages are a public display of the work as it progresses.

1.5 Licensing

All software and documentation developed for the PsiStack project is freely available, and is placed under the GNU General Public License.

2 How to Download PsiStack

This is ALPHA quality code!! Please make backups of all important data when working with PsiStack. Although the author has not experienced any serious data loss as a result of running this product, he cannot be held responsible for any loss you may suffer.
Note: I *still* haven't been able to upload the files to Al's FTP server, so they're available from this page: BIN007.ZIP, SRC007.ZIP and SDK007.ZIP. They should be available from Al's server real soon now. The links below won't work yet.

Downloadable development snapshots are available from
Version 0.07a will be available from 25th August 1998.

You may need to hold down the right-shift key and click the above links to download the files successfully using Netscape.

There are three files:
Installable package & Owner's manual BIN007.ZIP (218KB)
PsiStack Software Development Kit & SDK reference SDK007.ZIP (100KB)
PsiStack Source & Technical guide (includes SDK & Owner's manual as above) SRC007.ZIP (743KB)

If you simply want to use PsiStack, you should just download the BIN archive.

If you are interested in helping with the development of PsiStack just download the SRC archive. You can download BIN if you like, or build it after you've installed the source (you'll be downloading the Owner's guide twice though, if you download BIN as well). Consult the technical guide for more in-depth information about installing the source on your PC. The SRC package includes the SDK package, and the Owner's Manual, so you don't need to download those separately.

If you are interested in developing applications for use with PsiStack, download the SDK and BIN archives. Consult the SDK reference guide for more in-depth information about installing the SDK package on your PC.

Note: As of version 0.05a, Matt stopped using Microsoft Word, with Internet Assistant 2.04z to write the documentation. It is now all in HTML/GIF format. Master documentation files are in "HTML+", graphics are done with Visio 4. These are available on request. Previous versions of the documentation were available in PostScript for A4 and Letter printers. You'll have to produce these from Netscape yourself, should you need a printed copy. Also, there is now no separate documentation archive. The relevant documentation comes with the relevant packages.
These documents are also available online from this site, although you may prefer to download them in archive form for local browsing: Owner's Manual, Technical Guide, and Software Development Reference Manual.

3 Manual errata

The following points made it into the design and code after the manuals were converted into PostScript, or have been noticed since. This information will be in the documentation by the next release.
  • The documentation is mostly out-of-date, and will be fully revised in the next few versions.
  • The screen shots in the manual are mostly out of date. Since the user interface is to undergo some reworking in the next few releases, I didn't update them.. In particular, selection of the data link layer protocol is done in the ISP dialog.

4 Product status

4.1 Status at-a-glance

The following diagram shows roughly how much of PsiStack is complete. The blue bits represent how "finished" I perceive the various components of the stack to be. A full box indicates the bits that are finished. When it's all done, we'll have a nice blue diagram. It's not exactly Peter Snow's swingometer, I know :-)

This diagram will probably be updated more often than the rest of this document - check back here from time to time to see how far it's all going!

4.2 Status report

Although not ready for prime time yet, PsiStack is improving all the time!

The system has successfully been split into four separate processes, and the APIs for user applications are almost finished, although the transport layer and sockets API needs more work.

It can receive and decode IP datagrams, and pass them on to the local pseudo-interface, from where they are dispatched to the higher-level protocol handlers.

IP datagram fragmentation is working, reassembly is nearly there.

The memory allocation scheme may need some further work.

The IP router is working, but it's probably not finished. (There is a fairly serious bug in it.)

The stack sends and answers pings (ICMP echo requests), from another PsiStack, and from my Linux box. If you could test PsiStack with other SLIP connections, please let me know what happens!!

4.3 Current tasks

I'm currently working on:
  • the setup program, and its user interface
  • database manager
  • enhanced, user-friendly, flexible configuration system
  • reassembly of IP datagrams
  • the sockets library, and several other things I can't quite remember :) Oh yes... user documentation...

Things to do, in the order they might get done:
  • Fully test dial-up scripting language; add the new parser
  • Sockets library
  • IP datagram reassembly
  • PPP (courtesy of Patrick Robbe et al!)
  • TCP
  • Sockets IPC messages (Raw Stack API) for IP, ICMP, UDP, TCP
  • DNS

5 Authors & Acknowledgements

Lead Stunt Programmer : Matt Gumbley
Dynamic Data Link Daredevil : Patrick Robbe
Master of the Mailing Lists : Al Sutton
Psion Java project & Web Pages : Dan Ramage, Sandy Anderson
Superb Scalable Setup Swami : Greg Smith
Architectural Advice : Chris Kantarjiev
Configuration & Setup ideas : Francois Thunus, Keld Laursen
Special Mentions : Jochen Siegenthaler, Darran Rimron, Ajai Khattri
The Testing Crew
Faye Pearson
Lars Lindstrom

The members of the psion-tcpip mailing list have also contributed greatly to the development of PsiStack. Thank you all for your advice, pointers to code and moral support!

So we don't end up coding until we're old and grey, we welcome others to take on some parts :)

Email Matt at or if you would like to work on this exciting and important project! All offers gratefully received! Assistance with writing the stack, testing, documentation are all very much appreciated!

If you do take up the challenge and want to add to the body of code I'm amassing, I'd appreciate it if you would adhere to my coding style, which is described in the technical guide.

Please print out the owner's manual, I'd really appreciate your comments on this. Even if you think "this man cannot write English", then I'd welcome a constructive comment or two to help me improve my exposition!

6 Contacting us

Please direct all correspondence regarding PsiStack to our mailing list, which can be reached at:
To subscribe to this list, send a message to the mailing list server:
containing a single line:
subscribe psion-tcpip
subscribe psion-tcpip-announce
depending on which of the two lists you wish to subscribe to. The subject line is ignored; you may leave it blank.

The announce list is for announcements, whereas the psion-tcpip list is mainly for developers. You don't need to be on both: announcements go to both, but the developer list can get technical. (But you're welcome to join that list, even if you're not technically-minded, your answers to our questions are extremely useful!)

We also have a mailing list archive.
(C) Matt J. Gumbley 1998-2005 - All Tights Reversed