Run DOS/WFW in VirtualBox

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
User avatar
Mixael
Posts: 5
Joined: Thu 10 Jul 2008, 13:55
Location: Lake Charles, LA

Run DOS/WFW in VirtualBox

#1 Post by Mixael »

Fortunately there are some key how-to's others have done to get this accomplished. I'm using a puppy flash drive, and installed everything on a 1GB flash drive. I'm using it to boot a simple PC with a physical serial port used to communicate and program a PLC (industrial controller used to control valves, pumps, etc.) A number of these PLC's have been around a long time, and many engineers still have legacy software used to maintain them. Of course this client should also be perfectly happy providing a platform for DOS, or Win311 games as well.

The steps, and references to do this:

1. Create a Puppy bootable flash drive, and boot from it.

2. Install VirtualBox. I followed all of gray's excellent reference using his pet:
www.murga-linux.com/puppy/viewtopic.php?t=47128

3. Prepare to load DOS, and Windows for Workgroups. I made this a lot easier on myself by creating image files of the actual installation disks. In my case I used an XP machine with WinImage software to create .ima files of the DOS and WFW installation diskettes. Note that when opening floppy image files on the VirtualBox floppy drive, you may have to change the selection for "File of type" to "All Files" dependent on your image file extension as VirtualBox defaults to display only ".img" extensions.

4. Create a virtual machine in VirtualBox, and load the DOS, and WFW software. The reference I used in doing so was this good How-To:
forums.virtualbox.org/viewtopic.php?t=859
My application software only required DOS, but I wanted to easily move files between it, and the puppy host. To accomplish this I installed WFW to have networking available (easier to setup and use than straight DOS networking); networking is required to setup a network drive which in turn can use Samba which points to a share folder.

Specific settings of note on the VirtualBox Client:

Code: Select all

  General - Basic
    Operating System: Other
    Version: DOS
  Network - Adapter 1
    Enable Network Adapter (checked)
    Attached to: Host-only Adapter
    Name: vboxnet0
    Advanced - Adapter Type
      Pcnet-PCI II (Am79C970A)
      Cable connected (checked)
  Serial Ports - Port 1
    Enable Serial Port (checked)
    Port Number: COM1  (IRQ 4 and IO Port 0x3F8)
    Port Mode: Host Device
    Port/File Path: /dev/ttyS0
  Shared Folders
    Folder Path: /root/my-documents
    Folder Name: CI4268
You will also need to download a WFW driver for the network adapter, and another one for the TCP/IP protocol to associate with it.

The network adpater driver is NDIS2 driver for IBMADOS and is at
support.amd.com/us/Search/results.aspx?k=PCNTND.DOS

The TCP/IP protocol download link is at
support.microsoft.com/kb/99891

5. Complete installing all the DOS/WFW software, and drivers. For reference my autoexec.bat file looks like this:

Code: Select all

C:\WINDOWS\SMARTDRV.EXE
C:\WINDOWS\net start
@ECHO OFF
PROMPT $p$g
PATH C:\WINDOWS;C:\DOS;c:\TRIGARD;c:\CUSTOM;c:\TURBOC;c:\INTEL
SET TEMP=C:\DOS
C:\WINDOWS\MSCDEX.EXE /S /D:CD001
and my config.sys file looks like this:

Code: Select all

REM DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH
FILES=30
BUFFERS=30
LASTDRIVE=Z
DEVICE=C:\CDROM\CDROM.SYS /D:CD001
DEVICE=C:\MOUSE\MOUSE.EXE
DEVICE=C:\WINDOWS\SMARTDRV.EXE /DOUBLE_BUFFER
DEVICE=C:\WINDOWS\IFSHLP.SYS
STACKS=9,256
6. Install and setup Samba. Again fortunately a great how-to using vtpup's PET is here:
www.murga-linux.com/puppy/viewtopic.php?t=36141&search_id=1963786496

Do create the directory etc/samba and in it create a symlink to the actual location of the Samba configuration file.

Code: Select all

ln -s /etc/opt/samba/smb.conf /etc/samba/smb.conf
My smb.conf file is very simple, and looks as follows:

Code: Select all

# Global parameters
[global]
       workgroup = Workgroup
       server string = Samba Server %v
       log file = /var/log/samba/log.%m
       max log size = 50
       security = USER

# Share
[MyDocs]
   comment = my-documents folder on host
   path = /root/my-documents/
   public = yes
   guest ok = yes
   writable = yes
   printable = no
Note that with the Share defined here, and the Shared Folder settings in the VirtualBox client that the client can "see" everything under /root/my-documents, but can only write to locations under /root/my-documents/CI4268

7. Now to make the network share function, make sure Samba is running which if you created rc.samba as directed in the post I referenced can be done manually by

Code: Select all

/etc/rc.d/rc.samba start
Next make sure you add a user to puppy, and to the samba user list. I used the same user, and password for these as I did for the WFW login.

Code: Select all

add user <username>
smbpasswd -a <username>
I'm still working on automating step 7 so it happens every boot. Didn't seem to want to work in rc.local, or rc.services but I've only tried once so far.

8. In order to make the serial port work from the client you MUST execute the following command in puppy which I appended to rc.local so it executes on every bootup.

Code: Select all

setserial /dev/ttyS0
9. Startup your client, and WFW. Add a network drive, and you should be able to browse to \\puppypc\ with MyDocs as a Shared Folder (the name comes from the smb.conf file).

10. Have fun!

Post Reply