Changes

Jump to: navigation, search

Format:TAP tape image file format

95 bytes added, 08:55, 1 September 2014
The .TAP files contain blocks of tape-saved data. All blocks start with two bytes specifying how many bytes will follow (not counting the two length bytes). Then raw tape data follows, starting with the flag byte. Unlike speccy format, the checksum bytes are not included, so you don't need calculate the crc-ccitt every 256 bytes, or padding the last page with zeroes, or ending with four 0xff bytes trailer.
1D 00 2C 50 68 61 6E 74 6F 6D 61 73 32 20 20 20 20 20 20 01 FF 02 58 00 00 AD FF ^^^^^...... first block is 29 bytes (28 bytes+flag) ^^... flag byte (A reg, 2C for headers, 16 for data blocks) file name ..^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ block number ..............................................^^ last block (a non-zero value means last block) ...............^^ file type (02 unprotected binary) ...............................^^ data length (88 bytes) .............................................^^^^^ data location (0xAD00) ...................................................^^^^^ first block (a non-zero value means first block) ...............................^^
58 00 10 AD 59 00 16 06 12 0A 00 2A 02 18 06 1E 07 30 0C 00 0D ..
^^^^^............... logical length, in consecutive blocks (88 bytes)
^^^^^......... execution address for machine code programs (0xAD10) ^^^^^... second block is 89 bytes (88 bytes+flag)
flag byte ........^^
second block data ...^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Byte Size Name Description
0 16 Filename Padded to 16 bytes Name of the file, padded with nulls 16 1 Block number Filename (padded with blanks)The first block is 1, numbers are consecutive 17 1 Last block A non-zero value means that this is the last block of a file 18 1 File type A value recording the type of the file (see below) 19 2 Data length The number of data bytes in the data record 21 2 Data location Where the data was written from originally 23 1 First block A non-zero value means that this is the first block of a file 24 2 Logical length This is the total length of the file in bytes 26 2 Entry address The execution address for machine code programs
The file type (byte 18) is split into a number of fields:
3 = ASCII
4..7 are unallocated
Bits 4..7 Version ASCII files should be version 1, all other files, version 0
= Trapping the ROM routine =
Entry Point 2836 29A6 29A6
Exit Point 2872 29E2 29E2
 
[[Category:Definitions]]