Viewing Issue Advanced Details
|ID||Category [?]||Severity [?]||Reproducibility||Date Submitted||Last Update|
|06561||Misc.||Minor||Always||Apr 30, 2017, 14:48||May 3, 2017, 09:28|
|Tester||Robbbert||View Status||Public||Platform||MAME (Self-compiled)|
|Assigned To||Resolution||Bugs That Aren't Bugs||OS||Windows Vista/7/8 (64-bit)|
|Version||0.185||Fixed in Version||Build||64-bit|
|Summary||06561: chdman: chdman gives incorrect info about chds|
I have a few chds for ibm-type computers (at486 for example). In order to setup the hard disk in the bios, I used chdman info to provide the cylinders, heads and sectors.
In the at486 bios, I select type 47 and enter the info, save and reboot. The system usually hangs, but sometimes will crash or say "Missing operating system".
So, for example, I have a disk called "hdd_type17.chd". chdman info -i hdd_type17.chd gives us 391 cylinders, 4 heads and 54 sectors. However, the bios states that a type 17 HD has 977 cylinders, 5 heads and 17 sectors. If I choose type 17 the system boots up fine. Choosing type 47 and entering the info provided by chdman does not work.
I do not know the regression version or if it ever worked.
|Steps To Reproduce|
I decided to create a brand new type 17 hard drive on the at586 (auto-detect bios). chdman created a blank disk. Then dos 6.2 setup was used to turn the disk into a bootable one. This all worked, so far so good.
Then I tried using this new hard drive on older machines that needs to be manually set up (at486, ct486, at386, ct386sx). They said "missing operating system". I finally found a combination that works as type 47, that being 167 cylinders, 8 heads and 63 sectors, which bears no relationship at all with what we started with.
|Affected Sets / Systems||chdman|
|There are no relationsihp linked to this issue.|
Apr 30, 2017, 19:44
|This happens when the drive physical geometry doesn't match the formatted geometry. DOS checks that the geometry in the bios matches the formatted geometry and ignores the physical geometry. It can happen on real machines too.|
May 1, 2017, 00:37
|If this is so, how is one supposed to find out the parameters to enter into the bios on a non-auto-detect computer?|
May 1, 2017, 02:55
edited on: May 1, 2017, 13:14
You're really testing the edges of what pc bioses were capable of at the time. When you did autodetect on the pentium, it defaults to LBA mode and a fake geometry of chs 41,32,63. You can see this in the setup "IDE HDD AUTO DETECTION" option. This then becomes the formatted geometry when you format it. When you take it back to the 486, it doesn't support LBA and supports only a max of 8 heads, any more than that won't work and when you try access the 9th head, it'll access the 1st instead. You found that it worked with chs 167,8,63 but it'll really work with any geometry with 63 spt as long as all the data is on the first cyl and on a head <= 8.