From cse.psu.edu!9fans-outgoing-owner Sun Nov 5 01:43:15 1995 Received: from colossus.cse.psu.edu ([130.203.1.2]) by cannon.ecf.toronto.edu with SMTP id <2099>; Sun, 5 Nov 1995 01:43:04 -0500 Received: by colossus.cse.psu.edu id <78882>; Sun, 5 Nov 1995 01:32:20 -0500 Received: from idpentium.idsoftware.com ([192.246.40.9]) by colossus.cse.psu.edu with SMTP id <78884>; Sun, 5 Nov 1995 01:32:04 -0500 Received: from idcanon1 by idpentium.idsoftware.com (NX5.67e/NX3.0M) id AA02572; Sun, 5 Nov 95 00:30:04 -0600 Received: by idcanon1.idsoftware.com (NX5.67g/NX3.0S) id AA00345; Sun, 5 Nov 95 00:30:12 -0600 Message-Id: <9511050630.AA00345@idcanon1.idsoftware.com> Mime-Version: 1.0 (NeXT Mail 4.0 v123) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Received: by NeXT.Mailer (1.123) From: John Carmack Date: Sun, 5 Nov 1995 01:30:10 -0500 To: 9fans@cse.psu.edu Subject: nextstation mouse Sender: owner-9fans@cse.psu.edu Precedence: bulk Reply-To: 9fans@cse.psu.edu Status: RO Here is a modification to get an adjustable, accelerative cursor = from the standard two button NeXT mouse. After adding this, you can modify the mouse rate by typing: echo 'speed 3' > /dev/mousectl John Carmack Id Software in 9/next/screen.c: Add the variable: /* JDC: for mouse acceleration */ int mouse_speed =3D 2; In the kbdmouseintr() function, replace the mousetrack call with: /* mousetrack(b, 3*-dx, 3*-dy); JDC*/ { int speed; speed =3D abs(dx) > abs(dy) ? abs(dx) : abs(dy); speed =3D speed*speed*mouse_speed; mousetrack(b, speed*-dx, speed*-dy); } change mousectl to accept a "speed" parameter. void mousectl(char *arg) { int n; char *field[3]; n =3D getfields(arg, field, 3, " "); if(strncmp(field[0], "serial", 6) =3D=3D 0){ switch(n){ case 1: serialmouse(atoi(field[0]+6), 0, 1); break; case 2: serialmouse(atoi(field[1]), 0, 0); break; case 3: default: serialmouse(atoi(field[1]), field[2], 0); break; } } /* JDC */ else if (!strcmp(field[0], "speed") && n =3D=3D 2) { mouse_speed =3D atoi(field[1]); if (mouse_speed < 1) mouse_speed =3D 1; } =09 else error(Ebadctl); }