1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-09-29 16:55:59 +00:00

Adds all remaining simple scalar fields.

This commit is contained in:
Thomas Harte 2020-05-16 22:47:04 -04:00
parent ff3c2fdc59
commit 6f16928215
2 changed files with 18 additions and 6 deletions

View File

@ -35,12 +35,6 @@ State::State(const ProcessorBase &src): State() {
// TODO:
// execution_state_
// last_trace_flag_
// pending_interrupt_level_
// accepted_interrupt_level_
// is_starting_interrupt_
// dbcc_false_address_
// next_word_
// active_[program_/micro_op_/step_]
// Execution state.
@ -49,6 +43,12 @@ State::State(const ProcessorBase &src): State() {
execution_state.effective_address[1] = src.effective_address_[1].full;
execution_state.source_data = src.source_bus_data_[0].full;
execution_state.destination_data = src.destination_bus_data_[0].full;
execution_state.last_trace_flag = src.last_trace_flag_;
execution_state.next_word = src.next_word_;
execution_state.dbcc_false_address = src.dbcc_false_address_;
execution_state.is_starting_interrupt = src.is_starting_interrupt_;
execution_state.pending_interrupt_level = uint8_t(src.pending_interrupt_level_);
execution_state.accepted_interrupt_level = uint8_t(src.accepted_interrupt_level_);
}
void State::apply(ProcessorBase &target) {
@ -94,5 +94,11 @@ State::ExecutionState::ExecutionState() {
DeclareField(effective_address);
DeclareField(source_data);
DeclareField(destination_data);
DeclareField(last_trace_flag);
DeclareField(next_word);
DeclareField(dbcc_false_address);
DeclareField(is_starting_interrupt);
DeclareField(pending_interrupt_level);
DeclareField(accepted_interrupt_level);
}
}

View File

@ -65,6 +65,12 @@ struct State: public Reflection::StructImpl<State> {
uint32_t effective_address[2];
uint32_t source_data;
uint32_t destination_data;
bool last_trace_flag;
uint16_t next_word;
uint32_t dbcc_false_address;
bool is_starting_interrupt;
uint8_t pending_interrupt_level;
uint8_t accepted_interrupt_level;
ExecutionState();
} execution_state;