diff --git a/bus.cpp b/bus.cpp index ca066e9..d66dbc6 100644 --- a/bus.cpp +++ b/bus.cpp @@ -743,6 +743,8 @@ void bus::write(const uint16_t addr_in, const word_mode_t word_mode, uint16_t va else v = (v & 0x00ff) | (value << 8); + v |= 0377; + c->setStackLimitRegister(v); return; diff --git a/cpu.h b/cpu.h index 6eca542..2d9023f 100644 --- a/cpu.h +++ b/cpu.h @@ -32,7 +32,7 @@ private: uint16_t pc { 0 }; uint16_t psw { 0 }; uint16_t fpsr { 0 }; - uint16_t stackLimitRegister { 0 }; + uint16_t stackLimitRegister { 0377 }; uint64_t instruction_count { 0 }; uint64_t running_since { 0 };