batari Basic

Tutorial - Session 1

by Michael Rideout

The goal of this tutorial is to help beginners learn how to write their own programs (presumably games) for the Atari 2600. Unfortunately, it isn't feasible to teach computer programming or computer game design in a tutorial such as this, so the emphasis in that first sentence should be on "to help beginners learn"-- i.e., not "to teach beginners." I'll introduce you to the essential concepts as best as I can, but you're strongly encouraged to supplement any information in this tutorial with information from elsewhere-- BASIC programming tutorials or books, 6502 assembly programming tutorials or books, other Atari 2600 tutorials or documentation, articles or documents about TV displays, etc.

The title of the tutorial suggests that it's about using batari BASIC to write Atari 2600 games, but it's also going to be about using 6502 assembly language. I intend to cover both languages more or less in parallel, but since the tutorial is aimed at beginners, the main focus will usually be on batari BASIC.

batari BASIC itself doesn't run on an Atari 2600 (e.g., in the same way that Atari BASIC runs on an Atari 800 computer). Instead, batari BASIC is actually a compiler that runs on a computer, therefore you must use a computer to write game programs in the batari BASIC language, then compile them into ROM image files that can be run on an Atari 2600 emulator (on a computer), or loaded and run on an actual Atari 2600 or 7800 using a device such as a Supercharger, Cuttle Cart, Cuttle Cart 2, or Krokodile Cartridge; or ultimately burned to an EPROM and soldered onto a cartridge board. This means you'll need to start by downloading and installing all of the necessary tools on your computer, which will be the focus of Sessions 2 and 3.

It should also be noted that batari BASIC isn't a "hacking tool"; you can't use batari BASIC to modify existing game ROMs, nor is it really possible to disassemble existing game ROMs into batari BASIC code and then hack the source code. On the other hand, if you happen to have the program listing for a game that was written in batari BASIC, you can modify the program listing and then recompile it with batari BASIC (assuming the original programmer doesn't mind you doing that). Thus, you won't be able to use batari BASIC to hack Atari 2600 "Adventure" by Warren Robinett, but you will be able to use batari BASIC to modify my own "Reventure" game, which I'll be working on as one of the example games in this tutorial.

Since the purpose of this tutorial is to help you write games or other types of programs for the Atari 2600, I'll include some actual games for illustration. However, there are many different kinds of games, and each kind of game tends to have its own types of "issues" that need to be dealt with-- indeed, different games in the same category can have their own individual issues-- so it will be impossible to cover every sort of issue that might arise. Nevertheless, I'll include a variety of sample games, to help ensure that a variety of issues get discussed. Most of the sample games will probably be very simple, possibly not even complete "games" per se, and you're welcome to use them as a basis for creating games of your own.

In addition, there will be a lot of snippets of code, and programming samples that by no stretch of the imagination could be classified as "games," to illustrate different ideas or to help you explore different features of the Atari 2600.

Finally, I want to stress up front that I intend to keep the pace of this tutorial slow and methodical. For example, I intend to cover each of the Atari's features in one or more sessions of their own, rather than trying to present everything at once. This means you shouldn't expect to be able to start programming a game right away. I apologize in advance for this, but there are other tutorials about programming the Atari 2600 that you can refer to if you get impatient and want to jump ahead to something I haven't covered yet.

In Session 2, I'll discuss the minimum required tools that you'll need to get started. And in Session 3, I'll discuss the process of getting these tools set up on your system.

                                           --> Session 2
Software, site and content © 2005-2007 Fred X. Quimby. All rights reserved.