
#include	<stdio.h>
#include	<stdlib.h>
#include	<string.h>
#include	"defs.h"


char	_asm_(char *);


char	conin()
{
	_asm_("\n	MOV	AH,6\n");
	_asm_("\n	MOV	DL,255\n");
	_asm_("\n	INT 21H\n");
}

char	PC98_shift()
{
	_asm_("\n	MOV	AH,2\n");
	_asm_("\n	INT	18H\n");
}


/* キーボード回りの入力情報の取得 */
	/* 	上位バイトがアスキーコードで、下位バイトがシフトキー等の情報です。 */
int		KEY_getAdr()
{
	#ifdef FM
	_asm_("\n	MOV	AH,9\n");
	_asm_("\n	MOV	AL,1\n");
	_asm_("\n	INT	90H\n");
	/* 下位バイトにシフトとかの状態 */
	_asm_("\n	MOV AL,BL\n");
	/* 上位バイトにASCII 7bitコード */
	_asm_("\n	MOV AH,DL\n");
	#endif
	
	#ifdef DOS
	int		ret;
	ret=conin();
	if (ret==0)
		return(0xff00);
	else
		return(ret<<8);
	#endif
	
	
	#ifdef PC98
	/* とりあえずshiftとctrlだけ */
	int		ret,ret2;
	ret=conin();
	if (ret==0)
		ret=0xff00;
	else
		ret=ret<<8;
	
	ret2=PC98_shift();
	if (ret2 & 1)
		ret+=4;
	if (ret2 & 16)
		ret+=16;
	return(ret);
	#endif
}
