Navigate is a Palm OS program for computing the range and bearing between any two points on the Earth's surface OR the end location given a starting location, range and bearing.
It will compute these solutions for either lines of constant bearing (loxodromes or rhumb lines) or the shortest possible path on the Earth (geodesics or great circle routes).
The calculator also supports the conversion of angular units between decimal degrees, degree and decimal minutes, or degrees, minutes and decimal seconds; and range units of kilometers, nautical miles, statue miles, meters or yards.
The complete source code is also available on the author's web site.