1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-27 16:31:31 +00:00

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.
This commit is contained in:
Thomas Harte 2019-08-15 23:28:30 -04:00
parent f668e4a54c
commit 9047932b81

View File

@ -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) |