1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-03 11:30:02 +00:00

Corrects calculated-address TAS.

This commit is contained in:
Thomas Harte 2019-04-25 12:42:05 -04:00
parent 8557e563bc
commit 5725db9234
2 changed files with 8 additions and 2 deletions

View File

@ -88,7 +88,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) {
default:
std::cerr << "Unhandled 68000 micro op action " << std::hex << active_micro_op_->action << std::endl;
std::cerr << "Unhandled 68000 micro op action " << std::hex << active_micro_op_->action << " within instruction " << decoded_instruction_ << std::endl;
break;
case int(MicroOp::Action::None): break;
@ -1059,6 +1059,12 @@ template <class T, bool dtack_is_implicit, bool signal_will_perform> void Proces
#undef asr
#undef set_neg_zero_overflow
#define set_neg_zero_overflow(v, m) \
zero_result_ = (v); \
negative_flag_ = zero_result_ & (m); \
overflow_flag_ = 0;
#undef set_flags
#define set_flags(v, m, t) \
zero_result_ = v; \

View File

@ -743,7 +743,7 @@ struct ProcessorStorageConstructor {
case XXXw: // TAS (xxx).w
case d16An: // TAS (d16, An)
case d8AnXn: // TAS (d8, An, Xn)
op(address_action_for_mode(mode), seq("np nrd", { ea(1) }, false));
op(address_action_for_mode(mode) | MicroOp::DestinationMask, seq("np nrd", { ea(1) }, false));
op(Action::PerformOperation, seq("tas np", { ea(1) }, false));
break;
}