Close

SIBOIMG - The Psion Flash Image Extractor

A project log for The Last Psion

Resurrecting Psion's SIBO/EPOC16 Platform For The 21st Century

alex-brownAlex Brown 02/20/2019 at 16:033 Comments

A month ago I had never typed a line of C. Concepts like pointers, structs and treating variables as actual blocks of memory rather than abstract values were alien to me. But I really wanted to get into C; I knew that knowing the language would be vital for this project and there was only so long that I could put off learning it. I needed a target.

Karl had already written a Windows app in C# that would extract files from an image of an SSD. The Flash format had been well documented by the fantastic Clive D W Feather in his invaluable collection of SIBO documentation known as The Psionics Files. So I decided to follow in Karl’s footsteps and write an SSD file extractor in C. Something that would be more portable than his C# app, that I could compile on Linux, *BSD, macOS and Windows. And so, armed with a copy of the second edition of K&R and a few pre-ripped SSD images, my journey began.

I attempted to stick to C89 as closely as I could, only venturing into C99 when I really needed to. The one exception to this was for comments, where I used “//” liberally from the start. Three weeks later I had something that actually worked.

So, here it is, for better or worse.

https://github.com/PocketNerdIO/siboimg

It compiles and runs on all the platforms I’ve mentioned above using both gcc and clang. Why both? Because it turns out these different compilers will pick up on different problems with the code, which helped me to write better code. I’ve also included pre-compiled apps for Win32 and Win64, which I compiled on Linux using MinGW32 and clang.

Obviously this is 100% alpha-quality software. The usual thermonuclear war caveats apply. It works for me, but you’ll have to let me know if it works for you.

Also, this might not work for you at all simply because you don't have any SSD images. Fret not! This will be remedied in the coming months. Karl has written an Arduino sketch that dumps the contents of any SSD via serial. It needs some more work to make it user-friendly enough for prime time, but once that's done we will be publishing it here. So, keep your eyes peeled!

Discussions

Richard Warrender wrote 02/22/2019 at 16:05 point

This looks interesting and could be a good way to get data off the device if you don’t have a 3 link cable. Any chance you have details on how to create a disk image or have a sample to play with?

  Are you sure? yes | no

Alex Brown wrote 02/27/2019 at 10:19 point

At the moment I don't have anything I can publish publicly. All the files I have are rips from commercial software. Even though no one probably cares about the copyright for the Psion Personal Accounts SSD any more, I don't want to chance it! However, I could probably make one using a Flash SSD. I'll see what I can do in the next few days.

  Are you sure? yes | no

Alex Brown wrote 03/06/2019 at 21:27 point

Actually, scratch that. You can now dump SSD images with this: https://hackaday.io/project/161291-the-last-psion/log/160204-sibodump-the-psion-ssd-image-dumper

  Are you sure? yes | no