At the time, Lotus was a good company in great shape. The management could have hired people to get stuff done. In hindsight, sure, we can be judgmental, but it is still a failure in my view.
For a company selling licenses for installations, wouldn't having support for all available and upcoming platforms a good thing? Especially when the distribution costs are essentially 0?
This was pre-1983. Forking wasn't a thing at the time. Any kind of code management was cutting edge, and cross-platform shared code wasn't even dreamed of yet.
Forking and merging is a social phenomenom. Sure git makes it easier, but nothing stopping anyone from just copying and pasting as appropriate. Not to mention diff(1) was invented in 1974, and diff3(1) in 1979, so there were already tools to help with this, even if not as well developed as modern tools.
I'm also pretty sure cross-platform code was a thing in 1983. Maybe not to the same extent and ease as now, but still a thing.
Successful 8086 projects were usually written in assembler - no way to get the speed and size down otherwise. I'm pretty sure Lotus 123 was all in assembler.
I'm not an assembly programmer and not very familiar with how that world works, but even then, if the two OSs were for the same architecture (x86), couldn't you still have a cross OS main part and then specific parts that deal with operating system things? I normally think of compiled languages like c being an abstraction over cpu architecture, not operating system api.
Yes, you can have common assembler code among platforms, provided they use the same CPU.
From what I've seen of code developed in the 80s, however, asm code was not written to be divided into general and os specific parts. Writing cross-platform code is a skill that gets learned over time, usually the hard way.
> Keep in mind this predates basically ANY kind of source control.
It might be before they were ported to DOS or OS/2, but it definitely wasn't before source control existed (SCCS and RCS were both definitely earlier.)
I've also successfully converted some rather large x86 assembler programs into C, so they could be ported to other platforms. It's quite doable by one person.
(Nobody else wanted the job, but I thought it was fun.)