delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1996/11/17/06:52:52

Date: Sun, 17 Nov 1996 13:36:53 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Bill Currie <billc AT blackmagic DOT tait DOT co DOT nz>
Cc: Charles Sandmann <sandmann AT clio DOT rice DOT edu>, djgpp-workers AT delorie DOT com
Subject: Re: cwsdpmi - rm callbacks and pm sw ints
In-Reply-To: <328F3F27.4ADE@blackmagic.tait.co.nz>
Message-Id: <Pine.SUN.3.91.961117132648.13443D-100000@is>
Mime-Version: 1.0

On Sun, 17 Nov 1996, Bill Currie wrote:

> works fine. BUT, if I us a software interrupt instead, the computer
> locks up  and requires a reset.

Do you know where exactly does it crash?  Can it be that the crash is 
after the INT call returns, and not in the handler?  For instance, is it 
safe to assume that FS stays the same across interrupts (you only call 
_farsetsel once)?  Another thing that I'm unsure of is the 32/16 bit 
issue of the registers (such as EAX): what happens with the upper 16 bits 
when you invoke Int 21h from protected mode is a total mystery to me.

> I've attaced my test code (which works perfectly under windows 3.11).

Windows is different: it acts as a DOS extender, catching Int 21h in 
protected mode, changing some of the calls, handling others (like memory 
allocations and such) and reflecting still others to real mode, whereas a
DPMI host merely reflects SW interrupts to RM.  Can you try the code with 
another DPMI host which isn't Windows (PMODE?) and see what happens?

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019