The mapping you use (
'A'<->0, 'B'<->1, 'C'<->2, ...
) is handy for computing a checksum on a string but it is not the same usually found on computer, that is the
ASCII[
^] one (
'A'<->65, 'B'<->66, 'C'<->67, ..
.).
Luckily the two 'encodings' (yours and the
ASCII
one) differ only for an offset, hence
char
yours
= char
ASCII
- 65