www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/08/12/04:28:16

Date: Wed, 12 Aug 1998 11:28:15 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: matthew DOT krause AT juno DOT com
cc: djgpp AT delorie DOT com
Subject: Re: Less Problem
In-Reply-To: <19980811.094355.3918.0.matthew.krause@juno.com>
Message-ID: <Pine.SUN.3.91.980812112752.16932A-100000@is>
MIME-Version: 1.0

On Tue, 11 Aug 1998 matthew DOT krause AT juno DOT com wrote:

> When I call less under Rhide, or using man, it displays the first screen,
> then locks. I have to nuke the Dos box with Control Alt Delete, then end
> task. 

You are one of the few unfortunate souls who get screwed by Microsoft.

It appears that some versions of system DLLs and VxDs involved in
running DJGPP programs (such as vmm32.vxd) have a bug that raises its
ugly head when one DJGPP program (RHIDE in your case) calls another
(Less).  The bug manifests itself when one of the two DJGPP programs
(the parent or the child, it doesn't matter which one) calls function
1680h of Interrupt 2Fh inside its idle loop.  This function tells
Windows that the caller doesn't need the rest of its time slice, which
is a Good Thing to do when you are idling, e.g. waiting for user
input.  When it is called on those rare versions of Windows, the DOS
box is wedged like you describe.

A solution is to either upgrade your Windows version, or rebuild the
program that gets stuck after replacing the library function
__dpmi_yield with a version which works around this bug.

I will probably upload a fixed binary of Less (built with a patched
__dpmi_yield) in the near future.  If you cannot wait until I have
enough free time, mail me privately and I will send you the source of
the fixed __dpmi_yield and instructions how to rebuild Less.

- Raw text -


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