Quoting "Dinu M.C" <[EMAIL PROTECTED]>:
> Hi!
> I am a new user of MDK linux.....and I need run a MS-DOS program;
> I try dosemu from the install. CD (ver. 3.9.xxx) and everything work
> just fine.....
> but my program NOT.
> That is the error message I recive:
> "C:\WINFARM>winfarm.exe
> Phar Lap err 35: The 386 chip is currently executing
> in virtual 8086 mode under the control of another program.  You must
> turn off this other program in order to use 386|DOS-Extender to run in
> protected mode."
> LITTLE HELP, PLEASE!!!!!

The older Phar Lap DOS Extender API uses the Virtual Control Program Interface
(VCPI) approach to >1MB direct memory access.  It requires direct and _complete_
control of the "Ring 0" of the i386 memory management unit (MMU).  So it must be
run on a system where "Ring 0" is not under control of any other program.

All 32-bit OSes, DOS-based Windows (386-Enhanced and all 95/98/ME) versions,
OS/2 and NT-based Windows (always 32-bit), Linux, etc... _must_ control "Ring 0"
to run.  So VCPI programs can _not_ run under them -- _period_.

As such, you must run it in "pure" DOS without a memory manager controlling Ring
0*1*.

VCPI was quickly replaced with DOS Protected Mode Interface (DPMI) which used a
single "DPMI manager" to control Ring 0 and then programs written for DPMI would
use DPMI function calls to access memory.  This meant that you could now have
multiple programs running at the same time too, unlike VCPI*2*.

Which is what all DOS-based Windows versions use, including 95/98/ME (MS-DOS
7.x).  DR-DOS 7.x also includes it, and Caldera showed it could completely
replace the "bundled" MS-DOS 7.x in Windows 95/98/ME (resulting in a lawsuit
that resulted in Microsoft paying some ~$300M (undisclosed) to Caldera).

OS/2 2.x+ and NT use different techniques, but natively support DPMI in their
DOS Virtual Machines (e.g., NTVDM).  Same deal with Linux, DOSEmu is the DOS
Virtual Machine for Linux, which can be heavily customized, including DPMI.

-- Bryan

NOTE *1*:  Some DOS memory managers, from MS EMM386 to Qualitas 386Max, could
"give up" Ring 0 as long as no other XMS, EMS or DPMI programs were loaded.  In
that case, you could load them and still be able to run a VCPI program.  Of
course, if you load modified device drivers that used DPMI to conserve sub-1MB
memory (both 640KB and UMB areas), like DR-DOS 7.x allowed, then you couldn't
run VCPI programs.

NOTE *2*:  QEMM's DeskView actually used VCPI to not only access >1MB, but was a
VCPI program that acted as a "manager" that allowed multiple programs to run.  
  This was done by using a proprietary API, that could be licensed, so they
could run under DeskView.  It was the proprietary predecessor to the DPMI
standard and today's common DOS task switching used in DOS and DOS-based Windows.

-- 
Bryan J. Smith, E.I. (BSECE)       Contact Info:  http://thebs.org
[ http://thebs.org/files/resume/BryanJonSmith_certifications.pdf ]
------------------------------------------------------------------
"Bryan J. Smith uses a modicum of talent and a membership in IEEE
 to harass others and show off" -- Peter Buxton

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to