diff options
Diffstat (limited to 'src/mame/drivers/esq5505.cpp')
-rw-r--r-- | src/mame/drivers/esq5505.cpp | 84 |
1 files changed, 44 insertions, 40 deletions
diff --git a/src/mame/drivers/esq5505.cpp b/src/mame/drivers/esq5505.cpp index 43c53dfd03b..14fe07729e6 100644 --- a/src/mame/drivers/esq5505.cpp +++ b/src/mame/drivers/esq5505.cpp @@ -378,46 +378,50 @@ WRITE16_MEMBER(esq5505_state::lower_w) } } -ADDRESS_MAP_START(esq5505_state::vfx_map) - AM_RANGE(0x000000, 0x007fff) AM_READWRITE(lower_r, lower_w) - AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE("otis", es5505_device, read, write) - AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0x260000, 0x2601ff) AM_DEVREADWRITE8("esp", es5510_device, host_r, host_w, 0x00ff) - AM_RANGE(0xc00000, 0xc1ffff) AM_ROM AM_REGION("osrom", 0) - AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("osram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(esq5505_state::vfxsd_map) - AM_RANGE(0x000000, 0x00ffff) AM_READWRITE(lower_r, lower_w) - AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE("otis", es5505_device, read, write) - AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0x260000, 0x2601ff) AM_DEVREADWRITE8("esp", es5510_device, host_r, host_w, 0x00ff) - AM_RANGE(0x2c0000, 0x2c0007) AM_DEVREADWRITE8("wd1772", wd1772_device, read, write, 0x00ff) - AM_RANGE(0x330000, 0x3bffff) AM_RAM // sequencer memory? - AM_RANGE(0xc00000, 0xc3ffff) AM_ROM AM_REGION("osrom", 0) - AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("osram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(esq5505_state::eps_map) - AM_RANGE(0x000000, 0x007fff) AM_READWRITE(lower_r, lower_w) - AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE("otis", es5505_device, read, write) - AM_RANGE(0x240000, 0x2400ff) AM_DEVREADWRITE("mc68450", hd63450_device, read, write) - AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0x2c0000, 0x2c0007) AM_DEVREADWRITE8("wd1772", wd1772_device, read, write, 0x00ff) - AM_RANGE(0x580000, 0x7fffff) AM_RAM // sample RAM? - AM_RANGE(0xc00000, 0xc1ffff) AM_ROM AM_REGION("osrom", 0) - AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("osram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(esq5505_state::sq1_map) - AM_RANGE(0x000000, 0x03ffff) AM_READWRITE(lower_r, lower_w) - AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE("otis", es5505_device, read, write) - AM_RANGE(0x260000, 0x2601ff) AM_DEVREADWRITE8("esp", es5510_device, host_r, host_w, 0x0ff) - AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0x330000, 0x3bffff) AM_RAM // sequencer memory? - AM_RANGE(0xc00000, 0xc3ffff) AM_ROM AM_REGION("osrom", 0) - AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("osram") -ADDRESS_MAP_END +void esq5505_state::vfx_map(address_map &map) +{ + map(0x000000, 0x007fff).rw(this, FUNC(esq5505_state::lower_r), FUNC(esq5505_state::lower_w)); + map(0x200000, 0x20001f).rw("otis", FUNC(es5505_device::read), FUNC(es5505_device::write)); + map(0x280000, 0x28001f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); + map(0x260000, 0x2601ff).rw(m_esp, FUNC(es5510_device::host_r), FUNC(es5510_device::host_w)).umask16(0x00ff); + map(0xc00000, 0xc1ffff).rom().region("osrom", 0); + map(0xff0000, 0xffffff).ram().share("osram"); +} + +void esq5505_state::vfxsd_map(address_map &map) +{ + map(0x000000, 0x00ffff).rw(this, FUNC(esq5505_state::lower_r), FUNC(esq5505_state::lower_w)); + map(0x200000, 0x20001f).rw("otis", FUNC(es5505_device::read), FUNC(es5505_device::write)); + map(0x280000, 0x28001f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); + map(0x260000, 0x2601ff).rw(m_esp, FUNC(es5510_device::host_r), FUNC(es5510_device::host_w)).umask16(0x00ff); + map(0x2c0000, 0x2c0007).rw(m_fdc, FUNC(wd1772_device::read), FUNC(wd1772_device::write)).umask16(0x00ff); + map(0x330000, 0x3bffff).ram(); // sequencer memory? + map(0xc00000, 0xc3ffff).rom().region("osrom", 0); + map(0xff0000, 0xffffff).ram().share("osram"); +} + +void esq5505_state::eps_map(address_map &map) +{ + map(0x000000, 0x007fff).rw(this, FUNC(esq5505_state::lower_r), FUNC(esq5505_state::lower_w)); + map(0x200000, 0x20001f).rw("otis", FUNC(es5505_device::read), FUNC(es5505_device::write)); + map(0x240000, 0x2400ff).rw(m_dmac, FUNC(hd63450_device::read), FUNC(hd63450_device::write)); + map(0x280000, 0x28001f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); + map(0x2c0000, 0x2c0007).rw(m_fdc, FUNC(wd1772_device::read), FUNC(wd1772_device::write)).umask16(0x00ff); + map(0x580000, 0x7fffff).ram(); // sample RAM? + map(0xc00000, 0xc1ffff).rom().region("osrom", 0); + map(0xff0000, 0xffffff).ram().share("osram"); +} + +void esq5505_state::sq1_map(address_map &map) +{ + map(0x000000, 0x03ffff).rw(this, FUNC(esq5505_state::lower_r), FUNC(esq5505_state::lower_w)); + map(0x200000, 0x20001f).rw("otis", FUNC(es5505_device::read), FUNC(es5505_device::write)); + map(0x260000, 0x2601ff).rw(m_esp, FUNC(es5510_device::host_r), FUNC(es5510_device::host_w)).umask16(0x00ff); + map(0x280000, 0x28001f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); + map(0x330000, 0x3bffff).ram(); // sequencer memory? + map(0xc00000, 0xc3ffff).rom().region("osrom", 0); + map(0xff0000, 0xffffff).ram().share("osram"); +} WRITE_LINE_MEMBER(esq5505_state::esq5505_otis_irq) { |