Aquaplane

Products: Aquaplane
Developer(s): J. Hollis
Date: 1983
Type: Program
Platform(s): TS 2068
Tags: Game

Aquaplane is an arcade game: you pilot a speedboat towing a water-skier across the sea, with clouds and a mountain coast behind. You dodge rocks, regattas, speedboats and the “Great White Hungrys”. The keys are 7 and 6 to move up and down, 0 for thrust, H to hold, S to start, and J for joystick. A “TODAYS GREATEST” table keeps the high scores, and spare skiers are shown along the bottom of the screen.

The title screen reads “A Q U A P L A N E — © 1983 J.HOLLIS”, and the game was published by Quicksilva. Its BASIC loader is titled “VLOADER”, version 1.0, created 25 November 1983 by S. S. Dosanj (Bitterne Software).

Program Analysis

Loader

The BASIC loader sets the colors, prints a flashing “LOADING” and loads a loading screen and then a 33,587-byte code block at 31948, which it starts with RANDOMIZE USR 53248. Lines 9000–9020 are an unused utility that scans memory for pairs of the byte 88 and POKEs them to 16.

Notable Techniques

  • The whole game is machine code. BASIC only loads it.
  • The code fills memory from 31948 to the top of RAM.

Potential Issues

  • The loader as found on the disk has no CLEAR, so on a stock TS2068 the code loads over the machine stack and the computer crashes. This copy adds one (see below).

This copy came from a Larken disk and was converted for tape: the PRINT USR 100 disk prefixes were removed and CLEAR 31947 was added to line 55 so the code loads safely. It was tested on a stock TS2068 in ZEsarUX: title, play and a running game.

Related Products

Ski through marine maniacs but beware of the rocks, the regattas, the speed boats, and most especially the Great White Hungrys.

Image Gallery

Source Code

   10 REM program VLOADER
   20 REM created 25TH NOVEMBER 1983
   30 REM version 1.0
   40 REM author  S. S. DOSANJ (BITTERNE SOFTWARE)
   50 REM 
   55 BORDER 0: INK 7: PAPER 7: CLS : REM 
   57 PRINT #0;AT 0,12; INK 7; FLASH 1;"LOADING"; FLASH 0; INK 0: REM 
   60 PRINT USR VAL "100": LOAD "aquasc.C1"SCREEN$ : REM 
  100 PRINT AT 19,0;: REM 
  120 PRINT USR VAL "100": LOAD "aquamc.C1"CODE : REM 
  130 RANDOMIZE USR 53248: REM 
  140 STOP 
 9000 FOR F=(PEEK 23635+256*PEEK 23636) TO 9999999 STEP 2: BORDER 0: BORDER 2: REM 
 9005 IF PEEK F=88 AND PEEK (F-1)=88 THEN POKE F-1,16: BEEP .1,1: REM 
 9010 IF (PEEK F=88 AND PEEK (F+1)=88) THEN POKE F,16: BEEP .1,0: REM 
 9015 IF PEEK F=96 AND PEEK (F+1)=96 THEN STOP : REM 
 9017 IF PEEK F=88 AND PEEK (F-1)=88 THEN POKE F-1,16: BEEP .1,1: REM 
 9020 NEXT F: REM 
 9999 REM ````````

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