8,732
edits
Changes
no edit summary
After I wrote the Lines program, management moved me from the hardware to the R&D group and suggested that I collaborate with [[Jim Dramis]] on a new game. I thought this was better than sex (OK, I WAS kinda naive) -- getting paid to write a video game. Just for reference, Jim had written some of the best TI games available at that point -- [[Car Wars]] and [[Munch Man]]. We quickly agreed that we wanted to write a space game and we wanted to have smooth horizontal scrolling to give the illusion of flying over the surface of a planet. As some of you may know, there is NO hardware support for scrolling the screen on a pixel basis in the 99/4A video chip. After lot's of pondering, I hit upon a solution -- copy the inner loop of the scroll code into the fast 16-bit RAM of the 99/4A. Since this code is responsible for 80% of the execution time of the scroll loop, substantial speed gains were made by moving the loop to fast RAM. In today's world of 486s and Pentiums, this RAM would be referred to as cache RAM. I then handed this code off the Jim so he could incorporate it into the game.
The next thing I wanted to do for the game was to come up with some really neat sound effects. Since the sound chip on the /4A was only capable of generating square waves, I wanted to use the speech chip. The speech chip operates by using a model of the human vocal tract, and I reasoned that if people could make really strange noises, then so could the speech module. After studying the speech chip specifications, I made an important discovery: the speed speech chip didn't need new data very often (it sure helps to understand hardware when writing software). This fact could be combined with one of the new feature in the 99/4A software architecture -- the user video interrupt. The net effect of this combination was that the speech chip could be used while the game was going on. Then I went to the software folks with my discovery, they told me that "you couldn't do that." Only after I showed them did they believe.
[[Category:Software programmer]]