summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/mame/audio/aztarac.c
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/mame/audio/aztarac.c')
-rw-r--r--trunk/src/mame/audio/aztarac.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/trunk/src/mame/audio/aztarac.c b/trunk/src/mame/audio/aztarac.c
new file mode 100644
index 00000000000..895a9ab14f5
--- /dev/null
+++ b/trunk/src/mame/audio/aztarac.c
@@ -0,0 +1,58 @@
+/***************************************************************************
+
+ Centuri Aztarac hardware
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "includes/aztarac.h"
+
+
+READ16_HANDLER( aztarac_sound_r )
+{
+ aztarac_state *state = space->machine().driver_data<aztarac_state>();
+ return state->m_sound_status & 0x01;
+}
+
+WRITE16_HANDLER( aztarac_sound_w )
+{
+ aztarac_state *state = space->machine().driver_data<aztarac_state>();
+ if (ACCESSING_BITS_0_7)
+ {
+ data &= 0xff;
+ soundlatch_w(space, offset, data);
+ state->m_sound_status ^= 0x21;
+ if (state->m_sound_status & 0x20)
+ cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ }
+}
+
+READ8_HANDLER( aztarac_snd_command_r )
+{
+ aztarac_state *state = space->machine().driver_data<aztarac_state>();
+ state->m_sound_status |= 0x01;
+ state->m_sound_status &= ~0x20;
+ return soundlatch_r(space,offset);
+}
+
+READ8_HANDLER( aztarac_snd_status_r )
+{
+ aztarac_state *state = space->machine().driver_data<aztarac_state>();
+ return state->m_sound_status & ~0x01;
+}
+
+WRITE8_HANDLER( aztarac_snd_status_w )
+{
+ aztarac_state *state = space->machine().driver_data<aztarac_state>();
+ state->m_sound_status &= ~0x10;
+}
+
+INTERRUPT_GEN( aztarac_snd_timed_irq )
+{
+ aztarac_state *state = device->machine().driver_data<aztarac_state>();
+ state->m_sound_status ^= 0x10;
+
+ if (state->m_sound_status & 0x10)
+ device_set_input_line(device,0,HOLD_LINE);
+}