anchor.diff:      } catch (e) {
         throw "Failed to send the startup message.";
       }
  -    startUp();
  +    readStartUp();
     }
   
     static final FIELD_MAP = const {
  
positive.code:   }
  
    query(String command) {
      // 6 is for 32bits length, null after string and terminator.
      var msgLen = 6 + command.length, list = new Uint8List(msgLen + 1);
      list[0] = 81; // Q
      setBufferLength(list, 1, msgLen);
      copyStringToBuffer(list, 5, command);
  
negative.code:   };
  
    parseFields(list) {
      var h = {}, len = list.length, i = 5, fieldDesc, key, c,
        listAddress = list.buffer.getForeign().value, strStart, strLen;
      while (i + 2 < len) {
        c = list[i];
        if (c == 0) {
          break;
        }
        key = new String.fromCharCode(c);
        strStart = listAddress + i + 1;
        strLen = MoreSys.memchr(strStart, 0, len) - strStart;
        if (strLen > 0) {
  