Legacy OSes Archive
This summer, I embarked on a side project to create a brand-new Palm OS game, and after less than two months of intermittent coding, I’m excited to announce that it’s ready to be released to the public! ↫ Captain’s Quarters The game in question is a top-down minigolf game, and works on devices running Palm OS 3.5 and higher, in both monochrome and colour, and there’s high-resolution support for devices running Palm OS 5.0 and higher. Sadly, my own Palm OS devices were all drained of battery so I couldn’t quickly load it up and play it on real hardware in time for this post (rest assured, my T|X is currently charging), but you can play it in your browser if you want to. Like any other top-down minigolf game, it’s simple and fun to play. The game’s creator, whose real name I can’t find so I’ll just refer to them by their blog’s name Captain’s Quarters, also wrote a published a post about the process of developing a Palm OS game in 2024. Especially the section on what is needed to code for Palm OS today is important if you’re also interested in picking this up. The best news is that developing a Palm OS game can be done on modern hardware, that saves me a lot of time not having to deal with virtual machines or having to set up an old PC running Linux. For getting a working compiler, I used prc-tools-remix, which is the same old compiler as in the old days, but it’s updated to work on a modern day Linux or OS X system. ↫ Captain’s Quarters People in general are often oblivious to just how advanced and capable both Palm OS and Windows PocketPC PDAs really were – most people never had one – and even more people are oblivious to just how vibrant the gaming scene on Palm OS was. My Palm OS devices were some of the best gaming handhelds I’ve ever had, and my love for jewel-matching games still goes strong today on Android, but it all started on Palm OS, the original mobile home of the original Bejeweled. Palm OS games got me through quite a few boring lectures and classes in university.
When one thinks of modern technologies like Thunderbolt, 2.5 Gigabit Ethernet and modern CPUs, one would associate them with modern operating systems. How about DOS? It might seem impossible, however I did an experiment on a relatively modern 2020 Thinkpad and found that it can still run MS-DOS 6.22. MS-DOS 6.22 is the last standalone version of DOS released by Microsoft in June 1994. This makes it 30 years old today. I shall share the steps and challenges in locating a modern laptop capable of doing so and making the 30-year-old OS work on it with audio and networking functions. This is likely among the final generation of laptops able to run DOS natively. ↫ Yeo Kheng Meng I was unaware that the legacy boot mode through a UEFI Compatibility Support Module (CSM) was being phased out on Intel systems (I can’t find anything definitive on what AMD is planning to do with CSM). This will definitely be an end-of-the-line kind of thing for people interested in running old, outdated operating systems on modern hardware, as doing so would require proper EFI support. I’m not actually salty about this at all by the way – there’s no place in modern PCs for something designed in 1981. We have ATX for that. Anyway, it turns out MS-DOS 6.22 actually runs pretty well on this 2020 Thinkpad X13 Gen 1. Of course you have to enable CSM, and disable secure boot and kernel DMA proection, but once that’s done, you can just install MS-DOS 6.22 like it’s 1994. Thanks to SBEMU, you can use modern sound cards in pure DOS mode, and due to various backwards compatibility affordances in network chipsets, you can even use some of those – even through Thunderbolt, which is just PCI over a cable, after all (more or less). Running MS-DOS on a modern laptop may not allow you to get the most out of your modern hardware, but at least you can run DOS games very well, as the benchmarks Meng ran show.
As you all know, I continue to use WordStar for DOS 7.0 as my word-processing program. It was last updated in December 1992, and the company that made it has been defunct for decades; the program is abandonware. There was no proper archive of WordStar for DOS 7.0 available online, so I decided to create one. I’ve put weeks of work into this. Included are not only full installs of the program (as well as images of the installation disks), but also plug-and-play solutions for running WordStar for DOS 7.0 under Windows, and also complete full-text-searchable PDF versions of all seven manuals that came with WordStar — over a thousand pages of documentation. ↫ Robert J. Sawyer WordStar for DOS is definitely a bit of a known entity in our circles for still being used by a number of world-famous authors. WordStar 4.0 is still being used by George R. R. Martin – assuming he’s still even working on The Winds of Winter – and there must be some sort of reason as to why it’s still so oddly popular. Thanks to this work by author Robert J. Sawyer, accessing and using version 7 of WordStar for DOS is now easier than ever. One of the reasons Sawyer set out to do this was making sure that if he passes away, the people responsible for his estate and works will have an easy way to access his writings. It’s refreshing to see an author think ahead this far, and it will surely help a ton of other people too, since there’s quite a few documents lingering around using the WordStar format.
CP/M is turning 50 this year. The ancient Control Program for Microcomputers, or CP/M for short, has been enjoying a modest renaissance in recent years. By 21st century standards, it’s unimaginably tiny and simple. The whole OS fits into under 200 kB, and the resident bit of the kernel is only about 3 kB. Today, in the era of end-user OSes in the tens-of-gigabytes size range, this exerts a fascination to a certain kind of hobbyist. Back when it was new, though, this wasn’t minimalist – it was all that early hardware could support. ↫ Liam Proven I’m a little too young to have experienced CP/M as anything other than a retro platform – I’m from 1984, and we got our first computer in 1990 or so – but its importance and influence cannot be overstated. Many of the conventions set by CP/M made their way to the various DOS variants, and in turn, we still see some of those conventions in Windows today. Had Digital Research, the company CP/M creator Gary Kildall set up to sell CP/M, accepted the deal with IBM to make CP/M the default operating system for the then newly-created IBM PC, we’d be living in a very different world today. Digital Research would also create several other popular and/or influential software products beyond CP/M, such as DR DOS and GEM, as well as various other DOS variants and CP/M versions with DOS compatibility. It would eventually be acquired by Novell, where it faded into obscurity.
NetWare 386 or 3.0 was a very limited release, with very few copies sold before it was superseded by newer versions. As such, it was considered lost to time, since it was only sold to large corporations – for a massive almost 8000 dollar price tag – who obviously didn’t care about software preservation. There are no original disks left, but a recent “warez” release has made the software available once again. As always, pirates save the day.
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.
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.
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.
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.
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.
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.
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.
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.
This is the precursor to MS-DOS and is likely the oldest known version to survive. (I had previously uploaded Version 0.34, which was at the time thought to hold that honor.) ↫ Archive.org The longer we wait, the harder it’s going to be to archive and preserve software like this.
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.
NetDrive is a DOS device driver that allows you to access a remote disk image hosted by another machine as though it was a local device with an assigned drive letter. The remote disk image can be a floppy disk image or a hard drive image. ↫ Michael B. Brutman An incredibly useful tool for modern-day DOS work.
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.
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.
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.
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.