code: public short getInt16(int index) throws IOException
      {
          validateIndex(index, 2);
  
          if (_isMotorolaByteOrder) {
              // Motorola - MSB first
              return (short) (((short)getByte(index    ) << 8 & (short)0xFF00) |
                              ((short)getByte(index + 1)      & (short)0xFF));
          } else {
              // Intel ordering - LSB first
              return (short) (((short)getByte(index + 1) << 8 & (short)0xFF00) |
                              ((short)getByte(index    )      & (short)0xFF));
          }
      }
docs: Returns a signed 16-bit int calculated from two bytes of data at the specified index (MSB, LSB).
  
  @param index position within the data buffer to read first byte
  @return the 16 bit int value, between 0x0000 and 0xFFFF
  @throws IOException the buffer does not contain enough bytes to service the request, or index is negative