I came across basically the same problem as the topic starter, but for a different PIC. I needed to program a PIC16F630. I tried the serial port style programmer that Jaakko Hyvätti's Picprog
is written for, but I couldn't get it to work. So I made a simple AVR program and a quick-and-dirty patch to Picprog to flash me a PIC16F630. I'm releasing the program
under the GPLv3. The included README does suppose you are well versed in working with AVR's, avr-libc and avr-gcc. As an afterthought, I've tried to make it a little easier by including a firmware for an ATmega88 @ 20 MHz.
The firmware only uses one 8-bit timer and an external interrupt, all other functions are completely implemented in software. So it should be possible to run it on any AVR with enough memory and 6 I/O pins available.
I suspect the programmer might work for all PIC12 and PIC16 chips supported by Picprog, but I didn't investigate much.
I used a simple USB to serial converter with 5V logic lines. Don't connect the AVR straight to a serial port of your PC :).
I'm providing this as-is. It did it's job for me, I added some documentation and functionality in the hope that it is useful for other people. I don't intend to do any more work on it, but others are encouraged to add all the bells and whistles they want! :)
I submitted the ugly, ugly patch for Picprog to the author of that program. Perhaps he or someone else wants to add proper support for this programmer to it. Or something alike.
This is my first post, and as such I can't create links to my program or Picprog. In 24 hours or so, I will come back and post this again with URL's.
<edit>Added URL's. But see next post for added content!</edit>