There are at least 10 different versions of the Z machine out there:
- Versions 1-6 Created by Infocom in the 1980s
- Graham Nelson made some minor changes in the 1990s to allow for larger story files, creating versions 7 and 8 of the spec. Most, if not all, modern Z machine interpreters support v7 and v8 story files.
- Zzo38 has more recently created versions 9 and 10 of the spec, with a number of extensions allowing even larger story files, finally giving Z-machines XOR support, and many other changes. These versions are not described in the 1997 Z-machine specification 1.0 nor in the 2006 Z-machine specification 1.1 (the most recent version); the only known Z machine interpreters that support these versions are Aimfiz and Fweep
v9 and v10 story files give Z-machines XOR support by defining the 2OP instruction 29 (1D in hex) as being BXOR, with works like BOR or BAND, but performs a binary exclusive OR operation. Note that Glulx has always had XOR support (via the "bitxor" operation).