VOGONS


First post, by ddan017

User metadata
Rank Newbie
Rank
Newbie

Hi guys,

I'm trying to help my dad run a DOS program called TECPLOT that used to work on his old (busted) laptop, which we can't get working on anything else.

The program is used to graphically display data from a file. Using dosbox, we're able to start the program, but once we try to load up one of his files, it runs out of memory.

We've tried various combinations of xms, ems, etc and different cpu types and memory sizes, but no luck so far. One question: is the 64MB limit a DOS or just a dosbox limit?

Steps to reproduce:
Download and unzip: http://www.danilatos.com/dosbox_c.tar.gz
(Note: it's 50MB unzipped. Most of the contents aren't needed, but I didn't want to risk stuffing up the setup).

The "dosbox.conf" contains the current attempt, and an autoexec that will run the application (you might need to fiddle with it to make it actually mount the C: driver correctly though, depending on where you unzip it).

The problem should appear as an error message saying "OUT OF WORKSPACE"

If there's any more information I can provide to assist in diagnosing the issue, please let me know! Really appreciate any help!

Reply 1 of 8, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

IIRC before Windows 9x HIMEM.SYS limited memory to 64mb. Since DOSBox is for DOS games and that's all they ever needed then that's all that DOSBox supports.

If you need more than 64mb in DOSBox you'll need to modify the code to do so but you are likely better off using a VM like Virtual PC or Vmware.

http://support.microsoft.com/kb/116256

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

Reply 2 of 8, by ddan017

User metadata
Rank Newbie
Rank
Newbie

Thanks for the response.

I can write code, so I could potentially modify dosbox as you mention. Before I start looking at the code, does anyone have any idea if this would be a simple change, or require fundamental alterations requiring deep knowledge of the codebase? I'd be less confident doing the latter...

Reply 3 of 8, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Use these DOSBox settings:

memsize=16
xms=false
ems=false

Then, before running the app, enter this command: SET DOS16M=:16M

Setting the environment variable tells the DOS/16M extender how much extended memory to use. Apparently it is not using all available memory by default (don't know if that's an issue with DOSBox or not). You can put the command in the [autoexec] section of dosbox.conf so you don't have to enter it every time.

If you load even larger data files in the app, you may need to increase the memsize in DOSBox; and you would then change the ":16M" (16 megabytes) portion of the environment variable to match.

You should probably stick with the default core=auto and cycles=auto settings in DOSBox, because switching to protected mode uses dynamic core and max cycles, which is most likely what you want.

Reply 4 of 8, by gdd

User metadata
Rank Newbie
Rank
Newbie

Great news, thanks to ripsaw8080:

The tecplot program loads the *.plt file successfully, with the settings suggested. Also it works with ems=true and xms=true. It also works with memsize=64 provided always the command SET DOS16M=:16M is executed (e.g. in the autoexec.bat). This is all nice, because it means some work can be implemented, which is much better than nothing.

However, there are some remaining issues:

Increased data file size input still causes the error "have run out of workspace" even if I use SET DOS32M=:32M. In fact, any deviation from the value in SET DOS16M=:16M, results in the the same error, regardless of data file size (small or big). Here is a larger data file if someone wants to try http://www.danilatos.com/ANGLE.PLT (32 MB).

There is another issue regarding working speed: The tecplot seems to run a little slower than when it was running in the previous windows XP DOS, which is acceptable. However, the ancillary program PREPLOT.EXE takes ages to complete, as opposed to less than a minute in the previous windows XP environment. The preplot program converts a raw data file *.tec (in text form and large size) to a binary file *.plt (of much smaller size). Here is an example of *.tec file:

http://www.danilatos.com/DS2FF0.TEC (30 MB) that has been converted to http://www.danilatos.com/DS2FF0.PLT (8.5 MB) using the command "preplot ds2ff0.tec". It takes an impractical long time to complete, but at least it completes.

The error "have run of workspace" also appears after a successful loading of a small *.plt file, when I try to work with it inside the program. For example, the relatively small file ds2ff0.plt after it has been loaded into tecplot successfully (this can be done e.g. by command "tecplot ds2ff0.plt"), it cannot be processed inside the program using the following key sequence:

"File---Data---Createzone---Triangulate---SourceZones---(enter)---(enter)---(esc)---GoCreate" at which point the red error pops up again.

Any hope to resolve the above issues (I think memory related)?

BTW, one can choose the emulated graphics card through the program

"setuptec.exe" that can be run prior to "tecplot.exe"

Any help is gratefully appreciated.

Reply 5 of 8, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I thought you might need more memory with larger data, so just use memsize=32 (or more, if necessary; but keep in mind DOSBox only supports a maximum of 63MB)

For the environment variable, only change the value, not the variable name, e.g.: SET DOS16M=:32M

That's why I included the colon when I said to change the ":16M" portion, to prevent the exact mistake you made... to no avail, it seems. I guess I should have given more examples.

Reply 6 of 8, by gdd

User metadata
Rank Newbie
Rank
Newbie

Yes, it works by e.g. SET DOS16M=:50M, memsize=50 and provided I set also ems=true and xms=true (not =false). This is again excellent news and thank you very much.

I suppose the main remaining issue is the speed. The "preplot" program still takes ages to complete. Since there are so many variables in the conf file, here is what I used:

http://www.danilatos.com/dosbox.conf

if there may be some suggestions on this. Also, the "tecplot" program proceeded to process the data in reasonable time. However, the keyboard cannot type the sign "=" when I tried to enter an equation for further data processing. I had a similar issue with the backslash but the forward slash worked as well. Now the = sign key is to be overcome. Thanks again.

Reply 7 of 8, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

TECPLOT is a protected-mode program, and will use dynamic core and max cycles for best performance with the core=auto, cycles=auto settings in DOSBox. PREPLOT is a real-mode program, and you'll have to use the core=dynamic, cycles=max settings for best performance.

Dynamic core and max cycles should help PREPLOT considerably, but maybe not as much as you could hope for. Programs running in the WinXP NTVDM can be faster than in DOSBox, because DOSBox *emulates* an entire PC including the CPU. However, DOSBox has much better compatibility than the NTVDM for DOS games (applications are NOT its main focus); and it is portable to non-Windows, non-x86 platforms.

For the keyboard problem, you may be experiencing an issue with certain device drivers that occurs on some Windows laptop systems. You can read about the issue, and some solutions that have worked for others, here.

Reply 8 of 8, by gdd

User metadata
Rank Newbie
Rank
Newbie

Thanks ripsaw8080: The settings above work as you suggest. The preplot program runs very fast (core=dynamic, cycles=max ) with no perceptible difference from windows xp dos. The tecplot with core=auto, cycles=auto works acceptably fast albeit slower than windows xp dos.

I have not yet investigated the keyboard issue that presents on the HP laptop. However, I have now repaired my dell laptop (inspiron 64000) and the "=" is accepted on this keyboard.

The DOSBOX has some clear advantages over the windows xp dos that I can use again on my dell laptop. Windows xp dos has these limitations: Before I can run tecplot in windows xp dos, I have to change the screen resolution from 1680x1050 to 1024x768 plus I have to disable the screen saver (otherwise I get the mortal blue windows screen error message while running tecplot, and I have to reboot). Then I can run tecplot smoothly but only in full screen. To change tasks, I have to get out of tecplot though its own command a via few extra keystrokes and then I can return to it. Importantly, I could fluke only one graphics card with 256 colours from the list of graphics cards available in setuptec.exe, otherwise I would not have been able to run tecplot at all, as it happened with the other newer laptop while my dell was in disrepair.

All of the above problems are eliminated with DOSBOX being portable across computers.

CONCLUSION: Dosbox works well with this application, so it can go beyond games. All it needs is some refinement with some lesser issues like to make the keyboard "portable" too, in the sense to devise a set of easy instructions to apply from computer to computer.
----------------------------------------------------------------

SUPPLEMENT to my previous entry above: I have tried to do a little work with dosbox following all the initial success. However, I run out of memory ("have run out of workspace" error) when I triangulate a large *.tec file from within tecplot. While there is not yet a problem when I import a ready made *.plt file, even a large one, it seems that the triangulation process does require more memory over and above the upper limit of 63 MB. Triangulation works for smaller files but fails for larger ones.

Any hope to somehow make DOSBOX allow this application to run within the ceiling of memsize=64, since windows xp dos already makes this possible on my dell inspiron 6400? BTW, a similar problem happens also with windows xp dos but only with much bigger file size. The difference being only quantitative between the two systems, hopefully there is a way for DOSBOX to improve.

ddan017 has offered to do some work on it if some help is initiated from the fathers and/or experts of dosbox. (ddan017 should also be thanked for starting this discussion and offering to help).

Thank you all very much. 😀