+        if out_end:
+            self.writeto(address, buffer_out[out_start:out_end], stop=stop)
+        else:
+            self.writeto(address, buffer_out[out_start:], stop=stop)
+        read_buffer = buffer_in
+        self.readfrom_into(address, read_buffer, stop=stop)
+        if in_end:
+            buffer_in[in_start:in_end] = read_buffer[in_start:in_end]
+        else:
+            buffer_in[in_start:] = read_buffer[in_start:]