Readit News logoReadit News
gamegoblin · 4 years ago
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.

NaturalPhallacy · 4 years ago
>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.

gamegoblin · 4 years ago
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.
nodespace · 4 years ago
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

saagarjha · 4 years ago
Ah, the days of rearranging code so you could take advantage of the special Ans variable being faster to access…
gorkish · 4 years ago
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.

andrepd · 4 years ago
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.

jamesfinlayson · 4 years ago
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...
UncleSam · 4 years ago
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.
DavidPeiffer · 4 years ago
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"

CobrastanJorji · 4 years ago
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.

radicaldreamer · 4 years ago
There were apps to do symbolic calculus on the TI-83/84 via Detached Solutions...
nicolas_t · 4 years ago
> 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.

BrandoElFollito · 4 years ago
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.

distantaidenn · 4 years ago
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.

BigHatLogan · 4 years ago
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?

distantaidenn · 4 years ago
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.

modeless · 4 years ago
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.

thrtythreeforty · 4 years ago
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.

divbzero · 4 years ago
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.
userbinator · 4 years ago
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).
bane · 4 years ago
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.

ticalc-isaacs · 4 years ago
> 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?

thrtythreeforty · 4 years ago
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.

vanderZwan · 4 years ago
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 :)

bane · 4 years ago
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.
NanoWar · 4 years ago
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!
modeless · 4 years ago
Thank you! I wouldn't be where I am today without the ticalc.org community.
tablespoon · 4 years ago
> 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.

makeitdouble · 4 years ago
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.

agumonkey · 4 years ago
HP RPL is one serious gem. HP48 series had lambda arrow syntax in 1990.

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

peterfield · 4 years ago
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.
optimalsolver · 4 years ago
I bet most fans of stack-based languages got their starts on HP calcs.
NaturalPhallacy · 4 years ago
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.