summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/kchamp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/kchamp.cpp')
-rw-r--r--src/mame/drivers/kchamp.cpp35
1 files changed, 24 insertions, 11 deletions
diff --git a/src/mame/drivers/kchamp.cpp b/src/mame/drivers/kchamp.cpp
index 648373d5c6c..d48f417f27a 100644
--- a/src/mame/drivers/kchamp.cpp
+++ b/src/mame/drivers/kchamp.cpp
@@ -68,7 +68,7 @@ IO ports and memory map changes. Dip switches differ too.
#include "includes/kchamp.h"
#include "cpu/z80/z80.h"
-#include "sound/ay8910.h"
+#include "machine/74259.h"
#include "sound/volt_reg.h"
#include "screen.h"
#include "speaker.h"
@@ -78,17 +78,22 @@ IO ports and memory map changes. Dip switches differ too.
* VS Version *
********************/
-WRITE8_MEMBER(kchamp_state::control_w)
+WRITE_LINE_MEMBER(kchamp_state::nmi_enable_w)
{
- m_nmi_enable = data & 1;
+ m_nmi_enable = state;
if (!m_nmi_enable)
m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
}
-WRITE8_MEMBER(kchamp_state::sound_reset_w)
+WRITE_LINE_MEMBER(kchamp_state::sound_reset_w)
{
- if (!(data & 1))
- m_audiocpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
+ m_audiocpu->set_input_line(INPUT_LINE_RESET, state ? CLEAR_LINE : ASSERT_LINE);
+ if (!state)
+ {
+ m_ay[0]->reset();
+ m_ay[1]->reset();
+ sound_control_w(machine().dummy_space(), 0, 0);
+ }
}
WRITE8_MEMBER(kchamp_state::sound_control_w)
@@ -115,9 +120,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kchampvs_io_map, AS_IO, 8, kchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_WRITE(kchamp_flipscreen_w)
- AM_RANGE(0x01, 0x01) AM_WRITE(control_w)
- AM_RANGE(0x02, 0x02) AM_WRITE(sound_reset_w)
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
+ AM_RANGE(0x00, 0x07) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
AM_RANGE(0x40, 0x40) AM_READ_PORT("P2") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
AM_RANGE(0x80, 0x80) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc0, 0xc0) AM_READ_PORT("DSW")
@@ -170,8 +174,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kchamp_io_map, AS_IO, 8, kchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x80, 0x80) AM_READ_PORT("DSW") AM_WRITE(kchamp_flipscreen_w)
- AM_RANGE(0x81, 0x81) AM_WRITE(control_w)
+ AM_RANGE(0x80, 0x80) AM_READ_PORT("DSW")
+ AM_RANGE(0x80, 0x87) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
AM_RANGE(0x90, 0x90) AM_READ_PORT("P1")
AM_RANGE(0x98, 0x98) AM_READ_PORT("P2")
AM_RANGE(0xa0, 0xa0) AM_READ_PORT("SYSTEM")
@@ -404,6 +408,11 @@ static MACHINE_CONFIG_START( kchampvs )
MCFG_CPU_IO_MAP(kchampvs_sound_io_map) /* irq's triggered from main cpu */
/* nmi's from msm5205 */
+ MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 8C
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(kchamp_state, flipscreen_w))
+ MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(kchamp_state, nmi_enable_w))
+ MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(kchamp_state, sound_reset_w))
+
MCFG_MACHINE_START_OVERRIDE(kchamp_state,kchampvs)
/* video hardware */
@@ -460,6 +469,10 @@ static MACHINE_CONFIG_START( kchamp )
/* irq's triggered from main cpu */
/* nmi's from 125 Hz clock */
+ MCFG_DEVICE_ADD("mainlatch", LS259, 0)
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(kchamp_state, flipscreen_w))
+ MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(kchamp_state, nmi_enable_w))
+
MCFG_MACHINE_START_OVERRIDE(kchamp_state,kchamp)
/* video hardware */