From 28669c5007857c8a9034f12a88ba7038ae897cc1 Mon Sep 17 00:00:00 2001 From: holub Date: Tue, 14 Feb 2023 14:44:07 -0500 Subject: bus/ata/atahle.cpp: Reset error state on writing CS0 command. (#10869) Also added constants for standby commands (not implemented yet). --- src/devices/bus/ata/atahle.cpp | 9 +++++---- src/devices/bus/ata/atahle.h | 2 ++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/devices/bus/ata/atahle.cpp b/src/devices/bus/ata/atahle.cpp index 0ba22e2773b..2c6bb724d61 100644 --- a/src/devices/bus/ata/atahle.cpp +++ b/src/devices/bus/ata/atahle.cpp @@ -583,10 +583,6 @@ uint16_t ata_hle_device::read_dma() uint16_t ata_hle_device::read_cs0(offs_t offset, uint16_t mem_mask) { - /* logit */ -// if (offset != IDE_CS0_DATA_RW && offset != IDE_CS0_STATUS_R) - LOG(("%s:IDE cs0 read at %X, mem_mask=%X\n", machine().describe_context(), offset, mem_mask)); - uint16_t result = 0xffff; if (device_selected() || m_single_device) @@ -695,6 +691,10 @@ uint16_t ata_hle_device::read_cs0(offs_t offset, uint16_t mem_mask) } } + /* logit */ +// if (offset != IDE_CS0_DATA_RW && offset != IDE_CS0_STATUS_R) + LOG(("%s:IDE cs0 read %X at %X (err: %X), mem_mask=%X\n", machine().describe_context(), result, offset, m_error, mem_mask)); + /* return the result */ return result; } @@ -890,6 +890,7 @@ void ata_hle_device::write_cs0(offs_t offset, uint16_t data, uint16_t mem_mask) else if (device_selected() || m_command == IDE_COMMAND_DIAGNOSTIC) { m_command = data; + m_error = IDE_ERROR_NONE; /* implicitly clear interrupts & dmarq here */ set_irq(CLEAR_LINE); diff --git a/src/devices/bus/ata/atahle.h b/src/devices/bus/ata/atahle.h index 5fcfa90c478..46c1db7887d 100644 --- a/src/devices/bus/ata/atahle.h +++ b/src/devices/bus/ata/atahle.h @@ -120,7 +120,9 @@ protected: IDE_COMMAND_SET_BLOCK_COUNT = 0xc6, IDE_COMMAND_READ_DMA = 0xc8, IDE_COMMAND_WRITE_DMA = 0xca, + IDE_COMMAND_STANDBY_IMMEDIATE = 0xe0, IDE_COMMAND_IDLE_IMMEDIATE = 0xe1, + IDE_COMMAND_STANDBY = 0xe2, IDE_COMMAND_IDLE = 0xe3, IDE_COMMAND_CHECK_POWER_MODE = 0xe5, IDE_COMMAND_CACHE_FLUSH = 0xe7, -- cgit v1.2.3