A week of diving a little deeper into my Atari 800XL

A week of diving a little deeper into my Atari 800XL

I'm a Commodore guy through and through. This isn't tribalism, it's what was in my room from 1983 to when I graduated High School in 1993.

After my sorta failed attempt at spending the month of September with my Coco 2, I decided for October to try spending a week at a time with a particularly less familiar computer.

So starting on October 1st, and ending on the 7th, I spent my free time with the Atari Systems that I have.

Many of my friends growing up had Commodores, but there were a few outliers with Atari 8 Bit machines. I vividly remember my buddy Brian's Atari 400 with that "spillproof" membrane keyboard and tank like look.

I own a working Atari 400, but despite the "cool look" of the keyboard, I don't really want to spend a whole week typing on it. Fortunately, I have an Atari 800XL which has a pretty good keyboard.


I know, I know. Many of you are going to tell me to go back and get Turbo BASIC XL. For my initial explorations of any new machine, I always stick to what it shipped with. It's part of the experience of these things, and I want the original.

For those that don't know, there were several third-party BASIC implementations for the Atari 8 Bit line of machines that tried to address some of its "shortcomings". In my week with this machine, I thought the BASIC was perfectly serviceable. All of these old machines have some quirks and the 800XL BASIC is just fine.


I love physical books and have started a nice collection of them for the Atari 8 bit line. I used primarily these this week for the deep dives. The "Mapping The Atari" is especially useful.

The Maze program from Dec 1981's Compute!

One of my favorite short BASIC programs comes from a magazine article from 1981. I've run it on every Commodore I have (I own examples of most of them).

The article has two listings, one for the Commodore PET, and one for Atari which at the time meant the 400 and 800.

Atari 800XL Running Compute! Mag Dec 1981 Maze Code

This side-by-side code listing served as a great jumping-off point to understand some of the syntax and memory differences from the Commodore's I'm familiar with.

Unfortunately, does a good job of showing off one of the shortcomings of the internal BASIC. The PET is quite a bit faster at this character-only program.

Commodore PET vs Atari 800XL


I jumped into a couple of the true strengths of the Atari system next. Reading the joystick is done with a built in function called STICK(). It returns the current joystick status as a decimal for up, down, left, right, and even the diagonals. How great!

If the Commodore BASIC I grew up with had this one STICK() function to read the joystick so easily, I may have become a game developer instead of a security practitioner. Out of all the things I learned over the week, this is easily my favorite thing.

Atari 800XL Simple Joystick Movement
Atari 800XL Road made with joystick inputs

Strings and string arrays

These two things are what most people get confused about on Atari BASIC. I found this book very helpful.

Example of an "issue" to look out for

Lots of graphics modes and ideas to explore

There are something like a dozen video modes on my 800XL. Of all of the concepts, understanding what each of these might be useful for took the most amount of study.

I used the 4 books mentioned earlier primarily. All of them are available at Archive.org as digital scans if you don't have or want a paper copy.

Atari 800XL Sine Wave

This shading routine was especially fun to see rendered.

Atari 800XL Shading Pipes Routine
Atari 800XL Lines and Colors

Player-Missile Graphics

Working into more advanced features in graphics modes we get into Player-Missile graphics which is a direct descendent of the way the "sprites" on the Atari 2600 (VCS) worked.

These took more time to wrap my mind around. Anything worth doing takes time and this took me the longest to visualize. Concepts like TRAP and BUMP are new to me.

Atari 800XL Horizontal and Vertical Player Movement

At the end of the week

This was just a little glimpse of the 10 or so hours I spent with this system this week. A fair amount of my time was spent noodling with features and trying to wrap my mind around the DOS system for disks (which I still don't really get).

Did I enjoy my time with the 800XL this week? I did. I learned a lot and have a new appreciation for this line of popular 8 Bit machines. Is it going to replace my Commodore computers in heavy rotation? It's not.

I primarily do retro computers for two reasons.

Nostalgia, and learning.

The nostalgia is self-explanatory, but the learning part is pretty nuanced. The main driver is that with many of the earlier 8 bit machines, it's possible for a single person to REALLY understand how every component works. From the output of a game, down to the transistor signals on each chip. The 800XL starts to skirt the feasibility of this goal. Sure, it's "more powerful and interesting" than a VIC-20 (whatever that even means) but it's far more complex. The time to learn every component intimately is probably several units of time longer.

Maybe next month I'll take a closer look at this beauty.