THE DEVELOPMENT OF DOS

Personal computers began appearing in the mid 1970's, initially as
hobbyist toys that didn't even have keyboards or screens.  The first
real one, named Altair by a magazine editor's 12-year old daughter who
liked a Star Trek episode that took place in that solar system, was
built around a jazzed-up calculator chip, the Intel 8080.

Produced as a do-it-yourself kit by a company called MITS, it came with
256 bytes of memory. Since it lacked a keyboard, you entered data by
flipping switches on the front panel in binary sequence.  Because it had
no screen, you had to decode the patterns of blinking lights it
produced.  And it didn't let you store data permanently.

Two teenagers, Bill Gates and Paul Allen, who had started a company
called Traf-o-Data to make Intel-based computers to measure how many
cars ran across a rubber hose stretched across the road, saw a picture
of the Altos on the cover of an electronics magazine and developed a
version of BASIC for it.  Gates upgraded AltairBasic later to include
primitive file and disk-storage abilities.

The pair changed the comapny name to Microsoft; by 1976 the industry had
progressed to the point where Gates was railing against software pirates
(although back then pirates were making copies of punched paper tape
rather than floppies).  A few years later Gates became the worlds
youngest billionaire.

Soon after the Altair introduction, some hard-driving salespeople became
the market leaders with their Imsai 8080, another Intel-based machine,
and the first computer aimed squarely at small businesses.  To let users
store data efficiently, Imsai developed a floppy disk drive whose motors
and circuits were run by a program called CP/M (Control Program for
Microcomputers), which had been licensed from Intergalactic Digital
Research - later shortened to Digital Research.  DR's Gary Kildall had
created CP/M while working for Intel, to scale down the PL/1 programming
language into a version that would fit on a microcomputer.  Intel hadn't
seen much value in this brand new CP/M thingy and had given Kildall all
rights to it.

The early versions of DOS owe quite a bit to CP/M.  In fact, things like
the .COM formats of CP/M and DOS and the basic system calls were so
similar that programmers could easily switch up from CP/M.  CP/M uses a
command interpreter called CCP (or Console Command Processor) and two
fundamental system files called BDOS and BIOS to handle files and I/O.
This arrangement is nearly identical to the DOS COMMAND.COM, IBMDOS.COM
and IBMBIO.COM system trio.  What was especially remarkable about CP/M
was that it took up only 4k of space.  DOS 1.0 doubled that and it has
been mushrooming ever since.

Chain store magnate and leathercrafter Charles Tandy tried
unsuccessfully to buy computers from Imsai, then ended up creating his
own system, the TRS-80, which contained a Zilog Z-80 chip, 4096 bytes of
memory, and came fully assembled rather than in a kit.  To shave a few
dollars off the price he designed it to work entirely in upper case
letters.  Customers snapped them up as fast as Tandy could make them.

What really kicked the microcomputer business into high gear, however,
were a handful of visionary renegades from California and Florida.

In 1976 Steve Wozniak and Steve Jobs, whose early careers included a
stint peddling "black box" devices to circumvent telephone toll billing
computers, bought some 6502 chips and built a few hundred copies of a
computer they christened the Apple I.  It too worked only in upper case
letters.  Their second-generation Apple II offered an optional floppy
disk drive, and sold several orders of magnitude more.  On reason for
its success was a revolutionary program called Visicalc.  Visicalc
turned Apple's little computer into a powerful financial analysis and
planning machine.

But not all operating systems run on all chips.  CP/M worked on the 8080
and Z80 chips but not on Apples 6502.

Microsoft's Gates and Allen moved to Seattle to write programming
languages for computers built around Intel and Zilog processor chips and
running CP/M. Dismayed that their languages woudln't work on Apples,
they considered translating them all to run on Apples proprietary
operating system, an arduous job.  Instead they joined the crowd,
licensed CP/M, and sold it along with an add-in board that had a Zilog
chip on it.  Apple owners could stick the Microsoft boards in their
computers and run any CP/M program.

But Apple was an 8-bit machine and Gates and Allen felt Intel's new
16-bit processors were the wave of the future.  So did a local board
maker called Tim Patterson who worked for Seattle Computer Products.
All earlier processor chips managed data in 8-bit chunks.  Intel's new
8086/8088 chips finally doubled the processor power.

Patterson's board had an 8086, and he needed a new 16-bit operating
system to take advantage of it.  Digital Reserach had announced that it
was going to tweak CP/M into a 16-bit version, but Patterson couldn't
wait.  In early 1980 he started work on one of his own design called
QDOS (Quick & Dirty Operating System) that was to become 86-DOS (or
SCP-DOS) and eventually just plain DOS. To make it relatively easy for
programmers to translate CP/M softwrae to his system, he retained
fundamental CP/M file management structures and mimicked the way it
loaded and ran programs.  Patterson then added a device known as a File
Allocation Table (FAT) which Gates had used in Altair disk BASIC, and a
few other refinements.

--------------------------------------------------------------------
DOS 1.0

In late 1980, IBM approached Microsoft and revealed that it was
considering production of its own 8-bit computer.  Vast helpings of
money, ego, pride and general corporate paranoia have tempered details
of this exchange, but the popular version is that IBM wanted Microsoft
to design a version of BASIC for its new machine that would be delivered
on a ROM chip inside the IBM chassis. Gates was happy to oblige and
wanted to do a whole raft of languages, as the story goes, but argued
that IBM should consider a 16-bit computer instead. When IBM asked who
made a 16-bit operating system, Gates is said to have suggested that IBM
contact Gary Kildall - and supposedly even dialled the phone to Digital
Research himself.

Here the tale gets very fuzzy.  According to the one telling it, when
IBM trooped down to see Digital Research the next day, Kildall's wife
and lawyer were hesitant to sign IBM's strict non-disclosure agreements.
Other stories had Kildall out flying his plane while IBM executives
waited impatiently for him to land.  Microsoft's own publications admits
that Gates and Allen had heard rumours that Kildall was about to buy a
version of BASIC from one of Microsoft's competitors and give it away
free with every copy of CP/M-86, which didn't exactly endear him to
them.

In any event, Gates and Allen bought the rights to Patterson's 86-DOS
for around $50,000.00 and proposed to IBM that Microsoft provide BASIC,
FORTRAN, Pascal, COBOL, an 8086 Assembler, and the 86-DOS operating
system for the new computer.  IBM agreed in November 1980, and on August
12, 1981 introduced the world to its new PC and its main operating
system, Microsoft's DOS 1.0, which IBM called PC-DOS.  At the
announcement, IBM announced that users would someday be able to buy two
competing operating systems: CP/M-86 or the UCSD-p System. But IBM
priced these much higher than DOS, and since they were late reaching the
market and received little support from other software vendors, they
went nowhere.

Computer hardware isn't useful without software. And IBM initially
didn't offer much software - EasyWriter, a bug-filled version of a
mediocre word processor; Adventure, a mainframe text game adapted to run
on microcomputers, a DOS version of VisiCalc, some artless business
software, a few Microsoft languages and one or two other packages.

The most powerful and popular programs back then - dBase II and WordStar
- ran only on CP/M systems.  One of IBM's highest priorities was to make
it easy for software vendors to translate programs from CP/M to DOS, and
it was smart enough to know that making it easy meant making the two
operating systems similar.

Many of the DOS features that todays users truly hate - such as overly
brief eight-character filenames with three letter extensions, terse
prompts like A>, and unfriendly or missing messages (such as the stony
silence in response to file deletions) were directly swiped from CP/M.
So were underlying structures such as File Control Blocks (FCB's),
Program Segment Prefixes, and reliance on CP/M's memory loading
addresses.

DOS did change a few CP/M quirks.  File lengths that were rounded off in
CP/M were reported precisely in DOS.  Some commands were turned around
to be more logical.  Programmers could treat I/O to peripheral devices
like printers and screens the same way that they handled files.  DOS's
variable record lengths made disk storage and retrieval far more
efficient.  DOS could load and run larger .EXE format files in addition
to the smaller CP/M-standard COM-format files which were limited to 64k.
And it could keep a program loaded but inactive in memory, so that users
could pop it onto their screens whenever they needed it .  DOS relied on
a FAT, first used by Bill Gates and Tom Patterson, to keep track of
where all the various pieces of a file were stored, and could read and
write more than one piece of data at a time, which speeded up disk
activity significantly.

DOS at least theoretically made it easier for programmers to create
their own version of the COMMAND.COM user interface, although none has
ever caught on. But the ability to run scripts of commands called batch
files became very popular. When DOS reported inevitable errors, it did
so in a slightly friendlier way than CP/M, and it handled severe
hardware errors far better. DOS also sniffed out new disks automatically
while CP/M forced users to log such changes manually, and it kept track
of the date files were created or changed.

It also split the COMMAND.COM interface into several parts, a mixed
blessing. When the PC was new, and IBM offered it with a maximum of 64k
memory, this feature was welcome since it let other space-hungry
software temporarily steal a few thousand characters of memory from DOS.
When the user was finished with the software he'd have to insert his DOS
disk in drive A: so that the part of DOS that hadn't been stolen could
reload the part that had.  Trouble was that a short time later users
were buying systems with ten times that much memory, and the amount of
space freed up by this technique was relatively insignificant. But
floppy disk users still had to contend with keeping a DOS disk handy to
reload the "transient" stolen part.

One of the worst things about the first IBM PC and its operating system
was that it could store only 160k of data on floppy disks that were
clearly capable of storing twice as much.  A standard floppy has two
usable sides, but the first PC - and DOS - could only use one.

The initial DOS release contained several nasty bugs.  In mid-1982, IBM
began shipping PC's with double-sided drives, and released DOS version
1.1 to handle the new storage abilities and to fix several of the early
bugs.  Microsoft then released its own generic upgrade which it called
MS-DOS 1.25.

The initial release of DOS was tiny and relatively crude.  Version 1.0
TIME and DATE commands were separate short programs rather than part of
the main COMMAND.COM interface.  While the DOS 1.0 directory listing
noted the date a file was changed or created, it ignored the time.  The
MODE command couldn't set communications speeds or protocols, or let the
PC's parallel printer adaptor work with the many serial printers on the
market.  The COPY command wouldn't join or concatenate several small
files into a larger one.  The onscreen messages and prompts were
especially ugly and cryptic.

DOS 1.1 fixed all these problems, or at least made them less irritating.
The biggest problem of all was that DOS was still constrained by its
CP/M heritage and its clanky internal structure.  And although IBM
doubled the amount of disk storage space from 160k to 320k, users found
this was far from enough.  They demanded disks that were faster and more
efficient.

----------------------------------------------------------------------
DOS 2.0

In March 1983, IBM announced its PC-XT, a beefed-up version of the
standard PC that came with three addtional internal expansion slots (for
a total of eight), a ten-megabyte hard disk, and a new version of DOS -
2.0.

The new hard disk - which IBM referred to as a fixed disk - could hold
the equivalent of more than 31 double-sided floppies.  But all that
storage space introduced a new problem.  DOS 1.0 and 1.1 had crammed all
the file information for each floppy disk into a single directory.  A
single-sided floppy had room for a maximum of 64 directory entries, and
you could fit only 112 on a double-sided diskette.

Keeping track of all the files on a hard disk meant coming up with a new
DOS file management and directory system.  CP/M had dealt with large
disks by splitting them (or partitioning) them evenly into smaller ones,
an inelegant and inefficient solution.  But UNIX, an operating system
developed by the phone company, could handle vast volumes of files with
relative style and ease. Microsoft had licensed UNIX, and was offering a
version of it called XENIX.  At the heart of UNIX/XENIX was a
hierarchical or tree-structured directory system that gave users lots of
flexibility in dividing up the available storage space.


Microsoft adapted this tree-structured system as the core of a
significant new incarnation of DOS - version 2.0.  But it blundered
slightly.  UNIX used a slash (/) to identify the subdirectory levels
that acted as branches on the tree structure.  But earlier DOS versions
used slashes as switches (command suffixes such as the /s in FORMAT /s)
that turned optional features on and off. Microsoft substituted a
backslash (\) to identify subdirectory levels, which eneded up confusing
a whole generation of DOS and UNIX users, and caused much consternation
abroad where foreign keyboards often didn't come with backslash
characters.

IBM and Microsoft also had to find a way to deal with an explosion in
the number and type of devices that manufacturers were stamping out for
the PC. One of DOS's main roles was to manage the communication between
the PC and anything else you could hook up to it.  If DOS had to contain
explicit internal tables and instructions for every possible device it
would end up being absurdly large and cumbersome.

Microsoft designed a new version of DOS with hooks in it so that
manufacturers of peripheral equipment could supply installable device
driver programs to hook the new hardware effortlessly into the operating
system.  Users could load these specific additional sets of instructions
into DOS as needed, through a special CONFIG.SYS file.  This file also
let users customise their systems by telling DOS how much memory it
should devote to disk buffers, how many files could be opened
simultaneously, and how frequently DOS should check to see whether a
user was hitting the Ctrl-Break panic button.  It also made it easy for
users to load a replacement command processor if they weren't planning
on using the standard COMMAND.COM, or tell DOS if they were storing
COMMAND.COM in an unusual place.  And it gave users extended screen and
keyboard control with ANSI.SYS, a special device driver supplied by
Microsoft in an unsuccessful attempt to standardise certain parts of the
user interface across different computer systems.

Version 2.0 introduced several new commands most users can't live
without.  Its hard to believe, but versions 1.0 and 1.1 didn't have any
way to clear the screen.  CLS now does it.  This version was also the
first to offer batch file commands such as ECHO, IF, FOR, SHIFT and
GOTO.

DOS 2.0 also introduced a raft of commands and utilities to give users
cintrol of hard disks although some, like the pathetic TREE command -
designed to "display the entire directory structure" are a bad joke.

Perhaps to compensate, IBM threw in a gem that has become a power users
best friend - the mini-assembler in DEBUG.  You can become an absolute
computer whiz without ever having to learn a single thing about hex
codes or assembly language.  But if you want to climb inside your system
and stomp on the gas pedal, there's no better way.  Its a lot easier
than you think.

One of the most significant changes in DOS 2.0 was the way it dealt with
files internally.  To remain compatible with CP/M, DOS 1.0 and 1.1 kept
track of critical file information with a device called a File Control
Block (FCB).  But as programs became more sophisticated they were forced
to manipulate the data stored in FCB's directly, which was awkward and
potentially dangerous.  And FCB's had no provision for subdirectory
names.

DOS 2.0 introduced file handles as an optional way to streamline disk
management.  Once DOS knew about a particular file in a partcular
directory, it could act on that file simply by using a two-character
shorthand code called a handle.  In addition, DOS established five
special handles that made it a snap to switch inputs and outputs.
Normally the keyboard and screen (which DOS collectively refers to as
CON:) act as both the input and output.  But DOS 2.0 let users
"redirect" input or output to or from printers, files or other devices.
And it allowed users to "pipe" streams of data through filters to do
things like turn uppercase files into lowercase, strip out extraneous
characters, or sort records into alphabetical order.

The sample filters DOS 2.0 provided are actually pretty useful.  They'll
let you slog through files and skim out the text you want saved or
discarded. They'll sort your directories (or any list of names, numbers,
or items that have carriage returns at the end of each entry) lightning
fast.  And they'll paue your displays for you so you'll never again have
text scrolling off your screen too quickly to read.

To top it off, DOS 2.0 provided rundimentary background processing.  DOS
was originally designed as a sigle-tasking operating system that let
users do just one thing at a time.  But the designers of version 2.0
threw in a PRINT spooler command that could print out one file while a
user was actively working on another.

While spoolers are nothing new, this one was.  Spoolers normally lop off
a big chunk of RAM and trick DOS into sending files to memory that were
really destined for the printer.  Then they wait for a quiet moment and
re-route the files onto your printed page.  When they're done printing,
however, they still hold on to all the memory they've hogged - very
inefficient.  The DOS PRINT command reads files off your disks and uses
your precious memory much more sparingly.  It watches how you work, and
about 18 times each second, if you're not doing something at that
precise moment, it sneaks a few characters at a time to the printer.
Your computer is so fast that this "time slicing" technique makes it
appear that it's doing two things at once, when it really alternating so
quickly you don't notice it.  And the best part is that if you happen to
be working on something that tales more of your computer's constant
attention than usual, you can adjust how frequently the spooler tries to
intercede.

In addition, DOS increased the number of 512-byte sectors from eight to
nine. While DOS kept the number of tracks at 40, this upped the storage
capacity of each disk from 320k to 360k.  DOS 2.0 also let users add
electronic volume labels to their disks, gave them access to part of the
memory called the environment, in which critical system settings were
maintained, made memory allocation more efficient, and threw in more
than two dozen new commands.

With so many changes and features, you'd think a brand new version of
DOS would be filled with insidious bugs.  And you'd be right.  In March
1984, a year after the PC-XT introduction, IBM released DOS 2.1 to
excise these software errors - and to handle a hardware error it
produced called the PC-Jr.

The less said about the PC-Jr the better.  While it provided more
colours onscreen in graphics mode than IBM's real microcomputers, and
came with three-voice sound that could play chords, it was utterly
non-standard inside and out.  In fact, it used such a cheap, flimsy disk
drive that DOS 2.1 had to slow down the drive performance so the thing
wouldn't crash.

What's especially sad about all this is that lots of users still rely on
DOS 2.1, which means they have to put up with unacceptably slow disk
access times even though the're using machines that could handle much
higher speeds.  A pity, and another good reason to upgrade to a more
recent DOS version.

Microsoft ended up producing versions 2.05, 2.11, 2.2 and 2.25 with an
added modicum of international time, date, keyboard and currency
support.  These may come in handy if you need to work with Korean
Hangeul or Japanese Kanji characters; today Microsoft sells DOS in more
than 60 assorted languages.

-----------------------------------------------------------------------
DOS 3.0 and Beyond

IBM's PC and PC-XT brought microcomputing into the mainstream of
American business. But these machines were both relatively slow and
small. In fact, they weren't really even true 16-bit computers. While an
Intell 8088 CPU ticked away inside each one, their system bus - the
connecting pathway of wires that ties the CPU to all other parts of the
system - was a bottleneck that worked in eight-bit chunks only.

IBM introduced its first genuine 16-bit system, the PC-AT. Compared to
IBM's earlier releases, this was a real rocketship of a computer. Inside
was an 80286 CPU with a trick up its sleeve - it could run everything
IBM and Microsoft could throw at it and it could also accomodate
Microsoft's ne operating system, OS/2. And it needed a new version of
DOS - 3.0.

Engineers measure computer performance in many ways. Two prime
indicators are the clock speed of the CPU and the average access time of
the hard disk. The faster the clock, the faster a computer processes
instrauctions and the faster just about everything runs. The speedier
the hard disk access time, the sppedier it can read and write programs
and data. The higher the clock speed and the lower the average access
time, the faster the system.

Both the PC and the PC-XT run at 4.77 MHz. IBM sold many different
brands of hard disks for the XT, and the average access time was
somewhere between 80 and 115 milliseconds.

The official clock speed of IBM's first AT was 6MHz, but users quickly
found out that by replacing a socketed $4 quartz crystal on the main
system board they could boost performance to 8 or even 9 MHz without any
ill effects. (IBM is famous for publishing ultraconservative
specifications and holding down performance a bit on purpose.) When IBM
discovered that users were hot-rodding their systems, they wrote a
program that acted as a speed governor and put it on a system ROM chip
to stop tampering.

All of IBM's AT hard disks ran at 40ms or better. Unfortunately, the
first big batch of AT's came with CMI-brand drives that crashed in
shockingly high numbers. Hard disks - rapidly spinning precision-crafted
aluminium platters with magnetic coatings on both sides - need precise
feedback on where their magnetic read/write heads are located. If the
location mechanism is off by even a tiny bit the heads can write bad
data over good or wipe out important tables that tell the computer where
files are stored.

Hard disk heads actually "fly" on a cushion of air directly above the
surface of the platters themselves. All decent hard disks retract or
'park" the magnetic heads when the power goes off so they don't sink
down and plough furrows into your data. To save money, CMI disks used
what many believe was an unreliable implementation of "wedge servo"
technology. Most other hard disks used a dedicated positioning surface,
a whole side of a hard disk platter contained no data and instead acted
as a map to those that did. But not CMI's AT drives. And these drives
didn't park the heads when you turned the power off. The heads just
dropped down onto the data and scarped against it.

IBM never really admitted doing anything wrong, but tens of thousands of
users know different. If this black episode in computing history had a
silver lining, it was that it taught hard disk users how absolutley
imperative it is to make frequent and comprehensive backup copies of
their work.

In any event, a PC-AT running at 8MHz was 67 percent faster than a
standard PC or PC-XT. The PC-AT hard disk was twice as fast as the
speediest XT disk drive, which made everything seem a lot more
energetic, and ended up turbocharging disk-intensive applications such
as database searches. On top of all that, the PC-AT could deal with
memory in 16-bit chunks, while the PC and PC-XT had to lumber along with
half that amount. Clone makers soon started producing respectable AT
imitations that chugged along even faster. To avoid falling behind the
competition too much, IBM eventually had to nudge the performance upward
slightly each time it refined the AT design.

IBM's newest PS/2 line of hardware and many high-performance clones on
the market make even the fastest AT look like its standing still. With
CPU sppeds of up to 25MHz, hard disk access times in the high teens, and
a 32-bit bus that moves data four times as efficiently as the one in the
original PC, these hot new micros give refrigerator-sized minicomputers
a good run for their money.

The PC-AT was originally delivered with a 20-megabyte hard disk,
although subsequent versions have enhanced both the speed and capacity
of its hard disk. Still, 20Mb storage meant that backin it all up would
take 56 standard 360k floppies. The mind reels. Apparently, so did
IBM's. It dropped a quad-density floppy disk drive, with 1.2Mb capacity
into each AT. IBM refers to these as high-capacity drives. Unhappy users
have called them something else, unprintable here.

The PC-AT's new DOS, version 3.0, could handle the increased floppy disk
storage. But it also had to understand every other floppy format. In the
space of six years IBM had introduced single-sided and double-sided
drives, with eight or nine sectors, and in double or quad density, so
downward compatibility meant having to deal with:

         * 160k single-sided 5.25"
         * 180k    "         "
         * 320k double-sided "
         * 360k    "         "
         * 1.2M    "         "

Well, there's compatibility and there's compatibility. Out of the 25
different possible combinations of using the DISKCOPY command to move
information from one to the other, 16 won't work.

What's more, IBM's PS/2 hardware uses 3.5" diskettes, a whole new ball
game. These smaller diskettes are sturdier, easier to transport, and
vastly more efficient at storing information. IBM characteristically
complicated matters by producing two different and slightly incompatible
3.5" disk formats, one that holds 720k and one capable of storing 1.44Mb
of data.  The 5.25" 320/360k format won't go away very quickly, since so
many vendors have made it the standard for program distribution.  But
the PC-AT's 1.2Mb drive and the low-end PS/2 720k diskette are orphans.

         * note: This is US. 720k was very popular in NZ.

All IBM microcomputers gave users a clock and calendar that could stamp
DOS directory listings with the time and date files were created or most
recently updated.  But users had to set the clock each time they started
their systems, unless they had purchased an add-in board with a
battery-driven clock on it (and most did).  The PC-AT came with its own
internal battery run clock/calendar, but it wasn't until DOS 3.3 taht
users could reset it easily.

Program developers live by a rule: "The software is never finished."
Each release of DOS or any commercial application is quickly followed by
a version with bug fixes, sppedups, and forgotten utilities.  Market
considerations force manufacturers to ship everything at the earliest
possible date.  Microsoft officially admits that DOS 3.0 "wasn't quite
ready" at the introduction of the PC-AT.  But it went out the door
anyway.

Today, virtually every desk in America has a telephone in one corner.
IBM's vision of the future puts a computer terminal next to it, and
strings all the terminals together electronically.  Networking computers
this way has lots of advantages.  It lets users "mail" messages and
files to each other, and share centralised databases of information.
Networks can also let users share expensive peripherals like plotters or
laser printers, but it doesn't make much sense installing three $1500
network hookups to share one $1500 laser printer. Today networks are
interesting to a minority of users only - although the number grows as
the costs and headaches associated with using them are reduced. Networks
introduce their own special set of problems.  Two users may reach for
the same database records at the same time, and something has to mediate
the conflict.  Worse, giving users access to centralised information
means someone has to decide who gets access to what.  And then something
has to keep track of the authorisation levels and enforce it all, and
make sure the right data is routed to the right place.

Microsoft designed DOS version 3.0 to support the official IBM PC
network hardware.  Unfortunately, the AT was ready before the network
features of DOS were, and the Microsoft designers had to deactivate
these features in the final product.  They finally turned them back on
again in version 3.1, released in November 1984.  But DOS 3.1 was picky;
it would handle only certain well-behaved networks.

DOS 3.0 introduced a streamlined method for integrating FCB's and
handles. And while it provided a small handful of new features, none was
a radical departure from DOS 2.1. In fact, IBM stated in its
documentation that "DOS 3.0 does not replace DOS 2.1". But it did fix a
nasty 2.1 oversight, by making it harder for users to format their hard
disks if they weren't careful. (It wasn't until version 2.0 that DOS
even asked for confirmation if users tried to delete all the files on
their disk with a single ERASE *.* command.) Version 3.0 also let users
make files read-only to prevent any inadvertent changes or deletions.

Version 3.1 provided better "aliasing" features to combine drives and
directories and to trick DOS into treating a subdirectory like a disk
drive. DOS 3.2 introduced users to 3.5" diskettes (although the tools it
provided to do this were downright awful), made it easier for them to
upgrade DOS versions, and gave them one of the best but least-used new
commands, XCOPY.

DOS 3.3, tossed off by IBM pitchment at the introduction of the PS/2 as
an "interim solution" and the operating system for a string of dogs
including the PC Convertible, Portable PC, and PC-Jr, deftly excised a
heap of user headaches, and added a few sizzling new tricks.

As all seasoned hard disk users are aware, working efficiently on a hard
disk machine means pigeonholing related programs and data in electronic
file drawers called subdirectories. But users who are currently working
in one subdirectory often want to execute a program or look at data
stored in another.

Since version 2.0, users had been able to tell the PATH command to check
specified subdirectories for executable files (with filenames ending in
COM, EXE or BAT). This let users run programs in other subdirectories,
but it didn't let them get at distant data. Nonexecutable files remained
immune to even the most comprehensive search, forcing power users to
purchase commercial "path extender" programs, or struggle with the DOS
3.1 SUBST command.  The DOS 3.3 APPEND command made this process
relatively easy - and a lot cleaner.

Serial ports are your system's main gateway to the world.  Version 3.3
let MODE cruise along with four serial ports rather than two (OS/2 can
use 8) and cruise along at 19200 baud, double the previous limit.  And
IBM finally recognised that at least twice a year users need to reset
their internal IBM clocks and provided a way of doing this without
hunting down their Diagnostics disks, figure out which option adjusts
the time, and grind through all the irritating preliminary screens.  The
3.3 TIME and DATE commands automatically adjusted IBM CMOS memory to
reflect the change.

Another improvement was the newfound ability of the DOS 3.3 ATTRIB
command to gang-process all files within a directory and its related
subdirectories, which made it easier to create backups and prevent
inadvertent file deletions or changes.  Unfortunately, the same process
used by ATTRIB can also hide files from casual snooping, but IBM's
manual won't show you how.

The original DOS architects preferred working with 512-byte disk
sectors, and used a FAT to keep track of what data was in which sector.
When they designed the FAT they used 16-bit addresses, which allowed a
maximum of 65,536 (64k) table entries.  This clamped a firm 32Mb limit
on the size of any physical hard disk (512 x 65,536 = 33,554,432 bytes).
To get around this limit, manufacturers either had to increase the
sector size, which made their hardware non-standard and relatively
wasteful, or come up with an entirely new file management scheme, which
ended up being even more non-standard.

IBM tuned DOS 3.3 to divide physical hard disks into smaller "logical"
drives, and fixed the FDISK command to create extended DOS partitions in
addition to the primary ones they were able to carve out previously.
Each extended partition could be further subdivided into logical drives
32Mb or smaller, with their own drive letters.  Compaq quickly made it
even easier to use enormous hard disks, by introducing DOS 3.31 that
boasted 32-bit FAT addresses.

To expedite directory searches with the new generation of larger hard
disks, DOS 3.3 provided a filename cache utility called FASTOPEN.
Caches keep track of things in memory rather than on disk, which speeds
many processes up significantly.  FASTOPEN notes the location of files
and subdirectories (which are really just special classes of files) the
first time you hunt for them, and then directs DOS to the exact spot on
the disk the next time you have to deal with them.

The DOS BACKUP command had always been so pathetic that an entire
industry of third-party backup software has evolved to fill the gap.
While the version 3.3 enhancements aren't going to put those developers
out of business, they will bring some users back into the fold.  Under
previous DOS versions you had to format a tall stack of disks before
strating the backup process.  If you ran out of formatted disks halfway
through you had to abort and either find a way to catch up, or start the
whole elaborate, time-consuming procedure all over again.

In DOS 3.3 the BACKUP command can summon the FORMAT command and prepare
unformatted disks if necessary - with certain irritating restrictions.
And you have to limit the disks and drives you use; it still can't mix
and match.  The DOS 3.3 BACKUP works faster and more efficiently than
older versions, by copying all smaller files into a single enormous one,
and by creating a guide file that tells DOS how to take the big file
apart and restore it properly again later.  It also creates a log file
telling you what it did where.

The DOS 3.3 RESTORE gives you added flexibility in restoring backed-up
files by date and time, as well as those deleted or changed since you
last backed up, or files that are no longer on the target disk.  Better
yet, while older versions of RESTORE let you accidentally obliterate
your system files (IBMBIO.COM, IBMDOS.COM and COMMAND.COM or their
MS-DOS counterparts) with older backed-up versions, DOS 3.3 RESTORE
won't.  Inadvertently mixing versions of hard disk system files is like
replacing a heart surgeon in the middle of an operation, with a tree
surgeon.

Batch files can take the anguish out of tricky or repetitive tasks.  The
first thing most power users do when they create a batch file is turn
off the display by issuing an ECHO OFF command.  This stops DOS from
littering your screen with the frantic prompts, messages, and other
electronic graffiti a batch file generates.  But users had no authorised
way of preventing this ECHO OFF command from adding to the screen
clutter itself.  Version 3.3 users can prevent such clutter simply by
prefacing any command with an @ symbol.

in addition, DOS 3.3 could CALL one batch file from within another,
execute it, and then return to the original batch file and continue
executing it.  Doing this kind of "nesting" under previous versions of
DOS meant that each batch file had to load its own separate version of
COMMAND.COM to do its work, exit, and drop back to yet another version -
which was sort of like restarting a movie every time a latecomer walked
into the theatre.  DOS 3.3 also documented environment variables for the
first time, which let users pass information back and forth from
application to application.

DOS 3.0 to 3.2 came in five international flavours. By executing the
appropriate KEYBxx command, users could transform the keyboard into
British, German, French, Italian or Spanish modes.  With version 3.3,
IBM totally revamped the way DOS handled foreign alphabets.  IBM's
manuals have gotten a bit better over the years, but the three abtruse
and seemingly contradictory chunks on this international support
virtually defy comprehension.  IBM prefaced its long appendix-like
treatment of the topic with the caveat "You can use code page switching
without fully understanding everything about it." After poring over the
text, you'll know why this was included.  And if you live in the United
States, you'll take one look, put your hand over your heart, and say,
"Thank God we're Americans."

For the first time, DOS 3.3 set a default number of disk buffers based
on your system's configuration.  Under previous versions, it assumed
evert PC and XT user really wanted only two and every AT user only
three.  DOS will now sniff out what hardware you have available, and
allocate from two buffers (minimal RAM, no hi-density floppies, 3.5"
diskettes, or hard disks) to 15 (and machine with more than 512k of
RAM).  If you're using a big hard disk, you may want more than 15.
Better yet, try a commercial file cache program.

The Future

IBM and Microsoft continue to add and adapt messages and prompts; the
infamous and ubiquitous DOS error message "Abort, Retry, Ignore?" became
a more chilling "Abort, Retry, Ignore, Fail?" under DOS 3.3.  This isn't
exactly friedly.  When Microsoft originally designed DOS it published
all the specifications so that other manufacturers could replace the
COMMAND.COM user interface with something different, such as a visual
shell.  Several amateurs have tried, but nothing has come of it.
Microsoft itself tried an easier interface called WINDOWS, but users
have resisted, calling the interface overly large, ungainly, and slow.
Microsoft and IBM have adapted Windows as a graphic front-end called
Presentation Manager for OS/2.

DOS needs all sorts of help; way back when the EGA was first introduced,
for instance, users complained that the MODE command couldn't deal with
any of the new graphics settings, such as 43 or 50 lines of text, or the
far better colour selection.  Now that VGA is becoming the norm, DOS
still doesn't directly handle anything better than CGA.

(PC-DOS 4.0 and 4.01 have been released since this was written; MODE now
supports high resolution text displays and multiple serial ports.
However few users have switched to 4.0 or 4.01 in New Zealand,
particularly after the OS was slammed by the foreign press as being full
of bugs, inconsistent in its user interface, and a memory hog.  Some
Wellington BBS users have successfully changed to DOS 4.01, and have
experienced no real problems in their non-demanding environment.  Most
users with only 640k will probably prefer to stick with DOS 3.2 or 3.3,
and those with large disks to 3.31.)

[And since *that* was written, most new computers are sold with a 40MB
disk minimum and DOS 4.01. The product is now quite stable. DOS 5.0's
release is imminent.]

----------------------------------------------------------------------
Downloaded from The Cave III, where the SysOp had uploaded it.  Don't
know whether he wrote it, or found it somewhere, but it's not bad!
