We're on Telegram

We have created a public Telegram chat room for everybody interested in Cambridge Z88 news, releases, bug reports and general discussions.  Use this link, The public group name is @cambridgez88.

It's been a long time coming. Finally the complete OZ ROM and Z88 application builder tools are available in latest edition, 2017.4. This release supports building OZ V4.7 ROM and newer source code releases. We have also added Arm7 as distribution platform as for Linux Chromebook and myriad of Arm-based tinker boards such as the Raspberry Pi2/3. Installers are available for Windows, Linux and MacOS for Intel 32/64 bit platforms.

Release notes & downloads can be found here: Z88 Assembler Workbench 2017.4 Release Notes

New ZEsarUX 5.0

Hi. I have released a new version of my emulator ZEsarUX. 

Finally I have succeded emulating Sinclair QL. I dedicated a lot of hours trying to guess how the keyboard work.
There is little documentation and I had to do lots of dissassemblies of the ROM and testing keyboard to know how it work...
So, hard work, this is a Quantum Leap, so this is a new major version, 5.0!

I will only post here changes related to Z88 or to the whole emulator, excluding other machines like Spectrum, etc.

You can also read the full Changelog here:

So, this is the short change log:

Added Sinclair QL emulation
Added remote command protocol. You can do enhanced debugging on ZEsarUX by using a telnet client.
There are a lot of commands, even many commands exclusive to this protocol and not found on the GUI, like:
* load-source-code
* hexdump-internal
* set-register

Added Easter Egg ;)
Added setting to write configuration file
Added autosave snapshot at fixed interval
Added File Viewer
Added support for drag&drop on Mac OS X, SDL2
Added support for OpenGL rendering on Mac OS X Cocoa driver
Added Man Software GUI Style
Added setting to disable autoframeskip
Added setting to set breakpoints from command line
Improved Debug CPU Window: now you can switch between different views:
1) 1 opcode, cpu registers, other internal registers
2) 9 opcodes, other internal registers
3) 15 opcodes
4) 9 hexdump lines, other internal registers
5) 15 hexdump lines
Fixed text to speech routine when sending non-ascii character
Fixed bug mapping real joystick buttons and axes with same number
Updated Z88 OZ V4.7
Some other minor bugfixes and improvements



Project hosting of the Z88 Assembler Workbench tools, OZvm and EasyLink2 are now hosted on and Release of latest binaries of assembler tools OZ on all platforms follows in a couple of weeks, to be announced here.

OZvm V1.2 released

More than two years of major changes and improvements have gone into this release, while developing several OZ ROM releases. We now can support a native-compiled application on all major desktop platforms. Read the release notes for more details.

OZ V4.7 ROM released

We're proud to announce our latest ROM release for the Cambridge Z88, V4.7; contains new features and lots of improvements. Release notes and download links HERE


I have uploaded a new version of ZEsarUX emulator.

You can download it from the project web page:

This release comes with a lot of changes, you can see the full changelog here:

The following are the Z88 and general related changes:

Version 4.2. 5 December 2016 - Rescue on Fractalus edition

Added Z88 Hybdrid (RAM+Eprom) Card support

Added Sam Coupe GUI Style

Added Z88 generic card browser

Added Z88 card browser when copying from eprom/flash card

Fixed Z80 cold start registers

Fixed Z88 bug when smart loading all slots were ejected

Fixed handling symbols (.  , : / - + < > = ' ( ) ") on menu for machines: Z88, CPC, Sam Coupe

Fixed enabling some memory and debug interfaces, so you can enable and disable them in any order you want

Fixed drawing of some menu items that refresh continuously: waveform, ay registers, cpu stats, debug cpu, visualmem

Improved menu. Now all settings are on a separate "Settings" menu

Improved debugger:

*Individual breakpoints can be disabled

*Breakpoints are fired by default when condition changes from false to true. And they are only fired again when condition changes from true to false and false to true

Improved windows with text content. Now a progress symbol (*) is shown

Updated Z88 OZ V4.6.2

Some other minor bugfixes and improvements

I hope you like it (smile)



Z88 FPGA running!

With the help of Frederic, a complete rewrite of the Z88 FPGA Verilog implementation has been done. The machine works beautifully at 6.125 MHz on a DE1 board (old Cyclone II FPGA). OZ is entering a new era...


I have uploaded a new stable version of my emulator ZEsarUX 4.1

You can download it from the project page:

This version adds two new machines: Sam Coupe and TBBlue/ZX Spectrum Next

Other important changes:

-Added DivIDE emulation
-Added tape loading at max speed
-Added turbo modes: native support for ZX-Uno, Prism, Chloe and TBBlue, and manual for other machines
-Added menu themes
-Improved debugger with new features: t-states partial counter, breakpoints on reading/writing port/memory
-Added On Screen keyboard, useful when using joystick

To view the full changelog:

I hope you like



Full description of OZ localization is described in Developers Notes. All ISO, key and fonts tables are detailed. Notice that OS_Nq / Nq_Rds has been upgraded to full ISO compliance. It allows usage of ISO characters in filing system.


The tools necessary for compiling Cambridge Z88 software have finally been released as ready-made installers for all major desktop platforms. For many years, these tools were work-in-progress development alongside the evolution of the Z88 ROM sources and 3rd party applications. Often, internal releases were distributed directly among developers, when the latest and greatest feature were ready.

No more.

Finally, both Mpm - the Z80 macro assembler - and Z88card - a binary file card manager tool for generating Z88 ROM and application card images, are ready for public use.

These tools combined together form the Z88 Assembler workbench, which is used to both compile the Cambridge Z88 ROM and a good bunch of 3rd party Z88 applications (FlashStore, EazyLink, ZipUtils, etc).

Installers are available for Linux 32/64bit, Windows 32/64bit and Max OSX (64bit), from SourceForge File Area:

We have also produced a step-by-step guide video that explains the process of installing the tools, downloading latest OZ source code, compiling it and installed into the OZvm emulator, for your viewing pleasure:



On the hardware front, the Verilog HDL implementation of the Z88 has reached a major step. All the main blink functions are implemented and the screen rendering looks nice.

Emulation shows that it seems to work. Machine starts :

And enters the Index.

PS2 keyboard interface and VGA interface are implemented (but not tested).

Transfer on a real hardware development board will follow in the coming weeks. Exciting !



I have uploaded a new version of my emulator ZEsarUX 4.0.

You can download it from the project web page:

This version adds some new machines:
-Jupiter Ace
-Chloe 140 SE
-Chloe 280 SE
-Timex TS 2068
-Amstrad CPC 464 (experimental)

So, ZEsarUX is the first and the unique emulator of Chloe 140/280, Prism, ZX-Uno and Inves Spectrum+.

Other changes:

Added Pentagon Timing support
Added AZERTY keyboard support
Added ZGX Sprite Chip emulation
Added Allow Write on ROM setting
Added Turbo Setting to Input Spool File
Added Redefine keys setting
Added ULA early/late timings setting
Changed .ZX snapshot to version 6, with:
*New machines on snapshot supported: ZX-Uno, Jupiter Ace, Chloe, Timex, Amstrad CPC 464, Prism
*ULAplus state and palette
*Timex registers status
Added Hotswap to 48k on all Spectrum machines
Fixed Timex mode 512x192
Fixed contended memory timings on Spectrum 128k and +2A
Fixed top border size (56 instead of 48 pixels), according to Chris Smith "The ZX Spectrum ULA" book
Fixed cursor keys reading and Home key on Raspberry Pi
Improved interlaced. Now it can be enabled with ULAplus, Timex or Spectra video modes. But not with scanlines
Improved Storage menus. All media: tapes, z88 file cards, zxuno spi flash, mmc cards, timex cards are located on new "Storage Settings" Menu
Improved Machine Selection menu. Now it's classified by manufacturer

I hope you like it


I've been recently digging in the OZ process management to understand PID or Dynamic Process Id. This note aims at clarifying differences between static and dynamic application handles.

This information is given by OS_Nq, NQ_WAI, id est Enquire Who Am I. This system call returns the static handle of the application, unique to application and its dynamic process handle. The static handle is unique to each application. Its attribution has been recently modified by installable applications. This number is in fact its order according the slot number.

  • 1-31 : application in internal slot, Index, the first application has always a static handle number 1, Diary number 2, Pipedream number 3...
  • 32-63 : applications in slot 1
  • 64-95 : applications in slot 2
  • 96-127 : applications in slot 3
  • 128-255 : installed applications in RAM

The dynamic process id (PID) refers to the process, 'the suspended activity in Index'. It is unique to each process, thus multiple instantiations of Pipedream will have different PID. Only Index has always the same since it is the first applications and has always only one instantiation. Its PID is 1. A range of 127 are available in OZ.