code: def read_pascal_string(fp, encoding='macroman', padding=2):
      
      start_pos = fp.tell()
      # read_length_block doesn't work for a byte.
      length = read_fmt('B', fp)[0]
      data = fp.read(length)
      assert len(data) == length, (len(data), length)
      read_padding(fp, fp.tell() - start_pos, padding)
      return data.decode(encoding)
docs: Reads pascal string (length + bytes).
  
      :param fp: file-like object
      :param encoding: string encoding
      :param padding: padding size
      :return: str