The BASIC Programming cartridge for the Atari Video Computer System has the distinction of being the worst commercial BASIC interpreter of all time. The limited available RAM meant that programs could be at most 11 lines long and no more than 64 bytes total. Anyone who bought this cartridge, expecting to be able to type in the BASIC programs from 101 BASIC Computer Games or the computer magazines of the day, would have been profoundly disappointed.
I do love the above illustration from the manual, which gives BASIC programming the most science-fiction appeal it ever had. Nice to know that if I escaped Moonbase Alpha, I’d be able to program in BASIC.
I recently updated the Wikipedia article (sparing it my invective) to document the few features of the language.
Language features
Atari BASIC supported the following keywords:
- Statements:
Print
- Structure:
Goto
,If-Then-Else
- Graphics:
Clear
- Functions:
Hit
,Key
- Math: + – × ÷
Mod
- Relational operators: < > =
Unlike most BASIC implementations of the time:
- Atari BASIC used ← instead of = for assignment; e.g.,
A←A+1
. - Statements could be strung together on a line without a delimiter; e.g.,
Note←APrintA
. - An
If
statement could be used as a function, returning a value:Ver1←Ver1+IfVer1Mod2Then8Else92
. If
statements could take anElse
clause.
Special variable names:
Note
would sound a musical note, assigned numbers from 0 to 6Hor1
,Hor2
– the horizontal coordinate of one of two squaresVer1
,Ver2
– the vertical coordinate of one of two squares
The language supported 26 unsigned integer variables A to Z. Atari BASIC only supported positive integers from 0 to 99. Math would wrap, so 99+1 would become 0, 99+2 would become 1, etc.
Even the worst calculator BASIC was far more powerful than this.
The graphics were as primitive as you could get and still describe as graphics: the programmer could manipulate two pixels.
Sample code
The following example of a Pong game was provided in the manual:
1 Hor2←2+Key 2 IfVer1>90ThenVer1←88 3 IfHitThenVer1←9 4 Ver1←Ver1+IfVer1Mod2Then8Else92 5 Hor1←Hor1+7 6 Goto1
Conclusion
While the Bally Astrocade had a similar limit on RAM, Bally BASIC was implemented to use screen RAM as program storage, a very clever hack that transformed its BASIC implementation into a system powerful enough to prototype console games on.
While this cartridge was a miss for Warren Robinett, I’ll always celebrate him for Adventure, the first graphical adventure game and first console game where the playing area spanned multiple screens (prior games used a sequence of screens).
See also Coding Horror’s take on this BASIC.