summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/zaccaria.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/zaccaria.cpp')
-rw-r--r--src/mame/audio/zaccaria.cpp52
1 files changed, 43 insertions, 9 deletions
diff --git a/src/mame/audio/zaccaria.cpp b/src/mame/audio/zaccaria.cpp
index 5238d91461a..a80badd075a 100644
--- a/src/mame/audio/zaccaria.cpp
+++ b/src/mame/audio/zaccaria.cpp
@@ -2,6 +2,7 @@
// copyright-holders:Vas Crabb
#include "emu.h"
#include "audio/zaccaria.h"
+#include "audio/nl_zac1b11142.h"
#include "cpu/m6800/m6800.h"
#include "machine/clock.h"
@@ -323,6 +324,10 @@ zac1b11142_audio_device::zac1b11142_audio_device(machine_config const &mconfig,
, m_audiocpu(*this, "audiocpu")
, m_pia_1i(*this, "pia_1i")
, m_speech(*this, "speech")
+ , m_ioa(*this, "sound_nl:ioa%u", 0)
+ , m_level(*this, "sound_nl:level")
+ , m_levelt(*this, "sound_nl:levelt")
+ , m_sw1(*this, "sound_nl:sw1")
, m_inputs(*this, "1B11142")
, m_host_command(0)
{
@@ -353,20 +358,22 @@ WRITE_LINE_MEMBER(zac1b11142_audio_device::ressound_w)
WRITE8_MEMBER(zac1b11142_audio_device::ay_4g_porta_w)
{
- // TODO: (data & 0x07) controls tromba mix volume
- // TODO: (data & 0x08) controls cassa gate
- // TODO: (data & 0x10) controls rullante gate
+ m_ioa[0]->write_line(BIT(data, 0)); // tromba mix volume
+ m_ioa[1]->write_line(BIT(data, 1)); // " " "
+ m_ioa[2]->write_line(BIT(data, 2)); // " " "
+ m_ioa[3]->write_line(BIT(data, 3)); // cassa gate
+ m_ioa[4]->write_line(BIT(data, 4)); // rullante gate
}
WRITE8_MEMBER(zac1b11142_audio_device::ay_4h_porta_w)
{
- // TODO: data & 0x01 controls LEVEL
- // TODO: data & 0x02 controls LEVELT
+ m_level->write_line(BIT(data, 0)); // output level
+ m_levelt->write_line(BIT(data, 1)); // tromba level
}
WRITE8_MEMBER(zac1b11142_audio_device::ay_4h_portb_w)
{
- // TODO: data & 0x01 controls ANAL3 filter
+ m_sw1->write_line(BIT(data, 0)); // ANAL3 filter
}
READ8_MEMBER(zac1b11142_audio_device::host_command_r)
@@ -401,12 +408,16 @@ MACHINE_CONFIG_MEMBER(zac1b11142_audio_device::device_add_mconfig)
MCFG_DEVICE_MODIFY("melodypsg1")
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(zac1b11142_audio_device, ay_4g_porta_w))
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.15, 0)
+ MCFG_SOUND_ROUTE_EX(0, "sound_nl", 1.0, 0)
+ MCFG_SOUND_ROUTE_EX(1, "sound_nl", 1.0, 1)
+ MCFG_SOUND_ROUTE_EX(2, "sound_nl", 1.0, 2)
MCFG_DEVICE_MODIFY("melodypsg2")
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(zac1b11142_audio_device, ay_4h_porta_w))
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(zac1b11142_audio_device, ay_4h_portb_w))
- MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.15, 0)
+ MCFG_SOUND_ROUTE_EX(0, "sound_nl", 1.0, 3)
+ MCFG_SOUND_ROUTE_EX(1, "sound_nl", 1.0, 4)
+ MCFG_SOUND_ROUTE_EX(2, "sound_nl", 1.0, 5)
MCFG_CPU_ADD("audiocpu", M6802, XTAL_3_579545MHz) // verified on pcb
MCFG_CPU_PROGRAM_MAP(zac1b11142_audio_map)
@@ -426,7 +437,30 @@ MACHINE_CONFIG_MEMBER(zac1b11142_audio_device::device_add_mconfig)
MCFG_TMS52XX_IRQ_HANDLER(DEVWRITELINE("pia_1i", pia6821_device, cb1_w))
MCFG_TMS52XX_READYQ_HANDLER(DEVWRITELINE("pia_1i", pia6821_device, ca2_w))
MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 0.80, 0)
-}
+
+ MCFG_SOUND_ADD("sound_nl", NETLIST_SOUND, 48000)
+ MCFG_NETLIST_SETUP(zac1b11142)
+ MCFG_MIXER_ROUTE(ALL_OUTPUTS, DEVICE_SELF_OWNER, 1.0, 0)
+
+ MCFG_NETLIST_LOGIC_INPUT("sound_nl", "ioa0", "I_IOA0.IN", 0)
+ MCFG_NETLIST_LOGIC_INPUT("sound_nl", "ioa1", "I_IOA1.IN", 0)
+ MCFG_NETLIST_LOGIC_INPUT("sound_nl", "ioa2", "I_IOA2.IN", 0)
+ MCFG_NETLIST_LOGIC_INPUT("sound_nl", "ioa3", "I_IOA3.IN", 0)
+ MCFG_NETLIST_LOGIC_INPUT("sound_nl", "ioa4", "I_IOA4.IN", 0)
+ MCFG_NETLIST_LOGIC_INPUT("sound_nl", "level", "I_LEVEL.IN", 0)
+ MCFG_NETLIST_LOGIC_INPUT("sound_nl", "levelt", "I_LEVELT.IN", 0)
+ MCFG_NETLIST_LOGIC_INPUT("sound_nl", "sw1", "I_SW1.IN", 0)
+
+ MCFG_NETLIST_STREAM_INPUT("sound_nl", 0, "R_AY4G_A.R")
+ MCFG_NETLIST_STREAM_INPUT("sound_nl", 1, "R_AY4G_B.R")
+ MCFG_NETLIST_STREAM_INPUT("sound_nl", 2, "R_AY4G_C.R")
+ MCFG_NETLIST_STREAM_INPUT("sound_nl", 3, "R_AY4H_A.R")
+ MCFG_NETLIST_STREAM_INPUT("sound_nl", 4, "R_AY4H_B.R")
+ MCFG_NETLIST_STREAM_INPUT("sound_nl", 5, "R_AY4H_C.R")
+
+ MCFG_NETLIST_STREAM_OUTPUT("sound_nl", 0, "P1.2")
+ MCFG_NETLIST_ANALOG_MULT_OFFSET(3000.0 * 10.0, 0.0) // FIXME: no clue what numbers to use here
+MACHINE_CONFIG_END
ioport_constructor zac1b11142_audio_device::device_input_ports() const
{