
/*	-------------------------------------------------------------------------------------------------
 *		構築
	-------------------------------------------------------------------------------------------------	*/
#include <sys/bios.h>

#include "bg.h"



/*	-------------------------------------------------------------------------------------------------
 *		[概要]
 *
 *		[IN]
 *
 *		[OUT]
 *
 *		[RETURN]
 *
 *	-------------------------------------------------------------------------------------------------	*/
void bg_Init()
{
}

/*	-------------------------------------------------------------------------------------------------
 *		[概要]
 *
 *		[IN]
 *
 *		[OUT]
 *
 *		[RETURN]
 *
 *	-------------------------------------------------------------------------------------------------	*/
void bg_Term()
{
}

/*	-------------------------------------------------------------------------------------------------
 *		[概要]
 *			スクリーンの表示を行います
 *		[IN]
 *			スクリーン番号　0 - 1
 *	-------------------------------------------------------------------------------------------------	*/
void bg_On( int iScreenNo )
{
	unsigned int uiVal;
	uiVal = display_status();
	if( iScreenNo == 0 ){
		uiVal = uiVal | DCM_SCR1;
	} else {
		uiVal = uiVal | DCM_SCR2;
	}
	display_control( uiVal );
}

/*	-------------------------------------------------------------------------------------------------
 *		[概要]
 *			スクリーンを非表示にします
 *		[IN]
 *			スクリーン番号　0 - 1
 *	-------------------------------------------------------------------------------------------------	*/
void bg_Off( int iScreenNo )
{
	unsigned int uiVal;
	uiVal = display_status();
	if( iScreenNo == 0 ){
		uiVal = uiVal & (0xffff^DCM_SCR1);
	} else {
		uiVal = uiVal & (0xffff^DCM_SCR2);
	}
	display_control( uiVal );
}

/*	-------------------------------------------------------------------------------------------------
 *		[概要]
 *
 *		[IN]
 *
 *		[OUT]
 *
 *		[RETURN]
 *
 *	-------------------------------------------------------------------------------------------------	*/
void bg_Clear( int iScreenNo, int iChrNo )
{
	screen_fill_char( iScreenNo, 0, 0, BG_SCREEN_WIDTH-1, BG_SCREEN_HEIGHT-1, iChrNo );
}

/*	-------------------------------------------------------------------------------------------------
 *		[概要]
 *
 *		[IN]
 *
 *		[OUT]
 *
 *		[RETURN]
 *
 *	-------------------------------------------------------------------------------------------------	*/
void bg_SetOffset( int iScreenNo, int iX, int iY )
{
	screen_set_scroll( iScreenNo, iX, iY );
}

/*	-------------------------------------------------------------------------------------------------
 *		[概要]
 *
 *		[IN]
 *
 *		[OUT]
 *
 *		[RETURN]
 *
 *	-------------------------------------------------------------------------------------------------	*/
void bg_Set( int iScreenNo, int iX, int iY, int iChrNo )
{
	screen_set_char( iScreenNo, iX, iY, 1, 1, &iChrNo );
}

/*	-------------------------------------------------------------------------------------------------
 *		[概要]
 *
 *		[IN]
 *
 *		[OUT]
 *
 *		[RETURN]
 *
 *	-------------------------------------------------------------------------------------------------	*/
void bg_Text( int iScreen, int iX, int iY, char * pText, int iParam )
{
	while( *pText != 0 ){
		bg_Set( iScreen, iX, iY, (BG_TEXT_BASE + *pText) | iParam );
		pText++;
		iX++;
		if( iX >= BG_SCREEN_WIDTH ){ return;	}
	}
}

