Here are some other interpreters if you’re curious how this design compares.
Microsoft 8080 BASIC interpreter [0] is a commented disassembly. An improved version is at [1]. The book Programmers at Work also has notes on the design.
I've definitely been looking a some implementations, but I don't think I directly looked at these. (Instead, pagetable.com and gw-basic and the like have proven invaluable as well.) I should write a quick post summarizing all the resources that I've been using -- that might prove useful.
I've used pagetable.com quite a lot for reference to see how things were done in CBM BASIC. I didn't always follow that direction (also looked at GW-BASIC, and others), but it has proven very useful to either set me on a well-trod direction or to validate ideas I'd already had.
The dissembled ROM and mappings has been documented since the 80s. (Vic20, PET, 64 and 128).
My references (35 years) ago were some books published by Data Becker GmbH.
Note also that there were basic extensions to address the limitations of CBM basic like the Simon basic cartridge.
That Simon basic was a wonder in their own. Written by a gifted teenager and extending by mapping addresses in the ROM. It was possible to write sprites and graph in basic without pokes (no ASM needed).
Right but the disassembled commentaries are not written by the people who originally wrote the code, so if that site is to be believed the 'original' comments and source are not around for things like the kernal and other Commodore-specific bits. It seems like an odd thing not to have surfaced given that by this point we have things like OG Quickdraw and Karateka code.
Edit: I missed the comment downthread that says that some of that code was released a couple of years ago.
Yes, Simons basic really rocked my world! So many commands and cool things to play with! Inspired me to write my own "basic" extensions and burn them to a prom to make my own cartridge. Though things were much more primitive, it was fun getting such a low level look at everything.
For the past few decades it has been common practice to treat language names as normal words independent of their origin. So FORTRAN, LISP, SNOBOL and BASIC have become Fortran, Lisp, Snobol and Basic. Unless the name doesn't look like a word, as in APL or PL/I.
I am just guessing here, but in the really old days many computers only had capital letters and languages with names that were words ended up spelled as FORTH and PASCAL when they shouldn't have been. When lower case characters became common this was corrected and it could be that the acronym based language names came along for the ride.
The only language name that really matters is Smalltalk. The name is actually used in expressions so if someone spells it as SmallTalk their program won't work.
Microsoft 8080 BASIC interpreter [0] is a commented disassembly. An improved version is at [1]. The book Programmers at Work also has notes on the design.
[2] is a z80 BBC BASIC interpreter.
[0] http://altairbasic.org/
[1] https://github.com/option8/Altair-BASIC
[2] https://github.com/jblang/bbcbasic-z80