anchor.diff:  /// [2] that implements these instructions.
   ///
   /// The [VM] provides a 16-bit address space; code segment and runtime data
  -/// share 2^16B ≈ 65kB. All opcodes have a size of 4 bytes, where the two lower
  -/// bytes are reserved for one immediate argument. Because the VM has no
  +/// share 2^16B ≈ 65kB. The instruction set design is heavily inspired by the
  +/// [Java bytecode instructions][3]: All opcodes have a size of 1 byte, and the
  +/// following 0..8 bytes store one immediate argument. Because the VM has no
   /// general-purpose registers, the instruction set is implemented as a stack
   /// machine.
   ///
   /// [1]: https://en.wikipedia.org/wiki/Instruction_set
   /// [2]: https://en.wikipedia.org/wiki/Virtual_machine
  +/// [3]: https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings
   library minic.src.cmachine;
   
   import 'dart:math' show pow;
  
positive.code:   List<Instruction> program;
  
    /// Number of bytes in the VMs memory that is reserved for the [program].
    int get codeSegmentSize => program.length * instructionSize.sizeInBytes;
  
    /// Points to the lowest currently used byte of the stack (in [memory]).
    int stackPointer;
  
negative.code:     vm.framePointer = vm.stackPointer;
    }
  
    String format(int value) => 'call $value';
  }
  
  /// Completes the runtime context of a function invocation by setting the
  