The code in BootBlock._calc_chksum skips the second word in each block when computing the checksum, so it doesn't include the checksum itself in the calculation. However, this is only correct for the first block - if you've got a bootblock that's bigger than 512 bytes, it'll produce the wrong checksum.
The code in
BootBlock._calc_chksum
skips the second word in each block when computing the checksum, so it doesn't include the checksum itself in the calculation. However, this is only correct for the first block - if you've got a bootblock that's bigger than 512 bytes, it'll produce the wrong checksum.