could not change msb of stack limit register
This commit is contained in:
parent
2ecdc53061
commit
9d0bc9eea5
1 changed files with 5 additions and 4 deletions
9
bus.cpp
9
bus.cpp
|
@ -736,13 +736,14 @@ void bus::write(const uint16_t addr_in, const word_mode_t word_mode, uint16_t va
|
||||||
if (a == ADDR_STACKLIM || a == ADDR_STACKLIM + 1) { // stack limit register
|
if (a == ADDR_STACKLIM || a == ADDR_STACKLIM + 1) { // stack limit register
|
||||||
DOLOG(debug, true, "WRITE-I/O stack limit register %s: %03o", a & 1 ? "MSB" : "LSB", value);
|
DOLOG(debug, true, "WRITE-I/O stack limit register %s: %03o", a & 1 ? "MSB" : "LSB", value);
|
||||||
|
|
||||||
if (a == ADDR_STACKLIM + 1) {
|
uint16_t v = c->getStackLimitRegister();
|
||||||
uint16_t v = c->getStackLimitRegister();
|
|
||||||
|
|
||||||
|
if (a == ADDR_STACKLIM)
|
||||||
|
v = (v & 0xff00) | value;
|
||||||
|
else
|
||||||
v = (v & 0x00ff) | (value << 8);
|
v = (v & 0x00ff) | (value << 8);
|
||||||
|
|
||||||
c->setStackLimitRegister(v);
|
c->setStackLimitRegister(v);
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue