A rectangular piece of the past
Aug. 28th, 2010 09:20 am
This week I received a rectangular anachronism through the post. I had suddenly remembered about the very first programming book that I had ever seen, the catchily-titled The Times Book of Computer Puzzles and Games, and had gone on a search online for it a couple of weeks ago. I was surprised to find the 26 year old book still available, and now that it's arrived, equally surprised that it's in such good-as-new condition. It's a collection of program listings for little Commodore 64 games that were sent in to the Times, aimed at computer hobbyists who might want to try them and pull them around - an open source X-Box Live Arcade of the 80s. Of course, it arrived with the notable lack of the accompanying tape (though now that I come to think of it, I'm not sure what I expected to be able to do with that these days) so I was going to have to put some effort in myself to bring these things back to the world.After looking at the first few fragments of Commodore BASIC, my initial overwhelming feelings of nostalgia were quickly replaced with wondering how on earth people used to seriously program with this. The C++ family, so incomprehensible to people who look at it for the first time, seems beginner-oriented compared to having to POKE seemingly random collections of numbers into memory, keeping track of variables with names like ZC$ with no concept of scope. And when a program begins (as one does) with "GOTO 10051" followed by "GOTO 204", you know it's not going to be easy to follow the program flow.
To avoid all this, I had hoped to take advantage of some modern inventions that would save me from the traditional method of clunking through thousands of lines on the Commodore's tank-like keyboard, but the first attempts at OCR on the book's tiny 80s typeface came up with this masterpiece:
1 OTH OHUNTING 10iO RESTORE
? RIH OOPYRIGHT J. R. JOOKSOO
5 OOTO IGOS1: REM GETOP 1OEO E$=“
K9? GOTO QO4 ” l
BOO X3=G(ZP+481 1025 LET H$=“ ABCOEFGHIJK ”: LET IS
?O1 X4¤INT£X3{25b1: X3=X3·256*X4: PO =" OBOOEFGHTJK “
EO4 REO EMO OF NOTE SOBROOTINE 3
1GGG RER SHOOTING
1005 REM ? J. R. JOEKSON
100? OIR X${501: DIM PANTS OF 112O DATO 255,56,36.255,255,255,0,0
So I took that as a message that I was going to be typing these in by hand. Fortunately, some wonderful person has developed an actual Windows IDE for the Commodore 64, so that you don't have to use the actual machine's more... eccentric layout, and (for example) have to remember that "Inverted heart, inverted pi, four inverted Qs" means "Clear the screen and get ready to type somewhere". After about forty lines even in that, I was beginning to appreciate how little I actually missed the program distribution method of typing in twelve columns of code character by character, knowing that you don't have a debugging method if a single character is wrong, and armed this time with the author's name, successfully found tape images of some of the individual programs, including the one I was attempting (but I'll have to provide most of them myself).
SHUNTING, then (and neither OHUNTING nor SHOOTING - or to give it its full imaginative title, "Train Shunting Puzzle"), is a Laytonesque little conundrum set by the Reverend J. R. Jackson. In it, you start with a train in the siding, some carriages in the depot and some trucks in the station, and because British Rail only has one train capable of movement at any one time, it's up to you to trundle around connecting and disconnecting the carriages with the aim of swapping the trucks and carriages round and leaving the train back where it started. Just to top it all off, the right side of the screen is taken up by a tunnel which only the train can enter, for reasons that are left unexplained.And I'm proud to say that - after setting the emulator speed up to five times normal to prevent being driven mad by the little animation every time a move was made - I successfully did it, in only about double the moves he expected me to. I'm not entirely sure how I did it, either, I just seemed to rely on luck - but solving it at all is good enough for me by this point, seeing as if we measure from the first time I ever saw it, it took me roughly twenty-one years.
no subject
Date: 2010-08-28 01:44 pm (UTC)And here I was thinking that "shunting" meant something like "Super Hunting" ;) I miss when filenames were like a little rebus...
no subject
Date: 2010-08-28 01:55 pm (UTC)Now you've got me thinking about the file names of things that I had - SAM&MAX was unusual for having an ampersand in it. Absolutely all of Sierra's games were run with SIERRA... I think the most abbreviated was Network Q RAC Rally Championship, which was lumbered with the glorious unmemorable NQRACRC.EXE.
no subject
Date: 2010-08-28 02:29 pm (UTC)no subject
Date: 2010-08-28 02:55 pm (UTC)no subject
Date: 2010-08-28 02:57 pm (UTC)no subject
Date: 2010-08-28 03:40 pm (UTC)For the other one... I use a lot of command prompt based tools to compile, upload files or run database scripts. Besides, having run a web server, two databases and a couple of IDEs for the last four years, this machine's now too crippled to drag up an extra folder window within about a minute.
no subject
Date: 2010-08-29 12:50 am (UTC)no subject
Date: 2010-08-29 12:34 am (UTC)(Having no clue what they're actually supposed to be and nothing to go on except the small portion of the name they actually decided to share with me, I usually refer to them as "Bee Stings." That can't be what they really are, though.)
no subject
Date: 2010-08-29 12:41 am (UTC)no subject
Date: 2010-08-29 12:51 am (UTC)no subject
Date: 2010-08-29 02:33 am (UTC)no subject
Date: 2010-08-29 01:02 am (UTC)We need to find someone to tell us what it says in the japanese version of the ROM!
no subject
Date: 2010-08-29 12:54 am (UTC)http://www.prguitarman.com/index.php?id=288
Anyway, congratulations, you have successfully swapped the cars and can now travel to Folsense.
no subject
Date: 2010-08-29 02:31 am (UTC)no subject
Date: 2010-08-29 02:54 am (UTC)no subject
Date: 2010-08-29 04:13 am (UTC)no subject
Date: 2010-08-30 10:22 am (UTC)no subject
Date: 2010-08-29 02:40 am (UTC)no subject
Date: 2010-09-01 03:29 pm (UTC)Were you ever told to never use GOTO? You mentioned that the first two lines were GOTO commands, and that sent a chill down my spine. GOSUB, on the other hand...
no subject
Date: 2010-09-01 04:01 pm (UTC)I was definitely taught, in school when we learned COMAL, that GOTO was a deadly sin! I can't really see why I would ever use it, now, anyway. GOSUB isn't really all that much better, here - I understand what it's meant to do, but you've got to rely on placing things in variables before calling them and then reading from somewhere else that it writes to, like... software registers. Looking back, I'm amazed at how the more "complex" (from my point of view at the time) C family makes so much more sense.