diff options
Diffstat (limited to 'src/mame/audio/harddriv.cpp')
-rw-r--r-- | src/mame/audio/harddriv.cpp | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/src/mame/audio/harddriv.cpp b/src/mame/audio/harddriv.cpp index 93942157988..e4a6d9e8b3a 100644 --- a/src/mame/audio/harddriv.cpp +++ b/src/mame/audio/harddriv.cpp @@ -391,38 +391,41 @@ READ16_MEMBER(harddriv_sound_board_device::hdsnddsp_compare_r) return 0; } -ADDRESS_MAP_START(harddriv_sound_board_device::driversnd_68k_map) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x000000, 0x01ffff) AM_ROM - AM_RANGE(0xff0000, 0xff0fff) AM_READWRITE(hdsnd68k_data_r, hdsnd68k_data_w) - AM_RANGE(0xff1000, 0xff1fff) AM_READWRITE(hdsnd68k_switches_r, hdsnd68k_latches_w) - AM_RANGE(0xff2000, 0xff2fff) AM_READWRITE(hdsnd68k_320port_r, hdsnd68k_speech_w) - AM_RANGE(0xff3000, 0xff3fff) AM_READWRITE(hdsnd68k_status_r, hdsnd68k_irqclr_w) - AM_RANGE(0xff4000, 0xff5fff) AM_READWRITE(hdsnd68k_320ram_r, hdsnd68k_320ram_w) - AM_RANGE(0xff6000, 0xff7fff) AM_READWRITE(hdsnd68k_320ports_r, hdsnd68k_320ports_w) - AM_RANGE(0xff8000, 0xffbfff) AM_READWRITE(hdsnd68k_320com_r, hdsnd68k_320com_w) - AM_RANGE(0xffc000, 0xffffff) AM_RAM -ADDRESS_MAP_END - - -ADDRESS_MAP_START(harddriv_sound_board_device::driversnd_dsp_program_map) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x000, 0xfff) AM_RAM AM_SHARE("sounddsp_ram") -ADDRESS_MAP_END +void harddriv_sound_board_device::driversnd_68k_map(address_map &map) +{ + map.unmap_value_high(); + map(0x000000, 0x01ffff).rom(); + map(0xff0000, 0xff0fff).rw(this, FUNC(harddriv_sound_board_device::hdsnd68k_data_r), FUNC(harddriv_sound_board_device::hdsnd68k_data_w)); + map(0xff1000, 0xff1fff).rw(this, FUNC(harddriv_sound_board_device::hdsnd68k_switches_r), FUNC(harddriv_sound_board_device::hdsnd68k_latches_w)); + map(0xff2000, 0xff2fff).rw(this, FUNC(harddriv_sound_board_device::hdsnd68k_320port_r), FUNC(harddriv_sound_board_device::hdsnd68k_speech_w)); + map(0xff3000, 0xff3fff).rw(this, FUNC(harddriv_sound_board_device::hdsnd68k_status_r), FUNC(harddriv_sound_board_device::hdsnd68k_irqclr_w)); + map(0xff4000, 0xff5fff).rw(this, FUNC(harddriv_sound_board_device::hdsnd68k_320ram_r), FUNC(harddriv_sound_board_device::hdsnd68k_320ram_w)); + map(0xff6000, 0xff7fff).rw(this, FUNC(harddriv_sound_board_device::hdsnd68k_320ports_r), FUNC(harddriv_sound_board_device::hdsnd68k_320ports_w)); + map(0xff8000, 0xffbfff).rw(this, FUNC(harddriv_sound_board_device::hdsnd68k_320com_r), FUNC(harddriv_sound_board_device::hdsnd68k_320com_w)); + map(0xffc000, 0xffffff).ram(); +} + + +void harddriv_sound_board_device::driversnd_dsp_program_map(address_map &map) +{ + map.unmap_value_high(); + map(0x000, 0xfff).ram().share("sounddsp_ram"); +} /* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */ -ADDRESS_MAP_START(harddriv_sound_board_device::driversnd_dsp_io_map) - AM_RANGE(0, 0) AM_READ(hdsnddsp_rom_r) AM_WRITE(hdsnddsp_dac_w) - AM_RANGE(1, 1) AM_READ(hdsnddsp_comram_r) - AM_RANGE(2, 2) AM_READ(hdsnddsp_compare_r) - AM_RANGE(1, 2) AM_WRITENOP - AM_RANGE(3, 3) AM_WRITE(hdsnddsp_comport_w) - AM_RANGE(4, 4) AM_WRITE(hdsnddsp_mute_w) - AM_RANGE(5, 5) AM_WRITE(hdsnddsp_gen68kirq_w) - AM_RANGE(6, 7) AM_WRITE(hdsnddsp_soundaddr_w) -ADDRESS_MAP_END +void harddriv_sound_board_device::driversnd_dsp_io_map(address_map &map) +{ + map(0, 0).r(this, FUNC(harddriv_sound_board_device::hdsnddsp_rom_r)).w(this, FUNC(harddriv_sound_board_device::hdsnddsp_dac_w)); + map(1, 1).r(this, FUNC(harddriv_sound_board_device::hdsnddsp_comram_r)); + map(2, 2).r(this, FUNC(harddriv_sound_board_device::hdsnddsp_compare_r)); + map(1, 2).nopw(); + map(3, 3).w(this, FUNC(harddriv_sound_board_device::hdsnddsp_comport_w)); + map(4, 4).w(this, FUNC(harddriv_sound_board_device::hdsnddsp_mute_w)); + map(5, 5).w(this, FUNC(harddriv_sound_board_device::hdsnddsp_gen68kirq_w)); + map(6, 7).w(this, FUNC(harddriv_sound_board_device::hdsnddsp_soundaddr_w)); +} //------------------------------------------------- |