#define	_NO_HEWIN	(0)
#define	_NO_EDIA	(1)
#define	_NO_GSPLAY	(2)
#define	_NO_HE386	(3)
#define	_NO_CCI		(4)
#define	_NO_WALLPOP	(5)
#define	_NO_DOSTOOL	(6)
#define	_NO_TOSTOOL	(7)
#define	_NO_SDKTOOL	(8)
#define	_NUM_TC		(9)

char	*_tc_aplname[_NUM_TC] =
{
	"HEwin"        ,
	"EDIA"         ,
	"GSPLAY"       ,
	"HE386"        ,
	"CCI"          ,
	"WallPop"      ,
	"DOS tools"    ,
	"TownsOS tools",
	"Sidework"     
};

char	_tc_skey[_NUM_TC] =	/* ショートカットキー	*/
{
	'H',
	'E',
	'G',
	'M',
	'C',
	'W',
	'D',
	'T',
	'S' 
};

char	_tc_instdir[_NUM_TC][128];
char	_tc_defdir[128];

int		_hewin_swapDrv, _hewin_scnmode, _hewin_instmode;
int		_edia_swapDrv , _edia_scnmode;

int		_gsplay_midi, _gsplay_rsmidi, _gsplay_internal;
char	_gsplay_datapath[256];
char	_gsplay_datapath_fmb[256];
char	_gsplay_datapath_pmb[256];
char	_gsplay_datapath_snd[256];

#define	_FCOPY_MODE_UPDATE	(FCOPY_ATT_CHK_TIMESTAMP | FCOPY_ATT_SUBDIR | FCOPY_ATT_TIMESTAMP | FCOPY_ATT_CHK_OVERWRITE | FCOPY_ATT_NOENDMSG)
#define	_FCOPY_MODE_INIT	(FCOPY_ATT_SUBDIR | FCOPY_ATT_TIMESTAMP | FCOPY_ATT_CHK_OVERWRITE | FCOPY_ATT_NOENDMSG)

#define	_HEWIN_INSTMODE_NOTHING	(0)
#define	_HEWIN_INSTMODE_INIT	(1)
#define	_HEWIN_INSTMODE_UPDATE	(2)

/* prototype -----------------------------------------------------------*/
int		_tc_setinstdir(char *instdir);
int		_tc_setapldir();
int		_tc_check_config(int item_setup);
int		_hewin_config(char *instdir, int item_setup);
int		_hewin_install(char *instdir,int item_setup);
int		_hewin_setup(char *instdir,int item_setup);
int		_edia_config(char *instdir, int item_setup);
int		_edia_install(char *instdir,int item_setup);
int		_edia_setup(char *instdir,int item_setup);
int		_hewin_edia_setup(char *fn_mac, char *instdir,int item_setup);
int		_chk_pathlist( char *pathlist, char *path );
int		_gsplay_config(char *instdir, int item_setup);
int		_gsplay_install(char *instdir,int item_setup);
int		_gsplay_setup(char *instdir,int item_setup);
int		_he386_install(char *instdir,int item_setup);
int		_cci_install(char *instdir,int item_setup);
int		_wallpop_install(char *instdir,int item_setup);
int		_dostool_install(char *instdir,int item_setup);
int		_tostool_install(char *instdir,int item_setup);
int		_sdktool_config(char *instdir,int item_setup);
int		_sdktool_install(char *instdir,int item_setup);

int		tarosc_install()
{
	int			ret, i, att, len, drv, argc, item_setup;
	char	   *fp;
	char	  **argv, *p, *typename;
	char		*instdir;
	char	   *softname;
	char		srcdir[128], instfile[128];
	char		helpfn[128];
	char		item_ttl[80],item_prog[16], item_para[128];
	int			item_att;
	char	   *dlgTxm;
	char		tmp[256], tmp2[256];

	instdir = _tc_defdir;	instdir[0] = '\0';
	strcpy( instdir, "D:/USR");
	softname = "TaroPYON SoftWare collection";

_TOP:
	syl_putf(softname);
	dlgTxm = DlgTxm_open(ColBoxNormal);
	DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
	DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,
	    "%s をインストールします。", softname );
	DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\r'  , KA_EXEC  ,
	    1, "", 0, "ｲﾝｽﾄｰﾙ : [実行]");
	DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, 'H'   , KA_H     ,
	    2, "inst_help", "/TAROPYON/tarocol.doc", "説明 : [H]");
	DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\x1B', KA_CANCEL,
	    3, "", 0, "取消 : [取消]");
	DlgTxm_setSize(dlgTxm,320,40);
	DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
	do
	{
		ret = DlgTxm_start(dlgTxm);
	} while ( ret == 2 );
	DlgTxm_close(dlgTxm);
	if ( ret != 1 )
		goto _RET;

	/* インストール先指定	--------------------------------------------*/
_SETDIR:
	if ( _tc_setinstdir(instdir) )
		goto _TOP;
	if ( _tc_setapldir() < 0 )
		goto _TOP;

	dlgTxm = DlgTxm_open(ColBoxNormal);
	DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
	DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,
	    "以下のディレクトリにインストールします。" );
	DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_CENTER,"");
	ret = 0;
	for ( i = 0; i < _NUM_TC; ++i )
	{
		if ( _tc_instdir[i][0] )
		{
			ret = 1;
			DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_LEFT,
			    "  %-14s [%s]", _tc_aplname[i], _tc_instdir[i] );
		}
	}
	DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_CENTER,"");
	DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,
	    "ｲﾝｽﾄｰﾙ1 … ファイルを複写してTownsMENU にアイテム登録");
	DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,
	    "ｲﾝｽﾄｰﾙ2 … ファイルを複写（アイテム登録はしない）    ");

	DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\r'  , KA_EXEC  , 1, "", 0, "ｲﾝｽﾄｰﾙ1 : [実行]");
	DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, 'C'   , KA_C     , 2, "", 0, "ｲﾝｽﾄｰﾙ2 : [C]");
	DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\x1B', KA_CANCEL, 3, "", 0, "取消 : [取消]");
	DlgTxm_setSize(dlgTxm,320,40);
	DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
	ret = DlgTxm_start(dlgTxm);
	DlgTxm_close(dlgTxm);
	if ( ret != 1 && ret != 2 )
		goto _TOP;
	item_setup = (ret == 1 ? 1 : 0);

	/* カスタマイズ			------------------------------------------------*/
	if ( _tc_instdir[_NO_HEWIN  ][0] )	_hewin_config(  _tc_instdir[_NO_HEWIN   ], item_setup);
	if ( _tc_instdir[_NO_EDIA   ][0] )	_edia_config(   _tc_instdir[_NO_EDIA    ], item_setup);
	if ( _tc_instdir[_NO_GSPLAY ][0] )	_gsplay_config( _tc_instdir[_NO_GSPLAY  ], item_setup);
/*	if ( _tc_instdir[_NO_SDKTOOL][0] )	_sdktool_config( _tc_instdir[_NO_SDKTOOL], item_setup);*/

	/* 設定確認		--------------------------------------------------------*/
	ret = _tc_check_config(item_setup);
	if ( ret < 0 )
		goto _TOP;
	if ( ret == 0 )
		goto _SETDIR;

	/* インストール開始		------------------------------------------------*/
	if ( _tc_instdir[_NO_HEWIN  ][0] )	_hewin_install(  _tc_instdir[_NO_HEWIN  ], item_setup);
	if ( _tc_instdir[_NO_EDIA   ][0] )	_edia_install(   _tc_instdir[_NO_EDIA   ], item_setup);
	if ( _tc_instdir[_NO_GSPLAY ][0] )	_gsplay_install( _tc_instdir[_NO_GSPLAY ], item_setup);
	if ( _tc_instdir[_NO_HE386  ][0] )	_he386_install(  _tc_instdir[_NO_HE386  ], item_setup);
	if ( _tc_instdir[_NO_CCI    ][0] )	_cci_install(    _tc_instdir[_NO_CCI    ], item_setup);
	if ( _tc_instdir[_NO_WALLPOP][0] )	_wallpop_install(_tc_instdir[_NO_WALLPOP], item_setup);
	if ( _tc_instdir[_NO_DOSTOOL][0] )	_dostool_install(_tc_instdir[_NO_DOSTOOL], item_setup);
	if ( _tc_instdir[_NO_TOSTOOL][0] )	_tostool_install(_tc_instdir[_NO_TOSTOOL], item_setup);
	if ( _tc_instdir[_NO_SDKTOOL][0] )	_sdktool_install(_tc_instdir[_NO_SDKTOOL], item_setup);
	install_end( softname, 0 );

_RET:
	syl_clear();

	return (NORMAL);
}

int		_tc_setinstdir(char *instdir)
{
	char	tmp[256];

	if ( APL_setInstallDir(instdir,"インストール先指定") )
		return (ERR);

	strcpy(tmp,instdir);
	add_path_fn(tmp,"");	/* パス名の最後を'/' に	*/

	sprintf( _tc_instdir[_NO_HEWIN  ], "%s%s", tmp, "HEWIN"  );
	sprintf( _tc_instdir[_NO_EDIA   ], "%s%s", tmp, "EDIA"   );
	sprintf( _tc_instdir[_NO_GSPLAY ], "%s%s", tmp, "GSPLAY" );
	sprintf( _tc_instdir[_NO_HE386  ], "%s%s", tmp, "HE386"  );
	sprintf( _tc_instdir[_NO_CCI    ], "%s%s", tmp, "CCI"    );
	sprintf( _tc_instdir[_NO_WALLPOP], "%s%s", tmp, "WALLPOP");
	sprintf( _tc_instdir[_NO_DOSTOOL], "%s%s", tmp, "DOS"    );
	sprintf( _tc_instdir[_NO_TOSTOOL], "%s%s", tmp, "TOOL"   );
	sprintf( _tc_instdir[_NO_SDKTOOL], "%s%s", tmp, "SDK"    );

	sprintf( _gsplay_datapath          , "%s%s", tmp, "DATA"   );

	return (NORMAL);
}

int		_tc_setapldir()
{
	char	*mnu, *mnuapl[_NUM_TC];
	char	*dir;
	int		i, flag, ret;

	/* サブメニュー設定	*/
	for ( i = 0; i < _NUM_TC; ++i )
	{
		if ( (mnuapl[i] = MNU_open()) != NULL )
		{
			MNU_datAdd( mnuapl[i], 0, '1', Rom16x16, i, "_setdir_tarosc"   , NULL, "ﾃﾞｨﾚｸﾄﾘ指定" );
			MNU_datAdd( mnuapl[i], 0, '0', Rom16x16, i, "_noinstall_tarosc", NULL, "ｲﾝｽﾄｰﾙしない");
			MNU_setPosition(mnuapl[i],-1);
		}
	}

	do
	{
		if ( (mnu = MNU_open()) == NULL )
			return (ERR);

		for ( i = 0; i < _NUM_TC; ++i )
		{
			dir = _tc_instdir[i];
			if ( *dir == '\0' )
				dir = "No install";
			MNU_mnuAdd( mnu, 0, _tc_skey[i], Fnt16x16, mnuapl[i],
			    "%-14s [%s]", _tc_aplname[i], dir);
		}
		MNU_datAdd( mnu, 0,  0 , NULL    , 0, "", 0, NULL );
		MNU_datAdd( mnu, 0, 'N', Rom16x16, 1, "", 0, " >>> 次へ進む >>>");
		MNU_setPosition(mnu,DLGPOS_NORMAL,8,32);
		ret = MNU_start(mnu);
		MNU_close(mnu);
		MNU_datClear(mnu);
	} while ( ret == 0 );

	flag = 0;
	for ( i = 0; i < _NUM_TC; ++i )
	{
		if ( _tc_instdir[i][0] )
			flag = 1;
		MNU_datClear( mnuapl[i] );
	}
	if ( flag == 0 )
		ret = -1;

	return (ret);
}

int		_setdir_tarosc(int evNo, char *evdat)
{
	char	*aplname;
	char	*instdir;

	instdir = _tc_instdir[evNo];
	if ( *instdir == '\0' )
		strcpy(instdir,_tc_defdir);
	APL_setInstallDir(instdir,"%s インストール先指定", _tc_aplname[evNo]);
	return (0);
}

int		_noinstall_tarosc(int evNo, char *evdat)
{
	_tc_instdir[evNo][0] = '\0';
	return (0);
}


/*************************************************************************
*	設定確認
*************************************************************************/

int		_tc_check_config(int item_setup)
{
	int			ret, i;
	char	   *dlgTxm;
	char		tmp[256], *msg;

	dlgTxm = DlgTxm_open(ColBoxNormal);
	DlgTxm_setTitle(dlgTxm,Fnt16x16,"設定の確認");

	for ( i = 0; i < _NUM_TC; ++i )
	{
		if ( _tc_instdir[i][0] )
			sprintf( tmp, "%-14s ｲﾝｽﾄｰﾙ先 … %s",
			    _tc_aplname[i], _tc_instdir[i] );
		else
			sprintf( tmp, "%-16s ｲﾝｽﾄｰﾙしない",
			    _tc_aplname[i], _tc_instdir[i] );
		DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT, "%s", tmp );

		if ( _tc_instdir[i][0] )
		{
			switch ( i )
			{
				case _NO_HEWIN:
					DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
					    "  初期設定              … [%s]",
					    _hewin_instmode == _HEWIN_INSTMODE_INIT ? "する" : "しない");
					if ( item_setup )
					{
						if ( _hewin_swapDrv < 0 )
							msg = "指定なし";
						else
						{
							msg = tmp;
							sprintf(msg,"%c:", _hewin_swapDrv);
						}
						DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
						    "  作業ドライブ          … [%s]", msg);

						switch ( _hewin_scnmode )
						{
							case 2 :	msg = "中解像度 736×496" ;	break;
							case 5 :	msg = "高解像度 1024×768";	break;
							default:	msg = "中解像度 640×480" ;	break;
						}
						DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
						    "  画面モード            … [%s]", msg);
					}
					break;
				case _NO_EDIA:
					if ( item_setup )
					{
						if ( _edia_swapDrv < 0 )
							msg = "指定なし";
						else
						{
							msg = tmp;
							sprintf(msg,"%c:", _hewin_swapDrv);
						}
						DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
						    "  作業ドライブ          … [%s]", msg);

						switch ( _edia_scnmode )
						{
							case 5 :	msg = "高解像度 1024×768";	break;
							default:	msg = "中解像度 640×480" ;	break;
						}
						DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
						    "  画面モード            … [%s]", msg);
					}
					break;
				case _NO_GSPLAY:
					if ( item_setup && (_gsplay_midi >= 0 || _gsplay_rsmidi || _gsplay_internal >=0) )
					{
						if ( _gsplay_midi < 0 )
						{
							msg = "未使用";
						} else
						{
							msg = tmp;
							sprintf(msg,"port %c", _gsplay_midi + 'A' );
						}
						DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
							    "  演奏データ出力先      … [MIDI card (%s)]", msg);

						if ( _gsplay_rsmidi >= 0 )
							DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
							    "                        … [RS-232C MIDI]");
						if ( _gsplay_internal >= 0 )
							DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
							    "                        … [内蔵音源]");
					}
					if ( _gsplay_datapath_fmb[0] )
					{
						DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_LEFT,
							    "  FMB data file         … [%s]",
							    isalpha(_gsplay_datapath_fmb[0]) ? "install" : "read from CD-ROM" );
					}
					if ( _gsplay_datapath_pmb[0] )
					{
						DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_LEFT,
							    "  PMB data file         … [%s]",
							    isalpha(_gsplay_datapath_pmb[0]) ? "install" : "read from CD-ROM" );
					}
					if ( _gsplay_datapath_snd[0] )
					{
						DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_LEFT,
							    "  SND data file         … [%s]",
							    isalpha(_gsplay_datapath_snd[0]) ? "install" : "read from CD-ROM" );
					}
					break;
#if	0
				case _NO_SDKTOOL:
					DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
					    "  ｻｲﾄﾞﾜｰｸ登録           … [%s]",
					    _sdktool_setdrv >= 0 ? "する" : "しない" );
					break;
#endif
			}
		}
	}

	DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT, "");
	DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_LEFT,
	    "実行ﾌｧｲﾙのｱｲﾃﾑ登録      … [%s]",
	    item_setup ? "行う" : "行わない" );

	DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\r'  , KA_EXEC  ,
	    1, "", 0, "ｲﾝｽﾄｰﾙ開始 : [実行]");
	DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, 'R'   , KA_R     ,
	    2, "", 0, " 再設定 : [R] ");
	DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\x1B', KA_CANCEL,
	    3, "", 0, " 取消 : [取消] ");
	DlgTxm_setSize(dlgTxm,480,40);
	DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
	ret = DlgTxm_start(dlgTxm);
	DlgTxm_close(dlgTxm);

	switch ( ret )
	{
		case 1:
			return (1);
		case 2:
			return (0);		/* 再設定	*/
		default:
			return (-1);	/* 取消	*/
	}
}

int		_tc_pre_config( char *instdir, char *exefn, char *aplname )
{
	int			ret, instflag;
	char	   *dlgTxm;
	char		fn[256];

	strcpy(fn, instdir);		add_path_fn(fn, exefn);
	instflag = ( FS_isFile(fn) == FSISFILE_FILE ) ? 1 : 0;

	dlgTxm = DlgTxm_open(ColBoxNormal);
	DlgTxm_setTitle(dlgTxm,Fnt16x16,"%s環境設定", aplname);
	DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_CENTER, "ｲﾝｽﾄｰﾙ先 : %s", instdir );
	DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_CENTER, "");
	if ( instflag )
	{
		DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,
		    "指定のディレクトリには既に%sがインストールされています。", aplname);
		DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_CENTER, "");
	}
	DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\r' , KA_EXEC,
	    1, "", 0, "OK : [実行]");
	DlgTxm_setSize(dlgTxm,480,40);
	DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
	do
	{
		ret = DlgTxm_start(dlgTxm);
	} while ( ret < 0 );
	DlgTxm_close(dlgTxm);

	return (instflag);
}

char	*_tc_getFcopySrcDir( char *srcdir, char *buf )
{
	int		len;
	char	tmp[256];

	FS_chdrv( toupper(DirStart[0]) - 'A' );
	if ( *srcdir == '\0' || *srcdir == '.' )
	{
		strcpy(tmp,DirStart);
		len = strlen(tmp);
		if ( len > 3 && FS_isDelim(tmp[len-1]) )
			tmp[len-1] = '\0';
	} else
	{
		if ( FS_isDelim(*srcdir) )
			strcpy(tmp,srcdir);
		else
			sprintf(tmp,"%s%s",DirStart, srcdir);
	}
	FS_getFullPn(buf,tmp);

	return (buf);
}

int		_hewin_edia_setup(char *fn_mac, char *instdir,int item_setup)
{
	char	*p, *s, *dir, *pathInst, fnMac[256], path[1024];
	char	*MACROKEY_EXPSEARCH_PATH;
	char	*amac;

	pathInst = instdir;
	MACROKEY_EXPSEARCH_PATH = "Exp_search_path";

	strcpy(fnMac,pathInst);
	add_path_fn(fnMac,fn_mac);

	if ( (amac = AMAC_allocWork(0)) == NULL )
		return (ERR);
	AMAC_load( amac, fnMac );

	if ( (p = AMAC_getName( amac, MACROKEY_EXPSEARCH_PATH)) == NULL || *p == '\0' )
	{
		path[0] = '\0';
		p = path;

		dir = _tc_instdir[_NO_GSPLAY];
		if ( *dir )
		{
			if ( p != path )	{	*p = ';';	++p;	}
			strcpy(p, dir);
			p += strlen(dir);
		}
		dir = _tc_instdir[_NO_HE386];
		if ( *dir )
		{
			if ( p != path )	{	*p = ';';	++p;	}
			strcpy(p, dir);
			p += strlen(dir);
		}
		dir = _tc_instdir[_NO_CCI];
		if ( *dir )
		{
			if ( p != path )	{	*p = ';';	++p;	}
			strcpy(p, dir);
			p += strlen(dir);
		}
		dir = _tc_instdir[_NO_WALLPOP];
		if ( *dir )
		{
			if ( p != path )	{	*p = ';';	++p;	}
			strcpy(p, dir);
			p += strlen(dir);
		}
		dir = _tc_instdir[_NO_TOSTOOL];
		if ( *dir )
		{
			if ( p != path )	{	*p = ';';	++p;	}
			strcpy(p, dir);
			p += strlen(dir);
		}
		if ( p != path )
			AMAC_setKey( amac, MACROKEY_EXPSEARCH_PATH, path );
	} else
	{	/* 既にパス設定が存在する	*/
		strcpy(path,p);

		dir = _tc_instdir[_NO_GSPLAY];
		if ( _chk_pathlist(path,dir) == 0 )
		{
			strcat(path,";");
			strcat(path,dir);
		}
		dir = _tc_instdir[_NO_HE386];
		if ( _chk_pathlist(path,dir) == 0 )
		{
			strcat(path,";");
			strcat(path,dir);
		}
		dir = _tc_instdir[_NO_CCI];
		if ( _chk_pathlist(path,dir) == 0 )
		{
			strcat(path,";");
			strcat(path,dir);
		}
		dir = _tc_instdir[_NO_WALLPOP];
		if ( _chk_pathlist(path,dir) == 0 )
		{
			strcat(path,";");
			strcat(path,dir);
		}
		dir = _tc_instdir[_NO_TOSTOOL];
		if ( _chk_pathlist(path,dir) == 0 )
		{
			strcat(path,";");
			strcat(path,dir);
		}
		AMAC_setKey( amac, MACROKEY_EXPSEARCH_PATH, path );
	}
	AMAC_save( amac, fnMac, fn_mac);
	AMAC_freeWork(amac);

	return (NORMAL);
}

int		_chk_pathlist( char *pathlist, char *path )
{
	char	s1[1024], s2[256];

	strcpy(s1,pathlist);	FS_strupr(s1);
	strcpy(s2,path);		FS_strupr(s2);
	if ( strstr(s1,s2) == NULL )
		return (0);	/* なし */
	else
		return (1);
}

