10 ms·
Lotus 1-2-3 For Linux
- jkingsman 4y agoTavis Ormandy has had everything ranging from ice cold takes to white hot takes, but man, when he does something cool, it's usually the coolest thing I've heard of in months and months. Love seeing his step-by-step on hacking something like this together. What a great engineer.
- anfilt 4y agoKinda cool they were able to find that object file.
- shimmeringleaf 4y agoFascinating write up! Curious how piracy seems half the time to be the best form of archival for older software that was abandoned (most older software is no longer available to download even if one has a license, let alone still runs on a more modern environment, but if you have A you can try and sort out B, as this post so nicely demonstrates)
- jeffbee 4y agoIt seems like sheer luck that a 30-year-old tape archive was readable. What format is a BBS operator from the early 90s likely to have used? QIC? DAT?
- shimmeringleaf 4y agoNo idea regarding format, but tape is famously quite hardy if stored well from what I've been led to understand. Not to mention datahoarders are way more common than one thinks, so I wouldn't be surprised if there are some decent number of old treasure troves out there just waiting to be recovered.
- drewzero1 4y agoWe've got a few stacks of PDP-11 tape packs at work, and someday I'd like to see what's on them. I've figured my best bet is probably to learn how to fix the original hardware enough to get it functioning, then connect the tape drive to a modern computer somehow to image the tapes. I haven't pursued it further because I'm sure it's all cash register records from the 80s if they're even still intact.
- skissane 4y ago> 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. I wonder if anyone still has a copy of Lotus 1-2-3/M? It was the port to the IBM mainframe operating systems MVS (nowadays known as z/OS) and VM/CMS (nowadays z/VM). [0] Not that I ever used it or saw it, but just I have become fascinated with it from reading descriptions of it. From what I understand, it is more different from 1-2-3 for DOS than the Unix or VMS ports were; the Unix and VMS ports work with character mode terminals (such as VT100 compatibles), which while rather different from the terminal model used on MS-DOS or text mode OS/2 (direct memory access to the screen buffer), nonetheless are close enough that the bridge can be gapped–which (on Unix) is classically the job of the curses library (and its various descendants). By contrast, 1-2-3/M was written to work with the block mode 3270 terminals commonly used on IBM mainframes, which send to/from the terminal whole screenfuls of data at a time, rather than individual characters (somewhat similar, in principle, to classic HTML forms). This forced greater changes in the UI compared to the other ports, because a lot of things which are easy to implement with character mode terminals are essentially impossible in 3270. [0] https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/4/897/ENUS290-104/index.html&lang=en&request_locale=en https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ss...
- GartzenDeHaes 4y ago> which send to/from the terminal whole screenfuls of data at a time, rather than individual characters 3270, and it's derivatives such as 6530, had (have?) a protect mode protocol that sends fields in much the same way as an HTTP post [1]. It doesn't seem to have been used that much on IBM's, probably due to the synchronous write-a-screen-and-wait-for-the-result readline style of programming. However, it was used extensively on the Tandem, which had an asynchronous 3-tier style architecture. 1. https://x3270.miraheze.org/wiki/3270_data_stream_protocol https://x3270.miraheze.org/wiki/3270_data_stream_protocol
- mlyle 4y agoA childhood memory from when I was little: We were at Sears, and my parents were waiting for customer service-- they were buying an appliance or something. There were terminals around, open to public use. I recognized them as 3290's from my dad's work. They had an application where you could do form work-- building up an order or searching for stock on items-- that used this protect mode. You'd fill in fields and then hit a pfkey, and wait several seconds for a result. I can't find anything about this system having ever existed online-- one of those blackholes of missing information about pre-web days. There's an interesting web site of how point-of-sale evolved at Sears and other places-- https://vintagepointofsale.com/author/jpnearl/ https://vintagepointofsale.com/author/jpnearl/ but that's not really what I'm talking about. I remember other instances of this from when I was little, too. Lots of IBMs internal applications used this whole forms interface and the lower right status HOLDING while you filled out fields. And I recall travel agents using it with SABRE, too. My memory is that it wasn't uncommon-- that a whole lot of mainframe usage looked like this: https://basis.uark.edu/frequently_asked_questions/email_notifications_of_rejected_txns.php https://basis.uark.edu/frequently_asked_questions/email_noti...
- xenago 4y agoTavis, what a legend! This is awesome.
- userbinator 4y agoOverall very interesting article, but this bit caught my eye: Linux did have lcall7 and lcall27 compatability support There is very little information available online about that --- section 2.11 here might be a better description: https://tldp.org/LDP/lki/lki-2.html https://tldp.org/LDP/lki/lki-2.html Further digging reveals that it's related to https://en.wikipedia.org/wiki/Intel_Binary_Compatibility_Standard https://en.wikipedia.org/wiki/Intel_Binary_Compatibility_Sta... (which I couldn't find the actual document of) and might explain where the original set of system call numbers in Linux came from. This also reminds me of the "CALL 5" interface in DOS which was used for CP/M compatibility.
- etothepii 4y agoI am aware of a very large company that still uses Lotus 123 for hundreds of millions of dollars of business.
- xattt 4y agoIs it a TUI version of 1-2-3?
- d0mine 4y agoYou might be surprised how efficient in practice it can be. Often, new software can be a net negative on productivity. Emacs is the most productive environment (for me) and it is half a century old.
- loloquwowndueo 4y agoBut unlike 1-2-3, Emacs is still being developed.
- adrian_b 4y agoI have used Lotus 1-2-3 for about 5 years, until switching to Windows 95, where the GUI version of 1-2-3 no longer had significant advantages over MS Excel. There is no doubt that for any tasks simple enough to have their speed limited by the interaction with the user, and not by waiting for a very large number of cells to be recomputed or by the execution time of a long macro, the MS-DOS Lotus 1-2-3 on an 80386 CPU was faster than MS Excel or any other modern spreadsheet program on a modern computer with a CPU having a one hundred times higher clock frequency. Lotus 1-2-3 had a well-designed menu-driven user interface and the keyboard shortcuts needed to execute quickly all menu commands became automatic in a short time for anyone who used the program daily, and they were easy to discover for novice users. In the recent versions of MS Office, the menu structure has become very opaque for me, even if I have used it for decades, since its first version. I may need some minutes to discover in which submenu a seldom-used command can be found, because the distribution of the commands over the menu hierarchy no longer makes sense for me, even if I know that the command must exist, because I had used it in some older version of MS Office, where it was located in a completely different submenu.
- edward 4y agoI fixed some spelling mistakes: https://github.com/taviso/123elf/pull/1 https://github.com/taviso/123elf/pull/1
- sph 4y agoThat was awesome, but they skipped over the crucial part I'm most interested in: how the heck did they rewrite and reroute the incompatible system calls and libc functions? That's probably the hardest task of it all. How would you go about it in the first place? EDIT: ah, their coffsyrup tool (https://github.com/taviso/123elf/blob/main/coffsyrup.c https://github.com/taviso/123elf/blob/main/coffsyrup.c) with help from objdump (it's more powerful that I gave it credit for) does the relocation and patching. I would have loved to read more into that part of the process.
- DannyBee 4y agoOutside of patching, it's not that hard, it's just structure conversion at that point. The coff tool is harder than the rewritten functions.
- irdc 4y agoSo, incidentally, having symbols makes it doable to use a decompiler to retrieve something resembling source code. Just putting that thought out there.
- bombcar 4y agoIf you have symbols and know the language (even better the exact version of the compiler) you can get almost the original source files “minus comments”.
- otk_010199 4y agohttps://simson.net/clips/1990/1990.Computerworld.GNU-Software.Aug-6..pdf https://simson.net/clips/1990/1990.Computerworld.GNU-Softwar... This 1990 Computerworld article mentions that Lotus compiled all their Unix applications with gcc. Given the timeframe involved, this likely means early gcc 1.x and supporting tools
- meebee 4y agoThat would be a worthwhile project.
- jshaqaw 4y agoLittle known fun-fact re Lotus 1-2-3 was that it came on a ROM cartridge for the PCJr. The PCJr was a total sad sack of a machine. Technically superior to the PC and cheaper too so IBM intentionally crippled it with incompatibility bugs so that businesses could not really rely on it. BUT they did release Lotus 1-2-3 for it in on a ROM cartridge which in the days when most programs ran on 5.25 inch floppies meant that performance just cranked!
- flomo 4y agoOld boss had a handheld computer which ran 1-2-3 from ROM. Spreadsheets on the fly! I think this was it: https://en.wikipedia.org/wiki/HP_95LX https://en.wikipedia.org/wiki/HP_95LX
- themadturk 4y agoI had something similar to that, a long time ago -- HP_100LX. Having Lotus 1-2-3 in ROM was a really big deal back then.
- ghaff 4y ago>Technically superior to the PC Really? I remember it having a "chiclet" keyboard that was widely criticized among other things. As for the compatibility, I'm not sure how many computer makers at that time--including IBM--completely grokked that PC compatibility really did mean 100% compatibility as opposed to mostly compatible.
- goosedragons 4y agoThe keyboard was awful but it was more graphically and audibly better than the IBM PC. The "Tandy" graphics mode in old PC games is really PC Jr. graphics mode as Tandy cloned it. Processing powerwise a 286 AT from the same time frame would have been better. For the home market where the Jr. was aimed it really needed the better graphics and sound to compete with the C64 and the like.
- 4y ago
- kwertyoowiyop 4y agoInspirational! And “coffsyrup” made me giggle. Thank you Tavis!
- RcouF1uZ4gsC 4y agoGreat write up. Travis is moving on from 0 (Google Project Zero) to 1-2-3. I wonder when the article about Quattro Pro will come.
- dchest 4y agoHe wrote a review of it: https://lock.cmpxchg8b.com/spreadsheet.html#borland-quattro-pro https://lock.cmpxchg8b.com/spreadsheet.html#borland-quattro-...
- tibbydudeza 4y agoHe named the website after the compare and exchange instruction ???. My intel assembler is rather rusty.
- lapsis_beeftech 4y agoIt is explained in the FAQ: There was a bug in early Pentiums called the f00f bug, it would cause a deadlock if you provided an invalid operand to cmpxchg8b while using the lock prefix. It was an important vulnerability at the time, and I thought it would be fun to own lock.cmpxchg8b.com.
- marcodiego 4y agoMy first PC came with LotusSmartsuite on CD-ROM. At the time I dreamed that the office suite area was full of competition and vendors would implement features all the time continuously improving their offers. It probably was actually like that at the time (1997). Soon monopoly turned on. We are seeing a new resurgence now. There is some competition. Even on the FLOSS space, LibreOffice must show it is better than OnlyOffice. But it is very far from how things looked like in mid 90's when office suite vendor really had to include useful and differentiated software.
- adwww 4y agoYeah I had Lotus SmartSuite - I remember it had quite nice skeuomorphic design in a lot of areas. You're probably right about the competition, Wordperfect was the market leader at one point, and Adobe also had FrameMaker - perhaps more of a Publisher competitor.
- easytiger 4y agowasn't there a java lotus suite later developed that died off very quickly? I recall running it on Solaris
- marcodiego 4y agoThere is one thing I feel like missing now: dosbox should have a mode to run DOS programs on the terminal and only start a GUI if a graphics mode is started. That would give seamless use of DOS apps.
- slater 4y agoAnyone else misread the title as "Lotus Notes for Linux" and break out in cold sweats of fear and PTSD? XD
- multjoy 4y agoI used to fill photocopiers for a living at IBM North Harbour in Portsmouth back in the very early 00's, and I could never get my head around Notes. The first and only place I ever saw it in the wild.
- themadturk 4y agoMy employer moved from Notes to Outlook and CA Service Desk Manager software not long before I was hired (2012). Some of the more senior employees miss Notes for it's service desk features.
- pstuart 4y agoMy first "real" job was working at Arthur Anderson, where due to my geeky love of computers I was able to quickly move from the mail room to Data Processing. 1-2-3 was like crack for accountants (it was first released right around that time). One of my tasks was making "backup copies" for users. Probably had 1 legit copy for every 20 staffers so this was quite a sum of money they "saved". After getting sued for millions for copyright infringement they realized it was cheaper to buy a real copy for every user.
- bombcar 4y agoLeave it to Arthur Anderson to try to do creative accounting of software licenses!
- throwawayboise 4y agoAndersen, to be correct.
- pstuart 4y agomea culpa. It's been almost 40 years and I was lazy with proofing.
- Crontab 4y agoI love reading stuff like this.
- SoftTalker 4y agoThere was WordPerfect for unix back in the day as well, I used it at work in an HP-UX environment. I don't know if it was ever available for Linux.
- chasil 4y agoThere is a free version of WordPerfect for Linux. https://liam-on-linux.livejournal.com/80768.html https://liam-on-linux.livejournal.com/80768.html
- nunez 4y agothis is absolutely amazing. thank you!