Extend the life of old applications with vDos: using vDos to run 16-bit programs
in 64-bit environments
Other than upgrading to a newer version of the software which is available, there are a few other solutions to this problem, most not terribly desirable. One is to replace the existing PC with a 32-bit version of the same operating system (particularly if it is running Windows 7, 8 or 10). That is an increasingly impractical option. Another is to install a virtual 32-bit environment or emulator. Typically these are fraught with a variety of technical hurdles and are still somewhat awkward to access.
Another solution is vDos.
|Advanced Accounting 5.1 (DOS mode) running under Win 7 Professional 64-bit|
(FRAME set to OFF - recommend to be ON however)
While most of our users either have migrated (or will soon will be) to newer Advanced Accounting versions, it can still be desirable to be able to run old programs even if they will not be getting used on a regular basis. In addition, if an older PC fails when the older version was still being routinely run, and the old software is then of necessity migrated to a 64-bit system, the old software may still needs to initially be run in order for the conversion of data from 5.1 to 7i (and soon 8) to take place, plus it may be needed to be used until that can occur. Programmers may also have an occasional need to look at older programs in the TAS 5.1 (or prior) application development system and be able to make program changes and compile older programs from a 64-bit PC.
vDos potentially provides a solution for all of the scenarios above. It could even be used for users who would rather fight than switch, the only primary potential problem then would relate to printing. vDos however provides ample support for printing and in fact provides legacy versions with a Windows dialog box that older versions lacked.* The printing options in fact appear to be very powerful including being able to print to a PDF, but would likely require changes to individual programs in order for the output to be properly aligned and formatted correctly in general.
(*Other than the tp5win.exe mode of version 5.1. Tp5win.exe, while 16-bit, requires a Windows installation and therefore cannot be run under vDos.)
vDos was originally provided on SourceForge and made available as freeware until recently. Older/freeware versions as well as community support remains there:
General information from the publisher about the product is here:
The April 2015 version (the October 2015 version has a built-in expiration date) remains available for free. Starting November 1, 2015, the latest version which should be registered but can be downloaded installed without advance payment (and which is no longer 100% open source, an irrelevant fact for most users).
Installing and using with older versions of Advanced Accounting:
Initial setup: Installing vDos initially is simple. The default install folder is C:\vDos. It normally should be installed to a local drive even if the accounting (or other legacy) software is installed on a networked drive, at least for preliminary setup and testing.
Folder names and any called file names should be 8.3 compliant. The location of the existing legacy software should already be in a compliant folder name. If located across a network, the user will need the normal read/write/delete rights to the folder.
The vDos software uses the C++ dynamic library link file MSVC100.DLL. If you receive a message indicating that DLL is missing, you will need to download and install the Microsoft Visual C++ 2010 Redistributable Package currently available here:
At this point, you should be able to run the vDos software which by default calls an old DataPerfect application as a test. Assuming that runs successfully (press F7 to exit out of that software and type the word EXIT and then press ENTER to exit the session), proceed with next section.
Configuring to run Advanced Accounting: The vDos.exe (executable) creates its own C:\ environment or session, and relies on two files that are initially installed in the same folder as the executable, CONFIG.TXT and AUTOEXEC.TXT. These correspond to the days when CONFIG.SYS and AUTOEXEC.BAT were in the C:\ drive of MS-DOS systems as well as early MS-Windows systems (in later versions of Windows, they were placed in C:\WINDOWS\SYSTEM32 and renamed CONFIG.NT and AUTOEXEC.NT). The shortcut to vDos.exe will automatically process whatever is in the CONFIG.TXT file and call the program specified in AUTOEXEC.TXT as if it was a batch file. While initially that is the most simplistic installation approach, in a multi-user environment or if you will be using vDos.exe to support more than one legacy application from the same desktop, a different and better approach would be to copy the CONFIG.TXT and the AUTOEXEC.TXT to the legacy application's folder, and then in the icon's properties, change the "Start in" folder to match that location.
Nothing needs to be added or changed to CONFIG.TXT (except see the recommended change below). CONFIG.SYS and CONFIG.NT in the older days required a FILES=150 (typically defaulted by Microsoft as FILES=40). vDos however does not require any FILES= statement because it is already equipped to handle a high enough number of global file handles. If you intend to print out of the legacy application, you will need to review the CONFIG.TXT to tell it how to handle printer redirection for LPT1, LPT2 and LPT3. There are some other optional settings that can be made. A setting in CONFIG.TXT that we would highly recommend enabling is:
FRAME = ON
Just remove the REM prior to that line in CONFIG.TXT. Not only does this provide a standard border around the application window and therefore provides for standard window navigation, it also makes the screen behave in a more expected fashion should you attempt to move the title bar/window around with your mouse. Without enabling FRAME=ON, the window wants to move down on the screen to the point where it becomes unusable (at least when accessed remotely).
If you are configuring vDos to run Adv 5.0 or 5.1 (but not earlier versions) or TAS 5.0 or 5.1, it is essential that you turn off the dosg4 handling. These versions of Advanced Accounting and TAS include the setting file:
which resides in the same folder where the version 5.0 or 5.1 software is located (i.e. wherever tpc50.exe and dos4g.exe are located).
Use notepad or some other line editor to change the default from:
and save. When run under Windows on 32-bit PC's, Windows ignores the DOS 4G extended memory manager and uses its own memory handling, but if the dosg4g-vm section "On" key is not turned off by setting it to false as above, vDos will not be able to load the program and will return the error:
Page fault directory or table entry not present
Next edit the AUTOEXEC.TXT file to replace the reference to the demo/test application with calls to run Advanced Accounting. vDos has a USE command that allows you to do something somewhat similar to a NET USE which is handy even if the application is stored on the local drive and not across a network. Keep in mind that you have to move to the application relative to the C:\ session environment you will be in once vDos.exe is called. UNC paths are not normally used with legacy applications, but the vDos USE option allows you to use them in its supported USE statement. So where servername is the Windows server or PC name where the program is installed and adv51 is the name of folder that the program is physically installed under, you might assign drive Z: (which does not have to match physical drive mappings, but is preferable) as follows in the AUTOEXEC.TXT file.
use z: \\servername\adv51
Then you would "move" to the z: drive setup after making the USE above by adding this to the next line, just like you would in a batch file:
If needed, you could include "change directory" commands to move to a folder if the USE statement referred to a folder above where the software was installed, e.g.
use z: \\servername\shared
Note: while not required, it is best to use the same drive letter as any existing drive map to the same folder, or to at least not use conflicting drive letters to avoid not only confusing Windows but also yourself and anyone else who is responsible for maintaining the system at a later date. Put comments in the TXT file to explain what was done, and why.
Next use the CALL statement to either call the normal Advanced Accounting batch file or the related executable directly as outlined below.
Remove or place a REM in front of the test program:
rem CALL DPTEST\STARTDP
and replace with:
Before using adv.bat, review it in a text editor such as notepad to determine whether it has been modified to change directories or call something that should not be called in this simulated environment. Instead of adv.bat, you could instead:
call tpc50.exe bkmenu
You could also establish SET TAS50= or PATH= values as needed. To avoid having to type EXIT to return to the desktop, simply remove the rem before the word EXIT at the end of the AUTOEXEC.TXT file.
There is one additional property that we have found needs to be made and one that is commonly made with legacy programs: right click on the vDos desktop icon, choose Properties, click on Advanced, click on the "Run as administrator" option to check it if not already checked, then click on the OK button and then OK again.
If you receive a:
TAS50.OVL could not be found in your default path
it will relate to the "run as administrator" icon property above which will likely be needed even if you are logged in as administrator to the local PC.
|Click on Advanced to enable Run as administrator option|
The "Start in" can/should be changed to match the
location of the CONFIG.TXT and AUTOEXEC.TXT
files that tell vDos what application to run.
vDos is an excellent product that we would recommend especially to bridge the gap in situations involving PC migration as well as for archival reference. Unlike in some simulated environments, all screens and screen characters appear normally and all of the important keystroke combinations that Advanced Accounting uses (function keys, ESC, Home, End, Page Up, Page Down, booster key combinations such Alt-1, Alt-F1, Ctrl-Page Down, etc.) all appear to be properly supported. vDos documentation claims to be capable of full multi-user access and so could be used to support live production environments (which we have not tested). Running from across a network, it may be a little more sluggish than running from a 32-bit PC directly, but not unacceptably slow. vDos supports some interesting printing enhancements although it may be possible to fully reap the benefits of those without some reprogramming of existing Advanced Accounting 5.1 (or prior) report layouts and related code. Using this as the sole solution for moving forward into the 64-bit world is probably not realistic in the long term for most users: upgrading to the newer versions of the accounting software would normally be the better long term option for Advanced Accounting users. On balance, however, vDos is highly configurable and is seemingly a very valuable tool that could have many uses.
|Advanced Accounting 5.1 (DOS mode) running locally on Windows Server 2012|
(FRAME set to OFF in this example - recommend to be ON however)
Note: our preliminary succesful testing on two different systems (Win Pro 7 64-bit and Server 2012 64-bit) was solely with the Btrieve 5.10a TSR as distributed and provided by the original publisher of Advanced Accounting 5.1, TAS Professional 5.1, and predecessor products. An attempt was made to use a Pervasive 11 workgroup engine on a third system, but that does not appear to be possible. While modern Pervasive engines do provide "DOS Box" support, that support appears to be unavailable when using vDos, which is instead attempting to run the application in a largely different environment; it is largely not integrated with the Windows operating system and does not therefore support DEVICE= statements in its CONFIG.TXT file, etc.
Glad, you emphasized people should essentially upgrade their software to modern standards. I always state vDos is meant for running legacy DOS programs, that – for whatever reason – still have to be used. I don’t relate at all to people insisting to use some obsolete DOS program, while there are many modern alternatives around.ReplyDelete
…The April 2015 version (the October 2015 version has a built-in expiration date)…
The 2015-10-01 version (not available anymore) has indeed a built-in expiration date, however not intended. To force vDos users, who asked for a pre-release of that version, to use the final release instead, that expiration date was set in the development version. It was just forgotten to be removed from the final release. I’m already plagued with people recompiling vDos, having issues due to the modifications, even without telling they changed the vDos sources. I don’t want to also be surprised with possible issues of some pre-release I once sent.
As of version 2015-10-01 vDos has a registration option, but it is still freeware. Only if the PC is joined to a domain, or a networked directory share is used, a nag is displayed when vDos starts. Probably most vDos users who get that nag, simply click it away. The number of vDos users that actually register is small. November 1st 2015, I was not only surprised by vDos refusing to start, I also got 2 registrations that day, 2 on Monday and a last one on Tuesday. More than in the whole month before (and after that)! One reported on Monday that vDos still didn’t start. So I made the link; until then they clicked the nag away, didn’t go to SourceForge or the vDos site and didn’t get the 2015.11.01 fix.
…The vDos software uses the C++ dynamic library link file MSVC100.DLL…
As of version 2015.10.01 this is no longer needed. Especially with fresh Windows 10 systems, too many got this message, so the MS library is statically linked in.
…but would likely require changes to individual programs in order for the output…
If the DOS program is set to print to an Epson (compatible) or PCL printer, there is no need to change anything, output should be correctly aligned and formatted.
…it will relate to the "run as administrator"…
I’m puzzled, vDos does no “funny” things like non-requested network (Internet), or registry access (at all).
Thank you for your helpful comments. The user we worked with may have been having an Okidata printer problem which accounted for some strange printing issues they were having with formatting and alignment. As to the "run as administrator" option, we found that was necessary on this system or else we could not run the legacy accounting software, but were not trying to indicate that was necessarily a vDOS issue; it may have been due to some restriction on user rights on this particular system and wanted to document a solution should someone else run into the same issue.Delete
…it may be a little more sluggish than running from a 32-bit PC directly…
vDos, simulating the CPU in software, is inherent slower than NTVDM running natively (Windows 32). Accessing files will actually compensate vDos being slower (DOS functions are emulated in Windows 32-bit, instead of DOS 16-bit mode). Certainly if networked files are accessed, that will be the performance bottleneck of a DOS program. So running that program in vDos would benefit (being less slow).
Understood and thanks.Delete
FYI: A new 2016.06.01 vDos version is released. Among others, it’s faster, and a DOS-to-Windows print processor is built-in.ReplyDelete
Though if one can upgrade the DOS application to Windows, that still remains the preferred route to persuade!
i am running an application build under foxpro dos version 1 using vdos in a win 7 64 bit machine, so far ok but the nag window pop at the beginning when the foxpro start, how actually if you can, i can remove that nag window, it ws written in C++ vDos, i opened with Visual studio 2017 community version , i just searched on vdos.cpp and i was trying to remark the code where the nag will pop, but since i don't know c++, probably i am missing something, can you please share, what exactly need to be removed, to avoid the nag to appears please thanks so much in advance.ErnestReplyDelete
For newer versions of vDOS there is a registration process that removes that nag screen. This is explained via the link below. The only way to otherwise remove the nag screen it so use the older version on SourceForge.Delete