anchor.diff:    writeInt(value) {
       _ensureSpace(5);
       writeType(_INT);
  +    if (value<0) throw "negative ints not supported yet";
       buf[bufPos]=value;
       buf[bufPos+1]=value>>8;
       buf[bufPos+2]=value>>16;
  
positive.code:   }
    readInt() {
      // BUG: negative numbers are not treated correctly
      var n = buf[bufPos] +(buf[bufPos+1]<<8)+ (buf[bufPos+2]<<16) + (buf[bufPos+3]<<24);
      bufPos+=4;
      return n;
    }
  
negative.code:   readString1() {
      int len=readLength();
      var list=new List<int>(len);
      //for (int i=0; i<len; i++) {
      //  list[i]=buf[bufPos++];
      //}
      // this variant is much faster:
      for (int from=0, to=len-1; from<=to; from++, to--) {
        list[from]=buf[bufPos+from];
        list[to]=buf[bufPos+to];
      }
      bufPos+=len;
      
      return new String.fromCharCodes(list);
    }
  
  