Walter, I have written a PIC programming program in C to work with a home made PIC programmer. The programmer I built is similar to several described in magazines like Nuts & Volts, and Electronics Now. The difference is that mine provides pins to set Vdd to the Max and Min voltages for testing (the book said to do this when programming). Most kits don't provide for this, but I find it makes a difference (testing at Vdd Min (4.0V) shows if the chip has really been erased). My program talks to the programmer through the parallel printer port. Outputs 0 - clk 1 - Data 2 - set Vdd to 5V 3 - Vpgm 13V 4 - set Vdd to Vmax (trim pot controlled) 5 - set Vdd to Vmin (again trim pot controlled) Inputs 6 - Data In The program reads the *.COD file for the binary data to program the chip with. It also allows you to alter the data value at one address during program time, if you wish to include a "chip ID" which your program can read. (If you have several PICs on a serial line and you wish to talk to one of them you would send its ID. This programming feature allows you to vary that chip number at program time rather than re-assembling. As I understand it the PIC program can not read the chip ID numbers that you can program at the ID locations.) I was playing around with locating address of an ID location and happened to place a second ORG statement in my code and discovered that I didn't understand the *.COD file well enough to do this. Thank you for the format description. It should be just what I need. Fred Thompson fthompso@mail.win.org