• Please review our updated Terms and Rules here

Seagate ST-506 in a 5150/5160

modem7

10k Member
Joined
May 29, 2006
Messages
10,568
Location
Melbourne, Australia
My efforts in getting a Seagate ST-506 to work in a 5150 (or 5160)
------------------------------------------------------------------

The story below happened a few months ago. I'm posting it now because I can see that there is an ST-506 on eBay presently (with more to follow), and I want people to realise that getting the ST-506 to work in a 5150 or 5160 (or 5170 for that matter) is not straightforward.

The first thing you need to know about the ST-506 is that it requires a 3 millisecond (not microseconds) step rate, and nothing else. Not many HDD controllers for the 5150/5160 give you the option of using a 3 millisecond step rate, and so that is the first hurdle.

This 'early' drive also requires a 'reduced write current' signal (on cylinders 128 and onwards) from the controller. Note that 'reduced write current' is not the same as 'write precompensation'.

Even having controllers that met both criteria, I still had problems. They would work set at a 3mS step rate when connected to an ST-138, but had a problem when configured for the ST-506. I saw problems like:
1. Starts low level format but controller gives an error somewhere near last cylinder.
2. Starts low level format but controller gives an error when the heads return to cylinder 0.
3. Low level format completes without error, FDISK then FORMAT/S completes without error, but drive won't boot.

A friend found a web site (http://files.chatnfiles.com/RBBS in a Box/DULL/DTCCNTRL.NFO) where it was shown how to modify the ROM in a DTC 5150BX.
That fiend had a DTC 5150BX and so I started to create a modified' ROM for it.
The starting address for the drive parameter table was different to that specified (due to a different ROM revision no doubt) but the drive parameter table was in the same rough location.

I modified the entry for drive #7 (unused) to match the ST-506 as follows:

9900 (153 cylinders)
04 (4 heads)
8000 (reduced write current starts at cyl 128)
8000 (WPC starts at cyl 128)
0B (ECC burst)
00 (step rate = 3 ms)
FF (drive-ready timeout)
FF (format timeout)
FF (general timeout)
00 (always 00)
00 (always 00)
00 (always 00)
00 (always 00)

I also had to modify an unused byte (near the end) to take the 8 bit checksum to 00.

SUCCESS - ST-506 worked beautifully.

So the solution was the use of a "DTC 5150BX that has a suitably modified BXD06 ROM".

I subsequently obtained a DTC 5150CX (a later generation DTC board) with a revision BXD07 ROM. I tried the same technique, but it failed. But I discovered that inserting the modified BXD06 ROM instead of the modified BXD07 ROM worked.

Also to note that is that once I had the system running, I found that the SpeedStor 6.0.5 hard drive utility reported the connected drive as much bigger than 5MB. Why? I don't know. And a bounded read test (restricted to 4 heads, 150 cyl) failed. Not sure what's going on there because a different diagnostic tool (can't remember which one) tested the drive as good.
 
Interesting - I was not aware that a drive would be so sensitive about the step rate.

The XT came with the ST-412 (or equivalent), and I presume that the controllers of the time were geared to work with ST-412 equivalents. I don't think that I've ever seen an ST-506 on a PC before. Was this a common upgrade? How on earth did the DTC people figure out that a 3ms step rate was a requirement and make a controller that supported it?
 
The XT came with the ST-412 (or equivalent), and I presume that the controllers of the time were geared to work with ST-412 equivalents. I don't think that I've ever seen an ST-506 on a PC before. Was this a common upgrade?

I too have never seen an ST-506 in a PC. Even the 'first revision BIOS' 5150 shown at http://www.selectric.org/old5150/index.html has a 10MB drive.
I'm guessing that the ST-506 was out of production by the time IBM wanted them for the 5150. If the ST-506 was still in production, maybe the ST-412 was better bang-for-buck.

The attraction of the ST-506 for me (and I'm sure others) is that it is Seagate's first hard drive.
And if you get one, you need some way of testing it.

Interesting - I was not aware that a drive would be so sensitive about the step rate.
Yep - before hard drives (such as the ST-412) started to buffer the step pulses, and thus be able to accept a range of step rates.

How on earth did the DTC people figure out that a 3ms step rate was a requirement and make a controller that supported it?
I think that most hard disk controllers for the PC implement the step rate via a software loop, and thus it was easy for the engineers to add any step rate they wanted. Therefore, why not add 'old' step rates in case they are needed.
 
Hi,
The ST506 is specifically supported by some machines which predate the IBM PC such as the Vector Graphic models. I am currently investigating adding a ST506 to my VG machine.

The VG integrated FD/HD controller (aka VEDMCS) calls out support for the ST506 and ST412 drives in the driver. At the time, those referred to actual drives not the interface standard. Apparently the VG controller requires the drives to be slightly modified to work though. It needs the drive to supply a "constant index" signal to synchronise the controller with the drive.

There is some interesting information on the Seagate ST506 and ST412 here:

http://bitsavers.org/pdf/seagate/

Thanks and good luck!

Andrew Lynch
 
Hi
Most controllers have the step rate built in as
one of the parameters. It was not controlled by
a software loop.
At lead any WD1000 controller had this. Some
newer controllers may only support the autostepping.
The auto stepping allows the drive to accelerate
the stepper and decelerate at the end. This means
they can use a slower stepper but still have faster
effective step rates.
The ST506 can run at slower step rates than 3ms.
One can run them at 10ms. One just can't run faster.
Dwight
 
Most controllers have the step rate built in as one of the parameters. It was not controlled by a software loop.
I just looked at some detailed specs for hard and floppy controller chips, and yes, the step rate is something built into the chips.

The ST506 can run at slower step rates than 3ms. One can run them at 10ms. One just can't run faster.
I based my "3 milliseconds only" on the ST-506 spec sheets from www.seagate.com

ST-506 --> "BUFFERED STEP PULSE RATE (micro sec) _____ 3 ms ONLY"
ST-412 --> "BUFFERED STEP PULSE RATE (micro sec) _____ 5-500"
ST-4038 --> "BUFFERED STEP PULSE RATE (micro sec) _____ 10-70"

But I think you are right. The documentation pointed to by Andrew provides more information, for both the ST-506 and ST-412, specifically page 17 of the ST-412 OEM Manual.
From my reading of page 17, the true story is:

ST-506: 3mS or greater

ST-412: For 'normal seek' use 5 to 500 uS. For 'slow seek' use 3 mS or greater ('slow seek' presumably there for backward compatibility)
 
The ST-506 is almost unique in that it does not support "buffered seeks" and all of the subsequent drives do (TM-506, ST-412, etc...) Because of that; any errors in the timing for steppping an ST-506 can be fatal and it was not supported on any model of XT/PC.
 
Some (most) people will think I'm insane for resurrecting a 3 year old topic, but I legitimately feel that I have something important to add to this:

http://artofhacking.com/IET/HARDDISK/live/aoh_sghints.htm
http://www.dcidb.com/pcdisk/c/ASCII/1451.TXT

According to two documents I found while doing a quick search on ST-412 parameters, some Western Digital controllers have a microprocessor which accept configurable seek rates using an option known as the CCB option byte- this byte corresponds to part of the drive parameter data structure which the determines the seek rate. Assuming the data structures are the same between hard drive controller models and manufacturers, the drive parameters for the ST-506 found in the former document (CCB value 0), compared to the CCB byte value for the WD 1002-27X (3 milliseconds seek rate), are consistent with the OP's configuration which allowed him to use the drive with a 5150/60.

Additionally, such controllers by WD (1002, WDXT-GEN series, etc) include a Reduced Write Current Parameter as well- when dynamically configuring the drive (using DEBUG C800:5), the order of the numbers to enter correspond to the following drive parameters:

CCC HH RRR PPP EE O, where
CCC => Number of cylinders
HH => Number of heads
RRR => Reduced write current cylinder
PPP => Write precompensation cylinder
EE => Correctable error burst length
O => CCB option byte (discussed in previous paragraph)

For this reason, I believe it should be possible to run an ST-506 on a 5150/5160 normally, without requiring a modified ROM, provided that one has a dynamically configurable controller. While I have one of these dynamically configurable WD controllers, I currently don't have an ST-506 to test with :(. I am aware the second link is for an RLL controller and wouldn't work well with an ST-506; therefore, someone please yell at me for reviving this thread if what I say seems dead wrong.
 
Last edited:
Well, most of us who used ST506s back in the 5150 days had only the IBM/Xebec or DTC controllers...

I routinely used on with a Xebec with a modified ROM.
 
Reviving this thread again: I just bought an ST-506 off Ebay (which may or may not work lol)- I'll let you guys know my experiences with trying to get this to work with my Western Digital controller.
 
Just spent the last hour trying to get the drive to work. I don't think it's broken, mainly b/c the PC doesn't return any HD-related errors when the PC boots up. However, even with dynamic configuration, I can't get the drive to be recognized by my current controller, and just like Modem7's experiences, SpeedStor returns garbage data.

When I low level format the drive, the ST-506 does not step off of cylinder 0 until after the controller counts to cylinder 128 (the RWC/WPC cylinder), even with correct seek pulse timing selected (3 ms), and correct RWC/WPC cylinders. When the drive is formatting before cylinder 128, the stepper motor vibrates in place at cylinder 0, akin to a floppy drive when it attempts to seek without a floppy disk in the drive. I guess I'm going to have to start controller hunting...

Note to self: If a senior member had trouble doing it, chances are I won't be able to :/...
 
I used to use an ST506 on a PC XT years ago. The trick, as has been mentioned, is modifying the BIOS code to reflect a slow unbuffered seek time. Many 8-bit controllers can do this; I've never tried it on a 16-bit one.

With the ST-412, the standard for seeking was "buffered", meaning that you shot the drive a train of step pulses far faster (e.g. 200 nsec. between pulses) and the drive firmware just counted them and then waited for a lull. It then computed the best way ballistically to get to the desired cylinder. In other words, it took into account that once the drive heads got moving at their top speed, you could keep them going and then slow down to land on the right track. The ST-506, in contrast, is a dumb drive--no smarts at all, just an oversized floppy drive.
 
Correct me if I'm wrong, but doesn't a step time of 3ms imply that my HDD controller is not attempting to drive a buffered seek?
My drive parameters were as follows:
c: 153, h: 4, rwc: cyl 128, wpc: cyl 128, error burst length: 11 bits, CCB option byte (determines step rate): 0, which corresponds to 3ms per my documentation.

Or is a buffered seek with 3ms pulses still possible?
 
Last edited:
No, that's fine--but only if your controller recognizes it. By the time you hit 16-bit MFM controllers, the unbuffered capability was dropped from many.

I assume that you have the termination resistor pack installed on the drive.
 
Termination resistor is installed, and the MFM controller is an 8-bit WD 1002 variant from the late 1980's. Maybe the documentation is off, and the controller simply doesn't support it. If that's the case, then I'll save the drive for a rainy day/a machine which can use it.

I just wanted any 5 MB drive lol :p.
 
Thank you for showing me that link. I'm aware of that item and had considered purchasing it when the seller posted it in December. Maybe when the price drops (or if I get a surplus of graduation money) I'll consider buying it again. That was more of me rambling- I'm quite happy with the ST-412 in my 5150, but think it would be rather amusing to run one using the bare minimum in hard drive storage.

More importantly...
For anyone who is reading this thread and wants to attempt to get an ST-506 working using a PC:

Heed the advice of the other posters, and try to get an older (early 80's) MFM controller that supports unbuffered seek (equivalently, 3 ms seek pulses). Even though my WD 1002-27 MFM controller meets the conditions required to drive an ST-506 (for this controller, drive parameters- including seek pulse timing, write precompensation, and reduced write current, etc- can be dynamically programmed), I ran into issues similar to modem7. Obviously, I wasn't the first and I'm sure I won't be the last to try this, so reviving this thread may be alright.

When I have time to look again, I'll try to get my hands on a DTC or Xebec controller and try using that. It would be nice to get the ST-506 in a working system, but for the time being, I'm sure it'll be fine on my shelf of hard drives; I'm fairly convinced that the drive works, just the controller can't handle it.

EDIT: For those who want to try getting an ST-506 in a PC... keep reading. I got the drive to work after some trial and error.
 
Last edited:
Termination resistor is installed, and the MFM controller is an 8-bit WD 1002 variant from the late 1980's. Maybe the documentation is off, and the controller simply doesn't support it. If that's the case, then I'll save the drive for a rainy day/a machine which can use it.

I just wanted any 5 MB drive lol :p.

What's the WD chip on the 1002 that you have (or the exact model of the controller)?
 
Back
Top