www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2002/01/03/14:34:37

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 <salvador AT inti DOT gov DOT ar>
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 <acottrel AT ihug DOT com DOT au>
CC: djgpp-workers AT delorie DOT com, Charles Sandmann <sandmann AT clio DOT rice DOT edu>,
Andris Pavenis <pavenis AT lanet DOT lv>, Robert Hvhne <robert DOT hoehne AT gmx DOT net>,
Tim Van Holder <tim DOT van DOT holder AT pandora DOT be>
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>
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



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019