For anyone interested, the latest code was posted by Scalerobotics here:

http://sites.picbasic.net/index.php?...d=91&pageid=62

(the downloads don't seem to be working right now)

I believe the 16 bit code as posted on the above link did need the following minor tweaks:

Instead of:

lathome_min = lathome_min + 33*((((gpsdata[char_A+4] -48)*1000)+((gpsdata[char_A+5]-48)*100)+((gpsdata[char_A+7]-48)*10)+(gpsdata[char_A+8]-48))*5)//3

However, I believe it should read as follows so that the modulus is calculated first:

lathome_min = lathome_min + 33*(((((gpsdata[char_A+4] -48)*1000)+((gpsdata[char_A+5]-48)*100)+((gpsdata[char_A+7]-48)*10)+(gpsdata[char_A+8]-48))*5)//3)


Second:

latdest_min = latdest_min + (tempbyte*33) 'use remainder and add to latdest_min

should read as follows:

latdest_min = latdest_min*5/3 + (tempbyte*33) 'use remainder and add to latdest_min