X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f Sender: salvador AT delorie DOT com Message-ID: <3C34B292.DF657F2B@inti.gov.ar> Date: Thu, 03 Jan 2002 16:35:46 -0300 From: salvador Organization: INTI X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.19 i686) X-Accept-Language: es-AR, en, es MIME-Version: 1.0 To: Andrew Cottrell CC: djgpp-workers AT delorie DOT com, Charles Sandmann , Andris Pavenis , Robert Hvhne , Tim Van Holder Subject: Re: NTVDM Error and TVision. References: <10112311737 DOT AA21576 AT clio DOT rice DOT edu> <001301c1929e$5f4e9c80$0102a8c0 AT acceleron> <3C3314DF DOT FC34DB AT inti DOT gov DOT ar> <006401c1944d$56429000$0102a8c0 AT acceleron> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Andrew Cottrell wrote: > I traced it further and found that the NTVDM error occurs in the int 0x10 > call fail when run under Win XP in a window. The offending function is > rh_restore_vga_state() in the vga.cc file. This function is called > from....from..... via... and finally the TSsreen destructor. That's common on a lot of modern VGA BIOS implementations. We saw problems in Matrox BIOSes (was fixed in newer revisions), nVidia GeForce BIOSes and others. I have a list of known faulty BIOSes/Win9x drivers in the windos.faq file. [snip] > If I force the code to use the VGAStateLoad() function then it works fine > (TV example and seteditor). It confirms I know more about VGA boards than manufacturers ;-))) Just joking, I wrote this code for my FreeBE/AF driver (Pure OS independent VBE/AF implementation) and then I incorporated it to TV to workaround buggy BIOSes. First time we tested it successfuly was with a Matrox board. > Could I get some feedback from people on with regards to the following as > the problem could be that my video card (Nvida MX (original, not 200 or > 400)) could have a stuffed bios that causes a problem with the NTVDM:- I got various reports about faulty nVidia Geforce 2 MX BIOSes, a user investigated it: Bitland AT aol DOT com and asked for volunteers to test his workaround in the djgpp list. > 1) Could someone download the seteditor and run it with and without the -S > option in a window mode and see if it works. The -S option forces > useBIOS_VGA_State = 0, no -S option sets it to 1. You should imagine it works for Trident TGUI9440AGi (the board I used to develope it). > 2) Could someone download the seteditor and run it under 2K or XP with a non > Nvidia video card or non MX video card. This may confirm if it is video bios > related or just 2K and XP releated. What Andy (Andreas Kluge == Bitland) found was that the BIOS was wrong. He had an Guillemot/Hercules board and Guillemot denied they had a bug ... well I doubt the tech support didn't even know what exactly is a VGA BIOS ... > I tried the code on Win 98 with a TNT 2 and it worked fine. I have a TNT 2 Ultra Vanta (Model 64 says the box) and the editor + rhide works quite well. I also had a Riva 128 board at work and never experimented problems. The bug seems to be in the GeForce serie. > I can run > seteditor without it causing any NTVDM errors if I run it with the -S > option. Good. > A possible solutions could be to always set useBIOS_VGA_State to 0 under NT. I'm not sure. I wrote this code from the specs found in Trident manuals (I only use the registers marked as standard VGA) and Ralf Brown references but I think we need much more testing. I can't be sure I'm saving/restoring all the VGA registers. The VGA registers are a nightmare. And the other problem is: suppose my code is perfect, are Windows NT drivers really good emulating the VGA registers? Think that I can't really access to the registers under NT, they are virtualized and the driver behaves like if I were touching the registers. Options are: 1) Really confirm that my code + WinNT drivers behaves better than VGA BIOSes. 2) Make some kind of black list and somehow detect these boards (VESA calls provides manufacturer information) and use the low level routines for them. > By the way even with useBIOS_VGA_State = 0 I still get a NTVDM error in > Rhide, one issue found now to move onto the next one. More debugging to be > done. Did you check the mouse stuff is working for 2k/XP as I coded for NT 4.0? I mean: does the library detect NT and uses poll strategy instead of Real Mode Call Back? SET -- Salvador Eduardo Tropea (SET). (Electronics Engineer) Visit my home page: http://welcome.to/SetSoft or http://www.geocities.com/SiliconValley/Vista/6552/ Alternative e-mail: set AT computer DOT org set AT ieee DOT org Address: Curapaligue 2124, Caseros, 3 de Febrero Buenos Aires, (1678), ARGENTINA Phone: +(5411) 4759 0013