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.
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.


