maus treiber 0xFA ack nach mouse_write



  • die maus sendet doch nach einem 0xF2 command erstmal ein 0xFA bevor der typ zurückgegeben wird oder 😕
    falls ja könnte man auch die abfrage des 0xFA in die mouse_write() mit einbauen, da es aber 1-2 commands (reset, resend) gibt wo sie das nicht macht müßte man die fälle natürlich beachten und dann natürlich geg. z.260 und 269 entfernen.

    mouse.c schrieb:

    212     mouse_write(0xF2);
      //      0xFA
      213     mouseid=mouse_read();
    
      230     mouse_write(0xF2);
      //      0xFA
      231     mouseid=mouse_read();
    

    lg lolo



  • Aaah, du hast ja Recht.. *heul
    Ok, werde mich darum kümmern. Sorry.

    Cuervo



  • Es ist der Maustreiber, genauer die folgende Zeile:

    // mouse.c
    
    void mouse_setsamples(unsigned char samples_per_second)
    {
        mouse_write(0xF3); // <- die hier
    
        switch (samples_per_second)
        {
    (...)
    }
    

    die bei BOCHS die PANIC-Meldung verursacht.



  • Jetzt müsste es klappen, lag vllt daran, dass gesendet wurde bevor die Maus den vorherigen Befehel gesendet hat^^



  • Die PANIC-Meldung ist nun beseitigt (Rev 377). Aber es sieht wohl so aus, daß BOCHS ein Mousewheel nicht unterstützt:

    Mouse: X:10 Y=10 LM:0 MM:1 RM:0 id:00h // MT links  setzt MM
    No mousewheel found!
    
    Mouse: X:10 Y=10 LM:0 MM:0 RM:1 id:00h // MT mitte  setzt RM
    No mousewheel found!
    
    Mouse: X:10 Y=10 LM:0 MM:0 RM:0 id:01h // MT rechts setzt id
    No mousewheel found!
    

    😕



  • ich dachte dabei eher an sowas, evtl. lässt sich das noch ein bischen anpassen

    void os_mouse_command(uint8_t a_write){
    	//used to make sure we don't lock the system
    	//@todo: diskuss if this is required
    	uint32_t save_me = 0xFFFF;
    	uint8_t resp;
    	os_mouse_write(a_write);
    
    	if(a_write == 0xFF)
    		resp = 0xAA;
    	else
    		resp = 0xFA;
    
    	while(save_me-- && os_mouse_read() != resp);
    
    	if(++save_me == 0)
    		kprintf("os_mouse_command ACK failed");
    }
    

    lg lolo




Anmelden zum Antworten