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 ..............................................^^
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 ...^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0 16 Filename Padded to 16 bytes with nulls
16 1 Block number Filename (padded with blanks) 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:
Bit 0 Protection If this bit is set the file is protected in some way
Bits 1..3 File contents 0 = Internal BASIC
1 = Binary 2 = Screen image 3 = ASCII 4..7 are unallocated
Bits 4..7 Version ASCII files should be version 1, all other files, version 0