/rustworks

Operating system written in Rust for NumWorks calculator (model n0110)

Primary LanguageNixMIT LicenseMIT

RustWorks

Creating a truly free operating system for calculators.

GitHub issues GitHub pull requests GitHub forks GitHub stars GitHub commit activity GitHub contributors Maintenance GitHub license

An operating system and bootloader for the NumWorks calculator (model n0110).

Setup

First follow the instructions in SETUP.md then clone the repository recursively:

git clone --recursive https://github.com/nw-rs/rustworks.git

Currently the bootloader and external flash drivers are not finished so everything must be flashed individually, please read the README of the submodule if you are interested in more information on flashing or using it.

🚧 Roadmap 🚧

  • Drivers for the External flash chip (read, write, XiP) (highest priority)
  • Finish CAS (rCAS)
  • REPL on the calculator to demonstrate the CAS
  • Multiple programs/apps with UI to choose one on boot
  • Support for 3rd party apps and binaries

❤️ Contributing ❤️

Contributions are extremely valued, specially now, since the lead developer (@willemml) has little time to work on this project.

If you would like to contribute, please, fork the repo and open a Pull Request (PR).

Thank you!

⚙️ Components ⚙️

RustWorks is composed of several components which are listed here:

  • rcas - Computer algebra system
  • board-support - Drivers for the calculator's hardware. Currently only supports NumWorks n0110
  • bootloader - Prepares the processor for booting, initializes external flash and boots from it. Also used for installing and updating the OS code
  • flash_algo - Allows reading and writing to the calculator's flash storage using a debugger
  • os - Operating system code, user-interface and built in apps

⚖️ Licensing ⚖️

The code in this project is licensed under the MIT license.