code: def chunker(data, raise_exception=False):
      
      instructions = []
      data = bytes(data)
      while True:
          if len(data) == 0: break
          try:
              opcode = match_opcode(data)
          except:
              msg = 'unknown opcode starting with {}...)'.format(hex_format(data[0:4]))
              if raise_exception:
                  raise ValueError(msg)
              else:
                  logger.warning(msg)
                  data = data[1:]
                  continue
          opcode_def = OPCODES[opcode]
          num_bytes = len(opcode)
          if opcode_def[1] > 0: num_bytes += opcode_def[1]
          if 'raster' in opcode_def[0]:
              num_bytes += data[2] + 2
          #payload = data[len(opcode):num_bytes]
          instructions.append(data[:num_bytes])
          data = data[num_bytes:]
      return instructions
docs: Breaks data stream (bytes) into a list of bytes objects containing single instructions each.
  
      Logs warnings for unknown opcodes or raises an exception instead, if raise_exception is set to True.
  
      returns: list of bytes objects