PHIL'S ZX SPECTRUM WEB PAGE   GET YOUR VINTAGE MAC ON LINE   NETGEM IPLAYER   BBC MICRO

Last Updated 15/06/2021

ZX Spectrum
Photograph by Bill Bertram

My Favourite Spectrum Programs

HELI By Phil Hite 2021 48K/128K Spectrum Version 1.2 Click here for the BBC Micro version
Build the Bridge
Stop the Flood
Beware of Octopuses!

HELI Title ScreenHELI Game ScreenHELI Fish Screen

Keys O=Left
     P=Right
     Space=Pick Up/Drop
     M=Sound Off/On
     H=Hold
     S=Start
     Q=Quit
     I=Instructions

All Files
heliall.zip

Read Me Instructions
readme.txt

HELI Machine Code
heli.szx
heli.tzx
heli.wav

HELI BASIC
helibas.szx
helibas.tzx

helibas.wav

HELI BASIC Program Listing
helibas.txt

HELI Variables & Subroutines
helivars.txt


KONG'S REVENGE By Johnathan Flint Version 1.3
Transcribed By Jim Grimwood
From Popular Computing Weekly 23/09/1982

Kong's Revenge Screen

All Files
KongsRevenge.zip


21UDGS By Phil Hite 2007 New Version 1.36 48K/128K Spectrum
A User Defined Graphics plotter.  Define 10 sets of 21 user defined graphics.


 
Keys  ? or H=Help
      5=Left 6=Down 7=Up 8=Right
      Caps Shift+5 6 7 8=Plot  

      9 or 0=Plot/Del or Kempston joystick
      I=Ink P=Paper B=Bright F=Flash
      U=Clear colours (attributes)
      J=Clear pixels
      X=Cut C=Copy V=Paste
      N=Inverse
      O=Flip horizontally W=Flip vertically
      M=Memory address - or +
      R=Resize grid to 5x4, 8x2 or 7x3
     
G=Define graphics    A=Clear grid K=Pick up graphics from memory S=Save V=Verify L=Load  
      D=List decimal codes E=Edit       B=BASIC examples
      T=Print              Q=Quit

All Files
21udgs136.zip

Read Me Instructions
21udgs136.txt

Machine Code
21udgs136.szx
Emulators may not recognise the Kempston joystick when running the szx file.
21udgs136.tzx

BASIC
21udgs136bas.szx
21udgs136bas.tzx

BASIC Program Listing
21udgs136bas.txt


Convert a .tzx file into a wav via Mac OSX Terminal
tape2wav syntax ./tape2wav inputfile.tzx outputfile.wav
Buy a stereo to mono cable and play the wav file from your iPhone into your Spectrum.
21udgs136.wav
21udgs136bas.wav

Right click, choose
Save Link As...

HOW TO USE UDGS IN BASIC
In this example 4 UDGs C,D,H and S are defined as club, diamond, heart and spade.
Set g to the number of UDGs required from 1 to 21.
9000 FOR g=1 TO 4: READ g$: FOR y=0 TO 7: READ x: POKE USR g$+y,x: NEXT y: NEXT g
9010 DATA "c",16,56,56,84,254,254,84,56
9020 DATA "d",16,56,124,254,254,124,56,16
9030 DATA "h",108,254,254,254,254,124,56,16
9040 DATA "s",16,56,124,254,254,84,16,56
 
SAVE VERIFY LOAD UDGS
Save the UDGs (21*8 bytes=168) stored at the current memory address.
SAVE "UDGS" CODE USR "a",168   
VERFIY "UDGS" CODE USR "a"     
LOAD "UDGS" CODE USR "a"

SPECTRUM 128K
In 128K mode UDGs T and U are reserved for the additional SPECTRUM and PLAY commands.
IF PEEK 23388=16 THEN POKE 23611,205
enables T and U.
POKE 23611,221
enables SPECTRUM and PLAY again.


ADDITIONAL SETS OF UDGS SPECTRUM 48K/128K
UDGs are stored in address 65368
-168 from the memory address for each additional set of UDGs.
In this example 3 sets are used.
Set 1=65368
Set 2=65368-168=65200          
Set 3=65200-168=65032
CLEAR lowest memory address-1.
10 CLEAR 65031
Set m to the memory address required and then GO SUB 9999.
20 LET m=65368: GO SUB 9999: REM USE SET 1
30 LET m=65200: GO SUB 9999: REM USE SET 2
40 LET m=65032: GO SUB 9999: REM USE SET 3
9999 POKE 23675,m-256*INT (m/256): POKE 23676,INT (m/256): RETURN

SPECTRUM 16K
IF PEEK 23733=127 THEN PRINT "THIS IS A SPECTRUM 16K"

ADDITIONAL SETS OF UDGS SPECTRUM 16K

UDGs are stored in address 32600.
-168 from the memory address for each additional set of UDGs.
In this example 3 sets are used.
Set 1=32600
Set 2=32600-168=32432     
Set 3=32432-168=32264
CLEAR lowest memory address-1.
10 CLEAR 32263
Set m to the memory address required and then GO SUB 9999.
20 LET m=32600: GO SUB 9999: REM USE SET 1
30 LET m=32432: GO SUB 9999: REM USE SET 2
40 LET m=32264: GO SUB 9999: REM USE SET 3
9999 POKE 23675,m-256*INT (m/256): POKE 23676,INT (m/256): RETURN

SCREEN$ UDGS COLLISION DETECTION
SCREEN$ Can't usually detect UDGs but here's a solution.
10 PRINT AT 0,0;"A": REM GRAPHICS A
20 GO SUB 9998: REM CHANGE SCREEN$ POINTER
30 IF SCREEN$ (0,0)="A" THEN GO SUB 9999: PRINT "Collision": GO TO 50: REM CAPITAL A
40 REM IF SCREEN$... MORE COLLISIONS
50 GO SUB 9999: REM RESET SCREEN$ POINTER
60 STOP
9998 POKE 23606,PEEK 23675-8: POKE 23607,PEEK 23676-2: RETURN : REM CHANGE SCREEN$ POINTER
9999 POKE 23606,0: POKE 23607,60: RETURN : REM RESET SCREEN$ POINTER


Spookyman By David M Webb 1982
My first game and the best Pacman clone ever released.

Spookyman Screenshot

Keys: Up=top row Down=bottom row Left=left half of middle rows Right=right half of middle rows

spkymnv2.tap
spkymnv2.tzx
spkymnv2.z80
spkymnv2.wav
Right click, choose Save Link As...

Infinite Lives Poke 28316,0 By Gerard Sweeney.
spkymnil.z80 Infinite Lives
Right click, choose Save Link As...


Supercolour By Simon Crampin Your Sinclair Issue 6 June 1986 (48K Mode Only)
An amazing multicolour sprite editor enabling a different colour on each row.  How did he do it?

Supercolour Screenshot Miner Willy

sucolour.tap Transcribed By Jim Grimwood.
sucolour.tzx
sucolour.z80
sucolour.wav
Right click, choose Save Link As...

sucoldem.z80 Your Sinclair Demo
Right click, choose Save Link As...

sucolour.txt Read Me Instructions
Your Sinclair Listing Page 1
Your Sinclair Listing Page 2
The addresses of column (POKE 65118,c) and row (POKE 65117,r) were transposed when published in Your Sinclair.

10 RANDOMIZE USER 65020: CLS: REM TURN OFF GRAPHIC FROM PREVIOUS RUN OF PROGRAM
20 INPUT "Column 0-24? (or q to quit)";c
30 INPUT "Row 0-18? (or q to quit)";r
40 RANDOMIZE USER 65020: CLS: REM TURN OFF GRAPHIC
50 POKE 65030,8*r: REM SET ROW FOR SUPERCOLOUR DISPLAY ROUTINE
60 POKE 65053,c: REM GRAPHIC COLOURS COLUMN
70 POKE 65056,r: REM GRAPHIC COLOURS ROW
80 POKE 65118,c: REM GRAPHIC PIXELS COLUMN
90 POKE 65117,r: REM GRAPHIC PIXELS ROW
100 RANDOMIZE USER 65116: REM TURN ON GRAPHIC
110 GO TO 20

Links
http://www.worldofspectrum.org                                   World of Spectrum
http://www.users.globalnet.co.uk/~jg27paw4/type-ins/typehome.htm The Type Fantastic (TTFn)
https://spectrumcomputing.co.uk                                  Spectrum Computing