(BBC Basic is 16KB of code, the OS is another 14KB on top of that - quite a rich environment with the language being very decoupled from the OS which then enabled many other languages to run on the Beeb such as Comal, Pascal, BCPL, etc.)
Once I had BBC Basic going, I looked at the others - Comal and BCPL. I'd used BCPL a lot in the 80s on the Beeb, so it wasn't that new to me.
Then, wanting bigger, better, faster (as we all wanted back then) I looked at the '816. Figuring that 16-bit BCPL ran well on the 6502, so 32-bit BCPL would run well on the '816.
In hindsight I wish I'd not bothered and just migrated to another CPU. I've really not enjoyed the '816 and now feel that horse is well and truly flogged and ought to be left to history.
However on the '816 I wrote the BCPL bytecode interpreter/vm and got BCPL going, and once that was working I could subsequently ignore the underlying CPU and concentrate on the high level (retro) language. I wrote a nice little retro style multi-tasking operating system with it and got it to the stage of being completely self-supporting and it was good.
Now, again, with bigger, better faster thoughts I wanted to migrate again... But to what? I did try RISC-V - and I got my entire OS working by writing a RISC-V emulator in BCPL, then re-writing the bytecode interpreter in RV assembler and booted the existing OS under it... and then on real RISC-V hardware.
Many issues though - one being lack of suitable hardware in the range I wanted. RISC-V is not readily hobby friendly either - unless you're good at rolling your own in an FPGA - which I tried and didn't get very far. Systems are typically small microcontrollers with KB of RAM or the other end, 64-bit, multi core, GB of RAM for Linux. ESP32-c3 is almost good enough, but only 400KB RAM. My Ruby '816 has 512KB.
So when next? Some might say ARM is the successor to the 6502 - and I'm inclined to agree. There are many similarities.
Hobby friendly ARM hardware has the same issues as RISC-V though, however there is the Raspberry Pi and the original v1 boards are plentiful on ebay. Some 2-3 years back I did write a bare-metal system for them too, so I hacked that about, wrote the required bytecode interpreter in ARM assembler copied the binaries of my OS over to it and booted it up. Power on to BCPL is under 5 seconds. (faster than an Apple II when booting DOS but not faster than a BBC Micro running entirely from ROM)
And that's where it is today.
The questions I have are...
- What Now?
- Do I talk about it here?
- Does anyone here care or are interested? (ie. do I write about it here, or somewhere else?)
Future plans are to implement a 65c02 emulator under it so I can carry on with some 6502 work. I'm going to ignore the '816 though - that really is dead-end for me. I'm also in the slow process of re-writing my existing Basic interpreter in BCPL (currently C) as one of my desires is the whole old-school "turn it on and it's running BASIC" thing.
Thoughts, comments, etc.?
Cheers,
-Gordon