Posts for: #Psion

Make It Right - Next Steps With CTRAN

Let’s start with a quick recap for those of you who are just tuning in (and for those who have been tuned in for a while but are likely very lost):

  • In the late 80s, Psion developed their own message-passing Object Oriented C dialect with its own markup language. They did this because Psion be Psion-ing. This is a recurring theme.
  • CTRAN.EXE, a 16-bit DOS app, is Psion’s OO preprocessor. It takes class declaration files using this OO markup language (called “category files” by no one but Psion – see the previous point) and translates them into C and Turbo Assembler code.
  • The C generator in CTRAN.EXE is rudimentary but very reliable.
  • The TASM generator is, shall we say, less optimal. There are bugs. Sometimes it crashes. I’m convinced no one actually used it.

Here’s an example category file. If you’ve written parsers before, you’ll enjoy trying to wrap your head around this format!

[Read more]

ASIC4 Extended Mode Addressing

Who wants a deep-dive into a tiny aspect of Psion SSDs and their ASICs?

I was using a PsiDrive a couple of months ago to dump a 2MB SSD. However, when I tried to extract the files, my FEFS extraction tool (siboimg) segfaulted halfway through. So, as I was in a rush, I decided to come back to it another day. Yesterday was that day.

Photo of PsiDrive

My first thought was that it could be a problem with the Pico 2, either with the code or the RP2350 A2 stepping chip. So, a couple of days before, I built a second PsiDrive and put in a Pico 1. But the fault remained with with Pico 1.

[Read more]

CTRAN - Introduction

At the beginning of 2024, I ragequit reading about Psion’s proprietary Object Oriented C.

This was unexpected, but I should have seen it coming.

Near the end of the previous November, I made an announcement on social media. I was going to start working on a new word processor for Psion’s 16-bit portable machines. I’d been working on Psion-related projects since September 2018, focusing on the SIBO/EPOC16 platform. Writing a replacement for Psion Word was one of the first ideas I’d had. So, as I’d spent the latter half of 2023 bouncing between projects and never quite settling, I decided that now was the time. It was to be called Vine, a nod to both the codename of the Psion Siena and the Vi-like bindings I was hoping to include in its feature set.

[Read more]

Beginning OLIB: An entirely uneducated look at Psion’s proprietary Object Oriented C

Me: I could do with a quick win to get me going again.

Also me: I shall learn a proprietary object oriented dialect of C, where the only way to learn it is to plough through 1150 pages of documentation.

Psion doesn’t have a formal name for the object oriented version of C that it created for EPOC16. I’ve been calling it “Psion OO C”, but the main library that it uses is called OLIB, which contains the root class. The others are:

[Read more]

USB RS232 Shenanigans (Updated 2025-05-28)

I spent some time today testing out a couple of RS232 adapters with various bits of Psion software. I wanted to write a quick summary of what works and what doesn’t.

SoftwareCH340PL2303TAPL2303RAFT232R
plptools (Linux)YesYesYesYes
PsiWin 2.3 on XP in VirtualBox (adopted USB)YesYesNoYes
PsiWin 2.3 on XP in VirtualBox (via virtual serial)Not testedYesNoYes
PsiWin 1.1 on XP in VirtualBox (via virtual serial)Not testedYesYes?
MCLINK or SDBG in DOSBox StagingUnreliableYesYesNo

Notes

CH340

Seems to work in most places, but DOSBox and DOSBox Staging are very unreliable with it. It’s very cheap and up until recently was what I recommended, but as I’ve tried to use SDBG for debugging on real hardware, I’ve needed something more reliable.

[Read more]