code: def readS16(self, register, little_endian=True):
          
          result = self.readU16(register, little_endian)
          if result > 32767:
              result -= 65536
          return result
docs: Read a signed 16-bit value from the specified register, with the
          specified endianness (default little endian, or least significant byte
          first).