Windows 98 and DOS

Discussions about using Windows guests in VirtualBox.
Russell072009
Posts: 5
Joined: 19. Aug 2021, 17:10

Windows 98 and DOS

Post by Russell072009 »

I am very new to using virtualbox. I have a specific problem and am trying to figure out a way to resolve it. I inherited this problem and am looking for a way out of it using VB. I have a very old CNC machine. The only way I know of to load it is using an old piece of software called procomm v2.01. I currently have it running on a VERY old windows 98 desktop which I also inherited with the controller. I would like to get this program running on a laptop so I at least have a backup if the PC dies. I created a windows 98 VM and found a copy of the software online. Problem I am running in to is it will not run. All I get is a runtime error R6003 divide by 0. I can't figure out what the problem is. I even tried copying the files directly from the desktop to the VM, put everything in exactly the same spot but still get the same error. The only thing I can think of is change the VM processor to emulate an old 386. From what I have found you can specify some hardware in the VM and you can specify a processor but I can't figure out how exactly to do it. If anyone has some advice for me about this it would be greatly appreciated.
scottgus1
Site Moderator
Posts: 20965
Joined: 30. Dec 2009, 20:14
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, Linux

Re: Windows 98 and DOS

Post by scottgus1 »

Sounds like a challenging project!

How does the CNC machine and the controlling computer connect? Serial port, parallel port, USB?

There is a way to restrict the CPU type, see viewtopic.php?t=84423. For more info see viewtopic.php?f=4&t=95714#p463792. More web-searching on "change CPU type site:forums.virtualbox.org" might help.

A fresh install of Windows 98 might be necessary for the CPU change to set up correctly. Try making a new VM, running the command, then start the VM and fresh-install 98, then try the CNC machine.

Also see our 98 tutorial: viewtopic.php?f=28&t=9918

One other concept, see if 98 might still install enough on a newer but still older PC, perhaps from late 2000's. A websearch in that said it may still be possible, though generic drivers may be needed.

But, we should first confirm that the CNC and the VM OS can communicate. And be aware that getting a VM to talk to a robot correctly may not work well due to timing issues.
Russell072009
Posts: 5
Joined: 19. Aug 2021, 17:10

Re: Windows 98 and DOS

Post by Russell072009 »

The PC and CNC communicate via serial cable.

I'm trying to get away from older hardware for obvious reasons. It's challenging enough to get parts for the control. I really don't want to hunt for old PC parts. Plus it would really be nice to have all my loading software on one PC. I also have software for talking to newer PLC controls.

I'll check out those links and see if anything helps. Thanks.

I did run the command VBoxManage modifyvm "<VM name>" --cpu-profile "Intel 80486" The VB no longer loads at all so I'll have to start again anyway. I have no idea what the default cpu profile was.
scottgus1
Site Moderator
Posts: 20965
Joined: 30. Dec 2009, 20:14
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, Linux

Re: Windows 98 and DOS

Post by scottgus1 »

I believe that you can reset the profile for a VM to default by running the command without a setting:

VBoxManage modifyvm "<VM name>" --cpu-profile See fth0's post below.

But I would recommend doing this to a new VM before installing, if the Windows installer depends on certain CPU capabilities for how it sets itself up.
fth0
Volunteer
Posts: 5668
Joined: 14. Feb 2019, 03:06
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Linux, Windows 10, ...
Location: Germany

Re: Windows 98 and DOS

Post by fth0 »

From 8.8.1. General Settings:

Code: Select all

VBoxManage modifyvm "<VM name>" --cpu-profile host
jorgensen
Posts: 583
Joined: 20. Oct 2009, 01:22
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, LinuxMint

Re: Windows 98 and DOS

Post by jorgensen »

Trying to have such a project running in Virtualbox can be troublesome.
You properly would be better off using DOSBox-X (https://dosbox-x.com/)
DOSBox-X can be somewhat difficult to set up, but there are many tutorials.
In DOSBox-X any CPU can be simulated like many other hardware related things.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Windows 98 and DOS

Post by mpack »

Russell072009 wrote:The only way I know of to load it is using an old piece of software called procomm v2.01
I remember ProComm, in fact they were competitors of mine in their slightly later Procomm Plus days.

ProComm is a standard serial terminal software app of the day, though on the pretty good end of the spectrum. They had a C like script language which is, I assume, what is controlling your CNC machine. I'd be surprised if ProComm didn't continue into the Windows era, and I'd be surprised if their scripts weren't backwards compatible.

Windows bundled its own "HyperTerminal" back in the day, pretty shitty stuff, but people would rather struggle with that than buy quality, so ProComm and all similar software withered on the vine. Then ADSL and fixed connection Internet killed them pretty dead.

Modern apps like PuTTY and Termite are very weak by comprison: the market simply isn't big enough to justify much effort.

I just did a quick Google and turned up the following Wikipedia article describing the fate of ProComm: https://en.wikipedia.org/wiki/Datastorm_Technologies.
It looks like the product was around until 2002, so there's a chance you can find a version that runs on modern Windows.

And btw: it really ought to be possible to reproduce the functionality with a modern Python script.
ghr
Volunteer
Posts: 376
Joined: 25. May 2007, 22:46
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: DOS, Win3x, Win95, WinXP, Ubuntu, OS/2

Re: Windows 98 and DOS

Post by ghr »

Your issue
  • runtime error R6003 divide by 0
looks like a CPU running too fast for your application. You could experiment with Execution Cap and/or VTx disabling in VirtualBox...
Russell072009
Posts: 5
Joined: 19. Aug 2021, 17:10

Re: Windows 98 and DOS

Post by Russell072009 »

mpack wrote:
Russell072009 wrote:The only way I know of to load it is using an old piece of software called procomm v2.01
I remember ProComm, in fact they were competitors of mine in their slightly later Procomm Plus days.

ProComm is a standard serial terminal software app of the day, though on the pretty good end of the spectrum. They had a C like script language which is, I assume, what is controlling your CNC machine. I'd be surprised if ProComm didn't continue into the Windows era, and I'd be surprised if their scripts weren't backwards compatible.

Windows bundled its own "HyperTerminal" back in the day, pretty shitty stuff, but people would rather struggle with that than buy quality, so ProComm and all similar software withered on the vine. Then ADSL and fixed connection Internet killed them pretty dead.

Modern apps like PuTTY and Termite are very weak by comprison: the market simply isn't big enough to justify much effort.

And btw: it really ought to be possible to reproduce the functionality with a modern Python script.
Here's the problem with that, my knowledge of software like this is very limited. The manuals I have to load this thing are written specifically for Procomm. I know of people using Terra Term but I can't figure that out to save my life either. The kick in the butt on this whole thing is I need Procomm plus 2.01. There are 2 versions, one for DOS and the other for windows. The version for windows runs on the Win98 VM but is so complicated I can't figure that out either. I even tried to set up a VM running DOS 6.22 but I still get the same error trying to run the DOS version of Procomm. I can try to slow down the processor on the DOS VM but it makes no sense why DOS will install and run but Procomm gives me the error. I'm just getting totally frustrated. I was also hoping to be able to use a USB floppy frive through the VM but that doesn't seem to work either. It just locks up the 98 VM when I select it from USB. Apparently I can't use a USB floppy the same way you can use a COM port through the VM.
scottgus1
Site Moderator
Posts: 20965
Joined: 30. Dec 2009, 20:14
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, Linux

Re: Windows 98 and DOS

Post by scottgus1 »

RE the USB drive, see USB basics and troubleshooting

If the lockup happens during boot, try turning off booting from floppy in the VM's System settings, Motherboard tab.

And don't forget Jorgensen's idea above.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Windows 98 and DOS

Post by mpack »

Russell072009 wrote:it makes no sense why DOS will install and run but Procomm gives me the error.
It isn't so hard to understand. Procomm will be doing a timing test, DOS isn't. It's not uncommon for very old DOS apps (and even into the Win95 era) which do timing tests to be completely thrown by modern processors. In some cases a task will appear to have been completed in zero time, which could make the old app crash. I imagine that a CNC script will do lots of time measurements.

On Procomm itself: the script language was designed to be understood by ordinary lay people, it shouldn't be hard to understand, especially with user manual and examples to follow. Also I'd be amazed if the Procomm people spited themselves by making new versions of the software incompatible with the old script language, meaning you should be able to run the same script on newer versions of the software too.
Russell072009
Posts: 5
Joined: 19. Aug 2021, 17:10

Re: Windows 98 and DOS

Post by Russell072009 »

mpack wrote:
Russell072009 wrote:it makes no sense why DOS will install and run but Procomm gives me the error.
It isn't so hard to understand. Procomm will be doing a timing test, DOS isn't. It's not uncommon for very old DOS apps (and even into the Win95 era) which do timing tests to be completely thrown by modern processors.
Ah. I didn't even know that was a thing. Thanks for the info.

I did finally get it to boot in the DOS 6.22 VM. I had to set the processor to a 386. I'm guessing if I tried to do this using Win98 again and set the VM processor to 386 it would work too. When I tried before I used a 486 core. This software is really sensitive apparently. The next step is figuring out how to make this work with the floppy. As far as I know I can't get VB to use a USB floppy in a pass through mode like the COM port. With the drive plugged in and available through the host it still does not show up in VB as an available A: drive. I'm thinking I'm going to have to do everything with disk images. I'll make an image of the executive, constants, PMI and machine files disks to be able to load. For constants backup writing from the control to the VM I'm assuming if I make a blank image and mount it, the VM should write to it and I can just open up the image file and extract the constants file. Kind of a long way around but if it works I'll be happy.

There are no scripts involved in loading the machines as far as I know. I'm just uploading files and downloading data. The executive software is loaded raw ASCII 9600,N,8,2 and the rest is ASCII 9600,E,7,2. The machine constants backup is just receiving data from the control. Procomm does make you name a file before receiving the data so you are left with a *.CON on the floppy. Realistically, I can probably do everything through something like TerraTerm but like I said, the instructions I have are based on Procomm. If anyone else needs to load this thing in the future besides me it will be easier for them to follow unless I go through and write a whole new loading procedure using another piece of software.

The issue with the newer versions of Procomm is I have no idea how to do anything with it. It is a totally different piece of software. The DOS version loads a very basic terminal, you make adjustments to communication settings with the keyboard commands and off you go. The windows versions are like going from a Cessna to a modern fighter jet. Everything is different, there is a LOT more going on and I can't find anything to adjust the communication parameters and simply send and receive files. If I spend some time figuring it out I probably could but again I would have to rewrite the loading procedure. At that point I might as well just get a terminal program that can run in Win 10. I may do that down the road but for now I'm sticking to this path. Little more work up front but less than the other options I have.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Windows 98 and DOS

Post by mpack »

Russell072009 wrote:The issue with the newer versions of Procomm is I have no idea how to do anything with it. It is a totally different piece of software.
Nah. Of course the user interface is different, and it'll use Windows for serial I/O rather than a proprietary DOS driver. Otherwise, the same range of features will exist and in particular the script language functionality will be the same or maybe slightly improved.

The one thing that Procomm for Windows had which HyperTerminal didn't, was compatibility with the Procomm script language (Aspect). They surely wouldn't be so dumb as to throw away their only advantage versus something bundled for free with Windows.
There are no scripts involved in loading the machines as far as I know.
Running a CNC machine is hardly something to you get from Procomm "off the shelf" (it's just serial terminal emulation software), so obviously it's a script. Your "*.CON" files is just console files - logs of the terminal session. I assume you're launching this from a DOS batch file which if you check will name the script on the Procomm command line. You could do that with my old product (Odyssey) too, plus with mine the scripts could be compiled to a binary version: this eliminated the overhead of compiling the script at runtime, but if Procomm had a similar feature (I don't remember that it did) then you may not have access to the script source code.
jorgensen
Posts: 583
Joined: 20. Oct 2009, 01:22
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, LinuxMint

Re: Windows 98 and DOS

Post by jorgensen »

If it's only a matter of running a Procomm script in a modern environment ZOC could be the answer
https://www.emtec.com/zoc/procomm-repla ... 20ProComm.
Russell072009
Posts: 5
Joined: 19. Aug 2021, 17:10

Re: Windows 98 and DOS

Post by Russell072009 »

mpack wrote:
Russell072009 wrote:The issue with the newer versions of Procomm is I have no idea how to do anything with it. It is a totally different piece of software.
Nah. Of course the user interface is different, and it'll use Windows for serial I/O rather than a proprietary DOS driver. Otherwise, the same range of features will exist and in particular the script language functionality will be the same or maybe slightly improved.

The one thing that Procomm for Windows had which HyperTerminal didn't, was compatibility with the Procomm script language (Aspect). They surely wouldn't be so dumb as to throw away their only advantage versus something bundled for free with Windows.
There are no scripts involved in loading the machines as far as I know.
Running a CNC machine is hardly something to you get from Procomm "off the shelf" (it's just serial terminal emulation software), so obviously it's a script. Your "*.CON" files is just console files - logs of the terminal session. I assume you're launching this from a DOS batch file which if you check will name the script on the Procomm command line. You could do that with my old product (Odyssey) too, plus with mine the scripts could be compiled to a binary version: this eliminated the overhead of compiling the script at runtime, but if Procomm had a similar feature (I don't remember that it did) then you may not have access to the script source code.
I think I confused you. Sorry about that. I'm all over the place trying to get this figured out. The software that runs the CNC are the files I'm loading using Procomm, not Procomm itself. I'm only using the Procomm terminal for upload and download of the control software. Basically this thing is almost as old as I am. It does not have any kind of NVM other than a few EPROMs for basically what amounts to a BIOS. No HDD of any kind. The "high" capacity memory (1Mb) board and a few processor boards use backup batteries to hold data. If those are low and it gets powered off you lose everything. If one of the 14 processor or I/O boards fails and has to be replaced, you lose everything because data is spread all over the place. If the control decides to randomly puke for no reason other than someone in India sneezed on a Tuesday while wearing green socks, you lose everything. Something will happen every few months to at least one of them. You can't check the batteries or change them with the machine powered up and it does not monitor the battery level at all either. Anyway, The Procomm software was a manufacturer's alternative to paper tape loading (yes, reel to reel paper punch tapes) of the machine's software. The *.CON file is machine constants. Those are really the only things you can change in the machine software. In newer machines they are called parameters. You're talking things like center line position offset, tool change position, axis compensations, servo calibrations and so on. From time to time you need to change something due to a repair, crash or modification and when you're done you back up the constants so next time you reload the machine everything is correct. If you open the file in txt format it's just a list of constant identification numbers and the setting for each number. There is no batch file run from the PC. You have to manually upload the files one at a time and set the COM parameters for each depending on what file you are loading. After the control is loaded it's on it's own. The PC is no longer needed.
Post Reply