I'm redesigning a board for a customer which uses ancient UV-erasable parallel EPROMS for code storage (8051-type processor). We need to maintain code compatibility, i.e., the hardware has to look the same to the software. Since UV-EPROMS are a thing of the past, I'm expecting to use FLASH. There is a strong possibility that the software would need to be updated from time to time, and I would like to avoid using a socket, so, is there any "easy" way of doing in-circuit programming of these guys? I don't want to make a bed-of-nails for this. I would (grudgingly) add a connector for programming.

1) Is there a flash programmer out there that is designed to plug into an on-board connector and doesn't cost $10,000,000?
2) Does somebody make a parallel flash that has something like an SPI or JTAG interface for programming? That would be GREAT!