www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2002/01/02/09:08:22

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f
Sender: salvador AT delorie DOT com
Message-ID: <3C3314DF.FC34DB@inti.gov.ar>
Date: Wed, 02 Jan 2002 11:10:39 -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: djgpp-workers AT delorie DOT com
CC: 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>
Subject: Re: NTVDM Error and TVision.
References: <10112311737 DOT AA21576 AT clio DOT rice DOT edu> <001301c1929e$5f4e9c80$0102a8c0 AT acceleron>
Reply-To: djgpp-workers AT delorie DOT com

Andrew Cottrell wrote:
[snip]

> I traced the problem to something to do with the destroy() code. I can
> reproduce the NTVDM error every time I run the example below in a window
> instead of full screen mode. I tried it 10 times in a row and more times
> than I can count over the last two days in trying to find the real cause..

[snip]

>     int main()
>     {
>     #if 0            // Change to 1 and app will always crash in window mode
>         TMyApp myApp;
>         myApp.run();
>     #else

It looks like some problem related to destructors. I agree with Eli about the
need of a trace, the code you show (destroy) doesn't really show anything. The
shutDown methode and destructors should be studied.
I think the most dangerous thing you'll find in a TV application is the
deinitialization of low level stuff. When you destroy the application two
important (and potentially problematic) things happends:

1) The EventQueue is deinitialized, it triggers a mouse deinitialization. Did
you verified that my code that detects NT works under XP? See
classes/thwmouse.cc look for Windows_NT. You should also try forcing the
library  to avoid hooking the mouse interrupt, it proved to be dangerous under
NT. Try with use_mouse_handler=0 by hand.
2) The Screen  is deinitialized, it makes some BIOS calls that we found
dangerous because a lot of manufacturers fails to implement correctly. You
should try disabling the Screen deinitialization. Try editing
classes/tscreen.cc to do nothing in the ~TScreen destructor. Also try making
suspend() do nothing.

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