www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/06/27/02:27:14

Date: Thu, 27 Jun 1996 09:20:53 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: Orlando Andico <orly AT gibson DOT eee DOT upd DOT edu DOT ph>
Cc: Garrido Freire <Francisco-Javier DOT Garrido AT sierpes DOT cs DOT us DOT es>,
djgpp AT delorie DOT com
Subject: Re: Multitasking in DOS (fwd)
In-Reply-To: <Pine.SGI.3.93.960627140022.4902B-100000@gibson.eee.upd.edu.ph>
Message-Id: <Pine.SUN.3.91.960627091350.9882L-100000@is>
Mime-Version: 1.0

On Thu, 27 Jun 1996, Orlando Andico wrote:

> have done that. Your biggest problem is: the *&&%$%%^ non-reentrance of
> DOG itself (although the BIOS is more robust..) which precludes a
> multithreaded filesystem! what's "multitasking" without it?

Actually, that might not be as hard as it sounds, at least under native 
DOS.  DOS has an internal data area known as SDA (Swappable Data Area) 
which holds all the data structures that make it non-reentrant.  All you 
need to do is to swap this area in and out on the task switch, and DOS 
will never know it was re-entered.  The ``Undocumented DOS'' book has a 
full chapter on this technique.

The catch, of course, is that it won't work with Win3.11 or Win95 with 
32-bit file access enabled, because then all file operations completely 
bypass DOS, and I don't know what will such a multitasking app in a DOS 
box do on these systems.  But under Win 3.1, or when 32-bit file access 
is disabled, this will probably work on Windows too.

- Raw text -


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