VOGONS


PADS Perform + DosBox and ANSIPlus

Topic actions

First post, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

http://groups.google.com/group/microsoft.publ … 235c9b36282f0b2

This is an update detailing what I've tried and what worked, 4 Cases in order of worst to best: […]
Show full quote

This is an update detailing what I've tried and what worked, 4 Cases in
order of worst to best:

Target Application: PADS Perform DOS v6.0.1
Original OS: DOS
Challenges:
1. Uses Phar Lap 386|DOS-Extender v5.1,
2. Uses -REALBREAK command-line switch so it needs DPMI v1.0 host with
Map Conventional Memory in Memory Block function (INT31h AX=0509h),
3. Supports 21 different video cards at 1024x768 or 1280x1024, BUT NO S3
cards
or VESA selections,
4. Uses a parallel port hardware key.

Numbers 2 and 3 are the biggest problems by far.

*** Win XP SP2 Retail, native ***

Main Problem: Lack of DPMI v1.0 host with Map Conventional Memory in
Memory Block function (INT31h AX=0509h)

I tried to get PADS Perform to run in Win XP SP2 without a VM, but there is
one incompatibility with the Phar Lap 386|DOS-Extender (later called TNT
DOS-Extender) involving DPMI v0.9 versus DPMI v1.0 support. PADS Perform
used an Extender or DPMI option called the -REALBREAK command-line switch.
This requires a DPMI v1.0 host which provides the Map Conventional Memory in
Memory Block function (INT31h AX=0509h). But MS only provides support for
DPMI v0.9 with EMM386.EXE or later, DOSX.EXE (HIMEM.SYS is the XMS host).
DPMI v0.9 doesn't support INT31h AX=0509h.

The purpose of the -REALBREAK switch is to request that some of the code and
data be placed in conventional memory. One of the things this allows is to
mix Real-mode and Protected-mode code.

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.

If the reason is number 1, then the program will work in the NT series by
using "-REALBREAK 0" which tells the Extender to load 0KB in conventional
memory. I believe Autodesk's 3D Studio Release 4 falls into this category
since people have reported that this makes it work in Win 2000 and XP,
although the performance is cut in half. (If the DOS-Extender is bound with
the application to have only one .EXE, use CFIG386.EXE to change the
-REALBREAK switch, ex. "CFIG386.EXE 3DS.EXE -realbreak 0". If using a
separate loader such as TNT.EXE, use "TNT.EXE -REALBREAK 0 Program.EXE").

If the reason is number 2, then you're screwed. Period. The application
will never run in the NT series. It appears PADS Perform falls into this
category.

The -REALBREAK switch is the worst way to load mixed code together. There
are two other ways to deal with loading mixed code mentioned by Phar Lap.
The preferred way is to use the realcopy() function shown in DOX-Extender's
MDRAW sample program. "Using realcopy() avoids any potential compatibility
problems with -REALBREAK.". If it were possible to reverse engineer enough
of PADS Perform to add the realcopy() function and eliminate the need for
-REALBREAK, then PADS Perform would probably work in the NT series. However,
that is well beyond my capabilties. As the professors always used to say
"It's left as an exercise for the student".

Here's what happens:

If your program uses the -REALBREAK command-line switch, DOS-Extender will
refuse to load it unless the DPMI host provides the Map Conventional Memory in
Memory Block function (INT31h AX=0509h).

(See Phar Lap -> Ardence -> Citrix Tech Note 43 and 44 and the TNT
DOS-Extender Reference Manual).

When PADS Perform is started, the DOS-Extender starts to load and quickly
displays the following infamous error:

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

With -REALBREAK set to 0, the DOS-Extender loads. PADS Perform starts to
load, but quickly displays the following error:

Panic!!!!
cannot reach real mode vector
EAX ........ 0000250F
EBX ........ 00000000
ECX ........ 00008DC0
EDX ........ 002D0008
Exiting ...

PADS Perform uses the Phar Lap 386|DOS-Extender v5.1 bound into the main
PADS executable so that there is only one .EXE to run, PPERFORM.EXE. I also
tried using the TNT DOS-Extenders v7.0 and V8.02, TNT.EXE, as a loader to
load PADS Perform with "TNT.EXE PPERFORM.EXE" so I would have the features of
the newer version, in case that provided something more compatible to the Win
NT series. In fact, I'd always had to use the TNT.EXE loader method just to
get Perform to run in Win 98SE. PADS didn't provide a PHARLAP.386 VxD, so
Perform didn't originally run in Win 9x. I had access to the DOS-Extender
SDK v7 and v8. I tried v7.0 and v8.02 TNT.EXE loaders paired with their
respective PHARLAP.386 VxD in the SYSTEM.INI file's [386Enh] section and they
both worked. So I've always used v8.02 to run in 98SE. I tried all these
variations in Win XP but nothing worked. I tried all combinations of the
Memory and Compatibility settings in the shortcut used to start the program
and still nothing worked (EMS must always be None).

There was never any file from Phar Lap for Win NT that was equivalent to
PHARLAP.386 for Win 9x.

I've even tried other DPMI v1.0 hosts such as DPMIONE and HX DOS-Extender.
HIMEM.SYS must be loaded to give an XMS host. But with or without DOSX.EXE
loaded, DPMIONE and HX will refuse to load with the following messages:

DPMIONE:

The CPU is in Virtual Mode and there's no VCPI host.
DPMIONE.EXE not installed.

HX DOS-Extender:

HDPMI32: CPU is in V86 mode, but no VCPI/DPMI host detected.

These are similar to Phar Lap error 35 that results from loading
DOS-Extender without loading DOSX.EXE:

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.

Therefore, I could never get DPMI v1.0 support in Win XP.

Final Results: The program will not run natively in any Win NT series.

This is an update detailing what I've tried and what worked, 4 Cases in
order of worst to best:

Target Application: PADS Perform DOS v6.0.1
Original OS: DOS
Challenges:
1. Uses Phar Lap 386|DOS-Extender v5.1,
2. Uses -REALBREAK command-line switch so it needs DPMI v1.0 host with
Map Conventional Memory in Memory Block function (INT31h AX=0509h),
3. Supports 21 different video cards at 1024x768 or 1280x1024, BUT NO S3
cards
or VESA selections,
4. Uses a parallel port hardware key.

Numbers 2 and 3 are the biggest problems by far.

*** Virtual PC 2007 ***

Host - Win XP SP2, Retail
Guest - Win 98SE, Retail
Video support - S3 Trio32/64 PCI (732/764) (with VM Additions), VESA
standard up
to 1024x768 and 1280x1024

Main Problem: Lack of Video Support

I tried this since I thought I might get lucky and have one of the 21
supported cards be compatible with the S3 Trio32/64 or the VESA standard. I
was of course dreaming. Only 4 selections even drew garbage on the screen at
1024x768: the Tseng Labs ET4000 and ET3000, the ATI VGA Wonder +, and the
Paradise VGA. The IBM 8514A and the ATI Ultra (mach8) were well behaved,
displaying "NO 8514 PRESENT" and exiting. All the others drew nothing and
left the window blank and hung, needing an Alt-Del to get back to the VM
Desktop. Only the IBM VGA setting worked which restricted the resolution to
an unacceptable 640x480.

Aside from the video, it was easy to get PADS Perform running. After
installing Windows 98SE and the VM Additions, the network was already
working. So I copied all the PADS Perform application directory as well as
my old System.ini, Config.sys, and Autoexec.bat files from the host which
shows up in Network Neighborhood to the VM C: drive (I had copied the files
from an old computer to the host ahead of time for this experiment). I
copied the line needed by PADS Perform to the System.ini file in the VM
C:\WINDOWS and the whole Config.sys and Autoexec.bat to C:\ of the VM 98SE.
I remmed out lines that were only needed by other applications. Mainly I
needed:

SYSTEM.INI [386Enh] - DEVICE=C:\PADS\PHARLAP.386
CONFIG.SYS - DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS
DOS=HIGH
DOS=UMB
AUTOEXEC.BAT - PATH as appropriate
Loadhigh C:\WINDOWS\COMMAND\DOSKEY.COM /bufsize=1024
SET environment variables as appropriate for PADS
Perform

(DOSKEY was only for convenience and not required).

I also set the LPT1 Setting to Physical parallel port: LPT1 (378h-37Fh) in
the Settings for the Virtual Machine.

Final Results: Application runs perfectly, but only at an unacceptable
standard
VGA 640x480 resolution. Slower than DOSBox, but the
speed is
acceptable.

*** VMware Workstation v6.0.0 ***

Host - Win XP SP2, Retail
Guest - Win 98SE, Retail
Video support - VESA 2.0 standard

Main Problem: Lack of Video Support

I didn't try this since I thought it would have the same results as Virtual
PC. It has the same type of video limitations for PADS Perform so I assume
it will run but at an unacceptable standard VGA 640x480 resolution.

*** DOSBox v0.7 ***

Host - Win XP SP2, Retail
Guest - None, DOSBox emulates MSDOS 5.0 inherently
Video support - VGA and VESA built-in; Tseng Labs ET4000, S3 Trio32/64, and
Paradise VGA (with Vasyl's SVGA Additions)

Main Problem: Slight color problem at 1024x768, corrected with ANSIPLUS

This program is really impressive. The hardest part is collecting the
pieces you need from various sites. Sourceforge handles the official build,
currently DOSBox v0.7. There is a site for "unofficial" CVS builds posted
daily which have fixes and possible additions. This is mainly for beta
testers and comment. Then there are builds produced by people in the DOSBox
community which use the official source and add various features in code
contributed by other people in the DOSBox community. Three often used ones
are:

Gulikoza - with Direct3D, OpenGL-HQ, Vasyl's SVGA support, plus others
ykhwong - with Direct3D, OpenGL-HQ, Vasyl's SVGA support, plus others
HAL 9000 - Direct Parallel and Serial Port access

For PADS Perform DOS, I needed to download the following:

The official DOSBox v0.7 Win32 installer,
The latest build from either YKHWong or Gulikoza,
ANSIPLUS v4.06 from Kristofer Sweger,
PortTalk v2.2 from Beyond Logic

I ran the DOSBox installer. Then I unzipped the YKHWong and Gulikoza builds
so I could try each one. I copied the YKHWong files into the DOSBox
directory and replaced DOSBox.exe and DOSBox.conf and any other files that
were older. Then I studied and edited the default .conf configuration file
to make changes as follows:

[sdl] - fulldouble=true
fullresolution=1024x768
windowresolution=1024x768
[dosbox] - memsize=64
[vga] - svgachipset=et4000
videoram=1024
[dos] - ems=false
[autoexec] -
mount c c:\
path=C:\;C:\BAT;c:\pads;c:\pads\files;c:\pads\cam; C:\DOS; C:\WINDOWS; C:\WIND­OWS\system32; C:\Programs\ANSIPLUS; C:\Programs\PortTalk; C:\ECED; C:\XTGOLD;

SET dosx=-swapdir C:\PADS\SwapFile
SET TMP=C:\temp

C:\PROGRAMS\ANSIPLUS\ANSIPLUS.exe

C:
cd C:\PADS
C:\PADS\PERFDOS6.COM
del c:\PADS\SwapFile\PP*.SWP
C:\pads\PPERFORM.EXE /S

Then create a shortcut from the DOSBox.exe and set Start in: to C:\PADS.
Compatibilty is all default, nothing checked. Copy the edited DOSBox.conf
file to C:\PADS. DOSBox looks for a DOSBox.conf in the Start in: directory.

When I first started, I wasn't using ANSIPLUS and there was a problem with
having some colors wrong at 800x600 and 1024x768 in PADS Perform. The colors
were perfect without using ANSIPLUS in XTree Gold v3.0 and an editor called
EC which both run at 640x480. The first thing I thought of to fix the colors
was ANSI.SYS but I couldn't load it in DOSBox even with loaders like Devload
and CTload. So I started going through loadable ANSI.COMs. None worked
until I came across the program ANSIPLUS, which is loadable as a device
driver or a TSR. I loaded it in DOSBox before the application and the colors
were almost perfect. I had to configure ANSIPLUS from the default palette to
the "I" option of IBM-OEM colors and then the colors were perfect. (I'm not
sure why the author didn't set the IBM-OEM colors as the default). Both
Gulikoza and ykhwong builds worked equally well and had the same color
problems. Both were fixed with ANSIPLUS.

One thing was odd, I had to run the original bound PPERFORM.EXE without the
TNT.EXE loader. When I tried to start PADS Perform with the TNT.EXE loader,
it and PADS loaded and PADS was at its initial graphic screen ready to go.
But then it would exit back to the DOS Prompt and display a message about not
being able to read the key. This never happened when using just
PPERFORM.EXE. Perhaps it has something to do with not having the matching
PHARLAP.386 driver loaded since Win XP can't use a VxD.

One thing that didn't work was the Paradise VGA support. PADS Perform has a
selection for "Paradise VGA" which I selected. I set the DOSBox.conf to:

[vga] - svgachipset=pvga1a
videoram=1024

PADS would display a line of text as usual before it normally goes to its
graphic screen. But then the cursor would sit at the left under the text
line and never get any further. PADS was running, just not able to display
the correct thing. I could use the keyboard exit sequence "blind" and PADS
would exit and return to the DOS Prompt.

Finally I have PADS Perform DOS running in Windows XP SP2. Now the old
hardware and Win 98SE can be retired.

Final Results: Application runs perfectly at 1024x768. Faster than Virtual
PC.

DOSBox is the program that worked for me, rather than Virtual PC 2007 or
VMware Workstation, because of the ET4000 video support. Both run PADS
Perform DOS. But only DOSBox will let me run at 1024x768, which is a must
have item.

A big thanks to the DOSBox Team and especially Vasyl!!!

How To Ask Questions The Smart Way
Make your games work offline

Reply 1 of 66, by vicg

User metadata
Rank Newbie
Rank
Newbie

Hi there
Just last week discovered DosBox and this forum. Have been trying for ages to get PADS PCB for DOS (V4.08 at the moment but have V3.34 and V5.0) to work acceptably under XP Pro and Virtual PC but, like you, failed due to graphics limitations.
An evenings work with DosBox and your info( for which many thanks) has me a running prog with ET4000 graphics at 800x600, colours not quite right but I have not yet implemented ANSIPLUS. However, when I try to load a job file I get dropped back to the DosBox prompt with the pcb.err file containing a single line:-
EMS SET BLOCK -1 ERROR = 138
(PADS-PCB uses EMS memory) This error is not listed under errors in the manual. Any thoughts?

Reply 3 of 66, by Plan9FOS

User metadata
Rank Newbie
Rank
Newbie

I've never used PADS PCB. PADS Perform DOS used the Phar Lap 386|DOS-Extender and was 32-bit code. If I remember, PADS PCB was still 16-bit code and didn't use any Extender. So it makes sense that it uses EMS memory. In the case of PADS Perform, you'll notice the settings were always for no EMS or EMS false. Make sure you've set EMS to true.

Possible settings to look at:

For DOSBox:

In the dosbox.conf

[dosbox]
memsize=64

[dos]
xms=true
ems=true
umb=true

For Windows XP Pro SP2:

In C:\WINDOWS\system32\CONFIG.NT
dos=high, umb
device=%SystemRoot%\system32\himem.sys

In C:\WINDOWS\system32\AUTOEXEC.NT
REM Install DPMI support
lh %SystemRoot%\system32\dosx

himem.sys is the XMS host
dosx.exe is the DPMI host
In this case, %SystemRoot% is C:\WINDOWS
(In Win 2000, it is C:\WINNT)

If I understand correctly, these Win .NT settings are for the NTVDM (NT Virtual DOS Machine) and shouldn't affect DOSBox which is a Win32 program. But you might want to check them anyway.

This also shouldn't be needed, but in the Compatibility tab for DOSBox or your shortcut for it (right click and select properties), try setting the Compatibility mode to Windows 95 or Windows 98.

For instructions on loadfix and mem:

loadfix
http://dosbox.sourceforge.net/wiki/index.php? … grams%2Floadfix

mem
http://dosbox.sourceforge.net/wiki/index.php? … +Programs%2FMem

mem will tell you how much and what types of memory you have available in DOSBox.

Reply 5 of 66, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Config.NT/Autoexec.NT have nothing to do with DosBox.
Do not set compatibility mode on DosBox.

How To Ask Questions The Smart Way
Make your games work offline

Reply 6 of 66, by Plan9FOS

User metadata
Rank Newbie
Rank
Newbie

I thought that was the case, but wasn't completely sure. So is it correct to say DOSBox is a Win32 program that doesn't depend on the NTVDM in any way?

Why would it be bad to increase memsize? I increased it from 16 to 64 because we have a few PCBs which are very large. It seems to work fine. Are there any problems to watch out for?
(If vicg doesn't have any large boards, then 16 should work. Large meaning large outline with 8 or more layers and lots of flooding).

I found a copy of the shareware version of PADS PCB online and I will try to see if it runs.

Reply 7 of 66, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

So is it correct to say DOSBox is a Win32 program that doesn't depend on
the NTVDM in any way?

Yep, it's a fullblown PC emulator.

Why would it be bad to increase memsize?

Some games don't work with >16mb, thus keeping people at using the
standard size. Otherwise it'll just be like "hey the more the better"
which is not true once for the compatibility aspect and because if
a game really requires more it'll use paging, which is not any slower
due to the host caches.

Are there any problems to watch out for?

No, if it works it works. If not it's unlikely to start up. But maybe try
it with =31, that's a rather safe value for most stuff.

Reply 8 of 66, by Plan9FOS

User metadata
Rank Newbie
Rank
Newbie

I have been experimenting with PADS-PCB and this is just a quick update.

I downloaded a copy of PADS-PCB (SHAREWARE Version 4.09). It has a limit on the size of the designs it can do. Therefore it may not be a good test since the most EMS memory I see it claim to use is 384KB.

1. It runs fine in Win XP in VGA mode 640x480. Starts in Full screen even though Shortcut's Display options is set to Window. Nothing special needed. Limited to 640x480. All selections I tried at 800x600 and 1024x768 just resulted in a blank screen. Only way to run at higher than 640x480 might be a dual video card PC where one of the cards is an ET4000, ET6000, or a mach64/ATI RAMDAC PCI card.
(mach64 GX/ATI Spectra RAMDAC cards run the VGA Wonder + driver).

2. It runs fine in DOSBox up to 800x600. I can load in the demo .JOB files, I tried Demo and Demo1. Works with any combination of xms and ems settings. Only states it's using expanded memory when ems=true. Video works at 800x600 with Tseng Labs VGA and Paradise VGA Card when .conf is set to et4000 and pvga1a, respectively. Tseng Labs VGA is the only selection that comes close to working at 1024x768. It draws most of the screen but leaves the bottom 1/4 blank. Program runs OK and can exit "semi-blind" back to DOSBox prompt (exit selections are at the bottom of the screen which is blank). Note that Tseng Labs VGA and ET4000 are not the same chip.

I'm using memsize=64 on this program as well and have no problems.

I'll post a more detailed report soon.

It would be good if somehow I could get the full version of the program. I would, of course, delete it when the experimenting is done. I have PADS Perform and don't have any need for PADS-PCB except this experiment.

Reply 10 of 66, by Plan9FOS

User metadata
Rank Newbie
Rank
Newbie

I left memsize=64 just as part of the experiment.

I agree that given the capabilities of even the full version of PADS-PCB, 16MB should be enough. For PADS Perform, if it's being used on large PCBs, I would set it to at least 32MB. In my case, with our largest PCBs, I feel safer with 64MB.

I'm also thinking about people running AutoCAD R12 for DOS. It has the same problems as PADS Perform DOS in regard to not being able to run in Win XP natively and for the same reasons. They might want to run in DOSBox rather than Virtual PC. I don't use AutoCAD myself, but I've been told some of the AutoCAD drawings get pretty large, even from the R12 era. So they may want to know that 32 and 64MB works fine.

I understand the reasoning for games and it makes perfect sense to set the default to 16MB. I'm just experimenting so that for the CAD users, they'll know it works at 64MB, which will be enough for most designs.

Reply 11 of 66, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

So they may want to know that 32 and 64MB works fine.

acad12 uses virtual memory, so it'll even work for all sizes of drawings
with 4mb or something. Again unless there ARE problems related to not
enough extended memory the default should be used.

Reply 12 of 66, by Plan9FOS

User metadata
Rank Newbie
Rank
Newbie

Aha, makes sense.

But then I wondered about the virtual memory. I usually associate virtual memory with being allocated from the physical hard drive and therefore much slower than DRAM. But in DOSBox, is the virtual memory allocated from the hard drive and therefore slower, or does it grab more memory from the host (which these days usually has a lot) and set it up as virtual memory for the program and thus run only a tiny bit slower (from the overhead)?

Just curious.

Reply 13 of 66, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

usually associate virtual memory with being allocated from the physical hard drive

Right, the same for dos extenders (pharlap for acad i think), they create
a file and use that. Usually the host or c-library of a modern OS has some
caching so it doesn't have an impact on speed.

But in DOSBox, is the virtual memory allocated from the hard drive

The dos extender cares about the swapping, that means if dosbox provides
4mb of memory (which is, depending on the amount of ram you got in your
pc and how much memory is free, in physical memory or paged out) and
the dos application allocates 8mb, the dos extender provides 8mb of virtual
memory and swaps pages in and out according to what pages the app
currently uses.

Reply 14 of 66, by Plan9FOS

User metadata
Rank Newbie
Rank
Newbie

I got hold of the full PADS-PCB v4.08. The one I got had the same problem as vicg. Here's the symptoms:

1. When I loaded the Shareware version's design DEMO1.JOB, it appeared to load but there was a small amount of video garbage left in the F9 line in the lower left. And when I looked more closely, I could see a lot of routes not drawn. PADS was still running.

2. When I loaded the Shareware design DEMO.JOB, it would draw part of the board and PADS would either hang or exit to the command prompt.

3. When I loaded the Full version's design PRACTICE.JOB, it always exits to the command prompt.

DEMO.JOB is a partially routed board and DEMO1.JOB and PRACTICE.JOB look fully routed. All are roughly the same size.

I set memsize=16 but tried 4 and 64 as well, no difference.
I set ems=true always, except when noted.
I set xms and umb to all combinations of true and false. They didn't make any difference.
I settled on
xms=true
ems=true
umb=false
except as noted.

The instructions for loadfix on Sourceforge seem somewhat wrong. The only way to use it is:
"loadfix program"
A size parameter is not allowed and loadfix cannot be used by itself before
starting the program.
I used "loadfix pcb.exe".

Following are a list of cases tried and the results, quoted lines are status info from PADS before changing to graphics mode:

When EMS is off,

xms=false or true
ems=false
umb=false or true

Full version in Full directory:

"Expanded memory drivers not installed in CONFIG.SYS

Available DOS memory for PCB design 270144 bytes.
Equivalent to board with 609 parts and 824 nets with 2471 connections."

Loads DEMO.JOB and PRACTICE.JOB.

When EMS is on,

xms=true or false
ems=true
umb=false or true

Shareware version in Shareware directory:

"384K of expanded memory being used.
Available DOS memory for PCB design 235648 bytes.
Equivalent to board with 70 parts and 150 nets with 300 connections."

Loads DEMO and PRACTICE.

Full version in Shareware directory:

"384K of expanded memory being used.
Available DOS memory for PCB design 270160 bytes.
Equivalent to board with 609 parts and 824 nets with 2471 connections."

Loads DEMO and PRACTICE.

(This is a quick way to turn off the LARGE Option set by DEFAULTS.PAD, see def. below).

Full version in Full directory using loadfix:

"1088K of expanded memory being used.
Available DOS memory for PCB design 218272 bytes.
Equivalent to board with 920 parts and 2000 nets with 4958 connections."

Loads DEMO, Loading PRACTICE exits to prompt.

Full version in Full directory:

"1088K of expanded memory being used.
Available DOS memory for PCB design 278336 bytes.
Equivalent to board with 1107 parts and 2000 nets with 6454 connections."

Loading DEMO and PRACTICE exits to prompt.

The numbers listed aren't very accurate and should only be used as a loose relative comparison.

It seems that when the main program does not use EMS, it works well (LARGE Option off). It still uses EMS for the libraries. But as soon as the LARGE Option is on which lets the main program use EMS to expand its capability, problems start.

Are there any hidden options to control DOSBox's EMS support?
Are there any other ways to get EMS support in DOSBox such as another program?
If not, the best option for now is to set DOSBox ems=true and PADS-PCB LARGE Option off and hope that's enough memory for your designs (the libraries will load in EMS).

From PCB.DOC

"LARGE OPTION:
If a user does NOT have the LARGE option installed, but does
have expanded memory, this expanded memory will be accessed
ONLY for library cache and NOT to expand the system limits.

If a user has the LARGE option installed, then the first
640k of Expanded Memory is used for expanding the system
limits. The second 64k of Expanded Memory is allocated for
macros, and any remaining Expanded Memory is used for
library cache.

LIBRARY CACHE MEMORY BREAKDOWN:
If available, each library is allocated 128k of Expanded
Memory for library cache. This 128k is equally divided
among parttypes and decals (lines library receives no
cache). For the following examples let's assume 256k of
Expanded Memory is available for library cache.

Example 1: FOUR LIBRARIES OPEN
All libraries would receive 64k of Expanded Memory (64k +
64k + 64k + 64k = 256k).

Example 2: THREE LIBRARIES OPEN
The first library would receive 128k of Expanded Memory and
the second and third libraries would receive 64k each (128k
+ 64k + 64k = 256k).

Example 3: FIVE LIBRARIES OPEN
The first four libraries would receive 64k of Expanded
Memory and the fifth library would receive 0k of Expanded
Memory or no cache.

DOS 5.0 ADVISORY
DOS 5.0 is functioning fine on two systems here at CAD
Software, Inc.. The hardware configurations are as follows:
386/25 MHz CPU
VGA graphics/Number Nine SGT Pepper Card
386MAX Memory Manger/QEMM Memory Manager
80 MB hard drive
4 MB of extended memory
Both systems are loading all available drivers into high
extended memory which provides a large additional amount of
DOS 640K memory to our programs. This additional DOS memory
allows for larger numbers of parts, as well as connections.
We have, however, run into several cases where certain
statements when executed through the CONFIG.SYS file would
cause the programs to lock up or act unpredictably. We
advise customers to strip their CONFIG.SYS file down until
they find which statements are causing the problem.
One known statement is:
DOS = HIGH, UMB"

Reply 15 of 66, by vicg

User metadata
Rank Newbie
Rank
Newbie

Hi
Well you have been busy! Thank you for those efforts which seem to agree entirely with my findings. Unfortunately I do need the large option as I am working mainly on mods to existing designs most of which run the package just about on its size limits.
I will carry out a couple more experiments.
1) to see if I get the same result with V3.34
2) run V4.08 on a real DOSmachine to make sure we don't have any corrupt files (this will take a bit longer as I will have to dig my DOS box out of the loft).
Will report back.
Cheers
Vic

Reply 17 of 66, by vicg

User metadata
Rank Newbie
Rank
Newbie

OK, I have tried PADS-PCB V3.34 in DosBox using exactly the same DosBox config that I used with V4.08 and it runs and will happily load any of the training files that come with the package (these are the same as the V4.08 ones). At startup it says:-
640K of expanded memory being used.
Available DOS memory for pcb design 244528 bytes
equivalent to a board with 1007 parts, 2000 nets and 5654 connections.

Since all else is the same it would seem as if 3.34 was not written to use more than 640K EMS - this could be significant. It's copyright date is 1986 which, I think, was quite early in the life of EMS. Were they perhaps trying to push the limits of the EMS spec when they updated to 4.08?
3.34 also, of course, only used 640x480 ega graphics.

I also did a bit of digging on the
EMS SET BLOCK -1 ERROR = 138
my ancient DOS programming manual lists some EMS error codes and has:-
error 8AH (=138 decimal)
'Logical page requested to be mapped located outside range of logical pages assigned to handle'

I was an old fashioned assembly language programmer and gave up software for hardware when the PC took off! But does this error message say anything to any of the DosBox crew?

Reply 18 of 66, by Plan9FOS

User metadata
Rank Newbie
Rank
Newbie

It might even be screaming.

Several thoughts:

1. Notice in my post above, the manual was talking about using 640KB for the main program when using the LARGE Option:

From v4.08 PCB.DOC

LARGE OPTION:
If a user has the LARGE option installed, then the first
640k of Expanded Memory is used for expanding the system
limits. The second 64k of Expanded Memory is allocated for
macros, and any remaining Expanded Memory is used for
library cache.
If the LARGE Option is off, EMS is only used for libraries (and PADS-PCB works fine).

However, in the v4.0x Hardware Setup it says:
The PCB-LARGE option requires an additional 1 megabyte of expanded memory with a compatible expanded memory manager software.

2. In v4.08 and 4.09, I never saw it say 640KB, only 384KB or 1088KB. That would seem to indicate PADS changed the EMS part to some degree. As you suggest, maybe they introduced a bug or did something that DOSBox's EMS can't deal with.

In that case, you would also want to try your v5.0 and see if they improved or fixed the EMS part.

3. HAL9000: how does one load MSDOS v6.22 in DOSBox?

So, would I be using it like Virtual PC where it's just an empty machine and I have to load an OS? VPC inherently tries to boot when the VM starts so you can boot from the floppy or CD and load the OS. How do I do the equivalent in DOSBox?

The reason I ask is I'm having trouble with the keyboard number pad navigation functions not working when Num Lock is off in both PADS Perform and PADS-PCB. I was kind of ignoring that problem and concentrating on getting PADS working along with the color problem and printing. Now that those are solved, the numpad problem has become a major concern. Using PADS without it is not going to work. It's that important for navigation in PADS. I haven't been able to get it to work. So I'm wondering if I should try MSDOS 6.22 (that's the one I've still got and I know PADS works in) in DOSBox to see if it fixes the numpad problem. What do you think? Any other possiblities?

4. A big thanks to everyone who has helped me,

The DOSBox team, Vasyl, HAL9000, Gulikoza, ykhwong, and everyone else who's been so gracious with the time, effort, and suggestions.

HAL9000's latest build combined his Parallel Port code and DOSBox with the fixed palette code for 4bpp SVGA modes. This build prints from within PADS Perform AND displays the correct colors without using ANSIPlus!

Thanks

Reply 19 of 66, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

would it be possible to have a set a files which reproduces this ems error ?
our ems emulation can generate it at a few locations. It would be interrresting to see "who" is to blame and wether it can be fixed.

Water flows down the stream
How to ask questions the smart way!