> * Your entire program can not exceed 64 symbols - a symbol being a number, variable, or reserved word (i.e. Goto, If, Then)
* There's a maximum of 9 lines, not really an issue considering the first item
* You only get integers from 0-99
* Only five math functions are available (+,-,*,÷,mod)
* In terms of graphics, you have two dots you can move by setting their coordinates
* You can play a range of beeps but I'm not musically inclined so I can't map them to notes
* Instead of a keyboard you have two 12 button pads to work with
If this sounds horribly limited and lame it's because you haven't yet thought about the hardware it's running on…
Via Reddit [1], “HuguesJohnson.com - Atari 2600 BASIC Programming [2]”
Ah, the good old Atari 2600 Video Computer System [3]. It could only address 4,096 bytes of ROM (Read-Only Memory) and 128 bytes (not megabytes, not kilobytes, but bytes) of RAM (Random Access Memory), and as far as graphics are concerned, the Atari 2600 is responsible for drawing every pixel on the screen, as the screen is being drawn by the eletronic beam on the television [4] (or in other words, you are Racing the Beam [5]).
It's not an easy machine to program.
So to even contemplate BASIC (Beginners All-purpose Symbolic Instruction Code) on the thing is insane. But it exists [6]. And it has that oh so very sweet Atari cover art:
[The necktie is a bit stiff, but man, look how fun this computer system is! Buttons and blinkenlights everywhere!] [7] [8]
followed by the dismal reality that comprise most of the Atari 2600 programs:
[Where are the shiny red buttons? Where are the blinkenlights? Where are the oversized arm watches?] [9]
Still, I find it a fascinating system. Like Hughs Johnson [10] says, you could Tweet most Atari 2600 Basic programs they're so short. And because the language is so constrained, it seems like one could easily randomly generate scores of valid Atari 2600 Basic programs.
Hmmm … I have yet to figure out what my next Stupid Twitter Trick™ [11] is to be …
[1] http://www.reddit.com/r/tinycode/comments/39pryy/atari_2600_basic_your_
[2] http://huguesjohnson.com/programming/atari-2600-
[3] http://www.atariage.com/2600/
[4] http://alienbill.com/2600/101/02breach.html
[5] https://www.amazon.com/exec/obidos/ASIN/026201257X/conmanlaborat-20
[6] http://atariage.com/software_page.html?SoftwareLabelID=15
[7] /boston/2015/06/14/thumb-Atari2600Basic.jpg
[8] /boston/2015/06/14/Atari2600Basic.jpg
[9] /boston/2015/06/14/Atari2600Basic-screen.png