Hi all. Thank you to @zedstarr for letting me know about this thread, and sorry for coming so late to the party.
Thank you so much for working on this! There are DOS "emulators" for a few models (Series 3, 3a, 3c and Workabout), but they use modified ROMs and don't emulate the hardware. (FYI, the debugger in the SDK is basically an MC400 emulator running a debugging app.) Having a proper emulator running on a modern OS (i.e. not requiring DOSbox) would be a major step forward.
The docs at psion.info, by my own admission, aren’t the best. I took a long break from breaking Psions at the end of 2019 for various reasons, occasionally popping back to fiddle with things every few months. It was only in April when I got back into it properly. I’m short on time at the moment, but I’m trying to spend the odd half hour here and there on it.
I've had a skim through the thread so far and picked up on a few questions. I'll do my best to answer them here, but if I've missed anything do point them out to me.
Psion docs don't go into great detail about the ASICs, to be honest. You've already seen the Hardware Reference Manual on psion.info - that's pretty much it. The HDK does seem to have been written as an afterthought. I've been begging numerous former Psion employees for information for about 5 years now, and come up with very little on the ASICs themselves. I even got in touch with the man who had a hand in designing them (Mark Gretton), but he was unable to give me anything. I do have an archive of an Psion VAX server dated 1993 but doesn't seem to have anything beyond 1991. I'm a bit worried about posting its contents in a public forum, especially as there are personal emails and other details in it, but I can pull bits out and DM them to people if needed. For example, there’s a folder called PIZZA that has a few schematics for the MC machines in an old OrCAD format. I did spend some time converting the ones I could open to PDF. Ask, and I’ll see what I can do.
I see you've found the include files in the HDK! It doesn't look like they've changed much since 1990, so should still work absolutely fine for the MC400.
The SIBO Serial Protocol (SIBO-SP) is a bit like I2C. It's synchronous, uses only DATA and CLK, and relies on the master to tell the slave when to reply (based on control commands). It's reasonably well described in the HDK from a transport point of view, but I do have Sigrok captures available for people to look at if that helps. From the master’s side, there’s one good thing about SIBO-SP - you can pretty much go as fast or as slow as you like. In testing, I’ve been able to talk to an SSD as slow as 100 KHz and up well beyond the ~4 MHz that the HDK suggests (I think it was 15 MHz). It also means that you don’t have to be consistent with the clock - very useful when bit-banging. However, it makes emulating ASIC4/5 in software much harder, as you need to be ready to ship data when the master asks.
I will find a more permanent location for the full SDK and HDK with the original PDFs, both at psion.info and archive.org. For now, here's a link to it on Google Drive.
https://drive.google.com/drive/folders/ ... sp=sharing
I think I have almost every SIBO machine now; I'm missing the MC200, MC600 and a few HC models. Once I work out how to use Matt Gumbley's tool again, I will be able to get UK ROMs for the Series 3, 3a (both versions), 3c, 3mx, Siena, Workabout (a few versions) and Workabout mx (my HC120 is dead at the moment). If I remember correctly, I've got the source code to the tool, so I might be able to modify it to dump in a more sensible manner than just blocks of memory.
An original part of my little project was to reverse engineer ASIC4 and recreate it in FPGA format. Unfortunately my VHDL skills are way off being ready, so instead I'm focussing on making a USB SSD Drive with a Raspberry Pi Pico. The code can already dump SSDs and I've got Sigrok captures showing how a SIBO machine reads and writes to various types of SSD (ROM, RAM, Flash I and Flash II, and both ASIC4 and ASIC5).
A relatively cheap source of ASIC5s are the 3Link parallel printer adapters. The only way to get hold of an ASIC4 is in old SSDs, but you have to know what you're looking for before you buy it. All the early SSDs are ASIC5, because the ASIC4 wasn't ready when the MC400 was launched in 1989. I've never seen a Flash I SSD that isn't ASIC5, or a Flash II that isn't ASIC4, but both ASICs are capable of being Flash I and II. (Interesting aside: ASIC4 is 5v TTL, whereas ASIC5 is 5v CMOS. Properly screwed me up when trying to talk to ASIC5 with a 3.3v microcontroller. I now have level shifters.)
Just looking at the MC400 ROM that zedstarr dumped, I can see that there’s a Psion Flash filesystem starting at 0xDDD1 - the clue is the A5 F1 signature (reverse the bytes - F1A5h). I’ve written a tool called SIBODUMP that can extract files from a Psion Flash filesystem, so if I trim the file I can pull the files out if that’s useful for anyone.
If there's any information I can give you to help with this, please let me know. I can't promise to be able to answer every question, nor can I promise to be quick at replying, but I'll do my best.