Last year was one of changing priorities in life, and I didn’t get a lot of work done with SoapyBASIC or any other technical projects.
I did do a lot of thinking though, while it was fun inventing new synthetic hardware and a new Instruction Set Architecture, it wasn’t really needed to make my BASIC language a bit quicker 😊
I was very pleased with how it turned out, and may well revisit it, but what I have now done is remember why I was doing this in the first place – build a fantasy retro computer.
So, in SoapyBASIC3, I have:
- A slightly more relaxed, expressive and interactive BASIC flavour that goes much further in letting you write code and not worrying about types… yet still be strongly typed.
- An intermediate language to be interpreted, not a fully abstract IL like Java bytecode, or a fully formed final code, like AArch64.
- Include all the things I wanted to have eventually where these were the things I really wanted up front – so graphics, sprites, sound, etc. Also the environment to run all this should be a priority deliverable.
- A narrowing of scope. This is for me and I’m going to run it on my Mac, iPad, Apple TV. So I’m going all in on Metal. Maybe one day I’ll look at something else, but I’m sticking to Apple world for now.
Where am I then?
Well, the new, more relaxed BASIC language design is done. The semantic analysis is almost done. A few loose ends.
I’ve started work on Metal shaders, and it all looks quite straight forward, but I’m resisting the urge to scope creep the capabilities of the runtime. I’m still aiming for something around the Commodore Amiga/Super Nintendo era hardware.
I’m staying strict with no 3D. Yes, the runtime will make heavy use of Metal on Apple Silicon, but only to simulate sprites and transparent layers, hardware scrolling etc.
What else am I doing?
In this modern world of billionaires autocrats destroying the world for their own personal gain and egos, it seems prudent to disentangle myself from anything US-based. So things like:
- Moving code from GitHub to Codeberg
- Minimise Sign in with Google / Apple.
- Minimise use of AI
- No social media.
Generally, I’m just doing what makes me happy.


Leave a Reply