diff options
Diffstat (limited to 'src/mame/drivers/seibucats.cpp')
-rw-r--r-- | src/mame/drivers/seibucats.cpp | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/mame/drivers/seibucats.cpp b/src/mame/drivers/seibucats.cpp index 315b9dcfd90..a72692216ca 100644 --- a/src/mame/drivers/seibucats.cpp +++ b/src/mame/drivers/seibucats.cpp @@ -163,33 +163,34 @@ WRITE16_MEMBER(seibucats_state::aux_rtc_w) { } -ADDRESS_MAP_START(seibucats_state::seibucats_map) +void seibucats_state::seibucats_map(address_map &map) +{ // TODO: map devices - AM_RANGE(0x00000000, 0x0003ffff) AM_RAM AM_SHARE("mainram") + map(0x00000000, 0x0003ffff).ram().share("mainram"); - AM_RANGE(0x00000010, 0x00000013) AM_READ8(spi_status_r, 0x000000ff) - AM_RANGE(0x00000400, 0x00000403) AM_WRITE16(input_select_w, 0x0000ffff) - AM_RANGE(0x00000404, 0x00000407) AM_WRITE16(output_latch_w, 0x0000ffff) - AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w) - AM_RANGE(0x00000490, 0x00000493) AM_WRITE(video_dma_length_w) - AM_RANGE(0x00000494, 0x00000497) AM_WRITE(video_dma_address_w) - AM_RANGE(0x00000560, 0x00000563) AM_WRITE16(sprite_dma_start_w, 0xffff0000) + map(0x00000010, 0x00000010).r(this, FUNC(seibucats_state::spi_status_r)); + map(0x00000400, 0x00000401).w(this, FUNC(seibucats_state::input_select_w)); + map(0x00000404, 0x00000405).w(this, FUNC(seibucats_state::output_latch_w)); + map(0x00000484, 0x00000487).w(this, FUNC(seibucats_state::palette_dma_start_w)); + map(0x00000490, 0x00000493).w(this, FUNC(seibucats_state::video_dma_length_w)); + map(0x00000494, 0x00000497).w(this, FUNC(seibucats_state::video_dma_address_w)); + map(0x00000562, 0x00000563).w(this, FUNC(seibucats_state::sprite_dma_start_w)); - AM_RANGE(0x00000600, 0x00000607) AM_READ16(input_mux_r, 0x0000ffff) + map(0x00000600, 0x00000607).r(this, FUNC(seibucats_state::input_mux_r)).umask32(0x0000ffff); - AM_RANGE(0x00200000, 0x003fffff) AM_ROM AM_REGION("ipl", 0) AM_WRITENOP // emjjoshi attempts to write there? + map(0x00200000, 0x003fffff).rom().region("ipl", 0).nopw(); // emjjoshi attempts to write there? // following are likely to be Seibu CATS specific - AM_RANGE(0x01200000, 0x01200007) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0x000000ff) - AM_RANGE(0x01200100, 0x01200107) AM_WRITENOP // YMF721-S MIDI data - AM_RANGE(0x01200104, 0x01200107) AM_READNOP // YMF721-S MIDI status - AM_RANGE(0x01200200, 0x01200203) AM_DEVREADWRITE8("usart1", i8251_device, data_r, data_w, 0x000000ff) - AM_RANGE(0x01200204, 0x01200207) AM_DEVREADWRITE8("usart1", i8251_device, status_r, control_w, 0x000000ff) - AM_RANGE(0x01200300, 0x01200303) AM_DEVREADWRITE8("usart2", i8251_device, data_r, data_w, 0x000000ff) - AM_RANGE(0x01200304, 0x01200307) AM_DEVREADWRITE8("usart2", i8251_device, status_r, control_w, 0x000000ff) - AM_RANGE(0xa0000000, 0xa1ffffff) AM_NOP // NVRAM on ROM board - AM_RANGE(0xa2000000, 0xa2000003) AM_WRITE16(aux_rtc_w, 0x0000ffff) - AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("ipl", 0) -ADDRESS_MAP_END + map(0x01200000, 0x01200007).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)).umask32(0x000000ff); + map(0x01200100, 0x01200107).nopw(); // YMF721-S MIDI data + map(0x01200104, 0x01200107).nopr(); // YMF721-S MIDI status + map(0x01200200, 0x01200200).rw("usart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)); + map(0x01200204, 0x01200204).rw("usart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); + map(0x01200300, 0x01200300).rw("usart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)); + map(0x01200304, 0x01200304).rw("usart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); + map(0xa0000000, 0xa1ffffff).noprw(); // NVRAM on ROM board + map(0xa2000000, 0xa2000001).w(this, FUNC(seibucats_state::aux_rtc_w)); + map(0xffe00000, 0xffffffff).rom().region("ipl", 0); +} static INPUT_PORTS_START( spi_mahjong_keyboard ) PORT_START("KEY.0") |