
Building a Basic Interpreter, '80s Style, Part 2 - new_here
https://able.bio/kerrishotts/building-a-basic-interpreter-80s-style-part-2--e91250f1
======
tjalfi
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.

[2] is a z80 BBC BASIC interpreter.

[0] [http://altairbasic.org/](http://altairbasic.org/)

[1] [https://github.com/option8/Altair-
BASIC](https://github.com/option8/Altair-BASIC)

[2]
[https://github.com/jblang/bbcbasic-z80](https://github.com/jblang/bbcbasic-z80)

~~~
wolco
Any suggestions for CBM BASIC?

~~~
rsecora
Commodore licensed BASIC from Microsoft in 1977.

You have the original ASM disassembled, ROM, kernal and comments at
[https://www.pagetable.com/c64ref/c64disasm/](https://www.pagetable.com/c64ref/c64disasm/)

~~~
pvg
That's a neat site. Does that mean there are no public/surviving original
comments of the C64 BASIC and kernal?

~~~
rsecora
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).

~~~
pvg
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.

------
martincmartin
Can we fix the capitalization in the title? It's the programming language
BASIC, which stands for Beginners All Purpose Symbolic Instruction Code

~~~
jecel
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.

