While not as dramatic an example, I dug up a couple of small programs from my earliest programming days in 1994. The TI-81 was my first programmable device (no PC until 1997!). There was:

**Code:** ```
```

Prgm6:NUMGUESS

# Apparently this was just a two-player only version, though I'm sure I had made ones where the calculator generated the number

:0→I

:ClrHome

:Disp "LETS PLAY NUMBER GUESS!" # No apostrophe char on the 81, and ending quotes are required unlike 83+/84+

:Lbl 1

:0→H # H isn't even used anywhere in the program. Go figure.

:Disp "ENTER A NUMBER FOR ANOTHER PERSON TO GUESS."

:Input N

:ClrHome

:Disp "NOW GIVE THIS TO THE GUESSER."

:Pause

:Disp "HOW MANY CHANCES DO YOU WANT?"

:Input C

:Lbl 2

:Disp "WHAT DO YOU THINK THE ANSWER IS?"

:I+1→I

:Input T

:If T<N

:Goto 4 # 81 also doesn't have If…Then, just If

:If T>N

:Goto 5

:If T=N

:Goto 6

:Lbl 5

:If I≤C

:Goto 9 # Mmm, spaghetti code

:Disp "TOO HIGH."

:Goto 2

:Lbl 4

:If I≤C

:Goto 9 # Redundant spaghetti code, even

:Disp "TOO LOW."

:Goto 2

:Lbl 6

:Disp "THIS ANSWER IS CORRECT. GOOD JOB!"

:Pause

:Lbl 0

:0→I

:Disp "PLAY AGAIN?"

:Disp "1-YES"

:Disp "2-NO"

:Input θ

:If θ=1

:Goto 1

:End

:Lbl 9

:Disp "THAT WAS JUST YOUR LAST CHANCE"

:Disp "THE NUMBER WAS"

:Disp N

:Pause

:Goto 0

which could be optimized to:

**Code:** ```
```

:Disp "NUMBER GUESS! ENTER A NUMBER FOR ANOTHER"

:Disp "PERSON TO GUESS." # One byte shorter than five more spaces

:Input N # The 81 was primitive. Input has no custom input messages, must use Disp as above.

:ClrHome

:Disp "NOW GIVE THIS TOTHE GUESSER."

:Pause

:Disp "HOW MANY"

:Disp "CHANCES?" # Can't provide multiple arguments to 81's Disp, so we have to do it this way

:Input C

:Lbl G

:Disp "YOUR GUESS?"

:Input T

:If T<N

:Disp "TOO LOW" # At least this isn't TI-99/4A BASIC, where you *have* to use Goto with If!

:If T>N

:Disp "TOO HIGH"

:If T=N

:Goto W

:DS<(C,1 # No looping commands! It's either Goto or IS>/DS<

:Goto G

:Goto L

:Lbl W

:Disp "RIGHT. GOOD JOB!"

:End

:Lbl L

:Disp "NO MORE CHANCES!THE NUMBER WAS"

:Disp N

Or a somewhat Rube Goldberg-esque “8-Ball” type program, which looked like this:

**Code:** ```
```

:Disp "ASK A YES/NO QUESTION AND PRESS ENTER."

:Pause

:IPart (Rand*100)→R

:If R≥80

:Goto 1

:If R≥60

:Goto 2

:If R≥40

:Goto 3

:If R≥20

:Goto 4

:If R<20 # This line is superfluous :-)

:Goto 5

:Lbl 1

:Disp "ASK AGAIN LATER"

:End # End on the 81 was the equivalent to Return on the later models. That was its only purpose, since there were no looping or block commands

:Lbl 2

:Disp "YES, OF COURSE."

:End

:Lbl 3

:Disp "MY REPLY IS NO."

:End

:Lbl 4

:Disp "IT IS CERTAIN."

:End

:Lbl 5

:Disp "DONT COUNT ON IT"

No idea why I did all that when I could have just:

**Code:** ```
```

:IPart (5Rand→R

:If R=0

:Disp "ASK AGAIN LATER"

:If R=1

:Disp "YES, OF COURSE"

:If R=2

:Disp "MY REPLY IS NO"

:If R=3

:Disp "IT IS CERTAIN"

:If R=4

:Disp "DONT COUNT ON IT"