/*********************************************************************
/*
/*	NIFTY.CFG : NIFTY-Serve アクセス用コンフィグ･ファイル
/*
/*	TABSIZE = 4;
/*
/*	1991. 8.30	(MSS)
/*

/*********************************************************************
/*	Nifty-Serve : AUTO DIAL & LOGIN
/*
nifty_dial {
	if ( NIF_MSS_LOAD )
	{	cfg_load("nif_mss.cfg")			/* load MSS
		NIF_MSS_LOAD = 1;
	}
	STR_CHK = ""
	MENU_LEVEL = 0;						/* MSS用メニューレベル
	NIF_MSS_FLG = 0;					/* モード変更用フラグ
	HDL_SET = 0;						/* メタキー設定用ワーク	*/
	UST_CHK = 0;						/* ID チェック			*/
	DL_SET  = 0;						/* ダウンロードファイル名設定

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/*	電話番号は自分で書いてね
/*
#	DIAL     = "03-3739-9120A"
#	FENIX = 1;					/* FENIX Road 1	*/

	DIAL     = "03-5703-0222M"
	FENIX = 2;					/* FENIX Road 2	*/
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

	while ( _NIF_ID = "" )
	{	while ( _NIF_PASSWORD = "" )
		{	nif_setup()
			if ( VAL ! 0 ) { return (-1) }
		}
	}
	ID       = _NIF_ID;
	PASSWORD = _NIF_PASSWORD;

	term_puts("ATZ\r")
	term_switch( 5,"OK\r")
	if ( VAL < 0 ) { return (-1)}

#	/* 第２モデム初期化コマンド
#	term_puts("AT%2400\r")
#	term_switch( 5,"OK\r")
#	if ( VAL < 0 ) { return (-1)}

	tel_call()
	if ( VAL < 0 ) { return (-1)}

	if ( FENIX = 2 )
	{	/*----------------------------------
		/*	NIFTY-Serve FENIX ROAD 2
		/*----------------------------------
		RETRY = 0;
		bk = 0;
		while ( bk = 0 )
		{	wait(1)
			term_puts("@P\r")
			term_switch(10,"*")
			if ( VAL = 0 )
			{	/* '*'	*/
				bk = 1;
			} else
			{	inc(RETRY)
				if ( RETRY > 5 ) { return (-1) }
			}
		}
		RERTY = 0;
		bk = 0;
		while ( bk = 0 )
		{	wait(1)
			term_puts("C NIF\r")
			wait(2)
			term_instr(30," Enter Connection-ID  --->","*")
			if ( VAL = 0 )
			{	/* Connection-ID */
				bk = 1;
			} else if ( VAL = 1 )
			{	/* '*'	*/
				inc(RETRY)
				if ( RETRY > 30 ) { return }
			} else
			{	/* TIME OUT
				return (-1)
			}
		}
	} else
	{	/*----------------------------------
		/*	NIFTY-Serve FENIX ROAD 1
		/*----------------------------------
		RERTY = 0;
		bk = 0;
		while ( bk = 0 )
		{	wait(1)
			term_puts(".00+")
			term_instr(30,"Enter Connection-ID  --->",
						  ".1", ".2", ".3", ".4", ".5",
						  ".6", ".7", ".8", ".9",
						  "NO CARRIER" )
			if ( VAL = 0 )
			{	/* Connection-ID */
				bk = 1;
			} else if ( VAL < 10 )
			{	/* '*'	*/
				inc(RETRY)
				if ( RETRY > 30 ) { return }
			} else
			{	/* TIME OUT or "NO CARRIER"	*/
				return	(-1);
			}
		}
	}

	wait(1)
	term_puts("SVC\r")

	term_switch( 30, " Enter User-ID  --->")
	if ( VAL < 0 ) { return (-1)}
	wait(1)
	term_puts("\(ID)\r")

	term_switch( 30, " Enter Password --->")
	if ( VAL < 0 ) { return (-1)}
	wait(1)
	term_puts("\(PASSWORD)\r")

	return	(0)
}

/*--------------------------------------------------------------------
/*	パレットを黒にして入力文字を見せないようにする
/*
str_off {
	wind_size_set(x,y,32,32)
	wind_open()
	graph("palette",7,0,0,0)
}
str_on {
	graph("palette",7,176,176,192)
	wind_close()
	wind_init()
}

nif_setup {
	ID       = _NIF_ID;
	PASSWORD = _NIF_PASSWORD;

	if ( ID = "" )
	{	ID = "";
		PASSWORD = "";
	}
	mosget("sw","x","y")
	menu_input("ID",9, x,y, C_CYAN, "NIFTY-Serve のID を入力してください。:")
	if ( VAL < 0 ) {	return	(-1) }

	str_off()
	menu_input("PASSWORD",9, x,y, C_YELLOW, "NIFTY-Serve のパスワードを入力してください。:" )
	RET = VAL;
	if ( RET < 0 ) { str_on();	return	(-1) }

	PASSWORD2 = "";
	menu_input("PASSWORD2",9, x,y, C_YELLOW, "もういちどパスワードを入力してください。" )
	RET = VAL;
	str_on()
	if ( RET < 0 ) {	return	(-1) }

	if ( PASSWORD ! PASSWORD2 )
	{	wind_open()
		graph("symbol",65,56, 8,16, OPAQUE,C_RED,C_HWHITE, 1,0,0,1, "パスワードが違っています！！")
		wait(5)
		wind_close()
		return	(-1)
	}

	if ( RET < 0 ) {	return	(-1) }
	strlen(PASSWORD)
	LEN = VAL;
	menu_yes_no(x,y,C_CYAN,"NIFTY-Serve の ID : \(ID)\x0Aパスワードは \(LEN) 文字指定されています。\x0A\x0A           よろしいですか？")
	if ( VAL > 0 )
	{	_NIF_ID       = ID;
		_NIF_PASSWORD = PASSWORD;
		return	(0)
	}
	return	(-1)
}

/*********************************************************************
/*	行入力コマンド
/*	
/*	【入力】	TCMD	コマンド
/*
TERM_cmdline {
	strupr("TCMD",TCMD)
	if ( TCMD = "U" )
	{	NIFTY_RT_U()
	} else if ( TCMD = "MYHP" )
	{	NIFTY_MYHP()
	} else if ( TCMD = "UST" )
	{	NIFTY_UST(0)
	} else if ( TCMD = "/UST" )
	{	NIFTY_UST(1)
	} else if ( TCMD = "MES" )
	{	NIFTY_MES()
	}
	RET = ""
}

/*******************************************************************
/*	オートパイロット用 入力行チェックルーチン
/*******************************************************************
AUTO_line {
	if ( STR_CHK ! "" )
	{	instr(TLIN,STR_CHK)
		if ( VAL > -1 )
		{	STR_FLG = 1;
		}
	}
	if ( UST_CHK > 0 )
	{	_NIF_UST()
	} else if ( HDL_SET ! 0 )
	{	_NIF_HDL()
	} else if ( DL_SET > 0 )
	{	_NIF_DLS()
	}
}

/*********************************************************************
/*
/*	RT中に "/U" を実行し，
/*	表示されたハンドルをメタキーの０〜９に設定する
/*
NIFTY_RT_U {
	syslin_puts(C_GREEN,C_MBLACK,"メタキーにハンドル名を設定します。")
	HDL_SET = 0;
	UST_CHK = 0;
	HANDLE_MEMO = ""
	meta = 1;
	HDL_SET = 1;
	term_puts("/U\r")
}

_NIF_HDL {	/* AUTO_line()から呼び出される	*/
	/********************************/
	/* ハンドル 自動設定 ルーチン	*/
	/********************************/
	instr(TLIN,"\r")
	if ( VAL > 0 )
	{	get_word("TMP",TLIN,1)
		if ( TMP ! "JOB" )
		{	strmid("CH",TLIN,0,1)
			if ( CH = "\x28" )	/* 0x28 = '('	*/
			{	HDL_SET = 0;
			} else
			{	get_word("HANDLE", TLIN, 4 );
				if ( HANDLE ! "" )
				{	if ( HANDLE ! HANDLE_MEMO )
					{	HANDLE_MEMO = HANDLE;
						if ( meta = 1 )
						{	meta_set("1",HANDLE )
						} else if ( meta = 2 )
						{	meta_set("2",HANDLE )
						} else if ( meta = 3 )
						{	meta_set("3",HANDLE )
						} else if ( meta = 4 )
						{	meta_set("4",HANDLE )
						} else if ( meta = 5 )
						{	meta_set("5",HANDLE )
						} else if ( meta = 6 )
						{	meta_set("6",HANDLE )
						} else if ( meta = 7 )
						{	meta_set("7",HANDLE )
						} else if ( meta = 8 )
						{	meta_set("8",HANDLE )
						} else if ( meta = 9 )
						{	meta_set("9",HANDLE )
						} else if ( meta = 10 )
						{	meta_set("0",HANDLE )
							HDL_SET = 0;
						}
						inc(meta)
					}
				}
			}
		}
	}
}

/*********************************************************************
/*
/*	HP 用
/*
NIF_ERR {
	echo("\n\tなんかへん？？？\n")
	wait(5)
	wind_close()
}

NIFTY_MYHP {
	/* 自分のHPに行く	*/
	wind_close()
	wind_init()

	echo("\n\t自分のHPにいくぜ！\n")

	wait(1)
	term_puts("go HP\r")
	wait(2)

	term_switch(30,"＞")
	if ( VAL < 0 )	{	NIF_ERR();	return	(-1)	}
	term_puts("1\r")

	term_switch(30,"：")
	term_puts("\(_NIF_ID)\r")
	wait(2)

	term_switch(30,"HP>","◆")
	if ( VAL < 0 )	{	NIF_ERR();	return	(-1)	}
	if ( VAL = 1 )	{	NIF_ERR();	return	(-1)	}

	term_puts("guest\r")
	wait(2)
	term_switch(30,"HP>")
	if ( VAL < 0 )	{	NIF_ERR();	return	(-1)	}
	term_puts("read new\r")

	wind_close()
}

/*******************************************************************
/*
/*	ID検索用
/*
NIFTY_UST {
	syslin_puts(C_GREEN,C_MBLACK,"UST : ID 検索" )
	mos_cursor(82)						/* 時計カーソル
	if ( PARA = 0 )
	{	UST_CMD = "UST"
	} else
	{	UST_CMD = "/UST"
	}
	ID_LIST = ""
	ID_COUNT = 0;
	UST_CHK = 0;
	HDL_SET = 0;

	getenv("DIR","NIFTY")
	ID_FILE = "\(DIR)prof.dat"		/* ID登録用ファイル名	*/

	getenv("TMP","TMP")
	TMP_FILE = "\(TMP)\\_prof.dat")	/* 出力ファイル名	*/

#	wait(1)
	term_puts("\(UST_CMD)\r")
	term_switch( 5,"◆番号又はコマンドを入力して下さい◆\r","\r")
	if ( VAL < 1 ) { return }
	UST_CHK = 1;
	term_instr( 30, ">", "＞","(","（")
	if ( VAL < 0 ) { UST_CHK = 0; return }
#	if ( UST_CHK < 0 )
#	{	UST_CHK = 0;
		NIF_ID_PRT()
#	}
}

_NIF_UST {	/* AUTO_line()から呼び出される	*/
	/* UST ID チェック	*/
	instr(TLIN,">")
	if ( VAL > -1 ) { UST_CHK = -1; return }
	instr(TLIN,"＞")
	if ( VAL > -1 ) { UST_CHK = -1; return }
	instr(TLIN,"\r")
	if ( VAL > 5 )
	{	/* 改行がある	*/
		autoline_bk = 0;
		while ( autoline_bk = 0 )
		{	autoline_id - TLIN;
			shift(TLIN)
			if ( autoline_id ! "" )
			{	strlen(autoline_id)
				if ( VAL > 7 )
				{	/* mifind 用	*/
					if ( ID_LIST = "" )
					{	ID_LIST = "\(autoline_id)"
						ID_COUNT = 1
					} else
					{	ID_LIST = "\(ID_LIST) \(autoline_id)"
						inc(ID_COUNT)
					}
				}
			} else
			{	autoline_bk = -1;	/* break	*/
			}
		}
	}
}

NIF_ID_PRT {	/* 検索結果を出力する	*/
	wind_close()
	wind_init()
	UST_CHK = 0;

	if ( ID_COUNT = 0 ) { return }
	wind_size_set(8,160,624,212)
	wind_open2("ID チェック")
	echo("\n\n\t検索中...\n")

	flag = 0;
	bk = 0;
	while ( bk = 0 )
	{	id - ID_LIST;
		shift(ID_LIST)
		if ( id ! "" )
		{	if ( flag = 0 )
			{	system("find \x22\(id)\x22 \(ID_FILE)  > \(TMP_FILE)")
				flag = 1;
			} else
			{	system("find \x22\(id)\x22 \(ID_FILE) >> \(TMP_FILE)")
			}
		}
		if ( ID_LIST = "" )
		{	bk = 1;
		}
	}

	fopen( TMP_FILE,"rt")
	PATH = VAL;
	if ( PATH < 0 )
	{	echo("FILE OPEN ERROR\n")
		wait(10)
		wind_close()
		return
	}
	echo("\x0C")	/* CLS

	bk = 0;
	count = 0;
	while ( bk = 0 )
	{	/* 表示	*/
		feof(PATH)
		if ( VAL ! 0 )
		{	/* EOF	*/
			bk = -1;
		} else
		{	fgets("STR",256,PATH)
			if ( VAL < 0 )
			{	/* error */
				bk = -1;
			} else if ( VAL > 0 )
			{	strmid("TMP",STR,0,1)
				if ( TMP ! "-" )
				{	echo("\(STR)\n")
					inc(count)
				}
			}
		}
	}
	fclose(PATH)
	if ( count = 0 )
	{	echo("\n　知ってる人はいないみたい…\n")
	}
	mos_cursor(81)					/* ノーマル

	wait(30)
	wind_close()
	wind_init()
}

/*====================================================================
/*	ダウンロードファイル名設定
/*
_NIF_DLS {
#	instr(TLIN,"＞")
#	if ( VAL > -1 ) { DL_SET = -1; return }
	instr(TLIN,"\r")
	if ( VAL > -1 )
	{	instr(TLIN,"データ名：")
		if ( VAL > -1 )
		{	DL_FL = TLIN;
			strmid("DL_FILE", TLIN, 10,12)
			DL_SET = -1;
		}
	}
}

/*********************************************************************
/*
/*	会議室を読む
/*
NIFTY_MES {
	syslin_puts(C_GREEN,C_MBLACK,"MES & MREAD")
	mos_cursor(82)						/* 時計カーソル
	wait(1)
	term_puts("MES\r")
	term_instr( 30,"会議室","発言",)
	if ( VAL < 0 ) { mos_cursor(81); return }
	MES_GET = 1;
	MES_COUNT = 0;
	term_switch(30,">","＞")
	mos_cursor(81)
	if ( VAL < 0 ) { return }
	_NIF_MES_SET()
}

_NIF_MESsub_makeObj {
	TMP=ROOM_BIT;and("TMP",0x00001);if(TMP=0){D01="  会議室-01-";} else {D01="★会議室-01-";}
	TMP=ROOM_BIT;and("TMP",0x00002);if(TMP=0){D02="  会議室-02-";} else {D02="★会議室-02-";}
	TMP=ROOM_BIT;and("TMP",0x00004);if(TMP=0){D03="  会議室-03-";} else {D03="★会議室-03-";}
	TMP=ROOM_BIT;and("TMP",0x00008);if(TMP=0){D04="  会議室-04-";} else {D04="★会議室-04-";}
	TMP=ROOM_BIT;and("TMP",0x00010);if(TMP=0){D05="  会議室-05-";} else {D05="★会議室-05-";}
	TMP=ROOM_BIT;and("TMP",0x00020);if(TMP=0){D06="  会議室-06-";} else {D06="★会議室-06-";}
	TMP=ROOM_BIT;and("TMP",0x00040);if(TMP=0){D07="  会議室-07-";} else {D07="★会議室-07-";}
	TMP=ROOM_BIT;and("TMP",0x00080);if(TMP=0){D08="  会議室-08-";} else {D08="★会議室-08-";}
	TMP=ROOM_BIT;and("TMP",0x00100);if(TMP=0){D09="  会議室-09-";} else {D09="★会議室-09-";}
	TMP=ROOM_BIT;and("TMP",0x00200);if(TMP=0){D10="  会議室-10-";} else {D10="★会議室-10-";}
	TMP=ROOM_BIT;and("TMP",0x00400);if(TMP=0){D11="  会議室-11-";} else {D11="★会議室-11-";}
	TMP=ROOM_BIT;and("TMP",0x00800);if(TMP=0){D12="  会議室-12-";} else {D12="★会議室-12-";}
	TMP=ROOM_BIT;and("TMP",0x01000);if(TMP=0){D13="  会議室-13-";} else {D13="★会議室-13-";}
	TMP=ROOM_BIT;and("TMP",0x02000);if(TMP=0){D14="  会議室-14-";} else {D14="★会議室-14-";}
	TMP=ROOM_BIT;and("TMP",0x04000);if(TMP=0){D15="  会議室-15-";} else {D15="★会議室-15-";}
	TMP=ROOM_BIT;and("TMP",0x08000);if(TMP=0){D16="  会議室-16-";} else {D16="★会議室-16-";}
	TMP=ROOM_BIT;and("TMP",0x10000);if(TMP=0){D17="  会議室-17-";} else {D17="★会議室-17-";}
	TMP=ROOM_BIT;and("TMP",0x20000);if(TMP=0){D18="  会議室-18-";} else {D18="★会議室-18-";}
	TMP=ROOM_BIT;and("TMP",0x40000);if(TMP=0){D19="  会議室-19-";} else {D19="★会議室-19-";}
	TMP=ROOM_BIT;and("TMP",0x80000);if(TMP=0){D20="  会議室-20-";} else {D20="★会議室-20-";}
}

_NIF_MES_SET {
	bk = 0;
	ROOM_BIT = 0; /* 読む会議室のビットがセットされる	*/
	while ( bk = 0 )
	{	_NIF_MESsub_makeObj()
		menu_select(512,32,"会議室選択",
			"すべての会議室",
			D01,D02,D03,D04,D05,D06,D07,D08,D09,D10,
			D11,D12,D13,D14,D15,D16,D17,D18,D19,D20,
			"    実行"
		)
		if ( VAL < 0 )
		{	CMD = "";
			return
		} else if ( VAL = 0 )
		{	/* mread all */
			CMD = "MREAD";
			bk = 1;
		} else if ( VAL < 21 )
		{	TMP = VAL;
			dec(TMP)
			expr("BIT","1<<\(TMP)")
			xor("ROOM_BIT",BIT)			/* ビット反転
		} else if ( VAL = 21 )
		{	/* 実行	*/
			if ( ROOM_BIT = 0 )
			{	CMD = ""
			} else
			{	ROOM = "ROOM:"
				COUNT = 0;
				FLG = 0;
				while ( COUNT < 20 )
				{	expr("BIT","1<<\(COUNT)")
					expr("TMP","\(ROOM_BIT)&\(BIT)")
					if ( TMP ! 0 )
					{	NO = COUNT;
						inc(NO)			/* 会議室番号	*/
						if ( FLG = 0 )
						{	ROOM = "\(ROOM)\(NO)"
							FLG = 1;
						} else
						{	ROOM = "\(ROOM),\(NO)"
						}
					}
					inc(COUNT)
				}
				CMD = "MREAD \(ROOM)"
			}
			bk = 1;
		}
	}
	if ( CMD ! "" )
	{	term_puts("\(CMD)\r")
	}
}

