delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2002/06/09/22:46:36

From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
Message-Id: <10206100232.AA17839@clio.rice.edu>
Subject: unixy sbrk and win2k
To: djgpp-workers AT delorie DOT com (DJGPP developers)
Date: Sun, 9 Jun 2002 21:32:26 -0500 (CDT)
X-Mailer: ELM [version 2.5 PL2]
Mime-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com

The following patch to crt0.S seems to have fixed the problem:

*** crt0.BAK	Sun Jun  9 20:14:46 2002
--- crt0.S	Sun Jun  9 20:21:48 2002
*************** brk_common:
*** 475,478 ****
--- 475,479 ----
  	movw	$0x0900, %ax					/* disable interrupts */
  	int	$0x31
+ 	cli
  	pushl	%eax
  

(Line numbers are vs 2.03, but it's just a single line insertion).  This
should be a no op - since the previous line disables and stores the
previous state in AX; we then restore (enable) them with an equivalent call.  

Under Win2K the get interrupt state DPMI call shows the program starts
with interrupts disabled (but they aren't) - the cli above seems to
fix win2K's bad behavior when moving the arena but does not break 
win95 for example.

Any comments?  We ought to try and build something substantial (like 
emacs) with this fix above to crt0 and see if there is joy in W2K land
again.

I can't see how this above could break anything.

- Raw text -


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