mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 23:52:26 +00:00
Resolved an unpredictable conditional and temporarily disabled the Zexalltest as part of the default suite, since it takes so long to run.
This commit is contained in:
parent
01f7394f7f
commit
7bddd294c9
@ -38,6 +38,11 @@
|
|||||||
BlueprintName = "Clock SignalTests"
|
BlueprintName = "Clock SignalTests"
|
||||||
ReferencedContainer = "container:Clock Signal.xcodeproj">
|
ReferencedContainer = "container:Clock Signal.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
<SkippedTests>
|
||||||
|
<Test
|
||||||
|
Identifier = "ZexallTests">
|
||||||
|
</Test>
|
||||||
|
</SkippedTests>
|
||||||
</TestableReference>
|
</TestableReference>
|
||||||
<TestableReference
|
<TestableReference
|
||||||
skipped = "YES">
|
skipped = "YES">
|
||||||
|
@ -190,9 +190,9 @@ template <class T> class Processor: public MicroOpScheduler<MicroOp> {
|
|||||||
std::vector<MicroOp *> instructions;
|
std::vector<MicroOp *> instructions;
|
||||||
std::vector<MicroOp> all_operations;
|
std::vector<MicroOp> all_operations;
|
||||||
std::vector<MicroOp> fetch_decode_execute;
|
std::vector<MicroOp> fetch_decode_execute;
|
||||||
bool increments_r;
|
uint8_t r_step_;
|
||||||
|
|
||||||
InstructionPage() : increments_r(true) {}
|
InstructionPage() : r_step_(1) {}
|
||||||
};
|
};
|
||||||
InstructionPage *current_instruction_page_;
|
InstructionPage *current_instruction_page_;
|
||||||
|
|
||||||
@ -648,8 +648,8 @@ template <class T> class Processor: public MicroOpScheduler<MicroOp> {
|
|||||||
assemble_base_page(fd_page_, iy_, true, fdcb_page_);
|
assemble_base_page(fd_page_, iy_, true, fdcb_page_);
|
||||||
assemble_ed_page(ed_page_);
|
assemble_ed_page(ed_page_);
|
||||||
|
|
||||||
fdcb_page_.increments_r = false;
|
fdcb_page_.r_step_ = 0;
|
||||||
ddcb_page_.increments_r = false;
|
ddcb_page_.r_step_ = 0;
|
||||||
|
|
||||||
assemble_fetch_decode_execute(base_page_, 4);
|
assemble_fetch_decode_execute(base_page_, 4);
|
||||||
assemble_fetch_decode_execute(dd_page_, 4);
|
assemble_fetch_decode_execute(dd_page_, 4);
|
||||||
@ -702,7 +702,7 @@ template <class T> class Processor: public MicroOpScheduler<MicroOp> {
|
|||||||
checkSchedule();
|
checkSchedule();
|
||||||
break;
|
break;
|
||||||
case MicroOp::DecodeOperation:
|
case MicroOp::DecodeOperation:
|
||||||
if(current_instruction_page_->increments_r) r_ = (r_ & 0x80) | ((r_ + 1) & 0x7f);
|
r_ = (r_ & 0x80) | ((r_ + current_instruction_page_->r_step_) & 0x7f);
|
||||||
pc_.full++;
|
pc_.full++;
|
||||||
decode_operation(is_halted_ ? 0x00 : operation_);
|
decode_operation(is_halted_ ? 0x00 : operation_);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user