Exemplo n.º 1
0
int MouseProgram(int scaling, int interrupts, int reporting)
{
	BYTE response;
	unsigned int count, b;
	
	DbgPrintf("_09");
	//Disable Keyboard
	MouseOut(MOUSE_CONTROL, CTRL_DEACTIVATE);

	for(count=0;count<2;count++)
    {
		DbgPrintf("_10");
		// Send reset command
		MouseOut(MOUSE_CONTROL, CTRL_CMD);
		MouseOut(MOUSE_DATA, CMD_RESET);
		response=MouseIn();
		if (response != MOUSE_ACK)
		goto exit;
		DbgPrintf("_11");

		// Should be 'self test passed' 0xAA
		response=MouseIn();
		if (response != 0xAA)
		goto exit;
		DbgPrintf("_12");

		// Get the device ID.  0x00 for normal PS/2 mouse
		response=MouseIn();
		if (response != 0)
		goto exit;
		DbgPrintf("_13");
    }
	
	//Set scaling
	MouseOut(MOUSE_CONTROL, CTRL_CMD);
	MouseOut(MOUSE_DATA, scaling==2?CMD_SCALING2:CMD_SCALING1);
	response=MouseIn();
	if (response != MOUSE_ACK)
	goto exit;
	DbgPrintf("_14");
	
	MouseOut(MOUSE_CONTROL, CTRL_CMD);
	MouseOut(MOUSE_DATA, reporting?CMD_REPORTINGON:CMD_REPORTINGOFF);
	response = MouseIn();
	if (response != MOUSE_ACK)
	goto exit;
	DbgPrintf("_16");

exit:
	//Enable Keyboard
	//DbgPrintf("_19%X", response);
	MouseOut(MOUSE_CONTROL, CTRL_ACTIVATE);
	DbgPrintf("_17");
	return 0;
}
Exemplo n.º 2
0
int ReadMouseID()
{
    unsigned char id;

    MouseOut(MOUSE_CONTROL, CTRL_ENABLEMOUSE);
    MouseOutIn(MOUSE_DATA, CMD_GETID);
    id = MouseIn();

    return id;
}
Exemplo n.º 3
0
void UpdateButton(Button *button)
{
  Uint8 *keys;
  keys = SDL_GetKeyState(NULL);
  if((MouseIn(button->rect.x,button->rect.y,button->rect.w,button->rect.h))&&(Mouse.buttons))
  {
    button->State++;
  }else if(keys[button->Hotkey])
  {
    button->State++;
  }
  else button->State = 0;
}
Exemplo n.º 4
0
unsigned char MouseOutIn(UINT16 port, BYTE data)
{
    unsigned int retval;
    
    MouseOut( port, data );
    retval = MouseIn();
	
    if ( retval != MOUSE_ACK )
    {
        return retval;
    }
    return 0;
}
Exemplo n.º 5
0
void Welcome()
{
	Mouse m;


	setbkcolor(WHITE);
	setviewport(40, 40, 600, 440, 1);

	setfillstyle(SOLID_FILL, LIGHTCYAN);
	setcolor(YELLOW);
	rectangle(0, 0, 560, 400);
	floodfill(50, 50, 14);

    setviewport(40, 40, 580, 420, 1);
	rectangle(20, 20, 540, 380);
	setfillstyle(SOLID_FILL, LIGHTMAGENTA);
	floodfill(21, 300, YELLOW);


	setcolor(BLACK);
	settextstyle(TRIPLEX_FONT, HORIZ_DIR, 8);
	outtextxy(110, 55, "Welcome");
	DisChinese("今天你是设计师",170,165,2,2,10,10);


	setcolor(BLUE);
	setfillstyle(SOLID_FILL, YELLOW);
	ellipse(450,335,0,360,60,20);
	floodfill(450, 335, BLUE);
	DisChinese("开始",430,328,1,1,20,DARKGRAY);


	setcolor(WHITE);
	setfillstyle(SOLID_FILL, WHITE);

	arc(260,818,85,130,470);
	arc(270,820,85,130,470);
	arc(285,822,85,130,470);

	line(61,227,74,400);
	line(61,227,164,211);
	line(164,211,174,360);

	line(184,277,254,265);
	line(184,277,190,355);
	line(254,265,260,355);

	bar(85,245,108,270);
	bar(131,245,155,270);
	bar(85,300,108,330);
	bar(131,300,155,330);

	bar(199,287,215,302);
	bar(230,282,246,298);
	bar(199,320,215,335);
	bar(230,320,246,335);


	while (1)
	{
	    ShowMouse();
	    m=ReadMouse();
        if (m.b == 1)
        {
			if (MouseIn(430,305,500,395))
			{
			    HideMouse();
			    cleardevice();
			    closegraph();
				break;
			}
		}
	}
}
Exemplo n.º 6
0
void MouseMouse()
{
	unsigned char byte1 = 0, byte2 = 0, byte3 = 0;
	int xChange, yChange, lButton, mButton, rButton;

	// Disable keyboard output here, because our data reads are not atomic
	MouseOut(MOUSE_CONTROL, CTRL_DEACTIVATE);

	byte1 = MouseIn();
	if(byte1==-1)
	{
		MouseOut(MOUSE_CONTROL, CTRL_CMD);
		MouseOut(MOUSE_DATA, CMD_RESEND);
		MouseOut(MOUSE_CONTROL, CTRL_DEACTIVATE);
		return;
	}
	byte2 = MouseIn();
	byte3 = MouseIn();

	// Re-enable keyboard output
	MouseOut(MOUSE_CONTROL, CTRL_DEACTIVATE);

	lButton = ((byte1 & BYTE1_LEFT) == BYTE1_LEFT);
	mButton = ((byte1 & BYTE1_MIDDLE) == BYTE1_MIDDLE);
	rButton = ((byte1 & BYTE1_RIGHT) == BYTE1_RIGHT);

	if(byte1 & BYTE1_SIGNX)
		xChange = (int)(((unsigned int)~0xFF)|(byte2 & 0xFF));
	else
		xChange = (int)byte2;
	
	if(byte1 & BYTE1_SIGNY)
		yChange = (int)(((unsigned int)~0xFF)|(byte3 & 0xFF));
	else
		yChange = (int)byte3;
	MouseX += xChange;
	MouseY -= yChange;
	if(MouseX < 0) MouseX = 0;
	if(MouseY < 0) MouseY = 0;
	if(MouseX >= LoaderInfo->VideoMode.ModeWidth) MouseX = LoaderInfo->VideoMode.ModeWidth - 1;
	if(MouseY >= LoaderInfo->VideoMode.ModeHeight) MouseY = LoaderInfo->VideoMode.ModeHeight - 1;
	MouseMove(MouseX, MouseY);

	if(lButton ^ ButtonL)
		if(lButton)
			MouseDown(0);
		else
			MouseUp(0);

	if(mButton ^ ButtonM)
		if(mButton)
			MouseDown(1);
		else
			MouseUp(1);

	if(rButton ^ ButtonR)
		if(rButton)
			MouseDown(2);
		else
			MouseUp(2);

	ButtonL = lButton;
	ButtonM = mButton;
	ButtonR = rButton;
}