From 9047932b8158f2aa89725b74830a2db85a6fc873 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Thu, 15 Aug 2019 23:28:30 -0400 Subject: [PATCH] Corrected basic error. Arbitration now seems to succeed. This is seemingly followed by a pattern of signalling BUSY+SEL followed by just SEL with the various other potential device IDs in turn. To which nothing ever responds as currently implemented. --- Components/5380/ncr5380.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Components/5380/ncr5380.cpp b/Components/5380/ncr5380.cpp index 954e2d5e1..ec794085a 100644 --- a/Components/5380/ncr5380.cpp +++ b/Components/5380/ncr5380.cpp @@ -66,7 +66,7 @@ void NCR5380::write(int address, uint8_t value) { if(mode_ & 1) { if(state_ == ExecutionState::None) { set_execution_state(ExecutionState::WatchingBusy); - arbitration_in_progress_ = false; + arbitration_in_progress_ = true; lost_arbitration_ = false; } } else { @@ -118,7 +118,7 @@ uint8_t NCR5380::read(int address) { return uint8_t(bus_.get_state()); case 1: - LOG("[SCSI 1] Initiator command register get"); + LOG("[SCSI 1] Initiator command register get: " << (arbitration_in_progress_ ? 'p' : '-') << (lost_arbitration_ ? 'l' : '-')); return // Bits repeated as they were set. (initiator_command_ & ~0x60) |