README.md
Rendering markdown...
#!/usr/bin/env python3
import sys
if len(sys.argv) != 2:
print(f"Usage: {sys.argv[0]} file")
exit(1)
filename = sys.argv[1]
with open(filename, "rb") as f:
buf = f.read()
print(buf)
# Calculate 32 bit CRC checksum, taken from get_checksum1() in checksum.c
s1 = s2 = 0
for i in range(0, len(buf) - 4, 4):
s2 += 4 * (s1 + buf[i]) + 3 * buf[i + 1] + 2 * buf[i + 2] + buf[i + 3]
s1 += buf[i + 0] + buf[i + 1] + buf[i + 2] + buf[i + 3]
for i in range(len(buf) - 4, len(buf)):
s1 += buf[i]
s2 += s1
sum1 = (s1 & 0xFFFF) + (s2 << 16)
print(f"sum1: {hex(sum1)}")