mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 23:52:26 +00:00
Implements the bitwise operators.
This commit is contained in:
parent
9ce9167e3c
commit
ebff83018e
@ -293,6 +293,7 @@ template <typename BusHandler> void Processor<BusHandler>::run_for(const Cycles
|
|||||||
#define m_top() (instruction_buffer_.value >> m_shift_) & 0xff
|
#define m_top() (instruction_buffer_.value >> m_shift_) & 0xff
|
||||||
#define x_top() (x_.full >> x_shift_) & 0xff
|
#define x_top() (x_.full >> x_shift_) & 0xff
|
||||||
#define y_top() (y_.full >> x_shift_) & 0xff
|
#define y_top() (y_.full >> x_shift_) & 0xff
|
||||||
|
#define a_top() (a_.full >> m_shift_) & 0xff
|
||||||
|
|
||||||
case OperationPerform:
|
case OperationPerform:
|
||||||
switch(active_instruction_->operation) {
|
switch(active_instruction_->operation) {
|
||||||
@ -443,10 +444,28 @@ template <typename BusHandler> void Processor<BusHandler>::run_for(const Cycles
|
|||||||
flags_.set_nz(y_top());
|
flags_.set_nz(y_top());
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Bitwise operations.
|
||||||
|
//
|
||||||
|
|
||||||
|
case AND:
|
||||||
|
a_.full &= instruction_buffer_.value | m_masks_[0];
|
||||||
|
flags_.set_nz(a_top());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case EOR:
|
||||||
|
a_.full ^= instruction_buffer_.value;
|
||||||
|
flags_.set_nz(a_top());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ORA:
|
||||||
|
a_.full |= instruction_buffer_.value;
|
||||||
|
flags_.set_nz(a_top());
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// ADC, AND, BIT, CMP, CPX, CPY, EOR, ORA, SBC,
|
// ADC, BIT, CMP, CPX, CPY, SBC,
|
||||||
// PLP,
|
// PLP,
|
||||||
// PHB, PHP, PHD, PHK,
|
// PHB, PHP, PHD, PHK,
|
||||||
// ASL, LSR, ROL, ROR, TRB, TSB,
|
// ASL, LSR, ROL, ROR, TRB, TSB,
|
||||||
@ -473,6 +492,7 @@ template <typename BusHandler> void Processor<BusHandler>::run_for(const Cycles
|
|||||||
#undef m_top
|
#undef m_top
|
||||||
#undef x_top
|
#undef x_top
|
||||||
#undef y_top
|
#undef y_top
|
||||||
|
#undef a_top
|
||||||
|
|
||||||
number_of_cycles -= bus_handler_.perform_bus_operation(bus_operation, bus_address, bus_value);
|
number_of_cycles -= bus_handler_.perform_bus_operation(bus_operation, bus_address, bus_value);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user