diff options
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 |
commit | 989fd54201eef7f4c03d3dd499a83e194b29d87d (patch) | |
tree | 7c4deb13143113fab5e480363841934d1674324f /src | |
parent | d7893ea764a23ec7112f626d781ae85dc92a45af (diff) |
midearth: Fix crash caused by incorrect length of memory share
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/atari_s1.cpp | 18 |
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)); } |