progolf: Soundlatch modernization (nw)

This commit is contained in:
AJR 2017-08-17 20:36:45 -04:00
parent c86970de6c
commit 5b38c7e994

View File

@ -58,6 +58,7 @@ Twenty four 8116 rams.
#include "video/mc6845.h" #include "video/mc6845.h"
#include "machine/deco222.h" #include "machine/deco222.h"
#include "machine/decocpu6.h" #include "machine/decocpu6.h"
#include "machine/gen_latch.h"
#include "screen.h" #include "screen.h"
#include "speaker.h" #include "speaker.h"
@ -88,15 +89,12 @@ public:
uint8_t m_scrollx_hi; uint8_t m_scrollx_hi;
uint8_t m_scrollx_lo; uint8_t m_scrollx_lo;
uint8_t m_gfx_switch; uint8_t m_gfx_switch;
uint8_t m_sound_cmd;
DECLARE_WRITE8_MEMBER(charram_w); DECLARE_WRITE8_MEMBER(charram_w);
DECLARE_WRITE8_MEMBER(char_vregs_w); DECLARE_WRITE8_MEMBER(char_vregs_w);
DECLARE_WRITE8_MEMBER(scrollx_lo_w); DECLARE_WRITE8_MEMBER(scrollx_lo_w);
DECLARE_WRITE8_MEMBER(scrollx_hi_w); DECLARE_WRITE8_MEMBER(scrollx_hi_w);
DECLARE_WRITE8_MEMBER(flip_screen_w); DECLARE_WRITE8_MEMBER(flip_screen_w);
DECLARE_WRITE8_MEMBER(audio_command_w);
DECLARE_READ8_MEMBER(audio_command_r);
DECLARE_READ8_MEMBER(videoram_r); DECLARE_READ8_MEMBER(videoram_r);
DECLARE_WRITE8_MEMBER(videoram_w); DECLARE_WRITE8_MEMBER(videoram_w);
@ -112,7 +110,6 @@ public:
void progolf_state::machine_start() void progolf_state::machine_start()
{ {
save_item(NAME(m_sound_cmd));
} }
void progolf_state::video_start() void progolf_state::video_start()
@ -228,18 +225,6 @@ WRITE8_MEMBER(progolf_state::flip_screen_w)
printf("$9600 with data = %02x used\n",data); printf("$9600 with data = %02x used\n",data);
} }
WRITE8_MEMBER(progolf_state::audio_command_w)
{
m_sound_cmd = data;
m_audiocpu->set_input_line(0, ASSERT_LINE);
}
READ8_MEMBER(progolf_state::audio_command_r)
{
m_audiocpu->set_input_line(0, CLEAR_LINE);
return m_sound_cmd;
}
READ8_MEMBER(progolf_state::videoram_r) READ8_MEMBER(progolf_state::videoram_r)
{ {
uint8_t *gfx_rom = memregion("gfx1")->base(); uint8_t *gfx_rom = memregion("gfx1")->base();
@ -283,7 +268,7 @@ static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, progolf_state )
AM_RANGE(0x9800, 0x9800) AM_READ_PORT("DSW1") AM_RANGE(0x9800, 0x9800) AM_READ_PORT("DSW1")
AM_RANGE(0x9800, 0x9800) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0x9800, 0x9800) AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE(0x9801, 0x9801) AM_DEVWRITE("crtc", mc6845_device, register_w) AM_RANGE(0x9801, 0x9801) AM_DEVWRITE("crtc", mc6845_device, register_w)
AM_RANGE(0x9a00, 0x9a00) AM_READ_PORT("DSW2") AM_WRITE(audio_command_w) AM_RANGE(0x9a00, 0x9a00) AM_READ_PORT("DSW2") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
// AM_RANGE(0x9e00, 0x9e00) AM_WRITENOP // AM_RANGE(0x9e00, 0x9e00) AM_WRITENOP
AM_RANGE(0xb000, 0xffff) AM_ROM AM_RANGE(0xb000, 0xffff) AM_ROM
ADDRESS_MAP_END ADDRESS_MAP_END
@ -294,7 +279,7 @@ static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, progolf_state )
AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE("ay1", ay8910_device, address_w) AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE("ay1", ay8910_device, address_w)
AM_RANGE(0x6000, 0x6fff) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w) AM_RANGE(0x6000, 0x6fff) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w)
AM_RANGE(0x7000, 0x7fff) AM_DEVWRITE("ay2", ay8910_device, address_w) AM_RANGE(0x7000, 0x7fff) AM_DEVWRITE("ay2", ay8910_device, address_w)
AM_RANGE(0x8000, 0x8fff) AM_READ(audio_command_r) AM_WRITENOP //volume control? AM_RANGE(0x8000, 0x8fff) AM_DEVREADWRITE("soundlatch", generic_latch_8_device, read, acknowledge_w)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END ADDRESS_MAP_END
@ -434,6 +419,10 @@ static MACHINE_CONFIG_START( progolf )
MCFG_QUANTUM_PERFECT_CPU("maincpu") MCFG_QUANTUM_PERFECT_CPU("maincpu")
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57) MCFG_SCREEN_REFRESH_RATE(57)