/******************************************************************
 *   Service BIOS & Extra service BIOS access library : service   *
 *                    Program made by  K,Ajima                    *
 *                  Copyright ajiyan soft l.t.d.                  *
 ******************************************************************/



#if 0
/*** service *************************************************************

  サービスルーチン・拡張サービスルーチンにアクセスするライブラリです。

ｓｖｃ＿ｘｘｘｘｘ（）		：  メイン関数

**************************************************************************/
#endif



#include <dos.h>



									/* CPU タイプ */
#define SVC_CPU86		0x01			/* 8086 */
#define SVC_CPU186		0x02			/* 80186 */
#define SVC_CPU286		0x03			/* 80286 */
#define SVC_CPU286NW	0x04			/* 80286 No Wait */
#define SVC_CPU386DX	0x05			/* 80386 DX */
#define SVC_CPU486DX	0x06			/* 80486 */
#define SVC_CPU386SX	0x07			/* 80386 SX */



/********************************************************************
 *	JIS > shift JIS 変換
 *		JIS コード
 *		ret: shift JIS コード
 ********************************************************************/
int _fastcall svc_jis2sjis(int svc_jis)
{
	union REGS regs;

	regs.h.ah=0x00;
	regs.x.dx=svc_jis;

	int86(0xaf,& regs,& regs);

	return(regs.x.dx);
}



/********************************************************************
 *	shift JIS > JIS 変換
 *		shift JIS コード
 *		ret: JIS コード
 ********************************************************************/
int _fastcall svc_sjis2jis(int svc_sjis)
{
	union REGS regs;

	regs.h.ah=0x01;
	regs.x.dx=svc_sjis;

	int86(0xaf,& regs,& regs);

	return(regs.x.dx);
}



/********************************************************************
 *	CPU タイプ取得
 *		ret: CPU タイプ
 ********************************************************************/
int _fastcall svc_cputype(void)
{
	union REGS regs;

	regs.h.ah=0x02;

	int86(0xaf,& regs,&regs);

	return((int)regs.h.dl);
}



/********************************************************************
 *	JIS > shift JIS 変換 2
 *		JIS コード
 *		ret: shift JIS コード
 ********************************************************************/
int _fastcall svc_jis2sjis_t2(int svc_jis)
{
	union REGS regs;

	regs.h.ah=0x03;
	regs.x.dx=svc_jis;

	int86(0xaf,& regs,& regs);

	return(regs.x.dx);
}



/********************************************************************
 *	shift JIS > JIS 変換 2
 *		shift JIS コード
 *		ret: JIS コード
 ********************************************************************/
int _fastcall svc_sjis2jis_t2(int svc_sjis)
{
	union REGS regs;

	regs.h.ah=0x04;
	regs.x.dx=svc_sjis;

	int86(0xaf,& regs,& regs);

	return(regs.x.dx);
}

