The first version, VP1, was the basis of its parallel processing multimedia OS and platform, TAOS. VP1 supported a RISC-like instruction set with 16 32-bit registers, and had data types of 32- and 64-bit integers and 32- and 64-bit IEEE floating point numbers in registers, and also supported 8- and 16-bit integers in memory.
The second version, VP2, was released in 1998 as the basis of a new version of the portable multimedia platform, first known as Elate and then as intent. VP2 supported the same data types and data processing operations as VP1, but had additional features for better support of high level languages such as demarcation of subroutines, by-value parameters, and a very large theoretical maximum number of registers local to the subroutine for use as local variables.
The structure of VPCode, the Virtual Processor's machine code, was intended to be able to represent the constructs required when compiling languages such as C, C++ and Java, and to allow efficient translation into the machine code of any real 32- or 64-bit CPU.