summaryrefslogblamecommitdiffstatshomepage
path: root/src/mame/audio/aztarac.cpp
blob: 4297509c8a79011bf5f040420ad517a93845ca0f (plain) (tree)
1
2
3
4
5
6
7
8
9

                                      





                                                                            
                
                        
                             
 
 
                                 
 
                                     

 
                                                                            
 
                               

                             
                                          

                                          
                                                                 


         
                                      
 

                                
                                    

 
                                     
 
                                      

 
                                              
 
                                

 
                                                  
 
                               
 

                                                             
 
// license:BSD-3-Clause
// copyright-holders:Mathis Rosenhauer
/***************************************************************************

    Centuri Aztarac hardware

***************************************************************************/

#include "emu.h"
#include "cpu/z80/z80.h"
#include "includes/aztarac.h"


uint16_t aztarac_state::sound_r()
{
	return m_sound_status & 0x01;
}

void aztarac_state::sound_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
	if (ACCESSING_BITS_0_7)
	{
		data &= 0xff;
		m_soundlatch->write(data);
		m_sound_status ^= 0x21;
		if (m_sound_status & 0x20)
			m_audiocpu->set_input_line(0, HOLD_LINE);
	}
}

uint8_t aztarac_state::snd_command_r()
{
	m_sound_status |= 0x01;
	m_sound_status &= ~0x20;
	return m_soundlatch->read();
}

uint8_t aztarac_state::snd_status_r()
{
	return m_sound_status & ~0x01;
}

void aztarac_state::snd_status_w(uint8_t data)
{
	m_sound_status &= ~0x10;
}

INTERRUPT_GEN_MEMBER(aztarac_state::snd_timed_irq)
{
	m_sound_status ^= 0x10;

	if (m_sound_status & 0x10)
		device.execute().set_input_line(0,HOLD_LINE);
}