/** << MSC V5.1 >> ************************************************************
**
**	EVOL : 電子ボリューム操作プログラム ( マイクはOFF )
**
**	----- HISTORY -----
**	1990.02.22 : CREATE
**	1990.07.03 : MUTE Check 追加
**
**	Programmed by Y.Hirata ( Nifty ID : NAB03321 )
**
******************************************************************************/

#include	<stdio.h>
#include	<dos.h>
#include	<stdlib.h>
#include	<conio.h>
#include	"evol.h"

/***********************  Electronics Volume Set  ****************************/
/*
**	< INPUT  > : vol ... 0 〜 63 [dec] ( 可変電子ボリューム )
**	< OUTPUT > : none
**	< RETURN > : none
*/
void evs( unsigned char vol )
{
	outp( MUTE_REG,A_MUTE_OFF ) ;	/* ALL Mute Control	  : Mute Off		*/

	outp( EVOL_REG1,LINE_L_VAR ) ;	/* Electronics Volume : Line in (L)		*/
	outp( EVOL_REG0,vol ) ;			/* Electronics Volume : Line in data 	*/
	outp( EVOL_REG1,LINE_R_VAR );	/* Electronics Volume : Line in (R) 	*/
	outp( EVOL_REG0,vol ) ;			/* Electronics Volume : Line in data	*/
	outp( EVOL_REG1,TV_L_VAR ) ;	/* Electronics Volume : TV in (L)		*/
	outp( EVOL_REG0,vol ) ;			/* Electronics Volume : Line in data	*/
	outp( EVOL_REG1,TV_R_VAR ) ;	/* Electronics Volume : TV in (L)		*/
	outp( EVOL_REG0,vol ) ;			/* Electronics Volume : Line in data	*/

	outp( EVOL_REG3,CD_L_VAR ) ;	/* Electronics Volume : CD out  (L)		*/
	outp( EVOL_REG2,vol ) ;			/* CD & MIC & Modem data				*/
	outp( EVOL_REG3,CD_R_VAR ) ;	/* Electronics Volume : CD out  (R)		*/
	outp( EVOL_REG2,vol ) ;			/* CD & MIC & Modem data				*/
	outp( EVOL_REG3,MIC_OFF ) ;		/* Electronics Volume : MIC in			*/
	outp( EVOL_REG2,ZERO ) ;		/* CD & MIC & Modem data				*/
	outp( EVOL_REG3,MODEM_VAR ) ;	/* Electronics Volume : MODEM out		*/
	outp( EVOL_REG2,vol ) ;			/* CD & MIC & Modem data				*/
}

/**************************** MUTE 確認 **************************************/
/*
**	< RETURN > : = TRUE  - MUTE ON
**				 = FALSE - MUTE OFF
*/
int mutechk()
{
	if ( (inp( MUTE_REG ) & 0x40) == 0x40 ) {
		return( FALSE ) ;
	} else {
		return( TRUE ) ;
	}
}

/**************************** MUTE 設定 **************************************/
void muteon()
{
	outp( MUTE_REG,A_MUTE_ON ) ;	/* ALL Mute Control	  : Mute On			*/
}

/**************************** MUTE 解除 **************************************/
void muteoff()
{
	outp( MUTE_REG,A_MUTE_OFF ) ;	/* ALL Mute Control	  : Mute Off		*/
}

/**************************** Volume MAX *************************************/
void VolMax()
{
	evs( VOL_MAX );
}

