6 ms·
While I don't have a story quite like OP's, I wanted to share my experiences with old-school programming in more recent history. In middle and high school (2008
by adrusi 12y ago
While I don't have a story quite like OP's, I wanted to share my experiences with old-school programming in more recent history. In middle and high school (2008-2014), I had access to modern hardware, the internet and all those lovely things at home. At school, though, I didn't have access to a computer most of the time, and yet I wanted to program. What I did have though, was a TI-84+SE graphing calculator, with a z80 cpu clocked at 15MHz and 24/128K accessible/total RAM, and 1.5/2.0MB of ROM. Most teachers didn't really care if I just stuck my nose into that thing for the entire class, so often I did just that.
For those not familiar with the calculator, it ships with an OS that provides a shell where the user can input mathematical expressions, as well as a graphing interface. It also provides a program editor where the user can write what are essentially shell scripts for the main interface in TI-BASIC, or run machine code written in hex if the program starts with the AsmPrgm token. It also lets you transfer files from a PC using a usb port on the calculator. You could download and install "Apps" for the calculator. When I was 12-14 I mostly wrote small programs, like Pong and a quadratic factorization utility, in TI-BASIC, and played games that I downloaded in class.
After a while I tired of TI-BASIC because it was slow, and that limited the possibilities. I downloaded Axe, an App that modifies the code in RAM of Kernel's TI-BASIC editor to allow for programs written in a different language, which was basically assembly + a lot of macros and a standard library useful for writing games, or like C without a type system. This code was compiled to machine code on the calculator, and therefore the code ran at a reasonable speed (keep in mind it's still just a 15MHz cpu from the 70s).
With Axe I made some more interesting programs. Unlike with TI-BASIC, where learning the language was easy since the calculators main interface was basically a REPL for the programming language, Axe was hard to learn. I needed to look at external documentation to know what I was dong in Axe, but even though I had a smartphone at this point, I couldn't use it in class, so I printed out the manual to reference it in class. I wrote a bunch of programs in Axe, like a cellular automata simulator, a game of life program, a 4-level grayscale sprite editor (which worked by flickering the pixels of the 1-bit display which had a slow enough response time to create a static gray color if alternated quickly enough). I also learned z80 assembly and used an on-calc assembler and editor called mimas, but editing assembly on-calc was too bothersome with a 64x96 display, so I mostly stuck with Axe.
Eventually I stopped being the nerdy kid who played with his calculator all day, but I had fallen in love with the platform, so even though I wasn't writing code in class, I wrote code for the calculator at home, sometimes on my PC and sometimes on the calculator just because I liked that experience more.
I'll be sad to see these ancient calculators finally phased out of the math curriculum in the US, so that kids no longer get access to that last stronghold of 80s computing. Raspberry Pi is cool, but it's still so much more modern than the calculators, which hurts its coolness factor for me, but more importantly, kids won't have access to it unless their parents want them to get into computing. Soon I see kids only having hardware that seems impenetrably locked down, which is a real shame.
- sd8f9iu 12y agoI also first learned to program in TI-BASIC, on a TI-83+ in 6th grade, and I did it prolifically for the next four years. Learning programming at that age was a huge advantage when I "officially" learned later: even though TI-BASIC only has 26 variables and no subroutines, flow control is basically the same, and it gave me an intuitive understanding to how programming languages work. Also, TI-BASIC made it so easy to display graphics, just by using the 'output' function or plotting to the graph. I think a huge turn off to beginner programmers is the amount of material you have to learn before you can do simple stuff like that (I remember looking for a "draw pixel" function in Java, only to learn to my dismay that I had to choose a GUI toolkit and create a window first). The ease of using the TI API made it addictive, and it lured me into programming for hours at a time in school.
- canjobear 12y agoYou can get infinite variables by storing things in the "list" variables. This was the breakthrough that allowed me to make various Snake-like games in 8th grade :)
- sd8f9iu 12y agoHaha yeah I forgot about that. Also, if you write the programs on your computer, you can use lowercase a-z and get 26 more. And there's theta and a couple other weird ones too.
- pjbrunet 12y agoI was too young to remember much TI-BASIC but as for "draw pixel" I really enjoyed VGA's "Mode 13" which was very fast, great for making games, even without tricks like page flipping.
- spacefight 12y agoAh the memories of the TI range of calculators. We had the TI-85 in our year. I wrote a chat program which used the link cable. With an "enhanced and extended" link cable, it was possible to chat with a classmate sitting several meters away. Teachers knew nothing, as it was a calculator and just a calculator for them. 1998 - chat on a handheld device without data or SMS costs :)