Now that the Acorn Atom is working, I wanted to be able to load software on it. One solution many Atom owners go for is AtoMMC, which is a way of loading software from SD card. There is also an entire software archive for this. But I wanted something with a bit more of a retro feel.
Virtual Tapes
The obvious problem with 40+ year old magnetic media is that it isn’t very reliable. But there are solutions for this. There are a combination of projects that have intermingled and merged under names such as TZXDuino, CASDuino and Arduitape. As the names imply, these are projects based around an Arduino. They will load compressed cassette tape files from an SD card and convert them to analogue audio for your retro computer.
I bought one from an eBay seller called an Arduitape that looks like this:
It came loaded with a custom version of TZXDuino 1.17 that claims it is 2.00 and it had several issues. Not least that it would always trigger a checksum error in the Atom at the end of loading something from tape. The software still ran, but the error would happen every time. Also, the configuration menus were completely broken.
Tape Formats
There are actually several tape formats, every platform has a different format. This is to be expected as they all have different ADC and encoding hardware and software to interpret the data on tapes.
The Acorn family of computers use the UEF file format. This was added in the later versions of TZXDuino, but it was missing a couple of things. That was what was triggering the error in my case. So, I decided to do a firmware update.
On the firmware side, all the projects appear to have converged on the MaxDuino project. This has had several updates to the UEF file processing, amongst many other fixes, so I decided to compile it. To do this, you need to install the SdFat and SoftI2CMaster libraries in the Arduino IDE. Then the project should just compile. The defaults work fine for the device I have, but I tweak a few minor configuration options such as the font.
I hooked up my Tigard to the SPI port inside the Arduitape, and used the avdude tool as outlined here. Once flashed it looked like this:
I changed the baud rate to 1200bps (even though it will actually run at 300bps for the Atom tapes) and turned off the motor control, as the Atom has no way of doing this.
Converting Games
Thanks to the efforts of David Banks and others in the Acorn community, there is a huge archive of pretty much every known Acorn Atom software title. It actually surprises me how many titles were released for the machine.
These are in a ATM format, which is basically the binary data with a header. Which is fine for things such as the AtoMMC device, but need a bit of conversion for tape. Luckily there is a tool for this. Enter the Atom Tape Utils project.
I needed to do a very small patch to compile this, but it was a simple case of using CMake
and make
to compile it. One of the binaries it generates is called ScanTAP
. This takes Acorn TAP files (different to ZX Spectrum TAP files) which are collections of ATM files and generates lots of other files types from this. As TAP files are basically concatenated ATM files, it just works with these too. So, running this on one of the archive files (they do not have extensions, but are ATM files) generates several files, including a UEF file:
./ScanTAP MISSILE -g output
The -g
parameter just says which directory to dump the output files. The UEF file it generates can be copied straight to the SD card for the virtual tape drive.
Testing
Now for the moment of truth…
The nervous wait for several minutes whilst I see if the game loads. Eventually the tape file hit 100% and the Atom prompt returned, which signifies that the game has loaded.
I typed in “RUN” and the game’s help screen loaded. From there I could play Bug Byte’s Galaxian! (or at least leave my ship in place whilst I take a photo).
Many of the Atom games are monochrome (green) or have limited colour. I suspect this is because most Atoms were not setup for colour and often came with limited RAM. There are some modern conversions of BBC Micro titles for the Atom that are in glorious colour, but these require 32KB of base RAM, which my machine does not have.
Some games require *RUN
instead of loading BASIC code in, the archive has a handy Excel file with it that lists each game and how to load it. If it says CH.
then it is a BASIC program to be loaded in and run (as standard, Atom’s don’t appear to have a CHAIN
command like BBCs do), otherwise this document shows how to load it in.
At some point soon I’ll make a video of what the machine is like to use and some of the games that are on it.
Leave a Reply