In my quest to make an old (1989-era) laptop computer “useful” in 2021 I’m currently fighting some RS232 hardware flow-control issues…
(fixed in part 2 of this saga 🙂 )
I conceived a plan to use a Raspberry Pi as a Connectivity And Link Manager (or CALM 🙂 ) to assist my Psion MC400 laptop to get connected to “the internet” (the Pi is connected to home wifi or phone wifi hotspot when out & about). I’d obtained another serial/parallel module for the MC400 so it could now talk to both the Raspberry Pi though port A as a serial terminal and run the Link software on port B to transfer files to/from the Pi. Once files are on the Pi it’s (relatively) easy to sync them to any cloud service.
I’d configured a serial login session on /dev/ttyUSB0 using
sudo systemctl enable getty@ttyUSB0.service
and then edited /usr/lib/systemd/system/serial-getty@.service
to fix the baud rate at 9600 (the MC400 is limited to a max of 19200 baud but I couldn’t get a reliable connection at this speed so dropped it to 9600). This works well as a serial console so the Pi can be controlled and files moved around, albeit from the command line only.
For the Link software I’d installed dosbox-x and created a simple shell script “mclink.sh” to run the Psion MCLINK.EXE program headless (i.e. with no display) so I could run it from the text-only terminal. MCLINK.EXE is an old DOS program so it’s relatively easy for the ARM-based Pi (model 3 B+) to emulate and successfully run using the x86 DOS emulator. I’d configured dosbox-x’s emulated COM1 port to connect to /dev/ttyUSB1 and /home/pi/mc400 to be mounted as C:\
#!/bin/bash
SDL_VIDEODRIVER=dummy /usr/bin/dosbox-x ~/mc400/MCLINK.EXE
This setup worked really well, but using the standard Psion serial cable and USB/Serial adapters means a lot of spare, coiled up cable and this spoiled the vibe for me: imagine sitting in a coffee shop, sipping on a latte and then pulling out your uber-retro laptop with a few feet of extra cable coiled up in a heap on the table, not cool!

So I started looking for USB/RS232 modules that I could solder directly on to the end of a shortened Psion 9-way miniDIN cable and initially found the FTDI-based USB-RS232-PCBA. These modules offer RTS/CTS signals as well as Tx/Rx/GND so I figured I was in with a chance of things actually working. This looked a lot neater…
…but only the serial terminal connection worked – the Link software failed to achieve a connection (even after wiring DCD/DTR/DSR together at the Psion end). The Psion MCLINK/RCOM/PSIWIN protocol obviously needs full hardware flow-control including DCD/DTR/DSR which the FTDI USB/RS232 adapters don’t provide access to, but obviously the Prolific PL2303 converters I’d originally used do.
So, back to the drawing board for now, some Prolific PL2303 modules (with RTS/CTS/DCD/DTR/DSR solder connections) are on their way from Ali-Express!



Read about the fix for the handshaking issues in part 2 of this saga…

One thought on “RS232 flow-control & handshaking – Psion MC400 retro communications”