#define BEEP_CLK()	BPB_freeon2(  4,2000 )
#define BEEP_DMY()	BPB_freeon2( 30, 400 )
#define BEEP_CAU()	BPB_freeon2(  4,1000 )
#define BEEP_PRT()	BPB_freeon2(  1,3000 )

#define	wait_Rtrg() wait_trig( 0, 1 )
#define	wait_rel()	wait_trgrel( 0 )

#define VECT_DIR(x,y)	pad_ang[ ((x<=0)<<3)|((x>=0)<<2)|((y<=0)<<1)|(y>=0) ]

#define A_TRG		16
#define B_TRG		32
#define START_TRG	64
#define SELECT_TRG	128
#define R_PAD		8
#define L_PAD		4
#define D_PAD		2
#define U_PAD		1

#define	NEUTRAL		8

#define IS_A_TRG(n)		(( n & A_TRG )!= 0 )
#define IS_B_TRG(n)		(( n & B_TRG )!= 0 )
#define IS_START_TRG(n)	(( n & START_TRG  )!= 0 )
#define IS_SEL_TRG(n)	(( n & SELECT_TRG )!= 0 )
#define IS_R_PAD(n)		(( n & R_PAD )!= 0 )
#define IS_L_PAD(n)		(( n & L_PAD )!= 0 )
#define IS_D_PAD(n)		(( n & D_PAD )!= 0 )
#define IS_U_PAD(n)		(( n & U_PAD )!= 0 )

extern int		pad_ang[], joy_ang[], bit_ang[];
extern struct	{ int x,y ;} ang_p[];
extern char		swork[];

int		wait_trig( int port, int rel );
void	wait_trgrel();
void	break_point( int n );
void	_disp_status( int n, char *msg, int x, int y );

int		sound_init( char *fbuf ), sound_end();
void	voice( int ch, int vol, int n );
void	dim_voice( int n, int vol, int dx, int dy );
