Mail Archives: djgpp/1999/09/01/22:32:42
From: | "David Dean - [DS]Deaner666" <david AT deanhouse61 DOT freeserve DOT co DOT uk>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | mouse probs
|
Date: | Tue, 31 Aug 1999 19:35:59 +0100
|
Organization: | Customer of Planet Online
|
Lines: | 33
|
Message-ID: | <7qk7j9$klb$1@news6.svr.pol.co.uk>
|
NNTP-Posting-Host: | modem-121.name37.dialup.pol.co.uk
|
X-Trace: | news6.svr.pol.co.uk 936223145 21163 62.136.178.121 (1 Sep 1999 21:59:05 GMT)
|
NNTP-Posting-Date: | 1 Sep 1999 21:59:05 GMT
|
X-Complaints-To: | abuse AT theplanet DOT net
|
X-Priority: | 3
|
X-MSMail-Priority: | Normal
|
X-Newsreader: | Microsoft Outlook Express 5.00.2014.211
|
X-MimeOLE: | Produced By Microsoft MimeOLE V5.00.2014.211
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
Reply-To: | djgpp AT delorie DOT com
|
I'm using the mouse interrupts with DJGPP and am experiencing problems
getting the absolute address of the mouse. Here's the function I use:
void mouse_abs_pos(int *x, int *y)
{
union REGS regs;
regs.x.ax = 0x03;
int86(0x33, ®s, ®s);
*x = regs.x.cx;
*y = regs.x.dx;
return;
}
I call it like this:
mouse_abs_pos(&mouse_x, &mouse_y);
This works fine, except it doesn't give values in the range 0 - 319 for the
x axis and 0 - 199 for the y axis (I'm using mode 13h). I got round the
problem by deducting the values I was getting for when the cursor was at
(0,0) from the values I read into mouse_x and mouse_y (and for some reason I
also had to divide the mouse_x value by 2). This put the values in the
correct range and I was perfectly happy. However, I came back to my program
after rebooting my computer and the values were different, the scaling
factor had changed. Can somebody explain why this happens and how to prevent
it (if possible).
TIA - David Dean
- Raw text -