summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2021-11-30 21:57:43 -0500
committer AJR <ajrhacker@users.noreply.github.com>2021-11-30 21:57:47 -0500
commit989fd54201eef7f4c03d3dd499a83e194b29d87d (patch)
tree7c4deb13143113fab5e480363841934d1674324f /src
parentd7893ea764a23ec7112f626d781ae85dc92a45af (diff)
midearth: Fix crash caused by incorrect length of memory share
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/atari_s1.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/mame/drivers/atari_s1.cpp b/src/mame/drivers/atari_s1.cpp
index 09aed49621d..593a508a8a2 100644
--- a/src/mame/drivers/atari_s1.cpp
+++ b/src/mame/drivers/atari_s1.cpp
@@ -107,6 +107,7 @@ private:
void midearth_w(offs_t offset, u8 data);
TIMER_DEVICE_CALLBACK_MEMBER(nmi);
TIMER_DEVICE_CALLBACK_MEMBER(timer_s);
+ void common_map(address_map &map);
void mem_map(address_map &map);
void atarians_map(address_map &map);
void midearth_map(address_map &map);
@@ -130,11 +131,10 @@ private:
output_finder<160> m_io_outputs; // 32 solenoids + 128 lamps
};
-void atari_s1_state::mem_map(address_map &map)
+void atari_s1_state::common_map(address_map &map)
{
map.unmap_value_high();
map.global_mask(0x7fff);
- map(0x0000, 0x00ff).ram().share("ram").w(FUNC(atari_s1_state::disp_w));
map(0x1080, 0x1083).rw(FUNC(atari_s1_state::m1080_r), FUNC(atari_s1_state::m1080_w));
map(0x1084, 0x1087).rw(FUNC(atari_s1_state::m1084_r), FUNC(atari_s1_state::m1084_w));
map(0x1088, 0x108b).rw(FUNC(atari_s1_state::m1088_r), FUNC(atari_s1_state::m1088_w));
@@ -147,18 +147,20 @@ void atari_s1_state::mem_map(address_map &map)
map(0x7000, 0x7fff).rom().region("maincpu",0);
}
+void atari_s1_state::mem_map(address_map &map)
+{
+ common_map(map);
+ map(0x0000, 0x00ff).ram().share("ram").w(FUNC(atari_s1_state::disp_w));
+}
+
void atari_s1_state::atarians_map(address_map &map)
{
- map.unmap_value_high();
- map.global_mask(0x7fff);
- mem_map(map);
- map(0x0100, 0x01ff).ram();
+ common_map(map);
+ map(0x0000, 0x01ff).ram().share("ram").w(FUNC(atari_s1_state::disp_w));
}
void atari_s1_state::midearth_map(address_map &map)
{
- map.unmap_value_high();
- map.global_mask(0x7fff);
atarians_map(map);
map(0x1000, 0x11ff).w(FUNC(atari_s1_state::midearth_w));
}