/*****************************************************************
 *   Mouse driver access library for MS-DOS (FM-TOWNS) : mouse   *
 *                    Program made by K,Ajima                    *
 *                 Copyright  ajiyan soft l.t.d.                 *
 *****************************************************************/



#if 0
/*** mouse ***************************************************************

  ＦＭ−Ｒ  マウスドライバにアクセスするライブラリです。

ｍｏｓ＿ｘｘｘｘｘ（）			：  メイン関数
ｅｍｏｓ＿ｘｘｘｘｘ（）		：  エンハンスド関数

**************************************************************************/
#endif



#ifndef _MOUSE_HEADER_INCLUDED



#define _MOUSE_HEADER_INCLUDED



/********************************************************************
 *
 *		mos_xxxxx() 関数群
 *
 *
 *
 *
 *



				/* BIOS エラーコード */
#define MOS_NO_ERR	0



				/* mos_cursor() 引数 */
#define MOS_CURSOR_ON	1
#define MOS_CURSOR_OFF	0



				/* マウスボタン情報 */
#define	MOS_LEFT	1
#define	MOS_RIGHT	2



				/* コール条件 */
#define MOS_IF_POSITION		1
#define MOS_IF_LEFT_ON		2
#define MOS_IF_LEFT_OFF		4
#define MOS_IF_RIGHT_ON		8
#define MOS_IF_RIGHT_OFF	16



/********************************************************************
 *	マウスドライバ初期化
 *		ret: MOS_NO_ERR 正常終了
 *			 MOS_ERR    エラー
 ********************************************************************/
extern int _cdecl mos_init(void);



/********************************************************************
 *	マウスドライバ終了
 *		ret: MOS_NO_ERR 正常終了
 *			 MOS_ERR    エラー
 ********************************************************************/
extern int _cdecl mos_end(void);



/********************************************************************
 *	マウスカーソル ON/OFF 設定
 *		1. MOS_CURSOR_ON/MOS_CURSOR_OFF
 ********************************************************************/
extern void _fastcall mos_cursor(int mos_mode);



/********************************************************************
 *	マウス状態取得
 *		1. ボタン情報を格納するポインタ
 *		2. x 位置を格納するポインタ
 *		3. y 位置を格納するポインタ
 ********************************************************************/
extern void _fastcall mos_get_stat(int * mos_button,int * mos_x,int * mos_y);



/********************************************************************
 *	マウス位置設定
 *		1. x 位置
 *		2. y 位置
 ********************************************************************/
extern void _fastcall mos_set_stat(int mos_x,int mos_y);



/********************************************************************
 *	マウスカーソル移動範囲設定
 *		1. x 最小値
 *		2. x 最大値
 *		3. y 最小値
 *		4. y 最大値
 ********************************************************************/
extern void _fastcall mos_set_movearea(
					int mos_xmin,int mos_xmax,
					int mos_ymin,int mos_ymax);



/********************************************************************
 *	マウスカーソル形状設定
 *		1. x カーソル中心位置
 *		2. y カーソル中心位置
 *		3. カーソル形状データ
 *			+-------+---+-----------------------------------------+
 *			| ofset | s | mean                                    |
 *			+-------+---+-----------------------------------------+
 *			| 0000h | B | x ドット数                              |
 *			| 0001h | B | y ドット数                              |
 *			| 0002h | W | パレット番号                            |
 *			| 0004h | ? | AND パターン |_ ( x*y )/8 _| bytes      |
 *			| ????h | ? | XOR パターン          〃                |
 *			+-------+---+-----------------------------------------+
 ********************************************************************/
extern void _fastcall mos_set_cursorpat(int mos_x,int mos_y,void * mos_data);



/********************************************************************
 *	ユーザー割り込み処理登録
 *		1. コール条件
 *		2. 関数のポインタ
 ********************************************************************/
extern void _fastcall mos_set_func(int mos_mode,void (_cdecl _far * mos_func)() );



/********************************************************************
 *	移動速度設定
 *		1. x 移動速度 (1-255)
 *		2. y 移動速度 (1-255)
 ********************************************************************/
extern void _fastcall mos_set_speed(int mos_x,int mos_y);



#endif
