This is a native port of Lotus 1-2-3 version 3 to Linux. This is possible because the official Lotus 1-2-3 for UNIX port used a technique called partial linking to workaround a technical limitation in early UNIX systems. Surprisingly, that can be used to modify it to support new platforms.
There's an article documenting how this is possible here.
First, you need a version of binutils that is compiled with coff-i386
target
support. You can check like this:
$ objdump --info | grep coff-i386
Note: Most distributions do not enable this for some reason.
Secondly, you need a copy of Lotus 1-2-3 for UNIX, you can download it
here. Just place the raw disk images in
the build directory and run extract.sh
.
Finally, just run make
.
The following packages are required
Ubuntu | Fedora |
---|---|
build-essential | glibc-devel.i686 |
gcc-multilib | libgcc.i686 |
lib32ncurses-dev | ncurses-static.i686 |
Unfortunately, most distributions do not enable coff-i386
support in binutils.
It's very easy to enable it yourself, download binutils and configure it with --enable-targets=all
.
There's no need to install it, just build it with make
.
When that's complete, copy objcopy
and objdump
from the binutils
directory, and ld-new
from the ld
directory to 123elf
directory.
Important:
ld-new
must be renamedreal-ld
or gcc won't use it (I don't know why).
The Makefile should automatically use the new binaries, and continue to build.
Copy the file l123set.cf
to ~/.l123set
, and run ./123
.