www.delorie.com/archives/browse.cgi   search  
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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019