From: "Anthony Graham" Newsgroups: comp.os.msdos.djgpp Subject: A VESA Question Date: Sat, 25 Mar 2000 19:58:38 -0000 Organization: GXSN Lines: 145 Message-ID: <8bj6p1$1tp$1@gxsn.com> NNTP-Posting-Host: 195.147.150.202 X-Trace: 954015329 1NNUCNF1G96CAC393C gxsn.com X-Complaints-To: abuse AT gxsn DOT com 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 Is it possible to get Vesa mode info without DMPI or far pointers? I'm trying not to use these. I went on the dj delorie site and got their vesa source and tried to convert it (stop using dpmi and use int386/int386x) ) but it simply wont work!! If anyone can fix my code and e-mail me it back i'd be most grateful, first is the dpmi version then is my attempt: typedef struct MODE_INFO { unsigned short ModeAttributes __attribute__ ((packed)); unsigned char WinAAttributes __attribute__ ((packed)); unsigned char WinBAttributes __attribute__ ((packed)); unsigned short WinGranularity __attribute__ ((packed)); unsigned short WinSize __attribute__ ((packed)); unsigned short WinASegment __attribute__ ((packed)); unsigned short WinBSegment __attribute__ ((packed)); unsigned long WinFuncPtr __attribute__ ((packed)); unsigned short BytesPerScanLine __attribute__ ((packed)); unsigned short XResolution __attribute__ ((packed)); unsigned short YResolution __attribute__ ((packed)); unsigned char XCharSize __attribute__ ((packed)); unsigned char YCharSize __attribute__ ((packed)); unsigned char NumberOfPlanes __attribute__ ((packed)); unsigned char BitsPerPixel __attribute__ ((packed)); unsigned char NumberOfBanks __attribute__ ((packed)); unsigned char MemoryModel __attribute__ ((packed)); unsigned char BankSize __attribute__ ((packed)); unsigned char NumberOfImagePages __attribute__ ((packed)); unsigned char Reserved_page __attribute__ ((packed)); unsigned char RedMaskSize __attribute__ ((packed)); unsigned char RedMaskPos __attribute__ ((packed)); unsigned char GreenMaskSize __attribute__ ((packed)); unsigned char GreenMaskPos __attribute__ ((packed)); unsigned char BlueMaskSize __attribute__ ((packed)); unsigned char BlueMaskPos __attribute__ ((packed)); unsigned char ReservedMaskSize __attribute__ ((packed)); unsigned char ReservedMaskPos __attribute__ ((packed)); unsigned char DirectColorModeInfo __attribute__ ((packed)); unsigned long PhysBasePtr __attribute__ ((packed)); unsigned long OffScreenMemOffset __attribute__ ((packed)); unsigned short OffScreenMemSize __attribute__ ((packed)); unsigned char Reserved[206] __attribute__ ((packed)); } MODE_INFO; MODE_INFO mode_info; int get_mode_info(int mode) { __dpmi_regs r; long dosbuf; int c; /* use the conventional memory transfer buffer */ dosbuf = __tb & 0xFFFFF; /* initialize the buffer to zero */ for (c=0; c>4) & 0xFFFF; r.x.cx = mode; __dpmi_int(0x10, &r); /* quit if there was an error */ if (r.h.ah) return -1; /* copy the resulting data into our structure */ dosmemget(dosbuf, sizeof(MODE_INFO), &mode_info); /* it worked! */ return 0; } ///////////////////////////NOW MY ATTEMPT////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////// MODE_INFO mode_info; int my_get_mode_info(int mode) { union REGS r, ro; struct SREGS sr; char *dodo; long dosbuf; int c; /* use the conventional memory transfer buffer */ dosbuf = __tb & 0xFFFFF; dodo=(char *)malloc(256); /* initialize the buffer to zero */ /* call the VESA function */ // r.x.ax = 0x4F01; // r.x.di = dosbuf & 0xF; // r.x.es = (dosbuf>>4) & 0xFFFF; // r.x.cx = mode; r.h.ah=0x4F; r.h.al=0x01; r.w.di= (long)dodo & 0xF; r.w.cx=mode; sr.es=((long)dodo>>4) &0xFFFF; // int386x(0x10, &r, &ro, &sr); // __dpmi_int(0x10, &r); /* copy the resulting data into our structure */ memcpy(&mode_info,dodo, 256); /* it worked! */ return 0; } thanks! -Anthony SPAM IS ILLEGAL... ONCE IT IS KNOWN THAT SPAM IS NOT WANTED THEY CALL IT UNSOLICITED MAIL YOU ARE NOT TO SEND ME ANY ADVERTISEMENTS, SPECIAL OFFERS OR ANYTHING WHICH MY PERMISSION IS NOT GRANTED NOW IT IS ILLEGAL I DO NOT WISH TO RECIEVE E-MAIL WHICH IS NOT IN _DIRECT_ CORRESPONDANCE TO THIS NEWS POSTING.