Sector Interleave (Was: "Bounce buffer" copyright [was Re: flash

Fred Cisin cisin at xenosoft.com
Mon Nov 30 14:45:22 CST 2015


On Mon, 30 Nov 2015, dwight wrote:
> I wrote an interleave formatter for a friend to use on his H89.
> He had an enormous data file that took for ever to read in BASIC.
> He couldn't believe it could be made to work so much faster.

Oversimplified remedial tutorial:
Ideally, the system reads a sector, does what it has to do with the 
content, and goes back for the next one, and can read every sector of the 
track in a single revolution.

But, if the system can't finish with a sector in time for the next sector, 
then it's going to have to wait a full revolution of the disk, which would 
be the worst condition.  With 10 sectors per track, we are looking at a 
simple file read taking 10 times as long.  Well, OK, the system could take 
hours to process the data from the sector, so there is no maximum possible 
slowness.  Maybe Microsoft knows what the maximum slowest is.
Most "modern" systems can keep up with simple numeric sequence, although 
some software can slow things down enough to bring the problem back.

If it is just barely too slow to get the next sector in sequence, then a 
simple rearrangement of the sectors on the disk could solve it. 
Something as simple as arranging the sectors such as 1,6,2,7,3,8,4,9,5 
The rest of the software doesn't even need to know about it.  It still 
asks for sector 1, then asks for sector 2, etc.

If that's still not enough, it can go something such as 1,4,7,2,5,8,3,6,9
1,3,5,7,9,2,4,6,8  etc.

Obviously, simply loading the content of a file into memory can be done 
quicker than if some software is trying to process the incoming data.
Some of us have been crazy enough to use disks with different sector 
sequences for data files of different programs (WORDSTAR V WEIRD 
V WORDPERVERT V SUPERCALC, etc.)

In addition, depending on how long the drive takes to move to the next 
track, you might need more time before reading the first sector of the 
next track.  So, in some cases, it may be more efficient to have the first 
sector of the next track not be the first physical sector on that track. 
The sectors of that track could be in the same pattern, but simply 
starting at a different point in the cycle.

A computer system that rearranges sectors on the track can normally manage 
OK with a disk formatted on a different system with a different physical 
sequence.  If you are writing a program to FORMAT disks for a machine, the 
sector sequence will not necessarily matter, although it could result in 
slower access.

When looking at an unfamiliar disk format, if the sectors are not in 
sequential order, then it usually means that the OS uses them in numeric 
order, but that the arrangement is out of numeric order for efficiency.


Sector sequence can also be done in software.  With the physical sectors 
still arranged sequentially and consecutively, the OS could decide that 
the first "logical" sector(s) are in sector 1, and the next logical 
sector(s) are in sector 3, etc.    ("deblocking")

If the sectors of an unknown disk are in numeric order, it could mean that 
1) the system was efficient enough to handle consecutive sectors
2) the designer didn't care about that level of efficiency
3) the OS is not using the sectors in numeric order.

In that case, it calls for examining the content of sectors, looking for 
information flow.  If you encounter the first part of a word of text at 
the end of one sector ("half a worm in the apple"), and the rest of the 
word at the beginning of another sector, that helps determine the sector 
sequence.  If you aren't lucky enough to have text files in a language 
that you can follow, look for source files (such as DUMP.ASM), and machine 
language of processors that you can follow.
Tracks where some sectors have been over-written with other content can 
make it more confusing to determine the sequence.


It is USUALLY the same on every track, but there are rare exceptions. 
And different disk formats from the same manufacturer may be different.


Physical format may be different on boot or system tracks than on the 
rest of the disk.  Other than sector numbers the physical format is 
usually the same on both sides of a DS disk.  When you encounter one that 
is not, it is likely to be a DS disk that has been reformatted to use on a 
SS machine, such as re-using a PC disk for an Osborne.

--
Grumpy Ol' Fred     		cisin at xenosoft.com


More information about the cctalk mailing list