Странную вещь наблюдаю в эмуляторе. При сбросе, спринтер дает команду #00 жесткому диску. Такой команды в ATA интерфейсе не существует.
Код, который производит вывод в порт находится по адресу #969F:
никто не знает что это может быть?Код:969F LD E,#00 96A1 LD BC,#4153 96A4 OUT (C),E 96A6 HALT
Вот весь лог обмена с ATA контроллером от сброса до ошибки:
ATA00 - это адрес устройства на АТА шине, 00 - это мастерКод:[23:55:07.322][VirtualMachine.runThreadProc][DEBUG] AtaPort.Write(HeadAndDrive, 0xA0) [23:55:07.327][VirtualMachine.runThreadProc][DEBUG] AtaPort.Write(HeadAndDrive, 0xA0) [23:55:07.328][VirtualMachine.runThreadProc][DEBUG] AtaPort.Read(CommandStatus) = 0x50 [23:55:07.328][VirtualMachine.runThreadProc][DEBUG] AtaPort.Write(SectorCount, 0x05) [23:55:07.329][VirtualMachine.runThreadProc][DEBUG] AtaPort.Read(SectorCount) = 0x05 [23:55:07.329][VirtualMachine.runThreadProc][DEBUG] AtaPort.Write(CommandStatus, 0x00) [23:55:07.331][VirtualMachine.runThreadProc][ERROR] ATA00: Unknown ATA command #00 [23:55:07.337][VirtualMachine.runThreadProc][DEBUG] AtaPort.Read(CommandStatus) = 0x51 [23:55:07.337][VirtualMachine.runThreadProc][DEBUG] AtaPort.Write(CommandStatus, 0xEC) [23:55:07.338][VirtualMachine.runThreadProc][DEBUG] AtaPort.Read(CommandStatus) = 0x58





