liam_on_linux: (Default)

My occasional project to resurrect DR-DOS and make something vaguely useful from it continues, and in the spirit of "release early, release often", I thought that someone somewhere might enjoy having a look at some of my work-in-progress snapshots.

So while there is nothing vastly new here, building a bootable DOS VM is not completely trivial without what is now some very old knowledge, so I thought these might help someone.

The story so far...

In the OpenDOS Enhancement Project, Udo Kuhnt took Caldera's FOSS release of DR-DOS 7.01 (which they had renamed OpenDOS) and added in FAT32 support and some other things. Caldera spin-off Lineo (later DeviceLogics) implemented these in later, closed-source versions of DOS, but they were not officially FOSS. They also used bits of FreeDOS and were later withdrawn. DeviceLogics has since gone out of business.

Udo's disk images are on Archive.org but they aren't bootable. I've made bootable images you can download. I have a bootable VM of DR-DOS 7.01-08 but I need to clean it up and give it some spit and polish. I also added back the ViewMax GUI from DR-DOS 6.

Meantime, what I have uploaded here are three Zip-compressed VirtualBox VDI files. A VDI is the hard disk of a VirtualBox VM. These contain FAT16 hard disks.

The quick way to use them:


  1. Download the image.

  2. Run VirtualBox. Create a new VM. Call it (e.g.) "DR-DOS 6". You must have "DOS" in the name for Virtualbox to correctly configure the new VM for DOS! Otherwise you must manually do that part.

  3. When you get to the "create or add hard disk stage", stop!

  4. Switch to the file manager. Unzip the file. Put it in the newly-created VM's directory.

  5. Go back to VirtualBox. Pick "add an existing hard disk". Browse to the file you just moved into place. Click it, and click "Add".

  6. Now you're back at the "choose a disk" dialog. Pick the newly-added one.

  7. Finish VM setup.

Now you can start the new DOS VM and enjoy.
liam_on_linux: (Default)
Something interesting that has come out of Caldera's release of the original DR GEM code as FOSS 20 years ago, and I totally missed it...



This is a great ~40min intro to EmuTOS.

Nowadays there are two different all-FOSS OSes for STs, compatibles & ST emulators.

I knew about AFROS and have played with it -- it's a compilation of various ST GEM enhancements and replacement modules and so on, mostly based on the FreeMINT multitasking OS, to create a complete multitasking GEM OS for advanced STs.

It mainly targets the ARANYM emulator.

The one bit that wasn't free was basically the ST ROM – TOS itself. TOS shared ancestry with both DR's CP/M-68K and what later became DR-DOS. A very rough description is a DOS-like kernel and drivers for the ST hardware, with floppy drive support, just enough to launch the GEM desktop. No command line.

The AFROS project wrote their own ROM, and back when I was actively looking at ARANYM, they described it as something like "just enough ROM to boot our OS, and not very compatible with actual ST software".

Well what I didn't know until this evening is that the EmuTOS project has taken on a life of its own and they released v1.0 about 6 months ago. It's a complete single-tasking GEM replacement for STs: in other words, a whole replacement ROM. It replaces the BIOS and OS kernel and all of the GEM stack, and that part is based on Caldera's GEM code.

They have something that is built in GCC, can just about fit into the smallest ST ROM chip (192kB) and is broadly compatible with Atari TOS 3. For later models it can go into a bigger ROM chip which gives you a command-line and even multi-language support.

Or you can boot it from floppy, or you can load it as an app from real Atari TOS if you have enough memory. You can even boot it on Amigas, with some restrictions currently.

I'm really impressed. I found this very interesting viewing.

Source etc: is on GitHub. There's a slightly dated Wikipedia article too.

There are or were other ST OSes around. A popular one was called MagiC, and at least part of this has been made FOSS recently. It came with emulators to allow it to run on macOS and Windows. Snag: it's largely in assembler, apparently.

But EmuTOS is slightly different from things like AFROS, FreeMINT or MagiC, inasmuch as it's able to run on original unmodified STs (and the Amiga!) and can be freely distributed with emulators.

A company called Atari still exists and still holds the old copyrights, so the original Atari ROMs are not strictly distributable.

Incidentally, I found this via the m68k.info page, which hosted another presentation this weekend, on the Sinclair QL OS descendants Minerva and SMSQ/E.



Not really any relevance to GEM etc. but may be of interest to folk – it was to me.

I found that because I was asking if there were any 16-bit homebrew computers these days, and was told about the amazing Kiwi 68K.
liam_on_linux: (Default)
Commodore's Jack Tramiel got a very sweet deal from Microsoft for MS BASIC, as used in CBM's PET, once of the first integrated microcomputers. The company didn't even pay royalties. The result is that CBM used pretty much the same BASIC in the PET, VIC-20 and C64. It got trivial adjustments for the hardware, but bear in mind: the PET had no graphics, no colour, and only a beep; the VIC-20 had (poor) graphics and sound, and the C64 had quite decent graphics and sound.

So the BASIC was poor for the VIC-20 and positively lousy on the C64. There were no commands to set colours, draw or load or save graphics, play music, assemble sound effects, nothing.

I.e. in effect the same BASIC interpreter got worse and worse with each successive generation of machines, ending up positively terrible on the C64. You had to use PEEKs and POKEs to use any of the machine's facilities.

AIUI, CBM didn't want to pay MS for a newer, improved BASIC interpreter. It thought, with some justice, that the main uses of the VIC-20 and C-64 were games machines, using 3rd party games written in assembly language for speed, and so the BASIC was a reasonable saving: a corner it could afford to cut.

The C64 also had a very expensive floppy disk drive (with its own onboard 6502 derivative, ROM & RAM) but a serial interface to the computer, so it was both dog-slow and very pricey.

This opened up opportunities for competition, at least outside the US home market. It led to machines like (to pick 2 extremes):
• the Sinclair ZX Spectrum, which was cheaper & had a crappy keyboard, no joystick ports, etc., but whose BASIC included graphics and sound commands.
• the Acorn BBC Micro, which was expensive (like the C64 at launch), but included a superb basic (named procedures with local variables, allowing recursion; if/then/else, while...wend, repeat/until etc., and inline assembly code), multiple interfaces (printer, floppy drive, analogue joysticks, 1nd CPU, programmable parallel expansion bus, etc.)

All because CBM cheaped out and used a late-1970s MS BASIC in an early-1980s machine with, for the time, quite high-end graphics and sound.

The C64 sold some 17 million units, so a lot of '80s kids knew nothing else and thought the crappy BASIC was normal. Although it was one of the worst BASICs of its day, it's even been reimplemented as FOSS now! The worst BASIC ever lives on, while far finer versions such as Beta BASIC or QL SuperBASIC languish in obscurity.

It is also largely responsible, all on its own, for a lot of the bad reputation that BASIC has to this day, which in turn was in part responsible for the industry's move away from minis programmed in BASIC (DEC, Alpha Micro, etc.) and towards *nix programmed in C, and *nix rivals such as OS/2 and Windows, also programmed in C.

Which is what has now landed us with an industry centred around huge, unmaintainable, insecure OSes composed of tens of millions of lines of unsafe C (& C derivatives), daily and weekly mandatory updates in the order of hundreds of megabytes, and a thriving industry centred around keeping obsolete versions of these vast monolithic OSes (which nobody fully understands any more) maintained and patched for 5, 10, even 15 or so years after release.

Which is the business I work in.

Yay.

It sounds ridiculous but I seriously propose that much of this is because the #1 home computer vendor in the Western world kept using a cheap and nasty BASIC for nearly a decade after its sell-by date.

CBM had no real idea what it was doing. It sold lots of PETs, then lots more VIC-20s, then literally millions of C64s, without ever improving the onboard software to match the hardware.

So what did it do next? A very expensive portable version, for all the businesspeople who needed a luggable home gaming computer.

Then it tried to sell incompatible successor machines, which failed -- the Commodore 16 and Plus 4.

Better BASIC, bundled ROM business apps -- why?! -- but not superior replacements for its best-selling line. Both flopped horribly.

This showed that CBM apparently still had no real clue why the C64 was a massive hit, or who was buying it, or why.

Later it offered the C128, which had multiple operating modes, including a much better BASIC and an 80-column display, but also an entire incompatible 2nd processor -- a Z80 so it could run CP/M. This being the successor model to the early-'80s home computer used by millions of children to play video games. They really did not want, need or care about CP/M of all things.

This sold a decent 5 million units, showing how desperate C64 owners were for a compatible successor.

(Commodore people often call this the last new 8-bit home computer -- e.g. its lead designer Bil Herd -- which of course it wasn't. The Apple ][GS was in some ways more radical -- its 16-bit enhanced 6502, the 64C816, was more use than the C128's 2 incompatible 8-bit chips, for a start -- and came out the following year. Arguably a 16-bit machine, though, even if it was designed to run 8-bit software .

But then there was the UK SAM Coupé, a much-enhanced ZX Spectrum clone with a Z80, released 4 years later in 1989. Amstrad's PcW 16, again a Z80 machine with an SSD and a GUI OS, came out in 1995.)

There was nearly another, incompatible of course, successor model later still, the C65.

That would have been a worthy successor, but by then, CBM had bought the Amiga and wasn't interested any more -- and wisely, I think, didn't want to compete with itself.

To be fair, it's not entirely obvious what CBM should have done to enhance the C64 without encroaching too much into the Amiga's market. A better CPU, such as the SuperCPU, a small graphics upgrade as in the C128, and an optional 3.5" disk drive would have been enough, really. The GEOS OS was available and well-liked.

GEOS was later ported to the x86, as used in the HP OmniGo 100 -- I have one somewhere -- and later became GeoWorks Ensemble, which tried to compete with MS Windows. PC GEOS is still alive and is now, remarkably, FOSS. I hope it gets a bit of a renaissance -- I am planning to try it on my test Open DR-DOS and IBM PC-DOS 7.1 systems. I might even get round to building a live USB image for people to try out. 
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.

May 2025

S M T W T F S
    12 3
45678910
11121314151617
1819 2021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 20th, 2025 05:54 pm
Powered by Dreamwidth Studios