{"id":13491930,"url":"https://github.com/taviso/123elf","last_synced_at":"2025-05-16T07:07:33.763Z","repository":{"id":37634967,"uuid":"494666336","full_name":"taviso/123elf","owner":"taviso","description":"A native port of Lotus 1-2-3 to Linux.","archived":false,"fork":false,"pushed_at":"2023-09-08T00:58:23.000Z","size":392,"stargazers_count":1202,"open_issues_count":33,"forks_count":59,"subscribers_count":25,"default_branch":"main","last_synced_at":"2025-04-08T18:18:39.889Z","etag":null,"topics":["lotus","retrocomputing","spreadsheet","terminal","unix"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taviso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-05-21T03:06:48.000Z","updated_at":"2025-04-03T07:09:13.000Z","dependencies_parsed_at":"2024-01-07T21:02:33.406Z","dependency_job_id":"1f786d36-a64d-4ab5-890e-72f31fea99cf","html_url":"https://github.com/taviso/123elf","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taviso%2F123elf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taviso%2F123elf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taviso%2F123elf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taviso%2F123elf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taviso","download_url":"https://codeload.github.com/taviso/123elf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254485065,"owners_count":22078767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lotus","retrocomputing","spreadsheet","terminal","unix"],"created_at":"2024-07-31T19:01:01.626Z","updated_at":"2025-05-16T07:07:33.731Z","avatar_url":"https://github.com/taviso.png","language":"C","funding_links":[],"categories":["C","\u003ca name=\"office\"\u003e\u003c/a\u003eOffice tools"],"sub_categories":[],"readme":"# Lotus 1-2-3 for Linux\n\nThis is a native port of Lotus 1-2-3 Release 3 to Linux. There's an article documenting how this is possible\n[here](https://lock.cmpxchg8b.com/linux123.html).\n\n![Lotus 1-2-3 for Linux](https://lock.cmpxchg8b.com/img/123linux.png)\n\n## Screenshots\n\nHere are some screenshots of Lotus 1-2-3 on Linux.\n\n| ![liveupdate_small](https://user-images.githubusercontent.com/123814/177441429-ee4ec586-46f5-45bf-96a0-0715215d2a0d.png) | ![help_small](https://user-images.githubusercontent.com/123814/177441458-435be771-2934-4199-9115-5b81311d89d2.png) | ![stock_small](https://user-images.githubusercontent.com/123814/177441483-f52fc2d3-9c3b-4c74-b805-99922c7c8b16.png) | ![perspective](https://user-images.githubusercontent.com/123814/173251674-cb29357d-8686-4dde-83bc-17c441957512.png)\n|--|--|--|--|\n| Interactive, live-updating ASCII-art charts. | Context sensitive help. | Highly configurable graphs. | Work with multiple sheets.\n\nSee more screenshots and gifs in the [wiki](https://github.com/taviso/123elf/wiki/Getting-Started).\n\n## Building\n\n### Dependencies\n\nFirst, you need a version of binutils that is compiled with `coff-i386` target\nsupport. You can check like this:\n\n```\n$ objdump --info | grep coff-i386\n```\n\n\u003e Note: Most distributions do not enable this for some reason.\n\nRun the included `binutils.sh` to download and compile a version of binutils known to work for this.\n\nSecondly, you need a copy of Lotus 1-2-3 for UNIX, you can download it\n[here](https://archive.org/details/123-unix). Just place the raw disk images in \nthe build directory and run `extract.sh`.\n\nFinally, just run `make`.\n\n#### Packages\n\nThe following packages are required\n\n| Ubuntu              | Fedora              | Debian (bookworm)   | Ubuntu (bionic)\n| ------------------- | ------------------- | ------------------- | -------------------\n| build-essential     | glibc-devel.i686    | build-essential     | build-essential\n| gcc-multilib        | libgcc.i686         | gcc-multilib        | gcc-multilib\n| lib32ncurses-dev    | ncurses-static.i686 | lib32ncurses-dev    | libncurses-dev:i386\n\n## Installing\n\nRun `make install` to install into `/usr/local`.\n\nRun `make install prefix=/my/prefix` to install into a custom prefix.\n\nRun `make uninstall` or `make uninstall prefix=/my/prefix` to uninstall.\n\n## Running\n\nJust run `./123` in the project directory after building, or, if you installed it, run `123`.\n\n### Getting Started\n\nThere is a quick start guide in the wiki [here](https://github.com/taviso/123elf/wiki/Getting-Started), and the full manual can be seen here [here](https://archive.org/details/lotus-1-2-3-release-3.1-reference/Lotus%201-2-3%20Release%203.1%20-%20Tutorial).\n\nThere is a man page in `share/man/man1/123.1` that describes the command line options.\n\nLotus 1-2-3 has context sensitive online help, you can press \u003ckbd\u003eF1\u003c/kbd\u003e at most times to see some hints.\n\n\u003e Note: You use the \u003ckbd\u003e/\u003c/kbd\u003e key to open the 123 menu!\n\nIf 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.\n\n## FAQ\n\n- Q. How do I quit 123?\n\nIf the status indicator in the top right says `READY`, try `/Quit Yes`.\n\nIf it doesn't say `READY` (it might say `ERROR`, `HELP` `POINT`, `MENU` or\nsomething else), try hitting \u003ckbd\u003eEsc\u003c/kbd\u003e until it goes back to `READY`.\n\n- Q. I get the error 'invalid compressed data--code out of range'.\n\nYou have a *very* old gzip with broken lzw/pack support. You can try running\nthe `gzip.sh` script to build a more recent gzip, then rerun the extract\nscript.\n\nSee the full [FAQ](https://github.com/taviso/123elf/wiki/FAQ) for more.\n\n## Bugs\n\n- ~~The keyboard map seems to be incomplete~~ (XTerm compatible terminals should be [working](https://github.com/taviso/123elf/wiki/Keybindings), please test others!)\n- ~~Graphs don't work yet~~ (Partially working!, see [#5](https://github.com/taviso/123elf/issues/5)).\n- ~~Printing doesn't work yet~~ (Print to file works, print to lpr is being worked on, see [#50](https://github.com/taviso/123elf/issues/50)).\n- `STEP` mode does not display the current step (Nearly working! see [#101](https://github.com/taviso/123elf/issues/101)).\n- There is limited i18n support (We're working on it, see [#73](https://github.com/taviso/123elf/issues/73)).\n- File an issue if you notice something, there are probably lots of minor issues that can be fixed!\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaviso%2F123elf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaviso%2F123elf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaviso%2F123elf/lists"}