summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tail2nos.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tail2nos.cpp')
-rw-r--r--src/mame/drivers/tail2nos.cpp21
1 files changed, 5 insertions, 16 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))