Does anyone know of a working, playable version of Scott Adams’s text adventure game Pirate Adventure as published in the December 1980 issue of BYTE magazine?
I couldn’t find one, which was a shame because I was trying to learn about Scott Adams’s adventure game interpreter and its associated database format, and I thought that going back to the source might be interesting.
The BASIC program-listing in BYTE was intended to be manually typed into a TRS-80 computer, but I’m not very adept at wrangling TRS-80s, so I decided instead to convert the listing to BBC BASIC for the BBC Micro, which is very much in my wheelhouse. A quick look through the program suggested that the conversion would be straightforward: TRS-80 BASIC seemed, at a glance, very similar to its British cousin.
I was nearly right. One significant difference between the two BASICs lies in their tolerance of FOR-loops that are unterminated. On the TRS-80 you can leave a FOR-loop dangling (i.e. you can omit the matching NEXT statement) — for example by simply RETURNing early from the subroutine the loop is in — and there won’t be any problems when you try to RUN the program, no matter how many times the loop is reinitialised. Not so with BBC BASIC, which is a stickler for terminating every FOR with an explicit NEXT, and will eventually complain about “Too many FORs” if a broken loop is kicked off once too often. The biggest headache in converting Pirate Adventure to BBC BASIC was caused by tracing and tracking down the exact locations of all those missing NEXTs. It was surprisingly fiddly. I think I’ve got them all now, but there’s always that nagging doubt…
Anyway, with the possible exception of the FOR/NEXT amendments, the rest of the program didn’t really need any major alterations to run on a BBC Micro, and the converted program is still recognisable as substantially the same listing that was published in BYTE all those years ago.
The original TRS-80 code and my BBC BASIC port both use an early version of Scott Adams’s adventure interpreter program — version 4.6 according to the published listing. My conversion is the only working version of a v4.6 Scott Adams game that I know of. There are seemingly plenty of later versions of Pirate Adventure out there, online, and you can recognise them because they include the SACK and CRACKERS objects which are missing from BYTE’s version of the game, and they all seem to use a later version of the interpreter. So I think my conversion might be the only working, playable version of the BYTE listing of Pirate Adventure. But please let me know if you’re aware of any others.
The BBC BASIC port of the game seems to be stable now, and it can be played through, from start to finish, without error. (I’ve kept all the original spelling mistakes, for authenticity.)
A link to play the game online, plus a full walkthrough/solution, is available on Github:
(Thanks to pdxiv for giving me a head-start by typing in and correcting the original TRS-80 BASIC interpreter program, version 4.6.)