MS-DOS with a Web Browser

Post Reply
dlharper
Posts: 291
Joined: 25. Aug 2011, 19:17
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: MS Windows (several versions); DOS

MS-DOS with a Web Browser

Post by dlharper »

I have finally managed to get an operational Web Browser running under MS-DOS within VirtualBox.

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.
Requirements

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.)
Procedure

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.
  • 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.
  • 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
    If you haven't used it before, the Edit program is easy to use. You don't yet have a mouse installed, so you will have to do everything with the keyboard. Access the menu with Alt. Using this, at the end add the line:
    • DEVICE=C:\DOSXTRAS\OAKCDROM.SYS /D:CDR
    and remember to save the file (Alt-F , S). Using the same technique edit the file AUTOEXEC.BAT. This time add the line:
    • C:\DOS\MSCDEX.EXE /D:CDR
    Again save the file, exit Edit and reboot. To test it, insert a (non-empty) CD-ROM image in the VM's CD Drive (you could use the one you have just made), and enter DIR D: to test that the content is visible.
  • 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
    Again reboot after saving. If you want to test this, just open edit again (with or without a file) and check that moving the mouse moves the block pointer about. (Movement is a bit jerky, because the pointer can only take text positions.)

    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
    So far this is standard for an installation of MS-DOS on VirtualBox. We now come to the more subtle installations.
  • 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
    Also edit AUTOEXEC.BAT, but this time simply remove the line at the start that reads C:\DOS\SMARTDRV.EXE /X. (On a virtual machine using disk images SmartDrive is just wasting space.)

    Back at the DOS command line, enter:
    • MEMMAKER
    Press Enter several times to accept all default options, until you are finally returned to the DOS command line.
  • 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
    Press Enter to accept the network setup, then accept the default path C:\NET for the network installation.

    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:
    DOS-Web-NWSU.jpg
    DOS-Web-NWSU.jpg (76.86 KiB) Viewed 25949 times
    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
    Also edit the file C:\NET\PROTOCOL.INI. This time add the following lines (Note that these lines must all be kept together, starting with the [pktdrv] line, and they must not come within another section.):
    • [pktdrv]
      drivername=pktdrv$
      bindings=MS$PCNTND
      intvec=0x60
      chainvec=0x66
    Once again reboot. If there are any obvious error messages, or messages about incomplete bindings, then you have done something wrong - check carefully the entries you have just made in the configuration files.
  • Reconfigure memory again: Once again enter:
    • MEMMAKER
    However, this time press Enter once (to go ahead), but at the second screen press SpaceBar to change to "Custom Setup". Press Enter to accept that option, and Enter again to state that no programs use EMS. At the Advanced Options screen, though, move down to the fourth option ("Use monochrome region (B000-B7FF) for running programs") and press SpaceBar to change No to Yes.

    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
    Enter Y to install and Y to accept the default directory.

    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
    However, you also need to know the address to use for the 1st nameserver. An easy way to find it is to look at the Vbox.log file for the current virtual machine. From the main VirtualBox Manager window, with the current machine selected, press (left)Ctrl-L. It seems best not to use the Find button while the VM is running, so Save the Vbox.log file, and examine it in a text editor such as Notepad. Locate the line that contains "NAT: DNS#0:", and the set of numbers that follow is what you need. Enter these four numbers as the "1st nameserver" on the Arachne "Packet driver TCP/IP setup page".

    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)
    Assuming everything has been done correctly, you should be taken to the Arachne home page, which currently looks like this (in the smallest screen available):
    DOS-Web-Home.jpg
    DOS-Web-Home.jpg (124.19 KiB) Viewed 25949 times
    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.
Limitations
  • 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:
    DOS-Web-Wiki-S.jpg
    DOS-Web-Wiki-S.jpg (105.74 KiB) Viewed 25949 times
    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.
Thanks to several members of this forum for suggestions and information that have made this setup possible.
Last edited by dlharper on 27. Aug 2014, 19:07, edited 2 times in total.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: MS-DOS with a Web Browser

Post by mpack »

If you wish to comment on this tutorial then please see the Discuss the "MS-DOS with a Web Browser" topic.
Post Reply