C64: Perform sync check before shifting.
This commit is contained in:
parent
64ded912df
commit
cff1708be6
|
@ -101,16 +101,8 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.Serial
|
||||||
_diskSupplementaryCounter++;
|
_diskSupplementaryCounter++;
|
||||||
if ((_diskSupplementaryCounter & 0x3) == 0x2)
|
if ((_diskSupplementaryCounter & 0x3) == 0x2)
|
||||||
{
|
{
|
||||||
_byteReady = false;
|
|
||||||
_bitsRemainingInLatchedByte--;
|
_bitsRemainingInLatchedByte--;
|
||||||
if (_bitsRemainingInLatchedByte <= 0)
|
_byteReady = false;
|
||||||
{
|
|
||||||
_bitsRemainingInLatchedByte = 8;
|
|
||||||
|
|
||||||
// SOE (sync output enabled)
|
|
||||||
_byteReady = Via1.Ca2;
|
|
||||||
}
|
|
||||||
|
|
||||||
_bitHistory = (_bitHistory << 1) | ((_diskSupplementaryCounter & 0xC) == 0x0 ? 1 : 0);
|
_bitHistory = (_bitHistory << 1) | ((_diskSupplementaryCounter & 0xC) == 0x0 ? 1 : 0);
|
||||||
_sync = false;
|
_sync = false;
|
||||||
if (Via1.Cb2 && (_bitHistory & 0x3FF) == 0x3FF)
|
if (Via1.Cb2 && (_bitHistory & 0x3FF) == 0x3FF)
|
||||||
|
@ -120,6 +112,14 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.Serial
|
||||||
_byteReady = false;
|
_byteReady = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_bitsRemainingInLatchedByte <= 0)
|
||||||
|
{
|
||||||
|
_bitsRemainingInLatchedByte = 8;
|
||||||
|
|
||||||
|
// SOE (sync output enabled)
|
||||||
|
_byteReady = Via1.Ca2;
|
||||||
|
}
|
||||||
|
|
||||||
// negative transition activates SO pin on CPU
|
// negative transition activates SO pin on CPU
|
||||||
_previousCa1 = Via1.Ca1;
|
_previousCa1 = Via1.Ca1;
|
||||||
Via1.Ca1 = !_byteReady;
|
Via1.Ca1 = !_byteReady;
|
||||||
|
|
Loading…
Reference in New Issue