From b0f69eea9576cb989a28e25f20aa3454a65c055a Mon Sep 17 00:00:00 2001 From: Paul Koning Date: Wed, 29 Mar 2023 20:07:26 -0400 Subject: [PATCH] PDP11: Support byte write access to DHCSR. This fixes issue #201, using a fix proposed bu Bjoren Davis. --- PDP11/pdp11_dh.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/PDP11/pdp11_dh.c b/PDP11/pdp11_dh.c index 030255cc..f22affdc 100644 --- a/PDP11/pdp11_dh.c +++ b/PDP11/pdp11_dh.c @@ -191,6 +191,17 @@ dh_wr(int32 data, int32 PA, int32 access) switch (PA & 017) { case 000: sim_debug (DBG_IO, &dh_dev, "WRITE DHSCR %06o\n", data); + if (access == WRITEB) { + /* Only writing one byte of "SCR" */ + if ((PA & 1) == 0) { + /* Even byte offset */ + data = (dh_scr & ~0377) | data; + } + else { + /* Odd byte offset */ + data = (dh_scr & 0377) | (data << 8); + } + } dh_scr = data; if (data & MCLR) dh_reset (&dh_dev);