Monday, October 8, 2012

How to install MS-DOS 6.22 under VMWare ESX part 4

After a long pause, the saga of MS-DOS under VMWare continues. After explaining in this old post how you can connect a cd-rom and configure a mouse, let's proceed now to configure TCP/IP networking.

Now that you have the possibility to use a cd-rom:
  • mount the iso downloaded at the beginning of the mentioned post and move to the MSCLIENT folder
  • run setup.exe
  • choose the folder you want install your drivers to
  • now from the adapter list choose "*Network adapter not shown on list below"
  • enter D:\\AMDPCNET\DOS (use the ascii code ALT+092 to write the backslash if you have problems entering it) as the driver directory to install the drivers for the "Advanced Micro Devices PCNET Family" adapter
  • the system will tell you it has found the appropriate driver
  • press 'Enter' to optimize the system for better performance
  • choose the name of your PC
  • add the TCP/IP protocol (you can move between the two lists using TAB)
  • remove IPX
  • configure TCP/IP by clicking on 'Change Settings'
  • set the IP address, the subnet mask and the default gateway (remember to use spaces instead of periods). Also, if you do not use a DHCP server, set 'Disable Automatic Configuration' to 1
Ok, at this point the Network Client is installed on your virtual machine. Just restart it to apply the modifications made to config.sys and autoexec.bat. Actually, on restart you should get an error message saying 'Error 8: There is not enough memory available' when loading the TCP/IP stack.

This is a pretty common error due to the fact that MS-DOS is trying to load all the drivers in the first 640 kb of conventional memory (ahhh, the 640 kb limit, this makes me remember the old times...). Before MS-DOS can load a device driver into upper memory, there must be an upper memory block (UMB) provider (EMM386 is the standard) available and there must be enough space in that UMB. If UMB lacks memory to store the device drivers, they will be loaded into conventional memory.

You can check to see which device drivers have been loaded into high memory by using the MEM /C command.

So, to solve the problem, edit config.sys and add the following lines:
device=c:\dos\emm386.exe noems
Also forcefully move the cd-rom device driver and the Installable File System Helper (ifshlp.sys) to UMB by updating its lines like this:
devicehigh=c:\hxcd-rom\cdrom.sys /D:MSCD000
Upon restart the drivers should be loaded into the upper memory blocks, as the MEM /C command shows.

At this point you should be able to ping and get pinged! That's all for this series of posts about installing MS-DOS virtual machines in a virtual environment. I hope they were helpful. If so, do not hesitate to comment, google+ or retweet!!!


  1. I'd like to first thank you for this tutorial. And I know this is a bit old, I hope you're still around. I'm still getting error 8 for low memory even after editing config.sys and moving everything to the UMB. Any help you could offer would be appreciated.

  2. Hi Rebel,
    happy to know you liked this tutorial!
    can you please post your config.sys file content so I can better understand your problem?


Related Posts Plugin for WordPress, Blogger...