KnightOS calculator (WIP)
  • C 89.4%
  • Assembly 5.8%
  • CMake 2.7%
  • Makefile 2.1%
Find a file
Antoine Viallon 6099bef4f0
Almost working NPI calculator (working more generally)
A few bugfixes, use less mallocs as they are extremely buggy
2020-06-12 02:02:21 +02:00
.gitignore Working RPN (Reverse Polish Notation) calculator 2020-06-10 01:54:38 +02:00
CMakeLists.txt More practical build/debug configurations 2020-06-10 02:30:27 +02:00
consts.h Almost working NPI calculator (working more generally) 2020-06-12 02:02:21 +02:00
crt0.asm Initial commit 2020-06-01 16:09:54 +02:00
debug.h Working RPN (Reverse Polish Notation) calculator 2020-06-10 01:54:38 +02:00
lib.c Working RPN (Reverse Polish Notation) calculator 2020-06-10 01:54:38 +02:00
lib.h Working RPN (Reverse Polish Notation) calculator 2020-06-10 01:54:38 +02:00
LICENSE Add a MIT license 2020-06-01 16:34:09 +02:00
main.c Almost working NPI calculator (working more generally) 2020-06-12 02:02:21 +02:00
Makefile Almost working NPI calculator (working more generally) 2020-06-12 02:02:21 +02:00
package.config Bump to 0.2.0 2020-06-10 02:01:09 +02:00
README.md Correct README 2020-06-11 02:45:47 +02:00
stack.c Almost working NPI calculator (working more generally) 2020-06-12 02:02:21 +02:00
stack.h Working RPN (Reverse Polish Notation) calculator 2020-06-10 01:54:38 +02:00

Kalculator

A Work In Progress calculator app for KnightOS. It is coded in a subset of C (since KCC, based on SDCC, only supports a subset of C itself).

I could have done it in assembly, but this way it will be easier for a lot of people to contribute since it does not require a ton of knowledge, just "some" time and a colossal amount of patience.

How to build ?

git clone https://github.com/aviallon/kalculator.git
cd kaclulator
knightos init
make

How to run ?

Just type this in the project directory. Make sure that you have knightos sdk installed. More informations on knightos.org

make run

Current status

  • Debug functions and code
  • floats display and manipulation
  • Stack helper
  • NPI evaluator
  • Error handling
  • Shunting yard algorithm for infix notation
  • User input and interface
  • Common functions (sin, cos, log, etc.)
  • Optimisation for speed
  • Upstreaming some very useful functions to KnightOS libs.