---> DOS Hardware Guide <---


Like all computer software (including Java software), DOS programs
are picky about the hardware they like to run on.  Your choices will
also depend on whether you want to run new DOS software, or ONLY old
DOS software written during the 20th century.  Here now are my
observations and recommendations, based on personal experience with DOS
in the new millennium.

Before we begin, you must understand that many DOS programs (especially
games) only work properly when run on hardware that is no longer in
manufacture.  If acquiring used equipment is an issue, then it is best
to -not- use DOS software, and settle instead for some alternative.
Note that you can "have your cake and eat it too" if you own TWO
computers; one for your "normal" software (Windows 2000 works good) and
one for your DOS software.  Both computers can share the same Keyboard,
Monitor, and Mouse by using a KVM switch (thus saving desk space).

-----

       Computer for running -ONLY- modern DOS software:

If all you want to do is run DOS programs written since the turn of the
century, then the hardware solution is easy.  Just go down to your
favorite computer store and buy any computer that strikes your fancy
(and that you have all the hardware drivers for).  Erase the preloaded
software, and install the latest version of your favorite flavor of
DOS (or WARP or eComStation).  Enjoy.

-----

       Computer for running -ONLY- vintage DOS software:

If all you want to do is run DOS programs written during the 20th
century, then the ideal general duty computer processor to select is
the Intel 486DX/2 66mhz.  Other Intel 486DX, 486DX/2, and 486DX/4
processors of any speed, as well as the fabulous AMD 386DX 40mhz
processor, are acceptable alternatives.  Ignore everything else.

The processors motherboard should support at least two 16-bit ISA
peripheral slots (but a micro-channel motherboard without any ISA
slots is Ok if you have all the necessary micro-channel peripherals).
Make sure the processor has a large heat sink installed.  For best
thermal cooling, the surface of the heat sink should be smooth and
free of paint (use 400grit oiled sandpaper to polish the contact
surface of the heat sink if necessary).  Always put a layer of thermal
paste between the heat sink and the processor (use "Arctic Silver 5").

Install a minimum of 16mb of motherboard Random Access Memory.  32mb is
ideal, as that is the limit useable by most older DOS software.  The
maximum amount of memory DOS can access is 64mb (and you can not even
use memory over 64mb for a RAM drive).  It is suggested that you do
not install MORE than 64mb of RAM in the computer (even if you can),
because it may cause addressing errors in some poorly written programs.
RAM should be rated at a speed of 60ns or faster (do NOT compromise in
the area of RAM speed, or you WILL encounter bizarre computer errors).
Do -NOT- mix speeds or types of RAM.  Full sized RAM modules using a
full complement of discreet chips are preferable to low-profile or
reduced-chip-count RAM. -ALWAYS- install RAM in pairs (even if the
motherboard will let you install memory singularly).

The video card (or onboard video) -MUST- be VGA compatible, and have a
MINIMUM of 1mb video ram.  Note however that video ram in excess of
2mb is not used by 20th century DOS software.  Video card may be of
any bus type supported by the motherboard (ISA, VLB, etcetera).  The
chip must be able to support VESA 1.2 or higher either natively or with
a software driver.  Ideally the chip should support VESA 2.0 natively.
Note that video cards running at slower bus speeds (such as is typical
with ISA video cards) will run old DOS games better, as you do not need
to add excessive software slowdown tricks to compensate.

Be aware that 1mb video cards differ from brand to brand, and sometimes
do not conform to SVGA modes used by a specific DOS program (pixelation
under the mouse pointer is a common error symptom).  Solutions include
falling back to standard modes (such as normal VGA), choosing a VESA
video mode, or selecting a different brand of video card (best choice).
Don't worry about old performance ratings for various brands of old
1mb video cards.  These ratings were only important if you were running
Microsoft Windows 3.x, Autodesk Autocad, or certain very specialized
software applications.  For everything else, performance differences
were nearly indistinguishable between video card brands/chipsets.

Unless the computer will be dedicated to running ONLY one or two very
specialized DOS programs, do -NOT- install a monochrome video card.

Computer must have at least one 1.44mb 3.5" floppy disk drive.  An
excellent choice is the Teac model FD235HF (still in production).
Configure this drive as drive A:.  This is your initial boot drive.

Computer must have a hard drive.  I would strongly advise NOT using
anything smaller than 40mb.  DOS will recognize ONLY 8gb of fixed disk
space on a SINGLE drive (but note that you can connect multiple drives,
up to the limit of your drive letters).  You CAN install a bigger hard
drive, but you will not be able to fdisk any of that drive beyond
the 8gb barrier.  Your primary hard drive should be configured as
drive C:.  Do NOT use a SCSI drive as your primary drive.  Also, avoid
using HardCard or Bernoulli/Syquest drives in the computer if possible.

Computer must have a parallel printer port (configured as LPT1, IRQ5).
Even if you don't have a printer, the port may be needed for hardware
copy protection keys.

Equip the computer with a 2-button Microsoft compatible mouse or
trackball (a 3-button Logitech mouse or trackball is an acceptable
alternative).  Do NOT use a Genius or Mouse Systems mouse!  The mouse
can be either a PS/2 mouse (the preferred choice) or serial mouse
(serial mice should use COM port 1, IRQ4).  It doesn't matter if the
mouse has a wheel or not.

Naturally the computer will have a keyboard and monitor (or "CONsole"
as they used to call it).  It doesn't matter whether the keyboard
uses the large DIN or PS/2 type plug (you can use a keyboard plug
adapter if necessary).  For most software you can even use a keyboard
that has only 10 function keys.  The Monitor should be a SVGA color
monitor (15-pin plug), and a multi-sync monitor is preferred.  Don't
stress your eyes using a monitor smaller than 16-inches diagonal or
with a resolution courser than .28 dpi (.30 dpi on giant monitors).

It is recommended that the computer be equipped with a CD-ROM drive.
4x speed is sufficient, as none of the older software required anything
faster (and in fact, slower drives run quieter and safer).  If you can,
substitute the CD-ROM with a CD-RW drive.  NEC is an excellent brand.

If you intend to play games, the computer should be equipped with one
joystick port.  If the computer has more than one port, the other ports
-MUST- be disabled.  Ideally you should disable ALL the computers
joystick ports and install a dedicated high-performance IDE joystick
port card.  An excellent high-performance card is the CH Products model
"Gamecard 3 Automatic" (still in production).

Choose your joystick carefully.  Old DOS games can NOT take advantage
of many of the features found on modern joysticks (and they will not
work at all with joysticks attached to a USB port).  A simple X/Y axis
joystick with 2-buttons is sufficient for the majority of old DOS
games.  Whatever joystick you choose, make sure that it is equipped
with "trim" controls (the little wheels that allow joystick centering).

Games require a sound card (or onboard audio).  Sound card MUST be
SoundBlaster 16 compatible.  A genuine ISA SoundBlaster family card is
the preferred choice (some games will not find the sound card if it is
not installed on an ISA bus).  SoundBlaster settings should be
A220, I7, D1 (note that I7 is NOT the default on some cards, so it must
be changed).  To take full advantage of late '90s games, you should
use a sound card that is also SoundBlaster AWE32 compatible.  Stereo
headphones are an excellent choice for listening to sound card output.

NOTE: The SoundBlaster 16 was backwards compatible to the "original"
SoundBlaster, -NOT- the SoundBlaster "PRO"!  Genuine SoundBlasters that
are AWE32 compatible can often playback General MIDI or Roland (MT-32)
sequences through a TSR that re-maps the SoundBlaster sound banks.

Optionally a printer should be considered.  Some old '80s programs even
required them.  Most software will print to an Epson LQ1500 compatible
24-pin dot-matrix continuous feed printer.  Some software will also
support a laser printer compatible with the Apple Laserwriter.

If you desire remote connectivity to other computers/devices, then a
modem and network interface card should be considered.  A 33.6k modem
(on COM2, IRQ4) is the most compatible.  Modems from US-Robotics have
the best reputation.  -NEVER- use a "Win-modem".  Network interface
cards should be NE-2000 compatible.  3-Com Etherlink III compatible
network interface cards are usually a suitable alternative.

Your best choices for an operating system is either pure DOS (any
manufacturer) compatible with MS-DOS version 5.0 (MS-DOS 6.22 is a very
stable choice), or any version of IBM WARP (or the new eComStation).
Stick with a 16-bit File Allocation Table (i.e., 8.3 file names) if you
are using Pure DOS (WARP users can use any supported file system).
According to some software historians, apparently the Microsoft
Long File Name implementation was originally leveraged as a method
to frustrate DOS users into migrating to Windows (a lot of old DOS
file management software will function improperly when faced with
Long File Names).  If you like the idea of tagging files with
descriptive comments, then I suggest you use one of the DOS compatible
pre-LFN solutions such as the popular Norton Utilities "File Info".

A memory manager that can move drivers into Upper Memory is required,
because later software applications needed over 512k of base memory.
You must also provide exPanded memory (a page frame), as a lot of
applications require it to run.  QEMM is an excellent memory manager.
Caching software can cause problems with older DOS programs, so it is
often better just to run lots of buffers (many old DOS programs are
unintelligent in regards to disk caching, and will refuse to run
unless you have a minimum amount of buffers anyway, even if you have a
huge software disk cache running instead).  Now that large fast access
hard drives are available, the need for Disk Caching software or Disk
Compression (-ALWAYS- shun disk compression) has been eliminated.

-----

       Computer for running -ANY- DOS software (new or old):


A computer that works satisfactorily with both old and new century DOS
programs is a difficult thing to design.  You must carefully balance
on the fence between Performance and Compatibility.  Practical
experience has shown what works and what does not.  For this type of
computer, it is best to use the specific parts (or equivalents) I will
be suggesting in the following paragraphs.

       ISSUES:

The motherboard will have to support the Pentium class of processors.
Why?  Because it was not until the pentium was released that the PCI
Local Bus became available.  A PCI bus is MANDATORY, because the newest
hardware devices are not available in older Bus designs (and remember,
DOS can run virtually all new PHYSICAL hardware standards just fine).

However, the Pentium class of processors are not the best choice for
most DOS software.  Why?  Because of the integrated Cache.  This often
causes problems in several ways, the biggest being that much DOS
software expected the processor to be constantly looking for changes in
the state of the hardware device or software instructions.  When the
processor only referres to old data in its cache, dynamic changes can
not be implemented.  New software understands the new processors and
sends special instructions to flush the processor cache.  However much
DOS software cannot issue these commands, and you will instead get
errors such as sound synchronization issues, video updates not taking
place, random program crashes, and slowdown software producing
inconsistent slowing depending on what the program is currently doing.
Experiments should be made as to whether an individual program will
run better without the cache being active, and a batch file should be
written to enable/disable the cache when the program is launched.

Another problem faced, and to which the Pentium processors play a major
role, is that of computing speed.  Much DOS software old and new is
written using efficient low level coding languages.  These languages
produce small, fast programs that do not require high performance
hardware to make them run effectively.  The DOS programmers were not
expecting the onslaught of sloppy, bloated code that defines much of
the non-DOS software written today.  They had assumed (incorrectly)
that persons writing such code would fall to the wayside because their
programs would run very poorly on existing hardware.  The did NOT
anticipate that the hardware manufacturers would compensate for the
programmers shortcomings by offering higher processing speeds (and as
a side issue, bigger storage).

There are two major speed related problems.  Old DOS programs will
often run way above their expected speeds (good for Word Processors,
bad for Arcade Games).  Adding hardware bottlenecks and using software
slowdown trickery can help compensate.  A worse problem is that some
DOS software was written on a compiler that produced code that will
crash when a processor reaches a certain speed (usually around 200mhz).
The only solution for this problem is to either re-compile the software
using a more modern compiler (often not possible due to the
unavailability of the original uncompiled software code) or keep the
processor speed under about 199mhz.

Increases in storage space has been an advantage and a curse.  The
advantage is that DOS programs no longer have to consider bizarre
techniques for storing large quantities of data (Drive Compression
software, ability to write to tape drives, programs that slice files
into smaller chunks, etcetera).  The curse is that with all that
storage space, DOS programmers are forgoing writing small, efficient
code, and they are including lots of "extras" in their programs that
eat up considerable amounts of storage space.  DOS (being 16-bits) does
have limits that are being quickly reached (i.e., the 8gb drive limit).

Finally, the history of PC computing itself has forced issues into
DOS programs.  Many DOS programs were written during a period of great
flux in the kinds of hardware available for DOS to operate on.  As
hardware standards changed, there was often little or no support for
the older standards.  Software vendors compensated by offering
duplicate code inside their programs that allowed them to be run on the
older hardware (that's why you often must first tell your programs
what kind of Video card, Sound card, etcetera, is installed).  However,
older software is not "forward" compatible, so a program written to
operate only on a CGA video card for example, may not work properly
when all you have in the computer is a VGA video card.  Hardware
selection for an all-purpose DOS computer therefore becomes a careful
balancing act of selecting parts that will work with -MOST- software.

       SOLUTIONS:

The motherboard should have a minimum of two PCI Bus slots so you can
add modern expansion cards.  The motherboard should also have a minimum
of two ISA Bus slots so you can add legacy expansion cards.  Most
likely IDE/PCI bus combos will only be found on used motherboards (such
as the Intel AN430TX).  Keep bus speeds low.  The ISA bus should not be
run faster than 8.33mhz, and the PCI bus should not be run faster than
33mhz (i.e., 66mhz FSB).  Underclocking is encouraged, as not only does
it put less stress on hardware, it graciously helps slowdown old games.


TO BE CONTINUED...