Re: Track/Sectors for older Drives, eg D9090

From: Ethan Dicks (
Date: 2003-08-25 17:54:27 writes:
> Hi All,
> I'm a little confused about the track/sector information given
> by various sources... for some of the older drives.
> They talk also about cylinders... and that confuses me.

"Cylinders" is an older term that meant then what "tracks" means
now.  Then, "tracks" was a composite of cylinders and heads.
I.e. - an ST225 is a 21.4MB drive with 614 cylinders and 4 heads
per cylinder for a total of 2465 tracks.  If you look at the numbers,
you should be able to see that "tracks" / "cylinders == "heads".

The actual "formatted capacity" of the drive was determined by the
nature of the controller, since it, not the drive, was responsible
for data clocking.  Depending on the controller, you could see 
about 32 sectors of 256 data bytes, 17 sectors of 512 date bytes
(both MFM schemes) or 26 sectors of 512 bytes (RLL).  The ST238R
was an "RLL" version of the ST225... there was no difference in the
mechanism - but the platters were verified to be able to handle
the tighter encoding scheme of RLL.  I know people who used ST238Rs
as MFM devices, "giving up" 33% of the formatted capacity with the
idea that they would be more reliable.

> What I'm after is "logical" info, that is the layout a programmer
> would use.

Not to be pedantic, but 25 years ago, a programmer _would_ have
used "cylinders" in thinking about the logical layout of the
drive, especially with certain operating systems.  The idea is
that you would group important information on cylinder boundaries
to minimize head movement.  It was also considered important to
break partitions at cylinder boundaries.

> I am thinking that the D9090 is laid out as: 918tracks (1-918), 32
> sectors (0-31). etc.


D9060: 153 Cyls, 612 tracks, 4 heads, 32 sectors of 256 bytes
D9090: 153 Cyls, 918 tracks, 6 heads, 32 sectors of 256 bytes

> Can someone confirm this, and also the layouts of the other drives
> of this era?

Which era?  The era of 5MB-10MB 5.25" drives?  The entire list of
ST506/ST412-interface drives?  There were lots of vendors and
lots of models.  There used to be a couple of web pages with
lists and lists and lists.  I found this one for Seagate drives
after a few seconds of Googling:

Back in the old days, you had to know exactly what all the numbers
of the drives were because the OS drivers and the controller hardware
turned that information into individual signals on the cables (head
selects, track steps, etc.).  Since the days of IDE and embedded SCSI,
the communication between the CPU and the drive is all in terms of
block number - IDE drivers still calculate geometry (CHS - cylinder,
head, sector vs LBA), but the drive itself recomputes the location
on the data surface since it's no longer a simple translation.

> is there a standardised detection routine for the D9060/9090? It
> seems you can stick any mechanism in the box and it will work...
> but...

There is *no* detection mechanism for the drive in a D9060/D9090.

There is a jumper on the "DOS" board that the firmware polls at
reset - if the jumper is set one way, it expects a four-head drive
(D9060); the other way, it expects a six-head drive (D9090).  The
firmware doesn't _detect_ the drive, the firmware _expects_ the drive
to match an existing list of parameters.  Drive detection is a fairly
new concept compared to how long we've been storing data on rotating

Four years ago, this was a topic on the list... here's an excerpt
from that thread:

> Got it!  I found the spot in the 2K ROM code that checks for drive
> type and adjusts the geometry.  I'm not sure if it is going to be
> feasible to change yet (since I haven't found things like write-
> precomp or RWC), but if you dig into a disassembly around $F8B0,
> X starts off at 6 and goes to 4 if PB5 is high.  The geometry data
> is stored around $049A as follows...
> $049A: $98           highest numbered track (#152)
> $049B: $03 or $05    heads-1
> $049D: $04 or $06    heads
> $049E: $20           sectors per track (256 byte sectors)
> $049F: $04           ???
> $04A0: $01           ???
> $04A1: $00           ???
> $04A2: $01

The reason you can drop an ST225 in a D9060 is that the number of
heads match, the number of cylinders is higher, and the drive itself
is smart enough to handle or ignore the "Reduced Write Current" and
"Write Precompensation" signals from the controller (normally, you
would have to make the drive and the controller match exactly, but
there are combinations of drives and controllers that play nice
together "accidentally")

Keep in mind, though, that since the D9060 firmware expects a 5MB
drive of 153x4x32, it will ignore 75% of the surface of your
ST225.  Given the relative abundance of ST225 drives vs Tandon
TM602S mechanisms, this is not a horrible tragedy.  I haven't yet
done it, but AFAIK, you can use an ST251 in place of a TM603S at
7.5MB, but either way, make sure your drive-type jumper on the DOS
board is set right.  If it's set for 6 heads and you attach a 4-head
drive, the format command will fail.  If it's set for 4 and you 
are expecting 6, you'll only get 5MB out of it.


Visit "The Seventh Continent"

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.