Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!bellcore!uunet!samsung!zaphod.mps.ohio-state.edu!think.com!paperboy!hsdndev!husc6!genrad!mlf From: mlf@genrad.UUCP (Matt Fichtenbaum) Newsgroups: comp.os.msdos.programmer Subject: Interfacing to the Mouse Driver Message-ID: <39896@genrad.UUCP> Date: 3 Dec 90 13:12:19 GMT Distribution: usa Organization: GenRad, Inc., Concord, Mass. Lines: 18 Some past articles have discussed difficulties people have had in using int 33 function 0c to install one's own event handler such that the [Microsoft and compatibles] mouse driver calls it when a mouse event (button press, movement) occurs. Two things to note: 1. The mouse driver calls the handler with the DS register pointing to its - the mouse driver's - data segment, not the handler's. In Turbo C the handler can be declared as "huge;" in QuickC some inline assembly is needed. 2. The QuickC debug-mode stack check, in which each routine verifies that there is sufficient room on the stack for its local variables, gets confused when the user's handler calls the stack-check routine before DS has been "corrected." This can be avoided by using #pragma check_stack(off) to suppress stack checking for the handler. I don't know if Turbo C has a corresponding problem. Matt "Our job is to rescue fires, not to put out your cat."