/*
	TMOUSE.C Ver 0.02 1991.08.09  by Y.Kurihara (Nif PDC01620)"

    マウスのボタンが押されるのを待ち、Ｘ､Ｙ座標を環境変数に設定する｡
    ボタンの状態をエラーコードとして返す｡

	TMOUSE [<X座標> <Y座標>]  (座標はカーソルの初期値となる)
*/

#include  <stdlib.h>
#include  <mos.h>
#include  "environ.h"

char  moswork[MosWorkSize];

char *int2str( char *str,int num )
{
	if( num < 0 ) {
		*str++ = '-';
		num = -num;
	}
	if( num > 9 )  str = int2str( str,num / 10 );
	*str++ = num % 10 + '0';
	*str   = 0;
	return( str );
}

void main( int argc,char **argv )
{
	int  bt,lx,ly;
	int  env;
	char buf[20];

	MOS_start(moswork,MosWorkSize) ;
	MOS_resolution(0,3) ;
	MOS_disp(1) ;

	if( argc >= 3 ) {
		lx = atoi( argv[1] );
		ly = atoi( argv[2] );
		lx = lx * 8  + 4;
		ly = ly * 16 + 8;
		MOS_setpos( lx,ly );
	}

	do {
		MOS_rdpos( &bt,&lx,&ly ) ;
	} while ( bt == 0 ) ;

	MOS_end() ;

	env = pspenv( getcpid() );

	lx = lx / 8;
	int2str( buf,lx );
	envset( "X",buf,env );

	ly = ly / 16;
	int2str( buf,ly );
	envset( "Y",buf,env );

	exit( bt );
}
