corrected(?) SYSSIZE registers

This commit is contained in:
folkert van heusden 2023-03-18 19:12:42 +01:00
parent 020764b22c
commit 076575c405
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1

12
bus.cpp
View file

@ -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);