def fill(self, address, data, size, x, y, p):
        """Fill a region of memory with the specified byte.

        Parameters
        ----------
        data : int
            Data with which to fill memory. If `address` and `size` are word
            aligned then `data` is assumed to be a word; otherwise it is
            assumed to be a byte.

        Notes
        -----
        If the address and size are word aligned then a fast fill method will
        be used, otherwise a much slower write will be incurred.
        """
        if size % 4 or address % 4:
            # If neither the size nor the address are word aligned we have to
            # use `write` as `sark_word_set` can only work with words.
            # Convert the data into a string and then write:
            data = struct.pack('<B', data) * size
            self.write(address, data, x, y, p)
        else:
            # We can perform a fill, this will call `sark_word_set` internally.
            self._send_scp(x, y, p, SCPCommands.fill, address, data, size)
Fill a region of memory with the specified byte.

        Parameters
        ----------
        data : int
            Data with which to fill memory. If `address` and `size` are word
            aligned then `data` is assumed to be a word; otherwise it is
            assumed to be a byte.

        Notes
        -----
        If the address and size are word aligned then a fast fill method will
        be used, otherwise a much slower write will be incurred.