int	dispC=0;
/*	チェック中表示			*/
void	DispChk()
{
	MMI_SendMessage(Message_Par100,MM_SETMSG,1,chkStr[dispC%MAXchkStr]);
	MMI_SendMessage(Dialog_Par,MM_ERASE,0);
	MMI_SendMessage(Dialog_Par,MM_SHOW,0);
	dispC=dispC+1;
	return;
}
/*	EXECメッセージ表示	*/
void	DispExecMes(no)
int		no;
{
	MMI_SendMessage(Message_Par100,MM_SETMSG,1,parStr[no]);
	MMI_SendMessage(Dialog_Par,MM_ERASE,0);
	MMI_SendMessage(Dialog_Par,MM_SHOW,0);
	return;
}

/*	アラート表示			*/
int	AlertDisp(no)
int		no;
{
	char	*str[3];
	int		flag,ret,mos_no;

	str[0]=errorStr[no];
	if(no>MES_MAX)
		return -1;
	else
	{
		if(no==MES_userstop)
		{
			str[1]=alertStr[1];
			str[2]=alertStr[2];
			flag=AM_ALERT2 | AM_ALERTB1C | AM_ALERTB0R;
		}
		else
		{
			str[1]=alertStr[ 0];
			flag=AM_ALERT1 | AM_ALERTB0E;
		}
	}

	mos_no=MMI_GetPtr();
	execFlag=TRUE;
	ret=MMI_CallMessage( MMI_GetApliId(), GM_ALERT, flag, (int)str);
	execFlag=FALSE;
	MMI_SetPtr(mos_no);

	return ret;
}

/*	CD ERROR CHECK				*/
int	CDerrorChk(no,l)
int no;
int *l;
{
	switch(no)
	{
		case CDERR0:	AlertDisp(MES_devnotin);		// Not Raedy
						return -1;
		case CDERR2:	AlertDisp(MES_devpoff);			// Drive Not Connect
						return -1;
		case CDERR3:									// Command Illigal end
		case CDERR5:	if(*l<3)						// Hardware Error
						{
							*l=*l+1;
							return 1;
						}
						else	// ﾘﾄﾗｲしても駄目 
						{
							AlertDisp(MES_devnoacc);
							return -1;
						}
		case CDERR4:	AlertDisp(MES_readcdinf);		// Media Error
						return -1;
		default:		return  0;
	}
}

/*	ファイルダイアログ			*/
int	GetFileName()
{
int				ret=-1;
int				atr;
unsigned int	selectCnt;
unsigned int	fdg_flag=FDG_TEXT | FDG_REDRAW | FDG_ALERT | FDG_FILEONLY | FDG_SLCTCHK;

	fdg_file[3]=(file_no/100)%10+'0';
	fdg_file[4]=(file_no/ 10)%10+'0';
	fdg_file[5]= file_no     %10+'0';
	FDG_SetTitle(fdg_titl,fdg_exec,fdg_cncl);
	FDG_SetFileText(fdg_file);
	if(FDG_DspFileDlg(MMI_GetBaseObj(),fdg_flag,NULL,fdg_ext,&selectCnt)==1)
	{
		FDG_GetPathName(path_file,&atr,0);
		MMI_SendMessage(Text_OUTFile,MM_SETTEXT,3,path_file,strlen(path_file),FALSE);
		MMI_SendMessage(Text_OUTFile,MM_ERASE,0);
		MMI_SendMessage(Text_OUTFile,MM_SHOW ,0);
	}
	MMI_SetWakeObj(Text_OUTFile);
	return NOERR;
}

/*	ファイルオープン			*/
int	FileOpen()
{
	fp=fopen(path_file_upr,"w");
	if(fp==NULL)
	{
		DosExcode();
		AlertDisp(MES_fileopen);
		return -1;
	}
	setvbuf(fp,NULL,_IONBF,0);
	return 0;
}

/*	DOS拡張コード取得			*/
int	DosExcode()
{
	errCd=FM_getErrorCode(&errC,&errR,&errP);
	perror("FileError");
	printf("Code=%d Class=%x Recov=%x Point=%x ",errCd,errC,errR,errP);
	printf("errno=%d\n",errno);
	return errCd;
}

/*	ファイルチェックマクロ	*/
/*	冗長なプログラムになるけど楽なもんで･･･		*/
#define	Fchk(OUT,GO)						\
	{										\
		if(OUT<0)							\
		{									\
			if(DosExcode()==18)				\
				AlertDisp(MES_filefull);	\
			else							\
				AlertDisp(MES_filewrite);	\
			ret=-1;							\
			goto GO;						\
		}									\
	}
/*	終了メッセージマクロ	*/
#define	chkEndMessage(GO)										\
	{															\
		if(error_cnt!=0)										\
		{														\
				  printf(   "エラー%02d回確認\n",error_cnt);	\
			Fchk(fprintf(fp,"\nエラーが%02d回確認されました\n",error_cnt),GO)	\
			AlertDisp(MES_error);								\
			ret=-1;												\
		}														\
		else													\
		if(rtrySm_cnt!=0)										\
		{														\
				  printf(   "リトライ%04d回実施\n",rtrySm_cnt);	\
			Fchk(fprintf(fp,"\nリトライを%04d回実施しました\n",rtrySm_cnt),GO)	\
			AlertDisp(MES_retry);								\
			ret=-1;												\
		}														\
		else													\
		{														\
				  printf(   "正常終了\n");						\
			Fchk(fprintf(fp,"\n正常終了\n"),GO)					\
			AlertDisp(MES_endok);								\
			ret=0;												\
		}														\
	}
/*	強制終了判定マクロ		*/
#define	snsUserStop(GO)											\
	{															\
		MMI_iosense();											\
		MMI_GetEvnt(EVMOSDN|EVKEY,&ev);							\
		if( (ev->what==EVKEY && ev->info==0x8011)				\
		||  (ev->what==EVMOSDN && (ev->shift & SRIGHTBTN)!=0) )	\
		{														\
			if(AlertDisp(MES_userstop)==AM_ALERTBTN1)			\
			{													\
					  printf(   "強制終了\n");					\
				Fchk(fprintf(fp,"\n強制終了\n"),GO)				\
				stopFlag=TRUE;									\
				ret=-1;											\
			}													\
		}														\
		if(stopFlag==TRUE)	goto GO;							\
	}
/*	エラー表示				*/
#define	CheckError(GO)										\
	{														\
		error_cnt=error_cnt+1;								\
		if(error_cnt>=error_set && error_set!=0)			\
		{													\
			printf("\nERROR数規定値に到達\n");				\
			Fchk(fprintf(fp,"\nERROR数規定値に到達\n"),GO)	\
			AlertDisp(MES_errover);							\
			ret=-1;											\
			goto GO;										\
		}													\
	}
/*	CD情報取得マクロ		*/
#define	CDgetTIM(I,DF,MM,SS,FF)			\
	{									\
		DF=iCD_trk[I  ].min & 0x80;		\
		MM=iCD_trk[I  ].min & 0x7f;		\
		SS=iCD_trk[I  ].sec;			\
		FF=iCD_trk[I  ].frame;			\
	}
#define	CDgetNXT(I,MM,SS,FF)			\
	{									\
		MM=iCD_trk[I+1].min & 0x7f;		\
		SS=iCD_trk[I+1].sec;			\
		FF=iCD_trk[I+1].frame;			\
	}
#define	CDtime(MM,SS,FF)	(MM*75*60+SS*75+FF)
/*	パーセント数値表示		*/
#define	NumSetPar(OLD,NEW)				\
	{									\
		if(OLD!=NEW)					\
		{								\
			OLD=NEW;					\
			MMI_SendMessage(NumBox_Par,MM_SETNUMBOX,5,OLD,0,255,1,0);	\
			MMI_SendMessage(NumBox_Par,MM_ERASE,0);						\
			MMI_SendMessage(NumBox_Par,MM_SHOW,0);						\
		}								\
	}
