function makepara
%MAKEPARA.m  programmed by K.Miyakawa, 01/21/1999
%MAKEPARA.cをMatlabに移植しただけ。
%Markrand TSS の NMARK.EXE のスケジュールファイル [TSS.PRM] を作る
%--------------------------------------------------------------------------------------------
%初期値の設定
PR	=struct(	'DIR'			,'./'		,'FLNMFMT'		,'%s%04d'	,'OUTFILE'	,'test'	,...
				'NSCHLE'		,10		,'STCKINT'		,60			,'NSTACK'	,35		,...
				'NSAVE'		,35		,'CR'				,1				,'SG'			,5			,...
				'AG'			,2			,'YEAR'			,1999			,'MONTH'		,1			,...
				'DAY'			,2			,'HOUR'			,3				,'MINUTE'	,4);
%--------------------------------------------------------------------------------------------
fprintf('TSS.PRM for MarkrandTSS 作成プログラム\n');
fprintf('[...]内に示されているのが初期値です。この値で良い時はリターンのみ入力。\n');
while 1
%--------------------------------------------------------------------------------------------
fprintf('TSS.PRMを出力するディレクトリ [%10s]',PR.DIR);		,PR.DIR=subs('s',PR.DIR);
PR.DIR(1,find(PR.DIR=='\')) = '/';	,if	PR.DIR(1,end)~='/'	,PR.DIR(1,end+1)='/';	,end
if exist([PR.DIR,'tss.prm'])==2	,error('このフォルダには tss.prm が存在します。');		,end
fprintf('出力ファイル名は、前半8文字のみ指定できます。拡張子は分割スタックで出来る\n');
fprintf('ファイルの番号付けに使われるので、使用できません。\n');
disp('↓スケジュール数が3桁でいい時には,[%s%03d] 等とする。');
fprintf('出力ファイル名のフォーマット  [%10s]',PR.FLNMFMT);	,PR.FLNMFMT=subs('s',PR.FLNMFMT);
fprintf('出力ファイル名(番号以外の部分)[%10s]',PR.OUTFILE);	,PR.OUTFILE=subs('s',PR.OUTFILE);	
if exist([PR.DIR,sprintf(PR.FLNMFMT,PR.OUTFILE,1),'.000'])
	error(['指定したファイル名が、[',DIR,']ディレクトリに既に存在します。中止します。']);
end
fprintf('総スケジュール数    [%4d]',PR.NSCHLE);					,PR.NSCHLE	=subs('n',PR.NSCHLE);
fprintf('スタック間隔(分単位)[%4d]',PR.STCKINT);				,PR.STCKINT	=subs('n',PR.STCKINT);
fprintf('総スタック数        [%4d]',PR.NSTACK);					,PR.NSTACK	=subs('n',PR.NSTACK);
if	PR.NSTACK*100 >= PR.STCKINT*60
	error('総スタック数の時間がスタックインターバルを越えています。');
end
fprintf('分割スタック数      [%4d]',PR.NSAVE);					,PR.NSAVE	=subs('n',PR.NSAVE);
fprintf('セーブ後のラムのクリア\n');
fprintf('0:Keep, 1:Clear     [%4d]',PR.CR);						,PR.CR		=subs('n',PR.CR);
fprintf('スタンダードゲイン  [%4d]',PR.SG);						,PR.SG		=subs('n',PR.SG);
fprintf('0)20dB,1)40dB,2)60dB,3)80dB\n');
fprintf('アンプゲイン        [%4d]',PR.AG);						,PR.AG		=subs('n',PR.AG);
fprintf('開始日        [%04d/%02d/%2d]',PR.YEAR,PR.MONTH,PR.DAY);	,TMP	=input(' => ','s');
if	~isempty(TMP)	,DLM=find(TMP=='/');			,PR.YEAR	=str2num(TMP(1,1:DLM(1,1)-1));
	PR.MONTH	=str2num(TMP(1,DLM(1,1)+1:DLM(1,2)-1));
	PR.DAY	=str2num(TMP(1,DLM(1,2)+1:end));
end
fprintf('開始時刻           [%02d:%02d]',PR.HOUR,PR.MINUTE);		,TMP	=input(' => ','s');
if	~isempty(TMP)	,DLM=find(TMP==':');			,PR.HOUR	=str2num(TMP(1,1:DLM-1));			
	PR.MINUTE=str2num(TMP(1,DLM+1:end));
end
ANS=input('これで良いですか (y) (n)   => ','s');
if	strcmp(ANS,'y') | strcmp(ANS,'Y')		,break;		,end
%--------------------------------------------------------------------------------------------
end
FID	=fopen([PR.DIR,'tss.prm'],'w');
fprintf(FID,'************************************************************************\n');
fprintf(FID,'*       PARAMETER FILE FOR MARKRAND TSS                                *\n');
fprintf(FID,'* OUTFILE  =  OUTPUT FILE NAME                                         *\n');
fprintf(FID,'* NSTACK   =  NUMBER OF TOTAL STACKS                                   *\n');
fprintf(FID,'* NSAVE    =  NUMBER OF EACH SAVES                                     *\n');
fprintf(FID,'* CR =  CLEAR RAM DISK (0:NO,1:YES)                                    *\n');
fprintf(FID,'* SG =  STANDARD GAIN                                                  *\n');
fprintf(FID,'* AG =  AMP GAINCODE   (0:20dB,1:40dB,2:60dB,3:80dB)                   *\n');
fprintf(FID,'* YY =  YEAR                                                           *\n');
fprintf(FID,'* MN =  MONTH                                                          *\n');
fprintf(FID,'* HH =  HOUR                                                           *\n');
fprintf(FID,'* MM =  MINUTE                                                         *\n');
fprintf(FID,'************************************************************************\n');	
fprintf(FID,'   OUTFILE  NSTACK   NSAVE  CR    SG  AG    YY    MN    DD    HH    MM\n')	;
fprintf(FID,'AAAAAAAAAA BBBBBBB CCCCCCC DDD EEEEE FFF GGGGG HHHHH IIIII JJJJJ KKKKK\n');
for	c0=1:PR.NSCHLE
	fprintf(FID,'%10s %7d %7d %3d %5d %3d %5d %5d %5d %5d %5d\n',...
		sprintf(PR.FLNMFMT,PR.OUTFILE,c0),PR.NSTACK,PR.NSAVE,PR.CR,PR.SG,PR.AG,PR.YEAR,...
		PR.MONTH,PR.DAY,PR.HOUR,PR.MINUTE);
	DAYS=datenum(PR.YEAR,PR.MONTH,PR.DAY,PR.HOUR,PR.MINUTE,0);
	DAYS=DAYS+PR.STCKINT/60/24;
	[PR.YEAR,PR.MONTH,PR.DAY,PR.HOUR,PR.MINUTE,TMP]=datevec(DAYS);
	PR.YEAR=round(PR.YEAR);		,PR.MONTH=round(PR.MONTH);		,PR.DAY=round(PR.DAY);
	PR.HOUR=round(PR.HOUR);		,PR.MINUTE=round(PR.MINUTE+TMP/60);
end
fclose(FID);
%--------------------------------------------------------------------------------------------
function ANS=subs(TYPE,INPUT)
	if			strcmp(TYPE,'s')	,TMP=input(' => ','s');		%String
	elseif	strcmp(TYPE,'n')	,TMP=input(' => ');			%Number
	else		,error('You must enter one input argument and be either "s" or "n".');
	end
	if isempty(TMP)	,ANS=INPUT;			,else			,ANS=TMP;			,end
%--------------------------------------------------------------------------------------------
