diff options
author | 2018-03-13 07:36:43 +0100 | |
---|---|---|
committer | 2018-03-14 14:07:14 +0100 | |
commit | 115bb9936c5cd3faf955d7eb1e251a94e4744b7b (patch) | |
tree | f0230f547f6c750f9974c61479eef28cbe4ad571 /src/mame/drivers/tecmosys.cpp | |
parent | f155992daab88ad024cec995428a67108218b51d (diff) |
Address maps macros removal, pass 1 [O. Galibert]
Diffstat (limited to 'src/mame/drivers/tecmosys.cpp')
-rw-r--r-- | src/mame/drivers/tecmosys.cpp | 97 |
1 files changed, 50 insertions, 47 deletions
diff --git a/src/mame/drivers/tecmosys.cpp b/src/mame/drivers/tecmosys.cpp index 834ffd9a7ba..61f3d050621 100644 --- a/src/mame/drivers/tecmosys.cpp +++ b/src/mame/drivers/tecmosys.cpp @@ -274,44 +274,45 @@ WRITE16_MEMBER(tecmosys_state::eeprom_w) } } -ADDRESS_MAP_START(tecmosys_state::main_map) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x200000, 0x20ffff) AM_RAM // work ram - AM_RANGE(0x210000, 0x210001) AM_READNOP // single byte overflow on stack defined as 0x210000 - AM_RANGE(0x300000, 0x300fff) AM_RAM_WRITE(bg0_tilemap_w) AM_SHARE("bg0tilemap_ram") // bg0 ram - AM_RANGE(0x301000, 0x3013ff) AM_RAM_WRITE(bg0_tilemap_lineram_w) AM_SHARE("bg0_lineram")// bg0 linescroll? (guess) +void tecmosys_state::main_map(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); + map(0x200000, 0x20ffff).ram(); // work ram + map(0x210000, 0x210001).nopr(); // single byte overflow on stack defined as 0x210000 + map(0x300000, 0x300fff).ram().w(this, FUNC(tecmosys_state::bg0_tilemap_w)).share("bg0tilemap_ram"); // bg0 ram + map(0x301000, 0x3013ff).ram().w(this, FUNC(tecmosys_state::bg0_tilemap_lineram_w)).share("bg0_lineram");// bg0 linescroll? (guess) - AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(bg1_tilemap_w) AM_SHARE("bg1tilemap_ram") // bg1 ram - AM_RANGE(0x401000, 0x4013ff) AM_RAM_WRITE(bg1_tilemap_lineram_w) AM_SHARE("bg1_lineram")// bg1 linescroll? (guess) + map(0x400000, 0x400fff).ram().w(this, FUNC(tecmosys_state::bg1_tilemap_w)).share("bg1tilemap_ram"); // bg1 ram + map(0x401000, 0x4013ff).ram().w(this, FUNC(tecmosys_state::bg1_tilemap_lineram_w)).share("bg1_lineram");// bg1 linescroll? (guess) - AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(bg2_tilemap_w) AM_SHARE("bg2tilemap_ram") // bg2 ram - AM_RANGE(0x501000, 0x5013ff) AM_RAM_WRITE(bg2_tilemap_lineram_w) AM_SHARE("bg2_lineram") // bg2 linescroll? (guess) + map(0x500000, 0x500fff).ram().w(this, FUNC(tecmosys_state::bg2_tilemap_w)).share("bg2tilemap_ram"); // bg2 ram + map(0x501000, 0x5013ff).ram().w(this, FUNC(tecmosys_state::bg2_tilemap_lineram_w)).share("bg2_lineram"); // bg2 linescroll? (guess) - AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(fg_tilemap_w) AM_SHARE("fgtilemap_ram") // fix ram - AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("spriteram") // obj ram - AM_RANGE(0x880000, 0x88000b) AM_READ(unk880000_r) - AM_RANGE(0x900000, 0x907fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // AM_WRITEONLY // obj pal + map(0x700000, 0x703fff).ram().w(this, FUNC(tecmosys_state::fg_tilemap_w)).share("fgtilemap_ram"); // fix ram + map(0x800000, 0x80ffff).ram().share("spriteram"); // obj ram + map(0x880000, 0x88000b).r(this, FUNC(tecmosys_state::unk880000_r)); + map(0x900000, 0x907fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // AM_WRITEONLY // obj pal //AM_RANGE(0x980000, 0x9807ff) AM_WRITEONLY // bg pal //AM_RANGE(0x980800, 0x980fff) AM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram") // fix pal // the two above are as tested by the game code, I've only rolled them into one below to get colours to show right. - AM_RANGE(0x980000, 0x980fff) AM_RAM_WRITE(tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("tmap_palette") - - AM_RANGE(0x880000, 0x88002f) AM_WRITE(unk880000_w ) AM_SHARE("880000regs") // 10 byte dta@88000c, 880022=watchdog? - AM_RANGE(0xa00000, 0xa00001) AM_WRITE(eeprom_w ) - AM_RANGE(0xa80000, 0xa80005) AM_WRITEONLY AM_SHARE("a80000regs") // a80000-3 scroll? a80004 inverted ? 3 : 0 - AM_RANGE(0xb00000, 0xb00005) AM_WRITEONLY AM_SHARE("b00000regs") // b00000-3 scrool?, b00004 inverted ? 3 : 0 - AM_RANGE(0xb80000, 0xb80001) AM_READWRITE(prot_status_r, prot_status_w) - AM_RANGE(0xc00000, 0xc00005) AM_WRITEONLY AM_SHARE("c00000regs") // c00000-3 scroll? c00004 inverted ? 13 : 10 - AM_RANGE(0xc80000, 0xc80005) AM_WRITEONLY AM_SHARE("c80000regs") // c80000-3 scrool? c80004 inverted ? 3 : 0 - AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("P1") - AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("P2") - AM_RANGE(0xd80000, 0xd80001) AM_READ(eeprom_r) - AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff) - AM_RANGE(0xe80000, 0xe80001) AM_WRITE(prot_data_w) - AM_RANGE(0xf00000, 0xf00001) AM_READ8(sound_command_pending_r, 0x00ff) - AM_RANGE(0xf80000, 0xf80001) AM_READ(prot_data_r) -ADDRESS_MAP_END + map(0x980000, 0x980fff).ram().w(this, FUNC(tecmosys_state::tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w)).share("tmap_palette"); + + map(0x880000, 0x88002f).w(this, FUNC(tecmosys_state::unk880000_w)).share("880000regs"); // 10 byte dta@88000c, 880022=watchdog? + map(0xa00000, 0xa00001).w(this, FUNC(tecmosys_state::eeprom_w)); + map(0xa80000, 0xa80005).writeonly().share("a80000regs"); // a80000-3 scroll? a80004 inverted ? 3 : 0 + map(0xb00000, 0xb00005).writeonly().share("b00000regs"); // b00000-3 scrool?, b00004 inverted ? 3 : 0 + map(0xb80000, 0xb80001).rw(this, FUNC(tecmosys_state::prot_status_r), FUNC(tecmosys_state::prot_status_w)); + map(0xc00000, 0xc00005).writeonly().share("c00000regs"); // c00000-3 scroll? c00004 inverted ? 13 : 10 + map(0xc80000, 0xc80005).writeonly().share("c80000regs"); // c80000-3 scrool? c80004 inverted ? 3 : 0 + map(0xd00000, 0xd00001).portr("P1"); + map(0xd00002, 0xd00003).portr("P2"); + map(0xd80000, 0xd80001).r(this, FUNC(tecmosys_state::eeprom_r)); + map(0xe00001, 0xe00001).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xe80000, 0xe80001).w(this, FUNC(tecmosys_state::prot_data_w)); + map(0xf00001, 0xf00001).r(this, FUNC(tecmosys_state::sound_command_pending_r)); + map(0xf80000, 0xf80001).r(this, FUNC(tecmosys_state::prot_data_r)); +} WRITE8_MEMBER(tecmosys_state::z80_bank_w) @@ -329,22 +330,24 @@ WRITE8_MEMBER(tecmosys_state::oki_bank_w) memcpy( region+0x20000, region+0x80000 + upperbank * 0x20000, 0x20000 ); } -ADDRESS_MAP_START(tecmosys_state::sound_map) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xe000, 0xf7ff) AM_RAM -ADDRESS_MAP_END - -ADDRESS_MAP_START(tecmosys_state::io_map) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymf", ymf262_device, read, write) - AM_RANGE(0x10, 0x10) AM_DEVREADWRITE("oki", okim6295_device, read, write) - AM_RANGE(0x20, 0x20) AM_WRITE(oki_bank_w) - AM_RANGE(0x30, 0x30) AM_WRITE(z80_bank_w) - AM_RANGE(0x40, 0x40) AM_DEVREAD("soundlatch", generic_latch_8_device, read) - AM_RANGE(0x50, 0x50) AM_WRITE(sound_nmi_disable_w) - AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("ymz", ymz280b_device, read, write) -ADDRESS_MAP_END +void tecmosys_state::sound_map(address_map &map) +{ + map(0x0000, 0x7fff).rom(); + map(0x8000, 0xbfff).bankr("bank1"); + map(0xe000, 0xf7ff).ram(); +} + +void tecmosys_state::io_map(address_map &map) +{ + map.global_mask(0xff); + map(0x00, 0x03).rw("ymf", FUNC(ymf262_device::read), FUNC(ymf262_device::write)); + map(0x10, 0x10).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x20, 0x20).w(this, FUNC(tecmosys_state::oki_bank_w)); + map(0x30, 0x30).w(this, FUNC(tecmosys_state::z80_bank_w)); + map(0x40, 0x40).r(m_soundlatch, FUNC(generic_latch_8_device::read)); + map(0x50, 0x50).w(this, FUNC(tecmosys_state::sound_nmi_disable_w)); + map(0x60, 0x61).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)); +} |