Normalmente, con este error el chip ya es inservible.
Verificalo con la opcion "blank check" de icprog varias veces. Si te sale OK, probablemente lo podras volver a grabar. Comprate uno nuevo, solo valen 2 euros!!
NO LO GRABES CON ICPROG. A mi me funciona perfectamente con otros chips (16F84 o 16F876) pero no con el 12C508A. Me carge 4 chips de este modo.
Bajo MSDOS me funciono a la primera sin problemas. Mirate este link
http://www.ctv.es/USERS/jpalacio/home.htm. (Supongo que no vulnero ninguna regla al postear esta pagina, alli solo habla de mods).
Alli encontraras los programas msdos. El programador descrito en esa pagina es exactamente el te20 sin el zocalo de eprom.
Programalo con prog508.bat SIN poner valor de oscilador, solo el archivo y el com. Al final te saldra Verificado TRUE dos veces si todo va bien.
Para comprobar si esta bien la grabacion, te recomiendo comparar BINARIOS no hex. Lee lo grabado (read508.bat) y salvalo en un archivo. Pasalo de hex a bin con el icprog. Haz lo mismo con el original. Comparalos (por ejemplo con el comando fc).
En mi caso utilice el onechip. Salen dos o tres bytes distintos. No te preocupes, es el oscilador interno. Cada chip se programa el oscilador de forma ligeramente distinta. Es normal.
No he probado otro archivo, pero el onechip con el conexionado standard (6 hilos) va bien. El onechip de 4 hilos no me funciono, sospecho que se deben hacer unos puentes igual que el de 6, pero no se cuales.
Saludos