Copyright © 2001, 2002 by Michael J. Roberts. Preliminary version 15 March 1999.

The T3 Virtual Machine

T3 is a new virtual machine, designed for interactive fiction.

The T3 VM is the next generation of the TADS Virtual Machine. This new VM is a replacement for the TADS 2 VM, which has been in use for nearly ten years. The new design builds on the successes of the TADS 2 VM, and addresses many of its limitations.

This specification is intended to provide programmers with the information necessary to create their own implementations of the T3 VM, compilers that target the VM, and tools that work with T3 binary files. This documentation is copyrighted, but the author explicitly grants permission for anyone to create implementations of the T3 VM and tools that work with T3, including compilers, linkers, and any other tools that manipulate T3 binary files.

This document contains a great deal of information beyond a strict specification of the virtual machine. In particular, the Machine Model chapter describes a great deal of the design of the "reference implementation" of the VM created by the author. An independent implementation is certainly not obliged to make the same choices, so a potential implementor should keep in mind that the Machine Model chapter is not by and large normative. The chapters that would likely be of greatest interest to a potential independent implementor would be those on the Instruction Set, Image File Format, Portable Binary Encoding, and Character Mapping.

Contents

Design Philosophy
Design Goals
Notation and Conventions
Machine Model
The Metaclasses
Byte-code Instruction Set
Image File Format
Portable Binary Encoding
Character Mapping
Debug Records

Appendices
Metaclass Identifier List
Saving and Restoring State





Copyright © 2001, 2002 by Michael J. Roberts. Preliminary version 15 March 1999.