/* << MSC V5.1 >> *************************************************************
**
**	KEY.LIB  ﾍｯﾀﾞ  for FMRｼﾘｰｽﾞ & PC98
**
**	CREATE : 1990.07.03
**	FINISH : 1990.07.03
**
**	< NOTES >
**	TABS = 4
**
**	< HISTORY >
**	1990.07.03 : CREATE
**	1991.01.17 : FMR用とPC98用を同じｿｰｽにした。
**
**	All Rights Reserved, Copyright (C) Y.Hirata 1990-1991.
**
**	Programmed by Y.Hirata ( Nifty ID : NAB03321 )
**
******************************************************************************/

#include "defs.h"

#ifdef FMR

	#define	KEY_INT	0x90

#elif defined( PC98 )

	#define	KEY_INT	0x18

#endif

#ifdef FMR

/****************************  10us 単位でのWAIT  ****************************/
void soft_time( unsigned short waitcount ) ;

/******************************************************************************
	KEY_read : 一文字入力(キーボード)
	< RETURN >
	文字コード, 入力なしの場合には 0 を返す｡
******************************************************************************/
unsigned KEY_read( unsigned waitsw, unsigned *encode ) ;

#endif

/******************************************************************************
	KEY_matrix : マトリクス入力
******************************************************************************/
int KEY_matrix( char *matrix ) ;

/******************************************************************************
	KEY_test : マトリクスからキーが押されているかどうかをチェックする。
******************************************************************************/
int KEY_test( char *matrix, char keyadrs ) ;

/******************************************************************************
	KEY_bufcls : バッファクリア
******************************************************************************/
int KEY_bufcls( void ) ;

/******************************  ｷｰBREAK 待ち  *******************************/
void KEY_break( char keyadrs ) ;

/*******************************  ｷｰ押下ﾁｪｯｸ  ********************************/
int KEY_hitchk() ;

/****************************  Yes/No ｷｰ入力する  ****************************/
int KEY_yesno() ;

/*
**	KEY ｱﾄﾞﾚｽ
*/

#ifdef FMR

	enum Values_for_keyadrs {
		KEY_DMY00,	KEY_ESC,	KEY_1,		KEY_2,			/*  00 - 03		*/
		KEY_3,		KEY_4,		KEY_5,		KEY_6,			/*  04 - 07		*/
		KEY_7,		KEY_8,		KEY_9,		KEY_0,			/*  08 - 0B		*/
		KEY_SUB,	KEY_TOPBER,	KEY_OR,		KEY_BACK,		/*  0C - 0F		*/
		KEY_TAB,	KEY_Q,		KEY_W,		KEY_E,			/*  10 - 13		*/
		KEY_R,		KEY_T,		KEY_Y,		KEY_U,			/*  14 - 17		*/
		KEY_I,		KEY_O,		KEY_P,		KEY_DMY1B,		/*  18 - 1B		*/
		KEY_LKAKKO,	KEY_CR,		KEY_A,		KEY_S,			/*  1C - 1F		*/
		KEY_D,		KEY_F,		KEY_G,		KEY_H,			/*  20 - 23		*/
		KEY_J,		KEY_K,		KEY_L,		KEY_ADD,		/*  24 - 27		*/
		KEY_ASTER,	KEY_RKAKKO,	KEY_Z,		KEY_X,			/*  28 - 2B		*/
		KEY_C,		KEY_V,		KEY_B,		KEY_N,			/*  2C - 2F		*/
		KEY_M,		KEY_LT,		KEY_GT,		KEY_QUEST,		/*  30 - 33		*/
		KEY_UNDERBER,	KEY_SPACE,	TKEY_ASTER,	TKEY_SLASH,	/*  34 - 37		*/
		TKEY_ADD,	TKEY_SUB,	TKEY_7,		TKEY_8,			/*  38 - 3B		*/
		TKEY_9,		TKEY_EQU,	TKEY_4,		TKEY_5,			/*  3A - 3F		*/
		TKEY_6,		KEY_DMY41,	TKEY_1,		TKEY_2,			/*  40 - 43		*/
		TKEY_3,		TKEY_CR,	TKEY_0,		TKEY_PIRIOD,	/*  44 - 47		*/
		KEY_INS,	KEY_DMY49,	TKEY_000,	KEY_DEL,		/*  48 - 4B		*/
		KEY_DMY4C,	KEY_UP,		KEY_HOME,	KEY_LEFT,		/*  4C - 4F		*/
		KEY_DOWN,	KEY_RIGHT,	KEY_CTRL,	KEY_SHIFT,		/*  50 - 53		*/
		KEY_DMY54,	KEY_DMY55,	KEY_DMY56,	KEY_DMY57,		/*  54 - 57		*/
		KEY_DMY58,	KEY_DIC,	KEY_DMY5A,	KEY_PF12,		/*  58 - 5B		*/
		KEY_DMY5C,	KEY_PF1,	KEY_PF2,	KEY_PF3,		/*  5C - 5F		*/
		KEY_PF4,	KEY_PF5,	KEY_PF6,	KEY_PF7,		/*  60 - 63		*/
		KEY_PF8,	KEY_PF9,	KEY_PF10,	KEY_DMY67,		/*  64 - 67		*/
		KEY_DMY68,	KEY_PF11,	KEY_ALP,	KEY_DIC_SER,	/*  68 - 6B		*/
		KEY_DIC_DEL,KEY_DIC_ADD,KEY_BEFORE,	KEY_alp,		/*  6C - 6F		*/
		KEY_NEXT,	KEY_HALF,	KEY_UNDO,	KEY_EXEC,		/*  70 - 73		*/
		KEY_PF13,	KEY_PF14,	KEY_PF15,	KEY_PF16,		/*  74 - 77		*/
		KEY_PF17,	KEY_PF18,	KEY_PF19,	KEY_PF20,		/*  78 - 7B		*/
		KEY_BREAK,	KEY_COPY,	KEY_DMY7E,	KEY_DMY7F		/*  7C - 7F		*/
	} ;

#elif defined( PC98 )

	enum Values_for_keyadrs {
		KEY_ESC,	KEY_1,		KEY_2,		KEY_3,			/*  00 - 03		*/
		KEY_4,		KEY_5,		KEY_6,		KEY_7,			/*  04 - 07		*/
		KEY_8,		KEY_9,		KEY_0,		KEY_SUB,		/*  08 - 0B		*/
		KEY_ACCENT,	KEY_OR,		KEY_BACK,	KEY_TAB,		/*  0C - 0F		*/
		KEY_Q,		KEY_W,		KEY_E,		KEY_R,			/*  10 - 13		*/
		KEY_T,		KEY_Y,		KEY_U,		KEY_I,			/*  14 - 17		*/
		KEY_O,		KEY_P,		KEY_ADDMK,	KEY_LKAKKO,		/*  18 - 1B		*/
		KEY_CR,		KEY_A,		KEY_S,		KEY_D,			/*  1C - 1F		*/
		KEY_F,		KEY_G,		KEY_H,		KEY_J,			/*  20 - 23		*/
		KEY_K,		KEY_L,		KEY_ADD,	KEY_ASTER,		/*  24 - 27		*/
		KEY_RKAKKO,	KEY_Z,		KEY_X,		KEY_C,			/*  28 - 2B		*/
		KEY_V,		KEY_B,		KEY_N,		KEY_M,			/*  2C - 2F		*/
		KEY_LT,		KEY_GT,		KEY_QUEST,	KEY_UNDERBER,	/*  30 - 33		*/
		KEY_SPACE,	KEY_XFER,	KEY_ROLLUP,	KEY_ROLLDOWN,	/*  34 - 37		*/
		KEY_INS,	KEY_DEL,	KEY_UP,		KEY_LEFT,		/*  38 - 3B		*/
		KEY_RIGHT,	KEY_DOWN,	KEY_HOME,	KEY_HELP,		/*  3A - 3F		*/
		TKEY_SUB,	TKEY_SLASH,	TKEY_7,		TKEY_8,			/*  40 - 43		*/
		TKEY_9,		TKEY_ASTER,	TKEY_4,		TKEY_5,			/*  44 - 47		*/
		TKEY_6,		TKEY_ADD,	TKEY_1,		TKEY_2,			/*  48 - 4B		*/
		TKEY_3,		TKEY_EQU,	TKEY_0,		TKEY_COMMA,		/*  4C - 4F		*/
		TKEY_PIRIOD,KEY_NFER,	KEY_VF1,	KEY_VF2,		/*  50 - 53		*/
		KEY_VF3,	KEY_VF4,	KEY_VF5,	KEY_DMY57,		/*  54 - 57		*/
		KEY_DMY58,	KEY_DMY59,	KEY_DMY5A,	KEY_DMY5B,		/*  58 - 5B		*/
		KEY_DMY5C,	KEY_DMY5D,	KEY_DMY5E,	KEY_DMY5F,		/*  5C - 5F		*/
		KEY_STOP,	KEY_COPY,	KEY_PF1,	KEY_PF2,		/*  60 - 63		*/
		KEY_PF3,	KEY_PF4,	KEY_PF5,	KEY_PF6,		/*  64 - 67		*/
		KEY_PF7,	KEY_PF8,	KEY_PF9,	KEY_PF10,		/*  68 - 6B		*/
		KEY_DMY6C,	KEY_DMY6D,	KEY_DMY6E,	KEY_DMY6F,		/*  6C - 6F		*/
		KEY_SHIFT,	KEY_CAPS,	KEY_KANA,	KEY_GRAPH,		/*  70 - 73		*/
		KEY_CTRL,	KEY_DMY75,	KEY_DMY76,	KEY_DMY77,		/*  74 - 77		*/
		KEY_DMY78,	KEY_DMY79,	KEY_DMY7A,	KEY_DMY7B,		/*  78 - 7B		*/
		KEY_DMY7C,	KEY_DMY7D,	KEY_DMY7E,	KEY_DMY7F		/*  7C - 7F		*/
	} ;

	#define		KEY_BREAK		KEY_STOP

#endif

