Starting Atari 800 development on Fedora Linux

It is now April 15th, 2018. I am currently very interested in the legendary Atari 800 home computer. Yesterday I bought three Atari and 6502 related books from eBay and Amazon UK. They are:

Like in the David Bowie song Absolute Beginners, I am an almost absolute Atari 800 beginner. I am not ashamed to admit that. Of course I do know some important facts about this wonderful 8-bit machine, but not much. However, I am curious to learn more! I already know a little bit of 6502 assembler, so assembly programming on Atari 800 will not be completely alien to me, but thinking of the Atari 800 machine architecture besides the CPU, I know practically nothing about it. Yes, I have heard the names of the important chips that are inside the Atari: ANTIC, POKEY, etc., but I do not remember what they do and how to control them. I guess ANTIC is a graphics chip and POKEY is mainly for sound. Something like that. But my foundations are shaky, I desperately need more and detailed information: that is why I bought the books. It is fantastic that Atarimania offers the literature in PDF format, but I reasoned that it would be good to have a few books in the traditional paper form, too.

For the record, I own one real, physical Atari 800 PAL computer and I love it dearly, but I plan to do some assembly language development on Fedora Linux. And I plan to run my programs on it using emulators such as atari++ and atari800. So today I wanted to first set up a working, sane programming environment suitable for generating Atari 800 programs on Fedora Linux 27. It took some time to figure out what to do, so I would like to make the process easier for other Linux users by publishing instructions on how to do it. Thus the purpose of this article is to help hackers to overcome the initial obstacle of doing Atari assembly programming on Linux.

As I said, I know next to nothing about Atari 800 programming, so first of all I had to come up with a very simple test program in assembly. I managed to find out that the BASIC command POKE710,40 turns the screen colour to orange on Atari 800. I tested that command on atari800 emulator and yes, it worked out fine. Next I had to figure out which cross-assembler would be good for generating Atari executables. I found one and installed it by giving command:

dnf -y install atasm

I also needed a way to transfer my Atari executables onto virtual floppy images so that the emulators could load them. I first compiled and packaged a tool called franny, but it turned out that I could not use it. I could not find out how to generate bootable floppies with it. Maybe that is not possible at all with franny, I do not know. So I googled and found Joe Allen's GIT repository that contained his Atari tools. More specifically, I compiled and packaged his atr command line utility for Fedora Linux 27. Using atasm and atr I was able to compile my dead simple test program, copy the resulting executable onto a bootable floppy, and successfully run the test program on both atari++ and atari800 emulators.

So download atari-tools (atr) for Fedora Linux and install it by issuing command:

rpm -Uvh /your/path/to/atari-tools-0.1-kk1.x86_64.rpm

Then download my test program. The tar.gz package contains a working Makefile that uses atasm and atr. Just unpack, compile and run with:

tar xzvf first.tar.gz

cd first


atari800 -stretch 2 -atari first.atr

Or if you want to use atari++, try the command:

atari++ -Image.1 first.atr

After the Atari 800 emulation is up and running, start the test program by typing FIRST. You should see the screen turn to orange like this:

atari 800 first assembly program

After that, the road is wide open for you to create more complicated Atari programs on Linux. Good luck and happy hacking!