Atari had originally intended to use the already-standard Microsoft BASIC, but had trouble adapting the Intel 8080 code to fit into an 8k ROM in the less dense 6502 code. The result was a rather different version of BASIC, produced by a team that had recently completed an extended BASIC for the CP/M world. Atari also packaged a diskette-based version of Microsoft BASIC, but it saw little use.
Atari BASIC differs from Microsoft-style BASICs primarily in the way it handles strings–it doesn't have any. Instead it used the Data General-like system of using character arrays, similar to the way the C programming language constructs strings. While this is in theory much faster than MS's solution, it was also much harder to port BASIC programs to the machine. Worse yet, character arrays in Atari BASIC were single-dimensional only, meaning that if a program used string arrays it essentially had to be completely re-designed for the Atari.
On the upside they were easy to work with, using "slicing" commands. A$
referred to the entire string, whereas A$(4,6)
"sliced" out the three characters, 4, 5 and 6. In general this would have been a better solution than the MS MID$
solution, if not for the fact that they were 0-indexed while MS strings were 1-indexed.
Atari BASIC was also very slow, being outperformed by most other BASICs of the era. All of these problems were fixable, but it appears Atari was still a videogame company at heart, and none of the three versions addressed any of these issues.
Most Atari BASIC statements may be abbreviated when entered. They appear unabbreviated in program listings because the keywords were stored tokenized.
wikipedia.org dumped 2003-03-17 with terodump