Introduction
A tape file for the Acorn Atom, the 1980 6502 home computer: the programs of a cassette as the Atom tape utilities and emulators keep them. It is a sequence of ATM files, each a 22-byte header (the name, the load address, the execute address and the length) followed by the data. The file has no signature, which is why the explorer recognises it only when every header leads exactly to the next and the last data ends at the end of the file.
The extension .tap is shared with unrelated tape files. Atom tapes are also kept as UEF, CSW and WAV files.
Structure
Records one after another: ATM header and files.
0ATM file one for each program or data file on the tape22 bytes + length+0Header name (16), load address, execute address, length (two bytes each)22 bytes+22Datathe length in the header
In the explorer
Drop an Atom tape file on the explorer to see:
- the tree: every file with its header fields and its data;
- a table of the files (name, load address, execute address, length, offset), each file to open as bytes;
- the data of each file disassembled as 6502 code at its load address with our NMOS 6502 decoder, starting at the execute address when it lies inside the data (a BASIC program is shown the same way: it is not code);
- the problems found, when the viewer is given a damaged tape directly: a name that is not printable characters, data shorter than the length, bytes after the last file.
A damaged tape (a cut file, a length that does not fit) is not recognised by the registry, which shows it as the neutral tape image (.tap).
Not described
Known, not yet covered
- Viewer: Atom BASIC programs are not detokenised, no Atom system labels (the MOS entry points, VIA and 8255 registers) appear in the disassembly, and the Atom’s own tape block format (the preamble, block headers and checksums of the real cassette) is not part of this file format.
- Reference: the UEF, CSW and WAV forms of Atom tapes (UEF has a page: UEF).
Unknown
- Reference: the layout rests on one forum post (a description of the ATM and TAP files by a user called KC on the GameBase 64 forum); no specification by the format’s author was found. How a name shorter than 16 characters is padded is not stated; the real files seen end it with a zero byte.
- Viewer: the real tapes on the machine that built this site are two commercial games (read in place, not copied); they parse with no problems and every header chains to the end of the file, but no freely licensed Atom tape was found to keep as a sample.
Also used for
- Amstrad CPC tape file – The blocks an Amstrad CPC writes to cassette: header and data blocks, each with a length and a flag byte.
- Commodore 64 tape image – The length of every pulse on a C64, VIC-20, C16 or PET tape, after the text C64-TAPE-RAW.
- KC 85 / Z 9001 tape file (KC-TAP) – A tape file of the KC 85 and Z 9001 home computers: a signature, a header block and blocks of 128 bytes.
- Oric tape image – Oric-1 and Atmos tapes: a $16 leader, sync byte $24, a 9-byte header, name and data.
- SIMH tape image – The magnetic tape of the SIMH simulators: records framed by a 32-bit length at both ends, and tape marks.
- ZX Spectrum tape image – Spectrum tape blocks as plain bytes, each after a 2-byte length.
Links
Software
- Atomulator – Acorn Atom emulator (Windows, macOS, Linux)
- Tiny 8 bit emulators – an Atom emulator in the browser
Reference
- GameBase Acorn Atom thread (GB64 forum, 8 February 2013) – the post that describes the 22-byte ATM header and the TAP file as ATM files copied one after another, read through a summarising fetch tool, so the numbers are “our words”