Inline assembly, which also hadn't been invented yet other than by embedding raw opcodes in DATA statements, is absolutely required to get the performance required for gaming: I still cherish my HiSoft Devpac tape (officially purchased and shipped from the UK at great expense and requiring extensive negotiations with the local customs people, for whom this entire 'software' thing was a bit new...) and Z80 assembly reference (pirated from a library with the school photocopier). So, in one sense, the limited BASIC was a blessing: it required you to really get to know your machine, which is probably the first and last time in my life that happened: I've not considered the timing implications of the CRT and optimized my code around that for a long time.
Nice to see people are still enjoying a 44-year-old platform!
- IF THEN
- FOR
- GOSUB / RETURN
- DEFN
- GOTO
- READ / DATA
That was the same thing that any 8 bit BASIC of the era.
I have yet my books of learning BASIC (for kids), and there for ZX Spectrum, Commodore, Apple 2, etc... And only had that. The only thing that I remeber lacking compared againts other BASICs, was the ON GOTO, ON GOSUB and ELSE . On the control of flow in BASIC... That is all.
I will not see something more advanced (and without numbering the lines), like while and do loops, or select case, proper subrutines and functions, until I touch Turbo BASIC (and QBASIC)
It's that you could LIST. Then move cursor up and edit and press enter. (Not found in ZX, but still ok).
Next, you could list, and draw CIRCLE over the program listing. It was live, like smalltalk, but simpler.
Reproducing language variants without immersion described above is not full story.
For a # of years I used a setup with all my favourite tools running from a RAMdisk. That's on MSX2/2+. Edit/assemble/debug cycles in <1 minute if so desired. There was also KUN BASIC on that platform: a JIT compiler for (a subset of) MSX-BASIC. Speedups of ~10..20x or more for many programs or -sections with near-zero effort.
And of course, all this could be freely mixed. Short snippets of machine code for speed/'heavy lifting', BASIC to glue everything together & make quick edits.
Sadly this seems to be lost on modern platforms. Despite >10,000 faster cpu's, ungodly amounts of RAM, storage etc.
Also one feature that 8 bit BASIC lost in the process due to their hardware limitations, was that originally Dartmouth BASIC wasn't interpreted, rather compiled into machine code before execution, a kind of primitive JIT.
Only 8 bit computers able to run CP/M got similar kinds of BASIC experience, like the original one.
https://github.com/skx/gobasic
And later still I wrote an adventure game in Z80:
https://github.com/skx/lighthouse-of-doom
The Spectrum was how I got into programming, and despite the limitations I have fond memories.