Lotus 123 For Linux Is Like A Digital Treasure Hunt

Ever hear of Lotus 123? It is an old spreadsheet program that dominated the early PC market, taking the crown from incumbent Visicalc. [Tavis Ormandy] has managed to get the old software running natively under Linux — quite a feat for software that is around 40 years old and was meant for a different operating system. You can see the results in glorious green text on a black screen in the video below.

If you are a recent convert to Linux, you might not remember what a pain it was “in the old days” to install software. But in this case, it is even worse since the software isn’t even for Linux. The whole adventure started with [Tavis] wanting to find the API kit used to add plugins to Lotus. In theory, you could use it to add modern features to the venerable spreadsheet program.

The $395 software development kit wasn’t very common and there was also a Unix version of Lotus 123, but no one seemed to have a copy of that. [Tavis] eventually found someone who ran a circa-1990 BBS and had the data on tape. Turned out there was a hot copy of the SDK that he was able to use. But he noticed something else in the BBS’s list of files: the long-lost Unix version of Lotus!

An investigation found the installer used TD0 files which took some research. Luckily, a utility exists that can convert these to raw disk images. Inside was a very large object file. Apparently, in the days without dynamic loading, that object would be linked with plug in modules to install them.

The object file had all of its debugging information intact which shed a lot of light on the program’s internal operations. The old executables used COFF format but it is possible to relink it to an ELF file. Of course, it isn’t just that easy. [Tavis] wrote a small program to remove the old-style Unix system calls so they could be rerouted to Linux system calls. Some calls just pass through, but others need some translation due to differences in things like structure layout, sizes, and alignment.

In the end, it all worked but didn’t have a valid license. However, [Tavis] felt like since he did have a license and the software is abandoned, he was within his rights to crack the license check.

We are well-known abusers of spreadsheets around here. Of course, we aren’t the only ones.

84 thoughts on “Lotus 123 For Linux Is Like A Digital Treasure Hunt

    1. There are some people alive today, who don’t remember what the Old World trade center Complex was like; and that was just 20 years ago.

      Thise of us who were alive way back then(like me Fondly remember Lotus 1-2-3, and Other Relics of the past like WordStar, and (Ashton-Tste)dBase Ii and Dbase III+, and let’s Not forget, Clipper 4.,4.5 &5.0 (the primary programming language and compiler for dBase. Fond memeories, yes, though I still have some affinity for Quattro Pro, and Paradox (spreadsheet program &database programs( From Boreland) ๐Ÿ˜‰

      Have thought of giving a go at trying to run those nativelt in Linux… might give it a go sometime this year. ๐Ÿ˜‰๐Ÿ˜Š

      1. Clipper kind of sucked, but my next job back then was programming Dataflex, the KING of suck.

        Dataflex when a COBOL programmer gets drunk with a Basic programmer and they invent a language they can’t recall.

        Things aren’t perfect now, but at least I’ll never have to gen sys on netmare 2 again (off 360k floppies). I ultimately shot that hard drive with a 30-06. Felt good.

        1. I remember my father, who was a COBOL programmer at IBM trying to convince me that Dataflex was the FUTURE of programming!
          But he also tried to convince me he managed to reduce a 4k file to a single byte by running it through ZIP repeatedly (=

        2. I never worked with DataFlex but I did work with it’s ugly twin, Jyacc Jam, which was like visual basic 1.0 mated with COBOL. Absolutely atrocious. It turns out that was the first time I spent effort learning something and did not put it on my resume. I absolutely never wanted to work with it ever again.

  1. How far we’ve come… in 1985 I could wow co-workers by entering their power bills into 123 and actually DRAWING A GRAPH!!! We’d never been able to do that in V-Calc!!

  2. I used lotus 1-2-3 in my second year of uni. It was a godsend for accounting subjects. It blew my mind how much of a productivity gain it was to go from hand calculations on paper to digital!

      1. I’ve still got SC (SuperCalc) versions 3 and 5 able to run within wine. My dad still runs his business on SC5, but he’s being forced to move over since the tractor feed dot matrix printers are getting harder and harder to support.

      2. My household budget has lived in an sc spreadsheet (well, a succession of them) for the last decade or so. The key advantage of a text-based spreadsheet over a graphical one, from my perspective, is that I can trivially log in from anything, anywhere, and update it; all I need is a ssh client.

  3. In these days all the magazines asked what will bi the next lotus 123, excel and others will be the same idea better implemented, but actually no packaged software will be so successful.

  4. Lotus 1-2-3 also was one of the main reasons that Expanded Memory was created in the 80s (specification was known as EMS).

    EMS for DOS was an bank-switching mechanism that could be used on PC/XTs.
    There used to be an entire market of so-called LIMulators, a reference to Lotus/Intel/Microsoft.

    Some required external hardware, some used a swapfile on HDD, some used the MMU of 80386+, some used other forms of memory like XMS (Himem.sys/EMM286).

    https://en.wikipedia.org/wiki/Expanded_memory
    https://en.wikipedia.org/wiki/Lotus_1-2-3

    1. If you have the windows version, install with Bottles. freely downloadable from Flatpaks and Snaps. After install is done choose Applications it will take a moment to mimic !Windows 10) default 8 or 7 with all the required .dll and DirectX to name a few and your ready to go. GAMES also work with Proton powered by Steam. Bottles is configuring Wine so you don’t have to.

      1. I have Wordperfect for Linux, the one that directly ran on Linux. I did try it, but that was twenty years ago.

        It was a time of companies hoping for success with Linux, so they’d issue distributions and port their commercial software.

        1. I had the Linux version of Creatures: Internet Edition.

          That along with StarOffice had me convinced that the Linux Desktop revolution was right around the corner!

  5. Visicalc, Supercalc, those were cool. Lotus 1-2-3 was amazing. First used it on a Data General DG/ONE

    If only I had spreadsheets and word processors when I was in college…

  6. Great job! There’s definitely blind spots in digital preservation efforts. Anything beyond (foremost) games, OSs, compilers, and text editors trends to get ignored. But digital archeology (when that someday becomes a thing) will be interested in work as much as play.

    Speaking of which, someone get on finding and scanning the Cornerstone manual before it’s too late.

    1. “Thereโ€™s definitely blind spots in digital preservation efforts.”

      When V’ger returns, and we don’t have the right code, we’re screwed!

    2. Mister FPGA can help with that! Although most people use it for games, other software should also work since the cores are complete enough to simulate the whole system + os for a wide range of retro platforms.

  7. My school was cheap, we had to use “As-Easy-As” clone…. while strangely all machines had a copy of Excel on windows but no don’t bother with that, 1-2-3 is the industry standard, and that you shall learn.

    1. Ah, yes! As-Easy-As was a freeware/shareware(?) program that was available from the SIMTEL archive of PC software. It wasn’t as powerful as the commercial Paperback/Pocket Calc on my Commodore 128, but I used As-Easy-As at home for a number of years after I “graduated” to a PC XT. I’ve never used 1-2-3, but As-Easy-As worked well for me and was free.

  8. When I went to university in 1989 (Pharm. D program), we were the first year that did not learn programming in Pascal, but instead got trained in the state of the art programs of the day: WordPerfect 5.1, Dbase 3+ and Lotus 1-2-3.
    Too bad, would have preferred a start in programming.

    1. In school I went to, we had only one route. Applied CS. Applied was in depth computer science where math/science/electronics was stressed along with all the CS courses. Pascal was the main language. There was only 23 (from memory) of us left standing to graduate. If I took one more class I could have had my math degree too, but I was burnt out with school after 4 years doubling up on some classes. A few years after I was gone, they added another route where business apps/programming was stressed (we called/call it the ‘watered down’ route) and you didn’t have to take any advanced math where more could graduate. All about money I suppose…. Now I think I heard they use Java of all things for main CS learning :rolleyes: . Oh well.

      1. Three are three flavors of CS, based on what school it is taught out of.

        CS out of engineering.
        CS out of math.
        CS out of business.

        That list is in decreasing order of quality of the school and it’s grads.
        Don’t hire CS majors out of the business school, they are generally useless. There might be exceptions, but I’ve not run into one. Granting I haven’t been hiring them for decades, so I might have missed him. I worked with a couple before I was in the hiring loop, they might as well have been MBAs.

        Also never hire someone with a BA in a science. That’s a consolation prize. e.g. After failing p-chem the third time a student will be given a BA in chemistry and told to just go away.

        Also also: never hire some with a degree in a ‘science’. No sociologists etc. Your better off with an English or history major, at least they know they’re not scientists. Just hire the smart ones.

        1. Other people’s sweeping generalities are of course flawed, unlike my own… ;-)

          I’d say you want Eng flavor for hardware and OS, Math flavor for deep math simulation applications, and Biz to decide which cloud office suite is least awful for the admin staff. Or Eng will assume they need to build a TOP500 machine, Math will assume one is supplied, and Biz will express surprise that you don’t just order an i9 from Dell.

        2. It occurs to me immediately, that hiring (or not), based on such school qualifications seems fundamentally flawed. Instead of this elaborate hierarchy of suck, maybe you should be looking for other qualifications, or just get out of HR altogether! I’m reminded of the examinations of medieval China, where a grade in poetry or calligraphy could determine whether one got a favored position in the Imperial Court, or out on the desolate frontier. A very elaborate system of qualifications, which did little to increase or even insure any standards of quality at all.

          1. In my case, I was Supervisor of Software Development. HR has nothing to do with initial hiring other than vetting the person and sending over the resumes on the front end. We did look for other qualifications as it was in person interviews. The BS degree just got you in the door…. Proved you could persevere though 4+ years of formal training. Required code samples and school transcript and we had a list of questions/problems that the person needed to answer (on paper so each applicant was presented with same questions to be fair). Plus general chit-chat as a ‘social test’ so to speak. It was enlightening.

  9. I did for-real Lotus 1-2-3 contracting in NYC. 1a had some real issues, but 2.01 fixed them up nicely. Those were the days. Also loved me some Quattro Pro, from Borland — and the reason for the Lotus “look and feel” lawsuit.

    1. I used Quattro too in those days. Actually I used mostly Borland products in those days starting with Turbo Pascal, then C, and so on. Don’t remember using Lotus 123 much at all.

      As to above, nicely done. To bad you can just recompile the source and go :) .

  10. I still have still wrapped never opened most of al the software that Borland sold in 1992 when a software engineer gave them to me as I was leaving from California to Louisiana as a present. Never opened them. Quattro, Sidekick , DBase , C
    Programming, and some more.

    1. are you wondering if they’re valuable? I personally don’t buy unwrapped (or untested) software: too great of a chance that temperature changes, freezing cold to roasting hot, among other things, makes the disks unusable. I think it would be fun to test them out, then sell them, but I have no idea whether “the market” puts premium value on unopened disks. It could conceivably be the worst thing to do before a sale. Then again, I don’t think they will be significantly valuable YMMV

      1. Shrinkwrap machines have got so affordable now that it’s also the case that shrinkwrap guarantees little. Collectors have been finding scratched up disks and missing materials in “sealed” software off eBay of late. Some are also removing shrinkwrap as it is believed to damage the box long term.

  11. Lotus 123 was a good test for video cards. When you switched from text mode to graphics mode to show a chart, the program would hit the CRTC registers over and over and over with about 30 identical writes. Not clear on why it did that but we had to handle it gracefully.

    The DOS version of 123 is written in 8086 assembler, very carefully tweaked for high performance. It was fast fast fast on 4.77 MHz 8088, on modern hardware everything is instantaneous. They sure don’t write software like this any more. It still runs great on freedos. Bust out your old copy and fire it up, it makes the latest excel look really bad in comparison.

      1. Actually it did NOT run without incident on many first-generation IBM PC compatibles. Compaq made its mark by reverse-engineering a custom BIOS which made it (for a while) the only true 100% IBM compatible. Plus it was a portable (by the standards of the time). Eventually Lotus started making versions for other BIOS/brands. I remember one for the DEC Rainbow – dual-bootable in either MS-DOS or CPM, but Lotus 1-2-3 ran only under MS-DOS on the machine.

        1. actually even Rainbow’s DOS wasn’t very compatible with PC-DOS, I’m surprised 1-2-3 ran. There were very many early MS-DOS that had quirks that made running PC-DOS software problematic. Also, there were also actually several “luggable” 8088 and 8086 “clones”. At least a couple had copied IBM’s BIOS exactly. IBM settled, they did not want to risk a court decision that firmware or software wasn’t covered by copyright. It was Apple in 1983 who got the court finally ruling that copyright also applies to “non-human readable” code

      2. Early PC-DOS was quite distinct from other MS-DOS. It was with a wink and nod, that Microsoft agreed to give Compaq a very compatible version, because MS still kept a pretense of working with IBM on OS/2 for a while, compatible DOSes were an obvious backstab. Perhaps you knew this, but also, remember, Lotus was a big and profitable enough to make specific versions. There was a different DOS version for Wang, another for DEC, another for Tandy 1000, even for PCjr https://winworldpc.com/product/lotus-1-2-3/1x

  12. After 1-2-3, the sharp cookies at Lotus created a better spreadsheet called Improv: https://en.wikipedia.org/wiki/Lotus_Improv Unfortunately they launched it on/with Steve Jobs’ Next computer, which platform didn’t catch on.

    The modern day successor of Lotus Improv is called Quantrix https://www.youtube.com/c/QuantrixModelerSoftware and it is super cool. Agile, multi-dimensional modeling.

    Even many years after NeXT, Mr Jobs called out Improv/Quantrix as the best spreadsheet ever made https://youtu.be/GnO7D5UaDig?t=1922 I never used 1-2-3 or Improv, but I use Quantrix every day, rebuilt multiple times and much improved since 1997 :-)

  13. We would boot all the PCXTs in the office each morning with the Lotus 123 floppy you needed because of the copy protection then remove the disk so it didnโ€™t get lost. When you turned the machines off for the weekend you could see the top menu and row/columns burned into the green monitor.

  14. I worked on the lotus 1-2-3 for Unix project. I wrote the original PostScript printer driver for Lotus one two three and I ported it to Unix with the help of some Unix gurus that lotus had hired for the task. It was a heady time as lotus was in its heyday.

  15. I was beta tester for the graphics for the original Lotus 1-2-3. That was because I had a Hercules graphics card which was a lifesaver (the card) for Lotus. Loved 1-2-3 and got much usage for my consulting biz.

  16. I was an authorized reseller and installer for Lotus 123 on Unix, along with WordPerfect, and Dbase. This brings back real memories. I would love to get copies that run on Linux just for nostalgia.

  17. I used Lotus 1-2-3 on a Sun Sparcstation circa 1996 on a Wall Street trading floor. There was a built-in backdoor which allowed one to get a shell prompt with root access with a simple set of keystrokes which I’ve long forgotten.

  18. never really “used” it, but;
    lotus 123 for DOS was my first expierence with both dual-monitor as well as VGA,
    allowing COLOUR and GRAPHICS, wow.

    a quick trip to the mainboard’s built-in (ROM) BIOS configuration/setup utility and voila!
    VGA at the command prompt, and all it’s adjustable colour capability.

    this also led to many a video-game, sorry zork!

  19. Lotus 123 was the best and still the quickest because it was before the mouse. Therefore everything was done by keystrokes and you could use the keyboard buffers on the pc to store the keystrokes allowing you to go faster then software and pc allowed. Nowadays reaching for mouse is soooo slow compared to Lotus. I never even looked at the monitor, I memorized all the keystrokes

    1. I had forgotten those programs where I could type ahead faster than the computer would respond. Now you just have to wait.

      Even though the computer might be slow to write the screen, it was still faster than mousing. I had to use a trackball style mouse because the keyboard tray was too small to move a mouse, and the movement from keyboard up to the desk to use the mouse was causing problems with my shoulder.

      I also used dBaseIII+ quite a bit. I rewrote quite a few data entry panels to use the keyboard instead of mousing.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.