From: REMOVEunreinME AT feist DOT com (Diabelek) Newsgroups: comp.os.msdos.djgpp Subject: mouse mickeys wont go negative Organization: Student Message-ID: <362838f6.33923440@news.feist.com> X-Newsreader: Forte Agent 1.5/32.452 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 32 Date: Sat, 17 Oct 1998 19:01:58 GMT NNTP-Posting-Host: 198.247.6.172 X-Trace: newsfeed.slurp.net 908651019 198.247.6.172 (Sat, 17 Oct 1998 14:03:39 CDT) NNTP-Posting-Date: Sat, 17 Oct 1998 14:03:39 CDT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com i'm using a the int 33 func Bh to read the mouse mickeys. it gets the data just fine except when it should be negative it is a large positive number. ie moving up and left will get the results x = 5FFF3, y = FFFB x = 5FFDC, y = FFDF not moiving the mouse gets x = 50000, y = 0 and moving down and left gets x = 5001E, y = 3 x = 50004, y = 16 i know ANDing it with 0xFFFF (or subtracing 0x50000) will reduce the number but i still get a number that is 0xFFFF - x ( = x ) for any negative. the same is true for y. ie x = FFFC y = FFFE (should be x=-3 and y=-1 , i think ) does anyone know why i'm getting these numbers and/or a way to fix it? btw. x,y, and the registers are declared like this signed int x,y; (i also have tried float, double, int, long, etc ) union REGS regs; later