Hacker News new | past | comments | ask | show | jobs | submit login
The Insane Innovation of TI Calculator Hobbyists (thirtythreeforty.net)
362 points by bkudria on Oct 6, 2021 | hide | past | favorite | 125 comments



Like many here, I can attribute where I am in life today largely to TI calculator programming. I made many friends on Cemetech with whom I still keep in touch, including a few named in this article.

I racked up thousands of posts on the Cemetech and United TI forums and spent countless hours hanging out in the game Blockland which was also popular among those folks in the mid 2000s.

To me, one of the most impressive folks in this list is calc84maniac, who joined the scene a year or two after me, but quickly surpassed me in skill, becoming a z80 ASM whiz at the age of ~13 or so, whereas some of the other (very talented) folks were at least STEM university students.

I know a few people in this article such as SirCmpwn are on HN, too, so hopefully they chime in this thread.

Some of the most memorable things about programming in BASIC on these calculators were the absurd constraints. Your whole program was limited to a few kilobytes. You only had 27 floating point variables, a few lists of floats with a maximum length of 999, no real functions or stack or anything, etc. You’d shave bytes by taking advantage of syntactical quirks that the interpreter happened to accept, like not closing parentheses at the end of a line.

I don’t have much of value to add other than expressing some serious nostalgia.


>Your whole program was limited to a few kilobytes. You only had 27 floating point variables, a few lists of floats with a maximum length of 999, no real functions or stack or anything, etc. You’d shave bytes by taking advantage of syntactical quirks that the interpreter happened to accept, like not closing parentheses at the end of a line.

I found that smaller programs just ran faster. So I took one I'd written to convert from ASCII strings to binary strings and back. Yes, there's a built in function to do this, but it's very limited. Mine used string representations and so the only limits were memory...Then I changed all the variables to single letters to save space...and rendering the code completely indecipherable in the process.

Learning the hard way that "human readable code" is very important at a very young age.


One reason for this was that GOTO was a main control structure in TI-BASIC (since it lacked user-definable functions), and AFAIK on hitting a GOTO, the interpreter scanned the program from top to bottom to find the corresponding Label. So it was very easy to write loops than ran in O(program size). This was strong motivation to learn how to use While and For loops.


Huh, I am too young to have messed with Ti-84 programming, but what you described sounds extreemly similar to my experience programing in YOLOL the ingame/inworld programming language in the game starbase.

In this language you are limited to 120 characters per line, and 20 lines with .2 second execution time for a single line in a "chip" (the devices that store and execute code ingame). Only very basic operations are availible, like goto, if, and math operations.

You basically end up code golfing to squeeze as much as possible into those 120 characters, to minimize latency and use fewer chips (which have in-world costs) its been a fun experience so far.

I wonder if the developers were inspired by the similar Ti-84 programming limits


Ah, the days of rearranging code so you could take advantage of the special Ans variable being faster to access…


TIL Ans is faster. Holy crap is this info coming to me too late; all of my programs could have been so much better.

So I pulled out my TI-85 just now to benchmark this. It seems that the access is very close the same speed, but the implicit store is a bit more than 20% faster than storing to a named variable.


I never did manage to learn z80 asm in high school, but I have very fond memories of programming an RPG all through high school, and playing a lot of tetris and mario.

I was in 12th grade when Axe Parser came up! That was an excellent project.


Me too! Programming my TI-84+ in 2006 was the first programming I ever did. Geez, reading the article though, things have changed a lot...


Hey, that's about the same time that I had the same experience! I never wrote anything super complicated, but it got me interested enough to choose a Computer Engineering major when I applied to college.


Since we're swapping TI calculator stories...

In 8th grade Geometry class circa 2007, I had an awesome teacher and loved the subject. I found an extra TI-83+ laying around the house from my brothers. I found a guide online and started building simple programs.

A few weeks later, there was a quiz. I asked the teacher if it was permissible to use calculator programs on the quiz. He thought a moment and said it was fine as long as I wrote them myself.

So I wrote a very simple program that probably did little more than guide which formula to use in a basic decision tree.

It was the hardest quiz of the year, it was just difficult content. My class has 1 A, 1 B, 1 C, and about 23 F's. I was the B.

After that, graphing calculators weren't allowed.

Mad respect for Mr. Gass. He had two Apple IIe's and had programmed Wheel of Fortune and Jeopard! for review days ahead of tests. He had a couple TV's around the classroom so everyone could see the game well, and would turn on Bill Cosby during some working sessions because at the time, he was a well respected man.

Mrs. Gass was also a math teacher. Some students who had both teachers made shirts which advertised "I passed Gass twice"


I have the bureaucracy equivalent of that story.

The year I took the AP Calculus exam, TI-83s and such were allowed, but the TI-92 was not allowed because it could do symbolic calculus, and that was like half the exam. The exam administrators chose to describe the rules as "QWERTY keyboard calculators are not allowed." The year I took the AP Calculus exam, the TI-89 came out. It did not have a QWERTY keyboard but it did have a symbolic solver. I didn't have to write any programs; I just had to read the rules for the test and buy the right calculator.


There were apps to do symbolic calculus on the TI-83/84 via Detached Solutions...


When I was in high school, every teacher before every test or quiz would clear all of the stored programs on our calculators. A lot of the other students were upset that they would lose all of their games!


Teachers doing that taught me about archive files and the protection bit.


> So I wrote a very simple program that probably did little more than guide which formula to use in a basic decision tree. > It was the hardest quiz of the year, it was just difficult content. My class has 1 A, 1 B, 1 C, and about 23 F's. I was the B.

Slightly out of topic but one of the most bone headed decisions I've seen politician do is banning the use of custom software during exams. In France, they created a law forcing all programmable calculators to have an exam mode, during exams (including the national baccalauréat), the calculator needs to be in an exam mode with a special blinking light appearing and during which time students are not allowed to access programs.

What I liked when I was a child about the exams in France is that they tended to be difficult without multiple choice questions and needing students to master the material, With such exams, having previously stored the formula in a calculator is of little value and so this anti-cheat mode doesn't help. It's also a more realistic example of real life when we all have access to Google, yet just having the answer doesn't make all of us doctors, mathematicians, engineers or lawyers. On the other hand, creating useful little programs to help verify things has value, it helps with learning, it gives motivations to kids to learn how their calculator work and is a great way for kids who are mostly exposed to lockdown platforms to start programming.


I agree, but I think that it is even worse than that.

French curriculum theoretically includes Python starting from at the latest in "seconde" (10th year of education). Before that, for four years this is theoretically Scratch.

The teaching of Python is abysmal in terms of quality (it was dropped on teaches that had no dev experience at all) but that's another story.

All the calculators for high school now have Python built in but when it comes to actually using it, well it is forbidden.

This is France in its glory: pretend that we are teaching "how to code", and then for the ones who actually learned it - forbid its use in exams.

The French education system has its great sides (especially early on, and particularly kindergarden) and also horrible ones that should quickly be changed (preparation schools, fake elitism and ideas of anonimization at the same time, ...). I know of many brilliant high-schoolers who unfortunately went abroad to get their diploma because it make more sense.


The thing is I tend to think that the system was quite good historically, as someone who did an engineering degree in France, went to the US as an exchange student and has mostly lived abroad, I found the French elitist system to be quite good. It's allowed plenty of people I know from relatively low income families to graduate with an engineering degree. In my experience in a lot of other countries, money is much bigger limiting factor and I never would have been able to afford the tuition fees for an equivalent school in a lot of countries. In my experience, elitism exists everywhere, at least in France, there are some efforts made for it to be meritocratic.

So, I used to like the fact that tests like the baccalauréat were often with open ended questions that tended to test for the knowledge of how to apply the tools rather than the actual formula. I loved the exam part of the Science de l'Ingenieur I took in high school for example and every time I did a mock exam, I learned new things and had fun. I even liked the type of exams we had in history/geography, essay type exams with open ended questions are great for those kind of subjects.

I like the fact that the baccalauréat is anonymized, that no one correcting it knows who the person taking the exam is (and given the fact that some of my high school teachers didn't like me at all, I'm really glad for that)

What I regret is the fact that there's been a huge push towards directing all students to the baccalauréat général when sometimes a baccalauréat professionel or technologique would be better for some of those students. I regret that the level has gone down in the past 30 years (already when I was in engineering school, my teachers were complaining that we no longer studied vectorial spaces in high school. And, yes besides this, I dislike it when the French National Education decides to do things like teaching how to code without giving the needed resources. I also really dislike politicians who have a very narrow minded knowledge of things make decisions on calculators.

As for the prépa, I decided when I was a student not to tempt my chance so much and went for a school with prépa intégré. Less stressful and less risk. So I can't really comment on them that much.


> I never would have been able to afford the tuition fees for an equivalent school in a lot of countries.

This is indeed one of the great pluses in French (and, broadly, in European) education

The other points you mentioned are indeed great too (the nature of the questions, anonymity, ...) but there are really black parts:

- the high school you go to may or may not have an impact. For the ones who have 18/20 it does not matter that much. But when you are average (say - 14/20) in a school like Hoche in Versailles and 14/20 in a weaker one, then you are in big trouble. A very limited amount of schools will take the name of the high school in consideration and the rest will not. So being average puts you not in an average situation, but in a very bad one.

Looking at the distribution of marks in Hoche, i can assure you that there are the good ones, and then the rest. So why bother going to a "good" school?

The solution: entrance exams to universities.

Why not the high school end exam then? (baccaluréat) - because its have exactly zero value today, you know where you will be before its results are known.

You then have the "elite" universities (Grandes Ecoles), full of themselves and that do not lower themselves to accepting students before their third year after high school. Instead of just having an exam. France wants to be unique here, but we are just dumb by having our students leave abroad.

As you mentioned, we now have "prépas intégrées" (integrated prep schools), which is just just saying "prepas are dumb, but we want to keep the name to be fancy". It is just a 5 years school.

I went though this system, including an engineering degree from one of the Grande Ecoles, and then a doctorate, then teaching in France at a Grande Ecole, and in a University, and also abroad. The politics in our schools are the same as abroad, with the added twist of demi-gods who think that what was put in place in 1732 is the best solution because our world did not change since then.

I love the fact that France provides a good education to people and that (really) everyone can have it. The unfair marking system and ill-placed elitism is what is making our ministers whine, our head of schools whine but nobody has the courage to change anything.


Ohh, TI stories! Here we go!

"Hey, distantaidenn, I wanna talk to you after class." These were the words of my then high school math teacher. I wasn't worried, I was a good student. Little did I know, this would shape my career for the next 20 years. When after class came, my teacher handed me a brand spanking new TI-83. "We're gonna be using these in class from now on. Take this home for the weekend, learn how to use it, and teach the rest of the class." I held in my excitement, and took the device, along with its 1-inch thick manual.

I pored over the manual. Before I knew it, I had mathematical functions dancing across the screen. All of our current math equations set up to accept variables and spit out answers. I didn't know it at the time, but I was "programming." I began to dabble in TI-Basic -- I had no idea what it was, but apparently, it was the language this giant calculator used, and I'd have to learn that language to make this machine do my bidding. So I learned it. The next year in school, I signed up for an elective Programming class, and lo and behold, it was in Basic -- I thought to myself, this looks familiar, I know this! I finally made the connection that I had been "programming" the whole time. From then I was hooked.

Fast forward to university, I gained a degree that was as far from programming as possible, but I always had my scripts. I was the guy that could talk to computers. I was at home on the command line. And I knew enough html and JS to make a shitty web page, if necessary.

And here I am now, still engineering and managing, and making (I'd like to think) not so shitty products for a living.


Great story--thanks for sharing! It's interesting how the unexpected, serendipitous moments can have such downstream effects on our lives!

Just out of curiosity: what did you end up studying in university? And how come you didn't study computer science / programming despite acquiring an interest for it earlier in your life?


Thanks!

I decided to delve into the "pure" sciences of mathematics and physics. I figured I'd end up in the ivory towers of academia. And of course, like many other undergrads, I ended up major hopping a bit. I never considered programming as a career until it happened.


Ah, interesting! I know quite a few people who took a similar path--started off in the academic math/physics/statistics route but winded up doing programming as a career. Thanks again for sharing the story. "Mathematical functions dancing across the screen" is a phrase that will stick around with me for a bit.


The magic of the TI calculators is that the hardware is simple in a way no other widely used platform is. Way simpler than something like a Raspberry Pi. No GPU, no BIOS, no PCI, no USB, no kernel. You can directly flip pixels on the screen by just flipping bits in memory at a known address and you can see what keyboard buttons are pressed by reading from another address.

And yet despite the utter simplicity, these things are sold and used by the millions even today, so software written for them has a market. I think every CS student should have a chance to program a simple yet real system like that.


Agree, the system is uniquely approachable for low level. The simplicity is beginning to be a problem for Texas Instruments who faces competitive pressure from other companies who have a more modular codebase and can just drop in Python support. TI is heavily invested in their z80 assembly codebase and can't get things like CircuitPython to build on ez80, leading to hacks like shipping a totally separate ARM microcontroller to run the Python environment, with the z80 playing dumb terminal.

A smarter solution would be to virtualize the z80 portions on basically any other architecture and slowly start moving to C wrappers for TI-OS functionality.


I wish someone had explained the mapping of memory to input/output to me in high school. Had I known it was so straightforward I would have ventured beyond programming BASIC on the calculators.


They do have a ROM, but it's basically equivalent to famous 80s home computers like the C64 and ZX. Also early games consoles like the NES (which truly doesn't have any ROM---it's all in the cartridge).


The TI calculators have ended up serving American students in a similar way the BBC Micro served British students and now how the Raspberry Pi is serving everybody. "Cheap", ubiquitous, hackable, easy to understand computers.

Many of the developers I know can think back to the first computer they ever wrote a program for, but if you press them, they'll often realize that they actually first wrote software for the TI calcs.

https://ticalc.org/ is a treasure of the internet.


> https://ticalc.org/ is a treasure of the internet.

Thanks! (I founded ticalc.org back in 1996.)

While calculators weren't my first programming experience, starting ticalc.org was formative for me. Getting all the TI hobby site maintainers (and ZShell developers) involved, registering the domain, setting up the server (Slackware!), etc. really led to my career in tech.

While I regularly encounter new technical challenges, almost every organizational challenge I've ever encountered as a technical leader since has had precedent from working on ticalc.org.

I do wonder whether and how ticalc.org should evolve now. Traffic and activity peaked before smartphones became ubiquitous (for obvious reasons) but it's still pretty popular - See https://ticalc.org/about/webstats.html.

We've always been strictly non-commercial and I don't envision changing that (mainly because I believe in our all-volunteer public service mission, but also because any serious encounter with bureaucracy would probably be fatal for the project.) But I am thinking about succession - what happens when our active staff no longer have the time or energy to maintain it.

I wonder if HN'ers with comparable experiences with long-running volunteer projects like this have some wisdom on this topic?


Thank you so much for launching the project! I imagine that if you ever come up with a succession problem, plenty of people (myself included - just ask!) would be happy to help maintain the site.

Have you considered how to release a full archive of the files? In 2021 this volume will be easily handled by data hoarders. Of course the whole site is very valuable but the upload collection is irreplaceable - ticalc.org is the host for releases.


Yo! Thanks for creating/running the site! And also for not changing it. It doesn't need to change. I wish more websites would realize this.

The day that my program (Antrun) was on the frontpage of ticalc.org is still one of the biggest success-highs I've ever felt :)


> Yo! Thanks for creating/running the site! And also for not changing it. It doesn't need to change. I wish more websites would realize this.

Totally agree. Ticalc.org went through a few redesigns in the early years - v1 (1996): https://ticalc.org/about/oldticalc/ticalc1/ and v2 (1997): https://ticalc.org/about/oldticalc/ticalc2/ - but the current (v3) design from 1999 has aged very well and we've never felt the need to change it much.

We have over the years considered and rejected becoming more of a community hub (i.e. with a forum instead of just comments on news articles) - moderation is just not a battle we're staffed for.

> The day that my program (Antrun) was on the frontpage of ticalc.org is still one of the biggest success-highs I've ever felt :)

:)


I have no particular advice for you, but greatly appreciate the site and all the fun and utility I received from it. At the very least you might want to consider periodic snapshots of the site and all the software be put up on archive.org.


Thanks so much, it is still platform nr 1 for me :) The 15k or so downloads of my game Wizards mean a lot to me!


Thank you! I wouldn't be where I am today without the ticalc.org community.


> In the mid-to-late 2000s, you either knew, or were, that kid in grade school. You know. The one who could put games on your graphing calculator.

Nit: That was totally a thing in the 90s as well. In junior high, some (actually pretty non-techie) kid knew (I think) a college kid who installed ZShell (http://tistory.wikidot.com/zshell) and some games on his TI-85. Pretty soon everyone else got them via memory backup. Eventually those got boring, and I was the kid who got the Graph-Link kit to get new game.

This article actually seems to be kinda unaware of the earlier phases of this subculture, that were centered on the TI-85/86 and TI-92/89.


To stay true to the endless rivalry, here is the HP calculator resources:

https://www.hpcalc.org

Both the TI and HP were tremendously good entry points into programming and, especially for kids who had little interest in or no access to computers.


HP RPL is one serious gem. HP48 series had lambda arrow syntax in 1990.

    << a -> << a a + >> >>
All in your jeans pocket.


I was wondering when I'd find this comment :) I was in high school early in the early 90s. I programmed a 2-dice game drinking game on a HP48.


I bet most fans of stack-based languages got their starts on HP calcs.


I sold my first "app" in 1997 for $1.

It was a TI-85 program custom written for my chemistry class. It had a couple of minor useful things, but the biggest thing is it would stuff atomic weights into their canonical symbol names in memory, and clear them when you're done to save memory.

For example, 2O (two-oh, two Oxygen atoms) was a valid expression that yielded 32. And no, not all of them are available though it's been 24 years so I don't remember which weren't but it was surprisingly few.

I thought it would be a immoral to sell something for more than $1, that when I still had it after selling it. I probably could have charged $50.

I think I was 16 or 17. But I beat apple to the "$1 app" game by 11 years. And it's part of what made me go into computer science -> programming. I grew up poor, so we didn't have a computer in the house, and no internet either. So I carried around the calculator and it's manual for years in High School.


AAAARRRRHHHH! Reading the link I saw the solution I missed decades ago when I tried to use POV to make my PET create a colour display. Just reading the section on how they did 4 levels of grey scale was an eye opener. Yes, I got some colour by flashing squares on and off but it was unwatchable.

I did the flashing for the entire screen together! Just by breaking up which squares flashed at different times I can now see would have made a big difference. Almost 40 years to learn what I did wrong.


Oh man, getting obsessed with TI-82 BASIC in middle school is definitely the reason I have the career and life I do today. I remember after years of dealing with ~36 variable slots and all the other insane limitations, my parents got me a TI-89 for Christmas and it changed everything. You could perform "indirection" on a constructed string, which opened up all kinds of awesome techniques. And you could draw lines and points on the canvas! I built an incredibly slow pokemon clone and a theorem prover before a kind mentor suggested I try programming on the computer.

I hope these sorts of experiences will still be accessible for my kids. Having a school-mandated device with a button labeled "PROGRAM" that took you straight to a BASIC interpreter made it possible for someone like me, growing up in a rural area with zero parental technical knowledge, to end up where I am today.


"I hope these sorts of experiences will still be accessible for my kids. "

If they surfe the web from their computers, they are just a click away, from a WebIDE, called dev tools, much more powerful, and millions of tutorials how to use them. Thd opportunity they have.


So many whipper-snappers here talking about their TI-83+ and later models. When I was in high school ca. 1994 my trusty TI-82 kept me quite busy writing BASIC games. We used to share games with the data sharing cable, I wonder if any of mine still survive somewhere. I still have the physical calculator tucked away in some box, but it is certain that the batteries are long since dead, and all of the volatile memory faded away.

In high school, my calculus teacher discovered that I had written programs on my TI-82 to help me solve homework questions. Much to my surprise, he approved! He explained that his objective was to teach us to solve the problems using whatever tools we had at our disposal—writing a BASIC program to solve the problem was not cheating, rather it was making the best of my resources.


Same here! I had to "delete" my programs though (I think I was able to hide/archive it and restore it after the teacher had checked my empty program list... or did I write an emulator of an empty programs list? I can't remember).

I also wrote the first TI-BASIC tutorial in German on my first blog as a high-schooler. It got pretty popular with it's target group (other high-schoolers who were bored in Math class), and 12 years later I got an email by an unknown person who had randomly stumbled upon my blog again and thanked me for writing it. That one email had been enough to make it all worth it by itself.

Edit: Here it is: https://archive.haukeluebbers.de/ti-basic-tutorial/


I honed my skills on a TI 58. What a machine. I wrote a simple 8 queens solver, which took nearly 30 minutes to reach the first solution. Great times.


Seeing the headline I came here thinking I'd read about TI-58/59 hacking. I actually had no idea there was a whole later generation of TI calculators based on the Z80!

I spent endless hours messing around with my Dad's TI-58 in 1977 and recently bought two examples on a popular online auction site to preserve for when I have that kind of spare time again.


I remember playing "Zelda" clone on my HP48GX back in the late 90s, what an era and impressive feat.

And if I am not wrong, a lot of today CAS solvers on calculators are derived from https://www-fourier.ujf-grenoble.fr/~parisse/giac.html and from the author of the famous Erable (Mapple in French :o )


The Z80, as well as its contemporary competitor the 6502, are still in production and found as a core in various cheap SoCs for toys and other simple consumer electronics. It's certainly more than enough processing power for a moderately complex calculator, but compare the responsiveness of a TI calculator to the regular Windows (10) calculator running on a machine with several orders of magnitude more processing power --- and the former wins.

I've noticed that programmers who have worked with constrained systems and/or started with low-level languages tend to write better code in general (smaller, faster, often both; and less buggy too) by default than those who haven't; I guess the exposure helps develop an intuition for "how much program/computer ought to be enough" to solve a problem.


There was a puzzle game I had for the TI-86 called simply “dstar”. I always wondered who made it. When I looked it up, it looks like it was based on an HP-48 game by the same name.

I’ve ported it to JavaScript, and it runs in the web browser. I also added the ability to show the solution to each level, and skip to any level.

https://www.moria.us/games/dstar/play


Just played it and it's a lot of fun! Thanks for sharing the link.


So many fond memories hardware hacking my TI-85. I remember learning to solder so I could add an extra battery pack with 4 D batteries (played too many games!) and writing apps to play music out of the jack.

Hacking on my TI-85 and wanting to build websites for gaming guilds (Diablo, Starcraft) is what drove me into computers and software development. There was certainly something unique about that era!


I learned to solder for TI-purposes too! Not for battery but to build the 2.5mm-jack-to-serial connector cable (I was too cheap to buy an official one, but successfully wired together the 2-3 resistors and diodes necessary to make the cable work. It was not pretty, but it worked!)


Same here! I’m going to see if I can find the cable around here somewhere.


Same here! I initially had the cable fit with scotch tape and then later soldered to make it work properly. Also first trip to an electronics store, was terrifying to enter a specialist shop with close to no knowledge


Oh that's awesome! I still have my TI-89 - maybe I should find some weekend time to do some projects on it... that sounds like a fun one!


Dude. TI-81 was my high school calculator. I got pretty famous at some point for managing to squeeze into it a decent RPG with monsters, health points and some story line. Other geeks were jealous and jocks patted me on the back for providing distraction. The challenge was the available BASIC program memory. We spent the next few months figuring out how to reduce the footprint to the bare minimum to add more gameplay. No internet at the time. Just our brains and the manuals. I chuckle at the idea of what we could have done if we had been hinted access to assembly and pixel flicker tricks to have 4 colours.

EDIT: Typos


My first big project was also done on a similar calculator.

A few years before the TI era there was a strong HP-48 scene in France and I believe that many of the early work and games on TI-8x and T-9x were inspired by what was already available on HP-48.

Here is my own contribution at the time: https://www.hpcalc.org/hp48/apps/shell/

A multitasking alternative OS and a few apps, I learned a lot working on this.


I'll never forget this project a friend and I worked on because of the "clear your devices" procedure they had us do before every test to make sure we weren't cheating or something. At that point we could archive things and whatnot, but it was just a PITA to deal with it and we kept getting annoyed at having to clear our calculators. So then, of course, we made our own program that would simulate the memory cleared screen, and we used it successfully. Of course, we got paranoid lest anyone would find out, so we ended up just adding to it, so you could then interact with the calculator and even do math on it, so it wouldn't seem like you were interacting with our program.

Funnily enough neither of us ever came close to using it for cheating -- I mean, we didn't need it. But I maintain that in the couple decades since, it was probably some of my best work.


The guy that developed the gameboy emulator mentioned in the article is now working on a new version that jit-recompiles gameboy roms: https://github.com/calc84maniac/tiboyce/tree/dev


Fond memories! I wrote this little game in z80 assembler in highschool:

TI Slimeball: https://www.ticalc.org/archives/files/fileinfo/290/29096.htm...


That’s cool! I also made a version of this game around the same time: https://www.ticalc.org/archives/files/fileinfo/248/24890.htm...



I played it back then. Thank you!


I used tigcc to write a program that can draw the root locus (https://en.m.wikipedia.org/wiki/Root_locus). I had a version that ran in ti basic at first, but it was too slow because it had to solve a polynomial (order 3 or 4) per pixel. It was my way of cheating, because the calculator was allowed in most exams. I considered it not quite cheating, because I figured being able to code the solution should also count.

I also coded up ti basic programs that instead of just spewing out the solution to some types of maths problems also gave the steps. That saved a lot of time in maths exams so that I had more time for the problems that required more thought.


I started programming because I was bored in school at 13 yo and using a TI 83 was accepted in almost all classes. I coded a dichotomic number guesser, Collatz path grapher, unbeatable tic tac toe, minesweeper with recursive finding of surrounding blank cells, IFS (iterated function system) grapher generated from random points (to draw fractals), a Connect Four etc. All this with a 6 lines screen and a huge amount of noise around me constantly.

When I got home, I would link the TI on my computer and install a copycat of Pokemon Blue/Red for GameBoy that someone coded in assembly and realize how awesome some others people were, and I had still so much to learn


I never understand the American fascination with programmable calculators. To me they sound like a racket by calculator manufacturers and education authorities to mandate an unnecessary and expensive device on to students.

In many other countries students get through high school and even many undergraduate courses (like CS for example) without needing any calculator at all. Perhaps this is due to the greater focus on analytical problem solving than numerical solutions which is perhaps done in the US?

(Reposting this as a direct comment, after posting as a reply a comment below.)


Sure, they're a racket. But they're also a handy tool.

You can plug in a bunch of arithmetic, and it just does it, but you can easily edit and redo. They can graph some functions, and do some of the brute force stuff (like newton's method etc), so you can concentrate on the thinking.

If you spend the class time writing a program to solve the homework, instead of doing the homework, you've practiced a life skill and probably understand the material pretty well.

If you get the 68k based calculators (ti-92 and ti-89), they've got a symbolic algebra system and can do a lot of cool stuff, although giving that to a high schooler may not be the best choice.


Count me along the people who got started programming because there's a button right there telling you it's possible to make the machine do your bidding.

I don't know why everybody else who isn't a programmer gave a shit, but if you had a modicum of curiosity about that button did, the manual came with it and the button was right there.

Bear in mind that Windows 95 was all but ending most people's exposure to DOS, and even if that wasn't the case, it's not like DOS displayed a banner on startup reading "why don't you type qbasic and see what happens?".

It was a lot less immediately obvious that you could program a computer and that there were tools to do so included. And the paper manual didn't exactly cover how to use qbasic.


> Count me along the people who got started programming because there's a button right there telling you it's possible to make the machine do your bidding.

This exactly. Every web browser has JavaScript, but there's no button to press to bring up a tab with a simple, easy to use JavaScript programming environment (e.g. a canvas, console, code editor, demo programs) with a link to beginner-friendly tutorials and documentation.

The button + tab would be easy to make, though tutorials/documentation would be a lot more work.


Hmm. I am a) old and b) came from another country and c) now have kids in the US school/college system. This doesn't ring true for me.

I've never heard of _programmable_ calculators being required or used in US education. _Graphing_ calculators, yes. Perhaps all graphing calculators are also programmable these days? Anyway, never once came across a case where programming was used.

In my high school in the 1970s we needed and used calculators. The previous generation of students used slide rules.

In my university career in the 1980s we used graphing calculators. I'm not sure if they were required, but we had them and used them. No programming, although storing various formulae required to be memorized for exams as programs in the calculator was handy (statute of limitations has expired...).

There is a kind of racket. Perhaps it's "regulatory capture" in action. Schools will often mandate a specific calculator model. So will exam boards. So if the student sits an SAT or AP exam, they are restricted to a specific calculator model. I assume the reason for this is to save teachers from having to understand every different calculator model, and also to prevent cheating in exams. E.g. although today nobody needs a physical calculator because smart phones have great calculator apps, the exam people don't want students bringing smart phones into the exam room.

Calculator vendors (TI primarily) have taken advantage of this regulatory situation by increasing the price of the "approved" calculators.

However, for my kids, their teachers said that they could use any calculator that had the necessary functions, regardless of the supposed rule that only one model is allowed.


I once read an article about how access to computing power caused the math cultures of the USA and USSR to diverge after WW2. For example Bellman's dynamic programming vs. Pontryagin's principle for trajectory optimization. Markov Chain Monte Carlo was developed in the USA too. Graphing calculators kind of fit.


Is the US really the only country where programmable calculators are used heavily in high school math classes?


In Portugal we used them as well, but we don't suffer from a TI monopoly on the education system.

Anyone is free to pick whatever they wanted, so we had a mix of Casio, TI and HP calculators.

The Casio Basic tablets were the most famous ones, FX-850P.

https://en.wikipedia.org/wiki/Casio_FX-850P

I eventually had the follow up model FX-880P, after using FX-4500P during high school.

https://www.casio-calculator.com/Museum/Pages/FFF/FX-4500P/C...

https://www.casio-calculator.com/Museum/Pages/FFF/FX-880P/Ca...


No, these calculators were fairly popular in Sweden as well (at least during the late 90s).


Which country are you from/talking about?


Question: And when did these students start writing real programs that people used? Here in Canada and I assume the USA there were teenage kids writing useful code that made money for them.


the graphing calculators are differentiated exactly by being able to do analytical solutions. they run the equivalent of derive, mathematica, and wolfram alpha. you're paying for the software, and similar software for your pc costs more.

in many other countries, they are simply unavailable. in the real world, if you have a bunch of differential equations, you want to not spend time solving them for the hundredth time and work on the actual physics problem.

to give you an example with a non-graphing calculator you seem to confuse the TIs with: why need a calculator for numerical solutions, in your 12th year of school. let's take the multiplication of three 7 digit numbers, and multiply it out by hand. oh, you've done it a thousand times already and it's not bringing value? nah, you should be multiplying them out - the 1001st time will somehow still help you learn.

I know how to take a derivative. I can look up the template it fits into, plug in my equation, and 5 minutes later I got it. This teaches me nothing after the first hundred times. And no, that derivative is not a number.

We have limited time. We want to spend it on learning new analytical problem solving. Not doing repetitive busywork.

>like CS for example if you are going to compare it, the apt comparison would be a CS degree taught for 4 years only in assembly. Here in the real world, we use tools to not do useless tasks.


The first piece of "real" software I ever wrote was called "DISC" because it's initial feature was printing out the discriminant of a parabola. But I added to that program as the high school algebra class continued so that by the end of the class, it could spit out answers to all sorts of problems. Everybody loved it.

A fellow student assumed the name stood for "DISCovery", so I retroactively made it so.

After that came a little text-based adventure game that made the rounds.

And then what was to be my magnum opus: a graphical adventure with locations you could select with a "mouse" cursor controlled by the arrow keys. Everything was first plotted out on graph paper and hand written because it was actually FASTER TO WRITE TI-BASIC ON PAPER than entering the program using the calculator keys.

I had overcome the biggest technical hurdles and it was looking great when, for some reason, I decided to change the AA batteries AND the coin cell battery at the same time. Everything else was backed up to friend's calculators. But not that graphical adventure game. It was gone as soon as that coin cell came out. I did not have the heart to re-enter the program and the school year was ending anyway.

I still remember that sinking feeling when I realized my work was lost.


Learning to code and hack on TI 83+’s definitely has through lines to my career nearly 20 years later.

One thing I’m particularly proud of was figuring out how to build an Assembly program workaround for TI’s “testguard” (a tool to force clear someone else’s calculator memory via link cable) in middle school: https://mikeknoop.com/upload/SafeGuard.zip


Though I have absolutely no proof of it since that era is both a black hole for usenet and before calc-ti.org, I believe I can claim to have published the first fake-grayscale demo in asm for the TI-85. This would have been in maybe 1993 or 1994 I think. It was a 4-frame animation of Bevis and Butthead headbanging, and since it was essentially stored as 16 uncompressed bitmaps, it took the calculator's entire memory.

Getting grayscale out of a mono LCD was obviously not a unique idea, but at least I independently arrived at the notion that it could work. I hammered out the TI-BASIC version and proved it sorta worked, but only if I could make my program run fast enough.

I should mention that I was 12.

Before zShell existed, my only programming as a kid had been things like BASIC and Logo; the closest I ever got to anything more fun was some type-in programs that used a whole lot of opaque POKE and PEEK statements, and I got frustrated trying to get C64 programs I got from a book at school working on the Apple ][. I was shit at porting software in middle school.

Going from this straight to z80 asm was insane, but the naivety of youth gave me confidence. My programs would be harder to write but they would run faster. Naturally the fastest program would be the hardest to write, so z80 asm it was.

I was hooked. I became a software developer.

I remember specifically in those early days emailing with Magnus Hagandar, Dan Eble, and Mattias Lindqvist. Thanks to each of you and to all the other early TI fans who helped me along and put up with me. In later years I learned most of this community were also basically kids playing adult on the early Internet. What a time it was!


Modern RPN calculators (clones).

https://www.swissmicros.com/products


Unfortunately, only their hardware is modern. :( The software is outdated and too limited. I'm annoyed that HP basically shrunk down their calculator team down to two people or so and that nobody is working on a worthy successor to the HP50g. The HP Prime is definitely not a worthy successor. I especially dislike the incongruent mixture of two different calculator engines, and now they've added Python to their own programming language to make it even more confusing.

I guess engineers all use tablets or Wolfram Alpha by now and so they figured there is no market for it.


All this brings up long subdued memory .... my HP-25 ,which had cost me one months work during school holidays.. I still remember when I got payment and the next day walked into the shop and told the perplexed salesperson : I want this! He thought nobody in his right mind would buy a calculator without an equal sign button. Anyway I used it from 1975 to abt 1993 when the battery leaked .


Well, I'm jealous of you Americans being allowed graphing calculators. As someone who went to Polish shools in the same period of time, only basic calculators were allowed(addition/multiplication/subtraction/division and nothing else). I've had a graphing calculator but it was just a novelty to play with at home since it wasn't allowed at school.


I passed through Czech schools with my second-hand TI-83 calculator. They only probably found out what it can do afterwards.

That second-hand TI-83 cost me like half of average salary (in 1994), but it worked really well. I still have it, but I no longer have any use for it.


I'll also chime in. Early in high school, went from writing one-line basic programs to reading the assembly and C source code of Phoenix and other games. Wrote some games of my own in C and assembler. Now pursuing a career in CS. A very strange entry point in retrospect, but such a serendipitious one.


https://www.irrlichtproject.de/houston/

Houstontracker 2 is a surprisingly powerful music software for TI calculators which accomplishes its magic by bit-banging the serial data port to produce stereo audio!


Never underestimate a bored person with something that looks to their boss like work.


Before iPads were commonly used while flying. My first program was setting up an app to calculate wind correction and fuel estimates into my TI-83.

It was the first time I was able use Trig and programming to solve a real world problem.


hahah that's awesome! Makes me wonder now if anyone ever took a checkride and instead of an e6b just whipped out a TI83 in the middle of it. I'd pass that guy instantly! hehehehe


The first program I wrote was a quadratic equation solver on my TI82 in the mid 90s. I bought the link cable and enjoyed playing assembly games on my TI86.


Finished high school in 2003.

Was told to pickup a graphing calculator in 6th or 7th grade. My family bought me a second hand TI82. I might be the only student to have had one malfunction but the = button stopped responding that first year. My family got me a TI83 after that. I would later buy myself a TI83+ when I started working part time.

That was my first exposure to basic.

I would like to believe I am also still the record holder for an uncle worm high score.


I used a TI for my physics classes, and wrote code to solve pretty much every problem type.

Really, if it weren't for writing the code, I wouldn't have known the subject matter all that well, and would have likely done poorly. By programming it, I understood it deeply.

Also, I was able to plow through the exams faster than anyone else. I even made the code show the steps so I could show my work as required.


Circa 1995/6 was it for me but on Casio calculators [1] There were books devoted to it, I was able to program games, school cheat notes, brilliant memories. [1] https://fr.wikipedia.org/wiki/Casio_CFX-9960GT


I missed out on this whole thing being born a bit early. For us, it was 8 bit computers. And for me personally, I grabbed one of the Tandy Pocket Computers and used the crap out of it well into the TI era.

Looks like a whole lot of fun! Suppose I could have jumped in, but by then I was away from needing the calculator, ah well.


Yeah, this is a pretty narrow window of the millennial generation. If you had been born too late (e.g. Gen-Z), you'd have high production AAA-production mobile games to play between classes and after school instead.

One thing the author overlooks is how game programmers were able to exploit the primitive networking capabilities of the calculator. I fondly remember playing multiplayer Bomberman by plugging two TI-83 together via the 2.5" link cable.

I recently had enough nostalgia to pick up a new 2021 TI-84 Plus CE PYTHON unit. On one hand, it hurts to buy a 20+ year old CPU for over $100. On the other, there's something satisfying about still being able to program TI-Basic via muscle-memory using the token-based input.


Author here. Great point - I totally forgot to write up CalcNet! It was a protocol designed by KermMartian (DoorsCS guy) for connecting up to 8 calculators to a "local network" of tied-together link ports. There was also bridge software to GlobalCalcNet, which let you sort of VPN your calculator into virtual CalcNet networks over USB.


I get that. Your comments resonate with me.

As for the CPU...

I paid a few hundred bucks as I put together a great 8 bit workstation and had similar thoughts.

We are buying the system. A lot went into these things. A lot can still come out. And the skills can matter to us. Maybe that helps some.


I regret that I have less use for calculators than I used to. You can pry my TI-89 from my cold dead hands. Still very useful especially for things like unit math.


I've still got mine. Though I use an emulator on my phone more often these days. The CAS is still excellent.


The TI-89 blew my mind when I accidentally discovered Exact Mode. I had fed it a problem from my Number Theory homework just for fun... it wasn't supposed to actually answer it!


This takes me back. In high school I actually modded my TI-89 (circa 2001) with a lower Ohm resistor. The clock ran on a simple RC circuit, so you could "overclock" it by soldering in a new resister. Got a pretty impressive bump as I recall. And then when it became common enough games started to support a turbo mode!


Just gave my son my ti-89 for middle school, apparently it’s a big novelty and has gotten him slightly more motivated for math class. Teacher told him to put his name on it and not let it out of sight.


You're not too old! Embedded systems and home computers grew up together. The TI-84+ that my parents bought me in 2005 was great, especially because my parents paid for it. I feel like any device that becomes popular in schools and is repairable/hackable, will become the platform of the future. The article says "you either knew, or were, that kid" and if you think you were that kid, you probably were.

When trying to figure out when embedded systems became mainstream, I accidentally just wrote an incomplete history of embedded pocket computing.

1967: LOGO programming language developed by Seymour Papert.

1970: Sharp QT-8B calculator was the first battery-powered calculator

1972: HP-35 calculator was first scientific calculator

1974: Sinclair Scientific 1974 was affordable, programmable, moddable, repairable. 400 functions in library.

1976: PIC microcontrollers released.

1976: Zilog Z80 launched.

1977: Tandy TRS-80 released, using Zilog Z80 chip.

1977: Apple II released, with colour graphics.

1980: Epson HX-20 released, a laptop with receipt printer and screen. (my dad wrote his Ph.D. thesis on one)

1981: BBC Micro released, targeted at education.

1982: Commodore 64 released.

1984: Apple Macintosh released.

1984: Psion Organiser, 1984 added database, calculator, clock, diary, alarm clock, a-z keyboard. Programmable in OPL, became Symbian.

1985: LEGO/Logo (later Mindstorms) began, with hardware turtles drawing lines using a pen.

1989: Nintendo Game Boy released.

1989: Macintosh Portable released. First laptop with a GUI and mouse (trackball).

1990: ARM founded, as a joint venture of Apple, Acorn (BBC Micro) and VLSI.

1993: Apple Newton 1993 used handwriting recognition, custom ASIC, name PDA. Popular in medical field.

1996: Palm Pilot 1000 in 1996 brought dimensions down to 120x80x18 mm.

1996: TI-83 calculator got added to high school curriculum.

1999: Apple iBook released, targeting education.

2000: Garmin eTrex handheld GPS device introduced.

2000: Nokia 3310 mobile phone released, 126 million units sold.

2001: iPod brought 5 GB disk space, rapidly doubling. Rockbox custom firmware released for Archos in 2002, iPodLinux in 2003.

2004: TI-84 calculator introduced, with USB OTG.

2004: OpenWRT firmware for routers.

2005: Arduino project began.

2007: iPhone decreased disk space compared to iPod but gained capacitive multi-touch screen.

2012: Raspberry Pi released, targeted at education.

2014: ESP8266 released.

2016: iPhone 7 finally exceeded storage of iPod Classic, but removed headphone jack, increased physical dimensions.

Embedded hacking involves hardware and software, which makes it hard to specialise. I took LEGO/Logo after school in 2000-2001, then extra ICT classes for IGCSE 2004-2005, then Computer Science for IB 2005-2007, and Electronic Systems Engineering in university 2007-2011. There's plenty more devices and emulators to explore!

https://en.wikipedia.org/wiki/Custom_firmware#Other_devices


Great list!

I started with the Apple machines. Missed that apparently sweet TI era and went Unix, and Sgi IRIX. (Beautiful OS)

Going small again, all the little micros and home brew 6502/Z80 projects.

You are right. I could explore the TI. :D. I just may. This scale of computing is a lot of fun!


TI-83+ played a huge role in my formative years as a programmer/nerd. This was early 2000s.

If you like calculators, I also recommend checking out the visual history of vintage TI calculators at http://www.datamath.org/


Please don't take it the wrong way, but by early 2000s PCs were widespread, so wouldn't it have been easier to get into programing through PCs than through these very restricted calculators?

I never understand the American fascination with programmable calculators. To me they sound like a racket by calculator manufacturers and education authorities to mandate an unnecessary and expensive device on to students.

In many other countries students get through high school and even many undergraduate courses (like CS for example) without needing any calculator at all. Perhaps this is due to the greater focus on analytical problem solving than numerical solutions which is perhaps done in the US?


As someone who cut his programming teeth on TI calculators, I think the fascination from the student side is because it hits a "sweet spot" for casual and budding professional programmers alike:

* It's very easy to get started. The built-in TI-Basic interpreter is fully documented in the manual, and is expressive enough to be useful for a wide variety of imminently useful tasks (e.g. writing programs that help you with your homework) without too much of a time investment. Moreover, your math teacher can likely help you, since they probably also write their own TI-Basic programs.

* It's a "small" system. You can comprehend how everything in the hardware works end-to-end if you make it to C/assembler programming (doable without professional or academic training).

* At the same time, it's a rich and complex enough system that you can make non-trivial games that you and your friends will share and enjoy playing surreptitiously in class.

* Everyone you know has one, which means there's a large online presence and user community to help you get started and who will delight at the programs you write.

TI calculators precede the Raspberry Pi, smartphones, and netbooks, so there was at one point a "nerdy coolness" factor of having a pocket-sized programmable device you could take everywhere. They were also more affordable than Palm Pilots, and since everyone had one, it was less nerdy to be seen using one in school.

Just my two cents.


There's a few reasons that only make sense if you were in high school at that time in the United States:

- Many schools didn't offer programming courses in the 00s (including mine)

- Ti calculators came with a large manual and a list of the keywords/functions built into it

- Lots of free time while in high school. Study halls, for example

- Sharing apps could be done through plugging a serial cable into two calculators

- The calculators were ubiquitous for students

- Many of us didn't have great internet at the time, so getting programming resources wasn't easy (manuals, compliers, other tooling)


In the pre-smartphone age, calculators represented the only widely available mobile gaming platform for bored high school kids. That motivated a lot of people I know, including me, to dabble in programming.


> wouldn't it have been easier to get into programing through PCs than through these very restricted calculators?

The restrictions are what made it easy to get into.


I went back to school and was thrilled to have an excuse to use my ti86 once again :)

Love that thing.


I was the same way but with Casio calculators. Got me into programming and the casiocalc.org forum was the first online community I was ever active on. It's like a ghost town now but it was a good time back in the day.


Same here. The "Casio hackers" community was nowhere near as large as the TI folks, but we had some good times and some impressive projects too. :)


Omg this brought back some ticalc.org nostalgia.

I had to check and the site is still going… crazy!


It appears Durk Kingma, the author of the greyscale library mentioned, is renowned AI researcher http://dpkingma.com/. Pretty neat.


I found this which has some screen shots : https://www.youtube.com/watch?v=Jo_WgbUfNxc


Hi !

This article tell a lot from me. Have a look at all my TI-89 programs I developed at high-school.

https://apps.darkwood.fr/ti89

Was good time !


Fond memories myself of writing a texture rotator/zoom demo and squeezing every clock cycle out of it.


Ah I was so into writing TI-BASIC (and eventually, experimenting with z80) on my TI calculator!

I would be carrying it to every class. This was before smartphones and I had a lot of times where I had nothing better than to write program on the calculator.

I wrote so many things, like a hangman game (with a wide vocabulary) and an RPG fully in TI-BASIC, with a 2D map and a combat system. You could store only a limited number of pictures, so I made up a format for mapping pictures into strings, with a corresponding encoder and decoder.

My favorite program I wrote is ELIZA, a copy of the famous therapist AI program (actually inspired by the alt-text of the xkcd linked in the article!). It had like 30 rules or so and worked remarkably well, to the extent that I would talk to it often through my problems.


My first few basic lines of code were written on a TI83+.

Nostalgia.


The TI Files, where everybody knows your name.


> This is not a coincidence because nothing is ever a coincidence with xkcd.

I love these little in-jokes.


Haha I am glad someone noticed :)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: