/*

dmove86 version 1.20c

dmstdlib.c -- 画面初期設定／基礎処理ルーチン

Copyright (c) 1993 Delmonta

*/

#include<stdio.h>
#include"dmove86.h"

void	exit(int);

char	dm_getch(void)
{
	char	c;

dmgetch_rep:
	c = getch();

	switch	(c)
	{			/* 98のカーソルキーの文字コードを変換する */
	case '\x08':	c = LEFTKEY;	break;
	case '\x0a':	c = DOWNKEY;	break;
	case '\x0b':	c = UPKEY;	break;
	case '\x0c':	c = RIGHTKEY;	break;

	case '\x1b':		/* ファンクションキーの第1バイトはESCコード */
		if	(kbhit())
		{
			do
			{
				getch();
			} while (kbhit());

			goto dmgetch_rep;
		}
		break;
	}

	return c;
}

char	dm_getche(void)
{
	char c = dm_getch();
	putchar(c);
	return c;
}

void	selectflag(f)
int	f;
{
static	char	mes[] = "\033[22;38H"
			"S:ソート I:空白挿入 D:空白削除"
			"\033[23;26HC/[CR]:ｻﾌﾞﾃﾞｨﾚｸﾄﾘ U:親ﾃﾞｨﾚｸﾄﾘ O:再編集 W:書込み Q:終了"
			"\33[0;37m\n";
	if	(f==0)
		printf("\033[37m");
	else
		printf("\033[31m");

	printf(mes);
}

char	dm_errmes(s)
char	*s;
{
	char	c;
	printf("\033[19;1H\033[31m%s\033[37m\n",s);

	c = dm_getch();

	printf("\033[19;1H\033[2K");
	return c;
}

void	mkscreen(void)
{

	printf( "\033[1v\033[>5h\033[2J\033[0;37m"
		"ディスクファイル並べ替えユーティリティ DMOVE86 Version1.20c\n"
		"                     Copyright (c) Delmonta all rights reserved, " __DATE__
		"\033[22;1H"
		"↑↓←→:ｶｰｿﾙ移動 ＋−:ﾍﾟｰｼﾞ切替 \n");
};

void	endscreen(void)
{
	getdpb();	/* DOS内部のバッファを更新するため */

	printf( "\033[0v\033[>5l\033[2J"
		"DMOVE86を終了しました.\n");

	exit(0);
}

