Introduction
A KC-TAP file holds one program (or several, one after another) as the tape of the VEB Mikroelektronik home computers KC 85/1, KC 87, Z 9001 and KC 85/2 to 5 stores it. The format
comes from the emulator tools of Arne Fitzenreiter (the signature reads “KC-TAPE by AF”) and is read by several KC emulators. The extension .tap is shared with unrelated
tape files; the explorer tells this one by its 16-byte signature, which begins with the byte C3.
Structure
A signature of 16 bytes, then blocks of 129 bytes: a lead byte and 128 data bytes. The first block is the header (128 bytes as in a KCC file: name, number of addresses, load, end and start address); the next blocks carry the program, from the load address to the end address, 128 bytes to a block. See Signature, header and data blocks.
0SignatureC3“KC-TAPE by AF. ”16 bytes16Header block a lead byte and the 128-byte header129 bytes145Data blocks a lead byte and 128 bytes each, the last padded129 bytes each
In the explorer
Drop a KC-TAP file on the explorer to see:
- the tree: every tape file with its signature, the header block with its fields (name, number of addresses, load, end and start address), the data blocks;
- a table of the files (name, addresses, bytes, blocks), each file to open as bytes (the program without the lead bytes);
- the program disassembled as Z80 code at its load address with our decoder (the KC 85 and Z 9001 CPU is the U880, a Z80 clone), starting at the start address when the header gives one;
- the problems found: a cut file, an end address not above the load address, more than 3 addresses, a data length that the blocks do not hold, bytes that are not a following signature.
Not described
Known, not yet covered
- Viewer: the file type of the program (the loader’s kind: machine code, BASIC, the “COM” name extension) is not interpreted, the KC BASIC token table is not used, and no KC 85 or Z 9001 system labels are shown in the disassembly; the lead bytes are shown but not checked.
- Reference: the KCC file format (the same header without the signature and lead bytes) has no page of its own.
Unknown
- Reference: the meaning of the five bytes after the 8 + 3 name in the 16-byte name field: zero in several real files, other values in others (see the layout page).
- Reference: no specification by the format’s author was found; the layout rests on the chips source and the wiki page.
Also used for
- Acorn Atom tape file – The programs of an Acorn Atom cassette: ATM files, each a 22-byte header and its data.
- 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.
- 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
- Virtual KC – KC 85 and Z 9001 emulator in the browser that loads KC-TAP files
- JKCEMU – emulator of many East German computers, reads and writes KC-TAP files (Windows, macOS, Linux)
Reference
- chips: systems/kc85.h – the loader code the layout follows, read through a summarising fetch tool, so the numbers are “our words”
- Kassettenformate (Homecomputer DDR wiki) – the signature, 16-byte header and 129-byte blocks, in German