www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/03/09/21:44:51

From: Lars Damerow <bb07779 AT bingsuns DOT cc DOT binghamton DOT edu>
Subject: Protected mode VESA again...
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Date: Thu, 9 Mar 1995 20:10:17 -0500 (EST)

Hello, it's me again!  I'm having a new problem with performing VESA 
interrupts.  I managed to get interrupt 0x4f00 working, and it moves 
data into a DOS buffer that's been allocated with 
_go32_dpmi_allocate_dos_mem.
The interrupt is generated using _go32_dpmi_simulate_int.  My problem now is
that I'm trying to use a similar interrupt - int 0x4f01 - in exactly the same
way, but the computer just hangs when the interrupt is generated.  Has
anyone else had similar problems?  Here's the code for my function:

void getmodeinfo (word mode)
{
   _go32_dpmi_registers r;
   _go32_dpmi_seginfo sinfo;

   sinfo.size=(256+15)/16;                      /* Need 256 bytes */
   _go32_dpmi_allocate_dos_memory(&sinfo);      /* grab some DOS memory */
   memset(&r,0,50);                             /* zero out the registers */
   r.x.ax=0x4f01;                               /* select mode info int */
   r.x.cx=mode;                                 /* set up registers */
   r.x.ss=r.x.sp=0;
   r.x.di=sinfo.rm_offset;                      /* point segments to */
   r.x.es=sinfo.rm_segment;                     /* buffer in DOS mem */
   _go32_dpmi_simulate_int (0x10,&r);           /* generate interrupt */
   dosmemget(sinfo.rm_segment*16, 256, (void *)&vesainfo);
}

Maybe I'm missing something really simple and I'm going to feel stupid 
about it later, but for now I'm stuck.
	I appreciate any help.  Thanks a lot!

	Lars R. Damerow
	bb07779 AT bingsuns DOT cc DOT binghamton DOT edu
	(ugly, isn't it?)

- Raw text -


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