0% found this document useful (0 votes)
172 views58 pages

DOS - How To Install and Configure MS-DOS 6.22

This document provides instructions for installing and configuring MS-DOS 6.22 on old hardware from original floppy disk installation media. It discusses prerequisites like needing a computer with ISA slots and a floppy disk drive. The process involves preparing the installation media by writing disk images to floppies, installing MS-DOS from the floppies, then configuring the system, network, devices, and optimizing performance. Additional applications can also be installed. Patience is required as issues may come up that require troubleshooting.

Uploaded by

qcrw5
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
172 views58 pages

DOS - How To Install and Configure MS-DOS 6.22

This document provides instructions for installing and configuring MS-DOS 6.22 on old hardware from original floppy disk installation media. It discusses prerequisites like needing a computer with ISA slots and a floppy disk drive. The process involves preparing the installation media by writing disk images to floppies, installing MS-DOS from the floppies, then configuring the system, network, devices, and optimizing performance. Additional applications can also be installed. Patience is required as issues may come up that require troubleshooting.

Uploaded by

qcrw5
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 58

How to Install and Configure MS-DOS 6.22 | LegRoom.

net

Forum Metasearch Software Tips and Tricks

Home › Content

Navigation How to Install and Configure MS-DOS 6.22 Last Modified: Sun, 08/11/2013 - 16:29

Home Skip to:  Preparation  |  Installation  |  System Configuration  |  Network Configuration  |  Device Configuration  | 
Coming Soon System Optimization  |  Additional Applications  |  Addendum
Forum
Hardware Specs Introduction
Home Theater Specs This walkthrough covers installing MS-DOS 6.22 from the original installation diskettes.  Why write this
News Archive in 2013?  That's a very valid question, to which there are a few answers:
News Categories
SSL Certificates Setting up a fully working DOS system will give you great appreciation for how far computing has
come.  For old-timers, it will be a walk down memory lane; for youngsters who've never used nor
Search Internet
even seen DOS before, it should be quite an eye-opening experience to experience first hand both
Search LegRoom how primitive DOS was and yet how capable it could be.
Software
A working physical DOS system is the most authentic way to (re-)experience classic PC games. 
Tips and Tricks DOSBox does an amazing job of supporting DOS games on modern platforms, but for perfect
accuracy, including the full memory management experience (which can be a game unto itself), a
real DOS system can't be beat.
User login
There is a dearth of detailed information about MS-DOS on the internet.  This makes sense as MS-
DOS predates the web as we know it today, but I don't want knowledge of this system to be lost to
Username: * time.  I did a significant amount of research for this project, and I want to document and share
what I've discovered and re-learned for future reference.
Perhaps most importantly, why not?  This project was inspired by a previous project to resurrect
Password: * my old Packard Bell, my first computer that, not coincidentally, ran MS-DOS 6.2 and Windows for
Workgroups 3.11.  Rebuilding and enhancing it from a hardware perspective was a fun experience,
and now I'm doing the same from a software perspective.
Log in
Honestly, if you have no appreciation for old hardware or software, then this is definitely not for you.  If,
Request new password however, you share my passion for technology, not only for the new hotness [1] of today but also the old
and busted (and tried and true) of yesterday that got us to where we are today, then I think you'll find
this interesting.  If you have some old hardware lying around then I hope you'll follow along, but even if
not I think you may still find some of this interesting enough to read.

As an alternative, if you want an easy-to-install version of DOS that includes some nice modern
conveniences, check out FreeDOS.  It's a great project that I highly recommend.  For this project,
though, I want a (mostly) authentic, original MS-DOS installation.

Note: I provide download links for all discussed software in the relevant section where it's discussed. 
Links point to the original download location for each file wherever possible, but for the files that no
longer have an official source (or a reliable one, in the case of the files hosted on Microsoft's amazingly
unreliable FTP server), I've linked to a local copy you can download instead.

Prerequisites
Old hardware - if it has ISA slots you're probably good to go; anything newer may require some
extra work, but it should still be possible to get at least a basic working system installed.
Alternatively, you should be able to get this up and running in a virtual machine with VirtualBox
or VMware Player, but as with the note about FreeDOS above I'm primarily interested in an
authentic experience for this project, which is what's documented here.

A 3.5" floppy disk drive and at least one floppy diskette (two or more recommended) - It may be
possible to hack together a solution that will work from a bootable CD-ROM (see this Tech Support
Guy thread for details if you prefer to try that route), but MS-DOS is really only intended to be
installed from floppy diskettes.

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

MS-DOS 6.x installation media.  If possible, I suggest using or tracking down any original
installation media you may have had (in my case, I was able to pull the original MS-DOS 6.2
diskette images off of my Packard Bell recovery CD) or picking up a set on eBay - unless you want
a full boxed set, the media itself is quite cheap.  If you don't have access to any legit copies and
don't want to go the eBay route, you can find a copy online easily enough (I recommend the
WinWorld Software Library).  I don't generally condone piracy, but given this is twenty year old
software that's no longer commercially available, I see no harm at all here.
Patience, basic CLI experience, and a willingness to tinker - this process will take some time, and
you'll likely run into issues here and there that'll require some extra time/effort/thought to work out. 
Part of the experience here is the journey itself, so if you get immediately frustrated at any given
setback you will not enjoy this project.  Basic CLI experience is also expected; I hope to provide
enough guidance to get you through this project without the need for too much prior experience ,
but I have to assume you have at least a basic familiarity with the command line.

Tip:  I also recommend grabbing a copy of either Universal Extractor or 7-Zip if you're running Windows
on your main computer, or p7zip and LHa for UNIX if you're running Linux (both should be available in
your package management system).  You'll probably need/want to unpack some of the software and
drivers listed below on your main computer before copying it over to your new DOS system, and some
of these are packed in fairly obscure (for today) formats.  These applications should cover all the
software I tried to unpack, so having these tools available in advance will save some time and hassle.

Return to top

Preparation
Relevant Software:

RawWrite for Windows - Unless you have physical installation media, you'll need to write the floppy
disk images to real diskettes.  RawWrite is a simple way to do this in Windows.  Linux can do this
natively with dd (discussed below)

Floppy Diskette Creation


If you need to create the installation media:

Under Linux, use this command:  dd if=disk1.img of=/dev/fd0 bs=1024 conv=sync;


sync
Under Windows, use RawWrite and follow the directions to write the first disk
Repeat the process for all three installation disks (you may have a fourth disk as well; this contains
the optional Supplemental Utilities, and is not needed for initial installation; see below for additional
details)

You can get by with only one floppy diskette by writing the next disk image after the previous one
completes installation, but I highly recommend using at least two diskettes so that you can have a copy
of Disk 1 on hand at all times.  You'll likely need to boot from or otherwise use that disk a number of
times

Hard Disk Preparation


If you need/want to partition and/or format your hard drive:

1. Boot your computer using Disk 1


2. Press F3 at the MS-DOS Setup welcome screen to exit the installer
3. To repartition, run fdisk
1. Use option 3 to delete existing partitions, then option 1 to create new partitions
Note:  MS-DOS 6.x can only recognize FAT16 partitions, which are limited to 2
GB in size.
2. If necessary, use option 2 on your C: drive to flag the "boot" partition
3. You will be forced to reboot after making changes
4. To create (or reformat) a file system on your hard drive:
1. Run format /v:labelname /u /s c:
/v sets the disk volume label; this can be omitted

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

/u performs an unconditional format, which omits preserving certain recovery


information
/s copies DOS system files to the partition, allowing it to self-boot
2. Repeat the above command for any additional partitions, but omit /s
5. Run setup.exe to resume installation

Return to top

Installation
Relevant Software:

MS-DOS 6.22 Step-Up - free upgrade for all MS-DOS 6.x installations to 6.22; if you only have the
MS-DOS 6.0, 6.2, or 6.21 installation media (my copy is version 6.2), download this (local copy)
MS-DOS 6.22 Supplemental Utilities - optional additional utilities, drivers, and programs only
included with previous versions of MS-DOS; not required, but may be of some interest for the
curious (grab SUP622.EXE) (local copy)

Aside from possibly needing to FDISK and FORMAT your hard drive, the base MS-DOS installation is
actually quite simple:

1. If you haven't already done so, boot your computer using Disk 1
2. To begin setup, press Enter
3. If you already pre-formatted your installation disks as described above, the installer will warn
you about already having an existing version of DOS installed.  Choose to "Continue Setup
and replace your current version of DOS".
4. Set the options for date, time, country and keyboard layout as appropriate, then choose "The
settings are correct" to continue.
5. For the installation directory, I recommend choosing the default of c:\dos.  Press Enter to
continue.
6. Switch disks (twice) when prompted, and reboot to complete installation
After rebooting, you'll be in a fresh, and very basic, DOS environment.

Step-Up
If you installed either MS-DOS 6.0, 6.2, or 6.21, you may (optionally) upgrade to 6.22 using MS-DOS
6.22 Step-Up.  Since it's free, though, there really isn't a good reason to not upgrade.

The most annoying part of this process is just getting the Step-Up files to your DOS system.  It's larger
than a single floppy, and meant to be downloaded and run directly on the target computer, which is
difficult for a freshly installed version of MS-DOS.  To workaround, I suggest the following:

1. Download and unpack stepup.exe on your main computer


2. Manually create a floppy disk set as follows:
Disk 1:  setup.bat readme.now 1msdos62.exe
Disk 2:  2msdos62.exe
Disk 3:  3msdos62.exe
3. Create a backup directory on your DOS system to hold the Step-Up files (this is useful if you
want to reinstall DOS - you can the reinstall Step-Up without copying everything via diskettes
again):
1. mkdir c:\backup
2. mkdir c:\backup\stepup
Tip:  Even better, if you have the hard drive space, consider creating a D: drive as well; you
can use your D: as your backup and data partition, so that if you want to reinstall you can
simply blow away C: at any time but still have all your files, drivers, etc. already saved on D:
4. Copy the upgrade files from each diskette to your backup directory:  copy a:\*.*
c:\backup\stepup
5. Finally, copy your backup stepup directory to a temp directory that can be removed after the
upgrade is completed:

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

1. mkdir c:\stepup
2. copy c:\backup\stepup c:\stepup
To install/upgrade:

1. cd c:\stepup
2. Run setup.bat
3. Enter Y to agree to the EULA
4. Enter Y to verify that C: is your OS drive
5. At the Welcome screen, press F3 to exit
6. Run setup.exe /g
The setup process will ordinarily require that you create a set of uninstall floppy disks. 
This extra step bypasses that requirement
7. At the Welcome screen, press Enter
8. Press Enter to confirm system settings
9. Press Y to begin upgrade
10. Reboot when prompted, and confirm you're now running MS-DOS 6.22:  ver
11. You can safely remove the stepup files and old version of MS-DOS:
deltree /y c:\stepup
delolddos

MS-DOS 6.22 Supplemental Utilities


My copy of MS-DOS includes a fourth disk titled "MS-DOS 6.2 Supplemental Utilities," which can also
be obtained from the link above (grab the version for MS-DOS 6.22, named SUP622.EXE).  This disk is
not mandatory, and mostly just includes some extra features from previous versions of DOS that were
dropped for version 6.0.  If you don't want to bother with it you won't be missing out on much, but just to
be thorough let's take a look at how to install the more interesting stuff on here.

1. Insert the diskette and run a:\setup.bat c:\dos


2. Enter S to install selected components only
3. Choose Y or N as each component is listed.  The only options I find interesting are the
Additional MS-DOS Utilities and MS-DOS Shell, you enter Y for these if you feel so inclined.
4. When prompted for display type, enter F5 for VGA
5. Follow the rest of the prompts to complete the installation
Now, why bother with the Additional MS-DOS utilities?  One reason, and one reason alone:  QBasic
Nibbles!  I spent many hours playing this relatively simple but addictive Snake-like game as a kid, and
was delighted to discover it on the supplemental disk.  To try it yourself, just run qbasic.exe /run
c:\dos\nibbles.bas.

DOSSHELL, however, is a bit more substantial.  It's essentially a primitive Windows-like (or perhaps
more accurately, 'Windows Light') environment that runs on top of DOS and provides a GUI file
manager, file associations, a menu-driven task list, and even primitive pseudo-multitasking (called Task
Swapper here).  It's not something I'll care to use, but it's a pretty interesting idea that I was completely
unfamiliar with before this project, and it seems like it could be a reasonably powerful interface if a little
time is spent on configuring it just right (though, honestly, running Windows 3.x instead will provide far
more power and flexibility).  I'm not going to dive into this here as it's beyond the scope of "(mostly)
pure MS-DOS", but here are a couple tips if you want to play around with this:

You can run it in either text mode (default, /t) or GUI mode (/g).  Both interfaces are quite similar,
but GUI mode can be configured to run at a much higher resolution.  Try dosshell.exe /g:h2,
for example.
The program list in the bottom pane seems like the most interesting part to me.  In addition to
customizing it through the GUI, you can also edit dosshell.ini to tweak it to your heart's
content, using the default menu items as an example.  Like I said, if you're willing to invest a little
time in this, it could probably be tricked out pretty nicely.

Return to top

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

System Configuration
Relevant Software:

Enhanced DOSKEY.com - enhanced replacement of the stock DOSKEY utility that adds tab
completion to the DOS command line interpreter, in addition to command history support and other
useful features.
Pedit - enhanced replacement of the stock EDIT editor, which will be useful for editing the DOS
config files
Info-Zip UnZip - open source Zip file extraction utility you can use to unpack archives directly on
your DOS system (actually finding the correct file to download is far more difficult than it should be,
so here's a direct link); there are many other archiving utilities available for DOS, some with
support for a great number of formats, but this is easy to obtain and install and supports by far the
most common archive format used for DOS programs

Before installing anything else, we'll configure a basic sane working environment:

1. cd c:\
2. mkdir apps - contains personal installed applications
3. mkdir temp - temporary directory used by some applications
4. mkdir backup (if necessary) - contains copy of original setup files or drivers
5. path c:\apps;c:\dos - set our installed apps to take precedence over built-in apps
Next, I recommend installing a couple utilities that will make the rest of the setup process much easier. 
As with the step-up files above, getting the files to the system is still annoying at this point.  Until we get
networking setup later on, I recommend unpacking the programs on your main computer and copying
them over with floppies as the easiest option.  I also recommend saving a backup copy of all of your
installation media/files and drivers under c:\backup (or, preferably, d:\backup for easy access to it
at any later point.

Software Installation
Enhanced DOSKEY.com
1. Copy doskey.com to c:\apps
2. Run c:\apps\doskey.com -i to activate it.  Running doskey -? will show some
additional information about how to use it.

Pedit
1. Copy peditlgt.exe to c:\apps
Note:  This is the lightweight version of Pedit.  If you wish to have access to a spell
checker and thesaurus, copy the larger pedit.exe instead.
2. For convenience, move c:\apps\peditlgt.exe c:\apps\edit.exe.  This will let you
launch Pedit by simply typing edit, making it effectively replace the built-in DOS editor.
3. Configure Pedit by running edit, hitting Esc if prompted to open a file, and entering Alt-
F1.  I like the following non-default settings:
Editor Style - 2.0
Scroll Bar - dark on light (first pattern after 'none')
Text Color - 07
Background Color - 01
Show Char Under Cursor - enabled
Show Insert Mode - enabled
Tab Size - 4
Tab Expand Size - 4
F2 is File-Save - disabled
Alt Highlights Menu Choices - enabled
Save Changed Settings - enabled
Also Save Changed Margins - enabled

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

4. Hit Esc then Alt-X to exit and save the changes

UnZip
1. Copy unzip.exe to c:\apps
2. That's all that's necessary.  unzip32.exe is more flexible, but requires a separate DPMI
(DOS Protected Mode Interface) memory manager, which won't be covered here.  Other
included binaries simply provide extra functionality not required for Zip extraction.

Configuration
Now that we have a good editor and input processor installed, it's time to configure DOS itself.

Tip:  You will be repeatedly hand editing your system configuration files throughout this walkthrough,
and it's very possible at some point that you may be stuck with a system that won't boot properly.  To
recover, hit F5 when DOS starts booting (when it says "Starting MS-DOS...", usually immediately after
your system beeps to indicate it has completed it's POST process).  This will perform a clean boot of
the system, ignoring your autoexec.bat and config.sys files.  You can then edit them as
appropriate to fix the problem, and reboot to load everything again.

To get started, edit c:\autoexec.bat and add/change the following (other settings should be left
alone for now):

loadhigh c:\dos\smartdrv.exe
loadhigh c:\apps\doskey.com -i
path c:\apps;c:\dos;c:\dos\net
set DIRCMD=/o:gne
set TEMP=c:\temp

Note:  Most DOS commands and options are not case-sensitive.  While most of the text in the stock
autoexec.bat file is capitalized, I tend to convert it to lowercase just because I find it easier on the eyes. 
My personal naming convention, used throughout this document, is pretty simple: variables are fully
capitalized, and almost everything else is lowercase.  Feel free to leave everything uppercase if that
works for you, though.

SmartDrive is "a disk caching program ... that improves data transfer rates by storing frequently
accessed data in RAM" (per Wikipedia), and is enabled by default in DOS.  Some versions of DOS
include the /x argument by default, which disabled write-behind caching; if you see this, remove it. 
Unless you're running on a known bad hard disk or expect to have frequent power failures (in which
case, you should really fix those problems instead), /x won't be needed and only slows down disk
writes.

LOADHIGH will load the specified program (when possible) into upper memory, freeing up the all
important conventional memory for other applications.  This requires that EMM386 also be enabled, as
shown below.  The PATH setting specifies c:\apps first so that our installed applications always take
precedence over the OS programs (allowing Pedit to be easily used instead of EDIT, for example).  The
c:\dos\net directory doesn't exist yet, but will shortly.

Finally, the DIRCMD variable instructs the DIR command to display files sorted first by name, then by
extension, with directories always listed first (by default, it lists files sorted by date).  I also modified
TEMP, pointing it to c:\temp to make it more general purpose; ie., anything can write to this directory
without worrying about possibly overwriting DOS files.

Next, edit c:\config.sys and add/change the following (again, other settings should be left alone for
now):

SWITCHES=/f
DEVICE=c:\dos\himem.sys /testmem:off
DEVICEHIGH=c:\dos\emm386.exe ram i=b000-b7ff
DOS=high,umb
BREAK=on
rem DEVICEHIGH=c:\dos\setver.exe

The /f option to SWITCHES instructs DOS to skip a two second waiting period when booting so that
your system will boot a little faster.  Note that this shortens the amount of time you have to press F5 if
you need to clean boot your system, but it's still possible if you're fast, or you hold down F5 right before
DOS starts loading (which is what I do).

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

HIMEM.SYS is MS-DOS' extended memory manager, allowing the OS and applications to use more
than the first 640 KB of available memory (RAM).  The /testmem:off option instructs HIMEM to not
test your RAM on every boot, saving some time in the boot process.

EMM386 is DOS' expanded memory manager and, which (also) allows access to memory over 1 MB. 
Although this does roughly the same thing as HIMEM.SYS, EMM386 is required in order to load
programs and drivers into upper/high memory (the area between 640 KB and 1 MB), so it's generally a
good idea to load both.  ram instructs EMM386 to allocate RAM as EMS (expanded memory - an older
version of upper memory management that was superseded by XMS (extended memory)).  noems can
alternatively be used instead to disable expanded memory emulation in order to free up a little extra
memory, but many older applications and games (including some discussed here) will only use EMS,
so unless you have a specific need I recommend using the ram option to enable EMS.  I discuss this a
bit more in the Addendum below.  The i=b000-b7ff option frees up a small amount of additional
memory that is ordinarily reserved for monochrome monitors.

The umb portion of the DOS option instructions MS-DOS to manage the upper memory blocks created
by EMM386 (so LOADHIGH and DEVICEHIGH will work), and high causes it to attempt to load part of
itself into high memory when possible.  DEVICEHIGH, like LOADHIGH, instructs the specific program or
driver to load itself into high memory.  Finally, BREAK enables the use of Ctrl-C for breaking out of
misbehaving programs.

I commented out SETVER as it generally shouldn't be needed.  Unless you plan on running particularly
old (even by MS-DOS 6.x standards) software or drives, you can leave this disabled to free up some
space.  If you get any errors about a program not supporting this DOS version, uncomment this line and
see Microsoft's Knowledge Base article on Using the SETVER command.  You can also refer to
Microsoft's list of applications that require SETVER

I recommend rebooting at this point to let the new configuration take effect.  Run mem /c /p after
rebooting to verify that high memory is being utilized; at least some programs should be listed in the
Upper Memory column.

Return to top

Network Configuration
Relevant Software:

Microsoft Network Client 3.0 for MS-DOS - this is pretty self-descriptive; will be used if you want to
map shared drives on a Samba or Windows server (local copy: disk 1, 2)
NDIS Packet Driver Shim 1.11 - this is necessary if you want to use both Microsoft and non-
Microsoft networking utilities on the same system; specifically, you'll need dis_pkt.zip
WATTCP - old TCP/IP stack for DOS; this is actually embedded in the applications using it, so the
package here is mostly useful for diagnostic applications and documentation.  Get wat2002b.zip.
mTCP - modern TCP/IP stack for DOS; this works similarly to WATTCP, but supports
different/additional applications that are bundled with it (including FTP and NTP clients)
SSH2DOS - DOS versions of SSHv2 client applications, including ssh, scp, and sftp
wget - DOS version wget, "the non-interactive network downloaded" (if you're not familiar with it, it
makes download files from remote http and ftp servers very easy in CLI environments)
XFS Network File System Client 1.91 - NFS client for DOS; this was a commercial program, but
has long since been abandoned so I don't have any qualms about telling you to download it (local
copy)

NIC Drivers (you'll need to grab drivers for your specific NIC; these drivers cover my system, and will be
used for the walkthrough):

3Com EtherLink 10/100 PCI 3C905C - 3Com NIC drivers; 3c90x2 (EtherCD Disk 2) from the link
contains the DOS drivers (local copy)
3Com EtherLink 10 ISA 3C509B - 3Com NIC driver; this can no longer be obtained from any
official site, so the FTP mirror linked here is the best current option (I've verified against multiple
sources that it's a copy of the original EtherDisk 6.1 release).  3c509x2.exe (EtherDisk Disk 2)
contains the DOS drivers (local copy).  Crynwr provides an alternative packet driver that's half the
size (3 KB vs. 6 KB) and seems to perform just as well as the official driver (grab 3c509116.zip).  If

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

you're only interested in packet driver applications, this is a nice option.


Kingston EtheRx KNE20T - Kingston NIC driver; this can no longer be obtained from any official
site, so the website linked here is the best current option (I've verified against multiple sources that
it's a copy of the original QStart 1.2 release) (local copy).

Network Options
Now it's time to (finally) configure networking.  Getting this up and running is extremely helpful because
it largely eliminates the need for floppy disks.  Unfortunately, networking under DOS is... primitive.  It
can be done, but it's somewhat limited, slow, and painful to install due to multiple driver and network
protocols.  So, get ready for some fun!

The first decision to make is to decide what kind of networking support you want installed.  In brief,
there are two types of drivers we're going to install:

NDIS - the newer device driver interface co-developed by Microsoft, with somewhat more features and
capabilities at the expense of more bugs and significantly more memory usage.  This is required for
Microsoft networking utilities, including support for drive mapping.

Packet Driver (PD) - the older, open device driver interface used by pretty much everything before
NDIS.  Most non-Microsoft network utilities require a packet driver interface and will not work with only
NDIS installed.

Fortunately, this isn't a one-or-the-other choice; it's possible to install support for both with some extra
work.  If you only need one or the other, though, save yourself the hassle and go with that one.  I'm
going to walk through installing both below, and point out what you should do differently if you only
want to install one of the drivers.

Note:  Installation order differs depending on whether you want only PD support, only NDIS support, or
both.  Also, while the PD option may sound more limited than NDIS, it's really not.  You can get it setup
much faster, it's more efficient, generally more reliable, and much more widely supported, and among
the various utilities that use it are DOS versions of SSH, SCP, SFTP, and even an NFS client.  The
SSH utilities will let you easily and securely copy files from another system without messing with NDIS
or enabling DOS support in Samba (which is not enabled by default), and NFS will let you mount an
NFS share as a DOS drive letter, very similar to mapped drives.  For the full experience it's worth
setting up NDIS (it can be cleanly disabled if you decide it's not worth it), but if you just want to get up
and running as quickly is possible, the PD-only option should suffice, and is all I use on my system
after experimenting with all of this.

NIC Drivers
Both NDIS and (native) PD require hardware drivers for your NIC.  In my case, I'm using a 3Com
3C905C, which is a Plug and Play PCI NIC with a relatively easy configuration.  If you're using an ISA
NIC, there may be more steps involved for specifying the number, I/O address, etc.  Download the
appropriate driver package for your NIC and consult the documentation for details.

Edit:  Due to various circumstances I've also setup a Kingston KNE20T and a 3Com 3C509B in this
system, so instructions for all three NICs are included below.

The following files are required for DOS networking for each of the listed NICs:

3Com 3C905C
ndis2\dos\el90x.dos - NDIS2 driver
ndis2\dos\oemsetup.inf - NDIS2 configuration file for Microsoft Network Client
pktdvr\3c90xpd.com - Packet Driver
3Com 3C509B
ndis2\dos\elnk3.dos - NDIS2 driver
ndis2\dos\oemsetup.inf - NDIS2 configuration file for Microsoft Network Client
pktdvr\3c5x9pd.com - Packet Driver
3c509.com - Alternative Crynwr Packet Driver; recommended
Kingston KNE20T
ndis2\ktc20.dos - NDIS2 driver
ndis2\lanservr.dos\oemsetup.inf - NDIS2 configuration file for Microsoft Network Client

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

pktdvr\ktc20pkt.com - Packet Driver

Note:  For the Kingston KNE20T, the listed files are included in pnpdata1.exe.  This file can be
manually unpacked, but it's probably easiest to use QStart to unpack them for you:

1. Run qstart.exe
2. Set the appropriate Plug and Play mode (this will depend on what your computer's BIOS can
support) and click choose Continue
3. Select Custom
4. Use one of the Config. options if you'd like to verify your configuration, then click Continue
5. Select Basic Test if, again, you want to verify your configuration, then choose Driver
Installation when ready
6. Select "IBM LAN Server ver. 4.0 DOS LAN Services / NDIS 2" or "Packet Driver", choose a
reasonable Destination Directory, and choose Copy
7. Choose Exit to complete driver extraction.  If you made configuration changes (especially for
the PnP mode), you may want to restart to ensure those changes take effect.

Packet Driver Only


If you only want to install the PD interface, copy the packet driver to c:\dos.  Edit c:\autoexec.bat
and add the following (note:  the /I for the 3C905C is case sensitive):

3Com 3C905C
loadhigh c:\dos\3c90xpd.com /I=0x60
3Com 3C509B
Official: 
loadhigh c:\dos\3c5x9pd.com 0x60
Alternative: 
loadhigh c:\dos\3c509.com -p 0x60
Kingston KNE20T
loadhigh c:\dos\ktc20pkt.com 0x60

The 0x60 option for each specifies the software interrupt; 0x60 is the default, and there shouldn't be a
reason to change it unless you're using multiple NICs.  This is optional on some cards (such as the
3C905C), but it doesn't hurt to be explicit, and it's required if you want to unload the driver later (with
/u, where supported).

Run the above command now to manually load the driver; assuming you have an ethernet cable
plugged in, it should automatically detect the connection.  If all you need is a PD interface, skip to the
Packet Driver Configuration section.

NDIS Driver
NDIS driver installation is quite a bit more involved.  It can be installed manually like the PD, but instead
we're going to let installation and configuration be handled by Microsoft Network Client 3.0 for MS-DOS
(MS-Client).  MS-Client, as the name implies, is a multi-protocol stack for MS-DOS, requiring the use of
an NDIS driver to talk to network hardware.

To prepare for setup, copy both MS-Client disks to your hard drive (as noted above, I recommend
keeping a copy in c:\backup as well - last time I'll mention this).  Running each EXE file will unpack
them to the current directory if you didn't unpack them before hand.  If prompted, it's safe to overwrite
any files as a few exist on both disks (assuming you copied the MS-Client disks to their own directory).;
Copy your NIC's NDIS driver and configuration file (noted above) to your hard drive as well; place both
in the same directory (if necessary) and note the location.

Note:  If you are using a 3c90x card, you must edit oemsetup.inf before proceeding with MS-Client
installation.  Comment out (or delete) the following lines and save the file:

ndis3=1:el90x.386
mlid=1:3c90x.com

To begin MS-Client installation, run setup.exe from Disk 1.

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

1. Press Enter to skip the Welcome screen


2. Specify c:\dos\net for the installation directory (since these are DOS-specific drivers)
3. For network adapter selection, you can choose the driver that's appropriate for your hardware
if listed.  However, you can almost certainly find a newer driver than what's included with MS-
Client, so I recommend choosing "Network adapter not shown on the list below" to use use
your downloaded driver instead.
4. Enter the directory path containing your NDIS2 driver configuration file
5. Confirm the chosen driver when prompted
6. Unless your system is extremely short on RAM, I recommend letting MS-Client optimize itself
for performance, so press Enter to continue.
7. Enter the username you will use to login to this computer (this is primarily for authenticating
against server shares to map drives)
8. Choose Change Names
9. Edit your hostname, workgroup, and domain name as appropriate.
10. Select "The listed names are correct" to return
11. Choose Change Setup Options
12. Select Change Redir Options
13. I recommend using the Basic Redirector if possible to save memory.  The only reason you
should need to use the Full Redirector is if you plan on authenticating against an NT domain
controller.
14. I recommend leaving the Start Options set to "Run Network Client".  The Load Pop-up option
is only useful if you plan on communicating with other LAN systems using the old netbios
messenger service (aka NET SEND, WinPopup, etc.).  You can also choose to not run the
network client automatically, but we can disable MS-Client from autostarting at any time after
installation, so it's easier to let MS-Client configure the startup options itself.
15. Logon Validation and Net Pop Hot Key should be left alone.  They can be changed later if
desired.
16. Select "The listed options are correct" to return
17. Choose Change Network Configuration
18. This option window is a bit difficult to work with.  Press tab to switch to the top pane to choose
the adapter/protocol you want to modify, then tab back down to the bottom pane and choose
the appropriate action.  Select your NIC and choose Change Settings first to review and
update any settings as necessary.  You generally should not need to modify this unless you
have more than one NIC.
19. Select NWLink IPX Compatible Transport and choose Remove - IPX is (generally) no longer
used today.
20. When prompted for a new protocol, choose Microsoft TCP/IP - this is what's in common use
today
21. Select Microsoft TCP/IP and choose Change Settings
22. If necessary, IP address and network settings can be specified here.  By default it's
configured for DHCP, so if you're on a DHCP network you can skip this step and return to to
Network Configuration.
23. If you plan to communicate with other ancient DOS or Windows systems (pre-Windows 95),
you might want to also install and configure Microsoft NetBEUI.  This generally shouldn't be
needed, though.  All reasonably modern server operating systems, including Samba, support
NetBIOS over TCP/IP (NBT).  NetBEUI itself is not required for NetBIOS communication.
24. When finished, select "Network configuration is correct" to return
25. Return to main configuration menu, and choose "The listed options are correct" to continue
installation
26. When prompted for the OEM Driver Disk, specify the path to MS-Client Disk 2, or just press
Enter if all files were copied to a common directory
27. Press F3 to exit setup without rebooting
A bug in the MS-Client installer prevents a file necessary for Windows 3.1x support from being
installed.  This isn't necessary if running solely under DOS, but it doesn't hurt in anyway, so let's install it
just to be safe.  To do so, from the msclient setup directory run:  expand disk2\wsahdapp.ex_
c:\dos\net\wsahdapp.exe

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

If you run into any other trouble, or have questions about some of the options, official MS-Client setup
documentation is still available from Microsoft.

MS-Client updated your system configuration files during setup, so let's review those changes and
make a couple changes.  First, edit config.sys and change the following:

DEVICEHIGH=c:\dos\net\ifshlp.sys

IFSHLP is the installable file system helper, and provides access to file and network APIs used by the
MS-Client utilities.

Next, edit autoexec.bat and change:

loadhigh c:\dos\net\tcptsr.exe
loadhigh c:\dos\net\tinyrfc.exe
loadhigh c:\dos\net\emsbfr.exe

These are some of the various network services installed by MS-Client.  We're requesting that they load
themselves into high memory.  Note that the lines containing the net command, *.com, and nmtsr.exe
are NOT set to load in high memory; this is necessary, as these services must be run from conventional
memory.

Note:  If you get the error "Insufficient memory to load Tiny RFC 1.0" on boot (or a similar error from one
of the other services), remove loadhigh from the front of that line as well.  This indicates you've run
out of upper memory, and MS-Client isn't smart enough to load itself into conventional memory instead.

Reboot load the network drivers.

After rebooting, MS-Client should initialize your network card, grab an IP address from DHCP (if
enabled), then prompt you to enter a username.  This is only required if you plan on mapping shared
drives, and can be disabled if you do not wish to auto-mount drives at login.  If you do plan to mount
shared drives, go ahead and enter your username now (or just press Enter to accept what you
specified during MS-Client setup), then enter the password for your account.  If you do not plan to
mount shared drives, press Enter, then press Enter again to setup a NULL password.  In either case,
choose Y to create a password list when prompted.

At this point, Microsoft's TCP/IP stack should be (mostly) up and running, using the NDIS driver.  We
can perform a few tests to confirm, but note that the utilities described below, though named the same
as modern utilities, work differently than what you're probably used to (again, think "primitive").

First, verify that you have an IP address:

ipconfig c:\dos\net

This should have been provided by DHCP, or should match the manual one you specified during MS-
Client setup.  Next, make sure you can ping your own IP, eg.:

ping 192.168.0.15

The bottom line should say "echo received".  Finally, make sure you can ping your gateway's IP address
(this can be found in the ipconfig output):

ping 192.168.0.1

Again, the bottom line should say "echo received".  If all that worked, congrats, you're up and running!

However, there's one more major issue we need to take care of.  Due to another bug in MS-Client,
DNS does not work by default, nor is it possible to configure or enable it through the setup utility; this
must be done manually.

To enable DNS, first edit c:\dos\net\tcputils.ini and append the following:

[dnr]
drivername=DNR$
bindings=TCPIP_XIF

If you are not using DHCP, also add the following below the bindings line:

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

nameserver0=aaa bbb ccc ddd


nameserver1=aaa bbb ccc eee
domain=domain.com

Substitute the appropriate values for your network, and be sure to separate the octets with spaces (as
shown above) rather than periods as would be done on modern systems.

Next, edit autoexec.bat and add the following line immediately above "net start":

loadhigh c:\dos\net\dnr.exe

Finally, run the above command now to start the Microsoft domain name resolver.  The implements
DNS functionality in MS-Client.  You can verify DNS is working properly with ping again:

ping www.google.com

As before, you should get an "echo received", along with the IP address for www.google.com.

All of this work will now let us (finally) do something very important:  map shared network drives.  This is
especially useful as we can use this to easily copy files and install new applications and drivers without
floppy disks.

To map a drive, assuming you already have a shared drive properly configured in Samba or a Windows
server (which is outside the scope of this HOWTO), run:

net use e: \\servername\sharename

Again, assuming everything has been properly setup on the server, and that you logged in with proper
credentials, this should just work; you'll get a "command completed successfully" message if it did.  To
test, try running dir e: and verify that you get output.  If it doesn't as expected, and you followed all
instructions above, the error is most likely on the server side.  As noted, modern versions of both
Samba and Windows no longer support DOS or Windows 3.x clients by default, and have to be run in a
more insecure mode to make this work.  I've had mixed results myself - on my initial testing with MS-
Client (about three years ago), I was able to get this working perfectly with Samba; this time, however, I
can't.  If you have trouble with this, don't worry - SCP, SFTP, and NFS all work perfectly well for
copying files using the PD interface, and are described in detail below.

NDIS Packet Driver Shim


The final bit of network setup we're going to do for the NDIS driver is installing a "shim" packet driver. 
The shim driver basically adds a PD interface to the NDIS driver.  This is necessary if you want to use
both Microsoft (including mapped drives) and non-Microsoft network utilities on the system (which is
highly recommended).

Note that this shim driver is meant specifically for this purpose; it cannot drive your NIC directly without
the NDIS driver, nor can your NIC's packet driver be used as a shim.  Also, while the driver itself works
great, the whole concept is a hack and as a result requires a manual and rather complicated setup
process.

To begin, copy dis_pkt.dos to c:\dos\net.  Next, edit c:\dos\net\protocol.ini and append


the following:

[pktdrv]
DriverName=PKTDRV$
BINDINGS=TCM$EL90X
INTVEC=0x60
CHAINVEC=0x68

The BINDINGS line needs to be modified for your hardware; everything else (should) be able to stay
the same.  The BINDINGS line informs the packet driver of which NDIS driver it must bind to.  To find
this, search for the [TCPIP] section in protocol.ini; it should also contain a BINDINGS line.  Use
the same driver name for the BINDINGS line under [pktdrv].

Save your changes to protocol.ini and edit config.sys next.  Add the following after "ifshlp.sys":

DEVICEHIGH=c:\dos\net\protman.dos /i:c:\dos\net
DEVICEHIGH=c:\dos\net\nemm.dos
DEVICEHIGH=c:\dos\net\tcpdrv.dos
DEVICEHIGH=c:\dos\net\el90x.dos
DEVICEHIGH=c:\dos\net\dis_pkt.dos

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

Although it looks like you're adding a lot here, you're only going to be loading one new driver; the
dis_pkt.dos driver you just copied over.  Everything else was already being loaded automatically by
MS-Client, but due to some dependency issues you need to load them before dis_pkt, which in turn
needs to be loaded before MS-Client.

Two additional notes:

1. The el90x.dos line refers to the NDIS driver for my hardware, a 3com 3C905C.  You must
change this to point to the NDIS driver for your hardware.
2. Order is important:  be sure to leave the lines in the order I have listed above.
We also need to edit autoexec.bat and change the following:

rem c:\dos\net\net initialize

net initialize loads all of the required drivers for MS-Client, which you're now doing manually
through config.sys.  As a result, this command is no longer needed, and will in fact cause errors if
you try to run it with the other drivers already loaded.

This is also a good time to decide whether or not you want to automatically map shared drives on boot. 
If you do not plan on using shared drives, or you prefer to map them manually each time they're needed
(which can be done by simply running net start), comment out the following line to save a fair
amount of conventional memory:

rem c:\dos\net\net start

Finally, reboot to load the new driver.  You should see the following message during the boot process
to confirm the shim driver was loaded:

MAC/DIS to Packet Driver convert loaded.

Packet Driver Configuration


Whether you installed the native PD or the NDIS PD shim, you won't be able to test network
functionality using currently available utilities.  The PD only provides an interface to your network card;
each application using this interface must provide it's own network stack to talk TCP/IP, provide an IP
address, etc.  Most older applications do this by using the Waterloo TCP/IP stack (WATTCP), which can
be embedded into the application and provides all necessary network functionality.  A much newer
TCP/IP stack called mTCP works similarly, and includes some additional utilities not (well) supported by
WATTCP.  Fortunately, both stacks can installed and enabled simultaneously, so we'll setup both.

WATTCP
To configure WATTCP, create c:\apps\wattcp.cfg and add the following:

print = "Configuring WATTCP..."


hostname = <hostname>
my_ip = dhcp

If you use a static IP, remove the dhcp line above and add the following:

domain.suffix = localdomain
my_ip = 0.0.0.0
netmask = 255.255.255.0
nameserver = 0.0.0.0
nameserver = 0.0.0.0
gateway = 0.0.0.0

Edit the values as appropriate, then save and close the file.  Finally, add the following line to
autoexec.bat:

set WATTCP.CFG=c:\apps

Run the above command now to manually set the configuration variable.  Next, let's install a couple
diagnostic utilities.  Copy tcpinfo.exe and ping.exe from the WATTCP archive to c:\apps (I
suggest renaming ping to something like pingw.exe to avoid conflicting with the Microsoft or mTCP
version of ping).

To test our WATTCP configuration run tcpinfo.exe.  The top line should state, "Reading Waterloo

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

TCP configuration file," which indicates that it was able to find your config file.  The network parameters
output by tcpinfo should either match your static configuration, or should be appropriate for your DHCP
network.  To test, try the following:

pingw www.google.com

If you see "Replies lost: 0", everything's working.

mTCP
mTCP works, and is configured, very similarly to WATTCP.  You'll need to create another config file,
c:\apps\mtcp.cfg, and add:

packetint 0x60
hostname <hostname>

If you use a static IP, also add:

ipaddr 0.0.0.0
netmask 255.255.255.0
gateway 0.0.0.0
nameserver 0.0.0.0
mtu 1500

Edit the values as appropriate, then save and close the file.  Finally, add the following to
autoexec.bat:

set MTCPCFG=c:\apps\mtcp.cfg
c:\apps\dhcp.exe

The only practical difference between mTCP and WATTCP (from and end-user's perspective) is that
mTCP provides a separate DHCP client, whereas WATTCP applications do this themselves.  If you are
using a static address you can skip the dhcp line in autoexec.bat.  Run those autoexec.bat line(s)
now to initialize mTCP.

To test, copy ping.exe to c:\apps (again I recommend renaming it to something like pingm.exe to
avoid conflicts) and run:

pingm www.google.com
If you see a "Success: 100 %" message, everything's working.

Network Applications
It's time install a few essential network applications.  Quite a few exist, but these are the ones I find
most useful.

SSH
I primarily run Linux systems, so SSH is very important to me.  As a bonus, SCP and SFTP provide
great options for transferring files across the network, and is especially useful when NDIS/MS-Client is
not setup or mapped drives do not work properly with modern Samba or Windows servers.  Fortunately,
there's an excellent SSHv2 implementation for DOS called, simply enough, SSH2DOS.  It can be
downloaded from the link above.

Installation is pretty simple; just copy and rename the following files as suggested:

copy scp2d386.exe c:\apps\scp.exe


copy sftpd386.exe c:\apps\sftp.exe
copy ssh2d386.exe c:\apps\ssh.exe

SSH2DOS is a WATTCP-based application, so it requires a PD interface and a working wattcp.cfg


file.  If you setup both of these as instructed earlier, you're already good to go.  Run ssh username
servername to verify SSH works as well.

SSH2DOS also includes a thoroughly commented example WATTCP configuration file.  If you're having
any trouble with your WATTCP apps, or you want to poke around to see what other options are
available, take a look at the included wattcp.cfg.  If you decide to edit and use this version of the file,
you can either replace the existing wattcp.cfg in c:\dos, or point the WATTTCP.CFG variable in
autoexec.bat to the new location (but don't forget to update that variable as well, or reboot, or your
apps will continue to use the old configuration file).

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

wget
wget is another useful utility.  This is a command line download manager that can download files from
pretty much any web or FTP server and, happily, there's a DOS version available from the link above
(though the DOS version is no longer maintained at this point).

Installation is the same as SSH2DOS; copy bin\wget.exe c:\apps and you're done.  This is
another WATTCP-based application, so it should just work at this point.

NTP, FTP, TELNET


Now let's install some mTCP applications.  These are all bundled with the mTCP distribution, so just
copy the following files to c:\apps:  ftp.exe, sntp.exe, telnet.exe

Each of these will utilize your mTCP configuration file so you can go ahead and use them directly.  FTP
and TELNET should be fairly self-explanatory and work how you'd expect, with FTP being especially
useful if you run Windows on your main machine and don't have SSH available.  The utility I'm most
interested in here, though, is SNTP, a simple Network Time Protocol client.  You can use this to
automatically set your computer's clock to the correct current time, which is very handy on ancient
computer hardware with bad CMOS batteries.  :-)  To test this, run the following:

set TZ=CST6CDT
sntp.exe pool.ntp.org

Note:  TZ stands for time zone, and is required so that SNTP knows the correct 'local' time.  CST6CDT
is the code for the Central Standard Time zone; see sntp.txt for additional information about how to
set this.

After running the above, you should see your current system time as well as the current NTP server
time (listed as "Time should be set to").  To actually set the time, use the -set parameter.  To always
set your system clock to the appropriate time on boot (strongly recommended), add the above, with -
set to autoexec.bat.

Bonus tip:  once you get the mTCP utilities installed, try running telnet towel.blinkenlights.nl
for an unexpected treat.  :-)

Note:  There are several additional applications/utilities included with both WATTCP and mTCP, but the
above are the ones I personally find most useful.  Feel free to play around with the others, though.

XFS (NFS client)


If you run an NFS server instead of (or in addition to) an SMB/CIFS server, you'll be happy to know that
it is possible to mount an NFS share from DOS.  The bad news is that you lose the ability to
concurrently use many (but apparently not all) other PD-based applications.  The reason is that XFS
installs it's own driver literally on top of your packet driver, which conflicts with most other PD
applications.  wget (for whatever reason) still works with the XFS driver loaded, but none of the other
WATTCP- nor mTCP-based utilities can use it.

If you only otherwise use NDIS-based applications, this is not an issue.  If you only use PD-based
applications, theoretically you should be able to get them to work with the XFS driver loaded by
configuring them to use interrupt vector 0x62 instead of 0x60 (search for "redirected PKTDRVR" in
xfs.txt), but I could not get that to work.  See the end of this section for an alternative approach that
you can use instead.  If you need to use both NDIS- and PD-based applications, you're pretty much out
of luck; you need to choose one or the other at this point (or, of course, not use NFS).

So here's the deal with NFS under DOS:  there's an old version of NFS for DOS called XFS Network
File System Client.  It was a commercial program, but as noted above it's long since been abandoned,
so grab a copy if you're so inclined and let's get to work.

Note:  Before installing, take a look at kernels.txt, which describes the different kernel drivers
available.  I use the minimal kernel, XFSKRNLM, because that meets my needs and takes up the least
amount of memory, but your needs may vary.

Installation is a bit tricky:

1. Copy the following files to to c:\apps:

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

xfskrnlm.exe
hosts
ls.exe
xfstool.exe

The rest of the executables can be useful for troubleshooting NFS connections, but shouldn't
be required for routine use.  I also recommend renaming ls.exe to lsx.exe to avoid
conflicting with the 4DOS alias for ls (defined below).
2. Edit hosts, comment out everything currently in there, then define your NFS server as:
aaa.bbb.ccc.ddd nfsserver.domain.com nfsserver

3. If you're using a static IP address, add the following to hosts, where nfsclient is the
name of your DOS system and the IP information applies to your network configuration:
aaa.bbb.ccc.eee gateway
aaa.bbb.ccc.ggg netmask
aaa.bbb.ccc.fff broadcast
aaa.bbb.ccc.ggg nfsclient.domain.com nfsclient

4. If you're using NDIS, copy dis_pkt9.tcp to c:\dos\net and edit config.sys. 


Add/change the following:
rem DEVICEHIGH=c:\dos\net\dis_pkt.dos
DEVICEHIGH=c:\dos\net\dis_pkt9.tcp

Note that this disables the old packet driver and loads the new one provided by XFS.  Reboot
here if using NDIS before continuing.
5. Run the following command to initialize the kernel:
loadhigh c:\apps\xfskrnlm.exe 0x60

6. Run the following to initialize the driver:


If using BOOTP (a predecessor to DHCP; many DHCP servers can also support
BOOTP, but may require special configuration):
xfstool init bootp

or, if using a static address (nfsclient must be defined as described above):


xfstool init nfsclient

7. Finally, try to mount a share:


xfstool mount f: nfsserver:/home/data/files

Note that XFS requires a local hostname to be set.  If you're using a static IP address, this should be
taken care of.  If you're using BOOTP, your DHCP server has to be configured to supply a hostname in
addition to an IP address to your system.  If XFSTOOL complains about a hostname not being set, this
is probably what's happening.  The easiest workaround would is to configure a static IP address for
XFS, as described above.

If everything worked, you should be able to do run dir f: and see a list of files on your NFS server. 
Switch to F: and run ls (or lsx) to see the long file names.  If using NDIS, I also recommend testing
an NDIS application to ensure the shim driver is working properly.  ping hostname should do the
trick, but a more thorough test would be to map a shared drive, eg., with net start.

If you want to automount any NFS shares on boot, add the three XFSKRNL, INIT, and MOUNT
commands shown above to autoexec.bat.  Be sure it's added after any other PD applications
included in autoexec.bat, such as mTCP's DHCP client, or the other applications will fail for the
reasons listed above.

As mentioned previously, it's not possible to (reliably) use XFS with other PD applications.  However,
XFS provides the ability to temporarily unload and then reload it's PD shim as needed, so you can
leverage this to run other PD applications without completely tearing down NFS support or rebooting. 
As an example of how to do this, say you want to SSH to another system while you have an NFS
share mounted; you can do this by calling the following additional commands before and after SSH:

xfstool pktdrv stop


ssh username hostname
xfstool pktdrv restart

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

While in the "stopped" state, your mounted shares will still exist but will not be accessible.  Issuing the
restart will make them available again.  It's not ideal, but it's a fairly reasonable compromise, and can be
made less annoying by using a 4DOS alias to simplify that much more (see the 4DOS section below).

Return to top

Device Configuration
Relevant Software and Drivers:

Toshiba ATAPI CD/DVD-ROM Driver - generic ATAPI E-IDE CD-ROM driver for DOS;
unfortunately, this is packed in a self-extracting Windows binary using the LHA format, so you'll
have to extract the files on your main system before copying it over to DOS (local copy)
CuteMouse - modern mouse driver for DOS
Creative Labs Sound Blaster AWE64 - Sound Blaster AWE64 sound card drivers; you'll need (at
least) "Sound Blaster 16/SB32/AWE32 Basic Disk for DOS/Windows 3.1 Installation" and "Creative
PnP Configuration Manager (Rev 4)"

Whew, now that we're finally finished with networking, everything else should be a breeze in
comparison.  :-)  Since we now have an easy way to transfer files to our DOS system, it's time to install
our remaining drivers and applications.  Let's start with the CD-ROM drive.

CD-ROM Driver
Microsoft does not include a CD-ROM driver by default with DOS, and it's difficult (if not impossible) to
get a DOS CD-ROM driver from manufacturers today.  Fortunately, though, a few generic CD-ROM
drivers exist that should cover most standard IDE/ATAPI CD/DVD-ROM drives.

The most widely compatible and widely used MS-DOS CD-ROM drivers are probably from Oak
Technologies and Gold Star, both available from the Computer Hope hardware downloads page. 
Unfortunately, both are memory hogs; the Gold Star driver consumes 25 KB, while the Oak driver
consumes a whopping 35 KB.  As an alternative I recommend the Toshiba driver linked above.  This
driver should offer roughly the same compatibility and capabilities, but only uses a svelte 7 KB of
memory.

Acer's ATAPI CD-ROM driver (search for VIDE-CDD.SYS v2.15 on the linked page) is another option
that uses only 5 KB, as is the modern UDVD2 driver for the FreeDOS project which uses, I think, less
than 1 KB.  Unfortunately, the UDVD2 driver doesn't behave well on a physical MS-DOS system, and I
had some reliability issues with VIDE-CDD.SYS while installing and testing some classic games, so I'd
recommend sticking with Toshiba's CDROMDRV.SYS driver.

To install the driver, copy cdromdrv.sys to c:\dos.  Then, edit config.sys and add:

DEVICEHIGH=c:\dos\cdromdrv.sys /d:mscd001

The /d option sets a device name to be used by MSCDEX; you can set anything you want here, but
mscd001 is the standard name and there's no real benefit to changing it.  Next, edit autoexec.bat
and add:

loadhigh c:\dos\mscdex.exe /d:mscd001

MSCDEX acts as an interface for DOS to communicate with the CD-ROM driver and, in turn, the
device itself.  Reboot to load the new driver.  If both the driver and MSCDEX were loaded properly,
you'll see the following message in the output while the system is booting:

Drive D: = Driver MSCD001 unit 0

Try inserting a CD-ROM and entering dir d: to verify MSCDEX was able to see it as well.

Mouse Driver
Next we'll install a mouse driver.  This is optional, as DOS itself doesn't utilize mice, only the
applications programmed to support them (such as Pedit).  So, unless you plan on running an
application or game that uses a mouse, you can skip this.

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

As with CD-ROM support, MS-DOS doesn't include a mouse driver by default.  And again like CD-ROM
support, we have a couple options to choose from.  The first option is to use the original mouse driver
provided by Microsoft with Windows 3.x.  This is called MOUSE.COM, and can again be downloaded
from the Computer Hope hardware downloads page.  The second option is a much newer, open source
mouse driver called CuteMouse.  It's still actively developed for the FreeDOS project and available from
the site linked above.

CuteMouse provides support for modern mice and mouse features such as wheels (though few
applications support the wheel), and is significantly smaller than MOUSE.COM, using only about 3.5 KB
of memory vs. almost 18 KB for MOUSE.COM.  I strongly recommend CuteMouse here, and will use it
for the example, but you're welcome to use MOUSE.COM if preferred.

To install CuteMouse, copy bin\ctmouse.exe to c:\dos.  Then, edit autoexec.bat and add:

c:\dos\ctmouse.exe /3

CuteMouse supports quite a few options, so run ctmouse.exe /? to get a complete list and set the
options appropriate for your hardware.  Auto-detection should generally work fine, though.  In my case, I
use /3 to force 3-button mode, which isn't enabled by default.  Also, note that we're not specifying
LOADHIGH here; CuteMouse is smart enough to load itself into upper memory when available, so
LOADHIGH isn't needed.

Run the above command to manually load the driver.  Pedit supports mice, so you can fire that up to
verify that your mouse was properly detected and enabled, or use the included mousetst.com.

Sound Card Driver


Next up is sound.  You'll need to install drivers appropriate for your sound card.  I have a Creative Labs
Sound Blaster AWE64, so that's what I'll setup in the example.  Your setup should be at least somewhat
similar, but certainly some of the details will be different.

To begin, unpack and copy over both the driver disk and configuration manager (linked above), then
change to the driver disk directory.

1. Run install.exe
2. Press Enter to continue
3. If prompted to install the Creative Configuration Manager (CTCM), press enter to continue,
then enter the path to the CTCM files.  This is needed for Plug and Play (PnP) cards under
DOS.  The Intel PnP ISA Configuration Manager (ICM) can be used for this instead, but my
experience has been that ICM is much harder to find and really not worth the trouble.  CTCM
is pretty easy and worked on the first try.
4. If installing CTCM, I recommend setting the path to c:\apps\ctcm.  Verify the suggested
settings are sensible and hit Enter to continue.
5. Hit Enter if prompted to run CTCM, then again when asked about modifying your system
config files, then a third time to continue installation
6. For the drivers, I recommend installing to c:\apps\awe64.  Again, verify the suggested
settings are sensible and hit Enter to continue.
7. Make note of the Audio Device settings (you can review this later, if necessary) and hit Enter
8. Hit Enter to make the config file changes, then Enter again to complete installation
We'll need to reboot to activate the sound card, so do that now.  After rebooting, change to
c:\apps\awe64 and run diagnose.exe.  This will let you verify that your sound card is installed and
working properly.  While here, you can also run mixerset.exe to adjust the volume levels as
necessary.  I find the default config too loud (leading to noticeable distortion on my speakers), so I turn
the Master volume down a couple clicks.  You may also like to try enabling 3DSE (3D Stereo
Enhancement) and see if that improves the sound; I generally don't care for this, but it can make a
positive difference with cheap stereo or embedded monitor speakers.

Return to top

System Optimization
At this point it's time to do some configuration cleanup and memory optimization.  Remember, you can
use mem /c /p to view current memory usage and availability.  My system, after installing everything

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

listed above and despite tweaking the config files a bit, currently has only 497 KB of conventional
memory available.  This is actually pretty decent given everything I have loaded, but unfortunately it's
not enough for some of the other programs I want to install, and definitely isn't large enough for many
games.  Generally, you should shoot for >530 KB free, which should cover most (though not all - 587
KB is the highest I've personally encountered) DOS applications and games.

For reference, here's my config.sys file at this point:

REM configure boot options


SWITCHES=/f
REM enable memory management
DEVICE=c:\dos\himem.sys /testmem:off
DEVICEHIGH=c:\dos\emm386.exe ram 24576 highscan notr i=b000-b7ff
DOS=high,umb
REM load device drivers
DEVICEHIGH=c:\dos\cdromdrv.sys /d:mscd001
DEVICEHIGH=c:\dos\net\ifshlp.sys
DEVICEHIGH=c:\dos\net\protman.dos /i:c:\dos\net
DEVICEHIGH=c:\dos\net\nemm.dos
DEVICEHIGH=c:\dos\net\tcpdrv.dos
DEVICEHIGH=c:\dos\net\elnk3.dos
DEVICEHIGH=c:\dos\net\dis_pkt.dos
DEVICEHIGH=c:\dos\ansi.sys
DEVICEHIGH=c:\dos\power adv:min
DEVICE=c:\apps\ctcm\ctcm.exe
rem DEVICEHIGH=c:\dos\setver.exe
REM configure environment
SHELL=c:\dos\command.com c:\dos /p
FILES=30
BUFFERS=5,0
FCBS=1
STACKS=0,0
LASTDRIVE=H
BREAK=on

And my autoexec.bat file:

@echo off
REM setup display and drivers
c:\dos\mode.com con cols=80 lines=50
loadhigh c:\dos\mscdex.exe /d:mscd001
loadhigh c:\dos\smartdrv.exe
loadhigh c:\apps\doskey.com -i
c:\dos\ctmouse.exe /3
REM setup network
rem loadhigh c:\dos\3c5x9pd.com 0x60
rem c:\dos\net\net.exe initialize
c:\dos\net\netbind.com
c:\dos\net\umb.com
loadhigh c:\dos\net\tcptsr.exe
loadhigh c:\dos\net\tinyrfc.exe
c:\dos\net\nmtsr.exe
loadhigh c:\dos\net\emsbfr.exe
loadhigh c:\dos\net\dnr.exe
c:\dos\net\net start
REM setup sound card
set SOUND=c:\apps\awe64
set BLASTER=A220 I5 D1 H5 P330 E620 T6
set MIDI=SYNTH:1 MAP:E MODE:0
set CTCM=c:\apps\awe64\ctcm
c:\apps\awe64\diagnose.exe /s
c:\apps\awe64\aweutil.com /s
c:\apps\awe64\mixerset.exe /p /q
c:\apps\ctcm\ctcm.exe /s
REM setup environment
path c:\apps;c:\dos;c:\dos\net
prompt $e[1;34m$p$g $e[0;47;0m
set DIRCMD=/o:gne
set TEMP=c:\temp
set WATTCP.CFG=c:\dos\net
echo.

Most of this has been covered previously, but there are a few new items:

emm386.exe
24576 instructs EMM386 to only make 24 MB of extended memory (out of the 64 MB of RAM
available on this system) available as EMS.  By default, it'll use all available extended memory,
up to 32 MB.  I added this mostly for troubleshooting: if a game reports that it sees 24 MB of
memory, then that means it's using EMS and not XMS.  highscan enables more aggressive

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

attempts to find available upper memory (and this increase available capacity), though it can
cause some systems to hang.  notr disables searching for token ring adapters, a legacy
networking topology no longer in use today.
ansi.sys
DOS driver that enables the use of graphics and special characters in programs that support
them.  This isn't needed unless a specific program requires it, but in my case I'm using it to
increase the number of rows displayed on screen and enable my custom shell prompt (see
below).
power.exe
POWER enables basic power management support.  This isn't especially necessary, but
enabling it makes the my BIOS power management settings actually work (put monitor to sleep
and spin down the hard drive after 10 minutes).  adv:min enables power management support,
but with a bias for performance.  You can run help power.exe for information about more
advanced options if interested.  Tip:  You definitely want to enable this option if running DOS in
VirtualBox or VMware; without it, DOS runs "wide open" and will suck up 100% of the CPU core
assigned to that virtual machine.
ctcm.exe
This is Creative's Plug and Play configuration manager, necessary for proper configuration of my
AWE64 sound card.
SHELL
This default setting specifies the command interpreter.  You generally should not change this.
FILES=30, BUFFERS=5,0, FCBS=1, STACKS=0,0, LASTDRIVE=H
These performance settings are added by default by DOS and MS-Client.  See the help page
(help <option>) for each for more details.  Each should generally be set as low as possible to
reduce memory, without going too low as to adversely affect your system.  I find the settings
above provide a good balance for my system.
mode.com
MODE can be used to configure various system devices.  In this case, I'm using it to increase the
number of rows displayed on the screen to 50, from the default of 25, which will let me see more
information on-screen; this is the closest DOS equivalent that I could find to changing your
display resolution.  This option requires ANSI.SYS to be loaded.
Sound Blaster stuff
These are various variables and configuration utilities setup by my sound card.  These generally
shouldn't need to be modified
prompt $e[1;34m$p$g $e[0;47;0m
This command sets the shell prompt, aka "c: prompt".  By default it's simply $p$g, which shows
c:\path>.  My tweaked version shows the same information, but the prompt is now blue instead
of white.  See the ANSI.SYS help file for additional information.

Startup order is very important under DOS; loading drivers and programs in the "wrong" order can
drastically increase memory usage.  Unfortunately, there's no way to guarantee an optimal order.  You
can find a lot of advice about tweaking MS-DOS memory settings on the internet, but the basic advice
I've found that works the best boils down to three parts:

Use a memory manager such as EMM386 to load as many drivers, etc. into upper memory as
possible
Load the largest drivers first, which helps fit as much as possible into upper memory due to how
DOS loads programs into memory
Use smaller drivers whenever practical, such as what we've done with the CD-ROM and mouse
drivers

MS-DOS also includes a utility called MEMMAKER that can help optimize settings for memory usage,
but it produced slightly worse results than my hand-tweaked files above.  I recommend giving it a shot,
though; it may work better on your hardware, and even if it doesn't it provides an option to easily undo
the changes.

With all that said, I'm still about 35 KB below my target of 530 KB, and this is already optimized.  In
order to hit 530 KB I'll need to disable some things.  Good candidates:

CD-ROM support
this generally isn't required on every boot, and can free up 30 KB by itself (plus quite a bit more if

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

using the Gold Star or Oak drivers).  Comment out the cdromdrv.sys and MSCDEX lines and
reboot to free up that memory.
net start
this command automatically maps shared drives.  If you don't need it available at the start of
every boot, you can disable it from autoexec.bat to free up 14 KB.  You can run "net start"
manually to map all of your shared drives as needed, and then "net stop" to free up that memory
again.
smartdrv
this isn't necessary for your system to run, but it does fairly noticeably improve the performance. 
I'd recommend leaving it enabled if possible, but it takes up 28 KB all by itself, so it's a big target
when you need to free some memory fast.
ansi.sys, ctmouse
both of these are entirely optional and can be commented out if unneeded, but at only 4 KB and
3 KB each it's not going to get you a whole lot.  Still, it may be enough to push you over the edge
if needed.
MS-Client
MS-Client is, by far, the biggest memory hog.  If you do not need mapped drive support or NDIS
drivers enabled, comment out all of the c:\dos\net stuff from both config files (including the
shim driver) to free up oodles of space.  Note that you'll lose your PD interface as well if you
installed the shim driver, so you'll need to (re)setup your NIC's native packet driver if you want to
continue to use non-Microsoft network utilities.  if you can get by with only using PD applications,
this is a great option.

I elected to disable MS-Client and just load the native packet driver, which took me way beyond my
target to 576 KB free.  Aside from mapped drives, MS-Client provides almost no benefit to a home user
over the PD applications, and even mapped drives is very flaky with recent versions of Samba. 
SCP/SFTP will meet my file transferring needs, even if it's slightly less efficient, and that extra memory
will be put to much better use elsewhere.

Return to top

Additional Applications
At this point, I'd consider the base OS install to be complete.  We have a tuned and optimized MS-DOS
6.22 system complete with network support and key network utilities.  Everything we installed should be
very stable and functional, and should, for the most part, be usable under Windows for Workgroups
3.11 as well (we'll probably swap out our network drivers, but that's a later discussion).  Using this base,
you can install additional applications, games, utilities, drivers, etc. to customize the system to your
tastes.  I'll cover a few of the more useful or interesting additions I've found here.

4DOS
4DOS is a replacement shell / command interpreter for DOS.  It provides a great many significant
enhancements over the default DOS shell, command.com, and is amazingly customizable.  To read up
on it and download a copy, visit it's home page.

4DOS was originally a commercial program, but has since been discontinued and released as open
source.  The open source version (called "Free 4DOS"?) seems to still be actively maintained (though it
hasn't been updated in a while) and is currently at version 8.00; this is the version you'll want to
download from the above site.

Basic installation is quite easy.  Copy the entire (unzipped) directory to c:\apps\4dos, then run
c:\apps\4dos\4dos.com and follow the prompts.  You can choose to have it automatically update
autoexec.bat and config.sys for you, but for some greater control you can enter C or N and
manually make the following changes.  Edit autoexec.bat and add/change:

rem loadhigh c:\apps\doskey.com -i


c:\apps\4dos\kstack.com

Edit config.sys and add/change:

rem SHELL=c:\dos\command.com c:\dos /p


SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

4DOS includes tab completion and command history by default, so Enhanced DOSKEY.com is no
longer necessary (although 4DOS doesn't support command completion; that is, searching your path
and completing commands as they're typed.  That's a bummer.)  Also, note that KSTACK.COM is only
needed if you wish to use 4DOS' KEYSTACK command.  Run help keystack.  If you don't need this,
comment out the kstack.com line to free up that memory.

You can run option.exe to configure the basic 4DOS settings.  There are a lot to play with, but I
personally like to set the following non-default options:

Configure, Startup
Resident in UMB - Yes
Swapping - XMS, EMS, None
Buffers UMB options - Yes for all
Local Alias - No
Local Function - No
Configure, Display
Tabs - 4
Configure, Command Line
Default Mode - Insert
Cursor: Overstrike - 100%
Cursor: Insert - 10%
Move to End - Yes
Exit, Save

One handy feature 4DOS provides is the ability to use aliases.  If you're familiar with the concept from
Linux, it works similarly; if no, it's easiest to see it in action.  Enter alias ls=dir /wbh, then enter
ls.  You should get a directory listing in the same style as the default ls command on Linux.  This is a
pretty trivial example, but you can use it to provide a number of useful conveniences.  For example,
here's my aliases.cfg file:

dir=*dir %dircmd
ls=dir /wbh
rm=del
mv=move
cp=copy
cat=type
date=echo %_DATE %_TIME
eject=ejectmedia
vi=edit
p=xfstool.exe pktdrv stop ^ %1 %2 %3 %4 %5 %6 %7 %8 %9 ^ xfstool.exe pktdrv
restart
moved=mkdir %2\%@NAME[%1] ^ xcopy /e %1 %2\%@NAME[%1] ^ deltree %1
realias=unalias * ^ alias /r d:\etc\aliases.cfg

Many of the above are simple shortcuts, but a few deserve special mention:

dir
this forces 4DOS to respect DIR command flags set in the DIRCMD variable; this way, the same
defaults can be used regardless of whether 4DOS is loaded or not
date
this simply outputs the current date and time without prompting you to set it
eject
uses a 4DOS built-in command to eject the CD-ROM drive
p
this is the shortcut I mentioned in the NFS/XFS section above - by prepending p to any
command, 4DOS will first unload the XFS packet driver, then run the given command, then
reload the XFS packet driver; so, you can run p ssh username server to SSH to a server
even while an NFS share is mounted, and 4DOS will automatically suspend/restart the driver
before and after your SSH session
moved
this is the best option I've been able to come up with to easily move a directory from one location
to another; it's not fool-proof, though, so I welcome any suggestions for imporvement
realias

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

this simply reloads the alias file to activate any new changes

It isn't necessary to use an alias file, but I find it convenient to keep all alieses grouped together.  To
load, add alias /r c:\apps\aliases.cfg, or whatever path you prefer, to autoexec.bat.

Another neat, but this time entirely superfluous, trick is to enable support for colored directory listing
output.  This is similar to what modern Linux distributions do by default (as shown in this simple
example if you're not familiar with it), and makes it possible to quickly and easily recognize common file
types at a glance.  I modeled the following configuration based on Linux's default scheme for dircolors,
with a couple differences and pruned down a bit:

ColorDir=dirs:bri blue;hidden:bri bla;exe com dos:bri gre;bat btm


cmd:gre;zip tgz:bri red;jpg gif bmp png ico:bri mag;mov mpg:mag;mid mp3
wav:bri cya;txt doc me now 1st diz cfg inf ini:bri yellow;*~* bak:yel
The configuration is fairly straightforward, if a bit terse:  in order, you specify:

1. List of extensions for a particular file type


2. Colon delimiter
3. Color to apply
4. Semicolon delimiter
5. Repeat
There are a couple additional points to be aware of.  The extension list can also be a special type of
file, such as dirs (directories), hidden (hidden files), rdonly (read-only files), etc.  So, the first item
in the line sets my directories blue.  The color code is also fairly flexible; as shown above, you can
specify both normal colors (yel) and bright colors (bri yel) (bright colors tend to be easier easier to
read against dark backgrounds).  You can also change the character background color:  bri blu on
yel, for example, will display blue text on a yellow background.

You can run the above with the set command to activate, then run dir to test the results.  Feel free to
customize it a bit, then once you're happy with it you can make it permanent by either adding it to
autoexec.bat (again, prepended with set) or copying it as-is to c:\4dos\4dos.ini.  I recommend
the latter, as it won't clutter up your environmental variables.

For more advanced 4DOS features, refer to the online documentation by running help.  Also note:  if
you want to view the original MS-DOS help pages, you'll now need to run help.com <command>.

Arachne
Believe it or not, a GUI web browser is available for DOS.  Support for modern web standards is quite
limited, as should be expected, but basic web browsing should work pretty well.  The name of the
browser is Arachne, and it can be obtained from it's home page.  After a four year hiatus, it very
recently had a new release, so it's good to see that it's still under active development.

Installation is a bit involved, but not too complicated.  The largest hurdle is that this requires at least 500
KB of free conventional RAM, and if you installed everything listed in this walkthrough so far, you will
almost certainly be under that threshold.  Please see the above System Optimization for tips on freeing
up enough memory i fnecessary.  You'll also want to use a mouse for this, so be sure to follow the
mouse driver instructions above to get that setup.

Once mem /c /p shows >500 KB free of conventional memory, run a197gpl.exe to begin the setup
process and then follow the prompts.  I recommend installing to c:\apps\arachne to follow our
installation convention, so press N when asked and change the directory before continuing.

After everything is unpacked, the GUI setup process will start.  If you have just barely more over 500
KB free, the installer will exit with a low memory error, as the memory from the unpacker was still in use
at the time, pushing you under the threshold.  If this happens, simply run
c:\apps\arachne\arachne.bat to restart the GUI setup wizard.

Set the video options to your preference.  Try to go with at least 1024x768, higher if possible (and you
have a reasonably large monitor), but you'll probably be limited by your video card memory.  If you have
any trouble and need to abort the setup process, you can restart by running
c:\apps\arachne\setup.bat.

You'll be prompted to set your computer speed profile next; it's probably best to go with Arachne's
recommended setting here, as it will do a quick benchmark of your computer first.  Select your preferred

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

option and click Next.  You'll then be prompted for some system configuration changes.  This is entirely
personal preference (I prefer to update my files manually after installation, but I do have it create the
shortcut batch file for me), so choose what you like and click Next.  Set the max video resolution to the
same resolution you selected previously and click Next.

Up next is the network configuration.  Since we already have a working WATTCP configuration (...right?
), choose Manual Setup.  Select "Resident packet driver", then select "Use only WATTCP
configuration", then set the WATTCP configuration file name to c:\apps\wattcp.cfg and click Save.

The next page, Arachne Options, can be configured at any time later on to your preferences, so click
"Use new settings" to complete setup.  You'll be kicked back into DOS at this point, so now would be a
good time to make any system config file changes.  Consider changing the following in config.sys, if
you didn't have Arachne do it for you earlier:

FILES=40

If you had Arachne create a shortcut, you can move it to c:\apps so that it's in your PATH.  I also like
to rename it back to arachne:  move c:\apps\arachne\a.bat c:\apps\arachne.bat.  If you
changed your FILES setting, you'll probably want to reboot now to have that take effect.

Finally, run arachne.bat and try loading a website such as www.google.com to verify connectivity.  It
won't look very pretty, but you should see all of the content in its complete, barely styled glory.  :-)

Arachne supports a ton of layout options, performance options, etc., and I strongly suggest you spend
some time tuning it to make it a better experience for you.  To get started, click on the Desktop link in
the right navbar (or press F10), then click Options.

Miscellaneous Utilities
This is a fairly random collection of utilities I found while researching this project that I consider useful
or interesting.  I won't cover them in great detail, but I do recommend checking them out.

Navrátil Software System Information is a comprehensive system information utility, reporting detailed
information about the various components in your system.  This is by far the best such utility I've found,
is one of the only such utilities that is completely free and not crippled, and is even under reasonably
active development.  As a bonus, it even can even perform a basic CPU benchmark.  If you have any
questions about what's in your computer or how it's performing, this is a very worthwhile utility.

Snarf is a simple screenshot utility for DOS.  It doesn't support much in the way of options, but it works
well in my testing.  Screen Thief is another screenshot utility.  This one has far more options, but for
some reason saves images as 720 pixels wide rather then 640, which makes everything look stretched
horizontally.  That seems to be expected behavior and I can't find a way to fix that, and that's a deal
breaker for me.

RMENU, in the author's words, is a "'kind of' a telnet server for DOS... that can be used to remotely
control a computer running DOS via telnet," providing a menu-driven interface as well as direct
command line access.  Since this is of somewhat limited practical use I won't spend much time covering
the details, but it's a quite nice remote-access solution if that's something you need.  A couple other
options that might fit the bill are Remoter and Tiny.  Unfortunately, Remoter which requires a separate
Windows client, so it's not useful for me, and Tiny requires either the Novell or PCTCP TCP/IP stack
(yes, there are even more network stacks and options that what I covered above...), so can't be used
with the network configuration detailed above.  So, RMENU is the best option for my situation.  The
RMENU author has also written a number of additional DOS applications that may be useful, also
available from the same link.

ANSIPLUS is a much enhanced re-implementation of the ANSI.SYS driver discussed above, and
includes several features that would ordinarily require separate additional utilities, such as a scroll back
screen buffer, extended keyboard input buffer, mouse support for console copy/paste, etc.  Installation
and configuration is a bit wonky, so I recommend reading the included ansiplus.doc manual before
getting started.

SLOWDOWN is, as the name implies, a utility to slow your computer down.  It's useful for very old
software (generally games) that run relative to CPU speed.  The problem with these games is that they
will always run faster as CPU speed increases, so once you reach a certain CPU speed (which can be
easily hit even with original Pentiums), games become unplayably fast.  There are several utilities that
can slow your computer down enough to play these games (Mo'Slo probably being the most well

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

known), but my favorite is SLOWDOWN; it's free, has a wealth of features, and is very well
documented.  In particular, I recommend checking out the included CPUCACHE utility; this can be used
to simply disable your CPU's cache, yielding a significant drop in speed.  While testing Wing
Commander, I found the using CPUCACHE resulted in the most consistent gameplay speed.  The
SLOWDOWN author also has several additional utilities on his site, including native DOS USB drivers,
worth checking out.

Return to top

Addendum
After spending a while playing with the system and, most importantly, playing and installing many of my
original DOS games, I have a couple few extra tips I wanted to share.

Memory Management Notes


EMM386
Even through EMS memory is a much older standard than XMS memory, which superceeded it
with the release of the Intel 80286 processor and MS-DOS 3.0, a lot of much more recent
software still only utilizes EMS for some reason.  As a result, I recommend using EMM386 to
enable EMS support (with the ram option) as part of your standard config.  Running EMM386
without EMS support (using noems should be avoided as many games will assume that EMS
available simply because EMM386 is running and then crash.  If you want run a game that uses
XMS memory is used, the most reliable option is to simply not load EMM386; this will ensure it
uses XMS without any potential conflicts caused by EMM386, but has the unfortunate side-effect
of preventing DOS from loading drivers/components into upper memory, which means you'll have
less conventional memory available for the game.
Alternative memory managers
If you really want to maximize available memory, you may want to check out alternative memory
managers such as Jemm/HimemX and UMBPCI.  Both seem to offer more advanced features
with a smaller memory footprint, so if you have trouble meeting a particular memory target you
may want to give these a shot.  I haven't messed with either myself, though; by using a boot
menu (discussed below), I was able to free up enough memory for everything I tried, so it just
wasn't necessary to add this extra software to the mix.
EMM386/HIMEM bugs
The latest versions of EMM386 and HIMEM that shipped with MS-DOS (including 6.22) contain
bugs; generally this shouldn't cause a problem, but if you try to use a slowdown utility or disable
your CPU cache (as described in the SLOWDOWN section ablove) it will instantly freeze your
computer.  You can work around this by replacing the built-in versions with those from Windows
98 SE, the very latest versions released by Microsoft which still work perfectly fine in a native
MS-DOS environment.  If you run into this problem and don't have a Windows 98 SE system
available, you can download my copy from here.

CONFIG.SYS and AUTOEXEC.BAT Notes


I ran into a couple odd problems while testing all of my games that were traced back to the somewhat
aggressive settings I had for FILES, STACKS, etc.  I'm now using the following more conservative
settings:

FILES=40
BUFFERS=10,0
FCBS=1
STACKS=9,128

This uses an extra few KB of conventional memory, but has resulted in less random application
crashes.  Now that I'm using boot menus as described below to re-configure my system as necessary
for memory hungry games, I can afford to give up a few KB of RAM here, so the aggressive settings
aren't really worth it.

Additionally, MSCDEX and SmartDrive can both be tweaked to provide faster performance and utilize
less conventional memory as shown below:

loadhigh c:\dos\mscdex.exe /d:mscd001 /l:f /e /m:30


loadhigh c:\dos\smartdrv.exe 4096 4096 /b:65536 /e:8192 /u

For MSCDEX, the /e parameter instructs it to utilize expanded memory, and /m:30 causes it to cache

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

up to 30 buffers, reducing the amount of direct CD-ROM reads your computer needs to make and this
increasing CD-ROM performance.  Note that EMM386 is required for this; without it, /e cannot be
used, and /m:30 will result in a significant increase of conventional memory use; dropping /m to 5 or
10 in these circumstances is recommended.

SmartDrive is a bit more complicated.  I recommend reading the SmartDrive help page for more details,
but the short version is that the above command instructs SmartDrive to always use 4 MB of extended
memory for cache, use a read-ahead buffer size of 64 KB, use an element size of 8 KB, and disable
support for caching CD-ROM drives.  The /u option is particularly important - while it seems like
caching CD-ROM drives would be a good thing, it has a tendency to corrupt the CD in the process of
copying a large number of files.  I had issues installing quite a few games because of this, so using /u
to disable CD-ROM caching while allowing SmartDrive to continue to cache all hard drives is the
easiest and most reliable solution.  The other options, as mentioned for MSCDEX, all affect memory
usage, and without upper memory available from EMM386 this will make SmartDrive consume a large
amoutn of conventional memory.  Dropping it down to something like 2048 2048 /b:8192 /e:4096
can help a lot in these situations, and you may need to go even lower for particularly memory hungry
games.

Boot Menus
MS-DOS 6.0 introduces support for boot menus, which can be used to select and load different system
configurations at boot time.  This is handy because it let's you easily change system settings by
rebooting and choosing the new configuration rather than modifying config.sys and/or
autoexec.bat each time you want to change something.  This generally isn't really needed, but it can
be useful on a system with multiple games loaded to easily switch between sometimes configurations
needed by each different game, eliminating the need for bootdisks and hand-editing each time you
want to play a different game.

The DOS 6.2 CONFIG.SYS Menu's for Dummies guide explains how boot menus work pretty well, and
includes example config.sys and autoexec.bat files to show how it's done and to show how you
can use the boot menu (handled by config.sys to also affect what's loaded by autoexec.bat.

For a much more complicated example (probably unnecessarily so), I'm providing my latest
config.sys and autoexec.bat files below.  Few notes about this:

1. For a much simpler configuration that provides a perfectly useful and feature-complete
system, see the examples above.  Boot menus are only necessary if you need to be able to
change configurations at boot time, and introduce a good bit of complexity that isn't otherwise
needed.
2. My particular configuration is geared toward providing optimal settings for various games. 
Honestly, I can play most of these games from my default config as noticed above, but I
created special configs for many of them any way just to the most optimal setup possible. 
Treat this as simply an example of what you could do rather than what you necessarily
should do when using boot menus.
3. Again, since this is game-oriented, if any boot option other than the default is chosen,
autoexec.bat will automatically run a custom game launcher I wrote (games.bat) at the
end of the process.  The %CONFIG% variable contains the name of the menu item chosen at
boot, so it can be used by both autoexec.bat and games.bat to determine which
drivers/utilities should be loaded and which game(s) should be run.
With that said, here's my fully tricked out config.sys with boot menu:

REM Configure boot menu


[menu]
menuitem=default,Load standard MS-DOS 6.22 working environment
submenu=games1,Load gaming-optimized environment
menudefault=default,5
REM prompt for game-focused options
[games1]
submenu=games2,Basic optimizations - Disable EMS, disable CD-ROM
menuitem=noemscd,Wing Commander III/IV, Crusader, SkyNET - Disable EMS,
enable CD-ROM
menuitem=noemscdextreme,Privateer 2 - Disable EMS, enable CD-ROM, extreme
optimization
menuitem=emsextreme,Wing Commander I/II - Enable EMS, perform extreme
optimizations
menuitem=emscdnomnosd,Tomb Raider - Enable EMS and CD-ROM, Disable Mouse
and SmartDrive
REM prompt for additional game options
[games2]

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

menuitem=basic,All other games - Basic optimizations only


menuitem=noemsnosd,Dark Forces - Disable SmartDrive
menuitem=noemsextreme,Privateer 1 - Perform extreme optimizations
REM common boot/memory settings - always enable XMS
[common]
SWITCHES=/f
DEVICE=c:\dos\himem.sys /testmem:off
REM Enable EMS for default environment or games that require it
[default]
DEVICE=c:\dos\emm386.exe ram 24576 highscan notr i=b000-b7ff
DOS=high,umb
DEVICEHIGH=c:\dos\power.exe adv:min
INSTALLHIGH=c:\apps\ansiplus\ansiplus.exe /e
DEVICEHIGH=c:\dos\cdromdrv.sys /d:mscd001
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
[emsextreme]
DEVICE=c:\dos\emm386.exe ram 24576 highscan notr i=b000-b7ff
DOS=high,umb
SHELL=c:\dos\command.com c:\dos /p
[emscdnomnosd]
DEVICE=c:\dos\emm386.exe ram 24576 highscan notr i=b000-b7ff
DOS=high,umb
DEVICE=c:\dos\cdromdrv.sys /d:mscd001
DEVICEHIGH=c:\dos\ansi.sys
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
REM Disable EMS for all other games
[basic]
DOS=high
DEVICE=c:\dos\ansi.sys
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
[noemscd]
DOS=high
DEVICE=c:\dos\ansi.sys
DEVICE=c:\dos\cdromdrv.sys /d:mscd001
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
[noemscdextreme]
DOS=high
DEVICE=c:\dos\cdromdrv.sys /d:mscd001
SHELL=c:\dos\command.com c:\dos /p
[noemsnosd]
DOS=high
DEVICE=c:\dos\ansi.sys
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
[noemsextreme]
DOS=high
SHELL=c:\dos\command.com c:\dos /p
REM Configure remaining drivers and default environmental settings
[common]
DEVICE=c:\apps\ctcm\ctcm.exe
FILES=40
BUFFERS=10,0
FCBS=1
STACKS=9,128
LASTDRIVE=H
BREAK=on

And, the corresponding autoexec.bat:

@echo off
:: Configure environment based on config.sys menu selection
goto %CONFIG%
:: For default working environment, load all conveniences
:default
c:\apps\ansiplus\setaplus.exe mode 03h height 8 rate 30 delay 1
loadhigh c:\dos\mscdex.exe /d:mscd001 /l:f /e /m:30
loadhigh c:\dos\smartdrv.exe 4096 4096 /b:65536 /e:8192 /u
c:\dos\ctmouse.exe /3 /o
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto network
:: For gaming environment, load memory-optimized configuration
:basic
c:\dos\mode.com con: cols=80 lines=50 rate=32 delay=1
c:\dos\smartdrv.exe 2048 2048 /b:32768 /e:8192 /u
c:\dos\ctmouse.exe /3 /o
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto finish
:: Otherwise, apply more specialized settings
:noemscd
c:\dos\mscdex.exe /d:mscd001 /l:f /m:20

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

c:\dos\smartdrv.exe 4096 4096 /b:32768 /e:8192 /u


c:\dos\ctmouse.exe /3 /o
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto finish
:noemscdextreme
c:\dos\mscdex.exe /d:mscd001 /l:f /m:5
c:\dos\smartdrv.exe 2048 2048 /b:2048 /e:1024 /u
c:\dos\ctmouse.exe /3 /o
prompt $p$g
goto finish
:emsextreme
loadhigh c:\dos\smartdrv.exe 4096 4096 /b:32768 /e:8192 /u
c:\dos\ctmouse.exe /3 /o
prompt $p$g
goto finish
:emscdnomnosd
c:\dos\mscdex.exe /d:mscd001 /l:f /m:20
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto finish
:noemsnosd
c:\dos\ctmouse.exe /3 /o
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto finish
:noemsextreme
c:\dos\smartdrv.exe 2048 2048 /b:4096 /e:2048 /u
c:\dos\ctmouse.exe /3 /o
prompt $p$g
goto finish
:: Load network drivers and configure protocol stacks
:network
echo.
echo Initializing 3Com 3C509B-TPO...
loadhigh c:\dos\3c509.com -p 0x60 >nul
echo.
echo Setting mTCP IP address via DHCP...
set MTCPCFG=d:\etc\mtcp.cfg
set TZ=CST6CDT
c:\apps\dhcp.exe >nul
echo Setting system time via NTP...
c:\apps\sntp.exe -set boxdog.legroom.net >nul
set WATTCP.CFG=d:\etc
goto finish
:: Configure remaining common drivers and environmental variables
:finish
echo.
echo Initializing Creative Labs Sound Blaster AWE64...
set SOUND=c:\apps\awe64
set BLASTER=A220 I5 D1 H5 P330 E620 T6
set MIDI=SYNTH:1 MAP:E MODE:0
set CTCM=c:\apps\ctcm
c:\apps\awe64\diagnose.exe /s >nul
c:\apps\awe64\aweutil.com /s >nul
c:\apps\awe64\mixerset.exe /p /q
c:\apps\ctcm\ctcm.exe /s >nul
unset CTCM
path c:\apps;c:\dos
set DIRCMD=/a/o:gne
set TEMP=c:\temp
echo.
:: Run games launcher automatically if appropriate
if not %CONFIG%==default c:\apps\games.bat %CONFIG%

Finally, for the curious, you can also obtain my games.bat file.  It's fairly basic, but does show how
you can prompt for basic user input and take action based on that input from a pure MS-DOS system,
so it might be handy as a reference if you're not sure how to do that.

With that I think we're finally(!) done.  I hope this inspires a few folks to tinker a bit with some of their old
hardware, or at least fire up a DOS session under VirtualBox or something, and experience either anew
or for the first time the joy of getting MS-DOS configured just right for whatever your needs might be. 
Computing was very different when MS-DOS 6.2 was released back in 1993, twenty years prior to the
time this was written, and it's worth remembering that sometimes to better appreciate just how far we've
come today.

Hope you enjoyed.

[1] Yes, that's a Men in Black II reference.

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

All logos, trademarks, and comments on this site are property of their respective owner.
All other content is ©2014 by Jared Breland, and licensed under the Creative Commons
Attribution-ShareAlike 3.0.
This website is syndicated with an RSS 2.0 newsfeed. 

file:///C|/...ndows%203.11%20Website%202/How%20to%20Install%20and%20Configure%20MS-DOS%206_22%20%20LegRoom_net.htm[2/2/2016 10:46:48 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

Forum Metasearch Software Tips and Tricks

Home › Content

Navigation How to Install and Configure MS-DOS 6.22 Last Modified: Sun, 08/11/2013 - 16:29

Home Skip to:  Preparation  |  Installation  |  System Configuration  |  Network Configuration  |  Device Configuration  | 
Coming Soon System Optimization  |  Additional Applications  |  Addendum
Forum
Hardware Specs Introduction
Home Theater Specs This walkthrough covers installing MS-DOS 6.22 from the original installation diskettes.  Why write this
News Archive in 2013?  That's a very valid question, to which there are a few answers:
News Categories
SSL Certificates Setting up a fully working DOS system will give you great appreciation for how far computing has
come.  For old-timers, it will be a walk down memory lane; for youngsters who've never used nor
Search Internet
even seen DOS before, it should be quite an eye-opening experience to experience first hand both
Search LegRoom how primitive DOS was and yet how capable it could be.
Software
A working physical DOS system is the most authentic way to (re-)experience classic PC games. 
Tips and Tricks DOSBox does an amazing job of supporting DOS games on modern platforms, but for perfect
accuracy, including the full memory management experience (which can be a game unto itself), a
real DOS system can't be beat.
User login
There is a dearth of detailed information about MS-DOS on the internet.  This makes sense as MS-
DOS predates the web as we know it today, but I don't want knowledge of this system to be lost to
Username: * time.  I did a significant amount of research for this project, and I want to document and share
what I've discovered and re-learned for future reference.
Perhaps most importantly, why not?  This project was inspired by a previous project to resurrect
Password: * my old Packard Bell, my first computer that, not coincidentally, ran MS-DOS 6.2 and Windows for
Workgroups 3.11.  Rebuilding and enhancing it from a hardware perspective was a fun experience,
and now I'm doing the same from a software perspective.
Log in
Honestly, if you have no appreciation for old hardware or software, then this is definitely not for you.  If,
Request new password however, you share my passion for technology, not only for the new hotness [1] of today but also the old
and busted (and tried and true) of yesterday that got us to where we are today, then I think you'll find
this interesting.  If you have some old hardware lying around then I hope you'll follow along, but even if
not I think you may still find some of this interesting enough to read.

As an alternative, if you want an easy-to-install version of DOS that includes some nice modern
conveniences, check out FreeDOS.  It's a great project that I highly recommend.  For this project,
though, I want a (mostly) authentic, original MS-DOS installation.

Note: I provide download links for all discussed software in the relevant section where it's discussed. 
Links point to the original download location for each file wherever possible, but for the files that no
longer have an official source (or a reliable one, in the case of the files hosted on Microsoft's amazingly
unreliable FTP server), I've linked to a local copy you can download instead.

Prerequisites
Old hardware - if it has ISA slots you're probably good to go; anything newer may require some
extra work, but it should still be possible to get at least a basic working system installed.
Alternatively, you should be able to get this up and running in a virtual machine with VirtualBox
or VMware Player, but as with the note about FreeDOS above I'm primarily interested in an
authentic experience for this project, which is what's documented here.

A 3.5" floppy disk drive and at least one floppy diskette (two or more recommended) - It may be
possible to hack together a solution that will work from a bootable CD-ROM (see this Tech Support
Guy thread for details if you prefer to try that route), but MS-DOS is really only intended to be
installed from floppy diskettes.

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

MS-DOS 6.x installation media.  If possible, I suggest using or tracking down any original
installation media you may have had (in my case, I was able to pull the original MS-DOS 6.2
diskette images off of my Packard Bell recovery CD) or picking up a set on eBay - unless you want
a full boxed set, the media itself is quite cheap.  If you don't have access to any legit copies and
don't want to go the eBay route, you can find a copy online easily enough (I recommend the
WinWorld Software Library).  I don't generally condone piracy, but given this is twenty year old
software that's no longer commercially available, I see no harm at all here.
Patience, basic CLI experience, and a willingness to tinker - this process will take some time, and
you'll likely run into issues here and there that'll require some extra time/effort/thought to work out. 
Part of the experience here is the journey itself, so if you get immediately frustrated at any given
setback you will not enjoy this project.  Basic CLI experience is also expected; I hope to provide
enough guidance to get you through this project without the need for too much prior experience ,
but I have to assume you have at least a basic familiarity with the command line.

Tip:  I also recommend grabbing a copy of either Universal Extractor or 7-Zip if you're running Windows
on your main computer, or p7zip and LHa for UNIX if you're running Linux (both should be available in
your package management system).  You'll probably need/want to unpack some of the software and
drivers listed below on your main computer before copying it over to your new DOS system, and some
of these are packed in fairly obscure (for today) formats.  These applications should cover all the
software I tried to unpack, so having these tools available in advance will save some time and hassle.

Return to top

Preparation
Relevant Software:

RawWrite for Windows - Unless you have physical installation media, you'll need to write the floppy
disk images to real diskettes.  RawWrite is a simple way to do this in Windows.  Linux can do this
natively with dd (discussed below)

Floppy Diskette Creation


If you need to create the installation media:

Under Linux, use this command:  dd if=disk1.img of=/dev/fd0 bs=1024 conv=sync;


sync
Under Windows, use RawWrite and follow the directions to write the first disk
Repeat the process for all three installation disks (you may have a fourth disk as well; this contains
the optional Supplemental Utilities, and is not needed for initial installation; see below for additional
details)

You can get by with only one floppy diskette by writing the next disk image after the previous one
completes installation, but I highly recommend using at least two diskettes so that you can have a copy
of Disk 1 on hand at all times.  You'll likely need to boot from or otherwise use that disk a number of
times

Hard Disk Preparation


If you need/want to partition and/or format your hard drive:

1. Boot your computer using Disk 1


2. Press F3 at the MS-DOS Setup welcome screen to exit the installer
3. To repartition, run fdisk
1. Use option 3 to delete existing partitions, then option 1 to create new partitions
Note:  MS-DOS 6.x can only recognize FAT16 partitions, which are limited to 2
GB in size.
2. If necessary, use option 2 on your C: drive to flag the "boot" partition
3. You will be forced to reboot after making changes
4. To create (or reformat) a file system on your hard drive:
1. Run format /v:labelname /u /s c:
/v sets the disk volume label; this can be omitted

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

/u performs an unconditional format, which omits preserving certain recovery


information
/s copies DOS system files to the partition, allowing it to self-boot
2. Repeat the above command for any additional partitions, but omit /s
5. Run setup.exe to resume installation

Return to top

Installation
Relevant Software:

MS-DOS 6.22 Step-Up - free upgrade for all MS-DOS 6.x installations to 6.22; if you only have the
MS-DOS 6.0, 6.2, or 6.21 installation media (my copy is version 6.2), download this (local copy)
MS-DOS 6.22 Supplemental Utilities - optional additional utilities, drivers, and programs only
included with previous versions of MS-DOS; not required, but may be of some interest for the
curious (grab SUP622.EXE) (local copy)

Aside from possibly needing to FDISK and FORMAT your hard drive, the base MS-DOS installation is
actually quite simple:

1. If you haven't already done so, boot your computer using Disk 1
2. To begin setup, press Enter
3. If you already pre-formatted your installation disks as described above, the installer will warn
you about already having an existing version of DOS installed.  Choose to "Continue Setup
and replace your current version of DOS".
4. Set the options for date, time, country and keyboard layout as appropriate, then choose "The
settings are correct" to continue.
5. For the installation directory, I recommend choosing the default of c:\dos.  Press Enter to
continue.
6. Switch disks (twice) when prompted, and reboot to complete installation
After rebooting, you'll be in a fresh, and very basic, DOS environment.

Step-Up
If you installed either MS-DOS 6.0, 6.2, or 6.21, you may (optionally) upgrade to 6.22 using MS-DOS
6.22 Step-Up.  Since it's free, though, there really isn't a good reason to not upgrade.

The most annoying part of this process is just getting the Step-Up files to your DOS system.  It's larger
than a single floppy, and meant to be downloaded and run directly on the target computer, which is
difficult for a freshly installed version of MS-DOS.  To workaround, I suggest the following:

1. Download and unpack stepup.exe on your main computer


2. Manually create a floppy disk set as follows:
Disk 1:  setup.bat readme.now 1msdos62.exe
Disk 2:  2msdos62.exe
Disk 3:  3msdos62.exe
3. Create a backup directory on your DOS system to hold the Step-Up files (this is useful if you
want to reinstall DOS - you can the reinstall Step-Up without copying everything via diskettes
again):
1. mkdir c:\backup
2. mkdir c:\backup\stepup
Tip:  Even better, if you have the hard drive space, consider creating a D: drive as well; you
can use your D: as your backup and data partition, so that if you want to reinstall you can
simply blow away C: at any time but still have all your files, drivers, etc. already saved on D:
4. Copy the upgrade files from each diskette to your backup directory:  copy a:\*.*
c:\backup\stepup
5. Finally, copy your backup stepup directory to a temp directory that can be removed after the
upgrade is completed:

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

1. mkdir c:\stepup
2. copy c:\backup\stepup c:\stepup
To install/upgrade:

1. cd c:\stepup
2. Run setup.bat
3. Enter Y to agree to the EULA
4. Enter Y to verify that C: is your OS drive
5. At the Welcome screen, press F3 to exit
6. Run setup.exe /g
The setup process will ordinarily require that you create a set of uninstall floppy disks. 
This extra step bypasses that requirement
7. At the Welcome screen, press Enter
8. Press Enter to confirm system settings
9. Press Y to begin upgrade
10. Reboot when prompted, and confirm you're now running MS-DOS 6.22:  ver
11. You can safely remove the stepup files and old version of MS-DOS:
deltree /y c:\stepup
delolddos

MS-DOS 6.22 Supplemental Utilities


My copy of MS-DOS includes a fourth disk titled "MS-DOS 6.2 Supplemental Utilities," which can also
be obtained from the link above (grab the version for MS-DOS 6.22, named SUP622.EXE).  This disk is
not mandatory, and mostly just includes some extra features from previous versions of DOS that were
dropped for version 6.0.  If you don't want to bother with it you won't be missing out on much, but just to
be thorough let's take a look at how to install the more interesting stuff on here.

1. Insert the diskette and run a:\setup.bat c:\dos


2. Enter S to install selected components only
3. Choose Y or N as each component is listed.  The only options I find interesting are the
Additional MS-DOS Utilities and MS-DOS Shell, you enter Y for these if you feel so inclined.
4. When prompted for display type, enter F5 for VGA
5. Follow the rest of the prompts to complete the installation
Now, why bother with the Additional MS-DOS utilities?  One reason, and one reason alone:  QBasic
Nibbles!  I spent many hours playing this relatively simple but addictive Snake-like game as a kid, and
was delighted to discover it on the supplemental disk.  To try it yourself, just run qbasic.exe /run
c:\dos\nibbles.bas.

DOSSHELL, however, is a bit more substantial.  It's essentially a primitive Windows-like (or perhaps
more accurately, 'Windows Light') environment that runs on top of DOS and provides a GUI file
manager, file associations, a menu-driven task list, and even primitive pseudo-multitasking (called Task
Swapper here).  It's not something I'll care to use, but it's a pretty interesting idea that I was completely
unfamiliar with before this project, and it seems like it could be a reasonably powerful interface if a little
time is spent on configuring it just right (though, honestly, running Windows 3.x instead will provide far
more power and flexibility).  I'm not going to dive into this here as it's beyond the scope of "(mostly)
pure MS-DOS", but here are a couple tips if you want to play around with this:

You can run it in either text mode (default, /t) or GUI mode (/g).  Both interfaces are quite similar,
but GUI mode can be configured to run at a much higher resolution.  Try dosshell.exe /g:h2,
for example.
The program list in the bottom pane seems like the most interesting part to me.  In addition to
customizing it through the GUI, you can also edit dosshell.ini to tweak it to your heart's
content, using the default menu items as an example.  Like I said, if you're willing to invest a little
time in this, it could probably be tricked out pretty nicely.

Return to top

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

System Configuration
Relevant Software:

Enhanced DOSKEY.com - enhanced replacement of the stock DOSKEY utility that adds tab
completion to the DOS command line interpreter, in addition to command history support and other
useful features.
Pedit - enhanced replacement of the stock EDIT editor, which will be useful for editing the DOS
config files
Info-Zip UnZip - open source Zip file extraction utility you can use to unpack archives directly on
your DOS system (actually finding the correct file to download is far more difficult than it should be,
so here's a direct link); there are many other archiving utilities available for DOS, some with
support for a great number of formats, but this is easy to obtain and install and supports by far the
most common archive format used for DOS programs

Before installing anything else, we'll configure a basic sane working environment:

1. cd c:\
2. mkdir apps - contains personal installed applications
3. mkdir temp - temporary directory used by some applications
4. mkdir backup (if necessary) - contains copy of original setup files or drivers
5. path c:\apps;c:\dos - set our installed apps to take precedence over built-in apps
Next, I recommend installing a couple utilities that will make the rest of the setup process much easier. 
As with the step-up files above, getting the files to the system is still annoying at this point.  Until we get
networking setup later on, I recommend unpacking the programs on your main computer and copying
them over with floppies as the easiest option.  I also recommend saving a backup copy of all of your
installation media/files and drivers under c:\backup (or, preferably, d:\backup for easy access to it
at any later point.

Software Installation
Enhanced DOSKEY.com
1. Copy doskey.com to c:\apps
2. Run c:\apps\doskey.com -i to activate it.  Running doskey -? will show some
additional information about how to use it.

Pedit
1. Copy peditlgt.exe to c:\apps
Note:  This is the lightweight version of Pedit.  If you wish to have access to a spell
checker and thesaurus, copy the larger pedit.exe instead.
2. For convenience, move c:\apps\peditlgt.exe c:\apps\edit.exe.  This will let you
launch Pedit by simply typing edit, making it effectively replace the built-in DOS editor.
3. Configure Pedit by running edit, hitting Esc if prompted to open a file, and entering Alt-
F1.  I like the following non-default settings:
Editor Style - 2.0
Scroll Bar - dark on light (first pattern after 'none')
Text Color - 07
Background Color - 01
Show Char Under Cursor - enabled
Show Insert Mode - enabled
Tab Size - 4
Tab Expand Size - 4
F2 is File-Save - disabled
Alt Highlights Menu Choices - enabled
Save Changed Settings - enabled
Also Save Changed Margins - enabled

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

4. Hit Esc then Alt-X to exit and save the changes

UnZip
1. Copy unzip.exe to c:\apps
2. That's all that's necessary.  unzip32.exe is more flexible, but requires a separate DPMI
(DOS Protected Mode Interface) memory manager, which won't be covered here.  Other
included binaries simply provide extra functionality not required for Zip extraction.

Configuration
Now that we have a good editor and input processor installed, it's time to configure DOS itself.

Tip:  You will be repeatedly hand editing your system configuration files throughout this walkthrough,
and it's very possible at some point that you may be stuck with a system that won't boot properly.  To
recover, hit F5 when DOS starts booting (when it says "Starting MS-DOS...", usually immediately after
your system beeps to indicate it has completed it's POST process).  This will perform a clean boot of
the system, ignoring your autoexec.bat and config.sys files.  You can then edit them as
appropriate to fix the problem, and reboot to load everything again.

To get started, edit c:\autoexec.bat and add/change the following (other settings should be left
alone for now):

loadhigh c:\dos\smartdrv.exe
loadhigh c:\apps\doskey.com -i
path c:\apps;c:\dos;c:\dos\net
set DIRCMD=/o:gne
set TEMP=c:\temp

Note:  Most DOS commands and options are not case-sensitive.  While most of the text in the stock
autoexec.bat file is capitalized, I tend to convert it to lowercase just because I find it easier on the eyes. 
My personal naming convention, used throughout this document, is pretty simple: variables are fully
capitalized, and almost everything else is lowercase.  Feel free to leave everything uppercase if that
works for you, though.

SmartDrive is "a disk caching program ... that improves data transfer rates by storing frequently
accessed data in RAM" (per Wikipedia), and is enabled by default in DOS.  Some versions of DOS
include the /x argument by default, which disabled write-behind caching; if you see this, remove it. 
Unless you're running on a known bad hard disk or expect to have frequent power failures (in which
case, you should really fix those problems instead), /x won't be needed and only slows down disk
writes.

LOADHIGH will load the specified program (when possible) into upper memory, freeing up the all
important conventional memory for other applications.  This requires that EMM386 also be enabled, as
shown below.  The PATH setting specifies c:\apps first so that our installed applications always take
precedence over the OS programs (allowing Pedit to be easily used instead of EDIT, for example).  The
c:\dos\net directory doesn't exist yet, but will shortly.

Finally, the DIRCMD variable instructs the DIR command to display files sorted first by name, then by
extension, with directories always listed first (by default, it lists files sorted by date).  I also modified
TEMP, pointing it to c:\temp to make it more general purpose; ie., anything can write to this directory
without worrying about possibly overwriting DOS files.

Next, edit c:\config.sys and add/change the following (again, other settings should be left alone for
now):

SWITCHES=/f
DEVICE=c:\dos\himem.sys /testmem:off
DEVICEHIGH=c:\dos\emm386.exe ram i=b000-b7ff
DOS=high,umb
BREAK=on
rem DEVICEHIGH=c:\dos\setver.exe

The /f option to SWITCHES instructs DOS to skip a two second waiting period when booting so that
your system will boot a little faster.  Note that this shortens the amount of time you have to press F5 if
you need to clean boot your system, but it's still possible if you're fast, or you hold down F5 right before
DOS starts loading (which is what I do).

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

HIMEM.SYS is MS-DOS' extended memory manager, allowing the OS and applications to use more
than the first 640 KB of available memory (RAM).  The /testmem:off option instructs HIMEM to not
test your RAM on every boot, saving some time in the boot process.

EMM386 is DOS' expanded memory manager and, which (also) allows access to memory over 1 MB. 
Although this does roughly the same thing as HIMEM.SYS, EMM386 is required in order to load
programs and drivers into upper/high memory (the area between 640 KB and 1 MB), so it's generally a
good idea to load both.  ram instructs EMM386 to allocate RAM as EMS (expanded memory - an older
version of upper memory management that was superseded by XMS (extended memory)).  noems can
alternatively be used instead to disable expanded memory emulation in order to free up a little extra
memory, but many older applications and games (including some discussed here) will only use EMS,
so unless you have a specific need I recommend using the ram option to enable EMS.  I discuss this a
bit more in the Addendum below.  The i=b000-b7ff option frees up a small amount of additional
memory that is ordinarily reserved for monochrome monitors.

The umb portion of the DOS option instructions MS-DOS to manage the upper memory blocks created
by EMM386 (so LOADHIGH and DEVICEHIGH will work), and high causes it to attempt to load part of
itself into high memory when possible.  DEVICEHIGH, like LOADHIGH, instructs the specific program or
driver to load itself into high memory.  Finally, BREAK enables the use of Ctrl-C for breaking out of
misbehaving programs.

I commented out SETVER as it generally shouldn't be needed.  Unless you plan on running particularly
old (even by MS-DOS 6.x standards) software or drives, you can leave this disabled to free up some
space.  If you get any errors about a program not supporting this DOS version, uncomment this line and
see Microsoft's Knowledge Base article on Using the SETVER command.  You can also refer to
Microsoft's list of applications that require SETVER

I recommend rebooting at this point to let the new configuration take effect.  Run mem /c /p after
rebooting to verify that high memory is being utilized; at least some programs should be listed in the
Upper Memory column.

Return to top

Network Configuration
Relevant Software:

Microsoft Network Client 3.0 for MS-DOS - this is pretty self-descriptive; will be used if you want to
map shared drives on a Samba or Windows server (local copy: disk 1, 2)
NDIS Packet Driver Shim 1.11 - this is necessary if you want to use both Microsoft and non-
Microsoft networking utilities on the same system; specifically, you'll need dis_pkt.zip
WATTCP - old TCP/IP stack for DOS; this is actually embedded in the applications using it, so the
package here is mostly useful for diagnostic applications and documentation.  Get wat2002b.zip.
mTCP - modern TCP/IP stack for DOS; this works similarly to WATTCP, but supports
different/additional applications that are bundled with it (including FTP and NTP clients)
SSH2DOS - DOS versions of SSHv2 client applications, including ssh, scp, and sftp
wget - DOS version wget, "the non-interactive network downloaded" (if you're not familiar with it, it
makes download files from remote http and ftp servers very easy in CLI environments)
XFS Network File System Client 1.91 - NFS client for DOS; this was a commercial program, but
has long since been abandoned so I don't have any qualms about telling you to download it (local
copy)

NIC Drivers (you'll need to grab drivers for your specific NIC; these drivers cover my system, and will be
used for the walkthrough):

3Com EtherLink 10/100 PCI 3C905C - 3Com NIC drivers; 3c90x2 (EtherCD Disk 2) from the link
contains the DOS drivers (local copy)
3Com EtherLink 10 ISA 3C509B - 3Com NIC driver; this can no longer be obtained from any
official site, so the FTP mirror linked here is the best current option (I've verified against multiple
sources that it's a copy of the original EtherDisk 6.1 release).  3c509x2.exe (EtherDisk Disk 2)
contains the DOS drivers (local copy).  Crynwr provides an alternative packet driver that's half the
size (3 KB vs. 6 KB) and seems to perform just as well as the official driver (grab 3c509116.zip).  If

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

you're only interested in packet driver applications, this is a nice option.


Kingston EtheRx KNE20T - Kingston NIC driver; this can no longer be obtained from any official
site, so the website linked here is the best current option (I've verified against multiple sources that
it's a copy of the original QStart 1.2 release) (local copy).

Network Options
Now it's time to (finally) configure networking.  Getting this up and running is extremely helpful because
it largely eliminates the need for floppy disks.  Unfortunately, networking under DOS is... primitive.  It
can be done, but it's somewhat limited, slow, and painful to install due to multiple driver and network
protocols.  So, get ready for some fun!

The first decision to make is to decide what kind of networking support you want installed.  In brief,
there are two types of drivers we're going to install:

NDIS - the newer device driver interface co-developed by Microsoft, with somewhat more features and
capabilities at the expense of more bugs and significantly more memory usage.  This is required for
Microsoft networking utilities, including support for drive mapping.

Packet Driver (PD) - the older, open device driver interface used by pretty much everything before
NDIS.  Most non-Microsoft network utilities require a packet driver interface and will not work with only
NDIS installed.

Fortunately, this isn't a one-or-the-other choice; it's possible to install support for both with some extra
work.  If you only need one or the other, though, save yourself the hassle and go with that one.  I'm
going to walk through installing both below, and point out what you should do differently if you only
want to install one of the drivers.

Note:  Installation order differs depending on whether you want only PD support, only NDIS support, or
both.  Also, while the PD option may sound more limited than NDIS, it's really not.  You can get it setup
much faster, it's more efficient, generally more reliable, and much more widely supported, and among
the various utilities that use it are DOS versions of SSH, SCP, SFTP, and even an NFS client.  The
SSH utilities will let you easily and securely copy files from another system without messing with NDIS
or enabling DOS support in Samba (which is not enabled by default), and NFS will let you mount an
NFS share as a DOS drive letter, very similar to mapped drives.  For the full experience it's worth
setting up NDIS (it can be cleanly disabled if you decide it's not worth it), but if you just want to get up
and running as quickly is possible, the PD-only option should suffice, and is all I use on my system
after experimenting with all of this.

NIC Drivers
Both NDIS and (native) PD require hardware drivers for your NIC.  In my case, I'm using a 3Com
3C905C, which is a Plug and Play PCI NIC with a relatively easy configuration.  If you're using an ISA
NIC, there may be more steps involved for specifying the number, I/O address, etc.  Download the
appropriate driver package for your NIC and consult the documentation for details.

Edit:  Due to various circumstances I've also setup a Kingston KNE20T and a 3Com 3C509B in this
system, so instructions for all three NICs are included below.

The following files are required for DOS networking for each of the listed NICs:

3Com 3C905C
ndis2\dos\el90x.dos - NDIS2 driver
ndis2\dos\oemsetup.inf - NDIS2 configuration file for Microsoft Network Client
pktdvr\3c90xpd.com - Packet Driver
3Com 3C509B
ndis2\dos\elnk3.dos - NDIS2 driver
ndis2\dos\oemsetup.inf - NDIS2 configuration file for Microsoft Network Client
pktdvr\3c5x9pd.com - Packet Driver
3c509.com - Alternative Crynwr Packet Driver; recommended
Kingston KNE20T
ndis2\ktc20.dos - NDIS2 driver
ndis2\lanservr.dos\oemsetup.inf - NDIS2 configuration file for Microsoft Network Client

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

pktdvr\ktc20pkt.com - Packet Driver

Note:  For the Kingston KNE20T, the listed files are included in pnpdata1.exe.  This file can be
manually unpacked, but it's probably easiest to use QStart to unpack them for you:

1. Run qstart.exe
2. Set the appropriate Plug and Play mode (this will depend on what your computer's BIOS can
support) and click choose Continue
3. Select Custom
4. Use one of the Config. options if you'd like to verify your configuration, then click Continue
5. Select Basic Test if, again, you want to verify your configuration, then choose Driver
Installation when ready
6. Select "IBM LAN Server ver. 4.0 DOS LAN Services / NDIS 2" or "Packet Driver", choose a
reasonable Destination Directory, and choose Copy
7. Choose Exit to complete driver extraction.  If you made configuration changes (especially for
the PnP mode), you may want to restart to ensure those changes take effect.

Packet Driver Only


If you only want to install the PD interface, copy the packet driver to c:\dos.  Edit c:\autoexec.bat
and add the following (note:  the /I for the 3C905C is case sensitive):

3Com 3C905C
loadhigh c:\dos\3c90xpd.com /I=0x60
3Com 3C509B
Official: 
loadhigh c:\dos\3c5x9pd.com 0x60
Alternative: 
loadhigh c:\dos\3c509.com -p 0x60
Kingston KNE20T
loadhigh c:\dos\ktc20pkt.com 0x60

The 0x60 option for each specifies the software interrupt; 0x60 is the default, and there shouldn't be a
reason to change it unless you're using multiple NICs.  This is optional on some cards (such as the
3C905C), but it doesn't hurt to be explicit, and it's required if you want to unload the driver later (with
/u, where supported).

Run the above command now to manually load the driver; assuming you have an ethernet cable
plugged in, it should automatically detect the connection.  If all you need is a PD interface, skip to the
Packet Driver Configuration section.

NDIS Driver
NDIS driver installation is quite a bit more involved.  It can be installed manually like the PD, but instead
we're going to let installation and configuration be handled by Microsoft Network Client 3.0 for MS-DOS
(MS-Client).  MS-Client, as the name implies, is a multi-protocol stack for MS-DOS, requiring the use of
an NDIS driver to talk to network hardware.

To prepare for setup, copy both MS-Client disks to your hard drive (as noted above, I recommend
keeping a copy in c:\backup as well - last time I'll mention this).  Running each EXE file will unpack
them to the current directory if you didn't unpack them before hand.  If prompted, it's safe to overwrite
any files as a few exist on both disks (assuming you copied the MS-Client disks to their own directory).;
Copy your NIC's NDIS driver and configuration file (noted above) to your hard drive as well; place both
in the same directory (if necessary) and note the location.

Note:  If you are using a 3c90x card, you must edit oemsetup.inf before proceeding with MS-Client
installation.  Comment out (or delete) the following lines and save the file:

ndis3=1:el90x.386
mlid=1:3c90x.com

To begin MS-Client installation, run setup.exe from Disk 1.

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

1. Press Enter to skip the Welcome screen


2. Specify c:\dos\net for the installation directory (since these are DOS-specific drivers)
3. For network adapter selection, you can choose the driver that's appropriate for your hardware
if listed.  However, you can almost certainly find a newer driver than what's included with MS-
Client, so I recommend choosing "Network adapter not shown on the list below" to use use
your downloaded driver instead.
4. Enter the directory path containing your NDIS2 driver configuration file
5. Confirm the chosen driver when prompted
6. Unless your system is extremely short on RAM, I recommend letting MS-Client optimize itself
for performance, so press Enter to continue.
7. Enter the username you will use to login to this computer (this is primarily for authenticating
against server shares to map drives)
8. Choose Change Names
9. Edit your hostname, workgroup, and domain name as appropriate.
10. Select "The listed names are correct" to return
11. Choose Change Setup Options
12. Select Change Redir Options
13. I recommend using the Basic Redirector if possible to save memory.  The only reason you
should need to use the Full Redirector is if you plan on authenticating against an NT domain
controller.
14. I recommend leaving the Start Options set to "Run Network Client".  The Load Pop-up option
is only useful if you plan on communicating with other LAN systems using the old netbios
messenger service (aka NET SEND, WinPopup, etc.).  You can also choose to not run the
network client automatically, but we can disable MS-Client from autostarting at any time after
installation, so it's easier to let MS-Client configure the startup options itself.
15. Logon Validation and Net Pop Hot Key should be left alone.  They can be changed later if
desired.
16. Select "The listed options are correct" to return
17. Choose Change Network Configuration
18. This option window is a bit difficult to work with.  Press tab to switch to the top pane to choose
the adapter/protocol you want to modify, then tab back down to the bottom pane and choose
the appropriate action.  Select your NIC and choose Change Settings first to review and
update any settings as necessary.  You generally should not need to modify this unless you
have more than one NIC.
19. Select NWLink IPX Compatible Transport and choose Remove - IPX is (generally) no longer
used today.
20. When prompted for a new protocol, choose Microsoft TCP/IP - this is what's in common use
today
21. Select Microsoft TCP/IP and choose Change Settings
22. If necessary, IP address and network settings can be specified here.  By default it's
configured for DHCP, so if you're on a DHCP network you can skip this step and return to to
Network Configuration.
23. If you plan to communicate with other ancient DOS or Windows systems (pre-Windows 95),
you might want to also install and configure Microsoft NetBEUI.  This generally shouldn't be
needed, though.  All reasonably modern server operating systems, including Samba, support
NetBIOS over TCP/IP (NBT).  NetBEUI itself is not required for NetBIOS communication.
24. When finished, select "Network configuration is correct" to return
25. Return to main configuration menu, and choose "The listed options are correct" to continue
installation
26. When prompted for the OEM Driver Disk, specify the path to MS-Client Disk 2, or just press
Enter if all files were copied to a common directory
27. Press F3 to exit setup without rebooting
A bug in the MS-Client installer prevents a file necessary for Windows 3.1x support from being
installed.  This isn't necessary if running solely under DOS, but it doesn't hurt in anyway, so let's install it
just to be safe.  To do so, from the msclient setup directory run:  expand disk2\wsahdapp.ex_
c:\dos\net\wsahdapp.exe

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

If you run into any other trouble, or have questions about some of the options, official MS-Client setup
documentation is still available from Microsoft.

MS-Client updated your system configuration files during setup, so let's review those changes and
make a couple changes.  First, edit config.sys and change the following:

DEVICEHIGH=c:\dos\net\ifshlp.sys

IFSHLP is the installable file system helper, and provides access to file and network APIs used by the
MS-Client utilities.

Next, edit autoexec.bat and change:

loadhigh c:\dos\net\tcptsr.exe
loadhigh c:\dos\net\tinyrfc.exe
loadhigh c:\dos\net\emsbfr.exe

These are some of the various network services installed by MS-Client.  We're requesting that they load
themselves into high memory.  Note that the lines containing the net command, *.com, and nmtsr.exe
are NOT set to load in high memory; this is necessary, as these services must be run from conventional
memory.

Note:  If you get the error "Insufficient memory to load Tiny RFC 1.0" on boot (or a similar error from one
of the other services), remove loadhigh from the front of that line as well.  This indicates you've run
out of upper memory, and MS-Client isn't smart enough to load itself into conventional memory instead.

Reboot load the network drivers.

After rebooting, MS-Client should initialize your network card, grab an IP address from DHCP (if
enabled), then prompt you to enter a username.  This is only required if you plan on mapping shared
drives, and can be disabled if you do not wish to auto-mount drives at login.  If you do plan to mount
shared drives, go ahead and enter your username now (or just press Enter to accept what you
specified during MS-Client setup), then enter the password for your account.  If you do not plan to
mount shared drives, press Enter, then press Enter again to setup a NULL password.  In either case,
choose Y to create a password list when prompted.

At this point, Microsoft's TCP/IP stack should be (mostly) up and running, using the NDIS driver.  We
can perform a few tests to confirm, but note that the utilities described below, though named the same
as modern utilities, work differently than what you're probably used to (again, think "primitive").

First, verify that you have an IP address:

ipconfig c:\dos\net

This should have been provided by DHCP, or should match the manual one you specified during MS-
Client setup.  Next, make sure you can ping your own IP, eg.:

ping 192.168.0.15

The bottom line should say "echo received".  Finally, make sure you can ping your gateway's IP address
(this can be found in the ipconfig output):

ping 192.168.0.1

Again, the bottom line should say "echo received".  If all that worked, congrats, you're up and running!

However, there's one more major issue we need to take care of.  Due to another bug in MS-Client,
DNS does not work by default, nor is it possible to configure or enable it through the setup utility; this
must be done manually.

To enable DNS, first edit c:\dos\net\tcputils.ini and append the following:

[dnr]
drivername=DNR$
bindings=TCPIP_XIF

If you are not using DHCP, also add the following below the bindings line:

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

nameserver0=aaa bbb ccc ddd


nameserver1=aaa bbb ccc eee
domain=domain.com

Substitute the appropriate values for your network, and be sure to separate the octets with spaces (as
shown above) rather than periods as would be done on modern systems.

Next, edit autoexec.bat and add the following line immediately above "net start":

loadhigh c:\dos\net\dnr.exe

Finally, run the above command now to start the Microsoft domain name resolver.  The implements
DNS functionality in MS-Client.  You can verify DNS is working properly with ping again:

ping www.google.com

As before, you should get an "echo received", along with the IP address for www.google.com.

All of this work will now let us (finally) do something very important:  map shared network drives.  This is
especially useful as we can use this to easily copy files and install new applications and drivers without
floppy disks.

To map a drive, assuming you already have a shared drive properly configured in Samba or a Windows
server (which is outside the scope of this HOWTO), run:

net use e: \\servername\sharename

Again, assuming everything has been properly setup on the server, and that you logged in with proper
credentials, this should just work; you'll get a "command completed successfully" message if it did.  To
test, try running dir e: and verify that you get output.  If it doesn't as expected, and you followed all
instructions above, the error is most likely on the server side.  As noted, modern versions of both
Samba and Windows no longer support DOS or Windows 3.x clients by default, and have to be run in a
more insecure mode to make this work.  I've had mixed results myself - on my initial testing with MS-
Client (about three years ago), I was able to get this working perfectly with Samba; this time, however, I
can't.  If you have trouble with this, don't worry - SCP, SFTP, and NFS all work perfectly well for
copying files using the PD interface, and are described in detail below.

NDIS Packet Driver Shim


The final bit of network setup we're going to do for the NDIS driver is installing a "shim" packet driver. 
The shim driver basically adds a PD interface to the NDIS driver.  This is necessary if you want to use
both Microsoft (including mapped drives) and non-Microsoft network utilities on the system (which is
highly recommended).

Note that this shim driver is meant specifically for this purpose; it cannot drive your NIC directly without
the NDIS driver, nor can your NIC's packet driver be used as a shim.  Also, while the driver itself works
great, the whole concept is a hack and as a result requires a manual and rather complicated setup
process.

To begin, copy dis_pkt.dos to c:\dos\net.  Next, edit c:\dos\net\protocol.ini and append


the following:

[pktdrv]
DriverName=PKTDRV$
BINDINGS=TCM$EL90X
INTVEC=0x60
CHAINVEC=0x68

The BINDINGS line needs to be modified for your hardware; everything else (should) be able to stay
the same.  The BINDINGS line informs the packet driver of which NDIS driver it must bind to.  To find
this, search for the [TCPIP] section in protocol.ini; it should also contain a BINDINGS line.  Use
the same driver name for the BINDINGS line under [pktdrv].

Save your changes to protocol.ini and edit config.sys next.  Add the following after "ifshlp.sys":

DEVICEHIGH=c:\dos\net\protman.dos /i:c:\dos\net
DEVICEHIGH=c:\dos\net\nemm.dos
DEVICEHIGH=c:\dos\net\tcpdrv.dos
DEVICEHIGH=c:\dos\net\el90x.dos
DEVICEHIGH=c:\dos\net\dis_pkt.dos

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

Although it looks like you're adding a lot here, you're only going to be loading one new driver; the
dis_pkt.dos driver you just copied over.  Everything else was already being loaded automatically by
MS-Client, but due to some dependency issues you need to load them before dis_pkt, which in turn
needs to be loaded before MS-Client.

Two additional notes:

1. The el90x.dos line refers to the NDIS driver for my hardware, a 3com 3C905C.  You must
change this to point to the NDIS driver for your hardware.
2. Order is important:  be sure to leave the lines in the order I have listed above.
We also need to edit autoexec.bat and change the following:

rem c:\dos\net\net initialize

net initialize loads all of the required drivers for MS-Client, which you're now doing manually
through config.sys.  As a result, this command is no longer needed, and will in fact cause errors if
you try to run it with the other drivers already loaded.

This is also a good time to decide whether or not you want to automatically map shared drives on boot. 
If you do not plan on using shared drives, or you prefer to map them manually each time they're needed
(which can be done by simply running net start), comment out the following line to save a fair
amount of conventional memory:

rem c:\dos\net\net start

Finally, reboot to load the new driver.  You should see the following message during the boot process
to confirm the shim driver was loaded:

MAC/DIS to Packet Driver convert loaded.

Packet Driver Configuration


Whether you installed the native PD or the NDIS PD shim, you won't be able to test network
functionality using currently available utilities.  The PD only provides an interface to your network card;
each application using this interface must provide it's own network stack to talk TCP/IP, provide an IP
address, etc.  Most older applications do this by using the Waterloo TCP/IP stack (WATTCP), which can
be embedded into the application and provides all necessary network functionality.  A much newer
TCP/IP stack called mTCP works similarly, and includes some additional utilities not (well) supported by
WATTCP.  Fortunately, both stacks can installed and enabled simultaneously, so we'll setup both.

WATTCP
To configure WATTCP, create c:\apps\wattcp.cfg and add the following:

print = "Configuring WATTCP..."


hostname = <hostname>
my_ip = dhcp

If you use a static IP, remove the dhcp line above and add the following:

domain.suffix = localdomain
my_ip = 0.0.0.0
netmask = 255.255.255.0
nameserver = 0.0.0.0
nameserver = 0.0.0.0
gateway = 0.0.0.0

Edit the values as appropriate, then save and close the file.  Finally, add the following line to
autoexec.bat:

set WATTCP.CFG=c:\apps

Run the above command now to manually set the configuration variable.  Next, let's install a couple
diagnostic utilities.  Copy tcpinfo.exe and ping.exe from the WATTCP archive to c:\apps (I
suggest renaming ping to something like pingw.exe to avoid conflicting with the Microsoft or mTCP
version of ping).

To test our WATTCP configuration run tcpinfo.exe.  The top line should state, "Reading Waterloo

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

TCP configuration file," which indicates that it was able to find your config file.  The network parameters
output by tcpinfo should either match your static configuration, or should be appropriate for your DHCP
network.  To test, try the following:

pingw www.google.com

If you see "Replies lost: 0", everything's working.

mTCP
mTCP works, and is configured, very similarly to WATTCP.  You'll need to create another config file,
c:\apps\mtcp.cfg, and add:

packetint 0x60
hostname <hostname>

If you use a static IP, also add:

ipaddr 0.0.0.0
netmask 255.255.255.0
gateway 0.0.0.0
nameserver 0.0.0.0
mtu 1500

Edit the values as appropriate, then save and close the file.  Finally, add the following to
autoexec.bat:

set MTCPCFG=c:\apps\mtcp.cfg
c:\apps\dhcp.exe

The only practical difference between mTCP and WATTCP (from and end-user's perspective) is that
mTCP provides a separate DHCP client, whereas WATTCP applications do this themselves.  If you are
using a static address you can skip the dhcp line in autoexec.bat.  Run those autoexec.bat line(s)
now to initialize mTCP.

To test, copy ping.exe to c:\apps (again I recommend renaming it to something like pingm.exe to
avoid conflicts) and run:

pingm www.google.com
If you see a "Success: 100 %" message, everything's working.

Network Applications
It's time install a few essential network applications.  Quite a few exist, but these are the ones I find
most useful.

SSH
I primarily run Linux systems, so SSH is very important to me.  As a bonus, SCP and SFTP provide
great options for transferring files across the network, and is especially useful when NDIS/MS-Client is
not setup or mapped drives do not work properly with modern Samba or Windows servers.  Fortunately,
there's an excellent SSHv2 implementation for DOS called, simply enough, SSH2DOS.  It can be
downloaded from the link above.

Installation is pretty simple; just copy and rename the following files as suggested:

copy scp2d386.exe c:\apps\scp.exe


copy sftpd386.exe c:\apps\sftp.exe
copy ssh2d386.exe c:\apps\ssh.exe

SSH2DOS is a WATTCP-based application, so it requires a PD interface and a working wattcp.cfg


file.  If you setup both of these as instructed earlier, you're already good to go.  Run ssh username
servername to verify SSH works as well.

SSH2DOS also includes a thoroughly commented example WATTCP configuration file.  If you're having
any trouble with your WATTCP apps, or you want to poke around to see what other options are
available, take a look at the included wattcp.cfg.  If you decide to edit and use this version of the file,
you can either replace the existing wattcp.cfg in c:\dos, or point the WATTTCP.CFG variable in
autoexec.bat to the new location (but don't forget to update that variable as well, or reboot, or your
apps will continue to use the old configuration file).

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

wget
wget is another useful utility.  This is a command line download manager that can download files from
pretty much any web or FTP server and, happily, there's a DOS version available from the link above
(though the DOS version is no longer maintained at this point).

Installation is the same as SSH2DOS; copy bin\wget.exe c:\apps and you're done.  This is
another WATTCP-based application, so it should just work at this point.

NTP, FTP, TELNET


Now let's install some mTCP applications.  These are all bundled with the mTCP distribution, so just
copy the following files to c:\apps:  ftp.exe, sntp.exe, telnet.exe

Each of these will utilize your mTCP configuration file so you can go ahead and use them directly.  FTP
and TELNET should be fairly self-explanatory and work how you'd expect, with FTP being especially
useful if you run Windows on your main machine and don't have SSH available.  The utility I'm most
interested in here, though, is SNTP, a simple Network Time Protocol client.  You can use this to
automatically set your computer's clock to the correct current time, which is very handy on ancient
computer hardware with bad CMOS batteries.  :-)  To test this, run the following:

set TZ=CST6CDT
sntp.exe pool.ntp.org

Note:  TZ stands for time zone, and is required so that SNTP knows the correct 'local' time.  CST6CDT
is the code for the Central Standard Time zone; see sntp.txt for additional information about how to
set this.

After running the above, you should see your current system time as well as the current NTP server
time (listed as "Time should be set to").  To actually set the time, use the -set parameter.  To always
set your system clock to the appropriate time on boot (strongly recommended), add the above, with -
set to autoexec.bat.

Bonus tip:  once you get the mTCP utilities installed, try running telnet towel.blinkenlights.nl
for an unexpected treat.  :-)

Note:  There are several additional applications/utilities included with both WATTCP and mTCP, but the
above are the ones I personally find most useful.  Feel free to play around with the others, though.

XFS (NFS client)


If you run an NFS server instead of (or in addition to) an SMB/CIFS server, you'll be happy to know that
it is possible to mount an NFS share from DOS.  The bad news is that you lose the ability to
concurrently use many (but apparently not all) other PD-based applications.  The reason is that XFS
installs it's own driver literally on top of your packet driver, which conflicts with most other PD
applications.  wget (for whatever reason) still works with the XFS driver loaded, but none of the other
WATTCP- nor mTCP-based utilities can use it.

If you only otherwise use NDIS-based applications, this is not an issue.  If you only use PD-based
applications, theoretically you should be able to get them to work with the XFS driver loaded by
configuring them to use interrupt vector 0x62 instead of 0x60 (search for "redirected PKTDRVR" in
xfs.txt), but I could not get that to work.  See the end of this section for an alternative approach that
you can use instead.  If you need to use both NDIS- and PD-based applications, you're pretty much out
of luck; you need to choose one or the other at this point (or, of course, not use NFS).

So here's the deal with NFS under DOS:  there's an old version of NFS for DOS called XFS Network
File System Client.  It was a commercial program, but as noted above it's long since been abandoned,
so grab a copy if you're so inclined and let's get to work.

Note:  Before installing, take a look at kernels.txt, which describes the different kernel drivers
available.  I use the minimal kernel, XFSKRNLM, because that meets my needs and takes up the least
amount of memory, but your needs may vary.

Installation is a bit tricky:

1. Copy the following files to to c:\apps:

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

xfskrnlm.exe
hosts
ls.exe
xfstool.exe

The rest of the executables can be useful for troubleshooting NFS connections, but shouldn't
be required for routine use.  I also recommend renaming ls.exe to lsx.exe to avoid
conflicting with the 4DOS alias for ls (defined below).
2. Edit hosts, comment out everything currently in there, then define your NFS server as:
aaa.bbb.ccc.ddd nfsserver.domain.com nfsserver

3. If you're using a static IP address, add the following to hosts, where nfsclient is the
name of your DOS system and the IP information applies to your network configuration:
aaa.bbb.ccc.eee gateway
aaa.bbb.ccc.ggg netmask
aaa.bbb.ccc.fff broadcast
aaa.bbb.ccc.ggg nfsclient.domain.com nfsclient

4. If you're using NDIS, copy dis_pkt9.tcp to c:\dos\net and edit config.sys. 


Add/change the following:
rem DEVICEHIGH=c:\dos\net\dis_pkt.dos
DEVICEHIGH=c:\dos\net\dis_pkt9.tcp

Note that this disables the old packet driver and loads the new one provided by XFS.  Reboot
here if using NDIS before continuing.
5. Run the following command to initialize the kernel:
loadhigh c:\apps\xfskrnlm.exe 0x60

6. Run the following to initialize the driver:


If using BOOTP (a predecessor to DHCP; many DHCP servers can also support
BOOTP, but may require special configuration):
xfstool init bootp

or, if using a static address (nfsclient must be defined as described above):


xfstool init nfsclient

7. Finally, try to mount a share:


xfstool mount f: nfsserver:/home/data/files

Note that XFS requires a local hostname to be set.  If you're using a static IP address, this should be
taken care of.  If you're using BOOTP, your DHCP server has to be configured to supply a hostname in
addition to an IP address to your system.  If XFSTOOL complains about a hostname not being set, this
is probably what's happening.  The easiest workaround would is to configure a static IP address for
XFS, as described above.

If everything worked, you should be able to do run dir f: and see a list of files on your NFS server. 
Switch to F: and run ls (or lsx) to see the long file names.  If using NDIS, I also recommend testing
an NDIS application to ensure the shim driver is working properly.  ping hostname should do the
trick, but a more thorough test would be to map a shared drive, eg., with net start.

If you want to automount any NFS shares on boot, add the three XFSKRNL, INIT, and MOUNT
commands shown above to autoexec.bat.  Be sure it's added after any other PD applications
included in autoexec.bat, such as mTCP's DHCP client, or the other applications will fail for the
reasons listed above.

As mentioned previously, it's not possible to (reliably) use XFS with other PD applications.  However,
XFS provides the ability to temporarily unload and then reload it's PD shim as needed, so you can
leverage this to run other PD applications without completely tearing down NFS support or rebooting. 
As an example of how to do this, say you want to SSH to another system while you have an NFS
share mounted; you can do this by calling the following additional commands before and after SSH:

xfstool pktdrv stop


ssh username hostname
xfstool pktdrv restart

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

While in the "stopped" state, your mounted shares will still exist but will not be accessible.  Issuing the
restart will make them available again.  It's not ideal, but it's a fairly reasonable compromise, and can be
made less annoying by using a 4DOS alias to simplify that much more (see the 4DOS section below).

Return to top

Device Configuration
Relevant Software and Drivers:

Toshiba ATAPI CD/DVD-ROM Driver - generic ATAPI E-IDE CD-ROM driver for DOS;
unfortunately, this is packed in a self-extracting Windows binary using the LHA format, so you'll
have to extract the files on your main system before copying it over to DOS (local copy)
CuteMouse - modern mouse driver for DOS
Creative Labs Sound Blaster AWE64 - Sound Blaster AWE64 sound card drivers; you'll need (at
least) "Sound Blaster 16/SB32/AWE32 Basic Disk for DOS/Windows 3.1 Installation" and "Creative
PnP Configuration Manager (Rev 4)"

Whew, now that we're finally finished with networking, everything else should be a breeze in
comparison.  :-)  Since we now have an easy way to transfer files to our DOS system, it's time to install
our remaining drivers and applications.  Let's start with the CD-ROM drive.

CD-ROM Driver
Microsoft does not include a CD-ROM driver by default with DOS, and it's difficult (if not impossible) to
get a DOS CD-ROM driver from manufacturers today.  Fortunately, though, a few generic CD-ROM
drivers exist that should cover most standard IDE/ATAPI CD/DVD-ROM drives.

The most widely compatible and widely used MS-DOS CD-ROM drivers are probably from Oak
Technologies and Gold Star, both available from the Computer Hope hardware downloads page. 
Unfortunately, both are memory hogs; the Gold Star driver consumes 25 KB, while the Oak driver
consumes a whopping 35 KB.  As an alternative I recommend the Toshiba driver linked above.  This
driver should offer roughly the same compatibility and capabilities, but only uses a svelte 7 KB of
memory.

Acer's ATAPI CD-ROM driver (search for VIDE-CDD.SYS v2.15 on the linked page) is another option
that uses only 5 KB, as is the modern UDVD2 driver for the FreeDOS project which uses, I think, less
than 1 KB.  Unfortunately, the UDVD2 driver doesn't behave well on a physical MS-DOS system, and I
had some reliability issues with VIDE-CDD.SYS while installing and testing some classic games, so I'd
recommend sticking with Toshiba's CDROMDRV.SYS driver.

To install the driver, copy cdromdrv.sys to c:\dos.  Then, edit config.sys and add:

DEVICEHIGH=c:\dos\cdromdrv.sys /d:mscd001

The /d option sets a device name to be used by MSCDEX; you can set anything you want here, but
mscd001 is the standard name and there's no real benefit to changing it.  Next, edit autoexec.bat
and add:

loadhigh c:\dos\mscdex.exe /d:mscd001

MSCDEX acts as an interface for DOS to communicate with the CD-ROM driver and, in turn, the
device itself.  Reboot to load the new driver.  If both the driver and MSCDEX were loaded properly,
you'll see the following message in the output while the system is booting:

Drive D: = Driver MSCD001 unit 0

Try inserting a CD-ROM and entering dir d: to verify MSCDEX was able to see it as well.

Mouse Driver
Next we'll install a mouse driver.  This is optional, as DOS itself doesn't utilize mice, only the
applications programmed to support them (such as Pedit).  So, unless you plan on running an
application or game that uses a mouse, you can skip this.

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

As with CD-ROM support, MS-DOS doesn't include a mouse driver by default.  And again like CD-ROM
support, we have a couple options to choose from.  The first option is to use the original mouse driver
provided by Microsoft with Windows 3.x.  This is called MOUSE.COM, and can again be downloaded
from the Computer Hope hardware downloads page.  The second option is a much newer, open source
mouse driver called CuteMouse.  It's still actively developed for the FreeDOS project and available from
the site linked above.

CuteMouse provides support for modern mice and mouse features such as wheels (though few
applications support the wheel), and is significantly smaller than MOUSE.COM, using only about 3.5 KB
of memory vs. almost 18 KB for MOUSE.COM.  I strongly recommend CuteMouse here, and will use it
for the example, but you're welcome to use MOUSE.COM if preferred.

To install CuteMouse, copy bin\ctmouse.exe to c:\dos.  Then, edit autoexec.bat and add:

c:\dos\ctmouse.exe /3

CuteMouse supports quite a few options, so run ctmouse.exe /? to get a complete list and set the
options appropriate for your hardware.  Auto-detection should generally work fine, though.  In my case, I
use /3 to force 3-button mode, which isn't enabled by default.  Also, note that we're not specifying
LOADHIGH here; CuteMouse is smart enough to load itself into upper memory when available, so
LOADHIGH isn't needed.

Run the above command to manually load the driver.  Pedit supports mice, so you can fire that up to
verify that your mouse was properly detected and enabled, or use the included mousetst.com.

Sound Card Driver


Next up is sound.  You'll need to install drivers appropriate for your sound card.  I have a Creative Labs
Sound Blaster AWE64, so that's what I'll setup in the example.  Your setup should be at least somewhat
similar, but certainly some of the details will be different.

To begin, unpack and copy over both the driver disk and configuration manager (linked above), then
change to the driver disk directory.

1. Run install.exe
2. Press Enter to continue
3. If prompted to install the Creative Configuration Manager (CTCM), press enter to continue,
then enter the path to the CTCM files.  This is needed for Plug and Play (PnP) cards under
DOS.  The Intel PnP ISA Configuration Manager (ICM) can be used for this instead, but my
experience has been that ICM is much harder to find and really not worth the trouble.  CTCM
is pretty easy and worked on the first try.
4. If installing CTCM, I recommend setting the path to c:\apps\ctcm.  Verify the suggested
settings are sensible and hit Enter to continue.
5. Hit Enter if prompted to run CTCM, then again when asked about modifying your system
config files, then a third time to continue installation
6. For the drivers, I recommend installing to c:\apps\awe64.  Again, verify the suggested
settings are sensible and hit Enter to continue.
7. Make note of the Audio Device settings (you can review this later, if necessary) and hit Enter
8. Hit Enter to make the config file changes, then Enter again to complete installation
We'll need to reboot to activate the sound card, so do that now.  After rebooting, change to
c:\apps\awe64 and run diagnose.exe.  This will let you verify that your sound card is installed and
working properly.  While here, you can also run mixerset.exe to adjust the volume levels as
necessary.  I find the default config too loud (leading to noticeable distortion on my speakers), so I turn
the Master volume down a couple clicks.  You may also like to try enabling 3DSE (3D Stereo
Enhancement) and see if that improves the sound; I generally don't care for this, but it can make a
positive difference with cheap stereo or embedded monitor speakers.

Return to top

System Optimization
At this point it's time to do some configuration cleanup and memory optimization.  Remember, you can
use mem /c /p to view current memory usage and availability.  My system, after installing everything

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

listed above and despite tweaking the config files a bit, currently has only 497 KB of conventional
memory available.  This is actually pretty decent given everything I have loaded, but unfortunately it's
not enough for some of the other programs I want to install, and definitely isn't large enough for many
games.  Generally, you should shoot for >530 KB free, which should cover most (though not all - 587
KB is the highest I've personally encountered) DOS applications and games.

For reference, here's my config.sys file at this point:

REM configure boot options


SWITCHES=/f
REM enable memory management
DEVICE=c:\dos\himem.sys /testmem:off
DEVICEHIGH=c:\dos\emm386.exe ram 24576 highscan notr i=b000-b7ff
DOS=high,umb
REM load device drivers
DEVICEHIGH=c:\dos\cdromdrv.sys /d:mscd001
DEVICEHIGH=c:\dos\net\ifshlp.sys
DEVICEHIGH=c:\dos\net\protman.dos /i:c:\dos\net
DEVICEHIGH=c:\dos\net\nemm.dos
DEVICEHIGH=c:\dos\net\tcpdrv.dos
DEVICEHIGH=c:\dos\net\elnk3.dos
DEVICEHIGH=c:\dos\net\dis_pkt.dos
DEVICEHIGH=c:\dos\ansi.sys
DEVICEHIGH=c:\dos\power adv:min
DEVICE=c:\apps\ctcm\ctcm.exe
rem DEVICEHIGH=c:\dos\setver.exe
REM configure environment
SHELL=c:\dos\command.com c:\dos /p
FILES=30
BUFFERS=5,0
FCBS=1
STACKS=0,0
LASTDRIVE=H
BREAK=on

And my autoexec.bat file:

@echo off
REM setup display and drivers
c:\dos\mode.com con cols=80 lines=50
loadhigh c:\dos\mscdex.exe /d:mscd001
loadhigh c:\dos\smartdrv.exe
loadhigh c:\apps\doskey.com -i
c:\dos\ctmouse.exe /3
REM setup network
rem loadhigh c:\dos\3c5x9pd.com 0x60
rem c:\dos\net\net.exe initialize
c:\dos\net\netbind.com
c:\dos\net\umb.com
loadhigh c:\dos\net\tcptsr.exe
loadhigh c:\dos\net\tinyrfc.exe
c:\dos\net\nmtsr.exe
loadhigh c:\dos\net\emsbfr.exe
loadhigh c:\dos\net\dnr.exe
c:\dos\net\net start
REM setup sound card
set SOUND=c:\apps\awe64
set BLASTER=A220 I5 D1 H5 P330 E620 T6
set MIDI=SYNTH:1 MAP:E MODE:0
set CTCM=c:\apps\awe64\ctcm
c:\apps\awe64\diagnose.exe /s
c:\apps\awe64\aweutil.com /s
c:\apps\awe64\mixerset.exe /p /q
c:\apps\ctcm\ctcm.exe /s
REM setup environment
path c:\apps;c:\dos;c:\dos\net
prompt $e[1;34m$p$g $e[0;47;0m
set DIRCMD=/o:gne
set TEMP=c:\temp
set WATTCP.CFG=c:\dos\net
echo.

Most of this has been covered previously, but there are a few new items:

emm386.exe
24576 instructs EMM386 to only make 24 MB of extended memory (out of the 64 MB of RAM
available on this system) available as EMS.  By default, it'll use all available extended memory,
up to 32 MB.  I added this mostly for troubleshooting: if a game reports that it sees 24 MB of
memory, then that means it's using EMS and not XMS.  highscan enables more aggressive

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

attempts to find available upper memory (and this increase available capacity), though it can
cause some systems to hang.  notr disables searching for token ring adapters, a legacy
networking topology no longer in use today.
ansi.sys
DOS driver that enables the use of graphics and special characters in programs that support
them.  This isn't needed unless a specific program requires it, but in my case I'm using it to
increase the number of rows displayed on screen and enable my custom shell prompt (see
below).
power.exe
POWER enables basic power management support.  This isn't especially necessary, but
enabling it makes the my BIOS power management settings actually work (put monitor to sleep
and spin down the hard drive after 10 minutes).  adv:min enables power management support,
but with a bias for performance.  You can run help power.exe for information about more
advanced options if interested.  Tip:  You definitely want to enable this option if running DOS in
VirtualBox or VMware; without it, DOS runs "wide open" and will suck up 100% of the CPU core
assigned to that virtual machine.
ctcm.exe
This is Creative's Plug and Play configuration manager, necessary for proper configuration of my
AWE64 sound card.
SHELL
This default setting specifies the command interpreter.  You generally should not change this.
FILES=30, BUFFERS=5,0, FCBS=1, STACKS=0,0, LASTDRIVE=H
These performance settings are added by default by DOS and MS-Client.  See the help page
(help <option>) for each for more details.  Each should generally be set as low as possible to
reduce memory, without going too low as to adversely affect your system.  I find the settings
above provide a good balance for my system.
mode.com
MODE can be used to configure various system devices.  In this case, I'm using it to increase the
number of rows displayed on the screen to 50, from the default of 25, which will let me see more
information on-screen; this is the closest DOS equivalent that I could find to changing your
display resolution.  This option requires ANSI.SYS to be loaded.
Sound Blaster stuff
These are various variables and configuration utilities setup by my sound card.  These generally
shouldn't need to be modified
prompt $e[1;34m$p$g $e[0;47;0m
This command sets the shell prompt, aka "c: prompt".  By default it's simply $p$g, which shows
c:\path>.  My tweaked version shows the same information, but the prompt is now blue instead
of white.  See the ANSI.SYS help file for additional information.

Startup order is very important under DOS; loading drivers and programs in the "wrong" order can
drastically increase memory usage.  Unfortunately, there's no way to guarantee an optimal order.  You
can find a lot of advice about tweaking MS-DOS memory settings on the internet, but the basic advice
I've found that works the best boils down to three parts:

Use a memory manager such as EMM386 to load as many drivers, etc. into upper memory as
possible
Load the largest drivers first, which helps fit as much as possible into upper memory due to how
DOS loads programs into memory
Use smaller drivers whenever practical, such as what we've done with the CD-ROM and mouse
drivers

MS-DOS also includes a utility called MEMMAKER that can help optimize settings for memory usage,
but it produced slightly worse results than my hand-tweaked files above.  I recommend giving it a shot,
though; it may work better on your hardware, and even if it doesn't it provides an option to easily undo
the changes.

With all that said, I'm still about 35 KB below my target of 530 KB, and this is already optimized.  In
order to hit 530 KB I'll need to disable some things.  Good candidates:

CD-ROM support
this generally isn't required on every boot, and can free up 30 KB by itself (plus quite a bit more if

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

using the Gold Star or Oak drivers).  Comment out the cdromdrv.sys and MSCDEX lines and
reboot to free up that memory.
net start
this command automatically maps shared drives.  If you don't need it available at the start of
every boot, you can disable it from autoexec.bat to free up 14 KB.  You can run "net start"
manually to map all of your shared drives as needed, and then "net stop" to free up that memory
again.
smartdrv
this isn't necessary for your system to run, but it does fairly noticeably improve the performance. 
I'd recommend leaving it enabled if possible, but it takes up 28 KB all by itself, so it's a big target
when you need to free some memory fast.
ansi.sys, ctmouse
both of these are entirely optional and can be commented out if unneeded, but at only 4 KB and
3 KB each it's not going to get you a whole lot.  Still, it may be enough to push you over the edge
if needed.
MS-Client
MS-Client is, by far, the biggest memory hog.  If you do not need mapped drive support or NDIS
drivers enabled, comment out all of the c:\dos\net stuff from both config files (including the
shim driver) to free up oodles of space.  Note that you'll lose your PD interface as well if you
installed the shim driver, so you'll need to (re)setup your NIC's native packet driver if you want to
continue to use non-Microsoft network utilities.  if you can get by with only using PD applications,
this is a great option.

I elected to disable MS-Client and just load the native packet driver, which took me way beyond my
target to 576 KB free.  Aside from mapped drives, MS-Client provides almost no benefit to a home user
over the PD applications, and even mapped drives is very flaky with recent versions of Samba. 
SCP/SFTP will meet my file transferring needs, even if it's slightly less efficient, and that extra memory
will be put to much better use elsewhere.

Return to top

Additional Applications
At this point, I'd consider the base OS install to be complete.  We have a tuned and optimized MS-DOS
6.22 system complete with network support and key network utilities.  Everything we installed should be
very stable and functional, and should, for the most part, be usable under Windows for Workgroups
3.11 as well (we'll probably swap out our network drivers, but that's a later discussion).  Using this base,
you can install additional applications, games, utilities, drivers, etc. to customize the system to your
tastes.  I'll cover a few of the more useful or interesting additions I've found here.

4DOS
4DOS is a replacement shell / command interpreter for DOS.  It provides a great many significant
enhancements over the default DOS shell, command.com, and is amazingly customizable.  To read up
on it and download a copy, visit it's home page.

4DOS was originally a commercial program, but has since been discontinued and released as open
source.  The open source version (called "Free 4DOS"?) seems to still be actively maintained (though it
hasn't been updated in a while) and is currently at version 8.00; this is the version you'll want to
download from the above site.

Basic installation is quite easy.  Copy the entire (unzipped) directory to c:\apps\4dos, then run
c:\apps\4dos\4dos.com and follow the prompts.  You can choose to have it automatically update
autoexec.bat and config.sys for you, but for some greater control you can enter C or N and
manually make the following changes.  Edit autoexec.bat and add/change:

rem loadhigh c:\apps\doskey.com -i


c:\apps\4dos\kstack.com

Edit config.sys and add/change:

rem SHELL=c:\dos\command.com c:\dos /p


SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

4DOS includes tab completion and command history by default, so Enhanced DOSKEY.com is no
longer necessary (although 4DOS doesn't support command completion; that is, searching your path
and completing commands as they're typed.  That's a bummer.)  Also, note that KSTACK.COM is only
needed if you wish to use 4DOS' KEYSTACK command.  Run help keystack.  If you don't need this,
comment out the kstack.com line to free up that memory.

You can run option.exe to configure the basic 4DOS settings.  There are a lot to play with, but I
personally like to set the following non-default options:

Configure, Startup
Resident in UMB - Yes
Swapping - XMS, EMS, None
Buffers UMB options - Yes for all
Local Alias - No
Local Function - No
Configure, Display
Tabs - 4
Configure, Command Line
Default Mode - Insert
Cursor: Overstrike - 100%
Cursor: Insert - 10%
Move to End - Yes
Exit, Save

One handy feature 4DOS provides is the ability to use aliases.  If you're familiar with the concept from
Linux, it works similarly; if no, it's easiest to see it in action.  Enter alias ls=dir /wbh, then enter
ls.  You should get a directory listing in the same style as the default ls command on Linux.  This is a
pretty trivial example, but you can use it to provide a number of useful conveniences.  For example,
here's my aliases.cfg file:

dir=*dir %dircmd
ls=dir /wbh
rm=del
mv=move
cp=copy
cat=type
date=echo %_DATE %_TIME
eject=ejectmedia
vi=edit
p=xfstool.exe pktdrv stop ^ %1 %2 %3 %4 %5 %6 %7 %8 %9 ^ xfstool.exe pktdrv
restart
moved=mkdir %2\%@NAME[%1] ^ xcopy /e %1 %2\%@NAME[%1] ^ deltree %1
realias=unalias * ^ alias /r d:\etc\aliases.cfg

Many of the above are simple shortcuts, but a few deserve special mention:

dir
this forces 4DOS to respect DIR command flags set in the DIRCMD variable; this way, the same
defaults can be used regardless of whether 4DOS is loaded or not
date
this simply outputs the current date and time without prompting you to set it
eject
uses a 4DOS built-in command to eject the CD-ROM drive
p
this is the shortcut I mentioned in the NFS/XFS section above - by prepending p to any
command, 4DOS will first unload the XFS packet driver, then run the given command, then
reload the XFS packet driver; so, you can run p ssh username server to SSH to a server
even while an NFS share is mounted, and 4DOS will automatically suspend/restart the driver
before and after your SSH session
moved
this is the best option I've been able to come up with to easily move a directory from one location
to another; it's not fool-proof, though, so I welcome any suggestions for imporvement
realias

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

this simply reloads the alias file to activate any new changes

It isn't necessary to use an alias file, but I find it convenient to keep all alieses grouped together.  To
load, add alias /r c:\apps\aliases.cfg, or whatever path you prefer, to autoexec.bat.

Another neat, but this time entirely superfluous, trick is to enable support for colored directory listing
output.  This is similar to what modern Linux distributions do by default (as shown in this simple
example if you're not familiar with it), and makes it possible to quickly and easily recognize common file
types at a glance.  I modeled the following configuration based on Linux's default scheme for dircolors,
with a couple differences and pruned down a bit:

ColorDir=dirs:bri blue;hidden:bri bla;exe com dos:bri gre;bat btm


cmd:gre;zip tgz:bri red;jpg gif bmp png ico:bri mag;mov mpg:mag;mid mp3
wav:bri cya;txt doc me now 1st diz cfg inf ini:bri yellow;*~* bak:yel
The configuration is fairly straightforward, if a bit terse:  in order, you specify:

1. List of extensions for a particular file type


2. Colon delimiter
3. Color to apply
4. Semicolon delimiter
5. Repeat
There are a couple additional points to be aware of.  The extension list can also be a special type of
file, such as dirs (directories), hidden (hidden files), rdonly (read-only files), etc.  So, the first item
in the line sets my directories blue.  The color code is also fairly flexible; as shown above, you can
specify both normal colors (yel) and bright colors (bri yel) (bright colors tend to be easier easier to
read against dark backgrounds).  You can also change the character background color:  bri blu on
yel, for example, will display blue text on a yellow background.

You can run the above with the set command to activate, then run dir to test the results.  Feel free to
customize it a bit, then once you're happy with it you can make it permanent by either adding it to
autoexec.bat (again, prepended with set) or copying it as-is to c:\4dos\4dos.ini.  I recommend
the latter, as it won't clutter up your environmental variables.

For more advanced 4DOS features, refer to the online documentation by running help.  Also note:  if
you want to view the original MS-DOS help pages, you'll now need to run help.com <command>.

Arachne
Believe it or not, a GUI web browser is available for DOS.  Support for modern web standards is quite
limited, as should be expected, but basic web browsing should work pretty well.  The name of the
browser is Arachne, and it can be obtained from it's home page.  After a four year hiatus, it very
recently had a new release, so it's good to see that it's still under active development.

Installation is a bit involved, but not too complicated.  The largest hurdle is that this requires at least 500
KB of free conventional RAM, and if you installed everything listed in this walkthrough so far, you will
almost certainly be under that threshold.  Please see the above System Optimization for tips on freeing
up enough memory i fnecessary.  You'll also want to use a mouse for this, so be sure to follow the
mouse driver instructions above to get that setup.

Once mem /c /p shows >500 KB free of conventional memory, run a197gpl.exe to begin the setup
process and then follow the prompts.  I recommend installing to c:\apps\arachne to follow our
installation convention, so press N when asked and change the directory before continuing.

After everything is unpacked, the GUI setup process will start.  If you have just barely more over 500
KB free, the installer will exit with a low memory error, as the memory from the unpacker was still in use
at the time, pushing you under the threshold.  If this happens, simply run
c:\apps\arachne\arachne.bat to restart the GUI setup wizard.

Set the video options to your preference.  Try to go with at least 1024x768, higher if possible (and you
have a reasonably large monitor), but you'll probably be limited by your video card memory.  If you have
any trouble and need to abort the setup process, you can restart by running
c:\apps\arachne\setup.bat.

You'll be prompted to set your computer speed profile next; it's probably best to go with Arachne's
recommended setting here, as it will do a quick benchmark of your computer first.  Select your preferred

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

option and click Next.  You'll then be prompted for some system configuration changes.  This is entirely
personal preference (I prefer to update my files manually after installation, but I do have it create the
shortcut batch file for me), so choose what you like and click Next.  Set the max video resolution to the
same resolution you selected previously and click Next.

Up next is the network configuration.  Since we already have a working WATTCP configuration (...right?
), choose Manual Setup.  Select "Resident packet driver", then select "Use only WATTCP
configuration", then set the WATTCP configuration file name to c:\apps\wattcp.cfg and click Save.

The next page, Arachne Options, can be configured at any time later on to your preferences, so click
"Use new settings" to complete setup.  You'll be kicked back into DOS at this point, so now would be a
good time to make any system config file changes.  Consider changing the following in config.sys, if
you didn't have Arachne do it for you earlier:

FILES=40

If you had Arachne create a shortcut, you can move it to c:\apps so that it's in your PATH.  I also like
to rename it back to arachne:  move c:\apps\arachne\a.bat c:\apps\arachne.bat.  If you
changed your FILES setting, you'll probably want to reboot now to have that take effect.

Finally, run arachne.bat and try loading a website such as www.google.com to verify connectivity.  It
won't look very pretty, but you should see all of the content in its complete, barely styled glory.  :-)

Arachne supports a ton of layout options, performance options, etc., and I strongly suggest you spend
some time tuning it to make it a better experience for you.  To get started, click on the Desktop link in
the right navbar (or press F10), then click Options.

Miscellaneous Utilities
This is a fairly random collection of utilities I found while researching this project that I consider useful
or interesting.  I won't cover them in great detail, but I do recommend checking them out.

Navrátil Software System Information is a comprehensive system information utility, reporting detailed
information about the various components in your system.  This is by far the best such utility I've found,
is one of the only such utilities that is completely free and not crippled, and is even under reasonably
active development.  As a bonus, it even can even perform a basic CPU benchmark.  If you have any
questions about what's in your computer or how it's performing, this is a very worthwhile utility.

Snarf is a simple screenshot utility for DOS.  It doesn't support much in the way of options, but it works
well in my testing.  Screen Thief is another screenshot utility.  This one has far more options, but for
some reason saves images as 720 pixels wide rather then 640, which makes everything look stretched
horizontally.  That seems to be expected behavior and I can't find a way to fix that, and that's a deal
breaker for me.

RMENU, in the author's words, is a "'kind of' a telnet server for DOS... that can be used to remotely
control a computer running DOS via telnet," providing a menu-driven interface as well as direct
command line access.  Since this is of somewhat limited practical use I won't spend much time covering
the details, but it's a quite nice remote-access solution if that's something you need.  A couple other
options that might fit the bill are Remoter and Tiny.  Unfortunately, Remoter which requires a separate
Windows client, so it's not useful for me, and Tiny requires either the Novell or PCTCP TCP/IP stack
(yes, there are even more network stacks and options that what I covered above...), so can't be used
with the network configuration detailed above.  So, RMENU is the best option for my situation.  The
RMENU author has also written a number of additional DOS applications that may be useful, also
available from the same link.

ANSIPLUS is a much enhanced re-implementation of the ANSI.SYS driver discussed above, and
includes several features that would ordinarily require separate additional utilities, such as a scroll back
screen buffer, extended keyboard input buffer, mouse support for console copy/paste, etc.  Installation
and configuration is a bit wonky, so I recommend reading the included ansiplus.doc manual before
getting started.

SLOWDOWN is, as the name implies, a utility to slow your computer down.  It's useful for very old
software (generally games) that run relative to CPU speed.  The problem with these games is that they
will always run faster as CPU speed increases, so once you reach a certain CPU speed (which can be
easily hit even with original Pentiums), games become unplayably fast.  There are several utilities that
can slow your computer down enough to play these games (Mo'Slo probably being the most well

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

known), but my favorite is SLOWDOWN; it's free, has a wealth of features, and is very well
documented.  In particular, I recommend checking out the included CPUCACHE utility; this can be used
to simply disable your CPU's cache, yielding a significant drop in speed.  While testing Wing
Commander, I found the using CPUCACHE resulted in the most consistent gameplay speed.  The
SLOWDOWN author also has several additional utilities on his site, including native DOS USB drivers,
worth checking out.

Return to top

Addendum
After spending a while playing with the system and, most importantly, playing and installing many of my
original DOS games, I have a couple few extra tips I wanted to share.

Memory Management Notes


EMM386
Even through EMS memory is a much older standard than XMS memory, which superceeded it
with the release of the Intel 80286 processor and MS-DOS 3.0, a lot of much more recent
software still only utilizes EMS for some reason.  As a result, I recommend using EMM386 to
enable EMS support (with the ram option) as part of your standard config.  Running EMM386
without EMS support (using noems should be avoided as many games will assume that EMS
available simply because EMM386 is running and then crash.  If you want run a game that uses
XMS memory is used, the most reliable option is to simply not load EMM386; this will ensure it
uses XMS without any potential conflicts caused by EMM386, but has the unfortunate side-effect
of preventing DOS from loading drivers/components into upper memory, which means you'll have
less conventional memory available for the game.
Alternative memory managers
If you really want to maximize available memory, you may want to check out alternative memory
managers such as Jemm/HimemX and UMBPCI.  Both seem to offer more advanced features
with a smaller memory footprint, so if you have trouble meeting a particular memory target you
may want to give these a shot.  I haven't messed with either myself, though; by using a boot
menu (discussed below), I was able to free up enough memory for everything I tried, so it just
wasn't necessary to add this extra software to the mix.
EMM386/HIMEM bugs
The latest versions of EMM386 and HIMEM that shipped with MS-DOS (including 6.22) contain
bugs; generally this shouldn't cause a problem, but if you try to use a slowdown utility or disable
your CPU cache (as described in the SLOWDOWN section ablove) it will instantly freeze your
computer.  You can work around this by replacing the built-in versions with those from Windows
98 SE, the very latest versions released by Microsoft which still work perfectly fine in a native
MS-DOS environment.  If you run into this problem and don't have a Windows 98 SE system
available, you can download my copy from here.

CONFIG.SYS and AUTOEXEC.BAT Notes


I ran into a couple odd problems while testing all of my games that were traced back to the somewhat
aggressive settings I had for FILES, STACKS, etc.  I'm now using the following more conservative
settings:

FILES=40
BUFFERS=10,0
FCBS=1
STACKS=9,128

This uses an extra few KB of conventional memory, but has resulted in less random application
crashes.  Now that I'm using boot menus as described below to re-configure my system as necessary
for memory hungry games, I can afford to give up a few KB of RAM here, so the aggressive settings
aren't really worth it.

Additionally, MSCDEX and SmartDrive can both be tweaked to provide faster performance and utilize
less conventional memory as shown below:

loadhigh c:\dos\mscdex.exe /d:mscd001 /l:f /e /m:30


loadhigh c:\dos\smartdrv.exe 4096 4096 /b:65536 /e:8192 /u

For MSCDEX, the /e parameter instructs it to utilize expanded memory, and /m:30 causes it to cache

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

up to 30 buffers, reducing the amount of direct CD-ROM reads your computer needs to make and this
increasing CD-ROM performance.  Note that EMM386 is required for this; without it, /e cannot be
used, and /m:30 will result in a significant increase of conventional memory use; dropping /m to 5 or
10 in these circumstances is recommended.

SmartDrive is a bit more complicated.  I recommend reading the SmartDrive help page for more details,
but the short version is that the above command instructs SmartDrive to always use 4 MB of extended
memory for cache, use a read-ahead buffer size of 64 KB, use an element size of 8 KB, and disable
support for caching CD-ROM drives.  The /u option is particularly important - while it seems like
caching CD-ROM drives would be a good thing, it has a tendency to corrupt the CD in the process of
copying a large number of files.  I had issues installing quite a few games because of this, so using /u
to disable CD-ROM caching while allowing SmartDrive to continue to cache all hard drives is the
easiest and most reliable solution.  The other options, as mentioned for MSCDEX, all affect memory
usage, and without upper memory available from EMM386 this will make SmartDrive consume a large
amoutn of conventional memory.  Dropping it down to something like 2048 2048 /b:8192 /e:4096
can help a lot in these situations, and you may need to go even lower for particularly memory hungry
games.

Boot Menus
MS-DOS 6.0 introduces support for boot menus, which can be used to select and load different system
configurations at boot time.  This is handy because it let's you easily change system settings by
rebooting and choosing the new configuration rather than modifying config.sys and/or
autoexec.bat each time you want to change something.  This generally isn't really needed, but it can
be useful on a system with multiple games loaded to easily switch between sometimes configurations
needed by each different game, eliminating the need for bootdisks and hand-editing each time you
want to play a different game.

The DOS 6.2 CONFIG.SYS Menu's for Dummies guide explains how boot menus work pretty well, and
includes example config.sys and autoexec.bat files to show how it's done and to show how you
can use the boot menu (handled by config.sys to also affect what's loaded by autoexec.bat.

For a much more complicated example (probably unnecessarily so), I'm providing my latest
config.sys and autoexec.bat files below.  Few notes about this:

1. For a much simpler configuration that provides a perfectly useful and feature-complete
system, see the examples above.  Boot menus are only necessary if you need to be able to
change configurations at boot time, and introduce a good bit of complexity that isn't otherwise
needed.
2. My particular configuration is geared toward providing optimal settings for various games. 
Honestly, I can play most of these games from my default config as noticed above, but I
created special configs for many of them any way just to the most optimal setup possible. 
Treat this as simply an example of what you could do rather than what you necessarily
should do when using boot menus.
3. Again, since this is game-oriented, if any boot option other than the default is chosen,
autoexec.bat will automatically run a custom game launcher I wrote (games.bat) at the
end of the process.  The %CONFIG% variable contains the name of the menu item chosen at
boot, so it can be used by both autoexec.bat and games.bat to determine which
drivers/utilities should be loaded and which game(s) should be run.
With that said, here's my fully tricked out config.sys with boot menu:

REM Configure boot menu


[menu]
menuitem=default,Load standard MS-DOS 6.22 working environment
submenu=games1,Load gaming-optimized environment
menudefault=default,5
REM prompt for game-focused options
[games1]
submenu=games2,Basic optimizations - Disable EMS, disable CD-ROM
menuitem=noemscd,Wing Commander III/IV, Crusader, SkyNET - Disable EMS,
enable CD-ROM
menuitem=noemscdextreme,Privateer 2 - Disable EMS, enable CD-ROM, extreme
optimization
menuitem=emsextreme,Wing Commander I/II - Enable EMS, perform extreme
optimizations
menuitem=emscdnomnosd,Tomb Raider - Enable EMS and CD-ROM, Disable Mouse
and SmartDrive
REM prompt for additional game options
[games2]

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

menuitem=basic,All other games - Basic optimizations only


menuitem=noemsnosd,Dark Forces - Disable SmartDrive
menuitem=noemsextreme,Privateer 1 - Perform extreme optimizations
REM common boot/memory settings - always enable XMS
[common]
SWITCHES=/f
DEVICE=c:\dos\himem.sys /testmem:off
REM Enable EMS for default environment or games that require it
[default]
DEVICE=c:\dos\emm386.exe ram 24576 highscan notr i=b000-b7ff
DOS=high,umb
DEVICEHIGH=c:\dos\power.exe adv:min
INSTALLHIGH=c:\apps\ansiplus\ansiplus.exe /e
DEVICEHIGH=c:\dos\cdromdrv.sys /d:mscd001
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
[emsextreme]
DEVICE=c:\dos\emm386.exe ram 24576 highscan notr i=b000-b7ff
DOS=high,umb
SHELL=c:\dos\command.com c:\dos /p
[emscdnomnosd]
DEVICE=c:\dos\emm386.exe ram 24576 highscan notr i=b000-b7ff
DOS=high,umb
DEVICE=c:\dos\cdromdrv.sys /d:mscd001
DEVICEHIGH=c:\dos\ansi.sys
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
REM Disable EMS for all other games
[basic]
DOS=high
DEVICE=c:\dos\ansi.sys
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
[noemscd]
DOS=high
DEVICE=c:\dos\ansi.sys
DEVICE=c:\dos\cdromdrv.sys /d:mscd001
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
[noemscdextreme]
DOS=high
DEVICE=c:\dos\cdromdrv.sys /d:mscd001
SHELL=c:\dos\command.com c:\dos /p
[noemsnosd]
DOS=high
DEVICE=c:\dos\ansi.sys
SHELL=c:\apps\4dos\4dos.com c:\apps\4dos /p
[noemsextreme]
DOS=high
SHELL=c:\dos\command.com c:\dos /p
REM Configure remaining drivers and default environmental settings
[common]
DEVICE=c:\apps\ctcm\ctcm.exe
FILES=40
BUFFERS=10,0
FCBS=1
STACKS=9,128
LASTDRIVE=H
BREAK=on

And, the corresponding autoexec.bat:

@echo off
:: Configure environment based on config.sys menu selection
goto %CONFIG%
:: For default working environment, load all conveniences
:default
c:\apps\ansiplus\setaplus.exe mode 03h height 8 rate 30 delay 1
loadhigh c:\dos\mscdex.exe /d:mscd001 /l:f /e /m:30
loadhigh c:\dos\smartdrv.exe 4096 4096 /b:65536 /e:8192 /u
c:\dos\ctmouse.exe /3 /o
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto network
:: For gaming environment, load memory-optimized configuration
:basic
c:\dos\mode.com con: cols=80 lines=50 rate=32 delay=1
c:\dos\smartdrv.exe 2048 2048 /b:32768 /e:8192 /u
c:\dos\ctmouse.exe /3 /o
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto finish
:: Otherwise, apply more specialized settings
:noemscd
c:\dos\mscdex.exe /d:mscd001 /l:f /m:20

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

c:\dos\smartdrv.exe 4096 4096 /b:32768 /e:8192 /u


c:\dos\ctmouse.exe /3 /o
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto finish
:noemscdextreme
c:\dos\mscdex.exe /d:mscd001 /l:f /m:5
c:\dos\smartdrv.exe 2048 2048 /b:2048 /e:1024 /u
c:\dos\ctmouse.exe /3 /o
prompt $p$g
goto finish
:emsextreme
loadhigh c:\dos\smartdrv.exe 4096 4096 /b:32768 /e:8192 /u
c:\dos\ctmouse.exe /3 /o
prompt $p$g
goto finish
:emscdnomnosd
c:\dos\mscdex.exe /d:mscd001 /l:f /m:20
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto finish
:noemsnosd
c:\dos\ctmouse.exe /3 /o
prompt $e[1;34m$p$g $e[0;47;0m
alias /r d:\etc\aliases.cfg
goto finish
:noemsextreme
c:\dos\smartdrv.exe 2048 2048 /b:4096 /e:2048 /u
c:\dos\ctmouse.exe /3 /o
prompt $p$g
goto finish
:: Load network drivers and configure protocol stacks
:network
echo.
echo Initializing 3Com 3C509B-TPO...
loadhigh c:\dos\3c509.com -p 0x60 >nul
echo.
echo Setting mTCP IP address via DHCP...
set MTCPCFG=d:\etc\mtcp.cfg
set TZ=CST6CDT
c:\apps\dhcp.exe >nul
echo Setting system time via NTP...
c:\apps\sntp.exe -set boxdog.legroom.net >nul
set WATTCP.CFG=d:\etc
goto finish
:: Configure remaining common drivers and environmental variables
:finish
echo.
echo Initializing Creative Labs Sound Blaster AWE64...
set SOUND=c:\apps\awe64
set BLASTER=A220 I5 D1 H5 P330 E620 T6
set MIDI=SYNTH:1 MAP:E MODE:0
set CTCM=c:\apps\ctcm
c:\apps\awe64\diagnose.exe /s >nul
c:\apps\awe64\aweutil.com /s >nul
c:\apps\awe64\mixerset.exe /p /q
c:\apps\ctcm\ctcm.exe /s >nul
unset CTCM
path c:\apps;c:\dos
set DIRCMD=/a/o:gne
set TEMP=c:\temp
echo.
:: Run games launcher automatically if appropriate
if not %CONFIG%==default c:\apps\games.bat %CONFIG%

Finally, for the curious, you can also obtain my games.bat file.  It's fairly basic, but does show how
you can prompt for basic user input and take action based on that input from a pure MS-DOS system,
so it might be handy as a reference if you're not sure how to do that.

With that I think we're finally(!) done.  I hope this inspires a few folks to tinker a bit with some of their old
hardware, or at least fire up a DOS session under VirtualBox or something, and experience either anew
or for the first time the joy of getting MS-DOS configured just right for whatever your needs might be. 
Computing was very different when MS-DOS 6.2 was released back in 1993, twenty years prior to the
time this was written, and it's worth remembering that sometimes to better appreciate just how far we've
come today.

Hope you enjoyed.

[1] Yes, that's a Men in Black II reference.

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]


How to Install and Configure MS-DOS 6.22 | LegRoom.net

All logos, trademarks, and comments on this site are property of their respective owner.
All other content is ©2014 by Jared Breland, and licensed under the Creative Commons
Attribution-ShareAlike 3.0.
This website is syndicated with an RSS 2.0 newsfeed. 

http://legroom.net/howto/msdos[2/2/2016 10:56:17 AM]

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy