1 #ifndef __2610INTF_H__
2 #define __2610INTF_H__
3 
4 #include "fm.h"
5 #ifdef BUILD_YM2610
6   void YM2610UpdateRequest(int chip);
7 #endif
8 
9 #define   MAX_2610    (2)
10 
11 #ifndef VOL_YM3012
12 /* #define YM3014_VOL(Vol,Pan) VOL_YM3012((Vol)/2,Pan,(Vol)/2,Pan) */
13 #define YM3012_VOL(LVol,LPan,RVol,RPan) (MIXER(LVol,LPan)|(MIXER(RVol,RPan) << 16))
14 #endif
15 
16 struct YM2610interface
17 {
18 	int num;	/* total number of 8910 in the machine */
19 	int baseclock;
20 	int volumeSSG[MAX_8910]; /* for SSG sound */
21 	mem_read_handler portAread[MAX_8910];
22 	mem_read_handler portBread[MAX_8910];
23 	mem_write_handler portAwrite[MAX_8910];
24 	mem_write_handler portBwrite[MAX_8910];
25 	void ( *handler[MAX_8910] )( int irq );	/* IRQ handler for the YM2610 */
26 	int pcmromb[MAX_2610];		/* Delta-T rom region */
27 	int pcmroma[MAX_2610];		/* ADPCM   rom region */
28 	int volumeFM[MAX_2610];		/* use YM3012_VOL macro */
29 };
30 
31 /************************************************/
32 /* Sound Hardware Start							*/
33 /************************************************/
34 int YM2610_sh_start(const struct MachineSound *msound);
35 int YM2610B_sh_start(const struct MachineSound *msound);
36 
37 /************************************************/
38 /* Sound Hardware Stop							*/
39 /************************************************/
40 void YM2610_sh_stop(void);
41 
42 void YM2610_sh_reset(void);
43 
44 /************************************************/
45 /* Chip 0 functions								*/
46 /************************************************/
47 READ_HANDLER( YM2610_status_port_0_A_r );
48 READ16_HANDLER( YM2610_status_port_0_A_lsb_r );
49 READ_HANDLER( YM2610_status_port_0_B_r );
50 READ16_HANDLER( YM2610_status_port_0_B_lsb_r );
51 READ_HANDLER( YM2610_read_port_0_r );
52 READ16_HANDLER( YM2610_read_port_0_lsb_r );
53 WRITE_HANDLER( YM2610_control_port_0_A_w );
54 WRITE16_HANDLER( YM2610_control_port_0_A_lsb_w );
55 WRITE_HANDLER( YM2610_control_port_0_B_w );
56 WRITE16_HANDLER( YM2610_control_port_0_B_lsb_w );
57 WRITE_HANDLER( YM2610_data_port_0_A_w );
58 WRITE16_HANDLER( YM2610_data_port_0_A_lsb_w );
59 WRITE_HANDLER( YM2610_data_port_0_B_w );
60 WRITE16_HANDLER( YM2610_data_port_0_B_lsb_w );
61 
62 /************************************************/
63 /* Chip 1 functions								*/
64 /************************************************/
65 READ_HANDLER( YM2610_status_port_1_A_r );
66 READ16_HANDLER( YM2610_status_port_1_A_lsb_r );
67 READ_HANDLER( YM2610_status_port_1_B_r );
68 READ16_HANDLER( YM2610_status_port_1_B_lsb_r );
69 READ_HANDLER( YM2610_read_port_1_r );
70 READ16_HANDLER( YM2610_read_port_1_lsb_r );
71 WRITE_HANDLER( YM2610_control_port_1_A_w );
72 WRITE16_HANDLER( YM2610_control_port_1_A_lsb_w );
73 WRITE_HANDLER( YM2610_control_port_1_B_w );
74 WRITE16_HANDLER( YM2610_control_port_1_B_lsb_w );
75 WRITE_HANDLER( YM2610_data_port_1_A_w );
76 WRITE16_HANDLER( YM2610_data_port_1_A_lsb_w );
77 WRITE_HANDLER( YM2610_data_port_1_B_w );
78 WRITE16_HANDLER( YM2610_data_port_1_B_lsb_w );
79 
80 #endif
81 /**************** end of file ****************/
82