from Hacker News

The Insane Innovation of TI Calculator Hobbyists

by bkudria on 10/6/21, 11:07 PM with 125 comments

  • by gamegoblin on 10/7/21, 1:18 AM

    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.

  • by DavidPeiffer on 10/7/21, 2:58 AM

    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"

  • by distantaidenn on 10/7/21, 3:35 AM

    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.

  • by modeless on 10/7/21, 2:35 AM

    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.

  • by bane on 10/7/21, 3:04 AM

    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.

  • by tablespoon on 10/7/21, 3:51 AM

    > 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.

  • by makeitdouble on 10/7/21, 1:33 AM

    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.

  • by NaturalPhallacy on 10/7/21, 1:54 AM

    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.

  • by ecpottinger on 10/7/21, 4:28 AM

    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.

  • by sbrother on 10/7/21, 4:38 AM

    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.

  • by DamnInteresting on 10/7/21, 3:40 AM

    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.

  • by Foobar8568 on 10/7/21, 7:26 AM

    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 )

  • by userbinator on 10/7/21, 1:58 AM

    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.

  • by dietrichepp on 10/7/21, 3:11 AM

    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

  • by FunnyLookinHat on 10/7/21, 1:14 AM

    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!

  • by crocal on 10/7/21, 9:50 AM

    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

  • by stephc_int13 on 10/7/21, 11:29 AM

    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.

  • by ChicagoBoy11 on 10/7/21, 12:58 PM

    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.

  • by lawl on 10/7/21, 9:41 AM

    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
  • by continuational on 10/7/21, 3:09 AM

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

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

  • by stkdump on 10/7/21, 5:00 AM

    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.

  • by ttoinou on 10/7/21, 7:12 AM

    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

  • by billfruit on 10/7/21, 2:40 AM

    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.)

  • by davegauer on 10/8/21, 7:11 PM

    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.

  • by mikeknoop on 10/7/21, 3:42 AM

    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

  • by gorkish on 10/7/21, 5:59 PM

    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!

  • by jdkee on 10/7/21, 2:34 AM

    Modern RPN calculators (clones).

    https://www.swissmicros.com/products

  • by jaco8 on 10/7/21, 11:39 AM

    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 .
  • by gambiting on 10/7/21, 7:07 AM

    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.
  • by bo1024 on 10/7/21, 3:44 AM

    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.
  • by jeffalyanak on 10/7/21, 7:15 PM

    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!

  • by mbg721 on 10/7/21, 3:43 AM

    Never underestimate a bored person with something that looks to their boss like work.
  • by trackrn6 on 10/7/21, 12:57 PM

    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.

  • by samgranieri on 10/7/21, 12:55 PM

    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.
  • by johnebgd on 10/7/21, 5:13 AM

    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.

  • by RobKohr on 10/12/21, 6:40 PM

    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.

  • by yrcyrc on 10/7/21, 10:29 AM

    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
  • by ddingus on 10/6/21, 11:35 PM

    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.

  • by jurassic on 10/7/21, 1:52 AM

    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/

  • by znpy on 10/7/21, 5:57 AM

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

    Love that thing.

  • by m0ngr31 on 10/7/21, 6:40 AM

    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.
  • by amznbyebyebye on 10/7/21, 1:28 AM

    Omg this brought back some ticalc.org nostalgia.

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

  • by shmageggy on 10/7/21, 11:00 AM

    It appears Durk Kingma, the author of the greyscale library mentioned, is renowned AI researcher http://dpkingma.com/. Pretty neat.
  • by wiz21c on 10/7/21, 7:02 AM

    I found this which has some screen shots : https://www.youtube.com/watch?v=Jo_WgbUfNxc
  • by matyo91 on 10/8/21, 10:25 PM

    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 !

  • by em3rgent0rdr on 10/7/21, 6:54 AM

    Fond memories myself of writing a texture rotator/zoom demo and squeezing every clock cycle out of it.
  • by lambdaloop on 10/7/21, 3:54 AM

    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.

  • by h0nd on 10/7/21, 2:17 PM

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

    Nostalgia.

  • by csense on 10/7/21, 1:04 AM

    The TI Files, where everybody knows your name.
  • by thewakalix on 10/7/21, 7:05 AM

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

    I love these little in-jokes.