• Please review our updated Terms and Rules here

How do I add different hard drive types?

DOS lives on!!

Veteran Member
Joined
Mar 14, 2011
Messages
2,303
Location
East Tennessee
On most vintage computers hard drive settings page in the BIOS, you have to set the correct hard drive type from a list of pre-defined drive types. Most of the time when I try to enter in the settings, my hard drive type isn't listed and the heads, cylinders, megabytes, etc., on the hard drive don't match up with any on the list. For example, I'm trying to get a Seagate ST-157a to work in my Compaq Portable III. Is there a way to add custom entries to the list so the computer and hard drive can cooperate together? Or is there some type of software that can add a custom entry.
 
Short of burning a new BIOS ROM, no, there isn't any way of adding custom types to a Compaq Portable III.

The software solution is to select a hard drive that's smaller than your real one (usually type 1) and then install an overlay such as the Ontrack Disk Manager.
 
If I were doing this on other systems, which I am, how many megabytes lower should I go on selecting the closest type. Also, which version of Ontrack Disk Manager would work for these types of computers. I have to do the same on a Dell System 310.
 
Its been a while, but often there used to be free versions of OnTrack that only worked with particular brands of disk. So for a seagate drive you might try looking for a seagate tool...
 
Short of burning a new BIOS ROM, no, there isn't any way of adding custom types to a Compaq Portable III.

The software solution is to select a hard drive that's smaller than your real one (usually type 1) and then install an overlay such as the Ontrack Disk Manager.

Technically, even by burning a new BIOS ROM, you can't add custom types, you have to overwrite one of the types already there.
 
The ST157A has three possible geometries: 560/6/26 (native) or 1024/5/17 or 733/7/17
To switch the drive to one of the two non-native geometries, one low-level formats the drive using that geometry. I know because I have an ST157A.

Looking at the drive table in the Compaq Portable III, one of the drive entries is 980/5/17, very close to (and not cyl/head/SPT exceeding) the 1024/5/17 option on the ST157A.
980/1024 = 95%

Therefore, what should work (without using a drive overlay) is:

1. Put ST157A in Compaq Portable III.
2. Boot from a floppy that contains SpeedStor.
3. Use SpeedStor to low-level format the ST157A as 1024/5/17. That will switch the ST157A to the 1024/5/17 geometry.
4. Set C: drive in CMOS setup/configuration to type 10 (type 10 in a Compaq Portable III is 980/5/17).
5. FDISK
6. FORMAT

You'll end up with access to 95% of the ST157A's capacity.

Be wary though. If you run something that interrogates the ST157A, the ST157A will always reports itself as 560/6/26.

Although some sources indicate that IDE drives must never be low-level formatted, that information is misleading. Some IDE drives are designed to be low-level formated. The ST157A is one. In fact, the ST157A manual includes, "the drive should be low-level formatted". And so the general information about low-level formatting an IDE drive should be something like, "Don't low-level format an IDE drive, unless the manufacturer specifies that a particular model of IDE drive can be low-level formatted. " Note that drives such as the ST157A are probably not actually writing new sectors during a low-level format operation. They're sure to be faking it.
 
Last edited:
If I were doing this on other systems, which I am, how many megabytes lower should I go on selecting the closest type.

That's not particularly important. The only reason to select a smaller size is just to stop the BIOS accessing a nonexistent sector if the disk manager isn't resident.
 
Or for JohnElliot's suggestion, how would I go about entering in the custom settings for Type 15

Create a new BIOS ROM image, edit the bytes at offset 64E1-64F0h to hold your new definition, split the ROM image into odd and even bytes, program the results to two 27128 chips, and plug those chips into the motherboard. Not for the fainthearted :)

As far as I can see, the meanings of those bytes are:
Code:
64E1-64E2  Cylinders
64E3       Heads
64E4-64E5  RWC
64E6-64E7  Write precompensation
64E8       WCC
64E9       Control byte
64EA-64EC  do not appear to be used
64ED-64EE  Landing zone
64EF-64F0  Sectors per track
 
Type 15 is an empty slot, so you can put your custom definition in there.
There is a risk with using type 15, because of the way in which type 15 ended up being used as a flag in late model IBM 5170s, and most 5170 clones.

FIRST IBM 5170 BIOS

In the CMOS/RTC chip, only one byte (at address 18 decimal) is used to store the drive types for both C: and D: In that byte, the upper nibble is used for drive C: and the lower used for drive D:

Address 18 (decimal): C_TYPE_NIBBLE/D_TYPE_NIBBLE

Each nibble (being a nibble) can store from 0 to 15, and that is why the first BIOS only goes as high as drive type 15. Type 15 is reserved.

SECOND/THIRD 5170 BIOS

Drive types greater than 15 are now supported. IBM did this by using the reserved type 15 is a particular way.

If the C: drive nibble at address 18 is set to 15, it means that the C: drive type number is greater than 15, and is stored in a byte at address 25.
If the D: drive nibble at address 18 is set to 15, it means that the D: drive type number is greater than 15, and is stored in a byte at address 26.

Address 25 (decimal): C_TYPE_BYTE
Address 26 (decimal): D_TYPE_BYTE

Example:

With drive C: being type 34, the C_TYPE_NIBBLE at address 18 is set to 15, and the C_TYPE_BYTE at address 25 is set to 34.
 
Create a new BIOS ROM image, edit the bytes at offset 64E1-64F0h to hold your new definition, split the ROM image into odd and even bytes, program the results to two 27128 chips, and plug those chips into the motherboard. Not for the fainthearted :)
What I would add to that is:
Before altering the desired drive table entry, calculate and note the 8-bit checksum (usually zero, but can differ).
After altering the desired drive table entry, alter the checksum byte so that the checksum matches the checksum that was noted earlier.
 
Boot from a floppy that contains SpeedStor.
There's where the trouble begins. The link to SpeedStor that Modem7 provided gives two versions of SpeedStor. I chose the one recommended for PC's. This version didn't contain COMMAND.COM, so I assumed that the way to go would be to boot off a DOS (3.3 preferably) boot disk and run SpeedStor that way. However, formatting and writing the DOS 3.3 files using Winimage still won't boot on my Portable III. The error is,

"Disk formatted with WinImage 4.00 (c) 1993-97 Gilles Vollant
Boot sector from C.H. Hochstatter

No Systemdisk. Booting from harddisk
Cannot load from harddisk.
Insert Systemdisk and press any key."

Then, I tried manually copying the files to the disk, still won't boot.:mad: I tried several different versions of DOS and still won't work. So, how am I supposed to make a "working" boot disk so I can finally get speedstor to work?
 
. . . However, formatting and writing the DOS 3.3 files using Winimage still won't boot on my Portable III. . . . So, how am I supposed to make a "working" boot disk so I can finally get speedstor to work?

I have no idea what this "Winimage" program is, but it sounds flaky. Just use DOS, that always works. Then copy Speedstor onto the disk after that.
 
I have no idea what this "Winimage" program is, but it sounds flaky.
WinImage is quite a useful program to write files to floppies, extract files from different extensions, and a whole lot more. As for using DOS, It will probably work better than using Windows to copy DOS files.
 
I've found WinImage is hit/miss sometimes with vintage boxes...it depends what is being written, it seems. I've never had luck getting a 'fake' 3.5" 720K (that is, tape on the corner) to write properly, for example - it gives the same result. I think it isn't so much flaky software, as a flaky combination of media and drives between the systems.

You may find that if you 'scrub' the disk clean with something like KillDisk (I believe DBAN can do floppies also), then write once and only once to it, that first write will be more reliable.
 
I'm sure "Winimage" has some great functionality, however in this case it's obviously not up to the task, so why not use DOS? It runs on almost anything. Type format a: /s etc or for that matter just use diskcopy and delete the files you don't want, in order to make room for the ones you do want. That's how I used to do it before I got a working format program. The OP does have a copy of 3.3 right?
 
Back
Top