Mail Archives: djgpp/1998/07/07/19:46:39
| From: | Endlisnis <s257m AT unb DOT ca> | 
| Newsgroups: | comp.os.msdos.djgpp | 
| Subject: | Re: Mouse program in djgpp | 
| Date: | Tue, 7 Jul 1998 20:23:47 -0300 | 
| Organization: | University of New Brunswick | 
| Lines: | 68 | 
| Message-ID: | <Pine.SOL.3.96.980707201751.12449B-100000@sol.sun.csd.unb.ca> | 
| References: | <6ntr6e$sle$1 AT nnrp1 DOT dejanews DOT com> | 
| NNTP-Posting-Host: | sol-alt1.unb.ca | 
| Mime-Version: | 1.0 | 
| In-Reply-To: | <6ntr6e$sle$1@nnrp1.dejanews.com> | 
| To: | djgpp AT delorie DOT com | 
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp | 
On Tue, 7 Jul 1998 dangfrancois AT my-dejanews DOT com wrote:
->Hi,
->Does someone has the source code in djgpp (without using Allegro)
->of it (+ init_mouse, show_mouse, hide_mouse, put_mouse if it is
->possible) ?
->Thanks for responding.
	Here's the code.  I adapted this from Borland C++ code and it
worked.  I didn't test the SetMouseInfo() function, but I think it works.
	If anyone has some (tested) code for sending your own
mouse-handler function to interrupt 0x33 (ah=0x0c).  The FAQ (Section 18.8
How to make DOS/BIOS call your function) has a version, which I've tried
to impliment, but it just crashes my computer whenever it tries to call my
function.  Thanx.
	Endlisnis
[I have a pyramid of wingyness]
#include <dpmi.h>
#include <string.h>
void ShowMouse()
{
 __dpmi_regs Regs;
 memset(&Regs, 0, sizeof(Regs));
 Regs.x.ax=1;
 __dpmi_int(0x33, &Regs);
 }
void HideMouse()
{
 __dpmi_regs Regs;
 memset(&Regs, 0, sizeof(Regs));
 Regs.x.ax=2;
 __dpmi_int(0x33, &Regs);
 }
void GetMouseInfo(int& x, int& y, int& b)
{
 __dpmi_regs Regs;
 memset(&Regs, 0, sizeof(Regs));
 Regs.x.ax=3;
 __dpmi_int(0x33, &Regs);
 x = Regs.x.cx;
 y = Regs.x.dx;
 b = Regs.x.bx;
 }
void SetMouseInfo(int x, int y)
{
 __dpmi_regs Regs;
 memset(&Regs, 0, sizeof(Regs));
 Regs.x.ax=4;
 Regs.x.cx=x;
 Regs.x.dx=y;
 __dpmi_int(0x33, &Regs);
 }
char InitMouse()
{
 __dpmi_regs Regs;
 memset(&Regs, 0, sizeof(Regs));
 Regs.x.ax=0;
 __dpmi_int(0x33, &Regs);
 return Regs.x.ax;
 }
- Raw text -