formats index
*** F64 (a companion file to certain D64's)
** Document revision 1.1
Created by a program called FCOPY, written by M. Edzes in the early
1990's, these files contain some extra information about the associated D64
files like the low-level disk ID, sector checksum, valid sector flag and
header ID. Some of what you are about to read is pure conjecture on the
part of the author to explain what these files are. These files appear to
be very rare, but are available from a CD called "C64 CD 96", also known as
the "Unicorn" CD.
They all appear to be the same size, 2051 bytes, and seem to start with
the DISK ID from the D64 image.
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ASCII
----------------------------------------------- ----------------
0000: 30 34 .. .. .. .. .. .. .. .. .. .. .. .. .. .. 04..............
Here the DISK ID is "04", and is likely obtained from the sector header
ID for track 18/0 (not the one visible on the BAM sector).
Once we take into account the first two bytes, this leaves the remaining
2049 bytes. Dividing this number by 683 (the number of sectors in a
standard 35 track D64 image) leaves us a grouping of 3 bytes per sector.
Below is a dump of the first few bytes of the F64 files, and we will
examine a few of the 3-byte descriptions.
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ASCII
----------------------------------------------- ----------------
0000: .. .. 2D 07 01 2B 07 8D 2B 07 47 2B 07 AE 2B 07 ..-úú+ú+úG+ú®+ú
0010: 80 2B 07 C3 2B 07 1C 2B 07 4E 2B 07 EC 2B 07 47 €+úÃ+úú+úN+úì+úG
0020: 2B 07 FE 2B 07 5F 2B 07 69 2B 07 F3 2B 07 90 2B +úþ+ú_+úi+úó+ú+
0030: 07 22 2B 07 4D 2D 07 01 2D 07 01 2D 07 01 2D 07 ú"+úM-úú-úú-úú-ú
The first sector has a description of "2D 07 01".
Byte: 00 - "2D". This byte likely represents whether the sector data
was read or not. This value can be either "2D" (a "-"
character, meaning data not valid) or "2B" (a "+" character,
meaning data valid).
01 - "07". This is the "data descriptor byte" meaning the sector
is OK, and exists. If it was a value other than 07, we have
an error 22 ("data block not found").
02 - "01". This is the checksum for the sector. It is arrived at
by XOR'ing all the bytes contained in the sector, from
position 00 to position FF.
The second sector has a description of "2B 07 8D". From the above layout,
this means the sector data is ok, the data header is ok ("07"), and has a
checksum of "8D" (calculated and verified from the D64).
ÿ