duplicate memory size check removed

This commit is contained in:
folkert van heusden 2024-06-20 07:14:15 +02:00
parent fcff5f8372
commit e120309458
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1
2 changed files with 8 additions and 4 deletions

View file

@ -873,7 +873,9 @@ void bus::write_word(const uint16_t a, const uint16_t value, const d_i_space_t s
uint8_t bus::read_unibus_byte(const uint32_t a) uint8_t bus::read_unibus_byte(const uint32_t a)
{ {
uint8_t v = m->read_byte(a); uint8_t v = 0;
if (a < m->get_memory_size())
v = m->read_byte(a);
TRACE("read_unibus_byte[%08o]=%03o", a, v); TRACE("read_unibus_byte[%08o]=%03o", a, v);
return v; return v;
} }
@ -881,5 +883,7 @@ uint8_t bus::read_unibus_byte(const uint32_t a)
void bus::write_unibus_byte(const uint32_t a, const uint8_t v) void bus::write_unibus_byte(const uint32_t a, const uint8_t v)
{ {
TRACE("write_unibus_byte[%08o]=%03o", a, v); TRACE("write_unibus_byte[%08o]=%03o", a, v);
m->write_byte(a, v);
if (a < m->get_memory_size())
m->write_byte(a, v);
} }

View file

@ -26,8 +26,8 @@ public:
static memory *deserialize(const JsonVariantConst j); static memory *deserialize(const JsonVariantConst j);
uint16_t read_byte(const uint32_t a) const { return m[a]; } uint16_t read_byte(const uint32_t a) const { return m[a]; }
void write_byte(const uint32_t a, const uint16_t v) { if (a < size) m[a] = v; } void write_byte(const uint32_t a, const uint16_t v) { m[a] = v; }
uint16_t read_word(const uint32_t a) const { return m[a] | (m[a + 1] << 8); } uint16_t read_word(const uint32_t a) const { return m[a] | (m[a + 1] << 8); }
void write_word(const uint32_t a, const uint16_t v) { if(a < size - 1) { m[a] = v; m[a + 1] = v >> 8; } } void write_word(const uint32_t a, const uint16_t v) { m[a] = v; m[a + 1] = v >> 8; }
}; };