diff options
author | 2022-05-22 10:28:45 +0100 | |
---|---|---|
committer | 2022-05-22 10:28:45 +0100 | |
commit | 5cab79bc53fc13c53ee0f1753b7568ff8f2091ac (patch) | |
tree | b183233502c578c91b8197fa1543835254b4b268 | |
parent | 7a08cddf579c98f8ccf93b79023744471db1e4cd (diff) |
Spectrum +2/+3 contended memory is different to Spectrum 128k [smf]
-rw-r--r-- | src/mame/drivers/specpls3.cpp | 6 | ||||
-rw-r--r-- | src/mame/includes/specpls3.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/mame/drivers/specpls3.cpp b/src/mame/drivers/specpls3.cpp index a65c8faf458..8ba3b923c0a 100644 --- a/src/mame/drivers/specpls3.cpp +++ b/src/mame/drivers/specpls3.cpp @@ -371,6 +371,12 @@ static void specpls3_floppies(device_slot_interface &device) device.option_add("3ssdd", FLOPPY_3_SSDD); } +bool specpls3_state::is_contended(offs_t offset) { + u8 bank = m_bank_ram[3]->entry(); + return spectrum_state::is_contended(offset) + || ((offset >= 0xc000 && offset <= 0xffff) && (bank & 4)); // Memory banks 4,5,6 and 7 are contended +} + /* F4 Character Displayer */ static const gfx_layout spectrum_charlayout = { diff --git a/src/mame/includes/specpls3.h b/src/mame/includes/specpls3.h index 4d412196ea8..1391f68a92b 100644 --- a/src/mame/includes/specpls3.h +++ b/src/mame/includes/specpls3.h @@ -34,6 +34,7 @@ protected: virtual void machine_start() override; virtual void machine_reset() override; virtual void plus3_update_memory() override; + virtual bool is_contended(offs_t offset) override; private: void rom_w(offs_t offset, uint8_t data); |