We've got a cool show this week, leading off with two real neat emails. Here's the one about Snake in its entirety, in case you want to read along, as it's a lot of dense technical stuff which I thought was super interesting:
I am hoping that I might trouble you to try to recall the source of your information about the Berkeley connection. I'm the source of that game, which was called snakes or snakey and yours is the only such reference that I've ever seen. I had suspected that there might be a trail, but couldn't be sure. I'd be grateful for any details.
Following are some details, in case you're interested.
I entered Berkeley as a physics grad student in the fall of 1961, and Birge Hall (where the IBM 1620 was in the basement) was not yet completed at that time. I expect that I wrote the game in maybe 1964-66. (Birge Hall was completed in 1964.) I abandoned the game when my thesis work got serious and it was then picked up by a new generation of grad students. I don't have any names, though.
I first wrote "snakes" in a higher level language on the 1620 (Fortran, I suppose) and then decided to use the game as a vehicle to learn assembly language--and that version became "snakey". That version ran fast enough to be fun to play. The game was taken over by other grad students after I abandoned it to spend full time on my thesis research. I remember being contacted by one of them a few years later who reported that he had had a devil of a time analyzing the code because (not knowing any better--rules had yet to be written) I had written the sense-switch interrogation command pointing to just one sense switch (no conditional) and a later part of the program went back to modify a digit in that interrogation command to change its effect. Of course, nowadays that couldn't happen with separated memory areas for code and data.
It was a two-person game: four 1620 sense-switches were assigned, two to each player to command turns to left or right. Both switches down was straight ahead. The two snakes traversed the screen at a constant rate; the screen may have wrapped around. As I recall, if your snake bit the body of your opponent, this made him one dot shorter and added one dot to a vertical bar of dots midway on your side of the screen, which he would touch at his peril. (Or maybe it was a wall to him, but you could go through.) So, as he got shorter (and harder to find a bite) you could hide behind your wall or chase him into it.
Computational oddities -- You could open the door of the 1620 cabinet to view the cube of cores that was the working memory. I brought a transistor AM radio to listen to the progress of the program when doing data analysis to follow the progress of program execution by the pattern of tones that could be heard. The graphics option (CRT) was kind of an add-on, and the dots were generated by executing a read operation on the hard drive. The instruction set of the 1620 included indefinite indirection--flipping a control bit (digit?) on a memory location would cause any command accessing that location to read the location as an address, and go "there" to do its business (or not, if that location had its control bit set, and on and on.).
Anyway, games played this week include:
-Tape it Up!
-Full of Stars
-Bazoo Mobile Esport
-Star Cat Adventure