Indeed, +1. I was the same though with a TI-83 instead. I had to get good at hiding the calculator under the desk in non-math classes because the English teacher (for example) would press me on "why do you need a calculator for English class?"
I'm kicking myself for not saving the game code I wrote for some of those early games. They weren't very good, but I'd love to see the code, despite the horrifying spaghetti that it was.
Almost identical boat here. Had a borrowed TI-83, freshman year wrote 2048 && 1/2 of chess with only knowing basic variable usage, if, goto, and matrix indexing. Found out about actual loops and the ability to call a basic program from another latter.
That was me. Algebra clicked for me so I found the pace of the class to be slow. Ended up creating a few programs to solve tedious things like the quadratic formula incrementally while displaying the intermediate steps so I could write them down on tests.
Authoring programs using the buttons on the calculator was not fun.
Absolutely! It started with MENU() text adventure games and then got to drawing custom UIs with DRAW(). iirc, you could get small text by using TEXT() in the DRAW() command. The specifics might be wrong on that one though!
And many of the people I knew who went on to become real incredible software devs got tired of the limitations of basic and went to ASM. My friend and I started building (and selling) graphlink cables made from old printer parallel cables, mainly for the ASM hackers. We even sold them with a warranty!
Same. I even convinced my mom to buy me a transfer cable so I could distribute my programs to my classmates. I was the "plug" for a brief time. Probably my closest taste of being "popular". It was nice.
I ended up building my own by "repurposing" and old printer parallel cable that my dad wasn't using. He wasn't thrilled about that, but seemed a little bit proud at what I did with it.
I eventually made enough money from "donations" from people to buy a proper cable, which did improve my DX quite a bit. The hacked up parallel cable wasn't the most reliable...
I received the TI-83+ manual on the first day of high school and read it back-to-back that same day.
Subsequent math classes, I started by writing a BASIC problem to solve the type of math problem we were given.
I can't decide if I got really good at solving those math problems by solving them generally once, or really bad at solving those math problems for never having solved them more than once or twice by hand while writing the program.
Those programs were very inefficient, and you could code the TI-83+ in assembly, but it required uploading the code via cable. I recall being able to play small internet-downloadable network games with two TI-83+ connected. I never got around to writing any games myself.
The Basic was SO BAD that I had to learn Z80 assembly to make anything good. Really.
No sane Basic should leak stack memory just because you exited an "If-Then" block without reaching the corresponding "End". Yes that's a thing. If you use "If-Then" and the code never reaches the "End" because you used "Goto" to leave the block, a few bytes are leaked every time that happens, and eventually the program stops with "ERR: Memory". You needed to use "If" then "Goto" on the immediate next line, and that would avoid the leak. Exiting the program or stopping it will give you back all the leaked memory, including seeing that error.
Then you have the lack of actual subroutines or functions. All you can do is call into a separate program, and return things by putting them in specific variables. But the Basic doesn't even have "Gosub".
In 2008 I was in high school and wrote a TI-BASIC tutorial in German [0] on my blog that became by far the most popular thing I wrote - maybe on par with my post about how to fix a quest bug in Skyrim by teleporting Delphine.
I was a bit mad back then that people for some reason appreciated those posts more than many very deep teenager ramblings about politics/philosophy :D
I remember learning about matrices and using that to add DRM to a program, that I made and shared with friends, to prevent resharing, if you didn’t have the right matrix stored in the right spot it wouldn’t run, validated with some matrix math I can’t recall
I love seeing everyone share their stories if learning on a TI-8x.
My school recommended the 83+ but I ended up with an 85, probably because it was on sale or something. This meant I couldn't share games that all the kids had in their 83 so I got my start by copying them by hand and trying to figure out the syntax differences by guessing. After one of those I was able to start making my cheater programs and aced geometry because of it.
I went with a TI-89 and had one good friend in HS that had one as well. This would have been late 99-00, I believe.
Fondest memories were recreating my school C++ project in TI BASIC and showing it to my teacher, using utilities to restore apps and data after a "reset" in math class so I could skip over memorizing equations, grayscale erotica, and of course Phoenix.
I got a TI83 in 4th grade and I realized programming is how you made video games and I decided "ok I'm going to learn to program"
I read the whole manual's programming section but couldn't make heads or tails of it. It assumed you knew basic logic/programming and mostly explained functionality/syntax.
Then in 5th grade my friend who was 3 years older was like "hey look I made a story in my calculator" and it was this big choose your own adventure story. He showed me how to use goto, how to display text, and a function for multiple choice user input + goto. I was in business!
I wrote my own story but had a section where I wanted to do different things if you had gotten an item already so I had to program the whole story twice and only enter the second version from the option where you get the item.
I tried writing a more complicated story with more items but the duplication was insane 3 items required 3!=6 copies of common locations. I was like "this is dumb there's got to be a better way" and I looked at the manual again and now I had enough of a framework to understand "OH a variable is whether you have the red key, why didn't they just put that?"
For those souls loosing their skills to the easiest to adopt technology ever created... agentic development works for him because he KNOWS what he is doing in the first place!
There‘s HP calculator guys and TI guys. Around the age of 17 I spent lots of time programming my HP28s calculator in a Forth like language that had symbolic mathematics, lots of ideas from Scheme (closures, functions as first class arguments, recursion). It felt like magic dealing with concepts I hadn’t seen in the C compiler on my Amiga or later in Turbo Pascal. But I saw these concepts later in Mathematica and was familiar.
I had programmed games, complex 3d visualisations (super slow but oh well), and was totally fascinated by what this device could do.
An HP 50g was my calculator of choice, and the whole RPN style really rubbed off on me. Plus it had more advanced symbolic algebra capabilities than a ti83 equivalent. I enjoyed learning common lisp, scheme, racket, etc through high school and college and still am fond of them today because of this calculator.
Most if not all high schools and colleges in the US required TI “graphing” calculators for algebra/trig on up. I don’t know if they still do. I never saw this HP28, sounds awesome!
I remember one of my math teachers claiming only TI showed up to the math text book meetings or something like that, so guess what calculator the book recommends...
Ah yes, my first love. I remember creating a quiz game based on greek mythology, and a little RPG where I realized the power of exponential functions by wrecking my power curve.
It was effectively a portable computer that I was allowed to use and play with in most classes.
Started with TI-BASIC, then discovered ticalc.org and the shell and assembly programming hacks, games, and home brew transfer cables.
It effectively started my electrical engineering and computer science career.
I know I’m not alone.
I'm kicking myself for not saving the game code I wrote for some of those early games. They weren't very good, but I'd love to see the code, despite the horrifying spaghetti that it was.
Authoring programs using the buttons on the calculator was not fun.
We had show our calculator had been memory wiped before any tests.
Although in retrospect we only had to show the wipe screen which we probably could have coded up as its own program.
I already knew Basic from a DOS PC, but did write a Breakout clone while bored in classes on my TI-82.
I eventually made enough money from "donations" from people to buy a proper cable, which did improve my DX quite a bit. The hacked up parallel cable wasn't the most reliable...
Subsequent math classes, I started by writing a BASIC problem to solve the type of math problem we were given.
I can't decide if I got really good at solving those math problems by solving them generally once, or really bad at solving those math problems for never having solved them more than once or twice by hand while writing the program.
Those programs were very inefficient, and you could code the TI-83+ in assembly, but it required uploading the code via cable. I recall being able to play small internet-downloadable network games with two TI-83+ connected. I never got around to writing any games myself.
No sane Basic should leak stack memory just because you exited an "If-Then" block without reaching the corresponding "End". Yes that's a thing. If you use "If-Then" and the code never reaches the "End" because you used "Goto" to leave the block, a few bytes are leaked every time that happens, and eventually the program stops with "ERR: Memory". You needed to use "If" then "Goto" on the immediate next line, and that would avoid the leak. Exiting the program or stopping it will give you back all the leaked memory, including seeing that error.
Then you have the lack of actual subroutines or functions. All you can do is call into a separate program, and return things by putting them in specific variables. But the Basic doesn't even have "Gosub".
Also, it's very very slow.
I wonder if I still have my minesweeper program on my old calculators.
In 2008 I was in high school and wrote a TI-BASIC tutorial in German [0] on my blog that became by far the most popular thing I wrote - maybe on par with my post about how to fix a quest bug in Skyrim by teleporting Delphine.
I was a bit mad back then that people for some reason appreciated those posts more than many very deep teenager ramblings about politics/philosophy :D
[0]: https://archive.haukeluebbers.de/2008/12/ti-basic-tutorial-1...
-- William Gibson, Neuromancer
I just love opening a page, and it is not vomited with claude's aesthetics.
* A quadratic formula program, which outputs the number of roots and the x-intercepts upon the user inputting the values of A, B, and C.
* A fighting game, with health, a store, different enemies, weapons, armor, etc, with graphics and animation.
https://github.com/dzoba/ti-89-raycasting-with-z
My school recommended the 83+ but I ended up with an 85, probably because it was on sale or something. This meant I couldn't share games that all the kids had in their 83 so I got my start by copying them by hand and trying to figure out the syntax differences by guessing. After one of those I was able to start making my cheater programs and aced geometry because of it.
Fondest memories were recreating my school C++ project in TI BASIC and showing it to my teacher, using utilities to restore apps and data after a "reset" in math class so I could skip over memorizing equations, grayscale erotica, and of course Phoenix.
https://www.youtube.com/watch?v=ke6DnczjaK0
I read the whole manual's programming section but couldn't make heads or tails of it. It assumed you knew basic logic/programming and mostly explained functionality/syntax.
Then in 5th grade my friend who was 3 years older was like "hey look I made a story in my calculator" and it was this big choose your own adventure story. He showed me how to use goto, how to display text, and a function for multiple choice user input + goto. I was in business!
I wrote my own story but had a section where I wanted to do different things if you had gotten an item already so I had to program the whole story twice and only enter the second version from the option where you get the item. I tried writing a more complicated story with more items but the duplication was insane 3 items required 3!=6 copies of common locations. I was like "this is dumb there's got to be a better way" and I looked at the manual again and now I had enough of a framework to understand "OH a variable is whether you have the red key, why didn't they just put that?"
Functional Programming in Scala
I had programmed games, complex 3d visualisations (super slow but oh well), and was totally fascinated by what this device could do.