davis@clocs.cs.unc.edu (Mark Davis) (04/12/89)
1. Introduction I made a few postings back in December asking about the feasibility of installing a Seagate ST 4096 hard disk drive in a PS/2 Model 60. I came to the conclusion that it was possible, so we bought the disk. After some work I made the combination work, and this posting describes the process of installation. It is long, and still blows over a lot of details, but I promise a lot of people to post the results. 2. Background A university research group that I work with owns a PS/2 Model 60 with the 44 Megabyte fixed disk, running PC/DOS 3.3. This disk is actually an ST 4053 and the controller appears to be a pretty straight forward 1:1 MFM controller. The group needed more disk space. Informal calculations indicated they needed about 50 Meg more. If we bought another drive from IBM it would cost $1000 and might not be enough space. The price on the Seagate ST 4096 had dropped dramatically and it seemed like a nice drive. Also, with 80 Meg, the group would not run out of space. I could only find one vendor selling 4053's, and he wanted more for a 4053 than the going price for a 4096 (things have changed since). The 4096 and the 4053 are very similar, with 9 and 5 heads respectively. I also was told that the 4096 could be used in a PS/2 Model 60 as a 4053 (just lie about the number of heads), so if all else failed we could still make it work as a 44 Meg drive at a price lower than IBM's. We bought one. (It took the University 3 months to get it. I'm glad we were not in a hurry.) I wanted to avoid the use of additional software as much as possible. I am considering upgrading to PC/DOS 4.0 on this machine soon, and I wanted use use stock FDISK and Format with just a couple of additional programs so everything would not break during the upgrade. 3. Physical Installation Even before we ordered the drive I had physical installation under control. The computer already had a control cable for two disks. The controller used edge connectors instead of pins, so I had to build my own data cable with edge connectors on both ends with parts I got mail order. I also built my own power cable, but I could have used two Y cables in series. The PS/2 uses AT style mounting rails. Before installing the drive, I examined the existing 4053 to check the jumpers and found that IBM had used several non default settings. I had to obtain one additional jumper and move another. The jumpers had to do with how the drive handled write errors. I suspect the drive would have worked with the default settings, but may not have gracefully handled write errors. It was reassuring to see that the circuit board on the bottom of the original equipment 4053 had "4096" etched on it. One final jumper change was required: I had to configure the new drive as DS2. There is a twist in the control cable, so both drives are supposed to be DS2. 4. Low Level Format So, I powered up the computer, and the fun began. The drive would not be acknowledged, no matter what disk type I used for setup. Disk Manager (Seagate version) 3.5 that came with the drive reported controller errors and illegal commands. The only way out was to set the drive type number to 32 (ST 4053) and low level format it using the IBM supplied "Reference Disk" as a 44Meg drive. It now worked fine and I verified that it worked perfectly as a ST 4053. Unfortunately, this process destroyed the format/ partitioning/ neat software that came on the drive and made the manufacturers defect information unreachable. It is clear that the PS/2 MFM controller is not compatible with the controller used to originally format this drive. This is not a big surprise; compatibility on controller to disk formatting is not that common. But this controller is very particular. If you try to access a head that the controller does not know about, the controller will enter a state that will make that drive inoperable until you turn off the machines power. Fortunately, I had a copy of Jim Bracking's shareware HDTEST version 1.21 which knows about PS 2's. With it, I was able to format the entire drive. I suspect that with his program I could have formatted the entire thing from the start, but there was no way to go back to that state. Thanks for you program, Jim, it was a big help. Your registration fee is in the mail. 5. Partition I had written a Turbo Pascal program to reset the fixed disk parameters pointed to by interrupt locations $41 and $46. I booted the computer, ran the program to fix the disk table. Then I ran FDISK. It would start to work and then the computer would hang. This was how I figured out that you have to do a reset on the disk after changing fixed disk parameters. Also I identified the "weird controller state" referenced above. Once this was fixed, FDISK worked fine, and I partitioned the drive up into 32, 32, and 16 Megabyte partitions. There are lots of PD or shareware programs that can do the same thing as my specialized pascal program. For example, the PDISK partitioning programs by Scott E. Garfinkle contains a program for this. 6. Format I had expected high level format to be the easiest of all. However, it was probably the hardest. You see, reseting all of the hard disk parameters did fine for FDISK, which has to go to the best source, but did not help FORMAT. FORMAT just asks DOS. I could not figure out a clean way to get DOS to reinitialize the tables itself. Based on the incorrect number of heads set at boot time, it had calculated the number of cylinders that would have been required to hold the correct amount of data. Getting the message across to DOS was hard. I ended up using IOCTL calls: interrupt $21, function $44, subfunction $0D, functions $60 and $40. My Turbo Pascal program recalculates the number of cylinders from the correct number of heads, because it was too hard to get the information from the partition table. These IOCTL calls to set new parameters always returned with 05h, "Permission Denied" but seemed to work otherwise. 7. Conclusion This project interested me and I had fun. It was definitely a money loser though. For the value of my time and the money we spent on the disk, we could have bought the Core ESDI controller and a nice ESDI drive. I understand that there are versions of Disk Manager that support PS/2's. I suspect that Speedstore would also do the trick, so if my attempts above had failed, I would have bought one of them. The vendor (Shamrock) offered to send me a copy of the PS/2 version of Disk Manager, but I don't think it was in stock, because it has not arrived yet. Discounting the fun I had playing with it, a better choice would have been to buy the ST 4053 and put the effort in on reducing the storage requirements. On the other hand, if I had specified that I wanted software that would work on a PS 2, the vendor may have supplied that at no charge initially. Now I have to find an ESDI disk for the other PS/2 Model 60 in the office. At least this time, I only need > 80 Meg, but I only have $1100 to spend. If I could just find a Micropolis 1355 on sale ... Thanks to all of the people that responded to my previous postings. If you would like more details or a copy of the Turbo Pascal 4.0 source I wrote, send me mail. Thanks - Mark (davis@cs.unc.edu or uunet!mcnc!davis) (919)962-1739