How to run an old dos program ( dos4wg ) on a 64 bit OS

Posted on 2011-03-02
Last Modified: 2012-05-11

I have a Windows 2008 64 bits server.  I also have a really old Fortran programs that was build using Watcom and the DOS4WG.exe program.

However, this programs does not work anymore because DOS4WG.exe is a 16 bits applications, and therefore it does not run anymore on that OS.

We tried DOSBOX to validate the problem, and our programs runs fine in that emulator.  However, for our problem, we need to be able to call the programs multiple times from scripts.

So we see two possible solutions...

1) Have a DOS4WG.exe 32 bits version, which I was not able to find so far ( or something similar that I could adapt my code for )
2) Using scripts to automatically launch DOSBOX, mount drives and launch commands

I got the code and it compiles fine with the latest version of Open Watcom Fortran compiler.

Thanks for your advices!
Question by:Francois_Tremblay
LVL 90

Expert Comment

by:John Hurst
Comment Utility
For certain a 16-bit program will not run on a 64-bit machine and there is no way to make it so natively.

So you need to run DOS in some sort of emulator. You chose DOSBOX (fine); I use VMware.  So far, so good.

Now, you say run scripts to launch DOSBOX, mount drives and launch commands. Have you done this? My DOS 6.3 machine talks to 32-bit XP, but does not talk to 64-bit Windows 7. I have not figured out yet (a) will this even work? and then (b) if so how?  I don't think it will work.

I am not certain how to answer your question, but if you have not tested option 2, I don't know how it can work. .... Thinkpads_User

Author Comment

Comment Utility
Hi again!

We already have a VM  ( Hyper-V ), but it's exactly where we don't wan to go.  We got a very nice server running fast on Windows Server 2008 with 64 bits application ( mainly Matlab ).  A small part of our engineering process use the legacy code.

We want to run several hundred thousands of run and , sadly, we need the input from the legacy part at each run.  They are meshed together.  

For this reason, a VM is of no help.  We could simply run it on a Windows XP box, but we would not have the power of our 12 cores, higher clocks, etc.

It's why we are looking at a way of running this in the 64 bits environment.  We also have a project to migrate the old code but it's going to take time and we would like to have a nice little workaround for the time being.

LVL 90

Assisted Solution

by:John Hurst
John Hurst earned 125 total points
Comment Utility
If I were doing this, I would be inclined to get a Windows 2003 server to do what you want. I have played around with my DOS machine for a while and it simply does not work with 64-bits. A small server could do what you want (it must have before Server 2008 64-bit came along), so I would keep it in a legacy environment until your code migration is done. .... Thinkpads_User
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

LVL 59

Assisted Solution

by:Darius Ghassem
Darius Ghassem earned 125 total points
Comment Utility
16-bit programs will not run on 64-bit systems.

There is no way around this.

Even if you did get it to run you would not be using the 12 cores or memory that is installed on the server 16-bit applications can only use what they are limited too.

Only work around would be to install 32-bit system to run the 16-bit code

Assisted Solution

ednetman earned 125 total points
Comment Utility
VMware Workstation running in Unuity?  I know you want to take advantage of all the extra horsepower of the new server, but the 16bit application isn't going to recognize or utilize it anyway.
At least with Unity (or with VPC Windows XP Mode) you will be able to emulate a locally installed app.

Accepted Solution

CSI-Windows earned 125 total points
Comment Utility
It sounds like you were able to recompile the code in 32-bit with the latest compiler?

I would advise that you try to get off the 16-bit version while you have your attention on it (and many some resources from management?):

*) Trying to stay away from VMs is a good approach - especially when this software is providing a dependency direct to other software on the native machine.  Using VMs makes more sense for software that end users use directly in a self-contained manner (the software does not depend on or provide dependencies to other processes).

*) Test your re-compiled version extensively - make a test plan.  Ask users if they know of data that would help reveal possible problems with the fortran code.

*) Perhaps use a crowdsourcing site like to locate a fortran expert and have them validate that the recompile is truly going without a hitch - they may be able to tell by the code that where there is legacy fortran code that would change the core behavior of the software.

Author Comment

Comment Utility
Here is what we found out.

DOSBOX configuration file contains an [AUTOEXEC] section.  This way, we can mount and run our script in that emulator and it works fine.

We just need to build a small wrapper to launch that DOSBOX process instead of our application directly from Matlab.

We also noticed that this old legacy code was done in Watcom with some Fortran 66 in it.  We will redo the code so that the input/output are not so strongly integrated, no common variables everywhere and do apply some very modern concepts called object oriented programming ( for what can be done in Fortran ).

To give you an idea, the people that worked on that were ph.Ds that retired a long time ago.

At least in the meantime we got something working.


Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Possible fixes for Windows 7 and Windows Server 2008 updating problem. Solutions mentioned are from Microsoft themselves. I started a case with them from our Microsoft Silver Partner option to open a case and get direct support from Microsoft. If s…
A procedure for exporting installed hotfix details of remote computers using powershell
This tutorial will walk an individual through locating and launching the BEUtility application to properly change the service account username and\or password in situation where it may be necessary or where the password has been inadvertently change…
This tutorial will walk an individual through the steps necessary to enable the VMware\Hyper-V licensed feature of Backup Exec 2012. In addition, how to add a VMware server and configure a backup job. The first step is to acquire the necessary licen…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now