docs: def _readint(self, length, start):
          """Read bits and interpret as a signed int"""
          ui = self._readuint(length, start)
          if not ui >> (length - 1):
              # Top bit not set, number is positive
              return ui
          # Top bit is set, so number is negative
          tmp = (~(ui - 1)) & ((1 << length) - 1)
          return -tmp