Date : Tue, 23 Jun 2009 22:48:56 +0100
From : pete@... (Pete Turnbull)
Subject: reading data from old hard disk
On 23/06/2009 21:52, Jules Richardson wrote:
> Phil Blundell wrote:
>> - a Xebex card labelled "ASSY 104527 rev E04" which seems more likely to
>> be MFM. But I don't have any documentation at all for this and,
>> consequently, no idea how to set it up correctly for the drive.
>
> Probably a S1410. There's a jumper on them for selecting sector size. Problem
> with them is that they're SASI, not SCSI :-( It's pretty easy to whip up a
> circuit to drive them (beeb should have enough I/O pins I suspect), and
> there's even an example circuit and code (Z80, IIRC) in the manual - but
> that's just more work!
If it's just to read the disk, on a BBC Micro, the Winchester Host
Adapter that's normally used to drive an Adaptec ACB4000 will do fine.
Then you can use OSWORD &72 to read the drive. If the drive matches the
basic default settings of the Xebec S1410, that's all you need; that's
unlikely, though as the default is for a small slow drive: an original
ST506 that doesn't do buffered seeks. Otherwise, you just need to stuff
a few values into the card to set up its ideas of number of heads,
number of sectors, etc.
I know this works fine because I used to sell S1410s with a formatter
program and a little boot program to init the card, for Beebs. It's
been on my website for a while, because someone (from this list IIRC)
asked for it a few years ago. It's at
http://www.dunnington.u-net.com/public/BBC/XebecForm.html
and if you follow the link to the BASIC formatter you'll see what code
you need to initialise it. Look for PROCinit, which is what sets up the
card for the drive. It needs the number of heads, the number of
cylinders, the step rate (IIRC, 0 means the drive can do buffered seeks,
but check the manual), the cylinder beyond which to reduce the write
current (to allow for the higher bit density), the cylinder to use as
the landing zone, the number of spare tracks, and the sector interleave.
If you want a little program that you can run just to init the
controller, look at PROCassemble_reset in the source code at
http://www.dunnington.u-net.com/public/BBC/XebecAssem.txt. It reads the
parameters it needs from a file called "Drive_Info" in the "Format"
directory on the drive -- this was always put on track 0 so it could be
found regardless of geometry. You could easily adapt this to read the
data from elsewhere (eg the keyboard).
--
Pete Peter Turnbull
Network Manager
University of York