Jun 09
15
An Aha! Moment

Posted by Stephen
Tags: , , ,

TI99/4A

I learned to program on a computer like this one. It’s a Texas Instruments TI99/4A, popular in 1981. My high school acquired a lab-full of these, and I signed up for the very first class. I programmed in BASIC, which was about the only programming language available to home computers at the time, and in true nerd fashion fell madly, deeply in love. Thus began my life-long affair with computers.

The utter slowness of the computer became quickly apparent though. Toward the end of my first year I wrote a PacMan game that I was immensely proud of. It had ghosts that were efficiently ruthless at hunting down the poor hapless PacMan. The only way to beat the game was to play a perfect level. It would have been impossibly difficult for the player to complete even the first level, were it not for the fact that the game had a refresh rate slower than a second. That is, the ghosts paused for a second at a time to ponder their next move. The whole thing was ultra slow motion and wasn’t any good as a game. I still felt pleased with myself, although a little puzzled as to how such a slow computer could be of any use at all, other than as a teaching tool. I also couldn’t figure out how Texas Instruments got away with advertising this as an advanced system, when it was clearly pretty useless even for those early days of home computers.

Around that time the school’s administration decided that I was a sufficiently advanced student and allowed me to use the sole computer with an expansion unit. The expansion added a floppy disk drive (Hooray! No more loading from tapes!), more memory, and an Assembler module. I started to tinker with the assembler, looking to improve my PacMan game, and found that while it took the BASIC ghosts thirty seconds or more to traverse the screen from one side to the other, the assembler ghosts could do the same thing in the blink of an eye. I spent many hours figuring out how to slow the game down enough to play it. Assembler also showed me how truly sophisticated the computer was under the hood. Obviously it was capable of adequate performance. Just not in BASIC.

At the end of that year my Dad bought an Apple IIe and I never looked back. I dabbled with the TI99/4A when required for school assignments, but the Apple was a vastly superior computer–much faster and simpler to program. I wrote a lot of software for that machine, including a rudimentary music publishing program that was actually used to publish a book. The following year I moved on to the IBM PC. It had more memory, a faster processor, and several programming languages to choose from. Back then, even more so than now, computer technology advanced at breakneck speeds, each new model rendering last year’s obsolete. Still, I never figured out why the TI was such a miserable failure when it had more advanced hardware than either the Apple or the IBM.

Until now.

An article at Technologizer explained how the TI BASIC was a double-interpreted language. That is, BASIC programs were translated into an intermediate language called GPL, which in turn was translated into the computer’s native machine code. All that overhead of translation slowed things down considerably. Further, the computer only had 256 bytes of system RAM. That’s one quarter of a K. 0.02% of a megabyte. It had 16K (over 16,000 bytes) of video memory, however, and was advertised as a 16K computer. The processor would store user programs in the video memory, and retrieve those programs sequentially, one byte at a time.

That’s why the TI, with an advanced (for that time) 16-bit processor running at 3MHz, was so much slower than the Apple, with its lowly 8-bit processor running at a mere 1MHz. The bottleneck of memory management was one of several design failures that fatally crippled the TI.

I am happily relieved to finally put to bed a mystery that had remained unsolved for 25 years. I know, I know. You probably aren’t geeky enough to truly appreciate the satisfaction of such a discovery, but trust me: today I am a happy man.

I am also smugly content in the knowledge that I write this on a computer with 32 million times as much system memory as that ancient TI, 32 thousand times as much video memory, and runs the processor 1,200 times faster. And in another 25 years I’ll probably look back and chuckle at how much further technology has advanced.

One Comment on “An Aha! Moment”

  1. Peter Says:

    Haha this is an awesome read, thanks for sharing ;)