Working with only 3500 bytes is tough. Only using the first two letters of a word was by necessity. We had to save every byte that we could. The parser just looked at the first word and last word that the player entered. Hence ‘GET THE RIFLE’ would be parsed to ‘GE RI’. We simply did not have the space.
Each room had a string variable that contained a list of rooms that the player could go to. As an example, if you were in the kitchen and you could go OUTSIDE, DEN, STAIRS, BASEMENT, the string would be ‘OUDESTBA’. This method also allowed dynamic changing of what rooms you could go to depending on actions that you took. If you could no longer go to the DEN, the string would be changed to ‘OUSTBA’. If a new room that you could go to was added such as the GARAGE, the string would be changed to ‘OUDESTBAGA’.
When we programmed, we had to squeeze every byte out of each line of code. There were almost no comments in the code. That was a luxury that we could not afford. Microsoft Basic only used the first two letters of a variable, so our variable names were not terribly descriptive.
While we would have liked to use variable names like ‘MeteorDistance’, we had to settle on ‘MD’.
In the department of high-wire acts in making complicated games for simple machines, I bring you a VIC-20 games with graphics, sound, and animation. It the last 1982 game by Bruce Robinson, who brought us such minimalist fare as Jack and the Beantstalk.
See how the tape cover still indicates unmodified VIC-20.
I was initially wondering how the game might pull such a thing off, even given Bruce Robinson’s talent for putting content in a tiny space. I was fully prepared to talk about the book 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 and how a complex graphical effect could be made using a small algorithm, but that doesn’t seem to be the case here. The code uses line-by-line printing of text-character graphics with only a moderate use of repeats.
![]()
Where the tricks really happen is to have lightning effects, which is just past the opening room. Each screen has two versions, a “dark” version and a “lit” version when a lightning strike happens. I’ll show this off more clearly with some screenshots in a moment; for now, I should note we’re given a starting inventory
DYNAMITE MATCHES RADIO SANDWICH IN FOIL
and to make any progress, the first step is to OPEN GATE. There is no text description of the fact it’s a gate; you’re just supposed to assume from the picture. This usually isn’t a problem, but unfortunately, just like the original Mystery House, there’s a moment later which requires parsing some ambiguity in the image.
Opening the gate reveals a sign, which you can see alone with GO NORTH. This is when the lightning and rain start.
![]()
I could not get a screenshot of the lightning the conventional way — it only shows in full for roughly a frame before disappearing — so I had to run a video and do a capture.

Going north leads to another sign, with the same effect.
Remember, while this is going on there’s the occasional flashing background and sound effects.
Then comes a room that seems to be completely dark, with even more infrequent lightning. You get an indicator of what’s wrong if you keep trying to go north…
![]()
…but it almost feels like understanding the animation itself is a very light puzzle. It took me a couple flashes before I realized that I was looking at a dog (rather than, say, a mailbox).

The sandwich is the right tool here vs. the dog, although it took some effort to figure out how to remove the foil. REMOVE FOIL, OPEN FOIL, OPEN SANDWICH, and various other combinations don’t work; I went to refer to the manual (which is really just the backside of the tape packaging) and it gave this verb list:
buy, call, charm, chisel, chop, climb, close, connect, cross, cut, dig, drop, dump, feed, get, go, inventory, jump, kill, light, look, open, order, press, pull, push, put, return, siphon, start, throw, tie, turn, unwrap, yell
This is a verb list for all the Victory Software games from this time period; “siphon” shows up in the game Bomb Threat. Still, I quickly zeroed in on UNWRAP which is yet another new verb for the collection. UNWRAP FOIL followed by FEED DOG was enough to placate the vicious ASCII representation, and then I could move forward to the last room of this particular area.

Just giving the lit version this time. I originally thought the zeros-instead-of-letter-O spots were just a “graphical effect” but they become important.
There’s no shovel, but we do have dynamite. (I admit going back through the rooms and peering quite carefully at the flashing lights in case I missed an item. There’s nothing lying around, though.) However, because it is raining we can’t light the matches (they turn out to be a complete red herring). What you’re supposed to do instead is LOOK RADIO and find an antenna, then PUT ANTENNA followed by PUT DYNAMITE. This will eventually attract a lightning strike which blows up the dynamite. I don’t think that’s how that’s supposed to work.

I realize that might have been tricky to follow with the dark/light screen tricks, so here’s a video of the opening of the game given by Highretrogamelord, and be forewarned the sound is loud:
If you stay to the end, you’ll see the video stops at LOADING PART II. My guess is the Youtuber hit the same issue I did here: the game crashes with the currently existing copy. So I had to switch to the later C64 version to finish the game, which also gives a fresh title screen:

This reveals both authors, Bruce Robinson and Dr Alan Stankiewicz; according to Robinson himself in my comments the latter was also an author on Hospital Adventure.
The first part of the game is almost identical between the C64 and VIC-20 versions, except that you don’t start with the sandwich; there’s a side room with a TRASH that you need to look in to find the SANDWICH IN FOIL. Ew. I’m not sure what this adds to the game other than making it only 98% linear at the start rather than 100% linear.

The shaded room is only on the C64 version.
Going back to the explosion and going down, we now enter Part II of the game (the C64 just has everything as one file).

Here was my major point of “parse the picture” puzzlement. I originally thought that “high voltage” message was on a sign or poster, but it’s meant to be marking a box, and not just any box, but a FUSEBOX. OPEN FUSEBOX led me to more puzzlement…

…in that I wasn’t sure what the circles were supposed to mean. They’re fuses where one of the fuses is missing and needs a replacement. This is where the FOIL goes. (This allegedly works and is quite unsafe, but we’re just trying to rob a dead person here.) Incidentally, that LE0 0IL logo makes a reprise, and it took a long time for me to realize it’s probably meant to be a chunk of gravestone.
With the fusebox fixed, you can ENTER ELEVATOR — and yes, you have to make another jump to realize you’re looking at an elevator in the distance, but at least I made the correct guess this time.

After some fiddling, 4 is the current floor; 3 doesn’t work, 1 is locked (that’s a keyhole under the buttons there, represented by a playing card spade), so 2 is the only option.

You can move the picture to reveal a safe; trying to OPEN SAFE then has the game request a combination. This is honestly — and unusually for a puzzle like this — the most interesting puzzle in the game. I’ve given enough hints you can solve the puzzle if you want to try before moving on.

The LE0 0IL thing is the code. Flip that 180 degrees to get: 710037 (or as the game enforces by adding dashes as you type, 71-00-37).

Despite my complaining, that’s impressively recognizable as a key.
The elevator is stuck between floors so you can’t go back in. What you can do is douse the fire by using soil from the plant, and then GO FIREPLACE to a dark room, leading up to the third floor we had to skip, and then using JUMP to get back on the elevator.
The key then unlocks floor 1, and essentially right at victory.

You need to CUT GLASS (with the diamond) to get out.

I’m vaguely reminded of the Japanese game Diamond Adventure (just in the shortness of form and diamond as a goal) except there is essentially 0% chance the authors would have heard of it. The comparable aspect is technical, in that both cases the author(s) had to deal with creating a graphics system from scratch, leaving not as much room for the usual aspects of an adventure game.

The tight requirements mean this is a marvel as an artifact even if it doesn’t play as well to the modern player as a game. This was a product of sheer determination to see something resembling a graphical adventure on the VIC-20.
With more memory to work with, this certainly won’t be the last time we’ll see C64 character graphics as an art style; the games by the Australian Brian J. Betts starting in 1983 all fall in this category.

92 through 94 with all the POKE commands is where I think all the flashing happens. Those commands essentially execute assembly language in BASIC and so can cause fast graphical effects.
Coming up: Bedlam.
BONUS UPDATE: Gunther in the comments came up with a method of fixing the VIC-20 original, so it can now be played all the way through. Download here. I have some screenshots of the second part of the game, which is mostly the same, except the fire in the fireplace doesn’t need dousing.
![]()
![]()
![]()
![]()

Quite charming, as most of these old character graphic games were. That’s the most adorable “vicious” dog I’ve ever seen…
I actually like the combination puzzle and re-use of the foil. I see this one got slagged off on CASA, but these things need to be appreciated in their proper context. If all I’d had as a kid was a basic Vic-20, I think I’d have been happy with it, and would have wondered what kind of wizardry the author used to actually pull it off, being somewhat coding-impared myself.
I thought what I assume is supposed to be a grave in the distance was a top hat so I was genuinely confused for a bit.
Nice. I think this is quite a feat given the limitations.
BTW, I think you mean “0% chance” in the text.
Thanks!
For what it’s worth, the game loads on a C64 and is able to load, but not run, the second part (you can even play through it, just the graphics are totally off). It does not crash the CPU, and can be LISTed, so maybe it can be examined and fixed that way?
The “it” you can play through being the first part, of course.
I was able to use that trick to get to the source code of part 2, but the last line gives a syntax error in the VIC-20 emulator when I try to paste.
9030 forq=1to5:readd$(q):next:h=99:l=16:forq=1to6:readl%(q):next:data99,13,10,14,99,14:goto1
the line gets run quite early because the game jumps to 9000 first to read data
not sure what would be wrong with this, it doesn’t look like a premature cutoff? HTML export is here:
https://github.com/jasonbdyer/classic-basic/blob/master/GRAVETWO.html
It looks like DATA cannot be followed by a GOTO – only pasting up to the end of DATA seems to work.
hm, that suggests not a typo but rather a weird earlier VIC-20 version of basic maybe? at least there’s no way that would happen with a bad tape dump (I’d expect more just text to cut off)
that would explain the crash, though
I’ve looked a little but it doesn’t seem like the VIC-20 came with any other BASIC version.
If you load the game up on C64SC and RUN 9020, it actually works (as badly as the other half regarding graphics, but it does start and I can follow your walkthrough). RUN 9000 and RUN 9010 do not work.
OK. I saved the game to tape from the C64, then loaded it on the VIC-20.
Crucially, I had to set XVIC to have an extra 3KB of RAM. So much for the praise ;)
Changed line 9030 to remove the GOTO and added it in 9031.
Then did RUN 9020. That works. I cannot fathom what’s wrong with line 0 or 9000 that it would crash the thing.
And, in continuing to talk to myself, I’ve managed to hack together a fixed tape that works. I think it still needs the extra memory.
https://nc.fourcoffees.com/index.php/s/9Cn2H6a85PTGFio
Nice! Not making a new post but when I get a chance I will toss a link in the main post.
OK, it’s up. I used the same link so let me know if you need it updated at some point.
While I plan to leave it up for the forseeable future, I’ve also mirrored everything I’ve unearthed so far at https://github.com/gschmidl/interactive-fiction. And, to be double safe, this one at https://archive.org/details/grave-robbers-fixed
That dog looks like a Fooblitzsky dog
Huh. Sure does, now that you mention it.
The best part is the very accurate portrait of it over the fireplace.
Ah, I see now that it’s not in the Vic-20 original, thanks to Gunther’s fix! I love that Robinson chose specifically to add that in when he had more memory to work with.
I was going to be sad about how the dog is faithfully attending its master’s grave that we’re robbing, but I guess it is not actually a grave, more an underground lair disguised as a grave that can only be reached by blowing up a tombstone with a lightning-fueled dynamite strike? Or through a secret door. Which can only be opened by cutting the glass. Or maybe with a key we don’t have. Anyway, seems like Leo Oil is not dead and I don’t have to be sad about the dog, who at least got a sandwich?
Yes, give the room with the fusebox is directly under the grave it isn’t really a grave.
I did find the complete ambiguity kind of fun. The cover is all the background you get, the instructions just talk about commands. Given that the authors previously wrote a game where you’re a literal assassin and you start by murdering a nurse it felt perfectly plausible to me we’d be robbing “real” graves but the game took a hard swerve, and the realization that I was trying to blow stuff up rather than dig actually took a few beats.