A few people have managed this with FreeDOS, but FreeDOS actually includes a number of facilities that are not present in any version of MS-DOS, and these have to be handled differently. Note also that some of the descriptions of how to run a browser in FreeDOS are incomplete, or sometimes a bit confused, and they will not all work properly.
Issues
Obviously, you need a web browser that will run in DOS, and the only sensible option seems to be Arachne. To use it, though, there a few issues that need to be got over. These include:
- Getting the network set up correctly is a bit fiddly. Arachne includes TCP/IP, but it needs a packet driver to be installed first, and this is not included in the Microsoft file set. Once one has been found, it is not obvious how to configure it.
- Conventional memory is very tight. In order to fit everything in you have to use upper memory blocks. However EMM386.EXE, the standard DOS utility for managing these, will not properly detect them under VirtualBox. The file has to be configured manually.
- VirtualBox DHCP will not work correctly with a virtual machine running DOS and Arachne. I have no idea whether the problem lies in VBox, DOS or the Arachne program, but it certainly exists. To get round it you will need to specify static IP addresses for the VM.
If you are going to set things up as I have done, you will need the following:
- A running copy of VirtualBox. We could take this for granted, but it might as well be mentioned. I used Version 4.3.12 running on Windows 7, but the method should work on any version and any host.
- MS-DOS, of course. I used DOS 6.22 - if you have an earlier version you could try that and see if it works.
- The Arachne program. Download A197GPL.ZIP from http://www.glennmcc.org/arachne
- Microsoft Network Client. This comes as two self-extracting archives called DSK3-1.EXE and DSK3-2.EXE. Download both.
- A driver for one of the network cards that VirtualBox emulates, to work with Microsoft Network Client. A driver for the AMD PCnet series is in the file WFW31.ZIP.
- A DOS packet driver. I used DIS_PKT9. Download DIS_PKT9.ZIP from any of the mirrors at http://www.filewatcher.com/m/dis_pkt9.zip.32264-0.html.
- A Microsoft-compatible mouse driver for DOS. Microsoft's own is still available from places like http://www.softwarepatch.com/utilities/msdosmouse.html (click: "DOS Mouse Driver version 11 by Microsoft", and after another click this will download MSMOUSE.EXE). This is what I used.
- (Optional) A CD-ROM driver for DOS. You do not have to have a CD-ROM enabled in the VM, but doing so enables you to put most of the above files on a single ISO image. Without it you have to put the files on several floppy disk images, meaning a lot of swapping of disks (and frequent kicking of yourself when you have once again rebooted the machine without remembering to take the disk out first!). I used OAKCDROM.SYS from a spare copy of Windows 98. (It is also included with Windows Me, but practically any other DOS CD-ROM driver will work.)
My apologies to any DOS afficianados if I have over-explained the obvious in some of what follows. However, DOS is less familiar to some people than it once was, and I felt it better to put in too much rather than too little detail. Some things could, of course, be handled in different but equivalent ways. However, everything in the following sequence has been done for a reason. If you change something without knowing what you are doing, then the chances are that the final program will not work.
The way I did things was as follows:
- Organize Source Files: Get together all the software mentioned above and extract all files from the archives. (The self-extracting archives could, of course, be expanded within the DOS VM. I preferred to extract everything using WinZip on the host.) File collections can be put together in folders, but for some only one file is needed:
- The Arachne zip file contains a single installation program, rather uninspiringly called A197GPL.EXE.
The two archives of the MS Network Client, DSK3-1.EXE and DSK3-2.EXE, can both be extracted to the same folder. There are three file names in common, but the files are identical. I suggest the folder is named something a bit more sensible, such as MSNWCLNT (keeping it to 8 or less characters for the sake of DOS).
The network card driver file WFW31.ZIP is an archive within an archive. Expand the inner archive file to give three files that can be stored together, again giving the directory a more descriptive name such as PCNETDRV.
The DIS_PKT9.ZIP archive contains 3 files. You only need the one file called DIS_PKT9.DOS.
With the MS Mouse Driver, you need the two files from the archive called MOUSE.EXE and MOUSE.LAN. These could be put in a folder called MOUSE.
- The Arachne zip file contains a single installation program, rather uninspiringly called A197GPL.EXE.
- Organize Disk Images: Put all of the files just extracted onto a CD-ROM image, using whatever software you normally use for this. Also put the CD-ROM driver file, OAKCDROM.SYS, onto a floppy disk image. So you are starting with:
- Images of the three installation floppy disks for MS-DOS 6.22. (You do not need the Supplemental Disk.)
A floppy disk image containing just the file OAKCDROM.SYS.
A CD-ROM image containing three folders: MSNWCLNT, PCNETDRV and MOUSE (or whatever you have chosen to call them) and two other files called A197GPL.EXE and DIS_PKT9.DOS.
- Images of the three installation floppy disks for MS-DOS 6.22. (You do not need the Supplemental Disk.)
- Set Up Virtual Machine: In VirtualBox, create a new VM of type Other | DOS. The default memory and hard-disk sizes (32Mb and 500Mb resp) are fine, though really more than needed. Open Settings for the new machine, and in Storage set the floppy disk to be the image of the first DOS installation disk.
All other default settings are OK. (Leave the Network Adapter attached to NAT.) - Install MS-DOS: Start the VM, and follow through the installation of MS-DOS. Regional settings can be changed if necessary, but accept defaults for everything else. Insert the second and third disks when prompted, and make sure you remove the third disk before pressing Enter to reboot.
- Install the CD-ROM: I usually create a separate directory, called something like DOSXTRAS, for additions to the system that are not part of the original DOS package. If you want to follow this approach, create such a directory (using MKDIR), insert the floppy disk image containing the CD-ROM driver, and copy the OAKCDROM.SYS file to this directory. Remove the floppy disk before you forget!
You now need to add a line to each of the files CONFIG.SYS and AUTOEXEC.BAT. Use MS Edit for this, so enter:
- EDIT CONFIG.SYS
- DEVICE=C:\DOSXTRAS\OAKCDROM.SYS /D:CDR
- C:\DOS\MSCDEX.EXE /D:CDR
- Install the Mouse: Copy the two files MOUSE.EXE and MOUSE.LAN from the CD (you might have put them in the MOUSE directory) to the directory DOSXTRAS on the hard disk. Again edit AUTOEXEC.BAT, and this time add the line:
- C:\DOSXTRAS\MOUSE.EXE
Note that very occasionally after the network is installed the mouse may cause a crash on reboot. If this happens, just boot again. - Control Power Consumption: DOS does not need the whole time of one core of a modern CPU. If left to its own devices, however, it will take 100%, and this can lead to physical over-heating, as well as reducing the efficiency of other processes in the host. For this reason edit CONFIG.SYS again, and add the line:
- DEVICE=C:\DOS\POWER.EXE ADV:MAX
- Reconfigure Memory: Before going any further you need to free up some memory. Again edit CONFIG.SYS. For some reason, for DOS in VirtualBox the upper memory blocks are not detected correctly, so add the following line to CONFIG.SYS:
- DEVICE=C:\DOS\EMM386.EXE NOEMS I=C800-EFFF
Back at the DOS command line, enter:
- MEMMAKER
- Install the Network:
[Note: If you only want to use the VM for Web browsing, you can replace the next two sections with the installation of a stand-alone packet driver such as PCNTPK.COM. This will also ease some of the memory problems. I have chosen rather to set the machine up so that it should be easier to enable file-sharing with the host.]
With the CD-ROM image inserted, and given file locations as already described, enter:
- D:\MSNWCLNT\SETUP
After a few moments a list of network adapters appears. Select the second choice: "*Network adapter not shown on list below ..." (Note that there is an AMD adapter card listed, but this uses a different driver from the AMD PCnet card in the VM. It will not work if selected.)
Specify the path to the PCnet driver. (If you have followed my naming it will be D:\PCNETDRV) Only one adapter is offered, so select it. At the next question, press Enter to select "best performance", then enter a User Name (whatever you like).
You now come to a screen like the one following, but you want to make a few changes before proceeding:
Move the highlight to "Change Names" and press Enter. Again move the highlight to "Change Computer Name", press Enter, and specify a name that is unique on your VBox network. In the same way, change the Workgroup Name to the same as the host. (You may not need this last at the moment, but if you choose to extend the networking later, then you will need the names to be correct.) You do not need to bother with the Domain Name.
When you return to the screen just pictured, choose to "Change Setup Options", then choose to "Change Redir Options", and choose to "Use the Basic Redirector." You do not need the extra facilities of the Full Redirector, and it is better not to waste the space.
Once again you will come back to the screen above, but this time press Enter to accept the options. After the network is installed, press Enter again to reboot.
The screen will now fill with text, and the line at the bottom should ask you to confirm your user name. Read it through to check there are no error messages. Press Enter to accept your given user name.
You are then asked for a password. A project like this doesn't need secure login, so just press Enter for an empty password, press Y to create a password-list file, and re-enter the empty password. After doing this you will not be prompted for a password at each reboot. - Install and configure the Packet Driver: Copy the packet driver file DIS_PKT9.DOS from the CD-ROM to the C:\NET directory. You now need to do a bit more editing of configuration files. Once again you need to edit C:\CONFIG.SYS. Add the three lines:
- DEVICE=C:\NET\PROTMAN.DOS /I:C:\NET
DEVICE=C:\NET\DIS_PKT9.DOS
DEVICE=C:\NET\PCNTND.DOS
- [pktdrv]
drivername=pktdrv$
bindings=MS$PCNTND
intvec=0x60
chainvec=0x66
- DEVICE=C:\NET\PROTMAN.DOS /I:C:\NET
- Reconfigure memory again: Once again enter:
- MEMMAKER
From here once again keep pressing Enter until you are returned to the command line. - Now install Arachne: With the CD-ROM image in place, simpy enter:
- D:\A197GPL
Arachne with then install. If you have followed the above instructions it should then open. If you get a message about insufficient memory and you are returned to the command line, then you will have been put in the C:\ARACHNE directory. Try entering ARACHNE at the command line. (When Arachne is entered direct from the installation process, then it has less memory available than when it is entered from the command line. So just trying it again may well work.)
On the Arachne Video Setup page you should find "VESA compatible card" already selected. Also select one of the HiColor screen modes, and then click the "Try selected graphics mode" button.
On the next screen, click to accept that you have a fast PC (I assume you do, by DOS standards), then accept the recommended configuration revisions (ignoring the English spelling errors!). Set the Max Video Resolution (no bigger than the value you set before). - TCP/IP Setup: You will then come to the Arachne TCP/IP Setup page. There should be three buttons on the main screen labelled "PPP Wizard", "Packet Wizard" and "Manual setup".
If you are just going to use Arachne for web browsing, I suggest you click "Manual Setup" at this point. ("Packet Wizard" will take you all through setting up mail accounts, etc, and you certainly do not want PPP.) If you do so, then on the next page click "Resident packet driver".
In theory you should now be able to use DHCP to receive the IP address from the host. However, the VirtualBox DHCP does not currently work with a VM like this, so you will have to select Manual TCP/IP setup, and enter appropriate values.
Start by entering the following three values:
- IP Address: 10.0.2.15
1st gateway: 10.0.2.2
Netmask: 255.255.255.0
Leave the 2nd nameserver and 2nd gateway as zeros.
Scroll down if necessary, and click "OK, save". This will take you back to an earlier screen, so click "Use new settings !". This should take you back to the DOS command line. You can try running Arachne from here, but I suggest you reboot first. You can then run it from the command line simply by typing:
- A (and Enter)
If you get here, it is working! Within Arachne you can press the "+" or "-" keys to make the screen larger or smaller, so press the "+" key a few times. (Not the "+" shaped button on the toolbar - that is different.) You can now perhaps enter a familiar URL to start surfing. - IP Address: 10.0.2.15
- The above describes how to set up DOS for Web browsing. It does not, however, include networking with the host, and so does not provide shared folders. It would probably be possible to combine the above with the techniques described in https://www.virtualbox.org/wiki/Sharing_files_with_DOS. You would need to used Bridged networking, though, rather than NAT, and that means setting Arachne up with different IP addresses.
- Arachne is a splendid example of what can still be done with programs running under DOS. I am very impressed that someone has managed to do it. However it does have some limitations. CSS 1 is supported, but not the extra styles and techniques of CSS 2. Buffering is limited, and there is no implementation of JavaScript. This means that few modern websites will actually render as intended, and some will never complete loading. Of those that do, many take a long time to load fully. Using it is rather like using Vn 3, or perhaps Vn 4, of MS Internet Explorer.
The VirtualBox Forum pages, for instance, will not load at all. A familiar page renders like this:
However there are lots of extras such as plug-ins available (see http://www.ausreg.com/netdos/index.htm) and all sorts of things may be possible.