Old Design Design games sources and stuff... (Last update - 00:04:47 11/07/2014)

Software
New files - many thanks to Graham Stafford for providing the complete source to many of his games, I will be adding these to the site as separate games shortly. For the moment they're all in one zip file, have a look in the Graham Stafford section below for it...

Note that lots of formatting information has been lost, some of these files have been recovered using a dissassembler, or pieced together from fragments in slack space on discs, and so on. Basically, what I'm saying is don't assume the text you see here is formatted the way we'd have seen it then, especially for some of the earlier files. The white space may well be completely different, etc, etc.

We designed our own in-house development machines, and our editor/assembler packages for these compressed the source files both for speed and in order to save space. The files published here cover several generations of these machines, and I've had to deduce the file formats for the early ones, so I expect that there may well be some glitches here and there. In particular, all the syntax highlight information has been removed. The original spacing is often lost, comments are stripped from some files, line time/date stamps and source markers deleted.

(Looking at the history of it I think we actually invented syntax highlighting, certainly had it in our tools before any other mention I can find)

Back in 1983 (Halls) the machine I used was called Lurch. I think there's a picture of me holding Lurch on t'web. By 1985 (Dark Star onwards) my machine was called Basil, I'll upload some photos of Basil later; in some respects it was nicer to write code on Basil than on the PC I'm using to write this - Basil had hardware window support so it could soft-scroll text windows in the editor. Hell, I still miss that..

The Z80 sources generate accurate binary (if assembled with zeus). The 68000 sources should be OK, but the NS32000 sources are corrupt - I've expanded them from the tokenised source using the Z80 tokens. Too much trouble to work out the NS32000 ones; the NS32000 was a dog anyway, wish I hadn't wasted time on it.

About a decade ago someone took a box full of Design Design floppies from my factory in Wrexham (MDS). These had nearly all my games sources - it's insanely unlikely, but if anyone reading this knows where they are I'd love to have them back. Because they're gone I have lost nearly all the Amstrad games and some of the Spectrum ones. It doesn't in any real sense matter but I do wonder what comments and observations those sources contained, which are now lost.

We had fun writing this lot; I hope it provides amusement still. To me, much of it seems painfully naive and childish, and if I was to go back and be there again I'd do things differently, but such is life; we wrote games to amuse ourselves, it was fortunate that we were able to make a living selling some of them. I don't suppose there'll be a time like the early daze of the home computer revolution again in a hurry...


NOTE: I've been rather disappointed with the quality of the available Z80 cross assemblers, so I've thrown one together and provided it here. It produces .szx files for use with Spectrum emulators, and I'll make sure all my Spectrum sources here can be assembled to szx files directly - so, if you want to edit and assemble these games feel free to use it... If anyone would like to integrate an assembler into an emulator I would be interested...

Zeus now also includes a useful Z80 disassembler, one that can (with help) disassemble binary code to usable source code. Please see the documentation.

I've added a section for contributions from third-parties, I'll organise this better at some point; they probably deserve a page of their own.


Zeus Z80 Assembler. A PC Z80 cross-assembler that generates szx files. Use it to assemble the spectrum sources on this website...
Now includes the Diana disassembler - this can convert Z80 binary to useful source code.
Zeus is now a serious tool, please read the example code below...
zeus.exe   875KB 10/Jul/2014 (Version 2.74) - windows application (now includes experimental syntax highlighting editor) v2.73 adds a data compression option
zeus.zip   1287KB 11/Jul/2014 (Version 2.74/2.74) - same again but zipped
zcl.exe   443KB 10/Jul/2014 (Version 2.74) a command line only version. Error messages similar to gcc format. Usage "zcl filename". I will provide some more documentation later...
zeus_ex1.asm  2448 bytes 18/Oct/2008 Some documentation for it
zeus_ex2.asm  12KB 19/Oct/2008 [Revised] Some more documentation for it
zeus_ex3.asm  4929 bytes 18/Oct/2008 Some more documentation for it
zeus_ex_if.asm  1898 bytes 18/Oct/2008 Demo source: Conditional assembly - if/elseif/else/endif
zeus_ex_loop.asm  1084 bytes 18/Oct/2008 Demo source: Conditional assembly - loop/lend
zeus_ex_repeat.asm  1177 bytes 18/Oct/2008 Demo source: Conditional assembly - repeat/until
zeus_ex_while.asm  1674 bytes 18/Oct/2008 Demo source: Conditional assembly - while/wend
zeus_ex_files.asm  3160 bytes 23/Oct/2008 Demo source: Covering multiple source files, output file formats and binary data
zeus_ex_struct.asm  4170 bytes 18/Oct/2008 Demo source: Structures (well, -ish)
zeus_ex_ld16.asm  4283 bytes 18/Oct/2008 Demo source: 16-bit load pseudo-ops
zeus_ex_macros.asm  13KB 21/Oct/2008 Demo source: Macros
zeus_ex_procedures.asm  19KB 18/Oct/2008 Demo source: Procedures (local label support) (includes print code example)
zeus_ex_segments.asm  6222 bytes 24/Oct/2008 Demo source: Segments
zeus_ex_sym.asm  2869 bytes 19/Oct/2008 Demo source: exporting the symbol table
zeus_ex_maths.asm  1089 bytes 18/Oct/2008 Demo source: use of the expression evaluator
zeus_ex_editor.asm  5335 bytes 27/Oct/2008 Some documentation for the editor.
zeus_ex_options.asm  5974 bytes 7/Nov/2008 [New in v2.10] Some documentation for the new assembler options.
zeus_ex_graphics.asm  3438 bytes 7/Nov/2008 [New in v2.10] Some documentation for the DG pseudo-op - eases graphical character definition.
zeus_ex_v222.asm  49KB 9/Dec/2008 [New in v2.22] Example documentation and source for features added in v2.20..v2.22 of Zeus (encryption, checksumming, random numbers, etc).
zeus_ex_v250.zip  6459 bytes 30/Aug/2010 [New in v2.50] Example documentation and source code for features added in v2.32..v2.50 of Zeus (binary file comparison, etc).
zeus_ex_v264.asm  54KB 9/Jun/2011 [New in v2.64] Example documentation and source code for features added in v2.64 of Zeus (single-step and breakpoints, etc).
fp.def  31KB 12/Oct/2008 Diana definition file - an example file for the Diana disassembler, it disassembles Forbidden Plant (binary below) reasonably accurately.
fp.bin  64KB 1/Oct/2008 Forbidden Planet binary (see above)
rr.def  7042 bytes 22/Oct/2008 Diana definition file - an example file for the Diana disassembler, early start of a definition file for Rommel's Revenge.
rr.bin  64KB 14/Oct/2008 Rommel's Revenge binary (see above)
fp_zeus.zip  64KB 18/Oct/2008 A large application - Forbidden Planet as a multi-source file. (slightly revised for Zeus v1.7)
on_the_run_zeus.zip  48KB 27/Aug/2010 Another complete game - On The Run (Spectrum)
kat_trap_zeus.zip  116KB 30/Aug/2010 Another complete game - Kat Trap (Spectrum)

Halls of the Things executables (c) Simon Brattel, Martin Horsley and Neil Mottershead.

hott2011rc.szx   48KB 31/May/2011 The release candidate of a new emulator-friendly ZX Spectrum release of Halls of the Things. Comments, please...
hott2011_7r_1k.rzx   471KB 31/May/2011 An action-replay file for emulators of me playing the new Halls on the most aggressive settings...
halls.tzx.zip   17KB 1983 The ZX Spectrum release of Halls of the Things.
hallsremix.z80.zip   13KB 1986 A ZX Spectrum remixed version (more interesting mazes) of Halls of the Things.
halls - how she is played.rzx   524KB 1983 & 2007 A walk-through of halls - it can be done...
halls_easy.szx   12KB 1983 Pre-release version of Halls of the Things - ZX Spectrum. This had a strength bargraph, we did away with strength later. Game difficulty set low.
halls_hard.szx   12KB 1983 Pre-release version of Halls of the Things - ZX Spectrum. This had a strength bargraph, we did away with strength later. Game difficulty set high.
halls86.zip   62KB 1991?? An IBM PC version. Unfinished and far, far, far too fast on modern hardware...

Halls of the Things sources (c) Simon Brattel, Martin Horsley and Neil Mottershead.

hott2012src.zip   63KB 27/Mar/2012 The sources for a new emulator-friendly ZX Spectrum release of Halls of the Things.
hott2011rc_src.zip   57KB 31/May/2011 The sources for a release candidate of a new emulator-friendly ZX Spectrum release of Halls of the Things.
halls.asm  242KB 7/Nov/2008 The complete halls source as one file. Use the zeus.exe assembler (above) to assemble this...
halls83_chars.rtf   77KB 10:10pm 3/Mar/1983 Spectrum (Original 1983 released version) The character set
halls83_front.rtf   20KB 10:10pm 3/Mar/1983 Spectrum (Original 1983 released version) The front end source code
halls83_main.rtf   124KB 10:10pm 3/Mar/1983 Spectrum (Original 1983 released version) The main source code
halls_chars.rtf   79KB 26/Feb/2007 Spectrum The character set
halls_front.rtf   24KB 26/Feb/2007 Spectrum The front end source code
halls_main.rtf   200KB 26/Feb/2007 Spectrum The main source code
halls8256.zip  168KB ?? All the files for the Amstrad 8256 version, plus others? Modified mazes...
halls68k_a.txt   37KB 1988?? 68K version for Warp board. Main code part A
halls68k_b.txt   85KB 1988?? 68K version for Warp board. Main code part B
halls86.zip   62KB 1991?? An IBM PC version. Unfinished and far, far, far too fast on modern hardware...

Invasion of the Body Snatchers sources (Spectrum) (c) Simon Brattel and Neil Mottershead.
If you liked this, have a play with Return of the Body Snatchers, below.
Inv 15_7_83.txt   46KB 15/Jul/1983 (Original 1983 release version) Part of the source.
Inv Ai 2_46 AM 6_9_83.txt   40KB 2:46am 6/Sep/1983 (Original 1983 release version) Another part of the source.
Inv Bi 2_46 AM 6_9_83.txt   42KB 2:46am 6/Sep/1983 (Original 1983 release version) Yet another part of the source.

Warlock of Firetop Mountain sources (Spectrum) (c) Simon Brattel and Neil Mottershead. (And Martin Horsley, of course. Lots of Halls in there).
They looked at Halls and asked us to write something like it, but without the magic. They got something without the magic...
Puffin FE.txt   19KB 1984 (Original released version) The front end source code
Puffin Source 0,10.txt  29KB 1984 (Original released version) Part of the game.
Puffin Source 1a,10.txt  47KB 1984 (Original released version) Another part of the game.
Puffin Source 1b,9.txt  26KB 1984 (Original released version) Yet another part of the game.

Rommel's Revenge sources (Spectrum) (c) Martin Horsley
This was written by Martin Horsley on a Spectrum using Zeus, which is why the source was broken into small sections and the files are so compressed. It amazed me at the time that he could write such an impressive game just on the machine itself, I certainly couldn't have done that...

These are all the files I now have, so it looks like I've lost one or more files. I presume they're intended to be assembled in order and then run, but these files don't contain any of the data or front-end stuff...

RR_Source1.txt  10KB 1983 One of the Zeus (spectrum) source files.
RR_Source2.txt  12KB 1983 Another...
RR_Source3.txt  3708 bytes 1983 Another...
RR_Source4.txt  10KB 1983 Another...
RR_Source5.txt  266 bytes 1983 Another...
RR_SourceX.asm  116KB 21/Oct/2008 A Diana disassembly of Rommel's, combined with Martin's sources. Doesn't assemble yet, a work in progress...
rr.def  7042 bytes 22/Oct/2008 Diana definition file - an example file for the Diana disassembler, early start of a definition file for Rommel's Revenge.
rr.bin  64KB 14/Oct/2008 Rommel's Revenge binary (see above)

Dark Star sources (Spectrum) (c) Simon Brattel.
New - I've added a reconstructed source for the Spectrum version.
ds2012src.zip   68KB 27/Mar/2012 The sources for a new emulator-friendly ZX Spectrum release of Dark Star. Reconstructed using Diana and fragments of old sources
ds_dev.zip  75KB 13/Mar/2012 NEW - working recreation of the Dark Star sources - a work in progress. Added analogue joystick support...
Surface spekki most of towers 5_00pm 1_4_84.asm   36KB 5:00pm 1/Apr/1984 An early version. Source compatible with zeus.exe, see above.
dsu_1.szx  3820 bytes 5:00pm 1/Apr/1984 The above file assembled and running. Controls are Q/A fast/slow Z/X left/right N/M up/down and H/J/K for fire. Try flying slowly forward and shooting...
Dark Star + coloured thingys 2_35am 14_6_84.asm   251KB 2:35am 14/Jun/1984 Most of it. Source compatible with zeus.exe, see above.
dsu_2.szx  16KB 2:35am 14/Jun/1984 The above file assembled and running (grafted onto the released front-end code, which provides the key-scan routines for it).
Loader v2 Wednesday 05_36_49 am 21_08_85.txt   4508 bytes 5:36:49am 21/Aug/1985 Tape loader for it?

Forbidden Planet (Spectrum) (c) Simon Brattel
New - revised the sources
fp2012src.zip   69KB 27/Mar/2012 The sources for Forbidden Planet. Updated for emulators but can (optionally) generate the original code.
fp.asm  558KB 7/Nov/2008 The complete source code for the Spectrum version of Forbidden Planet, for use with the Zeus assembler provided on this site.
This has the whole project as a single file. See above...
fp_zeus.zip  64KB 18/Oct/2008 The complete source code for the Spectrum version of Forbidden Planet, for use with the Zeus assembler provided on this site.
This is a multiple-source version. See above...
fp_zeus_2_10.zip  84KB 8/Dec/2008 The complete source code for the Spectrum version of Forbidden Planet, for use with the Zeus assembler provided on this site.
This is slightly changed to take advantage of features available in Zeus v2.10 onwards.
fp_spin.asm  530KB 3/Oct/2008 The complete source code for the Spectrum version of Forbidden Planet. Various ugly changes to work round bugs in the zx-spin assembler. [muffled noises]

Tank Busters sources (Various: Amstrad CPC, Lurch/Basil, Amiga) (c) Simon Brattel...
These need organising. Mixed targets in here...
TB 4b Friday 05_28_29 am 29_03_85.txt   60KB 5:28:29am 29/Mar/1985 A front end source
TB Sunday 04_33_39 pm 30_12_84.txt   37KB 4:33:39pm 30/Dec/1984 A version of the main source?
TB Sunday 05_25_13 pm 30_12_84.txt   37KB 5:25:13pm 30/Dec/1984 A version of the main source?
TB Sunday 06_02_33 pm 30_12_84.txt   39KB 6:02:33pm 30/Dec/1984 A version of the main source?
TB Main Friday 08_03_00 pm 15_02_85.txt   46KB 8:03:00pm 15/Feb/1985 A version of the main source?
TB Main Monday 02_06_48 am 18_02_85.txt   50KB 2:06:48am 18/Feb/1985 A version of the main source?
TB Main Thursday 03_36_31 pm 21_02_85.txt   49KB 3:36:31pm 21/Feb/1985 A version of the main source?
TB Main (Half-size) Thursday 04_13_17 pm 21_02_85.txt   49KB 4:13:17pm 21/Feb/1985 A version of the main source?
TB Main 4b Friday 04_23_48 am 29_03_85.txt   71KB 4:23:48am 29/Mar/1985 A main source?
TB Subs + N 7a Friday 01_53_02 pm 29_03_85.txt   75KB 1:53:02pm 29/Mar/1985 A version of some common subroutines source?
tank_amiga.txt   111KB 1988?? 68K battlezone demo for Commodore Amiga.
ta_data.bin   2048 bytes 1988?? 68K battlezone data file, sin lookup? Part of demo for Commodore Amiga.
ta_mountains.bin   24KB 1988?? 68K battlezone data file, mountain data lookup? Part of demo for Commodore Amiga.

Return of the Body Snatchers (PC) (c) Simon Brattel...
This ran smoothly at frame rate on a 20MHz '286, if you run it under XP or Vista on a modern PC it jerks badly - but you can get around this by running it under DOSBox, a DOS emulator that I highly recommend.
ROTBS.exe   69KB 1992 Return of the Body Snatchers - a PC follow up to IOTBS.
ROTBS.ZIP   606KB 1992 All of the source code for Return of the Body Snatchers... Assembles under MASM or TASM.
ROTBS.ICO   766 bytes 1992 An icon for it
rotbs_avi.zip  3557KB 18/Sep/2008 A zipped avi file showing me entirely failing to survive on the easy setting. (Some unusual extra options set)...

Doctor Strangefruit (PC) (c) Simon Brattel and Dave De-Leuw...
An unfinished platform game. Would have been nice, I suspect.

This ran smoothly at frame rate on a 30MHz '486, if you run it under XP or Vista on a modern PC it jerks badly - but you can get round this by running it under DOSBox, a DOS emulator that I highly recommend. If you use DOSBox, make sure you give the game enough CPU cycles. These are shown in the caption line. While it's playing hit Ctrl-F12 until the game runs very smoothly. It needs about 12,000...

[snip]
Strangefruit removed a dog-eared, loose-leaf notebook from an inside pocket and placed it reluctantly on the desk, as if parting with an art treasure of great value.
Pratt reached over and picked it up, holding it by one corner, as one might retrieve a piece of used toilet-paper that had missed the bowl. It was not in keeping with Pratt's idea of documentation and did not appear to merit being on such an executive desk.
"Might I ask what this is about ?" asked Pratt, who didn't want to have to read it to find out.
[snip]

STRANGE1.ZIP   212KB 1993-ish Half the sources and executables. Put in ("C:\whatever")
STRANGE2.ZIP   147KB 1993-ish Other half of 'em. Put these in a subdirectory "GAMECODE" under the gameroot ("C:\whatever\GAMECODE")... Run G.BAT

Graham Stafford's files

graham_games_src.zip  880KB 26/Aug/2010 Most of Graham Stafford's games as Z80 source. 2112, Kat Trap, Nexor, Nosferatu and On The Run... Tidier sources than mine, the utter bastard!
on_the_run_zeus.zip  48KB 27/Aug/2010 Graham's "On The Run" for the Spectrum in Zeus-compatible source format. Revised (27 Aug 2010) so it uses $NNNN hex numbers.
kat_trap_zeus.zip  116KB 30/Aug/2010 Graham's "Kat Trap" for the Spectrum in Zeus-compatible source format.
hexconv.exe   170KB 27/Aug/2010 A windows tool that reads source files containing leading-zero hex numbers and converts them all to $format, so 01234 => $1234, for example. Also strips the strange characters (0x8A) out of Grahams sources.

Various sources/bits and pieces

emu_hb.zip  195KB 1979 One of my first programmes and a PC emulator to run it - a space invaders game (of course). Written in 1979 or so... Unzip the files into a directory and run EmuHB.exe
sp_inv.asm  35KB 1984 Ye Olde space invaders. Spectrum. This was hidden in Dark Star (hold I down during load)... Compatible with the Zeus assembler provided on this site. See above...
invad.txt  35KB 9/Dec/1989 Another Z80 space invaders, nicer source. This was written for Virgin, part of some airline games console...
tetris.txt  17KB 1/Apr/1991 A version of tetris for the PC. Complete source for the game, but without some other files it can't be linked.
AVR_Invaders.rtf  96KB 16/May/2005 Same again, written in AVR assembler (Zeus format - converted from the Z80 source).
si_emu.zip  204KB 16/May/2005 A PC emulator for the AVR space invaders - i.e. an AVR emulator written in Delphi.
MartinSource.zip  13KB 1984? The unfinished source for Martin's spinning around game. (c) Martin Horsley.
Morse thingy + mess Tuesday 05_38_30 pm 26_02_85.txt   6188 bytes 5:38:30pm 26/Feb/1985 A morse code transmitter that pissed wookie off...
Spectacle Editor am 12_54 11_9_84.txt   33KB 12:54:00pm 11/Sep/1984 The text editor used for editing Spectacle pages
Ass11.txt   83KB 11:47:32pm 4/Aug/1986 Part of the development tools, a Z80 cross assembler.
Ass68.txt   187KB 4:21:00am 10/Sep/1990 Part of the development tools, a 68000 cross assembler.
Editor20.txt   96KB 1985? Part of the development tools, a text editor.
ns32000.zip   90KB various 1988 Some NS32000 development files. Assembler, editor, mandelbrot and hopalong demos. Basic OS.
msx.zip  76KB 1986 Various MSX files. A memory manager written for Abdul - the code that got me kicked out of my own company... [grin]
da_z80.asm   96KB 10:14:02am 22/May/1989 Some typical Design Design commercial code. Part of an air traffic control console. (slight mods for zeus-ish)
rel_4.asm   117KB 01:48:31pm 25/Jun/1991 Some typical Design Design commercial code. A solder reflow oven controller. (slight mods for zeus-ish)
vibe.rtf  207KB 2007 Source code for an AVR based vibrator. Replacement for the PIC in an Ann Summers toy - who'd want their friends having sex with a PIC?

Games-related files provided by "Friends of Design Design"...
Contributions from third-parties - received with thanks :)
desdes_loader.asm  10KB 29/Oct/2008 [revised] Robert Crawford has kindly used Diana to disassemble the tape loader we used to use on the Spectrum. This is the reconstructed source...
Rather better commented than the original, by the look of it...
invade_load_v1.0.def  2567 bytes 29/Oct/2008 [revised] His Diana definition file
inv_load.bin  63KB 21/Oct/2008 The binary he was working from.

Various pictures

Basil.jpg  1043KB Basil, still running perfectly after more than 23 years... Bet the machine the monitor's standing on won't...
B_Side.jpg  891KB Basil from the side. CPU, Misc, VDU, FDC, SCSI and flying winchester boards.
B_CPU_T1.jpg  1042KB This is Basil's main CPU board, component side.
B_CPU_B1.jpg  1088KB This is Basil's main CPU board, wiring side. Wiring this took a couple of days...
B_Detail.jpg  935KB Closeup of the wiring.
zeuspara.jpg  205KB 23/Oct/2008 A picture of zcl.exe running as a backend assembler in my ParaSys IDE.
Third party tools and utilities:
  Adobe Acrobat Reader
(necessary to read the PDF files on this site)
DOSBox   The DOSBox PC emulator - this will allow the PC files to be run perfectly, even under windoze XP and Vista. Thanks Bill :(

 

Home Author: crem@cix.co.uk
Copyright 2008, Design Design. All rights reserved.