--- ray/src/rt/msmouse.c 1992/10/09 15:24:02 2.2 +++ ray/src/rt/msmouse.c 1992/11/02 16:00:54 2.4 @@ -27,7 +27,7 @@ static void _loadds far mouse_handler (int max, int mc #pragma aux mouse_handler parm [EAX] [ECX] [EDX] mouse_event = max; mouse_xpos = mcx; - mouse_ypos = mdx * (long)ydispsize / 200; /* kludge */ + mouse_ypos = mdx; } #pragma on (check_stack) @@ -153,6 +153,17 @@ struct driver *dp; ydispsize = dp->ysiz; crad = dp->ysiz/40; + /* set screen limits */ + + inregs.w.ax = 0x7; /* horizontal resolution */ + inregs.w.cx = 0; + inregs.w.dx = xdispsize-1; + int386x( 0x33, &inregs, &outregs, &sregs ); + inregs.w.ax = 0x8; /* vertical resolution */ + inregs.w.cx = 0; + inregs.w.dx = ydispsize-1; + int386x( 0x33, &inregs, &outregs, &sregs ); + /* install watcher */ inregs.w.ax = 0xC; @@ -164,3 +175,21 @@ struct driver *dp; dp->getcur = ms_getcur; } + +void +ms_gcdone( dp ) +struct driver *dp; +{ + union REGS inregs, outregs; + + if (dp->getcur != ms_getcur) + return; /* not installed */ + + dp->getcur = NULL; + + /* uninstall watcher */ + + inregs.w.ax = 0; + int386 (0x33, &inregs, &outregs); +} +