An SD/MMC card interface for Acorn Atom computers by Charlie Robson (SirMorris).


AtoMMC2 provides modern mass storage for the classic British Atom computer. It is a combination hard/software solution designed to fit inside the Atom's case without modification to the machine. It provides full read and limited write access to files on a FAT formatted MMC or SD/SDHC card. It will work on any Atom computer as it doesn't require RAM, ROM or hardware expansions.

Read on or jump to:


The interface attaches to PL8, a 20 pin dual-row header on the Atom's mainboard. This header was not supplied with kits nor was it fitted by default in production machines. It is a very simple job to fit, if required, but  take care to locate it pins up on the keyboard side of the main board, where the white outline is present, not on the component side. With the connector on the wrong side the pin ordering will be reversed and damage to Atom and interface will occur.

The header and interface are connected by the 20 way wire jumper. The interface connector can only fit one way and it would be awkward to fit the Atom end of the cable incorrectly but just in case please note the small triangle on the cable connector. This indicates pin 1. The location of pin 1 on PL8 is indicated by a small white dot. The card socket dongle can only be connected one way.

In order for the firmware to initialise on reset it is necessary for the Atom to receive interrupts generated by the interface board. This requires the fitting of a short wire link located to the right of PL8 - otherwise known as LK3. Without this connection the firmware will have to be initialised manually by typing the following after each reset:

The interface should be firmly mounted inside the Atom's case. This may be achieved by any method which will electrically/spacially insulate the interface from the Atom's main board. My recommendation is to put a 90 degree bend in the main cable and situate the interface on the base of the case.

'Servo tape', self-adhesive velcro strip or carpet tape are recommended fixatives. Care must be taken that the placement of the interface will not interfere with case fitting. The dongle may be tucked inside the case too if access to the card is not required or desired.

The firmware for the Atom resides in a 2532 EPROM and should be fitted in the socket marked IC24. Orientation is indicated by the notch in the chip's casing. It should be placed to match the chips around it. Please ensure that the EPROM's legs are not bent during fitting. If any do suffer an unexpected angular distortion, then straighten the affected pin(s) by placing the chip with its legs flat against a solid, flat surface. Gently press the bent leg back into alignment and try again. No damage should occur if the machine is powered up with a bent pin, but the software will fail.


Once the interface and service ROM are fitted the machine can be powered up and you should be greeted with a banner announcing the presence of the interface.


Holding various keys when hitting BREAK will have effects:

  • CTRL will disable the interface firmware until next reset.
  • SHIFT will try to execute a file called MENU.
  • REPT will show additional information such as the firmware revision and type of card inserted.

This image shows what you should expect to see when holding REPT whilst resetting.
The files on the card whose named begin with the letter S are being catalogued.

Adding software to the card

Files are simply added to the card using your choice of operating system.

The 'ATOM' format is used to add required metadata to Atom files. It is simply 16 bytes containing a copy of the file name followed by 16 bit load, exec and length values in little endian ordering. Here's the header from Snapper showing the 22 header bytes and the first 10 characters of the main program:

53 4E 41 50 50 45 52 00 00 00 00 00 00 00 00 00   SNAPPER.........
00 29 86 CE 00 13 0D 00 00 52 45 4D 2F 2F 20 53   .).......REM// S

Firmware reference

To see a listing of the files on the card type


at the prompt. You may abbreviate this command to

*CA., *C.

or simply

*  .

You may specify a wild-card character to filter the output. A single letter is supplied as a parameter and only files beginning with this character are displayed. 

Files with their DOS hidden attribute set are never shown. Press SHIFT or REPT to pause the listing. ESC will abort the listing.

*INFO filename

will show the metadata associated with a file. If none is present, junk will be printed. There is no way to know if data is present or not. You should see something like:

SNAPPER              2900 CE86 1300

This shows the load address to be #2900, its execution address to be #CE86 and the file lenth to be #1300 bytes.

LOAD "filename"

will load the program into the currently selected text page.

*LOAD "filename"

will load the file into the location specified in its metadata.

*LO."filename" (address)

will load the data into memory starting at the specified address. The star-command processor allows either quoted or non-quoted names to be used. The file's metadata is printed unless suppressed with the command


*RUN filename

or simply


will load and attempt to execute a program. The firmware attempts to run all programs even if they were not intended to be auto-running. In some cases this will produce an error in which case the sequence:

LOAD "filename"


should be used. Programs may also be loaded into the Atom by using:

*EXEC filename

This will present the file's content to the Atom as if it had been typed. Files read in this way should be ANSI text files such as a program like Notepad produces under Windows. This is a useful way of entering programs which only exist as listings.

For firmware revision 1.0 saving of data has a restriction. You can only save into an existing file of sufficient size to hold the required amount of data.

SAVE "filename"

saves the current program.

will save the specified block of memory. The end address is exclusive - in other words it is the address of the last byte to be written + 1. The execution address will be set to the start address if not specified.

Files saved this way will appear to be of the correct length when re-loaded - the metadata at the start of the file is used to determine file size not the size-on-disk as understood by the FAT file system. A PC utility exists to trim the excess data if required.

Consider saving a number of files of about 16K with names like 'SAVE1' for use as required. These may then be processed (renamed, truncated), if required, on a modern machine. A utility to do this is linked below.

Description and diagram SDROM

Dowload the SDROM here (versie SDROM2.2.ROM) by Charlie Robson and Kees van Oss

Dowload the SDROM here (versie ATOMMC2-1.6.ROM) by Charlie Robson

Dowload the pic software here (rar-file)

Example script file for a pic controller

En voor de aardigheid een blik op het  Prototype