To: Jim Crigler Subject: Re: get vga info: int 10, ah == 1b Cc: DJGPP List Reply-To: pgf AT Cayman DOT COM Date: Mon, 14 Feb 94 10:48:59 EST From: Paul Fox > > Be careful of the answer you get here Paul. When I was trying to get vile > 3.62 (and all the subsequent versions) working with respect to this call, > someone (DJ himself?) replied with a possible solution which I tried. It > failed abysmally, giving the same result as the DJGPP binary you are currently > distributing: It sets the video mode to CGA 80x25, losing the VGA text > resolution, i. e., only 80x25 text, and the dots are large and `coarse'. > > It is worth noting that vile 3.61, which still has the original video code > from Tuan Dang (who did the original DJGPP port), which I still (sadly) use > on my laptop does the video mode switching properly (even with go32 1.11maint1). thanks jim -- i'll take a look at that old code. in the meantime, i've tracked down my immediate problem with int 10/1b -- i had two things wrong. i was a) passing the same size to dosmemget() that i passed to _go32_dpmi_allocate_dos_memory(), which of course is off by a factor of 16, and b) i didn't realize that gcc doesn't pack structures by default, so the declaration of the struct filled in by the int10/1b call was 4 bytes too long. [ aside: if i have the following struct: struct { char a; short b; } foo; where do i need to put the "__attribute__ ((packed))" keywords? the shotgun approach to programming says do this: struct { char a __attribute__ ((packed)); short b __attribute__ ((packed)); } foo __attribute__ ((packed)); but i'll bet they're not all necessary... ] paul (p.s. thanks for the vile plug, jim... the more people on this list that use it, the less time _i'll_ have to spend debugging it under djgpp! ;-)