#include "defines.h"

static int Key(int mode)
{
int k;
	#if 0
	// これを有効にするとカーソルが点滅しないのでとりあえず無効にする
	while (!kbhit()) {
		if (mode&BIT15) {
		    int x,y;
		    unchar ds[8+1+8+1];
			cursor(&x,&y);
			B_LOCATE(0,y+1);
			GetDateTime(ds);
			B_PRINT(ds);
			B_LOCATE(x,y);
		}
	}
	#endif
	k=getch();
	return(mode&BIT1? toupper(k):k);
}

int Input(unchar buff[],int len,int mode)
// 簡易行入力
// len=最大バイト数
// mode: BIT0  0=通常,1=パスワード
//	 BIT1  0=そのまま,1=英大文字化
// BSは漢字非対応
{
int cnt=0;
unsigned c;
	while ((c=Key(mode))!=CR) { // Enterで終了
		if (c==ESC) return(1); // ESCで強制終了
		if (c==BS) { // BS
		    if (cnt>0) {
			B_PRINT("\b \b");
			cnt--;
		    } else beep();
		    continue;
		}
		if (cnt>=len) {
			beep();
			continue;
		}
		B_PUTC(mode&BIT0? '*':c);
		buff[cnt++]=c;
	}
	buff[cnt]=0; /* EOS */
	return(0);
}

#if 0
main()
{
#define	LMAX	20
unchar buff[LMAX+1];
	Input(buff,LMAX,BIT1);
}
#endif
