OK. I checked all disk geometry information to ensure it was correct. I added a test program to the DOSLIB who's job is to query Drive C using INT 13h, Fixed Disk Parameter Table, and CMOS, and show all the geometry obtained for comparison. It all matches the behavior I see in VirtualBox and QEMU: All three sources show the geometry or if >= 512MB, translated versions of the geometry, while querying the IDE controller shows the actual geometry. I also modified the hard disk emulation to remove as many of the fields as possible to emulate only what ATA-2 describes. So at this time, I'm still at a complete loss what the hell Windows 95 doesn't like about the IDE emulation.
As for DOSLIB, I will be hosting it on my website http://hackipedia.org from now on and posting updates there, instead of filling this thread with updates. This thread covers DOSBox-x not DOSLIB. Right?
Last non-hackipedia posted link: http://jon.nerdgrounds.com/doslib/1477. Future versions will appear on the hackipedia website when they are released.
What's new in this DOSLIB release:
- Added PCI Express support library.
- Added code to ACPI demonstration program to show PCI Express MCFG tables.
- Fixed bug in SMBIOS program that prevented reading SMBIOS data from 32-bit
- Fixed makefile mistake that caused both TEST and MODESET programs in hw\vesa
to be the test program.
- Started experimental USB OHCI Host Controller library in hw\usb\ohci to
demonstrate programming and communicating with USB controllers. The program
is able to scan PCI and PCI-E busses to locate OHCI controllers, and then
query, reset, and change ownership to/from the BIOS as well as detect cases
where the BIOS may be using the USB controller for "Legacy Keyboard/Mouse"
emulation. All I have yet to figure out is why an ancient (2000-ish) IBM
NetVista is having no problem handing off OHCI control, but having problems
taking back control when we want it to. To put it another way, if you're
using a USB keyboard on the thing don't expect a responsive keyboard after
you run the test program.
- Added code to IDE test program to show C/H/S geometry and total sectors counts
from "Identify Device" command.
- Added test program to hw\biosdisk to read drive C geometry via INT 13h, through
the Fixed Disk Parameter Table, and from CMOS, and show them all to you so that
you can do comparative analysis and look for flaws. Helped me verify that DOSBox-x
is returning values correctly, but still didn't help with the problem of Windows
95 refusing to talk to my IDE emulation