|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function readLittleEndian(dataArray, bytesAmount) |
|
|
{ |
|
|
let out = 0; |
|
|
for (let i = 0; i < bytesAmount; i++) |
|
|
{ |
|
|
out |= (dataArray[dataArray.currentIndex++] << i * 8); |
|
|
} |
|
|
|
|
|
return out >>> 0; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function writeLittleEndian(dataArray, number, byteTarget) |
|
|
{ |
|
|
for (let i = 0; i < byteTarget; i++) |
|
|
{ |
|
|
dataArray[dataArray.currentIndex++] = (number >> (i * 8)) & 0xFF; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function writeWord(dataArray, word) |
|
|
{ |
|
|
dataArray[dataArray.currentIndex++] = word & 0xFF; |
|
|
dataArray[dataArray.currentIndex++] = word >> 8; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function writeDword(dataArray, dword) |
|
|
{ |
|
|
writeLittleEndian(dataArray, dword, 4); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function signedInt16(byte1, byte2) |
|
|
{ |
|
|
let val = (byte2 << 8) | byte1; |
|
|
if (val > 32767) |
|
|
{ |
|
|
return val - 65536; |
|
|
} |
|
|
return val; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function signedInt8(byte) |
|
|
{ |
|
|
if (byte > 127) |
|
|
{ |
|
|
return byte - 256; |
|
|
} |
|
|
return byte; |
|
|
} |