Atari 2600 Programming


I am currently learning how to program video games for the Atari 2600 in machine code. There is a large amount of resources for amateurs and beginners online, but they are frequently not collected in one place. For example, there is an enormous wealth of information for learning how to program the Atari 2600 on the Atariage forums, but there is only a small amount of centralised organisation of the total amount of information you can read on the forums. Another example of the difficulty of finding information for programming the Atari 2600 is Random Terrain’s website. Random Terrain collects a lot of incredibly useful resources for Atari 2600 programming, but almost all of the information is only relevant for learning batari BASIC, the high-level programming language for the 2600. It is very difficult to find information about machine language on Random Terrain’s website. I also disagree with the formatting and delivery of the information on the website. Much of the information on batari BASIC is located on one very big web page. The page is also somewhat out of date. For example, if you didn’t pay attention to completely all of the text on the page, you would be fooled into thinking that the 2007 version 1.0 of batari BASIC was the latest version, when in fact there is a much more current version which was released in 2013. Even this version of batari BASIC may be old.

The purpose of this page on my blog is to collect as much information about learning how to program the Atari 2600 as possible. The first section deals with machine language. The second section deals with batari BASIC.

I     Machine Language


A     The Basics of Machine Language

1     Complete Tutorials From the AtariAge Forums

2     The Atari Archives

The website’s index can be found here. There are many good books for beginners on 6502 machine language on this website. They really break the issue down into simple elements.

3     Random Terrain’s Assembly Language Links

4     Easy 6502

The GitHub webpage for the interactive tutorial for learning 6502 machine language can be found here.

5     Nick Bensema’s Atari 2600 Programming Page

The archived version of the website from 1997-2006 is here.

B     Advanced Machine Language Techniques

1     The Stella Mailing List

The Stella Mailing List was (or is?) a mailing list set up by the people who programmed and maintained the Stella Atari emulator. Many people who worked on the emulator conducted many important technical discussions on this mailing list. Spending a lot of time reading this mailing list will teach you many important lessons about how the Atari 2600 works, and how to get the most out of the system. You can browse or search the mailing list here.

2     The MiniDig

This webpage contains an incomplete list of all the commented/annotated decompilations of Atari 2600 ROMs conducted through the Stella Mailing List. You can find the MiniDig here.

3     AtariAge Links

(a)     Discussion About Various Ways of Using the Kernel to Draw to the Screen


This is an entire website dedicated to documenting and teaching machine language for the MOS 6502 processor. The 6502 is the CPU of the Atari 2600.

II     Batari BASIC