For what I need, I ended up coding a very simple routine...

Basically, for each step move one square nearer in the X position if possible, and move one square nearer in the Y position if possible. Store positions previously moved, and if you hit a dead end, work you way backwards trying alternative routes not in your 'walked' list.

I can post the code afterwards, it's not as good as A* but it works for what I need.