docs: def write8(self, offset, value):
          """Write 8-bits to the specified `offset` in bytes, relative to the
          base physical address of the MMIO region.
  
          Args:
              offset (int, long): offset from base physical address, in bytes.
              value (int, long): 8-bit value to write.
  
          Raises:
              TypeError: if `offset` or `value` type are invalid.
              ValueError: if `offset` or `value` are out of bounds.
  
          """
          if not isinstance(offset, (int, long)):
              raise TypeError("Invalid offset type, should be integer.")
          if not isinstance(value, (int, long)):
              raise TypeError("Invalid value type, should be integer.")
          if value < 0 or value > 0xff:
              raise ValueError("Value out of bounds.")
  
          offset = self._adjust_offset(offset)
          self._validate_offset(offset, 1)
          self.mapping[offset:offset + 1] = struct.pack("B", value)