The Spectrum programs below were originally written for Your Sinclair magazine, with the first three published in the Program Pitstop section. The remaining programs were completed, but either unsubmitted or simply unused.

Sprite Editor

This was my first proper Z80 program, written when I was 15. Before that I'd not really done much more than small routines to bounce sprites around the screen.

On top of basic pixel editing the program provides mirror, invert, scroll and copying functions, for sprites up to 4 bytes wide. The code was based at 25000 to give a little room for BASIC, leaving most of memory for game graphics to examine/edit.

Published in Issue 32 (Aug '88), page 80.

Download Z80 Snapshot(4K)

Editor Screenshot Code Listing

Sound FX Generator

Spurred on by the £50 prize from the first, I immediately began work on another utility. The sound effects generator was my first stab at using the 128K sound chip, which was a huge improvement on the original 48K beeper.

The program was designed in 2 parts — an editor to create the sound effect, and a compiler to compress the raw data down to a more manageable size. Unfortunately, the compiler part was never completed, so the published program included only the editor and raw data playback utility.

Published in Issue 34 (Oct '88), page 97.

Download Z80 snapshot (8K)

FX Screenshot Code Listing


Multi-Load is a flexible screen loader, giving control of how the screen data and attributes are loaded. One completed, the new loader is saved out to tape ready to use.

A menu-driven wizard prompts for the following input:

To show it in action I've prepared an Exolon screenshot, loaded attrs first in a spiral, data in random order, using a multi-coloured border, and maximum loading speed. Load the TZX image below into your favourite Spectrum emulator, and don't forget to disable speed loading tapes or it'll load instantly!

Published in Issue 38 (Feb '89), page 85.

Download Z80 snapshot (43K)
Download TZX demo tape (244K)

Multi-Load Menu Code Listing

128K Music

Despite being released as a music demo, this started life as a windowed menu utility aimed at Program Pitstop! I don't think it was ever submitted, perhaps because another window utility was published in the meantime.

A separate wizard utility (not included) prompts for the menu caption and items, as well as colours and position. A routine called from BASIC shows the menu and waits for the user to select something. The returned value indicates which option was selected, or 255 if the selection was cancelled. A second route is called to remove the menu, restoring what was under it previously.

I created a showcase demo with 128K music ripped from various games, and that's how the final program looks below.

Download Z80 snapshot (108K)

Tune Sub-menu


MultiMania is a poke database containing cheats for hundreds of Spectrum games. It's probably the closest thing I did to a traditional demo-scene demo. I submitted it to YS, but Spectrum magazines were already in decline and I never heard back.

The title screen includes a raster effect combining border+128K screen switching to give the bouncing yellow bars. The intro screen has a proportional font and strange bouncing logo letters. The main program has a large colour 50Hz scroller, with the top of the display used to scroll through pages of game names. A sub-screen on each shows the available pokes, which could be noted down for later use.

The biggest problem with this utility is that it takes a couple of minute to load from tape, so it was hardly a convenient reference! I loaded my own copy from +D disk (as featured on the title screen) in under 4 seconds, so it was still very useful.

Download Z80 snapshot (43K)

Loading Screen Introduction
Game Selection Game Pokes


I submitted this for the password challenge set in Issue 33 (Sept '88), though it wasn't published.

The program uses some fiendish techniques to resist hacking the running program:

You have two attempts to get the right numeric code before the machine is reset. The correct code for the demo snapshot below is 1236031769 (bonus points to anyone recognising that number!).

Download Z80 snapshot (27K)

Code Input


Regular scrolling messages had been done to death already, so I tried to make things a bit more interesting.

You can define your own scrolling message by replacing the REM statement at the start of the BASIC listing. The following symbol characters have special meanings, with some requiring a 2-digit numeric argument:

# — toggle upright characters
^ — scroll speed (nn)
@ — text height (nn)
_ — text width (nn)
$ — scroll position (nn)
£ — start of scroll loop
& — end of loop point
% — return to basic

The character set used is taken from the CHARS system variable, so you can use your own by poking a new address into 23606/7. Oddly, I didn't include a way to escape the symbols to use them in the message itself.

The snapshot below also includes the HiSoft Assembler and scroller source code. Press Space to terminate the scrolling message and use RANDOMIZE USR 26000 to enter the assembler.

Download Z80 snapshot (19K)

Sample Scroller


That's all so far, but if I find anything else I'll add it here.