2600 101
A tutorial by Kirk Israel
Version 1.1 -- Last Updated April 2004

Introduction
So you want to be an Atari Programmer, make that 2600 sing, dance, do tricks for you? What are you, some kind of masochist?

In case you haven't heard, programming a VCS is not easy. It's a very quirky beast, it has very little memory or other resources to work with, and your program has to hold the hand of the TIA television interface chip for (almost) every damn scanline... demanding a fairly detailed knowledge of what the TV's electron beam is doing as it draws the screen...and what it's doing (or at least for how long) when it's not drawing the screen. Not afraid? "You will be...you will be."

So why do it? There are a number of reasons: But, "I am but a learner" myself right now. I'm writing this tutorial as I go along, with huge amounts of help from the fine friendly folk on the Stella mailing list- more on them later. I'll try not to make too many assumptions about what you know, but I'll probably be assuming a certain level of programming knowledge in my audience...if you've never written a single program in any computer language ever, the Atari probably isn't the best place to start.

UPDATE: I made this tutorial in Autumn 2002. I'm updating in the Spring of 2004, having a 2600 homebrew under my belt: JoustPong! I kept a development journal that you might wish to skim through if you want to know the trials, tribulation, and triumph of making a real 2600 game.

Information Resources
These resources are your friends. Theoretically, if you went through all of the following, you might not need this tutorial! (I hope to make it worth your while anyway.) Next: The Development Environment
Introduction - The Development Environment - Into The Breach - My First Program -
Kernal Clink - The Joy of Sticks - Happy Face - PlayerBufferStuffer