summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2022-05-22 10:28:45 +0100
committer Vas Crabb <vas@vastheman.com>2022-05-23 05:10:32 +1000
commitb9e9b2555af55023dfedbf5289abe961c8783e86 (patch)
treeb183233502c578c91b8197fa1543835254b4b268
parentcecbe8e906efcc9275c10d6a39225dcb7fced768 (diff)
Spectrum +2/+3 contended memory is different to Spectrum 128k [smf]
-rw-r--r--src/mame/drivers/specpls3.cpp6
-rw-r--r--src/mame/includes/specpls3.h1
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);