Zeus Z80 Assembler stuff... (Last update - 02:15:06 11/10/2024) |
Software |
A few years ago I dug out what I could find of my Z80 games sources and looked about for a PC cross-assembler that could build them, and to cut a long story short the available assemblers ranged from utterly awful things that didn't even handle standard Z80 syntax to a couple of barely adequate assemblers that were less sophisticated than the in-house assembler we were using back in the 80's... So I've thrown a version of that (Zeus) together and provided it here. It has an IDE and emulator built in for debugging, and produces .szx and .tzx files and all the other formats under the sun files for use with Spectrum emulators. Over time I have added bits and pieces to this version of Zeus and it now includes a fairly capable Z80 emulator, which can emulate the ZX Spectrum 48K/128K hardware pretty accurately, well enough to handle code that uses accurate timing to produce border and attribute special effects, as well as emulating a simple Z80 system capable of running CP/M. 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 and emulator. Use it to assemble the spectrum sources on this website... | ||
Now emulates 48K/128K ZX Spectrum timing accurately, plus NASCOM-2, a CP/M SBC, an old homebrew of mine and something called the Z80 Membership Card... Includes the Diana disassembler - this can convert Z80 binary to useful source code. | ||
zeus.exe 1790KB | 11/Oct/2024 | (Version 4.14) - windows application v4.14 Various changes, see history text. |
zcl.exe 745KB | 9/Oct/2024 | (Version 4.14) a command line only version. Error messages similar to gcc format. Usage "zcl filename". |
zeus.txt 168KB | 9/Oct/2024 | (Version 4.14) - The about/history file for those who use the command line version. |
zeus.zip 2419KB | 11/Oct/2024 | (Version 4.14) - same again but zipped |
examples.zip 212KB | 30/Jan/2018 | All the Zeus example sources below in one zip file. |
zeus1.zip 60KB | 30/Jan/2020 | Reconstructed source-code for the "original" Spectrum release of Zeus. |
Utilities. | ||
sourceconvert.exe 653KB | 30/Mar/2017 |
v1.01 This is a windows app that can convert old and nasty Z80 sources to bright, shiny new ones... Improved to deal with those strange people who put tabs between mnemonics and operands. Some other improvements in comment addition. Removes octal, removes pointless full-stops before pseudo-ops, converts repulsive 0xxxxH to $xxxx, stuff like that. It's far from perfect, but it can really help when importing old files to Zeus. Now with added colon fiddling! If you like your colon fiddled with, you'll love it... |
tzx_display.exe 666KB | 19/Feb/2019 | v1.31 Quick And Dirty windows app I hacked together for displaying the contents of tzx files. Now with batch mode, see the "help" menu. |
zeus68k.exe 1052KB | 27/Sep/2017 | A 68K version of Zeus that might be useful to assemble 68K files. See the about/history. |
zeus6x09.zip 1209KB | 22/Jan/2018 | A 6809 and 6309 version of Zeus. Rather more competent than the usual simplistic two pass Motorola assemblers. See the about/history. |
zeusscmp.exe 4000KB | 27/Sep/2023 | A SC/MP version of Zeus. |
Example source files for the Zeus Z80 Assembler. | ||
nascom.zip 241KB | 13/Dec/2015 | Sources for NAS-SYS3, BASIC, various games including The Keys of Kraal. |
cpm_app.zip 1841KB | 22/Jan/2018 | All you need for an example of building/testing a CP/M application to work with Zeus's CP/M emulator. Also contains a virtual cpm drive file full of cp/m software. |
cpm_sources.zip 840KB | 6/Sep/2016 | Grant Searle's CP/M utilities and sources converted to work with Zeus's CP/M emulator. (cpm_app.zip is more recent, use that now) |
homebrew.zip 4231 bytes | 15/Dec/2015 | A space invader game I wrote in binary back in 1978 or so... it crashes when the game ends; the recovery from reel to reel tape was imperfect. |
membership.zip 2142KB | 23/Dec/2015 | The OS for the "membership card" computer emulator. |
zeus_ex1.asm 3029 bytes | 28/May/2016 | Some documentation for it |
zeus_ex2.asm 13KB | 28/May/2016 | [Revised] Some more documentation for it |
zeus_ex3.asm 5468 bytes | 28/May/2016 | Some more documentation for it |
zeus_ex_if.asm 2359 bytes | 28/May/2016 | Demo source: Conditional assembly - if/elseif/else/endif |
zeus_ex_loop.asm 1621 bytes | 28/May/2016 | Demo source: Conditional assembly - loop/lend |
zeus_ex_repeat.asm 1503 bytes | 28/May/2016 | Demo source: Conditional assembly - repeat/until |
zeus_ex_while.asm 1978 bytes | 28/May/2016 | Demo source: Conditional assembly - while/wend |
zeus_ex_files.asm 3281 bytes | 28/May/2016 | Demo source: Covering multiple source files, output file formats and binary data (updated) |
zeus_ex_struct.asm 4672 bytes | 28/May/2016 | Demo source: Structures (well, -ish) |
zeus_ex_ld16.asm 5499 bytes | 28/May/2016 | Demo source: 16-bit load pseudo-ops |
zeus_ex_macros.asm 15KB | 28/May/2016 | Demo source: Macros |
zeus_ex_procedures.asm 21KB | 28/May/2016 | Demo source: Procedures (local label support) (includes print code example) |
zeus_ex_segments.asm 6856 bytes | 28/May/2016 | Demo source: Segments |
zeus_ex_sym.asm 3218 bytes | 28/May/2016 | Demo source: exporting the symbol table |
zeus_ex_maths.asm 1597 bytes | 28/May/2016 | Demo source: use of the expression evaluator |
zeus_ex_editor.asm 4585 bytes | 28/May/2016 | Some documentation for the editor. |
zeus_ex_options.asm 5989 bytes | 28/May/2016 | [New in v2.10] Some documentation for the new assembler options. |
zeus_ex_graphics.asm 3437 bytes | 28/May/2016 | [New in v2.10] Some documentation for the DG pseudo-op - eases graphical character definition. |
zeus_ex_v222.asm 50KB | 28/May/2016 | [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 6119 bytes | 28/May/2016 | [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 | 28/May/2016 | [New in v2.64] Example documentation and source code for features added in v2.64 of Zeus (single-step and breakpoints, etc). |
zeus_ex_v280.asm 43KB | 28/May/2016 | [New in v2.80] Example documentation and source code for features added in v2.80 of Zeus (profiling, etc). |
zeus_ex_v352.asm 40KB | 30/Mar/2017 | [New in v3.52] Example documentation and source code for features added in v3.52 of Zeus (scatterloaded tzx files, 128K loading, etc). |
zeus_ex_linkedlists.asm 33KB | 28/May/2016 | Demo source for some macros that produce linked-list pointers. Amusement really. |
zeus_ex_pages.asm 35KB | 30/Mar/2017 | Example documentation and source code for generating 128K files. |
zeus_ex_simple.asm 5375 bytes | 30/Jan/2018 | A basic example for a simple Z80 homebrew machine with just a serial port, also demonstrates writing various file formats. |
zeus_ex_noflow.asm 4776 bytes | 30/Jan/2018 | Examples of Zeus "noflow" and "zeusdatafollows" and flow warnings in general. |
zeus_ex_sprites.asm 23KB | 14/Jul/2017 | Example code to test the Next sprite support. (Changed sprite port from $xx55 to $xx5B to reflect current hardware changes) |
zeus_ex_tape.zip 156KB | 11/Feb/2020 | Example code demonstrating the "output_tzx" options. |
sprites.scr 6912 bytes | 14/Jul/2017 | A loading screen for the above. |
spritetest.tap 9350 bytes | 14/Jul/2017 | A pre-built tap file for the above. |
spritetesta.tap 2779 bytes | 14/Jul/2017 | A pre-built tap file for the above, saved with mode 2 because ZEsarUX doesn't seem able to load any other kind of tape file. |
z80test.asm 105KB | 30/Mar/2017 | An old CP/M Z80 test app converted to run on the Spectrum. Useful proportional print routine, too, and an example of multipass. |
tony.asm 23KB | 10/Jun/2016 | [Needs v3.00 or later] Example of border timing graphics - draws Tony and animates him. |
hott2015src.zip 78KB | 30/May/2016 | [Needs v3.00 or later] 2015 version of Halls, demonstrates many things including "tzx" file generation. |
nos_zeus.zip 150KB | 8/Jul/2016 | Another complete game - Nosferatu The Vampire (Spectrum) |
tb.zip 51KB | 30/Mar/2017 | A working reconstruction of the original Amstrad CPC game. Requireds Zeus v3.50 or later. |
hottnext.zip 82KB | 11/Feb/2020 | Source code for the Next test release of Halls. Also an example of using ParaSys for remote development, but still test code. Nag me (PM) for instructions. |
Various games and applications for Zeus. | ||
fp_zeus.zip 90KB | 29/May/2016 | A large application - Forbidden Planet as a multi-source file. (slightly revised for Zeus v1.7) |
on_the_run_zeus.zip 49KB | 29/May/2016 | Another complete game - On The Run (Spectrum) |
kat_trap_zeus.zip 160KB | 29/May/2016 | Another complete game - Kat Trap (Spectrum) |
galactic.zip 457KB | 1984? | The unfinished source for Galactic Patrol in a form that zeus can assemble. (aka. Martin's spinning around game.) (c) Martin Horsley. |
Various examples for Diana. | ||
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) |
Halls of the Things sources (c) Simon Brattel, Martin Horsley and Neil Mottershead. | ||
hott2015src.zip 78KB | 30/May/2016 | [Needs v3.00 or later of Zeus] 2015 version of Halls, has user definable keys |
hottvega_src.zip 64KB | 14/May/2018 | The sources for the Spectrum Vega version of the game |
hott2012src.zip 66KB | 30/May/2016 | The sources for a new emulator-friendly ZX Spectrum release of Halls of the Things. |
hott2011rc_src.zip 59KB | 30/May/2016 | The sources for a release candidate of a new emulator-friendly ZX Spectrum release of Halls of the Things. |
halls.asm 242KB | 30/May/2016 | 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 114KB | 28/May/2016 | 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 381KB | 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 | 28/May/2016 |
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 90KB | 29/May/2016 |
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] |
Graham Stafford's Spectrum game's sources | ||
on_the_run_zeus.zip 49KB | 29/May/2016 | Graham's "On The Run" for the Spectrum in Zeus-compatible source format. Revised (27 Aug 2010) so it uses $NNNN hex numbers. |
nos_zeus.zip 150KB | 8/Jul/2016 | Another complete game - "Nosferatu The Vampire" for the Spectrum in Zeus-compatible source format. |
kat_trap_zeus.zip 160KB | 29/May/2016 | Graham's "Kat Trap" for the Spectrum in Zeus-compatible source format. |
graham_games_src.zip 880KB | 26/Aug/2010 | Most of Graham Stafford's games as M80 (CP/M) Z80 sources. 2112, Kat Trap, Nexor, Nosferatu and On The Run... Tidier sources than mine, the utter bastard! |
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. |
CP/M files - these are mostly conversions from Grant Searle's Z80 CP/M machine project. | ||
Start out by assembling boot.asm | ||
cpm_sources.zip 840KB | 6/Sep/2016 | Grant Searle's CP/M utilities and sources converted to work with Zeus's CP/M emulator. |
cpm_drive.zip 828KB | 10/Dec/2015 | A sample CP/M "drive"... the emulator uses a 128MB file to emulate a CF memory card. This is a zipped copy of that file containing a set of useful CP/M utilities. |
NASCOM files | ||
Start out by assembling nassys.asm | ||
nascom.zip 241KB | 13/Dec/2015 | Sources for NAS-SYS3, BASIC, various games including The Keys of Kraal. |
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 examples of ZX Spectrum tape loader files generated by Zeus's loader | ||
These are examples of playing with the options available with Zeus's tape loader. It generates tape files with a single statement, with options for the loading screen (shown here) including 128K files with data scattered across any or all of the pages. You just tell it which parts of which page you want the tape file to include and it does everything for you... | ||
h0.tzx 25KB | 31/Mar/2017 | Halls with option 0 (Normal Design-Design neat loading) |
h1.tzx 25KB | 31/Mar/2017 | Halls with option 1 |
h2.tzx 25KB | 31/Mar/2017 | Halls with option 2 |
h3.tzx 25KB | 31/Mar/2017 | Halls with option 3 |
h4.tzx 25KB | 31/Mar/2017 | Halls with option 4 |
h5.tzx 25KB | 31/Mar/2017 | Halls with option 5 |
h6.tzx 25KB | 31/Mar/2017 | Halls with option 6 |
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. |