resman wrote:
HLL on a SBC is quite a challenge. Some are too low level, not meeting the HLL requirement. Some are too high level, making the compile process overly painful. I've been working on and off for more than a decade on making PLASMA fit right in-between. It is more of an environment now than just a compiler. As such, it requires a pretty robust file system. So that would be the first order of business to work out. Once done, then perhaps you could decide if PLASMA fits the bill:
https://github.com/dschmenk/PLASMATaking concepts from Forth, Pascal, C, and others to create a good, balanced solution. You can cross-compile on modern iron or develop right on the metal. I targeted the Apple II and Apple /// with a (simplistic) port to the Apple I. You can watch a (very unprofessional) video series showing off development on an emulated Apple II:
https://www.youtube.com/watch?v=_JEqbcz ... f4SP2Gw3yUDave...
I keep looking at this and I keep thinking I want to give it a go... but it's going to take a lot of time to port it to e.g. my RubyOS system - which has a robust filing system and it's own environment - but do I want another environment on-top of that? I don't think so. What say the DOS 65 people? although replacing COM in the CP/M world is often a thing so maybe there is traction there?
I then wonder if the compiler could target a different bytecode - e.g. the BCPL CINTCODE so I can run it under my BCPL OS on the '816, but I suspect the compiler and language are too tightly tied together - much like the BCPL compiler, language and bytecode is.
But having a bit of a poke around again... I see a couple of things - one is the apple /// version (along with the 1, II, etc. versions) and a BBC Micro implementation...
Now I have a few Apple II, //e, //c systems and an Apple /// (but no external drives for it) so there might be some fun there. I never really got into ProDOS though... My RubyOS is broadly compatible with the Acorn MOS, so there is a possibility it may work on my RubyOS in 6502 mode.... So there might be fun to be had there. No banked/pages RAM though, even though it has 512K - that's for the 816 only right now. Could I implement some banked RAM with it? Yes, but it's a board redesign and an extra GAL. Is it worth it? Not right now. Not to me, anyway.
But under RubyOS the OS is from $C000 upwards and other than RAM used by the OS (more or less the same as a Beeb) the bottom 48KB is free - programs are expected to load and run at $8000 though, but that's not fixed in stone.
If only I had the time...
-Gordon
Such little time, indeed! There is actually a VM that works with the 65802/65816 using 16 bit instructions, but it is closely tied to the Apple IIe/IIGS 128K auxiliary memory architecture. The Apple /// VM uses extended memory to place the bytecode away from the main addressable 64K. So, there is precedent for many memory layouts, but I won't lie, it's a bit of work
Someday we'll all get together and build the grand-unifying VM architecture for 6502 based systems. Probably not in this lifetime, though.