alt.hn

5/4/2026 at 8:28:24 PM

Boris Cherny: TI-83 Plus Basic Programming Tutorial (2004)

https://www.ticalc.org/programming/columns/83plus-bas/cherny/

by suoken

5/7/2026 at 10:02:43 AM

It's funny how many software developers got into it due to being bored in class with a TI-83 and randomly trying to create programs.

by z_open

5/7/2026 at 12:05:26 PM

That’s me with a TI-85 in 7th grade in ‘95 or so.

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.

by nzoschke

5/7/2026 at 12:56:16 PM

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.

by freedomben

5/7/2026 at 3:10:13 PM

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.

by chainingsolid

5/7/2026 at 11:28:38 PM

Ah I was a few years later on the TI-86. Around 1999.

Between this, and SNES emulation (searching memory for values and adjusting things to see how they'd affect the game), I was destined for computer science.

by bmenrigh

5/7/2026 at 4:36:53 PM

We had a chat program on the TI-85 over an extended (10m) link cable.

Good times, indeed.

by chinathrow

5/7/2026 at 3:46:20 PM

I had a TI-81 (and then an 85 later on). I wrote a blackjack program. There was no link cable for the 81, so other kids had to type it in manually.

by dlevine

5/7/2026 at 12:13:00 PM

Same here! TI-85, and then HP48G series after that!

by aklein

5/7/2026 at 5:07:20 PM

+1 ti85 7th grade '95

by colinmegill

5/7/2026 at 12:48:50 PM

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.

by matt_kantor

5/7/2026 at 2:53:58 PM

> so I could write them down on tests.

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.

by cube00

5/7/2026 at 4:20:08 PM

Most teachers were not good at checking this. There was an archive mechanism which would compress the file and IIRC, prevent it from showing up in the program list. You could of course just unarchive it.

by z_open

5/8/2026 at 12:42:14 AM

Even though I never cheated, I never wanted my programs to get erased... I just created an image of the "memory erased" screen and showed that to the teachers.

by stn8188

5/7/2026 at 12:55:47 PM

It was OK, just needed to memorize the commands, they are all reachable via a combination of number keys :-)

by NanoWar

5/7/2026 at 12:48:14 PM

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!

by butlike

5/7/2026 at 12:52:34 PM

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!

by freedomben

5/7/2026 at 2:38:15 PM

Hey, some of us are old enough to have done it on a TI-82 instead!

I already knew Basic from a DOS PC, but did write a Breakout clone while bored in classes on my TI-82.

by vikingerik

5/7/2026 at 4:14:16 PM

TI-BASIC was also the gateway drug to writing assembly for TI-83.

by teeray

5/7/2026 at 6:05:40 PM

Says something interesting about education. Exposure to tools had perhaps as much impact than what the high schools were actually teaching .

by seizethecheese

5/8/2026 at 12:59:01 AM

productive procrastination!

by kellpossible2

5/7/2026 at 11:57:37 AM

Wait, I'm not the only one ? :P . I was def the only one in my class and maybe we were 3 of all classes doing that

by ttoinou

5/7/2026 at 12:39:43 PM

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.

by joebates

5/7/2026 at 12:57:50 PM

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

by freedomben

5/7/2026 at 4:12:43 PM

Yes that’s exactly how I started coding!

by tcoff91

5/8/2026 at 5:24:34 AM

I remember putting Street Fighter and Drug Wars on my TI-82.

by deepakhj

5/8/2026 at 12:48:01 AM

I got Super Mario onto my TI-89

by az226

5/7/2026 at 11:58:49 AM

For anyone wondering, Boris Cherny created Claude Code.

by vvoyer

5/7/2026 at 12:53:14 PM

Where React

by cap11235

5/7/2026 at 10:20:44 AM

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.

by submeta

5/7/2026 at 11:15:49 AM

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.

by faxmeyourcode

5/7/2026 at 10:52:27 AM

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!

by le-mark

5/7/2026 at 3:21:50 PM

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

by chainingsolid

5/7/2026 at 10:48:14 AM

The rest of the world only has Casio, I think.

by otabdeveloper4

5/7/2026 at 11:32:21 AM

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.

by sshine

5/7/2026 at 9:10:58 PM

The TI-83 taught an entire generation that programming was possible on hardware you already owned. No IDE, no internet, no Stack Overflow. Just you, 8 lines of visible code, and a 96x64 pixel screen. Everything since then has been more powerful and less magical.

by arian_

5/7/2026 at 4:35:04 PM

Would be crazy if the Ilya S he thanks in the first page was Ilya Sutskever

by harmoni-pet

5/7/2026 at 9:49:32 PM

Was thinking the same thing. Seems unlikely?

by sebmellen

5/7/2026 at 9:59:02 PM

thinking the same x2 hahaha, would be awesome

by vmesel

5/8/2026 at 12:32:17 AM

I'd like to know too

by kyars

5/7/2026 at 10:17:30 AM

That brings back memories...

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

by dubbel

5/7/2026 at 1:39:01 PM

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

Also, it's very very slow.

by Dwedit

5/7/2026 at 11:36:40 PM

That wasn't "leaking stack memory" except in a very literal sense: the BASIC language keeps a stack of the control structures you're inside, so that when you hit an "End" or "Else" statement it knows where to go next. This "stack" of control structures isn't lexically scoped; it's dynamic, based on what control flow commands you've hit. So yes, if you use "Goto" to set up a situation where you're hitting "Then" over and over without ever hitting a corresponding "Else" or "End", the control flow stack will just keep getting deeper and deeper. That's not a "leak" per se: all those "Then" structures are still there, waiting for their "End"s, and will do the natural thing if you give their "End"s to them — even somewhere someone used to lexically scoped languages wouldn't expect. Sometimes you can do cool things with this.

See subsection 2.1 in https://www.ticalc.org/archives/files/fileinfo/145/14542.htm...

(I should add that the first image on that page shows one neat effect of non-lexicality: you can put an "Else" statement as the body of an "If", so that it's skipped when the "If"'s condition is false.)

by quuxplusone

5/7/2026 at 5:01:18 PM

But isn't that just how the world works? As kid I got ERR:MEMORY allot while trying to create games. It was until I started to read a C book which said "We will not use goto in this book. It is a dangerous function that can lead to memory leaks. For example if you jump out of a function, said function will stay in memory because it never finishes." That was the light bulb moment for my TI-Basic problems.

For me the bad part is that the official TI-83 manual has a code example for the GETKEY function that is using GOTO to jump out of a loop.

by noAnswer

5/7/2026 at 5:26:50 PM

No, it's not how the world works. The warning about "goto" in C is about memory leaks due to misusing malloc/free. The issue with TI-Basic is about the interpreter using a stack for if/else/end blocks.

In normal programming languages, If-Then-Else is made up of a conditional branch to get you into either the "If" part or the "else" part, and a jump to skip you past the "else" part to the "end if" part. There is no stack used for that.

by Dwedit

5/7/2026 at 6:40:48 PM

hm ok. Still, my misunderstanding helped me to write TI-Basic programs that no longer crashed. :-)

by noAnswer

5/7/2026 at 3:30:51 PM

Yep. It was an incredibly constrained environment, which honestly made me feel so happy when I got things to work well :)

I wonder if I still have my minesweeper program on my old calculators.

by pavel_lishin

5/7/2026 at 4:32:35 PM

Also there are only 27 variables. Which made it hard for me to write a Snake clone until I figured out how to use Lists.

by canjobear

5/7/2026 at 4:19:58 PM

Lots of stories about being bored in class and making programs, so I thought I'd share mine.

The functions feature allow you to define and graph equations with x and y. Well other variables also factor in including program defined variables such as z. That enables 3d orthographic graphs to be drawn.

Then I took it a step further and translated the results into a matrix and used that data to make real 3d projections of my graphs (or other shapes)

A bit serendipitous as my father just gave me back the calculator I used, I will be passing that down to my kids.

by kyleperik

5/7/2026 at 10:06:24 AM

I hope / don't hope to be famous enough one day that people start looking through my blog and forum posts from when I was a teenager. :|

by coreyh14444

5/7/2026 at 10:27:37 AM

Luckily for me the company that hosted mine went under, nothing is accessible anymore, and there is no snapshot in the Internet Archive.

by kergonath

5/7/2026 at 12:27:21 PM

Do you think Boris can still be reached under pickledcherry668@yahoo.com ?

by loehnsberg

5/7/2026 at 4:30:03 PM

Completely off-topic, but I recall hearing that Boris spent some time in Japan before Anthropic, learning to make miso paste the traditional way while living there. Interesting to see that he's been interested in lacto-fermentation for decades now.

by sushid

5/7/2026 at 10:14:28 PM

Only bc we’re on a nerd site, miso doesn’t involve lacto fermentation in any significant way. And I guess you can pickle cherries in any number of ways that aren’t lacto fermentation.

by blovescoffee

5/7/2026 at 3:02:32 PM

there's only one way to find out

by spate141

5/7/2026 at 1:45:25 PM

"His ugliness was the stuff of legend. In an age of affordable beauty, there was something heraldic about his lack of it."

-- William Gibson, Neuromancer

I just love opening a page, and it is not vomited with claude's aesthetics.

by jackdoe

5/7/2026 at 10:21:29 AM

Ilya S?

by pama

5/7/2026 at 5:56:43 PM

My "bored in class" story: In addition to plenty of stickman fighting animations, I wrote a full "Geometry" helper program which solved arbitrary triangles, did the quadratic equation (including imaginary roots), and maybe one or two other things that I don't remember.

We could have a quadratic equation solver on tests, but not the other functions. I put a splash screen that said my name and "Quadratic Equation Solver" which prompted a, b, and c if you pressed ENTER. If you pressed the right button on that splash screen (sin, naturally) it would unlock the full menu.

by MengerSponge

5/7/2026 at 1:15:40 PM

Is there something similar for the HP 48G calculators that anyone knows of?

by chollida1

5/7/2026 at 1:15:26 PM

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.

by sanex

5/7/2026 at 1:25:43 PM

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.

https://www.youtube.com/watch?v=ke6DnczjaK0

by fishtacos

5/7/2026 at 3:40:44 PM

this was definitely me in high school. i still fondly remember the day when we could use our Ti-83+ for our exam but we had to show the teacher that we cleared memory for notes and formulas.

So i wrote a program that just made it look like I cleared memory and it worked like a charm.

I don't remember if I even stored anything that could be constituted cheating but it was more about the satisfaction of knowing I outsmarted them, heh.

by dack

5/7/2026 at 2:07:02 PM

I like the "challenges" part at the end, especially the varying difficulty levels:

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

by t0mek

5/7/2026 at 1:25:26 PM

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?"

by yinksta

5/7/2026 at 1:10:14 PM

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!

by jvillasante

5/7/2026 at 2:32:56 PM

Pretty much every tool is far more powerful for those who understand the job it does.

by brookst

5/7/2026 at 8:07:42 PM

I did not realize Boris made the tutorial that got me into programming. Wow. What a great find! And is the Ilya S Ilya Sutskever?

by sneilan1

5/7/2026 at 2:28:56 PM

he and I share the same favorite programming book and until now I didn't know anyone else in this boat:

Functional Programming in Scala

by beastman82

5/7/2026 at 11:51:49 AM

I would be more interested, how I can disable the auto-power-off on my TI-86 (ROM v1.3 emulated with virtual Ti)

by kh2engab

5/7/2026 at 8:02:01 PM

This made me wonder about Boris Cherny's professional career pre-Claude Code, so I did a customary "Boris Cherny wiki" Google. I'm shocked to learn he doesn't have a Wikipedia page! Is this my Hacker News bias? He's a ubiquitous online topic and has had an outsized impact on the world over the last year, but maybe I don't understand Wikipedia's criteria for biographical articles. I have a conspiratorial suspicion that Wikipedia has a (well-earned) anti-LLM bias so AI topics are unrepresented there.

by sp1nningaway

5/7/2026 at 8:08:03 PM

I think that's fairly standard for Wikipedia. Most tools have no page at all, and popular tools will typically have a small wiki with the author in black text. Then an author who writes multiple widely used tools may or may not get a page. Look at the wiki of someone prodigious like Bellard and even then it's just a rather sparse straightforward list of things he's done.

by silisili

5/7/2026 at 10:01:22 AM

The original manual for the TI83+ is what actually got me into programming. It was pretty nice.

by msk-lywenn

5/7/2026 at 1:35:47 PM

[dead]

by redsocksfan45

5/7/2026 at 9:36:06 PM

He talks about TI-83 programming in the Pragmatic Engineer Podcast interview.

by ruraljuror

5/7/2026 at 9:51:11 PM

He started undergrad in 2009.. how old was he when writing this? 12-13??

by sebmellen

5/7/2026 at 9:52:40 PM

From an earlier post, I had the realization that many of us started programming at this age on calculators.

by mrwaffle

5/7/2026 at 2:53:41 PM

This is a really interesting direction. Thanks for sharing!

by Miles_Stone

5/7/2026 at 1:46:26 PM

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.

by quxbar

5/7/2026 at 4:42:02 PM

this is what got me into programming, before i even knew i was a programmer

by keeganpoppen

5/7/2026 at 5:01:37 PM

Does it run Doom?

by itrunsdoomguy

5/7/2026 at 2:05:04 PM

[flagged]

by dude250711

5/7/2026 at 2:40:23 PM

"Created the nuke" is the best framing. Detonated a WMD on the field of rigorous practice.

by acedTrex

5/7/2026 at 3:37:00 PM

Chao ab ordo

by arcanemachiner