diff options
Diffstat (limited to 'src/mame/drivers/magic10.cpp')
-rw-r--r-- | src/mame/drivers/magic10.cpp | 169 |
1 files changed, 87 insertions, 82 deletions
diff --git a/src/mame/drivers/magic10.cpp b/src/mame/drivers/magic10.cpp index 3bbae9bc29c..96570748b49 100644 --- a/src/mame/drivers/magic10.cpp +++ b/src/mame/drivers/magic10.cpp @@ -316,90 +316,95 @@ WRITE16_MEMBER(magic10_state::magic10_out_w) * Memory Maps * ***************************/ -ADDRESS_MAP_START(magic10_state::magic10_map) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_SHARE("layer1_videoram") - AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram") - AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram") - AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x300000, 0x3001ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") - AM_RANGE(0x400000, 0x400001) AM_READ_PORT("INPUTS") - AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSW") - AM_RANGE(0x400008, 0x400009) AM_WRITE(magic10_out_w) - AM_RANGE(0x40000a, 0x40000b) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x40000e, 0x40000f) AM_WRITENOP - AM_RANGE(0x400080, 0x400087) AM_RAM AM_SHARE("vregs") - AM_RANGE(0x600000, 0x603fff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(magic10_state::magic10a_map) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_SHARE("layer1_videoram") - AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram") - AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram") - AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x300000, 0x3001ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") - AM_RANGE(0x500000, 0x500001) AM_READ_PORT("INPUTS") - AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW") - AM_RANGE(0x500008, 0x500009) AM_WRITE(magic10_out_w) - AM_RANGE(0x50000a, 0x50000b) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x50000e, 0x50000f) AM_WRITENOP - AM_RANGE(0x500080, 0x500087) AM_RAM AM_SHARE("vregs") // video registers? - AM_RANGE(0x600000, 0x603fff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(magic10_state::magic102_map) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_SHARE("layer1_videoram") - AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram") - AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram") - AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x400000, 0x4001ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") - AM_RANGE(0x500000, 0x500001) AM_READ(magic102_r) - AM_RANGE(0x500004, 0x500005) AM_READNOP // gives credits - AM_RANGE(0x500006, 0x500007) AM_READNOP // gives credits - AM_RANGE(0x50001a, 0x50001b) AM_READ_PORT("IN0") - AM_RANGE(0x50001c, 0x50001d) AM_READ_PORT("IN1") +void magic10_state::magic10_map(address_map &map) +{ + map(0x000000, 0x03ffff).rom(); + map(0x100000, 0x100fff).ram().w(this, FUNC(magic10_state::layer1_videoram_w)).share("layer1_videoram"); + map(0x101000, 0x101fff).ram().w(this, FUNC(magic10_state::layer0_videoram_w)).share("layer0_videoram"); + map(0x102000, 0x103fff).ram().w(this, FUNC(magic10_state::layer2_videoram_w)).share("layer2_videoram"); + map(0x200000, 0x2007ff).ram().share("nvram"); + map(0x300000, 0x3001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x400000, 0x400001).portr("INPUTS"); + map(0x400002, 0x400003).portr("DSW"); + map(0x400008, 0x400009).w(this, FUNC(magic10_state::magic10_out_w)); + map(0x40000b, 0x40000b).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x40000e, 0x40000f).nopw(); + map(0x400080, 0x400087).ram().share("vregs"); + map(0x600000, 0x603fff).ram(); +} + +void magic10_state::magic10a_map(address_map &map) +{ + map(0x000000, 0x03ffff).rom(); + map(0x100000, 0x100fff).ram().w(this, FUNC(magic10_state::layer1_videoram_w)).share("layer1_videoram"); + map(0x101000, 0x101fff).ram().w(this, FUNC(magic10_state::layer0_videoram_w)).share("layer0_videoram"); + map(0x102000, 0x103fff).ram().w(this, FUNC(magic10_state::layer2_videoram_w)).share("layer2_videoram"); + map(0x200000, 0x2007ff).ram().share("nvram"); + map(0x300000, 0x3001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x500000, 0x500001).portr("INPUTS"); + map(0x500002, 0x500003).portr("DSW"); + map(0x500008, 0x500009).w(this, FUNC(magic10_state::magic10_out_w)); + map(0x50000b, 0x50000b).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x50000e, 0x50000f).nopw(); + map(0x500080, 0x500087).ram().share("vregs"); // video registers? + map(0x600000, 0x603fff).ram(); +} + +void magic10_state::magic102_map(address_map &map) +{ + map(0x000000, 0x03ffff).rom(); + map(0x100000, 0x100fff).ram().w(this, FUNC(magic10_state::layer1_videoram_w)).share("layer1_videoram"); + map(0x101000, 0x101fff).ram().w(this, FUNC(magic10_state::layer0_videoram_w)).share("layer0_videoram"); + map(0x102000, 0x103fff).ram().w(this, FUNC(magic10_state::layer2_videoram_w)).share("layer2_videoram"); + map(0x200000, 0x2007ff).ram().share("nvram"); + map(0x400000, 0x4001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x500000, 0x500001).r(this, FUNC(magic10_state::magic102_r)); + map(0x500004, 0x500005).nopr(); // gives credits + map(0x500006, 0x500007).nopr(); // gives credits + map(0x50001a, 0x50001b).portr("IN0"); + map(0x50001c, 0x50001d).portr("IN1"); // AM_RANGE(0x500002, 0x50001f) AM_READNOP // AM_RANGE(0x500002, 0x50001f) AM_WRITENOP - AM_RANGE(0x600000, 0x603fff) AM_RAM - AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x700080, 0x700087) AM_RAM AM_SHARE("vregs") // video registers? -ADDRESS_MAP_END - -ADDRESS_MAP_START(magic10_state::hotslot_map) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_SHARE("layer1_videoram") - AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram") - AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram") - AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x400000, 0x4001ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") - AM_RANGE(0x500004, 0x500005) AM_READWRITE(hotslot_copro_r, hotslot_copro_w) // copro comm - AM_RANGE(0x500006, 0x500011) AM_RAM - AM_RANGE(0x500012, 0x500013) AM_READ_PORT("IN0") - AM_RANGE(0x500014, 0x500015) AM_READ_PORT("IN1") - AM_RANGE(0x500016, 0x500017) AM_READ_PORT("IN2") - AM_RANGE(0x500018, 0x500019) AM_READ_PORT("DSW1") - AM_RANGE(0x50001a, 0x50001d) AM_WRITENOP - AM_RANGE(0x600000, 0x603fff) AM_RAM - AM_RANGE(0x70000a, 0x70000b) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x700080, 0x700087) AM_RAM AM_SHARE("vregs") -ADDRESS_MAP_END - -ADDRESS_MAP_START(magic10_state::sgsafari_map) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(layer1_videoram_w) AM_SHARE("layer1_videoram") - AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram") - AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram") - AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x300000, 0x3001ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") - AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW1") - AM_RANGE(0x500008, 0x500009) AM_WRITE(magic10_out_w) - AM_RANGE(0x50000a, 0x50000b) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x50000e, 0x50000f) AM_READ_PORT("IN0") - AM_RANGE(0x500080, 0x500087) AM_RAM AM_SHARE("vregs") // video registers? - AM_RANGE(0x600000, 0x603fff) AM_RAM -ADDRESS_MAP_END + map(0x600000, 0x603fff).ram(); + map(0x700001, 0x700001).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x700080, 0x700087).ram().share("vregs"); // video registers? +} + +void magic10_state::hotslot_map(address_map &map) +{ + map(0x000000, 0x03ffff).rom(); + map(0x100000, 0x100fff).ram().w(this, FUNC(magic10_state::layer1_videoram_w)).share("layer1_videoram"); + map(0x101000, 0x101fff).ram().w(this, FUNC(magic10_state::layer0_videoram_w)).share("layer0_videoram"); + map(0x102000, 0x103fff).ram().w(this, FUNC(magic10_state::layer2_videoram_w)).share("layer2_videoram"); + map(0x200000, 0x2007ff).ram().share("nvram"); + map(0x400000, 0x4001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x500004, 0x500005).rw(this, FUNC(magic10_state::hotslot_copro_r), FUNC(magic10_state::hotslot_copro_w)); // copro comm + map(0x500006, 0x500011).ram(); + map(0x500012, 0x500013).portr("IN0"); + map(0x500014, 0x500015).portr("IN1"); + map(0x500016, 0x500017).portr("IN2"); + map(0x500018, 0x500019).portr("DSW1"); + map(0x50001a, 0x50001d).nopw(); + map(0x600000, 0x603fff).ram(); + map(0x70000b, 0x70000b).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x700080, 0x700087).ram().share("vregs"); +} + +void magic10_state::sgsafari_map(address_map &map) +{ + map(0x000000, 0x03ffff).rom(); + map(0x100000, 0x100fff).ram().w(this, FUNC(magic10_state::layer1_videoram_w)).share("layer1_videoram"); + map(0x101000, 0x101fff).ram().w(this, FUNC(magic10_state::layer0_videoram_w)).share("layer0_videoram"); + map(0x102000, 0x103fff).ram().w(this, FUNC(magic10_state::layer2_videoram_w)).share("layer2_videoram"); + map(0x200000, 0x203fff).ram().share("nvram"); + map(0x300000, 0x3001ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x500002, 0x500003).portr("DSW1"); + map(0x500008, 0x500009).w(this, FUNC(magic10_state::magic10_out_w)); + map(0x50000b, 0x50000b).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x50000e, 0x50000f).portr("IN0"); + map(0x500080, 0x500087).ram().share("vregs"); // video registers? + map(0x600000, 0x603fff).ram(); +} /* SGSafari unimplemented writes: |