!
        @brief Load data to a numbered page buffer.
        
        This method is used in conjunction with start_program_page_with_buffer() to implement
        double buffered programming.

def load_page_buffer(self, buffer_number, address, bytes):
        """!
        @brief Load data to a numbered page buffer.
        
        This method is used in conjunction with start_program_page_with_buffer() to implement
        double buffered programming.
        """
        assert buffer_number < len(self.page_buffers), "Invalid buffer number"

        # prevent security settings from locking the device
        bytes = self.override_security_bits(address, bytes)

        # transfer the buffer to device RAM
        self.target.write_memory_block8(self.page_buffers[buffer_number], bytes)