ZVM Code
Status: Alpha
Brought to you by:
rcr
| File | Date | Author | Commit |
|---|---|---|---|
| docs | 2008-12-11 | rcr | [r3] Adds base files for Blorb support. Adds Wiki & ... |
| stories | 2008-12-11 | rcr | [r3] Adds base files for Blorb support. Adds Wiki & ... |
| tests | 2008-12-11 | rcr | [r3] Adds base files for Blorb support. Adds Wiki & ... |
| zvm | 2008-12-11 | rcr | [r3] Adds base files for Blorb support. Adds Wiki & ... |
| AUTHORS | 2008-12-11 | rcr | [r1] Initial commit of zvm code (based on the Google... |
| LICENSE | 2008-12-11 | rcr | [r1] Initial commit of zvm code (based on the Google... |
| README | 2008-12-11 | rcr | [r3] Adds base files for Blorb support. Adds Wiki & ... |
| run_story.py | 2008-12-11 | rcr | [r1] Initial commit of zvm code (based on the Google... |
| run_tests.py | 2008-12-11 | rcr | [r1] Initial commit of zvm code (based on the Google... |
Welcome to ZVM
===============
This project is a work-in-progress. It is a continuation of the
original ZVM project. The main differences between the current
and the previous versions of ZVM are that support for Z-code
versions 7 and 8 has been added, along with support for the Blorb
specification, and that the dependence on the Glk library has been
dropped (so it is a pure Python project).
More information about the current follow-up project can be found at
http://sourceforge.net/projects/zvm/
The original ZVM project (and its description) can be found at
http://code.google.com/p/zvm
What is ZVM?
============
The goal of the ZVM project is to write a pure-python implementation
of a Z-machine, a virtual computer architecture that executes
interactive fiction stories written in a special language, called
Z-code.
The current goals of the project include:
* No user interface: ZVM implements only the actual Z-machine. It
is meant to be used as the backend in other programs that
provide a user interface. (Except maybe for a basic console/
terminal UI.) As a consequence it will also not provide any
support to play sound files or display images.
* Compatibility: ZVM will implement a Z-Machine architecture
according to the official specification.
* Coverage: Over the years, the Z-machine architecture was revised
and refined: 8 versions are known to exist. ZVM currently aims
to support Z-machine versions 1 through 5 and 7 through 8 (so
version 6 is not in scope).
* Programming language: ZVM is written exclusively in the Python
programming language, as an importable code module.
* Readability: speed is not an issue when emulating a 28-year old
virtual machine on a modern computer, so we always shoot for
readable code over clever optimizations.
Code
====
All code is covered by the BSD license, found in the LICENSE file.
You can check out the latest code from Subversion here:
http://zvm.svn.sourceforge.net/svnroot/zvm
You can check out the code for the previous version from Subversion here:
http://zvm.googlecode.com/svn/trunk
Project contents
================
README this file
LICENSE the BSD license
run_tests.py script to run automated tests
run_story.py script to execute a story file
tests/ automated tests for the module
stories/ some sample stories to interpret
zvm/ the actual ZVM python module
docs/ notes, diagrams, instructions
Wiki
====
The original ZVM project has two wiki pages showing the conceptualized
general design and user interface design:
http://code.google.com/p/zvm/w/list
Note that the current project has dropped the support for Glk.
Viola
=====
For a similar project (a Z-Machine interpreter written in Python), have a
look at Viola (not updated anymore after version 0.7.2):
http://sourceforge.net/projects/viola/
http://www.ifarchive.org/indexes/if-archiveXinfocomXinterpretersXviola.html