Several weeks ago, I wrote a Reverse Polish Notation program for my Ti-84+CE calculator. It was a successor to a program I wrote in TI-BASIC a while back, but since that one had too much input lag to be usable, I decided to write this one in C and compile it to native z80 assembly.

I wrote this for a Calculator competition I participated in. Most competitors used an HP RPN or similar calculator, but I thought it would be cool to use a program I wrote myself on my trusty Ti-84. I actually wrote this program the night before the competition, and put the finishing touches on it literally moments before the exam. Surprisingly, the program worked quite well during the contest, and it allowed me to be quite competitive too!

I'm only posting this now because I just discovered Cemetech had a forum, and I figured you guys would be interested in seeing this.

Unlike traditional HPs, this program has a massive stack (can display up to 10 elements on-screen). It also supports pretty much all arithmetic functions of the calculator, can display scientific notation to two sigfigs (precisely the format wanted by the aforementioned competition), has often-used constants, can perform triginometry in both degrees and radians, has good line editing support, and an (IMO) very maintainable and extensible codebase!

Code is posted at https://git.io/ti84rpn (shortlink for https://github.com/arjvik/RPN-Ti84). Please star this repository!

You can download a precompiled binary from https://github.com/arjvik/RPN-Ti84/releases/download/2.0/RPN2ASM.8xp.

Here's a cool GIF of the program in action!


Credits to CE-Programming/toolchain and tgrysztar/fasmg for the tools used to build this program!
This looks like pretty good work, congratulations Smile
Thanks for sharing! Have you considered uploading it to our archives too?

It seems like a season for RPN calculators, what with D'nar's "Programmer's Calculator" appearing recently as well. It looks like the two have different goals though, which makes them useful in different domains- from reading your source it looks like you're using OS floats exclusively, whereas D'nar's uses fixed-precision integers (128 bits but easily changed to some other precision).
Nice work, this is pretty cool! Very Happy

Your repo doesn't make any since though -- you should not be including the toolchain and fasmg binaries like that; plus the toolchain comes with fasmg already so I'm confused Razz Generally you can expect people who download your project to have the necessary dependencies installed (if you need them to use a specific version, just specify that in the readme!). We've also created a nice little page on using git here: https://ce-programming.github.io/toolchain/static/git.html , as well as some helpful C guidelines here: https://ce-programming.github.io/toolchain/static/coding-guidelines.html

Anyway, looking forward to giving this a try! Hoping you stick around to make more neat things; I don't think many people have use the OS's floating-point reals for much, so that's neat to see.
You could reference the toolchain as a submodule instead.
I made a calculator just like this, before, and now there's an ASM version of it. Wow...

Time really must have flown!
I have two questions:

1) Because I have no experience with TI-84's, I was wondering how hard it is to switch from graphing to the RPN mode, as well as the opposite direction. (I'm in Calculus and will definitely be using both of these extensively).

2) Is there a way that you are able to switch the bottom two rows, or is that just a convenience only on HP's that you haven't written in your code.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement