Here are 3 common Phar Lap error messages that occur when trying to run old Extended DOS programs in Win 2000 or XP accompanied by possible solutions:
(You'll want to check the last one, err 74)
No DOSX.EXE loaded (Microsoft DPMI host):
Error TNT.20035: 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 TNT DOS-Extender to run in protected
mode.
Solution: Load DOSX.EXE in an Autoexec .NT file such as AUTOEXEC.NT or a
program specific Autoexec .NT you create and set in the
Program Shortcut/Program/Advanced/Custom MS-DOS initialization files/Autoexec filename: -
REM Install DPMI support
lh %SystemRoot%\system32\dosx
This is the standard line in AUTOEXEC.NT.
In your program shortcut's Memory tab, set EMS to None.
PADS Perform DOS with built-in 386|DOS-Extender v5.1 sometimes does not delete swap file when it terminates abnormally and then cannot, or refuses to, start a new one (overwriting the one left):
Phar Lap err 58: Can't create VM swap file of size 0 in directory
C:\PPERFORM.SWP
Solution: Start the program with a batch file and add
"del C:\PPERFORM.SWP" before the line that starts PADS Perform
For a different program, substitute the appropriate path and swap file name.
No DPMI v1.0 host with Map Conventional Memory in Memory Block function (INT31h AX=0509h), required by any program which uses -REALBREAK:
Phar Lap err 74: Can't use -REALBREAK under this version of DPMI
Error TNT.20074: Can't use -REALBREAK under this version of DPMI
The purpose of the -REALBREAK switch is to request that some of the code and data be placed in conventional memory. There appears to be 2 reasons to use -REALBREAK to load some of the application in conventional memory:
1. Having some of the application in conventional memory can apparently improve the performance for some programs.
2. Mixing Real-mode and Protected-mode code. Apparently Real-mode code can be mixed with Protected-mode code if the Real-mode code and data are 64K or less and they are loaded in conventional memory (linked to be positioned at the beginning of the executable file).
Solution:
1. If program is all Protected-mode code, apply -REALBREAK 0 -
"CFIG386.EXE Program.EXE -realbreak 0" if DOS-Extender is bound to the
Program (one .EXE),
"TNT.EXE -REALBREAK 0 Program.EXE" if using a separate DOS-Extender loader
This says load 0KB in conventional memory, effectively eliminating the need for -REALBREAK support and allowing a DPMI v0.9 host to suffice. Microsoft's EMM386.EXE and DOSX.EXE DPMI hosts provide DPMI v0.9 support.
The performance will decrease, but the program should run.
2. If program is mixed Real-mode and Protected-mode code, you're screwed.
This is because Real-mode code and data MUST be loaded in conventional
memory, thus requiring support for INT31h Function AX=0509h, which in turn
requires a DPMI v1.0 host.
In this case, with -REALBREAK set to 0, the DOS-Extender will load. But when the program starts to load, it quickly displays an error such as the following:
Panic!!!!
cannot reach real mode vector
EAX ........ 0000250F
EBX ........ 00000000
ECX ........ 00008DC0
EDX ........ 002D0008
Exiting ...
since the Real-mode code isn't being loaded in conventional memory.
Reverse engineer the program and add the realcopy() function shown in DOX-Extender's MDRAW sample program and eliminate the need for -REALBREAK. Then the program should work in the NT series.
Or, for a more practical solution, try a Virtual Machine or Emulator such as DOSBox, Virtual PC, or VMware Workstation. Virtual PC can run PADS Perform DOS in Windows XP SP2, but only at 640x480 because of limited video support. DOSBox can even run PADS Perform DOS at 1024x768 in Windows XP SP2. DOSBox and Virtual PC are free.
So, even if ACAD R12 DOS uses mixed code like PADS Perform, you can still run it in Win 2000 or XP. But you'll have to use a virtual machine or emulator such as Virtual PC or DOSBox. On an Athlon XP 3200 with 2GB of memory, performance was acceptable for PADS. Try both to see which has the best performance and video support for ACAD. And get the fastest computer possible if your drawings are very large.
If interested, see:
"http://www.microsoft.com/windows/products/winfamily/virtualpc/supp ort.mspx"
Community, Virtual PC newsgroup
Search for: Virtual PC 2004 or 2007 Video Card Support for DOS programs
See the 2 posts on 07/18/2007.
VMware Workstation 5.5 or 6.0 Video Card Support for DOS programs
"http://www.vmware.com/community/thread.jspa?messageID=595889&# 595889"
See post of 07/15/2007.
(CFIG386.EXE is a utility from Phar Lap that allows configuring the DOS-Extender when it's bound into the main program's .EXE).
(PHARLAP.386 is a VxD, virtual driver, only for the Win 9x series. It will not load or work in the NT series).
(PADS Perform DOS is an Electronic CAD program that uses mixed code, the Phar Lap 386|DOS-Extender, and the -REALBREAK switch).