Catch another couple of Z80 timing issues

This commit is contained in:
Adrian Conlon
2025-08-05 00:14:05 +01:00
parent 796042acdf
commit 350483fcec
2 changed files with 13 additions and 6 deletions

View File

@@ -201,15 +201,15 @@
var interestingCycleData = expectedCycle.Value is not null;
if (interestingCycleData)
{
var expectedAddress = expectedCycle.Address;
var actualAddress = actualCycle.Address;
_ = this.Check("Cycle address", expectedAddress, actualAddress);
var expectedValue = expectedCycle.Value ?? throw new InvalidOperationException("Expected cycle value cannot be null.");
var actualValue = actualCycle.Value ?? throw new InvalidOperationException("Actual cycle value cannot be null.");
_ = this.Check("Cycle value", expectedValue, actualValue);
}
var expectedAddress = expectedCycle.Address;
var actualAddress = actualCycle.Address;
_ = this.Check("Cycle address", expectedAddress, actualAddress);
var expectedAction = expectedCycle.Type;
var actualAction = actualCycle.Type;
_ = this.Check("Cycle action", expectedAction, actualAction);

View File

@@ -1225,7 +1225,14 @@ namespace Z80
this.FetchDisplacement();
}
this.R(y, this.FetchByte(), 3); // LD r,n
{
var value = this.FetchByte(); // LD r,n
if (memoryY)
{
this.Tick(2);
}
this.R(y, value);
}
break;
case 7: // Assorted operations on accumulator/flags
@@ -1315,7 +1322,7 @@ namespace Z80
if (normal)
{
var value = this.R(z);
this.R(y, value, 1);
this.R(y, value);
}
}
else