summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/sound/es5506.h
blob: 13deb9e827ceae8b5fceb50813c7b5d16671494c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**********************************************************************************************
 *
 *   Ensoniq ES5505/6 driver
 *   by Aaron Giles
 *
 **********************************************************************************************/

#pragma once

#ifndef __ES5506_H__
#define __ES5506_H__

typedef struct _es5505_interface es5505_interface;
struct _es5505_interface
{
	const char * region0;						/* memory region where the sample ROM lives */
	const char * region1;						/* memory region where the sample ROM lives */
	void (*irq_callback)(running_machine *machine, int state);	/* irq callback */
	UINT16 (*read_port)(void);			/* input port read */
};

READ16_HANDLER( es5505_data_0_r );
READ16_HANDLER( es5505_data_1_r );
WRITE16_HANDLER( es5505_data_0_w );
WRITE16_HANDLER( es5505_data_1_w );

void es5505_voice_bank_0_w(int voice, int bank);
void es5505_voice_bank_1_w(int voice, int bank);

SND_GET_INFO( es5505 );
#define SOUND_ES5505 SND_GET_INFO_NAME( es5505 )


typedef struct _es5506_interface es5506_interface;
struct _es5506_interface
{
	const char * region0;						/* memory region where the sample ROM lives */
	const char * region1;						/* memory region where the sample ROM lives */
	const char * region2;						/* memory region where the sample ROM lives */
	const char * region3;						/* memory region where the sample ROM lives */
	void (*irq_callback)(running_machine *machine, int state);	/* irq callback */
	UINT16 (*read_port)(void);			/* input port read */
};

READ8_HANDLER( es5506_data_0_r );
READ8_HANDLER( es5506_data_1_r );
WRITE8_HANDLER( es5506_data_0_w );
WRITE8_HANDLER( es5506_data_1_w );

READ16_HANDLER( es5506_data_0_word_r );
READ16_HANDLER( es5506_data_1_word_r );
WRITE16_HANDLER( es5506_data_0_word_w );
WRITE16_HANDLER( es5506_data_1_word_w );

void es5506_voice_bank_0_w(int voice, int bank);
void es5506_voice_bank_1_w(int voice, int bank);

SND_GET_INFO( es5506 );
#define SOUND_ES5506 SND_GET_INFO_NAME( es5506 )

#endif /* __ES5506_H__ */