1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-08-17 07:29:04 +00:00
CLK/Processors/68000Mk2/Implementation/68000Mk2Storage.hpp

50 lines
1014 B
C++
Raw Normal View History

2022-05-16 15:44:16 +00:00
//
// 68000Mk2Storage.hpp
// Clock Signal
//
// Created by Thomas Harte on 16/05/2022.
// Copyright © 2022 Thomas Harte. All rights reserved.
//
#ifndef _8000Mk2Storage_h
#define _8000Mk2Storage_h
#include "../../../InstructionSets/M68k/Status.hpp"
#include "../../../InstructionSets/M68k/Decoder.hpp"
2022-05-16 15:44:16 +00:00
namespace CPU {
namespace MC68000Mk2 {
struct ProcessorBase {
enum State: int {
Reset = -1,
Dispatch = -2,
WaitForDTACK = -3,
};
int state_ = State::Reset;
2022-05-16 15:44:16 +00:00
HalfCycles time_remaining_;
int post_dtack_state_ = 0;
int is_supervisor_ = 1;
InstructionSet::M68k::Predecoder<InstructionSet::M68k::Model::M68000> decoder_;
InstructionSet::M68k::Preinstruction instruction_;
uint16_t opcode_;
InstructionSet::M68k::Status status_;
SlicedInt32 program_counter_;
SlicedInt32 registers_[16]; // D0D7 followed by A0A7.
SlicedInt32 stack_pointers_[2];
bool dtack_ = false;
bool vpa_ = false;
bool berr_ = false;
SlicedInt16 prefetch_[2];
2022-05-16 15:44:16 +00:00
};
}
}
#endif /* _8000Mk2Storage_h */