getCharString static method

void getCharString(
  1. List<int> data,
  2. int offset,
  3. dynamic o
)

Implementation

static void getCharString(List<int> data, int offset, o) {
  int _len = data.length;
  int? b0 = null;
  if (offset < _len) {
    b0 = data[offset];
  }

  int _offset1 = offset + 1;

  int? b1 = null;
  if (_offset1 < _len) {
    b1 = data[_offset1];
  }

  int vs = 1;
  var op = null, val = null;
  // operand
  if (b0 != null && b0 <= 20) {
    op = b0;
    vs = 1;
  }
  if (b0 != null && b0 == 12) {
    op = b0 * 100 + b1!;
    vs = 2;
  }
  //if(b0==19 || b0==20) { op = b0/*+" "+b1*/;  vs=2; }
  if (b0 != null && 21 <= b0 && b0 <= 27) {
    op = b0;
    vs = 1;
  }
  if (b0 == 28) {
    val = TyprBin.readShort(data, offset + 1);
    vs = 3;
  }
  if (b0 != null && 29 <= b0 && b0 <= 31) {
    op = b0;
    vs = 1;
  }
  if (b0 != null && 32 <= b0 && b0 <= 246) {
    val = b0 - 139;
    vs = 1;
  }
  if (b0 != null && 247 <= b0 && b0 <= 250) {
    val = (b0 - 247) * 256 + b1! + 108;
    vs = 2;
  }
  if (b0 != null && 251 <= b0 && b0 <= 254) {
    val = -(b0 - 251) * 256 - b1! - 108;
    vs = 2;
  }
  if (b0 != null && b0 == 255) {
    val = TyprBin.readInt(data, offset + 1) / 0xffff;
    vs = 5;
  }

  o["val"] = val != null ? val : "o" + op.toString();
  o["size"] = vs;
}