From 6e6794897590bfdfac5986706c50818720e129b6 Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 14 Jun 2017 00:53:33 -0400 Subject: tail2nos: Soundlatch modernization (nw) --- src/mame/drivers/tail2nos.cpp | 21 +++++---------------- src/mame/includes/tail2nos.h | 3 --- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/src/mame/drivers/tail2nos.cpp b/src/mame/drivers/tail2nos.cpp index 61d20606526..f5d6e9ddb62 100644 --- a/src/mame/drivers/tail2nos.cpp +++ b/src/mame/drivers/tail2nos.cpp @@ -25,21 +25,9 @@ #include "speaker.h" -WRITE8_MEMBER(tail2nos_state::sound_command_w) -{ - m_pending_command = 1; - m_soundlatch->write(space, offset, data & 0xff); - m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); -} - -WRITE8_MEMBER(tail2nos_state::sound_semaphore_w) -{ - m_pending_command = 0; -} - READ8_MEMBER(tail2nos_state::sound_semaphore_r) { - return m_pending_command; + return m_soundlatch->pending_r(); } WRITE8_MEMBER(tail2nos_state::sound_bankswitch_w) @@ -62,7 +50,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tail2nos_state ) AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE8(tail2nos_gfxbank_w, 0x00ff) AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") - AM_RANGE(0xfff008, 0xfff009) AM_READWRITE8(sound_semaphore_r,sound_command_w,0x00ff) + AM_RANGE(0xfff008, 0xfff009) AM_READ8(sound_semaphore_r, 0x00ff) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff) AM_RANGE(0xfff020, 0xfff023) AM_DEVWRITE8("gga", vsystem_gga_device, write, 0x00ff) // AM_RANGE(0xfff030, 0xfff031) link comms ADDRESS_MAP_END @@ -75,7 +63,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, tail2nos_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x07, 0x07) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_WRITE(sound_semaphore_w) + AM_RANGE(0x07, 0x07) AM_DEVREADWRITE("soundlatch", generic_latch_8_device, read, acknowledge_w) AM_RANGE(0x08, 0x0b) AM_DEVWRITE("ymsnd", ym2608_device, write) #if 0 AM_RANGE(0x18, 0x1b) AM_DEVREAD("ymsnd", ym2608_device, read) @@ -231,7 +219,6 @@ void tail2nos_state::machine_start() save_item(NAME(m_txpalette)); save_item(NAME(m_video_enable)); save_item(NAME(m_flip_screen)); - save_item(NAME(m_pending_command)); } void tail2nos_state::machine_reset() @@ -276,6 +263,8 @@ static MACHINE_CONFIG_START( tail2nos ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_GENERIC_LATCH_8_ADD("soundlatch") + MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", INPUT_LINE_NMI)) + MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true) MCFG_SOUND_ADD("ymsnd", YM2608, XTAL_8MHz) /* verified on pcb */ MCFG_YM2608_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) diff --git a/src/mame/includes/tail2nos.h b/src/mame/includes/tail2nos.h index 133610376d2..398a645c532 100644 --- a/src/mame/includes/tail2nos.h +++ b/src/mame/includes/tail2nos.h @@ -35,7 +35,6 @@ public: int m_txpalette; bool m_video_enable; bool m_flip_screen; - uint8_t m_pending_command; /* devices */ required_device m_maincpu; @@ -49,9 +48,7 @@ public: DECLARE_WRITE16_MEMBER(tail2nos_txvideoram_w); DECLARE_WRITE16_MEMBER(tail2nos_zoomdata_w); DECLARE_WRITE8_MEMBER(tail2nos_gfxbank_w); - DECLARE_WRITE8_MEMBER(sound_command_w); DECLARE_WRITE8_MEMBER(sound_bankswitch_w); - DECLARE_WRITE8_MEMBER(sound_semaphore_w); DECLARE_READ8_MEMBER(sound_semaphore_r); TILE_GET_INFO_MEMBER(get_tile_info); virtual void machine_start() override; -- cgit v1.2.3