Lotus 1-2-3 for UNIX (from 1990) ported to Linux
Not a joke. Really happened. The story is fascinating.
This is absolutely amazing.
Remember Lotus 1-2-3? The legendary spreadsheet program from the 1980s and 90s?
Well someone (a mad scientist named Tavis Ormandy) just found an incredibly rare UNIX version… and ported it, without access to the full source code, to modern Linux.
I should take a moment to emphasize something:
Lotus 1-2-3 for UNIX was released for “UNIX System V/386” in 1990.
Linux did not exist in 1990.
Chew on that for a moment.
Not a joke. This really happened. And the story is absolutely fascinating. I recommend reading the whole gosh darned thing.
Here’s some key parts (in a nutshell).
This guy likes Lotus 1-2-3, right? Like… a lot. So he finds a friend who used to run a warez dialup BBS (you know… for pirated software) in the 1990s. That friend had a tape backup of a bunch of the old files from on that BBS. And, as he puts it…
“It turns out that the BBS also had a warez copy of Lotus 1-2-3 for UNIX. This was widely thought to be lost – I’m told it couldn’t compete with a more popular UNIX office suite called SCO Professional, so there were not many copies sold.”
That, all by itself, is a pretty big deal.
Then… things took a fascinating turn.
“While poking around, this one directory caught my eye, what exactly is this? That 123.o file is huge, even compressed it had to be split across two disks. Let’s take a closer look…
Some of you, right now, are saying “oooohhhhh, dang!”
“Yikes - it’s an original unstripped object file from 1-2-3. There are nearly 20,000 symbols including private symbols and debug information.”
With that object file… things really opened up…
“I can’t tell you how useful this discovery was – the debug information answered so many questions I had about Lotus 1-2-3 internals! This was a direct source port from DOS, so it mostly worked the same way but now I had debugging data.”
“Okay… but there is one more big question, I know that
objcopycan convert COFF object files to ELF, the format used by Linux. It seems like a long shot, but is it possible I could link this into a native Linux program?”
I’ll spoil it for you… totally possible.
“Incredibly, after a bunch of hacking it actually runs without crashing!”
For all the details of what it took for this technical wizard to get an old UNIX build of Lotus 1-2-3 to run (natively!) on Linux… I seriously recommend reading his article on it. He has also posted his work on GitHub.