Reply 200 of 2419, by truth_deleted
wrote:The IDE emulation is also reporting MHDD,EXE is sending command 0xEC while the IDE emulation is still working out command 0xEF.
I tried to optimize the Identify bytes to exclude DMA and other unused features while including NOP (excluded unchanged lines and corrected bytes 21 & 22):
//host_writew(sector+(21*2),4); /* ATA-1: ECC bytes on read/write long */
host_writew(sector+(21*2),512); /* disk cache in sectors */
host_writew(sector+(22*2),4); /* ATA-1: ECC bytes on read/write long */
host_writew(sector+(50*2),0x4000); /* Capabilities */
//host_writew(sector+(52*2),0x00F0);
host_writew(sector+(64*2),0x0003); /* PIO modes */
//host_writew(sector+(68*2),0x0078);
host_writew(sector+(82*2),0x4200); /* Feature sets here and below */
host_writew(sector+(83*2),0x4000);
host_writew(sector+(84*2),0x4000);
host_writew(sector+(85*2),0x4200);
host_writew(sector+(87*2),0x4000);
After these changes, MHDD no longer runs the CX test and hangs after detection on the EC command. I may have made one too many changes (in other parts). I'll test further. 😀
Edit: I wonder if MHDD is failing on a feature set check.
wrote:What is interesting is that the guide recommends using Intel's PCI drivers instead of the ones that come with Windows.
I tried to install that driver but dosbox isn't compatible (yet) with its signature. However, the MS driver seems to be working ok.
Edit: on further testing, found that a cache size of 512 sectors causes instability and slowdowns. A value of 8 or the current default of 4 is reasonable. However, the ECC bytes can be set at 24 bytes, at least according to an online source; I wonder whether IDE emulation requires ECC, in contrast to a physical drive. Perhaps the original settings were fine as is. 😀