May 8th, 2018

Hard Stare

Updating DR-DOS 7 -- now with downloads!

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.