diff options
Diffstat (limited to 'src/mame/drivers/volfied.cpp')
-rw-r--r-- | src/mame/drivers/volfied.cpp | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/src/mame/drivers/volfied.cpp b/src/mame/drivers/volfied.cpp index bc612b40c61..77b0013642f 100644 --- a/src/mame/drivers/volfied.cpp +++ b/src/mame/drivers/volfied.cpp @@ -66,30 +66,32 @@ Stephh's notes (based on the game M68000 code and some tests) : MEMORY STRUCTURES ***********************************************************/ -ADDRESS_MAP_START(volfied_state::main_map) - AM_RANGE(0x000000, 0x03ffff) AM_ROM /* program */ - AM_RANGE(0x080000, 0x0fffff) AM_ROM /* tiles */ - AM_RANGE(0x100000, 0x103fff) AM_RAM /* main */ - AM_RANGE(0x200000, 0x203fff) AM_DEVREADWRITE("pc090oj", pc090oj_device, word_r, word_w) - AM_RANGE(0x400000, 0x47ffff) AM_READWRITE(video_ram_r, video_ram_w) - AM_RANGE(0x500000, 0x503fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") - AM_RANGE(0x600000, 0x600001) AM_WRITE(video_mask_w) - AM_RANGE(0x700000, 0x700001) AM_WRITE(sprite_ctrl_w) - AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(video_ctrl_r, video_ctrl_w) - AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE8("ciu", pc060ha_device, master_port_w, 0x00ff) - AM_RANGE(0xe00002, 0xe00003) AM_DEVREADWRITE8("ciu", pc060ha_device, master_comm_r, master_comm_w, 0x00ff) - AM_RANGE(0xf00000, 0xf007ff) AM_DEVREADWRITE8("cchip", taito_cchip_device, mem68_r, mem68_w, 0x00ff) - AM_RANGE(0xf00800, 0xf00fff) AM_DEVREADWRITE8("cchip", taito_cchip_device, asic_r, asic68_w, 0x00ff) -ADDRESS_MAP_END - -ADDRESS_MAP_START(volfied_state::z80_map) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM - AM_RANGE(0x8800, 0x8800) AM_DEVWRITE("ciu", pc060ha_device, slave_port_w) - AM_RANGE(0x8801, 0x8801) AM_DEVREADWRITE("ciu", pc060ha_device, slave_comm_r, slave_comm_w) - AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write) - AM_RANGE(0x9800, 0x9800) AM_WRITENOP /* ? */ -ADDRESS_MAP_END +void volfied_state::main_map(address_map &map) +{ + map(0x000000, 0x03ffff).rom(); /* program */ + map(0x080000, 0x0fffff).rom(); /* tiles */ + map(0x100000, 0x103fff).ram(); /* main */ + map(0x200000, 0x203fff).rw(m_pc090oj, FUNC(pc090oj_device::word_r), FUNC(pc090oj_device::word_w)); + map(0x400000, 0x47ffff).rw(this, FUNC(volfied_state::video_ram_r), FUNC(volfied_state::video_ram_w)); + map(0x500000, 0x503fff).ram().w("palette", FUNC(palette_device::write16)).share("palette"); + map(0x600000, 0x600001).w(this, FUNC(volfied_state::video_mask_w)); + map(0x700000, 0x700001).w(this, FUNC(volfied_state::sprite_ctrl_w)); + map(0xd00000, 0xd00001).rw(this, FUNC(volfied_state::video_ctrl_r), FUNC(volfied_state::video_ctrl_w)); + map(0xe00001, 0xe00001).w("ciu", FUNC(pc060ha_device::master_port_w)); + map(0xe00003, 0xe00003).rw("ciu", FUNC(pc060ha_device::master_comm_r), FUNC(pc060ha_device::master_comm_w)); + map(0xf00000, 0xf007ff).rw(m_cchip, FUNC(taito_cchip_device::mem68_r), FUNC(taito_cchip_device::mem68_w)).umask16(0x00ff); + map(0xf00800, 0xf00fff).rw(m_cchip, FUNC(taito_cchip_device::asic_r), FUNC(taito_cchip_device::asic68_w)).umask16(0x00ff); +} + +void volfied_state::z80_map(address_map &map) +{ + map(0x0000, 0x7fff).rom(); + map(0x8000, 0x87ff).ram(); + map(0x8800, 0x8800).w("ciu", FUNC(pc060ha_device::slave_port_w)); + map(0x8801, 0x8801).rw("ciu", FUNC(pc060ha_device::slave_comm_r), FUNC(pc060ha_device::slave_comm_w)); + map(0x9000, 0x9001).rw("ymsnd", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); + map(0x9800, 0x9800).nopw(); /* ? */ +} /*********************************************************** |