From: Lars Damerow Subject: int86x troubles... To: djgpp AT sun DOT soe DOT clarkson DOT edu Date: Mon, 6 Mar 1995 15:52:43 -0500 (EST) Hello! I seem to have a similar problem to what everyone else has, but I'll try anyway. Does anyone know, simply, how to get int86x to properly reference a memory buffer? I'm trying to get information from a VESA driver using interrupt 10. The following is a section of the program. unsigned char vesainfo[256]; int getvesainfo (void) { union REGS regs; struct SREGS s; int maj, min; regs.x.ax=0x4f00; regs.x.di=&vesainfo; int86x(0x10,®s,®s,&s); if (regs.x.ax!=0x4f) { printf("Error: VESA VBE not installed.\n"); return(0); } maj=vesainfo[5]; min=vesainfo[4]; printf("\nVESA VBE version %x.%x detected.\n",maj,min); return(1); } I tried doing with regs.x.di what the docs say to do (ignore es and put the address of the buffer in di). The interrupt works (since the error message above is not printed at run-time) but the vesainfo buffer is full of 0's when the procedure exits. It prints VESA VBE version 0.0 detected. This is causing so many problems. Many thanks to anyone who can help me! ...Lars Damerow bb07779 AT bingsuns DOT cc DOT binghamton DOT edu