Legacy OSes Archive

Looking ahead to 30 years of FreeDOS

In a few days, 29 June, FreeDOS will turn 30. This happens to make it one of the oldest, continuously active open source projects in the world, originally created because Jim Hall had heard Microsoft was going to kill DOS when the upcoming Windows 95 was going to be released. After seeing the excitement around Linux, he decided it an open source DOS would be a valuable time investment. I still used DOS, and I didn’t want to stop using DOS. And I looked at what Linux had achieved: people from all over the world shared source code with each other to make this full operating system that worked just like Unix. And I thought “If they can do that with Linux, surely we can do the same thing with DOS.” I asked around on a discussion board (called Usenet) if anyone had made an “open source” DOS, and people said “No, but that’s a good idea .. and you should do it.” So that’s why I announced on June 29, 1994, that I was starting a new project to make an open source version of DOS that would work just like regular DOS. Jim Hall For an open source implementation of what was a dead end and now is a dead operating system, FreeDOS has been remarkably successful. Not only are there countless people using FreeDOS on retro hardware, it’s also a popular operating system for DOS gaming and running old DOS applications in virtual machines. On top of that, many motherboard makers and OEMs use FreeDOS to load firmware update tools, and some of them even offered FreeDOS as the preinstalled operating system when buying new hardware. With the ever-increasing popularity of retrocomputing and gaming, FreeDOS clearly has a bright future ahead of itself.

The history of DR-DOS

I’ve always found the world of DOS versions and variants to be confusing, since most of it took place when I was very young (I’m from 1984) so I wasn’t paying much attention to computing quite yet, other than playing DOS games. One of the variants of DOS I never quite understood where it was from until much, much later, was DR-DOS. To this day, I pronounce this as “Doctor DOS”. If you’re also a little unclear on what, exactly, DR-DOS was, Bradford Morgan White has an excellent article detailing the origins and history of DR-DOS, making it very easy to get up to speed and expand your knowledge on DOS, which is surely a very marketable skill in the days of Electron and Electron for Developers. DR DOS was a great product. It was superior to other DOS versions in many ways, and it is certainly possible that it could have been more successful were it not for Microsoft Windows having been so wildly successful. Starting with Windows 95, the majority of computer users simply didn’t much care about which DOS loaded Windows so long as it worked. There’s quite a bit of lore regarding legal battles and copyrights surrounding CP/M and DOS involving Microsoft and Digital Research. This has been covered in previous articles to some extent, but I am not really certain how much would have changed had Microsoft and Digital Research got on. Gates and Kildall had been quite friendly at one point, and we know that the two mutually chose not to work together due to differences in business practices and beliefs. Kildall chose to be quite a bit more friendly and less competitive while Gates very much chose to be competitive and at times a bit ruthless. Additionally, Kildall sold DRI rather than continue the fight, and DRI had never really attempted to combine DR DOS with GEM as a cohesive product to fight Windows before Windows became the ultimate ruler of the OS market following Windows 3.1’s release. Still, it was an absolutely brilliant product and part of me will always feel that it ought to have won. Bradford Morgan White I can definitely imagine an alternative timeline in which Digital Research managed to combine DR-DOS with GEM in a more attractive way, stealing Microsoft’s thunder before Gates’ balls got rolling properly with Windows 3.x. It’s one of the many, many what-ifs in this sector, but not one you often hear or read about.

Palm OS gets a TOTP application

Still rocking your Palm OS device, but mutter under your breath every time you need to log into a website or service with two-factor authentication? Sick of carrying around an Android or iOS device just so you can log in on your Palm PDA? Worry no more, your prayers have been answered, you can finally throw that Android or iOS garbage into the sun. Get your 2-factor codes on your Palm, just like Google Authenticator. Unlike Hotpants (an old port of a J2ME phone app), this version takes up much less space and supports all Palm OS versions. Nathan Korth You can now generate 2FA codes on your Palm device. This is wild, and I absolutely love it. I might if set it up on one of my dozens of Palm OS devices and just put it next to my keyboard for easy access. There’s no cooler way to handle 2FA than this.

Running CP/M on the C128

I owned a C64 and was familiar with the C128, but this one was odd. It wasn’t running any games, color graphics or playing music. Instead, it was connected to a monochrome monitor which always displayed either a weird command line prompt or what seemed to be some boring professional writing software. I soon came to find that it was running CP/M and WordStar, one of the first word processors for microcomputers. My daily obsessive visits to the computer shop led to some friendship with the owner, to the point that he’d let me in and play with the machines. So, I played with CP/M and learned how to use WordStar. Well, in case you didn’t notice, I own a C128DCR now. This blog is about how I got CP/M, WordStar, and other fun ancient software apps running on it. Celso Martinho CP/M, of course, was the primary influence of DOS.

Running GNU on DOS with DJGPP

I remember using DJGPP back in the 1990s before I had been exposed to Linux and feeling that it was a strange beast. Compared to the Microsoft C Compiler and Turbo C++, the tooling was bloated and alien to DOS, and the resulting binaries were huge. But DJGPP provided a complete development environment for free, which I got from a monthly magazine, and I could even look at its source code if I wished. You can’t imagine what a big deal that was at the time. But even if I could look under the cover, I never did. I never really understood why was DJGPP so strange, slow, and huge, or why it even existed. Until now. As I’m in the mood of looking back, I’ve spent the last couple of months figuring out what the foundations of this software were and how it actually worked. Part of this research has resulted in the previous two posts on DOS memory management. And part of this research is this article. Let’s take a look! Julio Merino Having access to tools such as this, including the source code, must’ve been a huge deal to a lot of people, even if ti was “strange, slow, and huge” as the author notes.

Beyond the 1 MB barrier in DOS

Last month, we covered Julio Merino’s article about going from 0 to 1 MB in DOS, and now they’re back for breaking beyond that 1 MB barrier. I know I promised that this follow-up article would be about DJGPP, but before getting into that review, I realized I had to take another detour to cover three more topics. Namely: unreal mode, which I intentionally ignored to not derail the post; LOADALL, which I didn’t know about until you readers mentioned it; and DOS extenders, which I was planning to describe in the DJGPP article but they are a better fit for this one. So… strap your seat belts on and dive right in for another tour through the ancient techniques that DOS had to pull off to peek into the memory address space above the first MB. And get your hands ready because we’ll go over assembly code for a step-by-step jump into unreal mode. Julio Merino What’s amazing is that I don’t even remember having to deal with any of this while using MS-DOS back in the day. Games tended to use DOS extenders automatically (DOS/4G!), but I don’t remember if I ever had to set up any of the DOS above-640k stuff manually.

From 0 to 1 MB in DOS

Since the last article on the text-based IDEs of old, I’ve been meaning to write about the GCC port to DOS, namely DJGPP. As I worked on the draft for that topic, I realized that there is a ton of ground to cover to set the stage so I took most of the content on memory management out and wrote this separate post. This article is a deep dive on how DOS had to pull out tricks maximize the use of the very limited 1 MB address space of the 8086. Those tricks could exist because of the features later introduced by the 80286 and the 80386, but these were just clutches to paper over the fact that DOS could not leverage the real improvements provided by protected mode. Julio Merino The DOS memory story is a string of hacks upon hacks that somehow managed to work – and that still work today.

86-DOS revisited

Recently, the oldest known versions of DOS were uploaded to the internet, and Michal Necasek dove into the floppy images. Even after more than 40 years(!), old software releases and pre-releases can still surface. In the case of 86-DOS 0.11 and 0.34 it’s practically a miracle, since there were probably never very many copies in existence. For the first time since the early 1980s, FAT formatted floppies with the primordial 16-byte directory entry format have come to light. The old 16-byte directory entries were gone by 86-DOS 1.0 in April 1981 and of course never appeared in any public PC DOS release. These prehistoric versions of 86-DOS allow us to fill in further missing pieces in the puzzle of DOS origins. It is fascinating to follow how DOS developed from almost nothing to a multi-million dollar business in the course of just a few years. Michal Necasek It started out so humbly. Yet, here we are, in 2024, and variants of DOS still have their uses in certain niches. An incredible legacy, for sure.

CP/M ported to to 30-year-old digital typewriter

CP/M is an operating system dating to the mid-1970s that found its niche giving cheap 8-bit home computers the flexibility, if not the power, of expensive workstations. The Brother SuperPowerNote was a fancy and “very weird” portable typewriter from the early 1990s. David Given ported the former to the latter, creating a freakishly versatile laptop. The source code is on github! Rob Beschizza And now I’m browsing eBay for electronic/digital typewriters again. There’s so many of them! And they all look so awesome and fun! Please stop me! One day I’ll finally pull the trigger.

Don’t waste money on a math coprocessor they said

I tried to launch BattleTech over and over and had zero success. I couldn’t figure out why it was struggling on my model 80 board, where it runs just great on 86Box. What is going on? One thing I had stumbled upon was that if I launched an ancient Infocom game in a DOS box, and then launched BattleTech it had a much higher chance of running. But this did not always equate to it working. How is launching an old COM file from the early 80’s excise the ‘devil’ of some 1988 EXE from running? As the title suggests, it’s got to do with the math coprocessor. I know I say this often, but I’m so glad people dive into these sorts of things decades later to figure out what’s going on. It makes for great reading.

Browsing the WWW on a 1980s IBM PC using MicroWeb

Do you ever sit at your 1981 vintage IBM PC and get the urge to pop onto that newfangled ‘WWW’ to stay up to date on all the goings-on in the world? Fret not, because Al’s Geek Lab has you covered with a new video, which you will unfortunately have to watch on a device that was made at the very least in the late 1990s. What makes this feat possible is a miniscule web browser called MicroWeb, created by jhhoward, that will happily run on an 8088 CPU or compatible, without requiring any fiddling with EMS or similar RAM extensions. Anything is possible, if you just want it hard enough.

CP/M-65: CP/M on the 6502

This is a native port of Digital Research’s seminal 1977 operating system CP/M to the 6502. Unlike the original, it supports relocatable binaries, so allowing unmodified binaries to run on any system: this is necessary as 6502 systems tend to be much less standardised than 8080 and Z80 systems. (The systems above all load programs at different base addresses.) Currently you can cross-assemble programs from a PC, as well as a working C toolchain with llvm-mos. For native development, there’s a basic assembler, a couple of editors, and a BASIC. You need about 20kB to run the assembler at all, and of course more memory the bigger the program. The usefulness of this project is debatable, but that doesn’t make it any less cool.

Zilog’s forgotten operating system: Z80-RIO

When it comes to famous operating systems for the Z80 and similar Zilog processors, the first and maybe only one to come to mind is CP/M, which was even made its presence known on the dual-CPU (8502 and Z80) Commodore 128. Yet Zilog also developed its own operating system, in the form of the comprehensively titled Z80 Operating System with Relocatable Modules and I/O Management (Z80-RIO for short). With limited documentation having survived, Ralf-Peter Nerlich has set out to retain and recover what information he can on RIO and the associated Programming Language Zilog (PLZ) after working with these systems himself when they were new. Catchy name, and awesome work to try and recover as much about it as possible.

Thirty years ago: MS-DOS 6.00, DoubleSpace, and MultiConfig

In addition to several new full-screen utilities, like DEFRAG to defragment your hard disk (licensed from Symantec), MSBACKUP to efficiently backup your hard disk (also licensed from Symantec), and MSAV to check for viruses (licensed from Central Point Software), there were a number of new command-line programs, such as CHOICE, DELTREE, MOVE, MSCDEX, and SMARTDRV. But the biggest addition to MS-DOS 6.00 was a new feature called DoubleSpace (dubbed “MagicDrive” internally) that automatically compressed everything on your hard disk, providing up to “double” the amount of effective disk space – or more, or less, depending on how compressible your files were overall. Despite growing up with MS-DOS since our first computer was a 286 PC in 1990 or so, I never used any of these advanced features. I was 6-7, and just wanted to play games, basically. It’s only now that I’m much older that I actually admire the crazy things people have managed to squeeze out of – or into – DOS.

A virus for the BBC Micro

In short, no, I’m not making it up, I did make a virus back in 1990. I don’t have the source code, unfortunately, for two reasons. It was over thirty years ago. I’m a chronic hoarder, but seemingly not that chronic. The floppy discs containing the code were confiscated. No, my mum wasn’t proud, indeed she didn’t even know about this episode at the time, and still doesn’t. Not that she’d understand what a computer virus is, even if I attempted to explain it to her. What a great story.

AHA-154xB and ASPI4DOS.SYS

The other day I had a pressing “need” to examine the behavior of Adaptec 154x and compatible SCSI HBAs and their DOS drivers. I found the hard way that the AHA-154xB does not work with Adaptec’s last DOS drivers from circa 1999. That includes the drivers still available for download (ASPI4DOS.SYS version 3.36), as well as the driver shipped with OEM versions of Windows 98SE (ASPI4DOS.SYS version 3.36S). The error message is far from enlightening; effectively the driver acts as if there were no HBA at all. It turns out it’s an incredibly interesting story.

dosfetch: a neofetch clone for DOS

You know neofetch, the little tool that shows you some nicely formatted system information in your terminal? Even though I find Archey 4 vastly superior, neofetch is still cool and often serves as an inspiration for people to create similar fun tools for other platforms. In this case – DOS, through dosfetch. That’s really all there’s to it – it’s just a fun little toy for a classic operating system.

Here’s why the best IMAX movies still need a Palm Pilot to work

About a small town’s worth of people pointed me to this on Mastodon, so here it goes: In an IMAX theater, the m130’s job is to control the quick turn reel unit, or QTRU for short. (For many years, it appears, a non-emulated m130 sat holstered in most theaters.) The QTRU’s job is to control the platters, which are those large horizontal shelves where all of a film’s many reels are stitched together, stored, and then quickly spun out to and from the projector. The IMAX 1570 projector moves film at a little under six feet per second, so it’s all happening really fast. The m130 is apparently crucial to keeping the thing humming — “PALM PILOT MUST BE ON ALL THE TIME,” reads a notice above an image of a different m130 that has since been passed around the internet — but doesn’t often need to be used. “I’ve never had to interact with the Palm Pilot,” says one person familiar with the technology. “It’s really just a status screen.” Its job is to keep the QTRU moving at a consistent speed and to help keep the film’s video in sync with its audio. This doesn’t surprise me one bit. In environments like these, if something works, and has been working reliably for decades, there’s really no reason to change any of it. This application is probably quite simple, but since there’s only a very small number of theaters out there even capable of showing 70mm film, and it doesn’t look like it’s a format on the up and up.