From 076575c405c2c2bc896a3c7208896d19c694311c Mon Sep 17 00:00:00 2001
From: folkert van heusden <mail@vanheusden.com>
Date: Sat, 18 Mar 2023 19:12:42 +0100
Subject: [PATCH] corrected(?) SYSSIZE registers

---
 bus.cpp | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/bus.cpp b/bus.cpp
index 935f95e..0759662 100644
--- a/bus.cpp
+++ b/bus.cpp
@@ -258,11 +258,15 @@ uint16_t bus::read(const uint16_t a, const bool word_mode, const bool use_prev,
 		// LO size register field must be all 1s, so subtract 1
 		constexpr uint32_t system_size = n_pages * 8192 / 64 - 1;
 
-		if (a == ADDR_SYSSIZE + 2)  // system size HI
-			return system_size >> 16;
+		if (a == ADDR_SYSSIZE + 2) {  // system size HI
+                        printf("accessing system size HI\r\n");
+			return ((system_size >> 6) - 1) >> 16;
+		}
 
-		if (a == ADDR_SYSSIZE)  // system size LO
-			return system_size & 65535;
+		if (a == ADDR_SYSSIZE) {  // system size LO
+                        printf("accessing system size LO\r\n");
+			return (system_size >> 6) - 1;
+		}
 
 		if (a & 1)
 			DOLOG(debug, !peek_only, "bus::readWord: odd address UNHANDLED %o", a);