delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/12/11/05:36:36

From: "Gorden" <gorden AT ms9 DOT url DOT com DOT tw>
Newsgroups: comp.os.msdos.djgpp
Subject: about graphics mode mouse cursor
Date: Mon, 11 Dec 2000 14:37:18 +0800
Organization: DCI HiNet
Lines: 60
Message-ID: <911sj3$lub@netnews.hinet.net>
NNTP-Posting-Host: 210.242.228.137
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

/* how can changce this function for djgpp */
/* I used this function on Turbo C is ok      */
void mouse_cursor(int x, int y, int *mask)


int mask[32] =
{
 0xffff, 0xffff, 0xffff, 0Xffff,
 0Xffff, 0Xffff, 0Xffff, 0Xffff,
 0Xffff, 0Xffff, 0Xffff, 0Xffff,
 0Xffff, 0Xffff, 0Xffff, 0Xffff,

 0X0000, 0X0004, 0X0019, 0X0072,
 0X01EB, 0X01CC, 0X019C, 0X01FC,
 0X7FFC, 0X4780, 0X4980, 0X5280,
 0X6480, 0X0880, 0X0F80, 0X0000
};

void set_video_mode(int mode)
{
  union REGS r;

  r.h.ah = 0x00;
  r.h.al = mode;
  int86(0x10, &r, &r);
}

/* how can changce this function for djgpp */
void mouse_cursor(int x, int y, int *mask)    /* how can changce this
function for djgpp */
{
  union  REGS  r;
  struct SREGS s;

  r.x.ax = 9;
  r.x.bx = x;
  r.x.cx = y;
  r.x.dx = FP_OFF(mask);
  s.es   = FP_SEG(mask);

  int86x(0x33, &r, &r, &s);
}


int main(void)
{
  set_video_mode(0x12);    /* 640x480x16 */

  mouse_detect();
  mouse_show();
  mouse_cursor(4, 4, mask);

  while (!kbhit())

  set_video_mode(0x03);
   return 0;
}



- Raw text -


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