davidn: (prince)
[personal profile] davidn
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.

Date: 2010-08-28 01:44 pm (UTC)
From: [identity profile] ravenworks.livejournal.com
Wow! That OCR system is completely dim pants, mate.

And here I was thinking that "shunting" meant something like "Super Hunting" ;) I miss when filenames were like a little rebus...

Date: 2010-08-28 02:29 pm (UTC)
From: [identity profile] ravenworks.livejournal.com
But the nonsense filenames have nonetheless stuck with you all these years!

Date: 2010-08-28 02:57 pm (UTC)
From: [identity profile] ravenworks.livejournal.com
... why, in this day and age, do you still type it out by hand?

Date: 2010-08-29 12:50 am (UTC)
kjorteo: A 16-bit pixel-style icon of (clockwise from the bottom/6:00 position) Celine, Fang, Sara, Ardei, and Kurt.  The assets are from their Twitch show, Warm Fuzzy Game Room. (Teo: Ladies..please!  One at a time.)
From: [personal profile] kjorteo
SP :)

Date: 2010-08-29 12:34 am (UTC)
kjorteo: A 16-bit pixel-style icon of (clockwise from the bottom/6:00 position) Celine, Fang, Sara, Ardei, and Kurt.  The assets are from their Twitch show, Warm Fuzzy Game Room. (Teo: ^o.O^)
From: [personal profile] kjorteo
To this day I have no idea what the "B.Stn" items are in the original Breath of Fire. I know what they do (consumable usable-in-battle items, pop one to do some pretty respectable damage to all enemies,) but what on earth is a B.Stn? Is that something like an X-LKSK?

(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.)

Date: 2010-08-29 12:41 am (UTC)
From: [identity profile] quadralien.livejournal.com
From its effect, I'd hazard... Bomb Stone?

Date: 2010-08-29 12:51 am (UTC)
kjorteo: Confused Bulbasaur portrait from Pokémon Mystery Dungeon. (Bulbasaur: Confused)
From: [personal profile] kjorteo
That's... about as plausible a theory as any, really!

Date: 2010-08-29 01:02 am (UTC)
From: [identity profile] ravenworks.livejournal.com
Oh my god, I love you for the Adventurers! reference. XD

We need to find someone to tell us what it says in the japanese version of the ROM!

Date: 2010-08-29 12:54 am (UTC)
kjorteo: Screenshot from Dragon Warrior, of the ruined town of Hauksness. (Hauksness)
From: [personal profile] kjorteo
"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."

http://www.prguitarman.com/index.php?id=288

Anyway, congratulations, you have successfully swapped the cars and can now travel to Folsense.

Date: 2010-08-29 02:54 am (UTC)
kjorteo: Laughing Bulbasaur portrait from Pokémon Mystery Dungeon. (Bulbasaur: LOL)
From: [personal profile] kjorteo
Did you see the secret in that comic? (If not, enable Javascript and then click on the first | in the comic navigation--the one to the left of First.)

Date: 2010-08-30 10:22 am (UTC)
From: [identity profile] e-to-the-ipi.livejournal.com
I never really had a problem -- but I still turn off my iPod's backlight at all time to save battery power. Which does confuse people.

Date: 2010-09-01 03:29 pm (UTC)
From: [identity profile] tamakun.livejournal.com
Oh wow, I remember typing games like this out by hand. The real problem behind them, as you've mentioned, is that a lot of the time that there are POKEs and PEEKs that I could never understand (you can use POKE for audio, or for sprites? Or data?), but the rest of the BASIC script I could understand perfectly!

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...

Expand Cut Tags

No cut tags

May 2020

S M T W T F S
     12
3456789
1011121314 15 16
171819 20 212223
24252627 28 2930
31      

Most Popular Tags

Style Credit

Page generated Jan. 31st, 2026 09:20 pm
Powered by Dreamwidth Studios