Water Balloon Masters

Developer(s): Eric Boisvert
Date: 1988
Type: Program
Platform(s): TS 2068
Tags: Game

You have heard of shoot’em up games? Well, how about a splash’em down game? Yes, a major breakthrough in computer technology has brought us this weird game! You drop water balloons on the pedestrians below, and the faster the pedestrian, the more points you score. Each hit lowers a bonus counter; when it reaches zero you can move to the next level, and you have 90 seconds for each one. SYMBOL SHIFT and A (STOP) resets the game, or moves on to the next level once the bonus is zero with time left.

Water Balloon Masters was written by Eric Boisvert and published on the February 1988 tape (Issue 9) of Byte Power. It has a colour or black-and-white display mode and the Byte Power “3-way joystick system” (TS2068 left port or Kempston, ZX Interface II, or cursor joystick, with keyboard control as well). Its loading name is MASTERS.

Program Analysis

Tape Layout

  • MASTERS: BASIC loader, 483 bytes, auto-runs at line 0
  • SCREEN: 4,145 bytes of code at 50000, run first with USR 50000
  • GAME: 16,898 bytes of code at 36350, the game, started with USR 36350

The Loader

The BASIC part is a protected loader. Every number you see in it (99999, 999, 9) is a decoy: the real values are held in the hidden five-byte number forms that follow each one. The length bytes of line 0 are set to 65535, so the listing stops at line 0, and line 0 first POKEs them back to their true value (addresses 26712–26713, just after the start of the TS2068 program area) and jumps to line 10. Line 90, RANDOMIZE USR (PEEK 23635+256*PEEK 23636+61), runs machine code stored inside the REM of line 0.

Line 10 sets colours and CLEAR 27999, and POKEs 0 into DF SZ (23659), which removes the lower screen so that BREAK or an error report cannot return cleanly to BASIC. Line 20 loads the SCREEN block and runs it at 50000; line 30 loads the GAME block, sets DF SZ back to 2 and starts the game at 36350. No readable text survives in the code blocks, which appear to be encrypted or compressed, so the machine code is not described here.

Line 9999 is the publisher’s save line: it calls a routine at 65280, sets the length of line 0 back to 65535 and saves "MASTERS" LINE 0.

Notable Techniques

  • Decoy line numbers and values in the loader: the visible digits differ from the stored binary values, so the listing cannot be read at face value
  • Line 0 has a false length of 65535, so LIST shows only that line; the program repairs it when it runs
  • POKE 23659,0 removes the lower screen as copy protection

Appears On

Tape-based magazine. The February 1988 issue (Issue 9) of Byte Power, the TS2068 tape magazine of Eric and Kristian Boisvert.

Related Products

Related Articles

You have heard of shoot’em up games? Well, how about a splash’em down game?

Image Gallery

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.