"3990 Old Town Avenue, San Diego" is permanently burned into my brain. I was finally in that neighborhood about 10 years ago and visited the shrine myself, even though any evidence of the company there is long gone now.
Applesoft II fit in 10 kilobytes of rom and had to be able to run in as little as 4 kilobytes of ram. The one thing that Microsoft was an expert at (in that era) was sacrificing features to fit.
There was no special version for machines with more ram or with a floppy disk.
> But it seems odd that they wouldn't at least save a LUT relating the shortened and expanded variable name.
BASIC implementations based on Microsoft BASIC store tokenized program lines. A keyword takes 1 byte. Comments, variable names, spaces between tokens, etc take up memory on a character-by-character basis.
I didn't use Apple BASIC, but I spent too much time on various flavors of Commodore BASIC which shared this heritage. Changing a variable from "ACCUMULATOR" to "AC" to "A" saved memory and made the program run faster. The problem of not being able to make sense of your own program after was very real.
There was a weird thing in IBM BASICA (which apparently became GW-BASIC) where runtime writes to a pointer to a program variable could corrupt your program listing itself. I think this had to do with variable contents actually being stored inside the source code somehow? Do you know any more about this, or does anyone else remember this?
>I’m confused about deleting comments and renaming variables unless TASC itself written in Applesoft. Which seems crazy.
The article doesn't ever explicitly say so but, yes, Chen expects the reader to understand from his words that TASC was written in Applesoft BASIC. Crazy, indeed!
I’m pretty amazed it was self hosting. I’m sure it was faster to iterate that way but it seems like it would be so much more efficient to use assembly. Kilobytes were so precious.
Maybe it didn’t matter as much since it was a compiler and not a runtime environment.
> As the author added features, he kept hitting the Apple ][‘s 48KB RAM limit
There was a language card that could replace the upper 16KB of ROM with RAM, but of course, you’d still need to have the interpreter somewhere.
I’ve never heard of TASC before, but Beagle Bros also had an AppleSoft compiler (released in 1986):
https://archive.org/details/Beagle_Bros-Beagle_Compiler
Beagle Bros had an bevy of amazing software in general:
https://en.wikipedia.org/wiki/Beagle_Bros
I feel bad now that I pirated so much of it as a teenager.