Mail Archives: djgpp-workers/1998/10/08/10:39:54
Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> wrote:
> On Mon, 5 Oct 1998, Salvador Eduardo Tropea (SET) wrote:
>
> > I want to know if that's just my NT or is a problem in
> > all the NTs. If the bug is in NT I'll simply drop the
> > support for this platform because is 100% broken, but
> > perhaps isn't NT. Any ideas?
>
> I tried this. It doesn't crash for me at all. It just clears the
> screen. I tried to compile the program both as C and C++, with the same
> effect.
>
> Maybe if you tell how did you compile it exactly, I could reproduce the
> problem. I used GCC 2.7.2.1 and the command line didn't use any switches
> beyond -Wall and -g.
Nothing special, I generates the divide overflow compiling with and without
optimization. And in my editor both calls are very separated.
All seems to point to one thing: That's a "feature" of the spanish NT. Why I
think that? talking with a friend he told me that M$ support in Argentina
recommends the use of the english version!!!
> > * Ctrl+C when a djgpp program is running some times
> > generates an exception, in my NT says:
> >
> > "Error de aplicacion y se esta
> > generando un registro de error de aplicacion.
> > ntvdm.exe
> > Excepcion: infraccion de acceso (0xC0000005), direccion
> > 0xf003084"
>
> A known problem. I don't know why does it happen, but it doesn't
> happen every time. Some programs almost never cause NT to puke,
> others almost always do, still others sometimes do and sometimes
> don't.
>
> For example, programs that call __dpmi_yield in its old incarnation (the
> one that called INT 2Fh directly) crash badly, but those which were
> linked with a new version of __dpmi_yield (that calls __dpmi_int) work
> much better when Ctrl-C is pressed.
>
> > Perhaps that's when ^C hits NT and not the djgpp program.
> > But I'm not sure.
>
> Does Ctrl-BREAK work reliably? If it does, then the problem is most
> probably with the special ^C handling that NT does to emulate DOS.
> Two things to try are:
>
> - Hook Int 23h in the startup code. dpmiexcp.c already does that
> for some special brands of a PC: it sets Int 23h to a function
> that does an IRET. Maybe NT needs that as well.
>
> - Remove the ^C character from the keyboard buffer in the DJGPP
> keyboard handler. The change should be done in exceptn.S.
> AFAIK, the special handling of Ctrl-C by DOS happens when it
> sees 0x03 character in the keyboard buffer; the fact that this
> problem happens only sometimes might hint that if the DJGPP
> program is aborted by SIGINT *before* NT DOS emulator sees ^C,
> all is well. In that case, removing ^C from the keyboard buffer
> should solve the problem.
>
> Btw, I think we should always remove ^C from the keyboard
> buffer. I never understood why we don't do that now.
Ok, I'll see if I can try it.
Greetings, SET
------------------------------------ 0 --------------------------------
Visit my home page: http://set-soft.home.ml.org/
or
http://www.geocities.com/SiliconValley/Vista/6552/
Salvador Eduardo Tropea (SET). (Electronics Engineer)
Alternative e-mail: set-soft AT usa DOT net set AT computer DOT org
ICQ: 2951574
Address: Curapaligue 2124, Caseros, 3 de Febrero
Buenos Aires, (1678), ARGENTINA
TE: +(541) 759 0013
- Raw text -