Calculator Custom Menu banner

Calculator Custom Menu

4 devlogs
5h 23m 30s

I'm putting the unused F5 key to use on the TI-84+CE graphing calculator by adding a custom menu!

(On this graphing calculator, all the function keys F1-F5 have a shortcut menu attached to them… except for F5. I figured I could make a nifty …

I’m putting the unused F5 key to use on the TI-84+CE graphing calculator by adding a custom menu!

(On this graphing calculator, all the function keys F1-F5 have a shortcut menu attached to them… except for F5. I figured I could make a nifty menu using the unused hotkey.)

This project uses AI

I used Claude to explain ASM code, add repetitive menus, and generate fixes to code. However, I did not vibecode the entire thing - LLMs do not work very well with ez80 assembly due to lack of resources online, so creative input and direction was needed.

Demo Repository

Loading README...

jp21

Shipped this project!

Hours: 5.39
Cookies: 🍪 127
Multiplier: 23.56 cookies/hr

I built a custom menu for a graphing calculator using ez80 assembly! This was my first time making a full project with low-level code, and working with limited online resources was difficult. I kinda liked that there was few resources and there wasn’t enough data for AI to create working code from scratch though. The hunt for resources kinda felt like a treasure hunt. I’m proud that I made something with few tutorials or examples to follow - I wasn’t even sure if my project idea was possible at the beginning, and when I got stuff to work I was very happy. Thank you to cemetech and French calculator nerds for singlehandedly providing all the info I needed

jp21

Yall turns out basically all the errors were due to me exceeding the allotted memory space. I cleaned up the code a bit (combined some display texts) and shortened my about page and now all the storage functions work!!

Anyways I also made my README, github repo, and demo video.

Attachment
0
jp21

New update: It almost nearly so close kinda works.

I made some changes to the menu (namely, the code for the menu is no longer in TI-Basic and it’s all in one file technically. Also, fixed some wonky memory issues that came from blindly following another person’s instance of a menu.) Memory issues following the calculator breakage mid-bio-class took the longest to fix.

Now the only issue seems to be that when I repeat a submenu the copy function I added does not work. That, and when I put too much text in the about page it’s too big for the buffer it’s stored in and messes up actual important calculator functions.

I added the actual menu content too - currently it’s just a menu of some common constants that you can copy to your user-accessible variables because halfway through working on this I realized I had NO IDEA what I would even put in a menu. I know a constants copy menu already exists but it’s buried under a ton of submenus so I think this still holds some use. Also if anyone has any ideas for what might better fit in this extra custom menu PLEASE let me know!! Ty

Attachment
Attachment
0
jp21

I thought I figured out where in memory to store my code so that nearby keys don’t break. People on the internet said saveSScreen is a good buffer with nothing using it, and it did seem to work! I was able to call up a test menu when F5 is pressed (albeit with some visual bugs)!
Until I ran chi-square in my bio class and my calculator froze completely. I’m just glad it wasn’t during a test.

Attachment
0
jp21

I floundered around with assembly and hooks before figuring out that I need to use a combination of a GetKeyHook and a system flag for the alpha key modifier to detect F5! And broke the emulator lots doing it (as seen in the pics).

Some blunders I’ve had:

  • Trying to use the two other types of hooks (RawKeyHook, GetCSCHook) instead
  • Trying to make a menu hook for F5 (it looks like a menu… and acts like a menu… but isn’t classified as a menu for the purposes of hooks.)
  • Mixing up include files and assemblers (eventually settled on ti84pce.inc and SPASM)
  • Trying to make an interactive menu with display text

Thank you so much to this one french guy from a calculator forum in 2015 who had a working calculator-wide shortcut key that saved me from hook purgatory

Note: I have 8+ unlogged hours on this;; because SPASM doesn’t work with a mac and I don’t know how to set up hackatime with docker containers.

Attachment
0