Menu

Tree [r3] /
 History

HTTPS access


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...

Read Me

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