I am
frightened. Absolutely
frightened at the mention of that...that...
curse of a '
language' known as TI-BASIC. I was first introduced to programming on a
TI-81. Do you realize how many commands this impotent thing had!?! Here are
all the control expressions:
Lbl
Goto
If
Pause
Stop
End
That's right, there wasn't even a built in
If-
Then-
Else control. When
if evaluated true, it executed the next line; otherwise it skipped the next line. This meant that if you wanted to execute more than one instruction when something was true, you had to use a goto...or a subroutine, except you were limited to a total of 36
subroutines/
programs. That is, if you could fit it in the 2.4
KB of available memory. Worse still, you were limited to a total of 27
variables, and
variables were global across all
subroutines!
Obviously, this would be perceived as some sort of challenge to an experienced programmer. A place where your goto instincts can finally be excercised freely. But remember, I was learning to program on this thing. And we're not just talking about pathetic quadratic equation solvers here, no! I wrote a fully functional blackjack and was insane enough to attempt poker!
Fortunately, a friend of my mother's later gave me a TI-82. Now this thing was the real deal. It had just about every control structure that the modern TI-83 features. Everything from For and While, If, Then and Else and the ability to communicate between two connected calculators. I wrote the bane of all geometry teachers in the now infamous Crashcourse program (which was coded during Freshman speech). I even wrote an unbeatable Tic-Tac-Toe program during a series of particularly boring Chemistry lectures (Sophomore Year) but this was less popular...seeing as you couldn't win. I also discovered the incredible archive available at ticalc.org. Apparently, some ingenious hacker figured out a way to use direct, assembly level programming on the TI-82's 6 MHz ZiLOG Z80. This led me to distribute much more sinister programs - ie Final Fantasy IV - throughout the unsuspecting Jenifer Junior High.
The only problem I found with the programs available at ticalc.org was that their math programs almost always lacked documenation, were non-intuitive and often were inaccurate. So, I was forced to write my own. My programs in 8th Grade Algebra literally could have done the entire test, without error. My 9th Grade Geometry system could do everything but the proofs...and had all the important theorems typed in, just in case. This tradition continued up until the second semester of 10th Grade, when I inherited my sister's TI-92. Needless to say, I no longer needed to write any programs when I had a fully featured computer algebra system at my finger tips. This was quite fortunate, by that point I had maxed out the TI-82's 28K of RAM with math programs alone.
Interestingly enough, most of my teachers didn't care if I used a program, so long as I had written it. They did object, however, to me distributing them throughout the programming illiterate population. This problem was solved in a manner very similar to ticalc.org's policy. I was a beginning programmer, what the hell was a UI? I knew that A stood for degrees in the opposite angle, that's all that was important!
So, yes, I look back on TI-BASIC with initial agony...but with a degree of fondness as well. Let's just say it was a bit of a shock when I first tried to move from TI-BASIC to C++...