VOGONS


First post, by red_avatar

User metadata
Rank Oldbie
Rank
Oldbie

I got a rather simple question but because I never had to mess this much with CHS values, I wanted to double check before I proceed:

My 1995 Pentium PC's BIOS doesn't auto-detect drives but requires me to enter CHS values. When I use tools to determine the CHS values of the formatted SD card on my PC, I get a "Heads" value of 255. Now, the BIOS limits this value to 127 so if I double the amount of cylinders and set the Heads value to its max of 127, I assume I'll be able to access the full drive? I already tested this and the BIOS does say I nearly have 16GB (this is for a 16GB SD card) so it's certainly possible but I wanted to make sure I won't run into problems like sectors not being readable or files not getting corrupted by doing this. I successfully got a 2GB SD card to work before using high cylinder values so there's no cylinder limit.

My second question is a follow up question: I want the full 16GB accessible in a DOS 7.1 environment (Windows 98 without the Windows part) but if I use FDISK with the settings above, it DOES see 16GB but the moment I delete the partition and make a new one, it limits it to 7589,13MB. Anyone have any tips here to get the full 16GB? I don't believe there's a limit on this BIOS since it will happily show it's a 16GB drive in the BIOS if I manually enter the CHS values.

Retro game fanatic.
IBM PS1 386SX25 - 4MB
IBM Aptiva 486SX33 - 8MB - 2GB CF - SB16
IBM PC350 P233MMX - 64MB - 32GB SSD - AWE64 - Voodoo2
PIII600 - 320MB - 480GB SSD - SB Live! - GF4 Ti 4200
i5-2500k - 3GB - SB Audigy 2 - HD 4870

Reply 1 of 5, by JudgeMonroe

User metadata
Rank Member
Rank
Member

What BIOS will show doesn't have much to do with what the BIOS will work with. My 1994 Pentium won't work with any geometry with more than 4096 cylinders, but you can put in any values you want and see the result; it just won't work. Also, CHS geometry only gets you so far. Any drive over 8.4GB or so reports a geometry of 16383/16/63 while actual capacity moves to an IDE bus command. There's also the int 13 limit, etc. etc. Very large drives on very old PCs just doesn't work very well.

If you create a 16Gb partition and put that disk in an old PC and FDISK sees it as a 16GB partition, all that means is that FDISK can read the partition table. When it comes time to create a new partition, it can only do as much as the BIOS and IDE controller allow.

Reply 2 of 5, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++
JudgeMonroe wrote:

What BIOS will show doesn't have much to do with what the BIOS will work with. My 1994 Pentium won't work with any geometry with more than 4096 cylinders, but you can put in any values you want and see the result; it just won't work. Also, CHS geometry only gets you so far. Any drive over 8.4GB or so reports a geometry of 16383/16/63 while actual capacity moves to an IDE bus command. There's also the int 13 limit, etc. etc. Very large drives on very old PCs just doesn't work very well.

If you create a 16Gb partition and put that disk in an old PC and FDISK sees it as a 16GB partition, all that means is that FDISK can read the partition table. When it comes time to create a new partition, it can only do as much as the BIOS and IDE controller allow.

Prior to the INT48 limit, these issues were almost always a problem with BIOS or BIOS extension code. That's why XTIDE can usually give access up to the INT48 limit when loaded from a ROM in a NIC card with no hardware modifications needed.

All hail the Great Capacitor Brand Finder

Reply 3 of 5, by red_avatar

User metadata
Rank Oldbie
Rank
Oldbie
JudgeMonroe wrote:

What BIOS will show doesn't have much to do with what the BIOS will work with. My 1994 Pentium won't work with any geometry with more than 4096 cylinders, but you can put in any values you want and see the result; it just won't work. Also, CHS geometry only gets you so far. Any drive over 8.4GB or so reports a geometry of 16383/16/63 while actual capacity moves to an IDE bus command. There's also the int 13 limit, etc. etc. Very large drives on very old PCs just doesn't work very well.

If you create a 16Gb partition and put that disk in an old PC and FDISK sees it as a 16GB partition, all that means is that FDISK can read the partition table. When it comes time to create a new partition, it can only do as much as the BIOS and IDE controller allow.

Thanks for clarifying some things. I came across a lot of information concerning limitations but with hardware being so diverse, it's hard to know which limitations affect my PC. DOS 7.1 has no size limitation that will be a problem, that I know and if I set cylinders to 4000 and heads to 127 I can easily get 16GB out of the drive according to the BIOS but you're right - DOS needs to be able to correctly "talk" to the BIOS AND address the full disk size. I found a utility which confirms that the BIOS has no Int 13 extensions so 8GB will indeed be the maximum. This means I'll need to manually set the CHS to a setting that gives me 8GB combined with DOS 7.1 which will be 4 times more than what DOS 6.22 can give me + less wasted space due to how FAT32 works.

Retro game fanatic.
IBM PS1 386SX25 - 4MB
IBM Aptiva 486SX33 - 8MB - 2GB CF - SB16
IBM PC350 P233MMX - 64MB - 32GB SSD - AWE64 - Voodoo2
PIII600 - 320MB - 480GB SSD - SB Live! - GF4 Ti 4200
i5-2500k - 3GB - SB Audigy 2 - HD 4870

Reply 4 of 5, by red_avatar

User metadata
Rank Oldbie
Rank
Oldbie
gdjacobs wrote:
JudgeMonroe wrote:

What BIOS will show doesn't have much to do with what the BIOS will work with. My 1994 Pentium won't work with any geometry with more than 4096 cylinders, but you can put in any values you want and see the result; it just won't work. Also, CHS geometry only gets you so far. Any drive over 8.4GB or so reports a geometry of 16383/16/63 while actual capacity moves to an IDE bus command. There's also the int 13 limit, etc. etc. Very large drives on very old PCs just doesn't work very well.

If you create a 16Gb partition and put that disk in an old PC and FDISK sees it as a 16GB partition, all that means is that FDISK can read the partition table. When it comes time to create a new partition, it can only do as much as the BIOS and IDE controller allow.

Prior to the INT48 limit, these issues were almost always a problem with BIOS or BIOS extension code. That's why XTIDE can usually give access up to the INT48 limit when loaded from a ROM in a NIC card with no hardware modifications needed.

I looked this up half a year ago and it seemed interesting. Oddly enough, none of my PCs (not even my 386) has any problems handling 2GB drives under DOS 6.22 so I never bothered following up. My IBM P166 (upgraded to 233MMX) reads SSDs fine so I have a massive 32GB drive there too. It's only because I'm greedy and never happy 😉 that I wanted to have my HP Pentium 70 to hold nearly my entire 1990-1995 library of games and then FAT16 kind of sucks with a 3MB game using 5MB of disk space. If I get 8GB I'll be happy - should be enough for all the games I need!

Retro game fanatic.
IBM PS1 386SX25 - 4MB
IBM Aptiva 486SX33 - 8MB - 2GB CF - SB16
IBM PC350 P233MMX - 64MB - 32GB SSD - AWE64 - Voodoo2
PIII600 - 320MB - 480GB SSD - SB Live! - GF4 Ti 4200
i5-2500k - 3GB - SB Audigy 2 - HD 4870

Reply 5 of 5, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
red_avatar wrote:

less wasted space due to how FAT32 works.

Not sure what you mean here, FAT32 doesn't support smaller cluster sizes so it would only ever be less efficient.