diff options
Diffstat (limited to 'src/mame/drivers/a5105.cpp')
-rw-r--r-- | src/mame/drivers/a5105.cpp | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/src/mame/drivers/a5105.cpp b/src/mame/drivers/a5105.cpp index a3372d1ddd9..8f2f6ff92de 100644 --- a/src/mame/drivers/a5105.cpp +++ b/src/mame/drivers/a5105.cpp @@ -159,13 +159,14 @@ UPD7220_DRAW_TEXT_LINE_MEMBER( a5105_state::hgdc_draw_text ) } } -ADDRESS_MAP_START(a5105_state::a5105_mem) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") - AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank2") - AM_RANGE(0x8000, 0xbfff) AM_READWRITE_BANK("bank3") - AM_RANGE(0xc000, 0xffff) AM_READWRITE_BANK("bank4") -ADDRESS_MAP_END +void a5105_state::a5105_mem(address_map &map) +{ + map.unmap_value_high(); + map(0x0000, 0x3fff).bankr("bank1"); + map(0x4000, 0x7fff).bankr("bank2"); + map(0x8000, 0xbfff).bankrw("bank3"); + map(0xc000, 0xffff).bankrw("bank4"); +} WRITE8_MEMBER( a5105_state::pcg_addr_w ) { @@ -352,26 +353,27 @@ WRITE8_MEMBER( a5105_state::a5105_upd765_w ) m_fdc->tc_w(BIT(data, 4)); } -ADDRESS_MAP_START(a5105_state::a5105_io) - ADDRESS_MAP_UNMAP_HIGH - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x40, 0x41) AM_DEVICE("upd765a", upd765a_device, map) - AM_RANGE(0x48, 0x4f) AM_WRITE(a5105_upd765_w) +void a5105_state::a5105_io(address_map &map) +{ + map.unmap_value_high(); + map.global_mask(0xff); + map(0x40, 0x41).m(m_fdc, FUNC(upd765a_device::map)); + map(0x48, 0x4f).w(this, FUNC(a5105_state::a5105_upd765_w)); - AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write) - AM_RANGE(0x90, 0x93) AM_DEVREADWRITE("z80pio", z80pio_device, read, write) - AM_RANGE(0x98, 0x99) AM_DEVREADWRITE("upd7220", upd7220_device, read, write) + map(0x80, 0x83).rw("z80ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write)); + map(0x90, 0x93).rw("z80pio", FUNC(z80pio_device::read), FUNC(z80pio_device::write)); + map(0x98, 0x99).rw(m_hgdc, FUNC(upd7220_device::read), FUNC(upd7220_device::write)); - AM_RANGE(0x9c, 0x9c) AM_WRITE(pcg_val_w) + map(0x9c, 0x9c).w(this, FUNC(a5105_state::pcg_val_w)); // AM_RANGE(0x9d, 0x9d) crtc area (ff-based), palette routes here - AM_RANGE(0x9e, 0x9e) AM_WRITE(pcg_addr_w) + map(0x9e, 0x9e).w(this, FUNC(a5105_state::pcg_addr_w)); // AM_RANGE(0xa0, 0xa1) ay8910? - AM_RANGE(0xa8, 0xa8) AM_READWRITE(a5105_memsel_r,a5105_memsel_w) - AM_RANGE(0xa9, 0xa9) AM_READ(key_r) - AM_RANGE(0xaa, 0xaa) AM_READWRITE(key_mux_r,key_mux_w) - AM_RANGE(0xab, 0xab) AM_WRITE(a5105_ab_w) //misc output, see above -ADDRESS_MAP_END + map(0xa8, 0xa8).rw(this, FUNC(a5105_state::a5105_memsel_r), FUNC(a5105_state::a5105_memsel_w)); + map(0xa9, 0xa9).r(this, FUNC(a5105_state::key_r)); + map(0xaa, 0xaa).rw(this, FUNC(a5105_state::key_mux_r), FUNC(a5105_state::key_mux_w)); + map(0xab, 0xab).w(this, FUNC(a5105_state::a5105_ab_w)); //misc output, see above +} /* Input ports */ static INPUT_PORTS_START( a5105 ) @@ -542,10 +544,11 @@ void a5105_state::video_start() m_char_ram = memregion("pcg")->base(); } -ADDRESS_MAP_START(a5105_state::upd7220_map) - ADDRESS_MAP_GLOBAL_MASK(0x1ffff) - AM_RANGE(0x00000, 0x1ffff) AM_RAM AM_SHARE("video_ram") -ADDRESS_MAP_END +void a5105_state::upd7220_map(address_map &map) +{ + map.global_mask(0x1ffff); + map(0x00000, 0x1ffff).ram().share("video_ram"); +} FLOPPY_FORMATS_MEMBER( a5105_state::floppy_formats ) FLOPPY_A5105_FORMAT |