Tuesday, March 4, 2014

An Idiot Savant

48


Who was the Idiot Savant in our school? I finally figured it out...
At the start of Sophomore year, the school's computer remained in the teachers' lounge, but now with two new, important features: It had a cassette tape recorder/player, and it had been upgraded to a Level II BASIC machine with sixteen kilobytes of memory. Oh, baby! But as I soon found out, Level II BASIC was a significantly different language than the original Level I and a number of the earlier coding tricks no longer worked. I asked the math department head, Zack Hatch, if they had a manual for Level II, the answer was 'yes' and he showed me where it was kept in the shelves above his desk, but unlike the Level I manual which had a stick figure computer walking you through examples, the new manual just had command and function names with a brief description that was lacking any context or examples. At first, not knowing what to do, I was stumped. Then it finally occurred to me to use the computer itself and experiment.
Jonathan and Luke no longer shared a study period with me but this worked out well as I could spend a whole period fiddling with just one function until I learned it, without having to worry about wasting my friends' time. Once I got my money machine card, and could access my savings again, I pulled out a little money and bought a copy of the Level II BASIC manual for myself so I could review it outside of that one study period per school day. Still, that wasn't enough and on the nights when the late bus was running, I would stay after school to continue using the computer to finally crack the nut on the new language variation and begin converting my old programs to run in the new code.
By the end of October I had done it and was creating new games again as well as converting the old Level I games we had gotten from magazines. Once done, I would save an extra copy to tape to let Jonathan and Luke play them when they could. By November I'd gotten a reputation as the one to go to for help with the computer. Once a student found me between classes and asked me if I could give him a game to run on the computer, no not a tape, but write one down before classes resumed in three minutes. I compromised and said I could tell him the code if he wrote it down. He agreed and I rattled off the shortest, yet fun, game I had come up with from memory. After the next class was done I caught him in the halls and asked if it worked. He said it did and he enjoyed it. Another student asked me if I could teach him how to do graphics on the machine and I spent a period showing him how, only to find him using that new skill to create Swastikas... Was it a good thing that I had taught him how? I still debate that.
Of the various games I'd created, there was the original 'Master Mind' game clone. The simple but fun 'A,B,C' game had three letters dropping down from the top of the screen, your gun was centered on the left and you fired horizontally to hit them as they fell; 'A' was slow and easy, 'B' was fast and harder, and 'C' was fastest with a random variation. The game seemed deceptively simple with shooting at the 'A', but to get a good score you had to hit the 'B' and 'C'. The highest possible score was achieved by dodging the falling 'A' and 'B' all together and going for the 'C', yet given the time it took for your shot to make it across the screen, you had to anticipate its random factor in order to hit it.
'Fleet Of Foot', named by my eldest brother, had you as a dot running down an ever narrowing hallway. Being shot at from the narrow end, you had to dodge the timed, though randomly aimed shots, until you reached the tip of the hallway and captured the gun. I could never get my original Atari tank battle clone game to work fast enough to be playable, though I did get it to work finally, logic-wise. By the turn of the year I cranked out 'Depth Charge', another two player game where one player moved a submarine around while another had a fixed paced, right to left, P.T. Boat above that could drop one depth charge per repetitive pass. The trick with that game was to use the charges to scare the submarine into one side of the screen then aim for the tip of the submarine furthest from that edge forcing the player to slowly dive as well as move right or left away from the edge, often unsuccessfully.
Toward the end of the calendar year, I dubbed myself 'A Computer Programming Genius' in the tenor of 'An Idiot Savant', while I knew some people had a low opinion of me when it came to other subjects, in the case of computers I had no doubt that I was pretty sharp. My new found self esteem in this area was challenged when I went to Colorado for Christmas and Jeff had shown me games far surpassing anything I could come up with to date. When I returned home, I decided I needed to up my game.
But the school's computer also had some fun during the Christmas break. Given how expensive it had become with the recent upgrades, the administration felt nervous about it being in the open concept space; even though it was in the teacher's lounge, there were many ways in and out of it without going through a door or passing a teacher. Thus a small room had been built by the second entry hallway next to the gymnasium. This room served two purposes, one wall was a place for a teacher's work desk, as there was no longer enough room in the teacher's work area for a new teacher joining the school, and the other blank wall was a table for the computer. Being in this room meant it was locked, and rather than having a note to use the computer, students now had to get the key and return it once the period was done. This new room was a double edged sword, it gave us more privacy while we had fun playing games, but we could no longer entice passing students into trying out the computer for themselves. The new place for the computer came with a new guideline, games were discouraged. But, hey, they put the computer in a room with a locking door, what were they expecting?
Still, prompted by this new guideline I did broaden my interests by creating a program to conjugate Spanish verbs. Basically you type in the infinitive version of the verb, it would check it against a list of known irregular verbs and, if matching, pop out the answers for that irregular verb. Otherwise it would pass the word to the standardized conversion routine. This impressed the teachers as, being a text based program, it could easily be adjusted for French and Latin. I suppose I could have had it do English as well, but we already knew all those words! Then there was the run of making data storing and listing programs. One version was to place all the information into the program itself. While this was a good way of quickly testing what your program did with that data, it wasn't very practical when new data had to be entered or old data removed as it meant changing the program itself. The solution was the other approach to the program where you saved and loaded the data to tape... But god, it was slow loading and saving data to a cassette tape. Let's see if I can do the math right, sixteen kilobytes of RAM, with, say five kilobytes for the program itself you could have ten thousand kilobytes of data which would take about four minutes to load and save through the five hundred baud cassette interface! And you thought your device was slow.
Out of the blue, in early Nineteen Eighty, Zack Hatch came to me and asked if I'd like to join him that weekend on a trip to a computer fair. I did and he picked me up at my home and off we went. I assumed he'd bring his son Pete as well but, apparently while Pete liked to play the resulting games, he wasn't interested in the computers themselves and how to code them.
The fair was at another school building elsewhere in the state and I was there with about fifty other kids. Being Trash-80 focused, I toured the rooms but, as I'd been spoiled seeing many of the cutting edge programs at my new friend's, Jeff's, house in Colorado, I instead settled down at one of the unused machines and popped in my latest work in progress, a Trash-80 version of a popular coin operated video game at the time. Soon I had about ten kids surrounding me as I continued to refine the program. I'd run it for a bit, find a hiccup in it, show the kids what had caused the hiccup and brainstorm in front of them on how to resolve it, type in the updated code and rerun it and we learned together if that coding fix worked or not.
I did this for a couple hours, then once the game was working well enough, I excused myself from the group, allowing those kids to play the resulting game while I took another look around the rooms for anything new. When I returned, more kids had arrived at the computer to play and Zack and another adult had been drawn there as well. One of the kids pointed to me. Zack wanted to know where I had gotten the new game from, I opened the ruled lined notebook I had brought with me and showed him my hand scrawling of code. He and the other guy seemed very impressed. As the computer I had typed it into didn't have a cassette recorder, once the end of the fair approached three kids at the computer furiously started to list the code I had put in and copy it down into their own notebooks. I was positively beaming with pride on the way home.
Zack took me to another computer fair that Spring, though this one was in another state and had fewer attendees. But this turned out good for me as it had a variety of computers to play with rather than being Trash-80 focused. These included the Apple II and the Commodore PET. They had different games than the ones I'd been use to seeing on the Trash-80 and after playing with them for a bit, I broke open the source code and scrolled through it for their new patterns of code. It turned out, like with the upgrade from Level I to Level II on the computer I knew, the BASIC coding language on these computers also had their own variations of the syntax. After about two hours of looking over all this code, Zack decided he wanted to leave early as there wasn't as much to see or do. While the first fair had been a huge self esteem booster, the second one had actually been better for me as I realized there was a bigger world out there than just the Trash-80.
At the end of the school year I was revving to return to Colorado for the summer break and discover what new programs Jeff would have and also show him the new games I had completed in the past six months. I was also gearing up to show off my work to Ralph at the local Radio Shack, there, and return to visiting the store a few times a week to try out my code.
But there was a wrinkle to that last bit...




impatient? Paper, eBook
help me break even: Shop 

No comments:

Post a Comment