Re: Dos App hangs with DPMI / PIC problem

Bart Oldeman
2004-09-15T21:43:40Z

On Wed, 15 Sep 2004, Ryan Underwood wrote:

> On Wed, Sep 15, 2004 at 08:54:17PM +1200, Bart Oldeman wrote:
> > On Wed, 15 Sep 2004, anon permutation wrote:
> >
> > >
> > > >The other thing is that you can try patching the conditional jump
> > > >immediately after that comparison that never succeeds:
> > > >c316:9036 F64408FF test [si+0x8],0xff
> > > >c316:903a 7408 je 9044
> > >
> > > how do i "patch" this jump?
> >
> > in dosdebug type:
> >
> > e c316:903a 75
> >
> > that will change the "je" to jne. I had to do something similar for
> > command keen 4, it was hanging in a very similar way.
>
> Are you speaking about during the system features detection (the first
> screen)?

Yes.

> I have a hang there too, and in fact any similar ID/Apogee
> game which has a screen like that. I haven't any idea what it's sitting
> there waiting on....

The timer interrupt generator is reprogrammed, and the loop is waiting
until the timer interrupt has a counter set to a specific value. dosemu
can't keep up (>100 Hz), and has to catch up. So the program sees the
value increasing by amounts > 1. This means that the counter never reaches
*exactly* the value the program wants to see, it steps over it.

Your /dev/rtc patch may help, but I haven't checked that.

Bart