From ab1cf139dcecea03b8aff580e004484a3b80c75f Mon Sep 17 00:00:00 2001 From: folkert van heusden Date: Sun, 10 Apr 2022 21:11:29 +0200 Subject: [PATCH] stack limit register write fix --- bus.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bus.cpp b/bus.cpp index 1d65b2b..adba46d 100644 --- a/bus.cpp +++ b/bus.cpp @@ -389,12 +389,12 @@ uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, cons if (a == 0177774 || a == 0177775) { // stack limit register D(fprintf(stderr, "writeb Set stack limit register: %o\n", value);) - uint16_t v = c -> getStackLimitRegister(); + uint16_t v = c -> getStackLimitRegister(); if (a & 1) - v = (v & 0xff00) | value; - else v = (v & 0x00ff) | (value << 8); + else + v = (v & 0xff00) | value; c -> setStackLimitRegister(v); return v; @@ -403,7 +403,7 @@ uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, cons else { if (a == 0177776) { // PSW D(fprintf(stderr, "write PSW %o\n", value);) - c -> setPSW(value, false); + c -> setPSW(value, false); return value; }