First post, by superfury
Is there an ATA-1 BIOS(with only the documented commands) out there? I'm emulating an ATA-1 device(from the official documentation) connected to a PCI controller to change I/O port addressing. All I can find is the XT-IDE BIOS, which doesn't use the port 1Fx/3Fx ports (and uses undocumented commands). I'm trying to fix my hard disk ATA-1 disk emulation, but the XT-IDE BIOS will hang trying to seek somewhere (keeps seeking over and over again to the same location). It also won't use the PCI to set it up (I have to hardcode the default base PCI port to port 0x300 instead of value 0 in BAR1 to get it using the HDC). I need a BIOS that uses the actual ATA-1 specified commands (which I'm able to check and verify using the ATA-1 documentation) and runs on a PC XT(80(1)86 processor).
The XT-IDE BIOS starts executing some unknown command when I change the first byte to something else than 0x40. Currently it executes a IDENTIFY, followed by a CALIBRATE command and finished with a SEEK command (which repeats infinitely).
My current source code of my ATA-1 emulation (basic I/O without timing only(since timing is unknown it's disabled for now)):
https://bitbucket.org/superfury/x86emu/src/7b … ide.c?at=master
Anyone knows a ATA-1 BIOS that I can use to verify my ATA-1 emulation?
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io