Archive for July, 2014

Having work with Microsoft BASIC most of the time, I have the clear idea how strings work in BASIC, but few moments after starting to work with Atari BASIC my world feel apart!

First, in Atari BASIC you have to declare string variables before using it, giving the maximum size that string will need and for that you have to use the syntax:

DIM A$(10)

When I first saw that syntax I thought “oh, it is declaring an array of 10 strings” but in fact, it declares a single string with a length of 10 characters. As far I can see, there is no array in Atari BASIC and to use something similar you have to manipulate a big string as if it is an array of strings using the index. There are several places on internet with great explanations about Atari strings, so here I just want to point few things:

  • DIM A$(10) – Declares a string with 10 characters
  • PRINT A$(2,5) – Prints out a string containing the characters from 2 to 5 – the equivalent in MS BASIC would be PRINT MID$(A$,2,3)
  • A$(2) = “AWESOME” will add the “AWESOME” string from the position 2 onwards.

This all is actually pretty cool and way more versatile than the Microsoft way to do it, in my opinion.

The Cassette

One important part of the Retrochallenge is only use the actual computer and a cassette tape as storage unit. This alone turned out to be a very hard thing to do, because when I am learning something new, I like to keep
saving code snapshots with small tests all the time, and to manage several small programs in cassette is very difficult.

The main game itself is being saved in two different tapes to be safe, but the small programs where being saved in one of them, after the main program. I decided to give some “tape counters” room between the main program and the tests. For example, the game is recorded at position (tape-counter) zero, and the first test program at position 30. I didn’t realize that 30 is too little and my main program is quickly reaching this mark as it grows.

I will keep following this idea where I determine fixed gaps to save programs, but I will try to give way more room between the end of one and the beginning of the other. For that it is mandatory to keep a up to date directory on paper! That is so old school!

Are you looking for some Commodore 64 technique? Bad timing! We are in the midst of Retrochallenge Summer, and for the month of July I’m all Atari!

Today I managed to draw the playfield, which is going to be a view of the goal area in 3D-ish view:

Playfield almost ready

Playfield almost ready

The first concept that I had to grasp is the Atari colours and how to use them. Atari graphics work with the concept of colour registers, with a total of 5 registers available.  Since I’m using the graphic mode 7(+16), I have four colours available, one background and three colours, so I will use only four of the registers.


It is been a busy week at work leaving no time for the Retro Challenge other than setup the machine and read some books about Atari Graphics. After a lot of thinking I’ve decided what is the game I’m going to make (or die trying!): World Cup Penalties It seems appropriate since we are going towards the World Cup 2014 finals to make a game using that theme. An actual soccer match seemed way too much for a month of BASIC programming, and a 70’s pong-like soccer game would also be too little for my Atari 600xl! With that in mind, I decided to make a Penalties game, where two players alternate between defence and attack which I believe is a doable yet fun game to make.

Too little for the Atari 600XL

Here is my plan: (more…)