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 -