code: def _process_response(self, response):
          
          # Strip the trailing newline and split the response into lines
          # by carriage returns.
          rsp_lines = response.rstrip('\r\n').split('\r')
  
          # If we have at least one line, the first one is the echoed
          # command. If available, it needs to be grabbed and that line
          # removed from rsp_lines since it is just the echoing, not the
          # actual response to the command. None will be used to denote a
          # non-existent echo.
          if len(rsp_lines) > 0:
              echoed_command = rsp_lines[0]
              del rsp_lines[0]
          else:
              echoed_command = None
  
          # If the next line is one of the different possible error
          # strings, then there was an error that must be grabbed (leading
          # '*' is stripped). If there was an error, remove that line from
          # the response. None will be used to denote the lack of an error.
          if len(rsp_lines) > 0 and \
                  rsp_lines[0] in ('*INVALID_ADDRESS', '*INVALID_DATA', \
                  '*INVALID_DATA_HIGH', '*INVALID_DATA_LOW', \
                  '*UNDEFINED_LABEL'):
              err = rsp_lines[0][1:]
              del rsp_lines[0]
          else:
              err = None
  
          return [response, echoed_command, err, rsp_lines]
docs: Processes a response from the drive.
  
          Processes the response returned from the drive. It is broken
          down into the echoed command (drive echoes it back), any error
          returned by the drive (leading '*' is stripped), and the
          different lines of the response.
  
          Parameters
          ----------
          response : str
              The response returned by the drive.
  
          Returns
          -------
          processed_response : list
              A 4-element ``list``. The elements, in order, are `response`
              (``str``), the echoed command (``str``), any error response
              (``None`` if none, or the ``str`` of the error), and the
              lines of the response that are not the echo or error line
              (``list`` of ``str`` with newlines stripped).