Mail Archives: djgpp/1999/10/17/19:30:21
--- Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> wrote:
> On 17 Oct 1999, Dave Dribin wrote:
>
> > It runs "prog.exe" correctly, but hangs on exit of the program.
> >
> > Bash also fails, but in a different way. On return from "prog.exe",
> > bash gets a general protection fault with this dump:
> >
> > General Protection Fault at eip=482f3; flags=3046
> > eax=00000300 ebx=00000021 ecx=00000000 edx=00000000 esi=00181780 edi=0016b28c
> > ebp=0016b134 esp=0016b128 cs=a7 ds=af es=b7 fs=bf gs=bf ss=af error=00ec
> >
> > I looked up 0x482F3 in bash.exe and it is an "int 0x31" insruction.
>
> These symptoms seem to suggest that the program prog.exe that you
> invoked invalidates the Int 31h entry in the IDT. For example, it
> could be that it hooks Int 31h, but doesn't unhook it before exiting.
>
> What is that program? Is it a protected-mode program that uses some
> DOS extender? It is highly probable that it has a bug. Perhaps if
> you tell us what that program is, we could help you find a replacement
> that can be run under Bash (and in the DJGPP environment in general).
I was thinking about writing a program that launches games from a
menu. This particular game is Callus. You are correct that it is a
protected-mode program. This is what it displays at startup:
PMODE/W DOS Extender v1.33
Copyright (C) 1994-1997, Charles Scheffold and Thomas Pytel
Finding a replacement is difficult. Is there anything the launching
program can do to save and restore Int 31h? Or is it likely the
program trashed other important stuff as well?
Thanx!
-Dave
- Raw text -