mirror of
https://github.com/TomHarte/CLK.git
synced 2024-08-16 16:28:59 +00:00
Merge pull request #66 from TomHarte/CheckOnlyWhenNeeded
Takes one more test out of the operation loop
This commit is contained in:
commit
1333a42a78
@ -24,9 +24,7 @@ class AllSuiteATests: XCTestCase {
|
|||||||
machine.runForNumber(ofCycles: 1000)
|
machine.runForNumber(ofCycles: 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
if machine.value(forAddress: 0x0210) != 0xff {
|
XCTAssert(machine.value(forAddress: 0x0210) == 0xff, "Failed test \(machine.value(forAddress: 0x0210))")
|
||||||
NSException(name: NSExceptionName(rawValue: "Failed AllSuiteA"), reason: "Failed test \(machine.value(forAddress: 0x0210))", userInfo: nil).raise()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -620,7 +620,8 @@ template <class T> class Processor {
|
|||||||
_interrupt_requests = (_interrupt_requests & ~InterruptRequestFlags::IRQ) | _irq_request_history; \
|
_interrupt_requests = (_interrupt_requests & ~InterruptRequestFlags::IRQ) | _irq_request_history; \
|
||||||
_irq_request_history = _irq_line & _inverseInterruptFlag; \
|
_irq_request_history = _irq_line & _inverseInterruptFlag; \
|
||||||
number_of_cycles -= static_cast<T *>(this)->perform_bus_operation(nextBusOperation, busAddress, busValue); \
|
number_of_cycles -= static_cast<T *>(this)->perform_bus_operation(nextBusOperation, busAddress, busValue); \
|
||||||
nextBusOperation = BusOperation::None;
|
nextBusOperation = BusOperation::None; \
|
||||||
|
if(number_of_cycles <= 0) break;
|
||||||
|
|
||||||
checkSchedule();
|
checkSchedule();
|
||||||
number_of_cycles += _cycles_left_to_run;
|
number_of_cycles += _cycles_left_to_run;
|
||||||
@ -639,7 +640,7 @@ template <class T> class Processor {
|
|||||||
bus_access();
|
bus_access();
|
||||||
}
|
}
|
||||||
|
|
||||||
while(number_of_cycles > 0) {
|
while(1) {
|
||||||
|
|
||||||
const MicroOp cycle = program[scheduleProgramProgramCounter];
|
const MicroOp cycle = program[scheduleProgramProgramCounter];
|
||||||
scheduleProgramProgramCounter++;
|
scheduleProgramProgramCounter++;
|
||||||
|
Loading…
Reference in New Issue
Block a user