liam_on_linux: (Default)
The evolution of DOS is interesting, and few remember the bigger picture now.

MS did a great deal when supplying DOS to IBM; MS retained the rights to sell it itself to other manufacturers.

So in the early days, there were other MS-DOS machines that weren't IBM compatible, such as the Apricot, Victor and Sirius.

But soon it became apparent that IBM compatibility was key. Compaq reverse-engineered the IBM BIOS and built the first clones, and the PC industry started from there.

PC DOS only came with IBM kit. MS-DOS came with everything else, but only with the computer. You couldn't buy it directly.

Excluding bugfixes, it went like this:

DOS 1: floppy-only machines.
DOS 2: added hard disk support (a single one) and subdirectories.
DOS 3: added support for 2 hard disks and networking. Then in a point release, support for 2 partitions per disk. Then in another point release, multiple "logical drives" in a single extended partition, so you could use all the space on a big drive... but still a max of 32 MB.

Other companies started tweaking their version of MS-DOS 3.3 to allow bigger than 32MB drives. The method used in Compaq DOS 3.31 is the one IBM and MS picked and it was used in DOS 4.

MS had a project to do a multitasking DOS 4 so didn't work on DOS 3.3 for ages. IBM did its own thing, and added big disk support, code page switching for international character sets, and a slightly clunky graphical launcher called DOSShell.

MS reluctantly released this as MS-DOS 4. It's the first release that required a bugfix fairly quickly. The multitasking version got abandoned: big disk support was needed more urgently. But DOS 4 had other gotchas -- such as using a lot more RAM so some apps couldn't run. (Everything in DOS had to fit into the first 640 kB).

DR noticed this. Its CP/M-86 was late, expensive and so lost out to MS, even thought it was the inspiration for SCP’s QDOS, the basis of DOS 1.0. DR had its own line of multitasking CP/M derivatives, for minicomputer like x86 machines with terminals: Concurrent CP/M, and later with DOS app compatibility, Concurrent DOS. It also had its own standalone single-user DOS, DOS Plus, which could run 3 background tasks on a single PC (if they all fitted into what was left from 640 kB after the OS loaded!)

So DR reworked DOS Plus, removed anything that broke compatibility, like the multitasking and CP/M app support, updated its MS-DOS compatibility with code from Concurrent DOS, and released it as DR-DOS. It bumped the version number from the last small, memory-efficient MS-DOS, MS-DOS 3.3, but included compatible large-disk support. So… DR-DOS 3.41.

It only offered it through OEMs at first. You couldn’t buy it at retail. But it proved moderately popular, a sort of cult hit. People heard about it. (This is all in the 1980s so pre-WWW.) People asked to buy it as an upgrade.


So DR had a great idea. There were already 3rd party memory managers for DOS on 386 computers, which let you map RAM into bits of the space between 640 kB and 1024 kB. You couldn’t run bigger apps using this space because it wasn’t contiguous with base memory, but you could load bits of DOS into them: keyboard drivers, CD drivers, mouse drivers, disk caches. Now, instead of having only 500-550 kB of 640 free for your apps after loading all your drivers, you got more room: up to 580-590 kB.

PC/MS-DOS 4 made this even more necessary as it used more memory than DOS 3.3.

DR wrote their own and bundled it into DR-DOS, and leapfrogged MS-DOS 4 by calling it DR-DOS 5. You could even move DOS itself out of the base memory, and have 620-630 kB free, without 3rd party tools. It was amazing. It also added a full-screen text editor, which incredibly MS-DOS still didn’t have.

And in a masterstroke, they made it available at retail. You could buy it in a shop and upgrade your PC or MS-DOS computer.

It sold extremely well and that made MS angry. It had never realised there was a potential retail market in after-market DOS upgrades or additional DOS features; it had been distracted by the success of Windows 3.

So MS copied the features of DR-DOS 5 and, playing catchup, made MS-DOS 5. All the features of MS-DOS 4, more free memory than ever with a memory manager, a full-screen editor (actually part of QBASIC, which was the GW-BASIC interpreter with the IDE from the QuickBASIC compiler.)

And sold it as a retail upgrade.

It did way better than DR-DOS 5 because it had Microsoft’s marketing muscle.

Novell bought DR around this time, intending to go against MS with a multi-pronged strategy: a better DOS, some best-of-breed apps - it also bought WordPerfect, now failing against Windows apps, notably Word of Windows and a Windows port of the Mac’s Excel spreadsheet. To rival Excel it bought Quattro Pro from Borland, a graphical spreadsheet for DOS.

Against Windows itself, Novell planned a Linux-based desktop, codenamed “Corsair”, which eventually became Caldera OpenLinux.

Novell bundled SuperStor disk compression, and re-implemented DOS Plus’ multitasking with TASKMAX.

Result, DR-DOS 6, AKA Novell DOS 6.

Microsoft responded with MS-DOS 6, still playing catchup. It added built-in antivirus and built-in backup, licensed in from other companies who never made the promised monies from selling enhanced versions. It also added disk compression. MS looked at licensing in disk compression from the #1 3rd party vendor, STAC, authors of Stacker. It got to see the code. In the end it didn’t go with Stacker but licensed Vertisoft DoubleDisk instead — presumably because it was cheaper. But it used some Stacker code in DoubleSpace.

STAC sued, won, and spend the money on moving out of the drive-compression market, knowing that drive sizes would grow and make its product irrelevant. It bought the ReachOut remote-control tool, and a server backup tool, and tried to rebrand as a server maintenance tools vendor, foreseeing the rise of internet-based remote admin — but too soon.

The result was MS-DOS 6.1, with no disk compression, while MS rewrote it to remove the stolen code.

Then MS-DOS 6.2, with DriveSpace instead of DoubleSpace, and the SCANDISK improved disk-repair tool.

Then MS-DOS 6.21 and 6.22, bug fixes.

Needless to say, Vertisoft made no money from add-on DriveSpace tools, and Central Point made no money from updates to DOS Antivirus or the bundled PC Backup. Both went under.

Novell responded with DR-DOS 7, with bundled peer-to-peer networking. MS didn’t bother as Windows for Workgroups already included that.

Then MS moved the goalposts with Windows 95, which actually bundled MS-DOS into Windows.

Novell did get Win95 running on top of DR-DOS, but there was no point and it wisely decided not to sell it. Once you had Win95, what DOS did underneath became rather irrelevant, memory management and all.

Novell gave up on the DOS line.

However, the Linux it sponsored did quite well. Caldera was the first desktop Linux I used as my main OS for a while. It had a great setup tool, LISA. It had the first graphical installer. It was the first distro to bundle the new KDE graphical desktop.

It was streets ahead of Red Hat or Debian at the time, let alone Slackware.

So Novell bought the Unix business off AT&T, and SCO, the leading PC UNIX vendor, and tried to get Caldera to integrate these 3 disparate products into a whole and a market.

It didn’t work but that’s a whole other story. What’s relevant to DOS is that Caldera spun off its DOS division as Lineo (who offered me a job once, as a leading DOS expert! But I didn’t want to move to Utah, partly because I like beer, partly because I’m atheist and thought it wouldn’t be too comfortable to live in the Mormon state.)

Lineo tried to make a business out of DR-DOS as a thin client OS. It didn’t work. But Lineo inherited what was left of Digital Research. The Concurrent DOS business had been sold off to 2 of its leading resellers, and that’s just barely still around, amazingly. The realtime OS FlexOS and multitasking X/GEM desktop had been sold off and was sold by IBM until recently, and now by Toshiba.

But the other DR properties — CP/M and the GEM desktop for DOS — Lineo made open source, and both are still around today.

Meanwhile, MS lost interest in DOS as it pursued Windows 95 OSR2, Windows 98 and Windows ME. Indeed the embedded DOS in NT has never moved beyond version 5.5. But IBM co-owns DOS, and it did not lose interest. It continued to develop it for years, including the new features from the embedded MS-DOS within Win9x. The result was IBM PC DOS 7, then PC DOS 2000 (briefly bundled with VirtualPC!) and finally IBM PC DOS 7.1. IBM eschewed MS's editor and BASIC, replacing them with a version of its own OS/2 and mainframe editor E, and replacing QBASIC with REXX. It's an interesting OS.

That is the last ever member of the mighty DOS dynasty. I've blogged about it before. It was never released on its own, but IBM's ServerGuide Scripting Toolkit is a free download and includes the kernel and utilities of PC DOS 7.1. You can combine this with the rest of PC DOS 2000 -- reminder, it was in VirtualPC, and VirtualPC was a free download, too -- and build your own complete working copy. I have it booting "on the metal" on a Thinkpad X200 and it's a pleasure to use -- and very, very fast. Free DOS apps such as Microsoft Word 5.5, the AsEasyAs spreadsheet, the WordPerfect Editor and so on all run fine and amazingly fast.
liam_on_linux: (Default)
While I was off work with a dislocated shoulder, I spent some time dabbling with DR-DOS. It's an OS I've long been fond of. What I was aiming to create were images that could make a bootable DR-DOS USB key and VM image.

The OS that made the PC great was MS-DOS, an adaptation of SCP QDOS, which broadly speaking was reverse-engineered from Digital Research's CP/M (itself now FOSS). Much later, DR responded with DR-DOS -- a cut-down version of Concurrent CP/M-86, without the multitasking but with near-perfect MS-DOS compatibility.

The first version was 3.41, basically a response to MS-DOS 3.3. DR-DOS added large disk support -- i.e. multiple FAT16 partitions of >32MB. MS-DOS 4 added little more except a graphical shell, DOSShell. DR-DOS 5 added support for mapping upper memory blocks and loading TSRs into them, and a graphical shell, ViewMax, a cut-down version of PC GEM. MS responded with much the same in MS-DOS 5. DR responded with DR-DOS 6, which bundled disk compression, and ViewMax 2. MS DOS 6 bundled disk compression too. Novell bought DR and responded with Novell DOS 7, which added peer-to-peer networking via Netware Lite -- but ViewMax 3 wasn't ready and was dropped. Most people were using Windows 3 on top of it by then anyway.

Microsoft's response was Windows for Workgroups, with peer-to-peer networking built into Windows, and then Windows 95, which built-in MS-DOS 7 too. And that was about it for DR-DOS. Novell spun its DOS and Linux division off as Caldera, which released DR-DOS 7.01 as open source. It then changed its mind and closed-sourced DR DOS 7.02 and the handful of later versions. The DOS business was spun off again as Lineo, which made subsequent releases, went broke and sold off DR-DOS again. It made it to DR DOS 8, but that was partly built from FreeDOS source code and was later withdrawn when this was demonstrated.

The history of DR-DOS after 7.02 is confused and confusing. Most of the Novell sources were lost, along with updates and fixes Novell made. Backups of some were later rediscovered  and the fixes incorporated, and it gained FAT32 and LBA support, but it's not freeware.

So DR-DOS 7.01 remained the latest free version. The OSS licence only covered the kernel and some core files. To build the FOSS version, you need the rest of Novell OpenDOS 7.

A heroic programmer called Udo Kuhnt picked up development of the FOSS DR-DOS 7.01 as the DR-DOS Enhancement Project. Its site is long gone now, although there are plenty of mentions of it. He released versions through to 7.01-08. Unfortunately, that is an incomplete work-in-progress version. But both it and the previous releases, which can be found for download in various places, don't work.

So I fixed it!

I started with the floppy disk image from ArchiveOS.org. First, it's the wrong size. VirtualBox can't mount it. VMware can.

I truncated it to exactly 2880 sectors using the advice from ``jleg094'' here. VBox mounts that. But it won't boot, nor in VMware -- it just displays 2 dots and freezes. Embarrassingly late in the troubleshooting process, I found why.

Foolishly, I didn't think to check what was on the image. I tried mounting it on a pre-booted VM and looked, and it's totally blank. There's nothing in the image at all.

So, I mounted the empty image file as a loop device under Linux, copied the boot files in there, followed by the rest of the files in the distro archive. Lo, it worked! It booted my VM just fine, and I had a DR DOS VM running 7.01-08. However, the older DR-DOS SYS command couldn't make a bootable hard disk from this. After further fiddling, I found how to fix that, too.

But I've decided for now to focus on the actual complete version 7.01-07.

I took the downloads for Enhanced DR-DOS 7.01-6 and 7.01-7, trimmed the boot disk image to work with Virtualbox, added the actual files to make the boot images bootable, and also added in the other updated commands -- SYS.COM, XCOPY, TASKMGR, SHARE, and their README files etc.

I have re-zipped them and put them on Dropbox.

Here are the links:
Please mirror these elsewhere.

To use them, the easiest way is to get a copy of DR-DOS 7.01, e.g. from BTTR Software or WinWorldPC. Install it in a VM. Reboot and check it all works.

Then, boot from one of my boot floppy images, SYS the hard disk, and copy the other files into C:\DOS or whatever you called the DOS directory.

Reboot and you should be in business.

To forestall some FAQs... A few people have asked me why I am bothering, since FreeDOS is out there and works fine. (I have contributed a few fixes to FreeDOS and my name was in the credits of at least one version that I have seen, which came as a surprise.) That's true and I do not mean to decry or lessen the work of the FreeDOS Project. However, for me, it's just a bit too different from old-style MS- or DR-DOS. Commands don't do what I expect, or the output is weirdly different. Config files are not named as they usually are. I'm told it's pretty compatible, all the same.

I just happen to prefer DR-DOS. Caldera is dead, Lineo is dead, and oddly, I now work for Novell. DeviceLogics owns the later versions of DR-DOS but it is no longer trading and as far as I know the project is no longer available for purchase -- although the rights to the entire line were up for sale.

Thus I am very much hoping not to be prosecuted for this. I have not added anything to the code, merely made the existing code usable.

My future plans include directly-downloadable VM and USB images. I have 7.01-07 working, complete with ViewMax 2, TaskManager multitasking in both text and GUI modes, mouse support, FAT32 and LBA support. I am hoping to add NTFS and USB support as well, if there seems to be any interest.

The reason I got interested in this was trying to get actual IBM PC DOS 7.1 working on my Thinkpad. This is not the same thing as the widely-available PC-DOS 7.01! IBM continued development of DOS after Microsoft lost interest. PC-DOS 7.01 included Y2K fixes. PC-DOS 7.1 also includes FAT32 and LBA support, many long-standing bugs in MS-DOS were fixed, and IBM offers it for free download as part of the Server Guide Scripting Toolkit. However, IBM does not permit re-distribution, and therefore I can't share the complete, fully-working version that I have built for my own use.

July 2025

S M T W T F S
  1234 5
6789101112
13141516171819
20212223242526
2728293031  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 13th, 2025 07:46 am
Powered by Dreamwidth Studios