If I inadvertently program a 1700/1700D/1700L PROM to the incorrect reset polarity, is it possible to change only the reset polarity on a programmed device?
In general, the XC1700/D/L serial PROMs are one-time programmable devices for the bulk of the PROM's data/contents. However, the PROM reset polarity is an exception to this rule, although only in one special case. The special case is when the reset polarity in the programmed part has been programmed for active HIGH reset. In this case, you can change the reset polarity from Active High to Active Low by reprogramming the part. Note, however, that the converse is not true--you cannot reprogram the reset polarity from active LOW to active HIGH.
How is this possible? Consider that the reset polarity of the PROM is controlled by the data in a specific set of four addresses on the PROM. The unprogrammed state of these special PROM address locations is FF, and you can only change the individual bits at these locations from a "1" to a "0" during programming. The reset polarity is active HIGH when the special set of byte-wide address locations is set to FF (or 1111 1111 in binary). So essentially, in the unprogrammed state (FF), these address locations by default set the PROM to active HIGH reset.
It follows that choosing active HIGH reset polarity during the programming process is equivalent to leaving these address locations unprogrammed.
As a result, once the part is programmed for active HIGH reset, you can still change the data in these locations from FF to 00 (i.e., you can still "reprogram" them to 00) through the programmer software interface, using the same data file.