from the VisiCalc-clones dept.
Hacker Tavis Ormandy has ported IBM's Lotus 1-2-3 to GNU/Linux and writes in his blog about how he did it. It's 100% usable even if the DOS emulation version still looks a little better.
Yikes - it's an original unstripped object file from 1-2-3. There are nearly 20,000 symbols including private symbols and debug information.
Why would Lotus ship this? It's so big it must have required them to phyiscally ship an extra disk to every customer? Could it have been a mistake, accidentally left on the final release image?
I had so many questions, but I'm not old enough to have any experience with SysV, so I asked the greybeards on alt.folklore.computers if they had seen this before and why this might have happened.
The answer was that this is probably deliberate - dlopen() was not widely available on UNIX in the early 90s, so there was no easy way to load native plugins or extensions. To solve this, vendors would ship a bunch of partially linked object files with a script to relink them with your extensions – Clever!
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. For example, I really wanted to hook into the rasterizer in my driver so that I could improve the appearance of graphs in the terminal... but it was just too complex to understand without documentation.
The spreadsheet package Lotus 1-2-3 was the fast follower to Bricklin and Frankton's VisiCalc, and between the two the electronic spreadsheet was the main reason why every small business quickly went out and purchased a microcomputer. Other killer apps include e-mail, Mosaic, and PageMaker. That is to say the program was valuable enough on its own to warrant the purchase of a whole microcomputer.