I went looking for his 6502 version of BCPL, and stumbled upon a gold mine of little languages he wrote for the 6502 and relatives. And I want to know what you guys think about them... and which ones should be considered candidates for the X16 ROM? (I'm not an official vote-taker; I'm just asking for opinions).
https://github.com/paulscottrobson/rpl-c "RPL for the X16".
reference: https://portcommodore.com/dokuwiki/lib/exe/fetch.php?media=larry:comp:flash_attack:fa-rplmaual.pdf
RPL claims to be "like Forth, but friendlier and more efficient" re:
not threaded
memory efficiency via p-code
easier to debug (again, p-code and no threads)
designed to leverage Commodore BASIC, screen editor, I/O etc.
compiled; no interpreter.
https://github.com/paulscottrobson/xcpl "BCPL-like language for the 6502"
My favorite, but it appears to have no useful purpose:
Quote
XCPL is a 6502 based cross-compiled programming language. It runs code in a virtual machine called “Sour 16”. This is a virtual machine not dissimilar to Sweet 16, but it is largely unusable for general programming. 6502 code routines are supported.
https://github.com/paulscottrobson/lean "The 3rd, and hopefully final, version of a terse like language for the 65C02"
Lean appears to be a bizarre utility for handling 16 bit integers in local compilation. Or something. Quote:
Quote
Lean is the third version of my structured shorthand macroassembler concept, and hopefully the final one.
...Lean is at heart a simple pattern matching code generator. Lines of code are compared against a dictionary of such, and each of those lines has a code generator attached to them. Some ‘code generators’ are code themselves, executed to do specific actions, most just copy the code out.
...The 6502 has a basic problem with code generation for compilers, especially if you want to build it into the machine – not have it cross developed on a more powerful machine (lean can do this, but it’s actually assembled on the machine). It is bad at 16 bit arithmetic. Adding 16 bit values takes a lot of code. 8 bit values are too limiting. Bytecode is one alternative, but this produces a slowdown of at least x 10.
...One can make an argument that this is just syntactic sugar on 6502 assembly ; it is slightly more than that, in that it provides 16 bit instructions. But yes, that’s pretty much it.
And here's most of his BASIC interpreters:
https://github.com/paulscottrobson/Basic65. "Open Source Integer 6502/65816 Basic interpreter"
https://github.com/paulscottrobson/basic-65 "A free open source BASIC for 65C02/65816 processors. Close to MS compatibility"
Apparently, both of these are intended for the MEGA65.
https://github.com/paulscottrobson/mega-basic "Portable-ish 65C02/65C816/4510 BASIC"
https://github.com/paulscottrobson/mega65-basic