Beispiel #1
0
void
mouseinit(void)
{
    uchar statustemp;

    mouse_wait(1);
    outb(0x64, 0xa8);		//激活鼠标接口
    
    mouse_wait(1);		//激活中断
    outb(0x64, 0x20);
    mouse_wait(0);
    statustemp = (inb(0x60) | 2);
    mouse_wait(0);
    outb(0x64, 0x60);
    mouse_wait(1);
    outb(0x60, statustemp);

    mouse_write(0xf6);		//设置鼠标为默认设置
    mouse_read();

    mouse_write(0xf3);		//设置鼠标采样率
    mouse_read();
    mouse_write(10);
    mouse_read();
 
    mouse_write(0xf4);
    mouse_read();    

    initlock(&mouselock, "mouse");
    picenable(IRQ_MOUSE);
    ioapicenable(IRQ_MOUSE, 0);
    
    count = 0;
    lastclicktick = lastdowntick = -1000;
}
Beispiel #2
0
void init_mouse()
{
    unsigned char _status;  //unsigned char

    //Enable the auxiliary mouse device
    mouse_wait(1);
    outb(0x64, 0xA8);
    
    //Enable the interrupts
    mouse_wait(1);
    outb(0x64, 0x20);
    mouse_wait(0);
    _status=(inb(0x60) | 2);
    mouse_wait(1);
    outb(0x64, 0x60);
    mouse_wait(1);
    outb(0x60, _status);
    
    //Tell the mouse to use default settings
    mouse_write(0xF6);
    mouse_read();  //Acknowledge
    
    //Enable the mouse
    mouse_write(0xF4);
    mouse_read();  //Acknowledge
    
    //Setup the mouse handler
    //irq_install_handler(12, mouse_handler);
    // Firstly, register our keyboard callback.
    register_interrupt_handler(IRQ12, &mouse_callback);

}
Beispiel #3
0
void mouse_install(){
	unsigned char status;
	mouse_wait(1);
	outb(0xa8,0x64);//enable device
	mouse_wait(1);
	outb(0x20,0x64);
	mouse_wait(0);
	status=(inb(0x60)|2);//enable interrupt
	mouse_wait(1);
	outb(0x60,0x64);
	mouse_wait(1);
	outb(status,0x60);
	mouse_write(0xF6);
	mouse_read();
	mouse_write(0xF4);
	mouse_read();
	//vesa_draw_string(0,100,"mouse_install");
	
	/*outb(0xa8,0x64);
	outb(0xd4,0x64);
	outb(0xf4,0x60);
	outb(0x60,0x64);
	outb(0x47,0x60);*/
	outb(inb(0x21)&0xfb, 0x21);
	outb(inb(0xa1)&0xef, 0xa1);
}
Beispiel #4
0
void mouse_write(uint8_t chr)
{
	mouse_wait(1);
	outb(MOUSE_CMD, SEND_CMD);
	mouse_wait(1);
	outb(MOUSE_DATA, chr);
}
Beispiel #5
0
void installmouse()
{
  unsigned char _status;  //unsigned char

  //Enable the auxiliary mouse device
  mouse_wait(1);
  outportb(0x64, 0xA8);
 
  //Enable the interrupts
  mouse_wait(1);
  outportb(0x64, 0x20);
  mouse_wait(0);
  _status=(inportb(0x60) | 2);
  mouse_wait(1);
  outportb(0x64, 0x60);
  mouse_wait(1);
  outportb(0x60, _status);
 
  //Tell the mouse to use default settings
  mouse_write(0xF6);
  mouse_read();  //Acknowledge
 
  //Enable the mouse
  mouse_write(0xF4);
  mouse_read();  //Acknowledge
 
  //set the  handler,mousewrapper (in irqwrap.asm), IRQ12
  setinterruptvector(0x2C,dex_idtbase,0x8E,mousewrapper,SYS_CODE_SEL);


  printf("MOUSE successfully installed!!!");
}
Beispiel #6
0
void init()
{
	printf("moused: init\n");

	uint8 _status;  //unsigned char

	//Enable the auxiliary mouse device
	mouse_wait(1);
	outb(0x64, 0xA8);
 
	//Enable the interrupts
	mouse_wait(1);
	outb(0x64, 0x20);
	mouse_wait(0);
	_status=(inb(0x60) | 2);
	mouse_wait(1);
	outb(0x64, 0x60);
	mouse_wait(1);
	outb(0x60, _status);
 
  //Tell the mouse to use default settings
	mouse_write(0xF6);
	mouse_read();  //Acknowledge
 
	//Enable the mouse
	mouse_write(0xF4);
	mouse_read();  //Acknowledge
}
Beispiel #7
0
void mouse_install()
{
    byte _status;  //unsigned char

    //Enable the auxiliary mouse device
    mouse_wait(1);
    outportb(0x64, 0xA8);

    //Enable the interrupts
    mouse_wait(1);
    outportb(0x64, 0x20);
    mouse_wait(0);
    _status=(inportb(0x60) | 2);
    mouse_wait(1);
    outportb(0x64, 0x60);
    mouse_wait(1);
    outportb(0x60, _status);

    //Tell the mouse to use default settings
    mouse_write(0xF6);
    mouse_read();  //Acknowledge

    //Enable the mouse
    mouse_write(0xF4);
    mouse_read();  //Acknowledge

    //Setup the mouse handler
    irq_install_handler(12, mouse_handler);
}
Beispiel #8
0
inline void mouse_write(uint8 a_write)
{
  mouse_wait(1);
  outb(0x64, 0xD4);
  mouse_wait(1);
  outb(0x60, a_write);
}
Beispiel #9
0
void
mouse_write(uchar word)
{
    mouse_wait(1);
    outb(0x64, 0xd4);
    mouse_wait(1);
    outb(0x60, word);
}
Beispiel #10
0
inline void mouse_write(unsigned char a_write) //unsigned char
{
  //Wait to be able to send a command
  mouse_wait(1);
  //Tell the mouse we are sending a command
  outportb(0x64, 0xD4);
  //Wait for the final part
  mouse_wait(1);
  //Finally write
  outportb(0x60, a_write);
}
Beispiel #11
0
/* Mouse event/keyboard thread */
void x11_mouse_thread(void *data)
{
	//uint16_t	key=((CIO_KEY_MOUSE&0xFF)<<8)|((CIO_KEY_MOUSE>>8)&0xFF);
	uint16_t	key=CIO_KEY_MOUSE;

	SetThreadName("X11 Mouse");
	while(1) {
		if(mouse_wait())
			write(key_pipe[1], &key, 2);
	}
}
Beispiel #12
0
void mouse_init()
{
	mouse_wait(1);
	outb(MOUSE_CMD, ENABLE_AUX_PS2);
	
	mouse_wait(1);
	outb(MOUSE_CMD, GET_COMPAQ_STATUS);
	uint8_t status = mouse_read() | 2;	// Enable IRQ12
	
	mouse_wait(1);
	outb(MOUSE_CMD, SET_COMPAQ_STATUS);
	
	mouse_wait(0);
	outb(MOUSE_DATA, status);
	
	mouse_write(USE_DEFAULTS);
	mouse_read();	// Waits for ACK
	
	mouse_write(ENABLE_MOUSE);
	mouse_read();
}
Beispiel #13
0
void mouse_install() {
	debug_print(NOTICE, "Initializing PS/2 mouse interface");
	uint8_t status;
	IRQ_OFF;
	mouse_pipe = make_pipe(sizeof(mouse_device_packet_t) * PACKETS_IN_PIPE);
	mouse_wait(1);
	outportb(MOUSE_STATUS, 0xA8);
	mouse_wait(1);
	outportb(MOUSE_STATUS, 0x20);
	mouse_wait(0);
	status = inportb(0x60) | 2;
	mouse_wait(1);
	outportb(MOUSE_STATUS, 0x60);
	mouse_wait(1);
	outportb(MOUSE_PORT, status);
	mouse_write(0xF6);
	mouse_read();
	mouse_write(0xF4);
	mouse_read();
	IRQ_RES;
	irq_install_handler(MOUSE_IRQ, mouse_handler);
}
Beispiel #14
0
static inline void mouse_write(unsigned char val, unsigned int port) {
	mouse_wait(1);
	outb(val, port);
}
Beispiel #15
0
void mouse_write(unsigned char data){
  mouse_wait(1);
  outb( 0xD4,0x64);
  mouse_wait(1);
  outb(data,0x60);
}
Beispiel #16
0
unsigned char mouse_read()
{
  //Get's response from mouse
  mouse_wait(0);
  return inportb(0x60);
}
Beispiel #17
0
void mouse_write(uint8_t write) {
	mouse_wait(1);
	outportb(MOUSE_STATUS, MOUSE_WRITE);
	mouse_wait(1);
	outportb(MOUSE_PORT, write);
}
Beispiel #18
0
uint8_t mouse_read()
{
	mouse_wait(0);
	return inb(0x60);
}
Beispiel #19
0
uint8_t mouse_read() {
	mouse_wait(0);
	char t = inportb(MOUSE_PORT);
	return t;
}
Beispiel #20
0
/*---------------------------------------------------------
 Function: input_wait

 Description:
 Wait until all enabled input devices have been released.
---------------------------------------------------------*/
void input_wait(void)
{
   if (keyboard) keyboard_wait();
   if (mouse) mouse_wait();
   if (joypad) joypad_wait();
}
Beispiel #21
0
static inline unsigned char mouse_read() {
	mouse_wait(0);
	return inb(0x60);
}
Beispiel #22
0
uint8 mouse_read()
{
  //Get's response from mouse
  mouse_wait(0);
  return inb(0x60);
}