Hi Ant,
This worked for me (as in: gives the answer you specified)
Global $input = "GPGLL,5300.97914,N,00259.98174,E,125926,A"
Global $result = NMEA_Checksum($input)
MsgBox(0, "NMEA Checksummmer", " input: " & $input & @CR & "output: " & $result)
Func NMEA_Checksum($string)
Local $ret = 0
For $i = 1 To StringLen($string)
$ret = BitXOR($ret, Asc(StringMid($string, $i, 1)) )
Next
Return Hex($ret, 2)
EndFunc
Not knowing WTF an 'NMEA checksum' is, I obviously can't be sure, so over to you ...
have fun,
whim