Xref: news2.mv.net comp.os.msdos.djgpp:6529 rec.games.programmer:57528 From: antoine AT stack DOT urc DOT tue DOT nl (Antoine van Wel) Newsgroups: rec.games.programmer,comp.os.msdos.djgpp Subject: retrieving VESA mode list Date: 29 Jul 1996 13:40:34 +0200 Organization: MCGV Stack, Eindhoven University of Technology, the Netherlands. Lines: 77 Message-ID: <4ti7vj$oq0@toad.stack.urc.tue.nl> NNTP-Posting-Host: toad.stack.urc.tue.nl To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Hello ! I got a problem with getting the VESA mode list. If anyone knows what goes wrong, please let me know. This problem has been bugging me for a long while now. I cannot retrieve the info from the list; this info can be reached via a pointer. I have tried different solutions; all of them didn't work. Two of them are in this listing. I'd also like to know how I can put "VBE2" in the header before calling the interrupt... All this __tb business :-\ // Antoine ----------------------- THE LISTING ! ---------------------- // Based on Sandmann's "VBETEST.C" // Show Mode List : compile with DJGPP // Programmed by Antoine van Wel, // IRC: ProphecY, EMAIL: antoine AT stack DOT urc DOT tue DOT nl #include #include #include #include #include #include #define BYTE unsigned char #define INT __dpmi_int #define REGS __dpmi_regs typedef struct { char Signature [4]; short Version; unsigned OemStringPtr; BYTE Capabilities [4]; // short VideoModePtrSeg; // short VideoModePtrOff; unsigned VideoModePtr; short TotalMemory; char bogus [236]; } VBEInfoBlock; int main (void) { VBEInfoBlock VBEInfo; REGS reg; int i; short *p; reg.x.ax = 0x4f00; reg.x.es = __tb / 16; reg.x.di = 0; INT (0x10, ®); if (reg.x.ax != 0x004f) { printf ("Get VBE info failed.\n"); exit (1); } dosmemget (__tb, sizeof(VBEInfoBlock), &VBEInfo); for (i=0; i<4; i++) printf("%c",VBEInfo.Signature[i]); printf("\n"); // p = (short *)(16*VBEInfo.VideoModePtrSeg+VBEInfo.VideoModePtrOff); p = (short *)VBEInfo.VideoModePtr; do { printf("0x%x\n",*p); p++; } while (*p!=-1); return 0; } -- They say what is lost will never be found again ... Antoine van Wel -- IRC: ProphecY, EMAIL: antoine AT stack DOT urc DOT tue DOT nl