M carrera/kbd.c => carrera/kbd.c +16 -0
@@ 391,3 391,19 @@ kbdinit(void)
return 1;
}
+
+void
+mousectl(char *cmd)
+{
+ int s;
+
+ if(strncmp(cmd, "reset", 5) == 0){
+ s = splhi();
+ mousecmd(0xF6);
+ mousecmd(0xEA); /* streaming */
+ mousecmd(0xE8); /* set resolution */
+ mousecmd(3);
+ mousecmd(0xF4); /* enabled */
+ splx(s);
+ }
+}
M carrera/screen.h => carrera/screen.h +0 -1
@@ 11,6 11,5 @@ extern Cursorinfo cursor;
extern void mouseupdate(int);
extern int cursoron(int);
#define cursoroff(x)
-#define mousectl(s)
extern Point mousexy(void);
void setcursor(Cursor*);
M pc/devvga.c => pc/devvga.c +9 -1
@@ 1108,7 1108,15 @@ tridentpage(int page)
static void
et4000page(int page)
{
- outb(0x3cd, (page<<4)|page);
+ uchar p;
+
+ p = page & 0x0F;
+ p |= p<<4;
+ outb(0x3CD, p);
+
+ p = (page & 0x30);
+ p |= p>>4;
+ outb(0x3CB, p);
}
static void
cirruspage(int page)