diff --git a/Processors/RegisterSizes.hpp b/Processors/RegisterSizes.hpp index c9e522182..4c407e920 100644 --- a/Processors/RegisterSizes.hpp +++ b/Processors/RegisterSizes.hpp @@ -14,6 +14,9 @@ namespace CPU { union RegisterPair { + RegisterPair(uint16_t v) : full(v) {} + RegisterPair() {} + uint16_t full; struct { uint8_t low, high; diff --git a/Processors/Z80/Z80.hpp b/Processors/Z80/Z80.hpp index ecc9edb6f..c475d1718 100644 --- a/Processors/Z80/Z80.hpp +++ b/Processors/Z80/Z80.hpp @@ -638,7 +638,16 @@ template class Processor: public MicroOpScheduler { } public: - Processor() : MicroOpScheduler(), is_halted_(false) { + Processor() : MicroOpScheduler(), + is_halted_(false), + sp_(0xffff), + pc_(0x0000), + a_(0xff), + interrupt_mode_(0), + iff1_(false), + iff2_(false) { + set_flags(0xff); + assemble_base_page(base_page_, hl_, false, cb_page_); assemble_base_page(dd_page_, ix_, true, ddcb_page_); assemble_base_page(fd_page_, iy_, true, fdcb_page_);