

GitHub - taviso/123elf: A native port of Lotus 1-2-3 to Linux.
source link: https://github.com/taviso/123elf
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Lotus 1-2-3 for Linux
This is a native port of Lotus 1-2-3 Release 3 to Linux. This is possible because Lotus 1-2-3 for UNIX SystemV used a trick 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.
Building
Dependencies
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.
Run the included binutils.sh
to download and compile a version of binutils known to work for this.
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
.
Packages
The following packages are required
Ubuntu | Fedora | Debian (bookworm) | Ubuntu (bionic) |
---|---|---|---|
build-essential | glibc-devel.i686 | build-essential | build-essential |
gcc-multilib | libgcc.i686 | gcc-multilib | gcc-multilib |
lib32ncurses-dev | ncurses-static.i686 | lib32ncurses-dev | libncurses-dev:i386 |
Binutils
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
.
Note: binutils-2.38 is known to work, some earlier versions have been found to not work.
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.
Running
Just run ./123
.
Getting Started
There is a quick start guide in the wiki here, and the full manual can be seen here here.
There is a man page in ./root/lotus/man/man1/123.1
that describes the command line options.
Lotus 1-2-3 has context sensitive online help, you can press F1 at most times to see some hints.
Note: You 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.
- Q. How do I quit 123?
If the status indicator in the top right says READY
, try /Quit Yes
.
If it doesn't say READY
(it might say ERROR
, HELP
POINT
, MENU
or
something else), try hitting Esc
until it goes back to READY
.
- Q. I get the error 'invalid compressed data--code out of range'.
You have a very old gzip with broken lzw/pack support. You can try running
the gzip.sh
script to build a more recent gzip, then rerun the extract
script.
The keyboard map seems to be incompleteThis seems to be working in xterm, please test other terminals!Graphs don't work yet(Partially working!, see #5).Printing doesn't work yet(Print to file works, print to lpr is being worked on, see #50).- File an issue if you notice something, there are probably lots of minor issues that can be fixed!
Security
By default, 123 allows Autoexec macros in worksheets. Lotus macros are very powerful, and can run shell commands, read and write arbitrary files, load plugins and so on.
However, you can disable Autoexec macros via /Worksheet Global Default Autoexec
.
I am thinking of changing this default before we reach a first release, see #27.
If you disable Autoexec then in theory it's safe to open untrusted worksheets -- but this software hasn't been maintained for over 30 years, and may contain security bugs!
We can fix bugs with coffsyrup
, by redirecting unsafe functions to new
safe versions, so we will make a best effort to fix vulnerabilities if you
report them!
Recommend
-
8
Project Lotus - 莲 Lotus is an implementation of the Filecoin Distributed Storage Network. For more details about Filecoin, check out the Filecoin Spec. Building & Documentation
-
6
Copy link XiaodongLoong commented...
-
7
nntpit This is a simple reddit2nntp gateway server that lets you use a newsreader to follow discussions on reddit. The intention is for you to run it locally, tell your newsreader to connect to localhost, and subreddits will appear a...
-
4
Lotus Notes 8.x under Linux: No window shows up, Tips for upgrading to LN8.5 April 30, 2009 Since recently when I started Lotus...
-
7
Lotus Notes 8 on Linux IBM released Notes client version 8 recently. Version 7 for Linux sucked but this newer version is better integrated, verify dependencies and i'm using it now for one week without any problems so far ... Still...
-
8
IBM Lotus Notes for linux sucksIt's been a while that i've installed the Lotus Notes client for Linux on my laptop ... but because i've reinstalled my laptop from CentOS 4.4 to CentOS 5 , i needed to setup this crappy client once again ... 'c...
-
7
Lotus 1-2-3 for UNIX Teledisk Logo The warez release was a bunch of TD0...
-
3
Lotus 1-2-3 Ported To Linux Do you develop on GitHub? You can keep using GitHub but automatically
-
15
WordPerfect for UNIX Character Terminals This is a set of build scripts and patches to make WordPerfect for UNIX (Released 1997) work on modern Linux. You need the following file to build this, available
-
2
Port your legacy SAP middleware flows to cloud-native PaaS solutions 0 2 138 Dear community,
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK