Reading ESDI disks
mattislind at gmail.com
Fri Feb 12 09:04:32 CST 2021
I am pretty sure that my controller is the IBM Enhanced ESDI board and
having support for it in Linux is probably unlikely. But perhaps it is the
WD1007, I am not sure until I checked and it is 100 km away right now.
Anyway I did some reading of the ESDI spec. There are things that I really
like to have clarified. ESDI has a hard sector and soft sector mode, much
like floppy disks. But in contrast to floppy disks which are hard set to a
certain number of sectors per track the hard sectoring in ESDI (and SMD) is
just a counter derived from the bit clock / byte clock, right?
As far as I can understand you can set any number you like for this
divider both in ESDI and SMD. So you can select a big variety of sector
sizes using hard sectoring. This would then be in contrast to a hard
sector floppy disk where only one format can be handled.
The latter would then lead to a soft sector format for floppies where one
could select the number of sectors arbitrarily. But what sense makes a soft
sector ESDI drive. Isn't it just add overhead by having address marks?
Wouldn't it just be simpler with hard sectoring? Less overhead?
Then another issue in ESDI is that it seems to be quite elaborate
protocol between the drive and the controller. Not just for sending
commands which are done serially 16 bits plus parity but also the reading
process. I am a bit confused about the READ GATE. It has to be deasserted
in the PLO SYNC interval. Why is that? I am clearly missing something.
A ST506 can be read raw and then decoded in software if you like. But it
seems that just enabling READ GATE and reading the track of the drive
(perhaps with SECTOR PULSE for hard sector configured drives) wouldn't
work. You have to fiddle with the READ GATE at the correct bit point in
time. It seems that this fiddling with the READ GATE controls how the VCO
in the data separator behaves.
In any case this exact timing of the READ GATE makes things a bit more
complex on how to read a disk without the proper controller. One needs some
logic with counters to handle this. Why didn't they put that logic in the
drive? The PLO SYNC stuff is drive specific anyhow as I understand it.
More information about the cctalk