I usually play ZX Spectrum games, that use most of these techniques and also some others. Maybe I could bring some light to some things written here.
FeedingDragon wrote:Fat Tracks: […]
Show full quote
Fat Tracks:
- Simular to Spiral Stream. Data is identical on 2 tracks and in
alignment with each other. Program tests by randomly switching
between tracks. If they are not aligned properly, the data
becomes corrupted.
The FDC can not switch tracks between operations, but it can be useful combined with "non-standard sector ordering".
FeedingDragon wrote:Gap Data:
- Data is encoded into the gap between sectors.
There is a FDC command that allows to read an entire track (not sectors), so this is possible.
FeedingDragon wrote:Altered ID:
- Sector ID is altered to incorrect values.
On ZX Spectrum, "normal" sectors start at 0xC1. If you don't use standard DOS formatting, there is no point in using any sector number in any order (more on this below). As the FDC can cope with any sector numbering, there is no such things as "incorrect values".
FeedingDragon wrote:Extra Tracks: […]
Show full quote
Extra Tracks:
- Disk is formated with extra tracks beyond 39/79. Can usually
only have 1 or 2 extra tracks (depending on system.)
Used in 2M disk tools. But, I've seen some disks (booter) that actually have less formatted tracks than expected (45 tracks instead of 80).
FeedingDragon wrote:Offset Track: […]
Show full quote
Offset Track:
- Tracks that are not correctly aligned to the index. Normally
a track is formatted so that sector one is right after the
index signal. These tracks will have a different track after
the index, or have a track straddling the index signal.
I should call this "sliding tracks", "sliding sectors" or "non-standard sector ordering". The trick is that when you format a track, you have to give a list of sectors to the FDC, and no one mentions that it has to start from 0 (see Altered ID). There were some utilities for ZX Spectrum (and I guess for DOS) that introduced some interleaving to enhace performance.
When you move the head, the floppy motor is running and data is passing below the head. If you read sector 3, move the head and then try to read sector 4, sector 4 has already fallen behind the head and needs another turn of the floppy to be read. In the Spectrum, some utilities formated track 0 with sector numbering 0,1,2,3..., track 1 with numbering 3,4,5,... so sequential readings could be faster.
In disk protections, you could:
- Format track n as sectors 0,1,3,4,5,6,7,8,2.
- Format track n as sectors 0,1,2,3,4,5,6,7,8 and track n+1 as sectors 3,4,5,6,7,8,0,1,2.
In the first case, you may time how much cost read sector 2. If it is read fast, you know that disk was formatted by DOS (sector 2 is right after sector 1).
In the second case, you read a sector from track n and then next sector from track n+1. If it took too much time, the disk is formatted by DOS (tracks always start from 0). I guess this if the technique behind Fat Tracks.
I don't know if PCs floppy heads are ready to read sectors right after reading the previous, or they could benefit from some sector interleaving.
Also, keep in mind that (in DD disks) track lenght is 6250 bytes, so you have space to get 10 sectors (512 bytes) per track without any trouble (as DMF and 2M disks do) and you could find that in any protected disk.
I have traveled across the universe and through the years to find Her.
Sometimes going all the way is just a start...
I'm selling some stuff!