Things I'd like to achieve next year

...with zero pressure - just stuff I'd like to do if I get the chance

  • Get as many of the #Psion SIBO C SDK apps rewritten as possible. I really enjoy using #FreePascal for this! It's vastly underrated for writing cross-platform CLI apps.
  • Make some code run on #EPOC16 from a tiny/toy #compiler of my own. Not an entire C compiler, just something where I've generated some 8086 (or NEC V30) assembly from something very basic that actually runs, including implementing the TopSpeed calling convention.
  • Work out how the #MAME debugger works so that I can add 4MB RAM support to EPOC16. Maybe learn some things about the internals of EPOC16 along the way. Eventually write this updated EPOC16 ROM to flash and get it running on real hardware.
  • Make a #PsiDrive PCB that can write to flash drives. Just needs a +16V boost converter added to the board.
  • Get an #RP2350 to pretend to be a small Psion SSD, using the on-die RAM and PIO. Bonus if it uses a battery. Extra bonus if it can write to external RAM or Flash.
  • Move #libsibo away from the Arduino libraries and over to the Pico SDK. This just feels like the right move, but means I'll need to learn cmake as well.
  • Learn how to write good unit tests. It's not a problem with learning frameworks - both fptest and fpcunit are simple enough. My brain is freezing when trying to decide on what to test and why. I know my code will improve once I've grasped this.

There are a lot of moving parts to all of these. Some need me to learn multiple sub-skills, such as 8086 assembly. Like I said, this isn't a list of Things Alex Must Get Done Next Year. I'd be happy if I achieved just one of them.

I'm curious... Which one of these would you like to see the most?

#retrocomputing

x86 calling conventions - Wikipedia

That's most of my projects moved to #Codeberg. #PsiDrive and #libsibo have been migrated, along with a few more minor repos.

https://codeberg.org/thelastpsion/libsibo

libsibo is due for a rewrite. I've been thinking about moving away from using the #Arduino core for about a year, and the recent Qualcomm news was the final nudge.

PsiDrive is definitely an #RP2350 project now. I've wanted to drop ESP32 support for some time anyway. If people do want to dump an SSD with an Uno, the original Dump.ino code bundled with sibodump (also on Codeberg) works perfectly.

So, it's time to shift the project to the RP C/C++ SDK.

It's just a matter of finding the time...

#Psion

libsibo

A collection of Arduino libraries for communicating with peripherals compatible with Psion's SIBO range of computers.

Codeberg.org

Also, I'd quite like some of #libsibo to be usable on a desktop OS as well as the RP2040.

For example, most of siboimg/fefstool's back-end functions will end up in libsibo (and, in fact, already have), so surely it makes more sense for fefstool to just call libsibo?

I'm sure someone's going to say "use Rust." But my brain can't even handle switching to Go right now, so I think rewriting my current projects in Rust is probably a leap too far.

Regarding #libsibo, I'm trying to decide on the way forward for the project.

Currently it's in #Arduino C, so there's the odd class, but it's mostly regular C. It'll run on an Uno, ESP32, or a Pico/RP2040.

I've wanted to drop the ESP32 support for ages. But I'm wondering about dropping Arduino support and switching fully to the #RP2040 SDK. For the Uno, I can just maintain the old .INO file for basic functions.

If I go C, I'll have to refactor the classes. But is going full C++ a good idea?

So, now the MAME/Haiku project is essentially done (just waiting for my PR to be merged now), I'm thinking about what to work on next.

Outstanding #Psion projects:
- #FEFSgen (golang) to make flash SSD images
- #libsibo: add write for RAM SSDs
- #PsiDrive: add boost converter (set to ~17VDC) for writing to Flash SSDs
- Psion SDK to #AsciiDoc: SO MUCH DOCUMENTATION TO CONVERT!
- Blogging: SO MUCH DOCUMENTATION TO WRITE!
- #EDisAsm: because there's always room for more features

Quick little update to #libsibo.

I've changed the pins for the #RP2040 so that it matches the PsiDrive, and I've added some help text when you send "h" over the serial connection.

If you happen to want to dump some old #Psion SSDs, this is the way to do it.

#RetroComputing #RetroDev

https://github.com/PocketNerdIO/libsibo

GitHub - PocketNerdIO/libsibo: A collection of Arduino libraries for communicating with peripherals compatible with Psion's SIBO range of computers.

A collection of Arduino libraries for communicating with peripherals compatible with Psion's SIBO range of computers. - GitHub - PocketNerdIO/libsibo: A collection of Arduino libraries for comm...

GitHub