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

Last updated 24 Sep 2024

ZX Spectrum
Photograph by Bill Bertram

My Favourite Spectrum Programs

HELI By Phil Hite 2021 Version 1.98 48K/128K 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

GitHub
https://github.com/PhilHite/Heli-Spectrum

All Files
heliall.zip

Read Me Instructions
readme.txt

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

HELI BASIC
helibas.szx
helibas.tzx
helibas.z80
helibas.wav

HELI BASIC Program Listing
helibas.txt

HELI Variables & Subroutines
helivars.txt


21UDGS By Phil Hite 2007 Version 1.54 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  

      0, 9 or Z=Plot/Delete or Kempston joystick
      SYMBOL SHIFT+5 6 7 8=Nudge
      I=Ink P=Paper 0 to 7 B=Bright F=Flash
      S=Swap colours O=Clear colours/Undo
      J=Clear pixels/Undo
      X=Cut C=Copy V=Paste
      N=Invert
Y=Rotate left U=Rotate right
      W=Flip horizontally E=Flip vertically
      M=Memory address - or +
      G=Define graphics
      D=List decimal codes
      E=Edit
      K=Pick up graphics from memory
      R=Resize grid to 5x4, 8x2, or 7x3
     
S=Save V=Verify L=Load
      T=Print
      A=Clear grid    
      Q=Quit

GitHub
https://github.com/PhilHite/21udgs

All Files
21udgs154.zip

Read Me Instructions
21udgs154.txt

Machine Code
21udgs154.tzx

BASIC

21udgs154bas.tzx

BASIC Program Listing
21udgs154bas.txt

BASIC UDG Examples

21examples.szx
21examples.z80
21examples.tzx

BASIC UDG Examples Program Listing
21examples.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.
21udgs154.wav
21udgs154bas.wav

21examples.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.
Enable UDGs T and U.
IF PEEK 23388=16 THEN POKE 23611,205
Enable SPECTRUM and PLAY again.
IF PEEK 23388=16 THEN POKE 23611,221

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, 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
50 STOP
9999 POKE 23675,m-256*INT (m/256): POKE 23676,INT (m/256): RETURN

CHECK IF 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, 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
50 STOP
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 MOVE SCREEN$ POINTER
30 IF SCREEN$ (0,0)="A" THEN PRINT "Collision": GO TO 60: REM CAPITAL A
40 REM IF SCREEN$... MORE COLLISIONS
50 GOSUB 9999: REM RESET SCREEN$ POINTER
60 STOP
9998 POKE 23606,PEEK 23675-8: POKE 23607,PEEK 23676-2: RETURN : REM MOVE SCREEN$ POINTER
9999 POKE 23606,0: POKE 23607,60: RETURN : REM RESET SCREEN$ POINTER

The comp.sys.sinclair Crap Games Competition 2021 - 25th Edition!
Competion Entry #40: DIRTY HARRY SIMULATOR SAN FRANCISCO By Phil Hite 2021 Version 1.01
https://www.rickdangerous.co.uk/csscgc2021/review040.html



All Files
dh.zip

Dirty Harry Simulator San Francisco Program Files
dh.szx
dh.tzx
dh.z80
dhscreen.tzx
dhsound.tzx
dh.wav
dhscreen.wav
dhsound.wav


Dirty Harry Simulator San Francisco BASIC Program Listing
dh.txt



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

Kong's Revenge Screen

All Files
KongsRevenge.zip


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