diff options
Diffstat (limited to 'src/mame/drivers/kchamp.cpp')
-rw-r--r-- | src/mame/drivers/kchamp.cpp | 35 |
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 */ |