Z-machine versions: Difference between revisions
From IFWiki
(There's also a draft for Z-machine 1.2 out there) |
(Glulx generated with same toolchain that makes most Z-machine adventures) |
||
Line 3: | Line 3: | ||
* Versions 1-6 Created by [[Infocom]] in the 1980s. | * 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#Assorted_Z-machine_interpreters|Z machine interpreters]] support z7 and z8 story files. | * [[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#Assorted_Z-machine_interpreters|Z machine interpreters]] support z7 and z8 story files. | ||
* Adventures which are too big for even z8 can use Andrew Plotkin's [[Glulx]] virtual machine, which has been around since the early oughts (first 2000s decade). | * Adventures which are too big for even z8 can use Andrew Plotkin's [[Glulx]] virtual machine, which is generated using the same toolchain used to make most Z-machine adventures. Glulx has been around since the early oughts (first 2000s decade). | ||
* In 2013, Zzo38 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 [http://mirror.ifarchive.org/indexes/if-archiveXinfocomXinterpretersXspecification.html Z-machine specification] 1.0, nor in the 2006 [http://mirror.ifarchive.org/if-archive/infocom/interpreters/specification/ZSpec11.txt Z-machine specification v1.1] (the most recent version), nor in the draft [http://curiousdannii.github.io/if/zspec12.html Z-machine specification v1.2]; the only known [[Z-machine#Assorted_Z-machine_interpreters|Z machine interpreters]] that support these versions are Zzo38's own [[Aimfiz]] and [[Fweep]]. | * In 2013, Zzo38 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 [http://mirror.ifarchive.org/indexes/if-archiveXinfocomXinterpretersXspecification.html Z-machine specification] 1.0, nor in the 2006 [http://mirror.ifarchive.org/if-archive/infocom/interpreters/specification/ZSpec11.txt Z-machine specification v1.1] (the most recent version), nor in the draft [http://curiousdannii.github.io/if/zspec12.html Z-machine specification v1.2]; the only known [[Z-machine#Assorted_Z-machine_interpreters|Z machine interpreters]] that support these versions are Zzo38's own [[Aimfiz]] and [[Fweep]]. | ||
Revision as of 18:26, 14 January 2014
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 z7 and z8 story files.
- Adventures which are too big for even z8 can use Andrew Plotkin's Glulx virtual machine, which is generated using the same toolchain used to make most Z-machine adventures. Glulx has been around since the early oughts (first 2000s decade).
- In 2013, Zzo38 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 v1.1 (the most recent version), nor in the draft Z-machine specification v1.2; the only known Z machine interpreters that support these versions are Zzo38's own Aimfiz and Fweep.
XOR support
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).