Great project! I’m amazed by the ingenuity of running a CNN on a TI-84 Plus CE.<p>Given the ez80 CPU's limitations with floating-point operations, do you think fixed-point arithmetic could significantly speed up inference without adding too much complexity?
Mostly unrelated, but I remember typing in a simple calculator program (hex codes I think) from a magazine for my Apple IIe that would then speak the answer aloud. I was fascinated by the fact you could type in things that then created the sound of a voice. Googling isn't yielding much but I'll dig around and see if I can find it.
I love these 8-bit projects. They force you to focus on only the most essential elements of your program, there isn’t room for anything else.<p>On one hand this made everything simpler, on the other hand you needed to have deep knowledge so you could create clever workarounds for things like not having floating point hardware.<p>Sometimes it feels like a superpower having grown up with that generation of computers, but I also feel it sometimes holds me back - always that little voice in your head saying “it’s wasteful to copy that whole string when you just need to change that one character in the middle” :-)
Interesting project, but there's an obvious issue here - you could just use a small microcontroller with hardware floating point support and get much better performance. The TI-84's ez80 CPU is really not suited for this kind of computation.<p>I did a similar project on an STM32F4 and got inference times under 100ms. The hardware FPU makes a massive difference compared to software float emulation.<p>That said, it's cool to see what you can push these old calculators to do. Repurposing the video RAM as a secondary heap was clever.
I first started coding in high school on the TI-84 calculators. My 1st language was TI-BASIC, 2nd was Z80 assembly - quite a big step - and I quit when I faced some tricky bugs that my teenage self could not figure out :-) Back then, I don't believe they had a C/C++ toolchain. Some time later, I tried using Small Device C compiler (SDCC), but encountered several compiler bugs which I couldn't fix but duly reported. Great to see there is such excellent tooling nowadays.
That's wild — focusing on the much narrower problem of digit recognition; I wonder now if hardware using op-amps could be designed to also tackle this smaller problem in the analog domain.