Switch to full style
Tools for hard drive diagnostics, repair, and data recovery
Post a reply

problem about VMWare-guset-os emulate ATA-Controller

March 22nd, 2012, 1:49

Recently, I was trying to operate ATA-hard-disk with the lowest level way(i.e PIO ATA COMMAND)
There's some problems make me perplexed after I run my code under VMWare-guest-WindowsXP.
incorrect code: (Victoria checked already, Master 0x1F0 Slave 0x170)
1. Status Register READ (no ATA-hard-disk attached to PCI-ATA-Controller)
INCORRECT CODE: mov dx, 0x1F7 in AL, dx
RESULT: always got 0x7F in Register AL (0x7F: BSY is 0, DRQ is 1, so couldn't send command to Port 0x1F7)
But at the same time:
CODE: mov dx, 0x177 in AL, dx
RESULT: got 0x50 in Register AL (indicate ATA-Controler assertive that It could receive ATA-command now)
2. Status Register READ (with an ATA-hard-disk attached to PCI-ATA-Controller)
INCORRECT CODE: mov dx, 0x1F7 in ax, dx
CORRECT CODE: mov dx, 0x1F7 in al, dx
RESULT: VMWare stoped itself with an error, NOT a GUEST-OS crash(BSOD).
3. Control Register WRITE (Software Reset with send SRST(value:0x4) singnal to Control Register(port:0x3F6))
INCORRECT CODE: mov al, 0x04 mov dx, 0x3F6 out dx, al
RESULT: VMWare stoped itself with an error, NOT a GUEST-OS crash(BSOD).
Any info on this will be appreciated !
Post a reply