From 29faba1902681061fd0b6f2b0abe83da1ae74af3 Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Thu, 16 Apr 2020 20:42:08 +0300 Subject: [PATCH] abc80x: Fixed the ABC 850/852/856 hard disk drives. [Curt Coder] --- src/devices/bus/abcbus/lux21056.cpp | 15 +++++++++------ src/devices/bus/abcbus/lux21056.h | 1 + src/mame/drivers/abc80x.cpp | 1 - 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/devices/bus/abcbus/lux21056.cpp b/src/devices/bus/abcbus/lux21056.cpp index c5acc016e98..30a5ee1d258 100644 --- a/src/devices/bus/abcbus/lux21056.cpp +++ b/src/devices/bus/abcbus/lux21056.cpp @@ -204,7 +204,7 @@ WRITE_LINE_MEMBER( luxor_55_21056_device::write_sasi_bsy ) if (m_sasi_bsy) { - m_sasibus->write_sel(!m_sasi_bsy); + m_sasibus->write_sel(0); } } @@ -228,7 +228,8 @@ WRITE_LINE_MEMBER( luxor_55_21056_device::write_sasi_req ) if (m_sasi_req) { - m_sasibus->write_ack(!m_sasi_req); + m_req = 0; + m_sasibus->write_ack(!m_req); } } @@ -511,8 +512,8 @@ READ8_MEMBER( luxor_55_21056_device::sasi_status_r ) data |= m_rdy ^ STAT_DIR; - data |= !m_sasi_req << 1; - data |= !m_sasi_io << 2; + data |= (m_req || m_sasi_req) << 1; + data |= m_sasi_io << 2; data |= !m_sasi_cd << 3; data |= !m_sasi_msg << 4; data |= !m_sasi_bsy << 5; @@ -567,7 +568,8 @@ READ8_MEMBER( luxor_55_21056_device::sasi_data_r ) { uint8_t data = m_sasi_data_in->read(); - m_sasibus->write_ack(!m_sasi_req); + m_req = !m_sasi_req; + m_sasibus->write_ack(!m_req); return data; } @@ -586,7 +588,8 @@ WRITE8_MEMBER( luxor_55_21056_device::sasi_data_w ) m_sasi_data_out->write(m_sasi_data); } - m_sasibus->write_ack(!m_sasi_req); + m_req = !m_sasi_req; + m_sasibus->write_ack(!m_req); } diff --git a/src/devices/bus/abcbus/lux21056.h b/src/devices/bus/abcbus/lux21056.h index 7103fa5ba9c..e9976307b0a 100644 --- a/src/devices/bus/abcbus/lux21056.h +++ b/src/devices/bus/abcbus/lux21056.h @@ -89,6 +89,7 @@ private: int m_cs; int m_rdy; + int m_req; int m_sasi_req; int m_sasi_io; int m_sasi_cd; diff --git a/src/mame/drivers/abc80x.cpp b/src/mame/drivers/abc80x.cpp index 5300abf869c..76bc054ce40 100644 --- a/src/mame/drivers/abc80x.cpp +++ b/src/mame/drivers/abc80x.cpp @@ -141,7 +141,6 @@ Notes: TODO: - - abc850 is broken - abc806 30K banking - cassette - abc800 video card bus