diff --git a/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp b/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp index 1c5be2c87..249d15fd1 100644 --- a/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp +++ b/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp @@ -241,6 +241,19 @@ void Processor> 1) & 1)) { \ - bus_error_ = x; \ - exception_vector_ = berr_ ? InstructionSet::M68k::AccessFault : InstructionSet::M68k::AddressError; \ - MoveToStateSpecific(BusOrAddressErrorException); \ + if(berr_) { \ + RaiseBusOrAddressError(AccessFault, x); \ } \ if(vpa_) { \ x.length = HalfCycles(20) + (HalfCycles(20) + (e_clock_phase_ - time_remaining_) % HalfCycles(20)) % HalfCycles(20); \ @@ -288,13 +299,16 @@ void Processor> 1) & 1) { \ + RaiseBusOrAddressError(AddressError, perform); \ + } \ + PerformBusOperation(announce); \ + WaitForDTACK(announce); \ CompleteAccess(perform); // Sets up the next data access size and read flags. @@ -322,12 +336,6 @@ void Processor