i have a similar output from a GPS unit that i'm writing (ahem, try attempting

) a tracking package for. What i'm doing is separating each section to a field in an array. For getting the GPS data correct, with my unit all i do is move my decimal place of the string 7 places left (i.e divide it by 1,000,000) and it returns the right position, then an if statement that says if the value of lat is E thenits a positive value and W is negative

Hope this is of some use, but prolly not if you're not planning on wrinting something to do this yourself.
As for the speed, on my input stream, the speed is the field tot he left of the heading, however, if your has the same format, your speed is a constant 1.5 units so hmmmmmmm.....
M