Given you only have 16 possibilities, you could use a lookup table. Calculate the checksum, take the low nibble, look up the ascii in the table, compare with what you received, shift the checksum left (or simply take the high nibble), and look up the ascii in the table, and compare with what you received.