This program is deceptively short – it is easily one of the best games we've ever seen for the VIC. You're in a maze, larger than your screen will show. You must move through it, trying to defuse a ticking bomb hidden somewhere at the top of the puzzle. As you move, the screen will move, but you must learn from your mistakes or the ticking will grow more shrill until all is lost. For the unexpanded VIC.
You play "Time Bomb" against the clock. You start at the bottom of a maze, which is about three times the size of the VIC's screen. At the top of the maze is a time bomb ticking away. The closer it gets to blowing up, the higher pitched the ticking becomes. If you reach the bomb, you must steer the pointer into it to defuse it. If you are successful, you have a go at the same maze, but with the bomb in a different place and with a shorter fuse. This continues until you run out of time. If you fail to defuse it, you get a new maze and a new bomb with a longer fuse.
Friends I've played this with usually don't consider it a game for competition. Instead, they become back-seat drivers, telling the player where to go and pulling for him or her at every turn.
Time Bomb is quite challenging to a player's memory of spatial relationships. People who are at first intimidated by seeing only a portion of the maze quickly become accustomed to thinking ahead and remembering the dead ends and clear paths through the maze. An ability to recall the good and bad moves is crucial to getting into the later rounds.
I started thinking about this game when I saw Kenneth Szajda's "Mastermaze" (COMPUTE!, February 1983). I wanted to create something more challenging than a single screen maze, but I didn't want to duplicate his game and I also had to consider the VIC's smaller memory. I then hit onto the idea that makes this game so entertaining: to make the maze larger than the screen and bring it on and off the display by scrolling it out of a much larger block of memory.
It sounded great, but how would I do it? The secret lies in a short machine code routine that is "called" to update the display whenever the player goes up or down in the maze. It does this so quickly that I used the BASIC joystick routine from COMPUTE!'s First Book of VIC just to keep things at a reasonable pace.
There are actually three separate machine language routines that are represented by the DATA statements. One fills the maze area with the proper character, another fills the screen's "color RAM" with the proper color, and the third one scrolls the maze. I could have used BASIC POKEs to do all these things, but the time consumed would be too great. It would be impossible to use POKEs to do the scrolling of the maze with enough speed to be any fun at all.
Searching for a time bomb.
When typing in the program, be sure to SAVE it before you RUN it, since a typo in the DATA statements could cause you to lose the whole program. Be very careful as you enter the DATA statements. If you have a bug in the program, it is most likely in the DATA statements, so look there first.
When you do RUN it, there will be a slight pause while the machine language parts are POKEd into the cassette buffer. Then the screen should clear, and the words "Making Maze" should appear. Because of the size of the maze, the VIC needs almost a minute to draw it, so be patient. When the maze is complete, a little musical announcement alerts you to begin playing. Don't give up if you are eliminated on the first round; it takes a while to get used to looking ahead in the maze and planning your route.