// class mouse
int bit_get(int num, int pos)
{
return (num>>pos)&1;
}
void bit_set(int *num, int pos)
{
*num|(1 << pos);
}
int init()
{
_AX = 0;
geninterrupt(0x33);
if (_AX == 0) return _AX; else return _BX;
}
void show()
{
_AX = 1;
geninterrupt(0x33);
}
void hide()
{
_AX = 2;
geninterrupt(0x33);
}
void getXY(int *mouseX, int *mouseY)
{
_AX = 3;
geninterrupt(0x33);
*mouseX = _CX;
*mouseY = _DX;
}
int left_down()
{
_AX = 3;
geninterrupt(0x33);
return bit_get(_BX, 0);
}
int right_down()
{
_AX = 3;
geninterrupt(0x33);
return bit_get(_BX, 1);
}
/*
void move(int mouseX, int mouseY)
{
_AX = 4;
_CX = mouseX;
_DX = mouseY;
geninterrupt(0x33);
}
*/
void setX(int start, int end)
{
_AX = 7;
_CX = start;
_DX = end;
geninterrupt(0x33);
}
void setY(int start, int end)
{
_AX = 8;
_CX = start;
_DX = end;
geninterrupt(0x33);
}
int left_up()
{
int fx, fy, lx, ly;
_BX = 0;
_AX = 6;
geninterrupt(0x33);
if (_BX == 1)
{
fx = _CX; fy = _DX;
getXY(&lx, &ly);
if ((fx == lx)&(fy == ly)) return 1; else return 0;
} else return 0;
}
int right_up()
{
int fx, fy, lx, ly;
_BX = 1;
_AX = 6;
geninterrupt(0x33);
if (_BX == 1)
{
fx = _CX; fy = _DX;
getXY(&lx, &ly);
if ((fx == lx)&(fy == ly)) return 1; else return 0;
} else return 0;
}