1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-25 18:30:21 +00:00

Implements support for the trace flag.

This commit is contained in:
Thomas Harte 2019-04-29 19:02:59 -04:00
parent d6e16d0042
commit 3e34ae67f6

View File

@ -120,7 +120,12 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
// Either the micro-operations for this instruction have been exhausted, or
// no instruction was ongoing. Either way, do a standard instruction operation.
// TODO: unless an interrupt is pending, or the trap flag is set.
// TODO: is an interrupt pending?
if(trace_flag_) {
active_program_ = nullptr;
active_micro_op_ = exception_micro_ops_;
populate_trap_steps(9, get_status());
} else {
#ifdef LOG_TRACE
std::cout << std::setfill('0');
std::cout << (extend_flag_ ? 'x' : '-') << (negative_flag_ ? 'n' : '-') << (zero_result_ ? '-' : 'z');
@ -160,6 +165,7 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
}
}
}
}
auto bus_program = active_micro_op_->bus_program;
switch(active_micro_op_->action) {