Mail Archives: djgpp-workers/1998/10/05/10:14:15
Hi All:
I tried to find why in the [auto censured] my editor and
RHIDE fails to work under NT.
The first thing is that using a RMCB for the mouse
doesn't work, it generated any kind of strange problems
(normal GPFs, GPFs trapped by NT, hang the DOS box [not the
system], etc). That's no so strange because RMCBs are dirty
and complex. The workaround is easy here: poll the mouse.
The other problem took me around 5.5 hours, here is the
smallest code that shows the problem in my system:
-------------- test.cc -------------------
#include <dpmi.h>
#include <string.h>
__dpmi_regs regs;
int main(void)
{
memset(®s,0,sizeof(__dpmi_regs));
/* Set video mode. */
regs.x.ax = 0x3; // 0x83
__dpmi_int(0x10, ®s);
memset(®s,0,sizeof(__dpmi_regs));
/* Get System Time, supported since DOS 1.0.
Used by time() */
regs.h.ah = 0x2c;
__dpmi_int(0x21, ®s);
return 0;
}
-------------- test.cc -------------------
In my editor the mode setting is done just to be sure
that we are running in the right video mode and the other
call is done to show the clock (and other stuff too). This
small program generates the same problem as my editor: dies
with a "Division overflow" message.
Important: To reproduce it you *must* run it in fullscreen,
just start a DOS box and run the program. You can't use a
windowed DOS box. I think that's because the video mode
setting is completly different when windowed and hence the
situation is very different.
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?
Other interesting things:
* NT is much more solid than Windows 9x/3.x when the DOS
tasks generates GPFs.
* 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"
Yes my NT is in spanish and the message have almost no
sense in spanish ;-). The translation could be:
"Application error, generating an application error
register.
ntvdm.exe
Exception: access infraction (0xC0000005), address
0xf003084"
Perhaps that's when ^C hits NT and not the djgpp program.
But I'm not sure.
* A simple Hello world program at least compiles ok ;-) (I
used djgpp v2.02, egcs 1.1 and binutils 2.9 to test).
* I have a version of my editor that works under NT, I just
disabled the video mode setting routine.
* A similar thing seems to be happening with Norton
Commander: NC enters in the screen saver (graphic mode
one), you press a key, you are kicked to the "DOS" prompt.
* I tried without loading the SVGA driver.
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 -