anchor.diff:      public
         ibuf, obuf : string; { input/output buffers (255 chars) }
         ip, rp, wp : byte;
  -      data, addr : TStack;
  -      memory     : TByteArray;
  +      data, addr : TStack<variant>;
  +      memory     : GArray<variant>;
         procedure RunOp( op:OpCode );
         procedure Step;
       end;
  
positive.code: interface uses classes, arrays, umin, kvm;
  
  type
  
    TInt32Array = GArray<Int32>;
    TByteArray  = GArray<Byte>;
  
    TStack = class
      slots : TInt32Array;
      count : byte;
      procedure Push( val : longint );
      function  Pop : longint;
      function  TOS : longint;
      function  NOS : longint;
      procedure Swap;
      procedure Dup;
      procedure Over;
  
negative.code:           push( pop div pop );
            push( addr.pop );
          end;
        opInc : push(succ(uint32(pop)));
        opDec : push(pred(int32(pop)));
        opShl : push(pop shl pop);
        opShr : push(pop shr pop);
        opCmp : begin
  