diff --git a/OSBindings/Mac/Clock SignalTests/AllSuiteATests.swift b/OSBindings/Mac/Clock SignalTests/AllSuiteATests.swift index 46e56546a..684641121 100644 --- a/OSBindings/Mac/Clock SignalTests/AllSuiteATests.swift +++ b/OSBindings/Mac/Clock SignalTests/AllSuiteATests.swift @@ -24,9 +24,7 @@ class AllSuiteATests: XCTestCase { machine.runForNumber(ofCycles: 1000) } - if machine.value(forAddress: 0x0210) != 0xff { - NSException(name: NSExceptionName(rawValue: "Failed AllSuiteA"), reason: "Failed test \(machine.value(forAddress: 0x0210))", userInfo: nil).raise() - } + XCTAssert(machine.value(forAddress: 0x0210) == 0xff, "Failed test \(machine.value(forAddress: 0x0210))") } } } diff --git a/Processors/6502/CPU6502.hpp b/Processors/6502/CPU6502.hpp index 20f2888ea..960921064 100644 --- a/Processors/6502/CPU6502.hpp +++ b/Processors/6502/CPU6502.hpp @@ -620,7 +620,8 @@ template class Processor { _interrupt_requests = (_interrupt_requests & ~InterruptRequestFlags::IRQ) | _irq_request_history; \ _irq_request_history = _irq_line & _inverseInterruptFlag; \ number_of_cycles -= static_cast(this)->perform_bus_operation(nextBusOperation, busAddress, busValue); \ - nextBusOperation = BusOperation::None; + nextBusOperation = BusOperation::None; \ + if(number_of_cycles <= 0) break; checkSchedule(); number_of_cycles += _cycles_left_to_run; @@ -639,7 +640,7 @@ template class Processor { bus_access(); } - while(number_of_cycles > 0) { + while(1) { const MicroOp cycle = program[scheduleProgramProgramCounter]; scheduleProgramProgramCounter++;