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: Remember to rename
ld-new
told
.
The Makefile should automatically use the new binaries, and continue to build.
Copy the file l123set.cf
to ~/.l123set
, and run ./123
.
- There is a man page in
./root/lotus/man/man1/123.1
, and a full manual available online here.
Note: You use use the
/
key to open the 123 menu!
If you've used any spreadsheet before, you should be able to get started
quickly. Functions use @
instead of =
, but the common functions like
@SUM
, @AVG
, @INDEX
, and even @HLOOKUP
all work as you would expect.
- The keyboard map seems to be incomplete - probably a termcap issue?
- Graphs don't work yet (I'm working on it!).
- Printing doesn't work yet.
- File an issue if you notice something, there are probably lots of minor issues that can be fixed!