In honor of the IBM PC turning 30, I thought I’d tell some stories about my experiences with the operating system introduced with it, PC DOS (aka MS-DOS).
Early in my career I worked with a guy named Dan. Dan liked me well enough, 249 working days of the year, but I always, without fail, managed to do something that got me a stern lecture on that 250th day. I guess it didn’t help that he had a son a year older than me, so it made it easier to look down on me.
One day for some reason Dan told me it was impossible to make a DOS boot disk that could contain both CD-ROM and network drivers. He’d tried it, and no matter what he did, he ran out of room.
When someone calls something impossible, I take it as a challenge. And within an afternoon, I think I found at least a half dozen ways to get a computer booted to a DOS prompt with both network and CD-ROM drivers loaded.
My first trick was just to use DOS 4.0. The system files for DOS 4 were small enough that everything would fit, just barely. That was the quickest and easiest solution, but I remembered that DOS 4 was buggy. I didn’t know the specifics, because when DOS 4 was on the market, I was still using 8-bit computers at home and my knowledge of DOS was limited. I knew how to format disks, get directories and run programs, but nothing advanced. In hindsight, just using DOS 4’s command interpreter probably was perfectly safe, but I wasn’t comfortable with that, so I looked for some other ways to do the job.
You can cheat by formatting a disk with a third-party utility that creates fewer root directory entries. You don’t really need very many, and if you run out of room for files, just make a subdirectory and dump your stuff there. I can’t remember if that trick was enough to gain sufficient space for Windows 98’s DOS plus everything else Dan wanted, or not. I had a cousin who spent his career working for Tektronix, Compaq, and HP, and he showed me that trick as a way to save space, and therefore disks, and therefore money. And there was a time when the money you could save that way was significant.
Another way to cheat is to use aftermarket utilities. The FreeDOS equivalent of MSCDEX.EXE was a bit smaller, and there were a few CD-ROM drivers floating around that were smaller than the usual oakcdrom.sys that Windows 98 uses by default. But that approach was a bit radical for Dan. Dan always always used the Microsoft tool, and when the Microsoft tool wasn’t sufficient, he always always used the third-party program that Microsoft had licensed to make the cut-down version they gave you for free. I think just those two substitutions allowed me to limbo under the limits of a standard floppy disk, but I didn’t want to argue with Dan whether the substitute programs were safe to use. I’m pretty sure I didn’t even show him that disk.
Ultimately, I used my signature approach, putting everything I could into a zip file, loading ramdrive.sys, extracting the contents to the ramdisk, then loading them into memory. In my younger days, I think there were people who said ramdisks were my answer to everything. That worked, and not only was I able to make the thing fit, I could even put extra network drivers in. So I added a boot menu that asked whether you had a 3Com or an Intel network card and it loaded the appropriate driver.
A year or two later, Bart Lagerweij showed up with his modboot, which would do everything my boot disk did and then some, so I switched to using those. But we used my quick-and-dirty ramdisk boot disk for a good while at that job.
Rob O’Hara told some other war stories to commemorate DOS’s birthday. He mentioned edlin. You pretty much have to mention edlin. It was the worst aspect of DOS. I’ve used edlin a couple of times, but my memory has repressed any useful knowledge of it. What I can still remember is the alternative most of us used: copy con:
Here’s how it worked. You’d type copy con: config.sys and hit enter. Then you could just type whatever you wanted, line by line. You could backspace and stuff, but once you hit enter, you were committed. So you’d type in each line, followed by enter, and when you were done, you’d hit ctrl-z to write out the file.
This was considerably easier than wrangling with edlin. That should scare you.
Before DOS 5’s edit came along, pretty much everyone had a favorite third-party text editor that they used when copy con: wasn’t sufficient. But since not every computer had a hard drive in those days, pretty much everyone had to use copy con: at one time or another.